{"version":3,"sources":["redux/reducers/defaultReducer.js","redux/reducers/AssetOwnershipProfileModalReducer.js","redux/reducers/addCommentModalReducer.js","redux/reducers/downloadReportModalReducer.js","redux/reducers/analysisViewReducer.js","redux/reducers/authoriseReducer.js","redux/reducers/bankingCommentsModalReducer.js","helpers/currency.js","helpers/options.js","helpers/datagrid.js","redux/reducers/collectionBreakdownModalReducer.js","redux/reducers/collectionModalReducer.js","redux/reducers/confirmModalReducer.js","redux/reducers/countDetailsModalReducer.js","redux/reducers/eftReducer.js","redux/reducers/floatLevelSettingsModalReducer.js","redux/reducers/installHistoryModalReducer.js","redux/reducers/installationReducer.js","redux/reducers/kioskReducer.js","redux/reducers/liveFloorViewDetailsModalReducer.js","redux/reducers/logInOutReducer.js","redux/reducers/machineReducer.js","redux/reducers/machineSaveReducer.js","redux/reducers/newProfileModalReducer.js","redux/reducers/operatorsReducer.js","redux/reducers/organisationDirectoryReducer.js","redux/reducers/organisationReducer.js","redux/reducers/organisationsReducer.js","redux/reducers/passwordModalReducer.js","redux/reducers/promoAnalysisDetailsModalReducer.js","redux/reducers/promoAnalysisModalReducer.js","redux/reducers/removeAssetReducer.js","redux/reducers/revenueModalReducer.js","redux/reducers/searchTermReducer.js","redux/reducers/sessionsByCompanyReducer.js","redux/reducers/siteDetailsModalReducer.js","redux/reducers/siteVarianceHistoryModalReducer.js","redux/reducers/successAlertReducer.js","helpers/dates.js","redux/reducers/transactionsReducer.js","redux/reducers/varianceHistoryDetailsModalReducer.js","redux/reducers/viewCommentsModalReducer.js","redux/reducers/EditMachineCountModalReducer.js","redux/reducers/complianceSummaryReducer.js","redux/reducers/ProcessPeriodModalReducer.js","common/redux/reducers/BaseReducer.js","common/redux/reducers/LoginReducer.js","common/components/helpers/datetime.js","common/redux/reducers/CustomerIncidentReducer.js","common/components/helpers/options/vulnerabilityFormOptions.js","common/redux/reducers/CustomerFormReducer.js","common/redux/reducers/OfficerReducer.js","common/redux/reducers/OfficerFormModalReducer.js","common/redux/reducers/AlertModalReducer.js","common/redux/reducers/InteractionOptionsReducer.js","common/redux/reducers/CustomerInteractionReducer.js","common/redux/reducers/AgeVerificationReducer.js","common/redux/reducers/ObservationsReducer.js","common/redux/reducers/SetupReducer.js","common/redux/reducers/LinkSessionReducer.js","common/redux/reducers/LinkSessionModalReducer.js","common/components/helpers/grid.js","common/redux/reducers/SessionalDetailsReducer.js","common/redux/reducers/SessionalPositionsReducer.js","common/components/helpers/options/enforcementVisitOptions.js","common/redux/reducers/UnresolvedDisputeReducer.js","common/redux/reducers/SuspiciousActivityReducer.js","common/redux/reducers/EnforcementReducer.js","common/redux/reducers/ConfirmModalReducer.js","common/redux/reducers/UploadReducer.js","common/redux/reducers/ImageModalReducer.js","redux/reducers/complianceReducer.js","redux/reducers/index.js","redux/store.js","common/api/desktop/axios.js","common/api/ApiClient.js","common/api/AuthenticationClient.js","redux/actions/auth.js","redux/actions/analysis.js","redux/actions/filters.js","helpers/prepareDetails.js","redux/actions/installations.js","common/api/desktop/sessions.js","redux/actions/transactions.js","redux/actions/organisationDirectory.js","redux/actions/modals.js","helpers/downloads.js","redux/actions/sessions.js","redux/actions/settings.js","helpers/buildTree.js","api/egm.js","api/settings.js","api/useradmin.js","redux/actions/kiosk.js","components/buttons/CloseButton.js","api/analysis.js","components/buttons/ExpandButton.js","components/shared/MultiSelect.js","components/buttons/OrgTreeButton.js","components/buttons/DownloadButton.js","components/analysis/AnalysisFilters.js","components/revenue/RevenueGraph.js","helpers/colours.js","components/systemAdmin/TextInput.js","components/systemAdmin/Option.js","components/shared/DataGrid.js","components/views/AnalysisView.js","components/shared/SelectOperator.js","components/assetAdmin/AssetAdminFilters.js","components/systemAdmin/BaseSettings.js","components/assetAdmin/AssetAdminTree.js","components/systemAdmin/OptionsList.js","components/views/AssetAdminView.js","api/devicemanagement.js","components/modals/OptionsModal.js","components/deviceManagement/AssetTree.js","components/deviceManagement/HardwareGeneral.js","components/views/DeviceManagementView.js","api/revenue.js","components/shared/DetailsButton.js","helpers/revenue.js","components/revenue/RevenueFilters.js","components/revenue/BaseRevenueView.js","components/views/IncomeSecurityView.js","api/kiosk.js","components/buttons/RefreshButton.js","helpers/liveFloor.js","components/shared/StatusLabels.js","components/LiveFloorViewer/MachineStatusFilters.js","components/buttons/SummaryButton.js","components/shared/DateTimeSelect.js","components/kiosk/kioskFilters.js","helpers/summary.js","components/modals/KioskModal.js","components/views/KioskView.js","api/livefloorview.js","components/LiveFloorViewer/MachineStatusTab.js","components/LiveFloorViewer/SiteDetailsTab.js","components/views/LiveFloorView.js","redux/actions/reports.js","components/reports/ReportsDatepicker.js","components/reports/ReportsDropdown.js","components/reports/FormBuilder.js","components/reports/ReportsList.js","components/views/ReportsView.js","api/collections.js","components/views/RevenueView.js","common/redux/actions/BaseAction.js","common/redux/reducers/LoadingReducer.js","common/redux/actions/LoadingAction.js","common/redux/actions/LoginAction.js","common/components/shared/Option.js","common/components/shared/DataGrid.js","common/components/modals/SessionDetailsModal.js","components/shared/CompanyFilters.js","components/views/SessionsView.js","components/buttons/CommentsButton.js","components/SiteInstallations/CollectionFilters.js","components/SiteInstallations/BaseCollection.js","components/SiteInstallations/CollectionBanking.js","components/SiteInstallations/CollectionPerformance.js","api/count.js","components/SiteInstallations/MachineCounts.js","components/buttons/SettingsButton.js","components/SiteInstallations/SiteInstallations.js","components/SiteInstallations/VarianceHistory.js","components/views/SiteInstallationsView.js","components/modals/OpeningHoursModal.js","components/systemAdmin/SelectProfile.js","components/systemAdmin/Filters.js","components/systemAdmin/OpeningHours.js","api/operatorRegion.js","components/systemAdmin/OperatorRegions.js","components/systemAdmin/OperatorSettings.js","components/systemAdmin/Operators.js","components/systemAdmin/Organisation.js","common/api/GuardianClient.js","helpers/index.js","components/modals/ComplianceModal.js","components/systemAdmin/ComplianceTable.js","redux/actions/compliance.js","components/systemAdmin/Compliance.js","components/systemAdmin/SystemSettings.js","components/views/SystemAdminView.js","api/transactions.js","components/transactions/BaseTab.js","components/transactions/KioskTab.js","components/transactions/LiabilityTab.js","components/transactions/TicketsFilters.js","components/transactions/TicketsTab.js","components/shared/PeriodSelect.js","components/transactions/CollectionWeekFilters.js","components/transactions/DateTimeGroupInput.js","components/transactions/DatePeriodFilters.js","components/transactions/TransactionFilters.js","components/transactions/UserInput.js","components/views/TransactionsView.js","components/useradmin/ProfileTabs.js","components/useradmin/AccessProfiles.js","components/useradmin/SystemAccess.js","components/useradmin/UserAccounts.js","components/views/UserAdminView.js","common/api/ComplianceClient.js","common/components/helpers/arrays.js","hooks/useComplianceView.js","hooks/useOrganisationTreeSelections.js","hooks/useComplianceSummaryFilters.js","common/redux/actions/AlertModalAction.js","common/components/helpers/logout.js","common/components/helpers/error.js","common/components/hooks/useLogin.js","common/components/helpers/downloads.js","hooks/useEventDetailsGrid.js","components/Compliance/details/EventDetailsStatuses.js","hooks/useEventDetailsStatuses.js","common/redux/actions/CustomerInteractionAction.js","common/redux/actions/CustomerFormAction.js","common/components/helpers/validation-schemas/customerInteractionSchema.js","common/components/helpers/reset.js","common/components/hooks/useCustomerInteraction.js","common/api/CustomerInteractionClient.js","common/redux/actions/CustomerIncidentAction.js","common/redux/actions/SuspiciousActivityAction.js","common/redux/actions/OfficerAction.js","common/redux/actions/ObservationsAction.js","common/redux/actions/LinkSessionAction.js","common/components/helpers/compliance.js","common/components/hooks/useCustomerInteractionForm.js","common/components/helpers/CustomerInteraction/customerInteractionSubmission.js","common/redux/actions/InteractionOptionsAction.js","common/components/helpers/CustomerInteraction/fetchInteractionOptions.js","common/components/helpers/useWindowWidth.js","common/components/shared/forms/ToggleComponent.js","common/components/shared/forms/HiddenComponent.js","common/components/shared/forms/StandardHiddenInputs.js","common/components/shared/forms/SelectComponent.js","common/components/helpers/options/identityOptions.js","common/redux/reducers/IdentityFormModalReducer.js","common/api/CustomerClient.js","common/components/helpers/Customer/fetchIdentityOptions.js","common/redux/actions/IdentityFormModalAction.js","common/components/helpers/addition.js","common/components/helpers/Customer/filterCustomers.js","common/components/hooks/useCustomerForm.js","common/components/helpers/identity.js","common/components/helpers/Customer/customers.js","common/components/helpers/Customer/searchCustomer.js","common/components/shared/forms/SearchableDropdownComponent.js","common/components/shared/forms/CheckboxComponent.js","common/components/shared/forms/TableComponent.js","common/components/shared/CustomerForm.js","common/components/helpers/CustomerInteraction/vulnerabilityFormHelpers.js","common/components/shared/forms/TextareaComponent.js","common/components/shared/forms/ToggleTextareaComponent.js","common/components/shared/forms/DateComponent.js","common/components/shared/CustomerInteraction/DiscussionForm.js","common/components/shared/forms/TimeComponent.js","common/components/shared/forms/DateAndTimeGroup.js","common/components/shared/Reminder.js","common/components/shared/CustomerInteraction/CustomerOutcomeForm.js","common/components/shared/CustomerInteraction/VulnerabilityForm.js","common/components/shared/forms/FormButtonsComponent.js","common/components/helpers/renderGridRow.js","common/components/helpers/urlMappings.js","common/components/helpers/options/navigationOptions.js","common/components/shared/CustomerInteraction/RedirectDashboard.js","common/components/helpers/split.js","common/components/shared/CustomerInteraction/CustomerInteractionForm.js","components/Compliance/ComplianceHeader.js","components/Compliance/forms/CustomerInteractionContainer.js","common/redux/actions/AgeVerificationAction.js","common/components/helpers/validation-schemas/datetimeSchema.js","common/components/helpers/validation-schemas/ageVerificationSchema.js","common/components/hooks/useAgeVerification.js","common/api/AgeVerificationClient.js","common/components/helpers/AgeVerification/formOptions.js","common/components/helpers/AgeVerification/fetchAgeVerificationData.js","common/components/helpers/AgeVerification/prepareAgeVerificationData.js","common/components/hooks/useAgeVerificationForm.js","common/components/helpers/options/ageVerificationSelect.js","common/components/shared/AgeVerification/CustomerHasIdForm.js","common/components/shared/AgeVerification/CustomerHasNoIdForm.js","common/components/shared/AgeVerification/AgeVerificationForm.js","components/Compliance/forms/AgeVerificationContainer.js","common/components/helpers/validation-schemas/observationsSchema.js","common/components/helpers/Observations/useObservationCustomerUtils.js","common/api/ObservationsClient.js","common/components/helpers/Observations/formOptions.js","common/components/helpers/Observations/fetchObservationsData.js","common/components/helpers/Observations/prepareObservationsData.js","common/components/helpers/Observations/useObservationsUtils.js","common/components/shared/forms/MultiSelectComponent.js","common/components/shared/Observations/ObservationsSelectForm.js","common/components/shared/Observations/ObservationsForm.js","components/Compliance/forms/ObservationContainer.js","common/redux/actions/UnresolvedDisputeAction.js","common/redux/actions/SetupAction.js","common/api/IncidentClient.js","common/components/helpers/forms.js","common/redux/actions/SessionalDetailsAction.js","common/redux/actions/SessionalPositionsAction.js","common/components/hooks/useUnresolvedDispute.js","common/components/helpers/validation-schemas/unresolvedDisputeSchema.js","common/components/helpers/UnresolvedDispute/unresolvedDisputeSubmission.js","common/components/hooks/useUnresolvedDisputeForm.js","common/components/shared/forms/SignatureComponent.js","common/components/hooks/useUnresolvedDisputeCustomer.js","common/components/shared/forms/InputComponent.js","common/components/shared/UnresolvedDispute/UnresolvedDisputeCustomerForm.js","common/redux/actions/LinkSessionModalAction.js","common/components/shared/forms/ButtonComponent.js","common/components/shared/LinkSession/ToggleLinkSession.js","common/components/helpers/Sessions/sessionsDetailsHelpers.js","common/components/shared/LinkSession/LinkedSession.js","common/components/shared/LinkSession/LinkSessionComponent.js","common/redux/actions/UploadAction.js","common/api/MediaClient.js","common/components/helpers/success.js","common/components/helpers/fetchCctvImages.js","common/components/hooks/useUpload.js","common/redux/actions/ConfirmModalAction.js","common/redux/actions/ImageModalAction.js","common/components/hooks/useUploadedImageList.js","common/components/shared/forms/UploadedImageList.js","common/components/shared/forms/UploadComponent.js","common/components/shared/UnresolvedDispute/UnresolvedDisputeForm.js","hooks/useIncidentContainer.js","components/Compliance/forms/UnresolvedDisputeContainer.js","common/redux/actions/OfficerFormModalAction.js","common/api/OfficerClient.js","common/components/helpers/Officer/searchOfficer.js","common/components/helpers/SuspiciousActivity/fetchSuspiciousActivityData.js","common/components/hooks/useSuspiciousActivity.js","common/components/helpers/validation-schemas/suspiciousActivitySchema.js","common/components/helpers/Officer/officer.js","common/components/hooks/useSuspiciousActivityForm.js","common/components/helpers/SuspiciousActivity/suspiciousActivitySubmission.js","common/components/hooks/useSuspects.js","common/components/shared/SuspiciousActivity/SuspectsForm.js","common/components/helpers/options/customerIncidentSelect.js","common/components/helpers/tables.js","common/components/helpers/CustomerIncident/emergencyServicesHelpers.js","common/components/shared/forms/DidNotAttendTimeGroup.js","common/components/hooks/useOfficerForm.js","common/components/shared/forms/OfficerForm.js","common/components/shared/forms/EmergencyServicesForm.js","common/components/shared/SuspiciousActivity/SuspiciousActivityForm.js","components/Compliance/forms/SuspiciousActivityContainer.js","common/components/helpers/CustomerIncident/formOptions.js","common/components/helpers/CustomerIncident/fetchIncidentData.js","common/components/helpers/CustomerIncident/prepareIncidentData.js","common/components/hooks/useCustomerIncidentForm.js","common/components/helpers/CustomerIncident/customerIncidentFormHelpers.js","common/components/shared/CustomerIncident/CustomerIncidentForm.js","common/components/helpers/validation-schemas/customerIncidentSchema.js","components/Compliance/forms/CustomerIncidentContainer.js","common/components/hooks/useCustomerIncident.js","common/redux/actions/EnforcementAction.js","common/components/helpers/validation-schemas/enforcementSchema.js","common/components/helpers/Enforcement/fetchEnforcementTypes.js","common/components/helpers/options/enforcementTypeOptions.js","common/components/helpers/Enforcement/enforcementSubmission.js","common/components/hooks/useEnforcementForm.js","common/components/shared/Enforcement/EnforcementForm.js","components/Compliance/forms/EnforcementVisitContainer.js","common/components/hooks/useEnforcement.js","common/api/SelfExclusionClient.js","common/components/helpers/validation-schemas/selfExclusionSchema.js","common/components/hooks/useSelfExclusion.js","common/components/hooks/useSelfExclusionForm.js","common/components/helpers/SelfExclusion/selfExclusionSubmission.js","common/components/shared/SelfExclusion/SelfExclusionForm.js","components/Compliance/forms/SelfExclusionContainer.js","components/Compliance/details/EventDetailsForm.js","components/Compliance/details/EventDetailsTable.js","components/Compliance/details/EventDetailsTab.js","components/Compliance/filters/TypesFilterDropdown.js","components/Compliance/filters/PeriodFilters.js","components/shared/SearchInput.js","components/shared/DateFiltersDropdown.js","components/Compliance/summary/ComplianceSummaryButtons.js","hooks/useComplianceSummaryGrid.js","hooks/useProcessPeriodModel.js","components/Compliance/details/EventDetailsButtons.js","components/Compliance/filters/MainFilters.js","components/views/ComplianceView.js","helpers/panes.js","components/modals/AddCommentModal.js","api/ownership.js","components/shared/ScrollableList.js","components/modals/AssetOwnershipProfileModal.js","components/shared/CommentsList.js","components/modals/BankingCommentsModal.js","components/CollectionBreakdown/BaseBreakdowTab.js","components/CollectionBreakdown/CollectionPeriod.js","components/CollectionBreakdown/InterimCollections.js","components/CollectionBreakdown/PrimaryTabs.js","components/CollectionBreakdown/CommentsTab.js","components/CollectionBreakdown/SimpleTab.js","components/CollectionBreakdown/Transactions.js","components/CollectionBreakdown/SecondaryTabs.js","components/modals/CollectionBreakdownModal.js","components/modals/CollectionModal.js","components/modals/ConfirmModal.js","components/modals/CountDetailsModal.js","components/modals/EnterPasswordModal.js","components/modals/FloatLevelSettingsModal.js","components/modals/InstallHistoryModal.js","components/modals/LiveFloorViewDetailsModal.js","components/modals/NewProfileModal.js","components/modals/PromoAnalysisDetailsModal.js","components/modals/PromoAnalysisModal.js","components/modals/RevenueModal.js","components/LiveFloorViewer/SiteDetailsFilters.js","components/modals/SiteDetailsModal.js","components/modals/SuccessModal.js","components/modals/VarianceHistoryDetailsModal.js","components/modals/ViewCommentsModal.js","components/modals/DownloadReportModal.js","components/SiteInstallations/CountModalSummary.js","components/modals/EditMachineCountModal.js","components/modals/ProcessPeriodModal.js","common/components/modals/AlertModal.js","common/components/modals/ConfirmModal.js","common/components/helpers/validation-schemas/officerSchema.js","common/components/hooks/useOfficerFormModal.js","common/components/helpers/options/officerFormOptions.js","common/components/shared/forms/OfficerDetailsForm.js","common/components/modals/OfficerFormModal.js","common/components/modals/ImageModal.js","common/components/shared/Filters.js","common/components/hooks/useSessionsUtils.js","common/components/helpers/machines.js","common/components/shared/SessionsDetails.js","common/components/shared/Flex.js","common/api/SessionClient.js","common/components/hooks/useSessions.js","common/components/modals/LinkSessionModal.js","components/modals/ModalContainer.js","components/shared/OrganisationDirectory.js","components/shared/OrganisationDirectoryMenu.js","redux/actions/collections.js","components/shared/TimeoutCheck.js","components/views/DefaultView.js","components/views/MainMenu.js","components/views/SystemTray.js","components/views/Panes.js","helpers/jira.js","components/auth/Forgotten.js","components/auth/Login.js","components/auth/Reset.js","components/views/Incompatible.js","components/App.js","index.js"],"names":["defaultReducer","key","initialState","state","arguments","length","undefined","action","type","Array","isArray","payload","name","operator","open","selectedProfile","id","ownershipTypeId","types","profiles","fields","changed","loading","siteText","weekText","egmText","onSave","filename","graphInitialState","lines","data","gridInitialState","headerDef","rowDef","pageCount","pageNumber","analysisInitialState","startDate","moment","subtract","utc","set","m","s","h","endDate","selectedStartTime","selectedEndTime","graphType","selectedRows","selectedTimeGroupBy","selectedTotalBy","selectedMeasure","selectedMeasures","selectedDayOfWeek","selectedDataGroup","selectedCategory","timeGroupBy","filteredTimeGroupBy","dataGroups","categories","daysOfWeek","dataSource","measures","weeks","defaultMeasures","totalBy","grid","graph","hideGraph","analysisReducer","header","comments","prettyMoney","value","precision","currency","symbol","format","uglyMoney","toString","getOptionTotal","option","optionsList","total","forEach","item","field","find","x","code","parseFloat","getOptionValue","text","defaultList","defaultDate","defaultText","validateOptions","options","isRequired","minValue","maxValue","console","log","regex","RegExp","test","defaultGrid","span","detailGrid","detailGridInterim","meterGrid","collectionPeriod","interimCollections","varianceHistory","transactionsGrid","eventsGrid","transactionsSummaryGrid","showEventsGrid","showMetersGrid","showTicketsGrid","ticketsGrid","showMetersGridInterim","optionShowExport","optionShowVariance","optionShowVarianceHistory","onRefresh","title","siteId","periodId","fnLoad","isPerformance","summaryGrid","categoryGrid","siteFloatGrid","kioskGrid","optionShowViewCommentsButton","message","visible","onConfirm","maximumFloats","lowFloats","setActiveInstallationReducer","installationReducer","date","addPositionsReducer","kioskDefaultState","filters","fromDate","startOf","toDate","collectionDate","currentDate","includeEvents","useCollectionWeek","page","activeRow","transactions","summary","positions","optionAllowExport","collectionDates","details","defaultState","installation","installationId","siteName","gameName","manufacturer","assetNo","LiveFloorViewDetailsModalReducer","logInReducer","isLoading","isValid","cms","cmsMobile","siteController","onClose","onChange","filterData","machinetypes","game","regions","filterActive","directory","search","filterSelected","company","subcompany","site","searchText","organisations","allOrgsActive","activeOrgs","activeSubOrgs","hasSelection","operatorOptions","showOrgTree","transactionsFiltersReducer","installationsFiltersReducer","sessionsFiltersReducer","LiveFloorViewerFiltersReducer","collectionsFiltersReducer","settingsFiltersReducer","kioskFiltersReducer","analysisFiltersReducer","complianceFiltersReducer","periods","currentWeek","selectedSite","siteDisplay","isSiteVariance","selectedVarianceType","sessionsByCompanyReducer","APIDateFormat","defaultFromDate","UIDateFormat","ComplianceAPIDateFormat","UITimeFormat","showSummary","viewInitialState","activeIndex","exportLoading","searchParams","toISOString","companyId","subCompanyId","sessionId","week","transactionRef","playerId","username","useCurrentWeek","selectedFilterType","selectedFilterValue","ticketSerial","ticketsView","filterTypes","filterValues","useCurrentDateTime","transactionsReducer","transactionsTicketsReducer","transactionsLiabilityReducer","transactionsKioskReducer","transactionsViewReducer","transactionAdjustReducer","transactionAuthoriseReducer","transactionVoidReducer","machineDisplay","countDate","min","pos","collectionType","collectionId","curr50","curr20","curr10","curr5","currCoins","new50","new20","new10","new5","newCoins","Comments","COMPLIANCE_SUMMARY_TAB_KEY","complianceSummaryTabReducer","totalRecords","expanded","filtersLoading","gridLoading","graphLoading","formLoading","hideDetails","complianceRecord","rowVersion","isReadOnly","quarter","incompleteRecords","canBeProcessed","quarterName","year","statusCounts","activePage","status","processedQuarters","selfExclusionTypes","eventTypes","incidentTypes","selectedPeriod","selectedQuarter","selectedEventType","selectedSelfExclusionType","selectedIncidentType","selectedStatuses","endOf","allNames","eventsGridLoading","eventsGridActiveRow","incident","record","incidentType","PROCESS_PERIOD_MODAL_TYPE","BaseReducer","constructor","_this","getActionType","this","domain","map","getPath","getReducer","reducer","menu","sites","siteGuid","version","sessionkey","resetPassword","currencyFormat","currencySymbol","minEntryRegex","isDesktop","optionShowSitesList","isInReadMode","optionDisplaySessionsInCompliance","retailerName","siteCode","regionCode","location","subCompanyName","town","guid","anHourFromNow","dayjs","add","getCurrentDateTime","getDatePart","dateFormat","getTimePart","convertToIsoDateTime","time","datetime","locale","validateDate","validateTime","epochInSeconds","Math","floor","Date","now","extend","customParseFormat","customerIncidentTypes","customerUnknown","customerIncidentType","customers","description","capturedByCctv","injuries","injuryDetails","esCalled","esTypes","ambulanceDetails","timeServicesContacted","servicesDidNotAttend","timeServicesArrived","incidentNumber","incidentRecord","customerRecord","officerRecord","officerType","defaultInteractionOptions","outcomes","reasons","loadingCustomers","customersResponse","customersOptions","unselectedCustomerOptions","searchedCustomer","customerInteractionOptions","loadingOfficers","loadingPoliceId","policeId","officersOptions","searchedOfficer","officer","searchQuery","isEnforcementPolice","officerTypes","loadingOfficerTypes","officerFormData","badgeNumber","stationName","phoneNumber","address1","address2","postcode","loadingOptions","customer","isCustomerVulnerable","isCustomerOk","reason","outcome","otherOutcomeDescription","providedLeaflet","reasonNotProvidedLeaflet","seekHelp","reasonNotSeekHelp","discussedSelfExclusion","reasonNotDiscussedSelfExclusion","selfExclude","reasonNotSelfExclude","reviewDate","setReminder","reminderDate","reminderTime","idTypes","genders","idOther","hasId","idType","otherId","gender","dateOfBirth","under18","under18Confirm","confirmation","hasGambled","hasHadStakeReturned","hasBeenRefusedEntry","observationDate","observationTime","observation","customerMood","observationOptions","moodOptions","mode","useUserCodePin","pinLength","userCodeLength","linkSession","linkedSessionData","defaultRow","showEvents","periodType","loaded","offline","nonOp","online","doorOpen","inPlay","showOnline","showOffline","showNonOp","showDoorOpen","showInPlay","enforcementVisitOptions","customerId","formData","complianceId","sessionIds","machine","machineReference","cctvCatched","signature","phoneNumberEdit","emailAddressEdit","showSuspectModal","suspectsTable","activityType","suspectIds","suspects","policedInvolved","loadingTypes","typeOptions","isGamblingRelated","officerTypeId","visitDetails","loadingImages","incidentId","imageList","progress","image","complianceMetadata","activeComplianceModule","complianceModel","complianceRecords","complianceEvents","compliceCustomerConfig","appReducer","combineReducers","addCommentModal","addCommentModalReducer","assetOwnershipProfileModal","AssetOwnershipProfileModalReducer","bankingCommentsModal","bankingCommentsModalReducer","collectionBreakdownModal","collectionBreakdownModalReducer","collectionModal","collectionModalReducer","confirmModal","confirmModalReducer","countDetailsModal","countDetailsModalReducer","downloadReportModal","downloadReportModalReducer","editMachineCountModal","EditMachineCountModalReducer","floatLevelSettingsModal","floatLevelSettingsModalReducer","installHistoryModal","installHistoryModalReducer","newProfileModal","newProfileModalReducer","passwordModal","passwordModalReducer","processPeriodModal","ProcessPeriodModalReducer","promoAnalysisDetailsModal","promoAnalysisDetailsModalReducer","promoAnalysisModal","promoAnalysisModalReducer","revenueModal","revenueModalReducer","siteDetailsModal","siteDetailsModalReducer","siteVarianceHistoryModal","siteVarianceHistoryModalReducer","successAlert","successAlertReducer","varianceHistoryDetailsModal","varianceHistoryDetailsModalReducer","viewCommentsModal","viewCommentsModalReducer","analysisFilters","collectionsFilters","complianceFilters","installationsFilters","kioskFilters","LiveFloorViewerFilters","sessionsFilters","settingsFilters","transactionsFilters","activeInstallation","analysisView","assetRemove","removeAssetReducer","authorise","authoriseReducer","complianceSummaryTab","eftUpdate","eftReducer","installations","kiosk","kioskReducer","liveFloorViewDetailsModal","liveFloorViewDetailsModalReducer","logIn","machineReducer","machineSave","machineSaveReducer","operators","operatorsReducer","organisation","organisationReducer","organisationsReducer","positionsAdd","searchTerms","searchTermReducer","sessionsByCompany","transactionAdjust","transactionAuthorise","transactionsKiosk","transactionsLiability","transactionsTickets","transactionsView","transactionVoid","CustomerIncidentReducer","CustomerFormReducer","LoginReducer","OfficerReducer","OfficerFormModalReducer","AlertModalReducer","InteractionOptionsReducer","CustomerInteractionReducer","AgeVerificationReducer","ObservationsReducer","SetupReducer","LinkSessionReducer","LinkSessionModalReducer","SessionalDetailsReducer","SessionalPositionsReducer","UnresolvedDisputeReducer","SuspiciousActvityReducer","EnforcementReducer","ConfirmModalReducer","UploadReducer","ImageModalReducer","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","thunk","showSuccessAlert","async","dispatch","cmsInstance","axios","create","interceptors","request","use","config","JSON","parse","sessionStorage","getItem","baseURL","headers","common","response","error","includes","removeItem","Promise","reject","ApiClient","setupAxios","registerInterceptors","complianceWillExpire","expiry","token","deviceId","accessToken","refreshToken","url","every","condition","method","then","_ref","expiresIn","setItem","SessionKey","DeviceKey","Authorization","endpoint","apiUrlKey","get","put","post","getFile","verb","responseType","setApiUrlKey","urlKey","client","super","SignIn","email","password","SwitchTenant","RefreshToken","fetchLogin","session","hash","md5","setLogout","callback","logOut","updateAnalysisView","emptyAnalysisSection","mergeWithState","newState","Object","entries","fetchInstallationsFilters","getState","fetchAnalysisFilters","fetchTransactionsFilters","fetchCollectionsFilters","fetchSessionsFilters","fetchLiveFloorViewerFilters","fetchSettingsFilters","fetchKioskFilters","prepareDetails","parts","push","join","fetchInstallations","OperatorId","SiteId","ShowHistory","OperatorRegions","Manufacturers","GameNames","Categories","ShowOfflineOnly","params","Details","fetchAsset","positionId","removeAsset","delete","setAuthorise","catch","emptyInstallationsSection","clearFilters","fetchSession","showGamePlayEvents","fetchComplianceSessions","emptyTransactionsSection","setTransactionsKiosk","setTransactionsLiability","setTransactionsTickets","setTransactionsView","fetchSearchTerms","manufacturers","operatorId","gametitles","fetchOperators","prepareFilter","selected","allOptions","filter","filterAll","fetchAnalysisOrganisations","FromAdmin","fetchOrganisations","fetchKioskOrganisations","Search","subCompanies","parent","child","subCompany","fetchOrganisationByPosition","posId","checkForUpdates","prevProps","newProps","updated","hideSuccessAlert","showInstallHistoryModal","showCountDetailsModal","isYesNo","setAssetOwnershipModal","setCollectionModal","showBankingCommentsModal","showSiteVarianceHistoryModal","setCollectionBreakdownModal","showAddCommentModal","subHeader","hideAddCommentModal","showRevenueModal","setEditMachineCountModal","showFloatLevelSettingsModal","showLiveFloorViewDetailsModal","showDownloadReportModal","handleDownload","contentType","contentDisposition","extension","mime","split","replace","newFile","fileName","blob","Blob","URL","createObjectURL","a","document","createElement","body","appendChild","style","href","download","click","revokeObjectURL","emptySessionsSection","fetchBlankSummary","emptySettingsSection","buildTree","array","modified","children","parentIndex","findIndex","y","mapToSelect","alternative","row","getCategories","updateAsset","Id","Complete","CopyAsset","fetchOperatorProfiles","profile","fetchProfile","profileId","newProfile","fetchOpeningHoursProfile","updateOpeningHours","updateSite","CompanyId","RegionId","updateRegion","regionId","updateCompany","fetchUserAccessProfiles","searchTerm","encodeURIComponent","fetchUserAccessProfile","fromAdmin","updateAccessProfile","updateSecurityUser","userId","ProfileId","complete","emptyKioskSection","CloseButton","props","React","Button","icon","floated","className","onClick","e","stopPropagation","analysis","getMetaData","displayForDataSources","getGrid","fromWeek","toWeek","startTime","endTime","dataType","dataTypes","timeGroupById","dataGroupId","categoryIds","dataSourceId","getGraph","rowKeys","category","getExport","emailAddress","ExpandButton","_props$floated","active","content","fluid","size","basic","compact","color","disabled","MultiSelect","selections","Dropdown","selection","Menu","index","isSelected","Item","preventDefault","Checkbox","checked","position","top","OrgTreeButton","DownloadButton","_props$size","_props$size2","caption","assign","Icon","connect","hours","selectedDataSource","downloadLoading","displayWeeksOfYear","displayDayOfWeek","displayDataType","displayDataTypes","displayTotalOptions","displayHours","processedGroups","group","orgFilter","useEffect","currentSelection","match","onDateChange","onMultiSelectChange","Form","onExport","Field","onDataSourceChange","_ref2","tmp","DateInput","label","iconPosition","_ref3","animation","popupPosition","closable","inlineLabel","autoComplete","_ref4","positive","RevenueGraph","ResponsiveContainer","width","aspect","LineChart","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","tickFormatter","Tooltip","formatter","toolTipFormatter","Legend","line","Line","stroke","colour","strokeWidth","dot","r","getBackgroundColour","getColour","getTextColour","defaultValue","isEmpty","g","b","TextInput","tabIndex","masked","setMasked","useState","isPassword","Input","link","event","readOnly","isEditable","autoFocus","setFocus","placeholder","placeHolder","onBlur","Option","Component","focusValue","handleListChange","handleMoneyChange","handleTextChange","updateAttribute","reallyDoRefresh","update","maxLength","entryPattern","allowedCharacterRegex","appends","lastCharacter","slice","appendedCharacter","checkDenom","handleCheckboxChange","toLowerCase","renderError","class","handleMoneyBlur","target","isNaN","valueChangedSinceFocus","handleMoneyFocus","persist","setState","select","render","inline","onFocus","focus","Fragment","DateTimeInput","getIcon","_ref5","toggle","background","Label","TextArea","_ref6","rows","processedTotal","isCurrency","toFixed","suffix","parseInt","_ref7","labelPosition","TimeInput","_ref8","DataGrid","sortBy","direction","componentDidUpdate","onRowClick","disableActiveRow","isClickable","onCellClick","cell","handleSort","isString","o","Number","cellData","actualValue","sorted","_","orderBy","getCellAlignment","textAlign","alignment","getHeaderAlignment","renderData","jsonData","stringify","isActiveRow","Table","Row","dataToRow","rowIndex","hide","Cell","singleLine","bold","displayValue","onOptionChange","renderGroupHeadings","groupHeadings","HeaderCell","cursor","colSpan","cols","renderHeadings","headings","disableSort","classes","hideOverflow","stretched","fullHeight","Dimmer","inverted","Loader","sortable","unstackable","structured","celled","Header","unstackale","Body","marginTop","noResults","AnalysisView","handleRefresh","Analysis","handleExport","login","loadGraph","canGraph","selectedRow","newSelectedRows","graphDebounce","debounce","componentWillUnmount","defaultStartTime","defaultEndTime","defaultStartWeek","defaultEndWeek","Grid","padded","Column","tablet","computer","largeScreen","widescreen","AnalysisFilters","border","padding","verticalAlign","ButtonGroup","SelectOperator","Select","EGMFilters","statusOpen","handleSelection","handleStatusClick","selectedStatus","getSelect","selectedKey","arrayKey","selectedOperator","Accordion","styled","exclusive","Content","onOperatorChange","onDownloadClick","Title","filtersOpen","BaseSettings","activeMenu","saveCallback","statuses","offlineSiteOpen","pending","authReq","offlineSiteClosed","onlineEFTDisabled","onlineNoFunds","quantities","onlineQty","onlineEFTEnabledQty","offlineSiteOpenQty","pendingQty","authReqQty","offlineSiteClosedQty","unknownQty","onlineEFTDisabledQty","onlineNoFundsQty","mapChanged","stateKey","change","getChanged","getAll","main","operational","ownership","isAllValid","all","handleReload","handleMenuChange","handleChangeValue","doRefresh","getMenuItems","subTypes","EGMTree","renderTree","clickable","css","selectedNode","List","shouldComponentUpdate","nextProps","nextState","assets","OptionsList","horizontal","Group","columns","relaxed","prefix","isHidden","display","labelWidth","componentDidMount","getGroupings","getStatuses","getVariants","updateFilters","selectedGrouping","selectedManufacturer","selectedGameTitle","selectedCabinetType","selectedNoteAcceptorModel","selectedVariant","selectedDepot","selectedOwnershipProfile","selectedSupplier","assetRegisterSummary","MachineTypeId","ManufacturerId","CabinetTypeId","GameId","NoteAcceptorId","StatusCode","VariantId","GroupBy","Depot","ownershipProfileId","SupplierId","treeInfo","getAssets","handleNew","selectedOptions","onNewClick","doDelete","newManufacturer","newGameTitle","newCategory","newDepot","newCabinetType","newNoteAcceptorModel","newSupplier","newAsset","loadNode","loadManufacturer","loadGameTitle","loadAsset","loadCategory","loadDepot","loadCabinetType","loadNoteAcceptorModel","loadSupplier","handleNodeClick","doQuestion","questionText","assetUI","findById","node","handleSave","updateRequest","doUpdate","createAnother","setFilters","getManufacturers","getSuppliers","suppliers","getNoteAcceptorModels","noteAcceptorModels","getDepots","depots","getCabinetTypes","cabinetTypes","getGameTitles","gameTitles","getOwnershipProfiles","variants","groupings","updateManufacturer","updateGameTitle","updateCategory","updateDepot","updateCabinetType","updateNoteAcceptorModel","updateSupplier","handleDelete","assetId","deleteAsset","getAssetsDownload","disableDownload","Detail","qty","floating","as","labeled","button","negative","device","fetchSelect","getGroupBy","getDevices","groupBy","getDevice","getOperators","newDevice","previousDeviceId","updateDevice","decommission","unassign","OptionsModal","canSubmit","another","checkCanSubmit","stateCallback","Modal","closeIcon","scrolling","minHeight","Actions","float","AssetTree","devices","toggleStatus","onSearchTextChange","margin","primary","onSearchClick","hasChildren","selectedDevice","onDeviceClick","onStatusClick","showPasswordModal","handleOperatorChange","handleDeviceClick","Device","result","handleSearch","handleNewDeviceClick","modalOptions","modalOpen","saveNewDevice","handleUnassign","handleDecommission","height","optionAllowSave","optionAllowDecommission","optionAllowUnassign","DeviceManagementView","handleTabChange","getPanes","menuItem","pane","Tab","Pane","HardwareGeneral","panes","renderActiveOnly","onTabChange","revenue","getSummary","categoryId","dataView","groupId","reportType","varianceType","getIncomeSummary","getIncomeSummaryExport","getIncomeGraph","getRevenueSummaryExport","getRevenueViewTypes","getRevenueGraphOptions","getIncomeGraphOptions","getIncomeSecurityViewTypes","getRegions","getCompanies","getSubCompanies","DetailsButton","promoTypeOptions","RevenueFilters","companies","isVariance","onViewTypeChange","useGroupBy","selectedRegion","selectedCompany","selectedSubCompany","varianceTypes","viewTypes","selectedWeek","selectedPromoType","selectedGroupBy","selectedViewType","onCompanyChange","_ref9","_ref10","BaseRevenueView","optionShowDetails","chartLoading","graphOptions","refreshGraph","onGraphTypeChange","handleCompanyChange","fnGetGraphOptions","onFilterChange","fnGetViewTypes","detailsLoading","onDetailsClick","onExportClick","Segment","fontWeight","vertical","handleApiCall","fnRequest","fnSuccess","fnFailure","Positions","prepareData","Transactions","Export","detailId","Floats","UpdateFloats","RefreshButton","timerId","refresh","slider","max","step","handleRefreshMinutes","minutes","clearInterval","setInterval","refreshTxt","Slider","settings","prepareOptions","StatusLabels","labels","mapStatuses","quantity","onSettingsClick","onExpandClick","fetchFilter","onStatusChange","onRefreshClick","allowAuthorise","onAuthoriseClick","optionShowSetting","SummaryButton","rotated","DateTimeSelect","handleDateChange","handleTimeChange","handleChange","onSummaryClick","hour","minute","second","handleCurrentDateChange","getControlValues","cellIndex","KioskModal","KioskView","positionsLoading","transactionsLoading","summaryLoading","Kiosk","setKiosk","fromEntries","keys","onTransactionsRefresh","onPositionClick","onTransactionClick","handleFilterChange","handleOptionChange","onPageChange","handleStatusChange","MachineStatusFilters","Filters","Pagination","totalPages","livefloorview","getFilters","filterByMachine","SubCompanyId","Options","Statuses","PageNumber","filterByOperation","PeriodId","FilterId","getPeriods","period","getReports","report","getSession","sessionid","getSessions","showCashSessions","getEvents","getPerformanceGrid","showOfflineOnly","offlineOnly","getCashInBoxGrid","getCashInBoxExport","getPerformanceExport","getCashInBoxPositions","getCashInBoxPositionsExport","getCashInBoxEvents","numDays","getPerformancePositions","getPerformancePositionsExport","getPerformanceEvents","MachineStatusTab","currentInstallation","handleCommsViewSelection","handleAuthorise","control","handleLoadFilters","LiveFloorViewApi","prevState","SiteDetailsTab","selectedDetailOption","selectedPeriodId","selectedPeriodText","isCashInBox","positionsFn","eventsFn","exportsFn","modalTitle","showSiteDetailsModal","exportFn","onPeriodChange","nativeEvent","textContent","LiveFloorView","prepareParams","missing","parsedParams","i","ReportsDatepicker","required","formatDate","ReportsDropdown","clearable","FormBuilder","isMoment","setDefaultValues","handleProcessReport","onError","reportName","reportId","queryString","values","createReport","decoder","TextDecoder","decode","ReportsList","pointing","reports","onSelection","ReportsView","onParamsChange","getReport","fetchReports","Message","onDismiss","collections","addComment","comment","getVarianceHistory","getVarianceHistoryByMin","getVarianceHistoryExport","getVarianceHistoryOptions","getCommentsByCollection","getComments","getCommentsByPeriod","fromId","toId","getCommentsByInstallation","getCommentsByBatchId","batchId","getBankingWeek","getBankingWeekExport","getBankingWeekByEgm","detailRef","getBankingWeekTransactions","CollectionId","getBankingPerformanceExport","showDetails","getBankingWeekDetail","getBankingPerformanceDetail","getBankingPerformance","getBankingPerformanceByEgm","getMachinePerformancePdf","getMachinePerformanceCsv","getSummaryReportPdf","getBankingSummaryPdf","getBankingVariancePdf","getPerformanceSummaryPdf","getPerformanceSummaryCsv","getPerformanceVariancePdf","editMeter","meterRef","updateMeter","refreshMeter","getPromoTickets","getTicketsInKiosk","getTickets","declareCountEdit","declareCountSave","mapStateToProps","ownProps","showPromoAnalysisModal","from","getPromoCashDetails","BaseAction","hasChanged","getStatePath","getInitialState","reset","LoadingReducer","Login","Logout","getValue","prettifyMoney","LoginAction","flash","collapsing","noScroll","backgroundColor","borderRadius","LoadingAction","handleClose","setData","summarysGrid","suspiciousReason","isSuspicious","optionShowPlayerID","playerID","duration","CompanyFilters","setUseCurrentDateTime","handleSessionIDChange","handleShowEvents","updateDate","convertParentDate","convertParentTime","hideTransactionFilter","zeroBetSessions","hasShowEvents","showUserField","marginLeft","SessionsView","handleSessionSelection","term","getDetails","updateSessionsWithSummary","loadSessions","fetchSessionsWithSummary","loadExport","StartDate","EndDate","SessionId","AssetNo","PlayerId","TransactionRef","ZeroBetSessions","fetchSessionsExport","fetchBlankSummarySessions","refreshDisabled","SessionDetailsModal","CommentsButton","CollectionFilters","onVarianceHistoryClick","to","onChangeCurrentWeek","showVarianceHistory","loadingExport","BaseCollection","loadingReport","fnGetExport","fnRowClick","fnRefresh","loadPeriods","defaultPeriod","isDefault","setCurrentWeek","handleVarianceHistory","handlePdfClick","downloadFn","handleCommentsClick","onVarianceClick","fnGetSummaryPdf","trigger","fnGetSummaryReportPdf","reportNameCsv","fnGetSummaryCsv","fnGetVariancePdf","summaryReportFileName","reportFileName","exportFileName","count","getCounts","getBatch","getCountsExport","getBatchExport","getReportPdf","CollectionType","Comment","MachineCounts","reportLoading","downloadReport","SettingsButton","SiteInstallations","initialValues","activeOrg","activeSubOrg","editableMachine","installMachine","removeMachine","authInstall","modalInstallOpen","modalEditOpen","modalDeleteOpen","modalAddPosition","eftLabel","eftActive","AllowSuspendEnableEFT","numPositions","addPositionError","modalErrorOpen","errorModalTitle","errorModalContent","removeLoading","modalSave","modalReload","showHistory","allowSuspendEnableEFT","optionAllowDisableEFT","optionAllowEnableEFT","activeSiteRef","optionModify","optionInstall","optionAllowAuthorise","optionAllowRemove","setActiveInstallation","handleModalChange","handleInstallationRefresh","hasOwnProperty","eftClick","setEft","autoriseClick","removeClick","refreshClick","resetState","organisationId","handleDownloadClick","fetchInstallationsExport","addPositions","handleHistoryChange","selectMachine","modalLoading","handleSaveInstall","changes","PositionId","setAsset","handleEditMachine","companySite","handleInstallMachine","leftControls","optionShowInstCollectionTabs","secondary","handleExpand","optionAllowAddPosition","warning","eft","VarianceHistory","selectedOption","getOptions","showVarianceHistoryDetailsModal","SiteInstallationsView","currentOrganisationId","optionShowInstVarianceTab","optionShowInstCountDetailsTab","CollectionPerformance","CollectionBanking","attached","OpeningHoursModal","hasChanges","profileName","getOpeningHoursNew","handleCellClick","backColour","closeColour","openColour","updateProfileName","items","onNewProfile","SelectProfile","marginRight","onOperatorSelect","onProfileSelect","onSearchChange","searchDisabled","append","OpeningHours","defaultProfile","handleOperatorSelect","fetchProfiles","handleProfileSelect","fetchOpeningHoursProfiles","openNewModal","optionAllowNewOpeningHoursProfile","optionAllowSaveOpeningHoursProfile","operatorRegion","getRegion","newRegion","getUserRegions","UserId","AccessType","AccessTypeDetails","updateDataAccess","prepareSelections","mappings","reloadList","orgGrid","OperatorRegion","onNewRegionClick","saveRegion","onRegionClick","getOperatorOptions","updateOperator","onNewOperatorClick","getNewOperator","getSelectedOptions","subType","profileData","onCalendarRowClick","getCalender","calendarDetails","calendarData","isCalendar","optionAllowNewOperator","optionAllowEditOperator","Operators","OperatorSettings","subcompanyId","saveFunction","modalSaveFunction","getSite","getSubCompany","getCompany","err","createNewSite","getNewSite","saveNewSite","createNewRegion","getNewRegion","saveNewRegion","createNewCompany","getNewCompany","saveNewCompany","catchFunction","newCompany","newSite","optionAllowNewOrgCompany","optionAllowNewOrgRegion","optionAllowNewOrgSite","optionAllowSaveOrg","camelCaseToText","str","toUpperCase","ComplianceModal","selectedType","selectedEventId","handleChangeEvent","eventTypeId","handleToggleChange","isVisiableField","mapFieldNames","isRadioField","model","onSubmit","container","GridRow","GridColumn","FormRadio","FormInput","ModalActions","ComplianceTable","selectedRowData","showModal","getFields","onDelete","handleEdit","activeModule","GuardianClient","getSelectedModuleData","handleSelect","canAdd","canDelete","TableHeader","TableRow","TableHeaderCell","TableBody","_this$state$selectedR","TableCell","Radio","mapLabelNames","trim","Compliance","selectedDataField","dataFields","customerConfig","AuthenticationClient","clearComplianceMetadata","clearComplianceRecords","fetchComplianceMetadata","onSelectEventType","metadata","datafields","fetchComplianceModel","fetchComplianceRecords","onSelectDataField","selectedEntry","isDisabled","createCompliance","originData","updateCompliance","deleteCompliance","updateCustomerConfig","fetchCustomerConfig","le","_state$complianceMeta","_state$complianceMeta2","_state$complianceMeta3","concat","arr","_item","rest","updateProfile","defaultTab","handleNewProfile","profileModalOpen","handleDefaultChange","handleProfileNameChange","baseProfileId","updateSettingsProfile","onNewProfileClick","menuItems","optionAllowNewSystemSettingProfile","optionAllowSaveSystemSettingProfile","SystemAdminView","Organisation","SystemSettings","getTicketsSummary","getLiability","getLiabilitySummary","getKiosk","getKioskSummary","getTicketsExport","getKioskExport","getLiabilityExport","getFilterTypes","getFilterList","IncludeEvents","UserName","collectionWeek","TicketSerial","filterType","filterValue","BaseTab","view","defaultActivePage","ellipsisItem","fnDispatch","PeriodSelect","extractDate","extractTime","DateTimeGroupInput","renderControls","DatePeriodFilters","CollectionWeekFilters","UserInput","TransactionsView","reduxKey","fnSummary","fnExport","KioskTab","TicketsTab","TicketsFilters","LiabilityTab","loadSummary","TransactionFilters","tickets","liability","ProfileTabs","activeProfile","handleModalClose","successModalOpen","handleSearchChange","handleClick","fetchAccessProfile","getAccessProfile","saveNewProfile","maxWidth","optionAllowNewUserAccessProfile","optionAllowSaveUserAccessProfile","SystemAccess","defaultUser","dataAccess","activeUser","userAccessProfiles","profileChanged","operatorRegions","orgTree","orgTreeSelection","dataAccessChanged","orgGridSelections","operatorCustomerChanged","showDataAccess","allExpanded","handleDataAccessChangeValue","fetchAccessProfiles","user","fetchUser","fetchSecurityUser","userAccessProfile","optionDisplayDataAccess","fetchDataAccess","fetchSecurityUsers","handleNewUser","getSecurityUser","handleOptionsReload","saveNewUser","handleResetPassword","resetUserPassword","userEmail","handleProfileClick","toggleCollapsed","splice","isExpanded","iconName","addNode","removeRow","optionsPrefix","optionallowUserPasswordReset","optionAllowSaveUser","optionAllowNewUser","displayName","Subheader","UserAdminView","UserAccounts","AccessProfiles","_periods$","_processedQuarters$","getEventDetails","siteIds","returnCsv","dateCreatedFrom","dateCreatedTo","statusIds","eventTypeIds","incidentTypeIds","selfExclusionTypeIds","pageSize","Process","Delete","organisationUnitId","SiteSummary","ReadForAuthorise","Authorise","isAuthorised","toggleItemInArray","useComplianceView","useSelector","useDispatch","setViewData","useCallback","_e","useOrganisationTreeSelections","siteCallback","sitesList","getCompanySites","useComplianceSummaryFilters","ComplianceClient","finally","onEventTypeChange","onAllNamesChange","onIncidentTypeChange","onSelfExclusionTypeChange","logout","handleError","_error$response","detail","titleWithStatus","_error$response2","AlertModalAction","useLogin","useEventDetailsGrid","dispatchLogin","keepActiveRow","EventDetailsStatuses","newStatuses","useEventDetailsStatuses","_statusCounts$index$c","_statusCounts$index","onCreateCustomer","editCustomer","removeCustomer","setLoadingCustomers","customerInteractionSchema","yup","shape","notRequired","when","is","schema","otherwise","nullable","z","handleReset","_len","functions","_key","handleResetFunctions","_len2","_key2","fn","useCustomerInteraction","customerInteractionData","CustomerInteractionAction","history","useHistory","methods","useForm","resolver","yupResolver","defaultValues","handleBack","MetaData","Create","ReadForUpdate","Read","Update","machines","addSuspect","setSuspects","SuspiciousActivityReducer","setLoadingOfficers","setLoadingPoliceId","editOfficer","toggleLinkSession","updatedData","newData","removeSelectedSessions","sessionToBeDeleted","prepareCustomers","incidentDetails","prepareCustomer","prepareDateTime","parsed","ageRange","build","ethnicity","features","parseObservationResponse","moods","behaviour","LinkSessionAction","ObservationsAction","linkSessionEnabled","parseAgeVerificationResponse","parseSelfExclusionResponse","selfExclusionDate","parseCustomerIncidentResponse","ambulanceCalled","fireServiceCalled","policeCalled","anyoneInjured","customerIncidentDetails","detailsOfInjured","emergencyServicesAttended","timeEmergencyServicesCalled","timeEmergencyServicesArrived","incidentDate","OfficerAction","CustomerIncidentAction","allowFuture","formatTime","parseEnforcementVisitResponse","enforcementVisitType","parseSuspiciousActivityResponse","SuspiciousActivityAction","suspiciousActivityType","suspiciousActivityDetails","dateServicesContact","policeContactedDateTime","policeArrivedDateTime","useCustomerInteractionForm","useFormContext","watch","formState","errors","resetActions","customerInteractionCreatePayload","_data$providedLeaflet","_data$seekHelp","_data$selfExclude","_data$discussedSelfEx","interactionDate","endDateOfBreak","otherOutcome","reasonNotSeekingHelp","customerOk","fnSubmit","CustomerInteractionClient","setValue","resetForm","setLoadingOptions","fetchInteractionOptions","InteractionOptionsAction","useWindowWidth","setWidth","innerWidth","handleResize","addEventListener","removeEventListener","ToggleComponent","handleTrue","handleFalse","fieldStyle","labelStyle","buttonsContainerStyle","Controller","prompt","InputComponent","register","StandardHiddenInputs","HiddenComponent","SelectComponent","selectContainerStyle","selectWidth","_value$name","_options$find","readValue","identityFormOptionsDefaults","ageRanges","builds","hair","heights","loadingIdentityOptions","hideName","optionalName","showContacts","identityFormData","identityData","identityFormOptions","UpdateMetaData","ageRangeId","buildId","ethnicityId","genderId","hairId","heightId","lastUpdated","lastUpdatedTo","lastUpdatedFrom","foreignPK","fetchIdentityOptions","IdentityFormModalAction","setLoadingIdentityOptions","CustomerClient","onType","IdentityFormModalReducer","additionHelpers","handleAddition","isCustomer","additionLabel","additionButton","filterSelectedCustomerOptions","selectedCustomers","allCustomers","idsToExclude","Set","has","useCustomerForm","handleNewCustomer","showCustomerUnknownCheckbox","CustomerFormAction","hideCustomerSearch","knownCustomers","filterUnknownCustomers","useFilterCustomers","unselectedCustomers","transformData","transformFeatures","phone","Boolean","appendPlaceholders","newIdentityData","hasBeenModified","castCustomerToTable","castCustomerForSubmission","filterOutcomes","searchCustomer","customerOptions","mapCustomersToOptions","SearchableDropdownComponent","allowAdditions","handleFocus","noResultsMessage","onSelect","optionsMap","debouncedHandleSearch","onAddItem","additionPosition","CheckboxComponent","multipleCheckboxes","multiData","boxChecked","checkboxContainerStyle","valueCopy","indexOf","TableComponent","handleRemove","nameColumnClassName","secondColumnName","CustomerForm","handleRemoveCustomer","handleResetCustomer","unknownNameLabel","vulnerabilityFormHelpers","customerFormOptions","filteredCustomer","shouldValidate","resetField","warn","tableData","TextareaComponent","labelAbove","textareaContainerStyle","ToggleTextareaComponent","toggleName","toggleLabel","toggleError","textareaName","textareaPlaceholder","textareaError","toggleValue","DateComponent","maxDate","startMode","initialDate","dateContainerStyle","DiscussionForm","TimeComponent","dateName","timeFormat","timeContainerStyle","DateAndTimeGroup","timeName","dateLabel","timeLabel","errorsDate","errorsTime","Reminder","CustomerOutcomeForm","outcomeDescription","interactionOptionsData","reasonForInteraction","FormButtonsComponent","urlMappings","Map","redirectOptions","RedirectDashboard","splitMenu","pattern","patternIndex","chunkSize","chunk","splitArrayByPattern","rowItems","imageSize","raised","enabled","endsWith","Image","src","renderRow","CustomerInteractionForm","handleSubmit","VulnerabilityForm","loadRecord","optionComplianceAllowEdit","optionComplianceAllowAuthorise","optionComplianceAllowDelete","onDeleteClick","loginData","CustomerInteractionContainer","isRead","parseCustomerInteractionResponse","FormProvider","ComplianceHeader","notInFuture","ctx","isAfter","ValidationError","createError","notFutureTime","today","isBefore","ageVerificationSchema","detailsRequired","oneOf","useAgeVerification","form","onBack","AgeVerificationAction","formatForSelect","dataToFormat","selectData","sort","fetchAgeVerificationData","AgeVerificationClient","prepareAgeVerificationData","ageVerificationDate","isUnder18","useAgeVerificationForm","watchIdType","watchDob","diff","handleFormLoad","handleFormReset","confirmationList","under18List","CustomerHasIdForm","watchUnder18","CustomerHasNoIdForm","watchGambledBeforeChallenge","watchCustomerHasId","centered","AgeVerificationContainer","selector","AgeVerificationForm","observationsSchema","useObservationCustomerUtils","customerFormData","fetchObservationsData","ObservationsClient","behaviours","prepareObservationsData","recordData","customerRecordData","mood","formatMoodForSubmit","moodId","obj","useObservationsUtils","onReset","MultiSelectComponent","multiple","ObservationsSelectForm","ObservationsForm","ObservationContainer","useObservationContainer","newGrid","useUnresolvedDispute","sigPad","UnresolvedDisputeAction","SetupAction","unresolvedDisputeSchema","installationGuid","IncidentClient","gamblingDisputeTypes","disputeTypes","current","clear","SessionalDetailsAction","SessionalPositionsAction","unresolvedDisputeCreatePayload","_data$customerId","editCustomerContacts","incidentStatus","customerIncident","enforcementVisit","gamblingDispute","gamblingDisputeDetails","gamblingDisputeType","suspiciousActivity","useUnresolvedDisputeForm","SignatureComponent","sigRef","SignaturePad","ref","penColor","canvasProps","onEnd","dataUrl","getTrimmedCanvas","toDataURL","handleSignatureEnd","clearSignature","useUnresolvedDisputeCustomer","fetchCustomerRowVersion","filteredCustomerForTable","labelClass","handleBlur","inputContainerStyle","maxCharacters","UnresolvedDisputeCustomerForm","ButtonComponent","buttonName","ToggleLinkSession","linked","LinkSessionModalAction","linkedSessionIds","sessionGuid","gridData","newCellData","handleRowClickOptionChange","clickedRow","toggleSessionOption","currentValue","LinkedSession","_details$title","sessionsToBeDeleted","filterSelectedSessions","newGridData","sessionGuids","LinkSessionComponent","setLoadingImages","imageId","handleSuccess","redirectPath","fetchCctvImages","UploadAction","MediaClient","useUpload","fileInputRef","useRef","imageToUpload","setImageToUpload","handleFileChange","file","files","handleButtonClick","handleUpload","reader","FileReader","readAsDataURL","onload","fileData","onUploadProgress","progressEvent","percentCompleted","round","useUploadedImageList","handleView","imageName","res","ImageModalAction","ConfirmModalAction","deleteImage","UploadedImageList","thumbnail","UploadComponent","hidden","accept","DisplaySignature","bordered","UnresolvedDisputeForm","watchCctv","useIncidentContainer","onRowUpdate","_sessionIds$filter","_incidentDetails$mach","_incidentDetails$mach2","filteredSessions","fetchSessionsByGuids","machineRef","UnresolvedDisputeContainer","GAMBLING_DISPUTE_TYPE","capturedByCCTV","parseGamblingDisputeResponse","setLoadingOfficerTypes","isLoadingOfficerTypes","fetchPoliceId","OfficerClient","isPoliceOfficer","fetchSuspiciousActivityMetaData","suspiciousActivityTypes","useSuspiciousActivity","suspiciousActivitySchema","policeInvolved","hasSuspects","hasSuspectIds","OfficerFormModalAction","newOfficer","useSuspiciousActivityForm","officerId","policeDidNotAttend","customerIds","suspiciousActivityCreatePayload","useSuspects","removeSuspects","handleNewSuspect","suspect","handleRemoveSuspect","removeSuspectIds","SuspectsForm","services","transformOfficerData","_data$badgeNumber","_data$phoneNumber","emergencyServicesHelpers","handleNewOfficer","handleRemoveOfficer","DidNotAttendTimeGroup","didNotAttendName","timeError","didNotAttendError","checkboxFieldStyle","checkboxLabelStyle","timeFieldStyle","timeLabelStyle","didNotAttend","useOfficerForm","badgeNumberOrName","mappedResponse","mapOfficersToOptions","searchOfficer","OfficerForm","EmergencyServicesForm","eSCalled","policeOnly","SuspiciousActivityForm","SuspiciousActivityContainer","SUSPICIOUS_ACTIVITY_TYPE","policeIncident","fetchIncidentData","prepareIncidentData","newCustomers","existingCustomers","person","nextPerson","emergencyServicesCalled","RowVersion","useCustomerIncidentForm","watchCustomerIncidentType","customerIncidentFormHelpers","customerListsUpdate","formValue","tableValue","getCustomers","getValues","some","el","tableDataUpdate","customersUpdate","watchInjuries","watchESCalled","watchServices","watchDidNotAttend","customerIncidentSchema","of","CustomerIncidentContainer","useCustomerIncident","CUSTOMER_INCIDENT_TYPE","CustomerIncidentForm","setLoadingTypes","enforcementSchema","fetchEnforcementTypes","EnforcementAction","gambling","handlesGamblingRelated","nongambling","handlesNonGamblingRelated","enforcementTypesToSelect","enforcementVisitTypes","enforcementCreatePayload","useEnforcementForm","filterEnforcementTypes","EnforcementForm","EnforcementVisitContainer","useEnforcement","ENFORCEMENT_VISIT_TYPE","selfExclusionSchema","selfExclusionType","customerReference","useSelfExclusion","selfExclusionDefaultValues","fetchSelfExclusionMetaData","SelfExclusionClient","useSelfExclusionForm","selfExclusionCreatePayload","SelfExclusionForm","_errors$selfExclusion","_watch","SelfExclusionContainer","useSelfExclusionContainer","IncidentContainer","FormContainer","EventDetailsForm","CustomerButton","EventDetailsTable","icons","_createdByPerson$name","_authorisedByPerson$n","dateCreated","createdByPerson","authorisedByPerson","yearQuarter","EventDetailsTab","isDetailsVisible","ceil","currentItem","lastItem","mobile","TypesFilterItem","TypesFilterDropdown","maximumSelected","totalSelected","allSelected","Divider","eventType","PeriodFilters","SearchInput","DateFiltersDropdown","DropdownMenu","DropdownItem","ComplianceSummaryButtons","useComplianceSummaryGrid","useProcessPeriodModal","disableProcessQuarterBtn","setProcessPeriodModal","toggleProcessPeriodModal","onLoadProcess","onProcessClick","incompleteStatuses","isComplete","processFn","onCompleteClick","EventDetailsButtons","optionComplianceAllowPeriodEnd","MainFilters","ComplianceView","availablePanes","component","RevenueView","IncomeSecurityView","AssetAdminView","AddCommentModal","modal","getProfiles","getProfile","getProfileAttributes","getTypes","getTypeAttributes","typeId","saveProfile","attributeTypeId","createProfile","ScrollableList","nameFieldRef","_nameFieldRef$current","updateProfiles","newFields","onSaveClick","saveFn","CommentsList","Container","egm","BankingCommentsModal","subheader","BaseBreakdownTab","meterGridKey","detailGridKey","optionAllowEdit","closeModal","loadData","controls","allowShowMeters","showSecondGrid","onDetailsRowClick","paddingBottom","PrimaryTabs","CollectionPeriod","InterimCollections","CommentsTab","collection","onLoad","setLoading","processDetails","classname","transanctionSummaryGrid","SimpleTab","CollectionBreakdownModal","detailsRow","showMachineCollectionDetailsModal","hideCollectionBreakdownModal","handleViewComments","handleCommentSave","handleAddComment","onCountDetailsClick","onViewCommentsClick","SecondaryTabs","CollectionModal","requestFile","handleVariancePdfClick","handleSummaryPdfClick","checkProps","prop","showFloatsGrid","rightWidth","maxHeight","breakdown","ConfirmModal","CountDetailsModal","hideCountDetailsModal","loadingComments","showViewCommentsModal","handleSaveComment","countDateDisplay","downloadExport","EnterPasswordModal","hidePasswordModal","FloatLevelSettingsModal","hideFloatLevelSettingsModal","floatControls","stackable","InstallHistoryModal","hideInstallHistoryModal","LiveFloorViewDetailsModal","eventsLoading","sessionsLoading","selectedSessionLoading","events","sessions","selectedSession","handlePeriodChange","handleSessionSelect","stateColour","hideLiveFloorViewDetailsModal","commsStateText","NewProfileModal","PromoAnalysisDetailsModal","hidePromoAnalysisDetailsModal","PromoAnalysisModal","hidePromoAnalysisModal","showPromoAnalysisDetailsModal","RevenueModal","hideRevenueModal","SiteDetailsFilters","SiteDetailsModal","loadingPositions","loadingEvents","hideSiteDetailsModal","triggerApiCall","fnApiCall","handleRefreshEvents","SuccessModal","SiteVarianceHistoryModal","hideVarianceHistoryDetailsModal","hideViewCommentsModal","denoms","newValues","sumByKey","sum","sumChanged","coinsDiff","validFields","CountModalSummary","Footer","onProcess","ProcessPeriodModal","_summary$ageVerificat","_summary$customerInci","_summary$suspiciousAc","_summary$enforcementV","_summary$gamblingDisp","_summary$customerInte","licenceType","selfExclusionNewCount","selfExclusionBreachCount","selfExclusionReturnToGamblingCount","ageVerificationCount","customerIncidentCount","suspiciousActivityCount","enforcementVisitCount","gamblingDisputeCount","customerInteractionCount","idx","zIndex","confirm","officerSchema","useOfficerFormModal","isNumeric","stationNameField","phoneNumberLabel","mapOfficerFormOptions","officerForm","officerFormFields","addressForm","addressFormFields","OfficerDetailsForm","ImageModal","shortTerm","widths","useSessionsUtils","includeDoorOpen","includeShowInPlay","makeLabels","onDetailClick","toggleFilter","SessionsDetails","handleSessionsOptionChange","Flex","Sessions","SessionsCompliance","Session","useSessions","isComplianceMobile","compliance","useLoadDetails","fetchComplianceSessionsPositions","SessionsApi","LinkSessionModal","selectedSessionDetails","handleSessionsRowClick","ModalContainer","AssetOwnershipProfileModal","DownloadReportModal","OfficerFormModal","VarianceHistoryDetailsModal","ViewCommentsModal","EditMachineCountModal","AlertModal","CommonConfirmModal","OrganisationDirectory","buttonEnabled","allOrgsSelected","showOrganisations","showEmpty","handleSearchTextChange","assignOperator","empty","fetchOperatorOptions","panelsList","isActive","hasItems","subCompanys","setSelection","renderLevel2","toggleActiveFilter","searchOptions","toggleAllOrgs","extraFilters","displayText","defaultCompany","defaultSubCompany","defaultSite","companyMatches","subCompanyMatches","siteMatches","fixed","allowAll","defaultActiveIndex","panels","includeSearchTerms","section","renderLevel3","listItems","orgs","activeLink","liveFloorViewerFilters","fetchComplianceFilters","emptyCollectionsSection","defaultProps","hideable","useIdleTimer","timeout","logOutSeconds","onIdle","DefaultView","alignItems","alt","collapsed","onCollapse","onItemClick","menuOptions","onLogout","SystemTray","companyName","Panes","getAvailablePanes","rmTab","updateTab","createPane","setPane","calculateLeftMargin","isOrgTreeCollapsed","newPane","newPanes","optionShowSupportWidget","jiraScriptTag","setAttribute","setTimeout","dispatchEvent","Event","bubbles","cancelable","getElementById","createWidget","supportWidgetKey","TimeoutCheck","MainMenu","OrganisationDirectoryMenu","setActiveFilter","minWidth","Forgotten","showMessage","handleReturnToLogin","loginFail","showReset","optionShowResetPassword","expired","userName","hasCompliancePermission","loggedIn","passwordMatch","newPasswordRepeat","newPassword","forgotPassword","logInFail","browser","detect","URLSearchParams","defaults","setPassword","handleScoreChange","score","PasswordStrengthBar","scoreWords","onChangeScore","logInSet","prevPassword","password2","Incompatible","App","setIsLoading","fetch","json","base_url","auth_api_url","comp_api_url","BrowserRouter","Switch","Route","path","Reset","exact","ReactDOM","Provider","querySelector"],"mappings":"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","file":"static/js/main.d1bbe60f.chunk.js","sourcesContent":["export default function defaultReducer(key, initialState) {\n\treturn (state = initialState, action) => {\n\t\tswitch (action.type) {\n\t\t\tcase key:\n\t\t\t\treturn Array.isArray(state) ? action.payload : typeof state === \"object\" ? { ...state, ...action.payload } : action.payload;\n\t\t\tdefault:\n\t\t\t\treturn state;\n\t\t}\n\t}\n}\n","import defaultReducer from './defaultReducer';\n\nconst defaultState = {\n name: '',\n operator: 1000029,\n open: false,\n selectedProfile: { id: null, name: '' },\n ownershipTypeId: null,\n types: [],\n profiles: [],\n fields: [],\n changed: [],\n loading: true\n}\n\n\n\nexport default defaultReducer('ASSET_OWNERSHIP_PROFILE_MODAL', defaultState)","import defaultReducer from './defaultReducer' ;\n\nexport default defaultReducer('ADD_COMMENTS_MODAL', { open: false, siteText: \"\", weekText: \"\", egmText: \"\", onSave: () => {} })","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer(\"DOWNLOAD_REPORT_MODAL\", {\n open: false,\n filename: \"\",\n onSave: () => {},\n});\n","import moment from \"moment\";\nimport defaultReducer from \"./defaultReducer\";\n\nexport const graphInitialState = {\n lines: [],\n data: []\n}\n\nexport const gridInitialState = {\n data: [],\n headerDef: [],\n rowDef: [],\n pageCount: 1,\n pageNumber: 1\n}\n\nexport const analysisInitialState = {\n startDate: moment().subtract(14, 'days').utc().set({ m: 0, s: 0, h: 0 }),\n endDate: moment().set({ m: 0, s: 0, h: 23}),\n selectedStartTime: 8,\n selectedEndTime: 18,\n loading: false,\n graphType: 1,\n selectedRows: [],\n selectedTimeGroupBy: null,\n selectedTotalBy: null,\n selectedMeasure: null, // for data types single select\n selectedMeasures: [], // for data types multi select\n selectedDayOfWeek: [],\n selectedDataGroup: null,\n selectedCategory: [],\n timeGroupBy: [],\n filteredTimeGroupBy: [],\n dataGroups: [],\n categories: [],\n daysOfWeek: [],\n dataSource: [],\n measures: [],\n weeks: [],\n defaultMeasures: [],\n totalBy: [],\n grid: gridInitialState,\n graph: graphInitialState,\n hideGraph: false\n}\n\nexport const analysisReducer = defaultReducer('ANALYSIS_VIEW', analysisInitialState);\n","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('SET_AUTHORISE', []);\n","import defaultReducer from './defaultReducer';\n\nconst defaultState = {\n open: false,\n header: \"\",\n comments: []\n}\n\n\nexport default defaultReducer('BANKING_COMMENTS_MODAL', defaultState)\n","import currency from 'currency.js';\n\nexport const prettyMoney = (value, precision = 2) => currency(value, { symbol: \"\", precision }).format()\n\nexport const uglyMoney = (value) => currency(value).toString()","import { uglyMoney } from \"./currency\";\n\nexport const getOptionTotal = (option, optionsList) => {\n let total = 0;\n\n if (!Array.isArray(option.data)) {\n return total;\n }\n\n option.data.forEach(item => {\n const field = optionsList.find((x) => x.code === item.id);\n if (!field) {\n return;\n }\n const value = parseFloat(uglyMoney(getOptionValue(field)) || 0);\n switch (item.text) {\n case \"-\":\n total -= value;\n break;\n\n case \"*\":\n total *= value;\n break;\n\n case \"/\":\n total /= value;\n break;\n\n default:\n total += value;\n break;\n }\n });\n return total;\n}\n\nexport const getOptionValue = (option) => {\n switch (option.type) {\n case 1: // List (tested)\n return option.defaultList && option.defaultList.id\n ? option.defaultList.id\n : \"\";\n\n case 3:\n case 5:\n return option.defaultDate || \"\";\n\n default:\n return option.defaultText || \"\";\n }\n}\n\nexport const validateOptions = (options) => {\n for (const option of options) {\n if (option.type === 13 && option.isRequired) {\n const total = getOptionTotal(option, options);\n\n if (option.minValue > total || option.maxValue < total) {\n console.log(\"value\", option.text)\n return false;\n }\n }\n\n if (option.isRequired && !getOptionValue(option) && option.type !== 13) {\n console.log(\"isReq\", option.text)\n return false;\n }\n\n if (option.regex && option.isRequired) {\n const regex = new RegExp(option.regex);\n if (!regex.test(getOptionValue(option))) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { getOptionValue } from './options';\n\nexport const defaultGrid = { grid: { headerDef: [], rowDef: [], data: [], span: [] } }\n\n/**\n * Update the value of an option in a DataGrid\n * \n * @param {GridData} grid \n * @param {Option} option \n * @returns \n */\nexport const handleOptionChange = (grid, option) => {\n let { data } = grid;\n\n data.forEach((row, rowIndex) => {\n row.cellData.forEach((cell, cellIndex) => {\n if (cell.data.code === option.code) {\n data[rowIndex].cellData[cellIndex].data = option\n }\n })\n })\n\n return { ...grid, data }\n}\n\n/**\n * Iterates through a DataGrid and generates an object of all inputs and their values. \n * Typically used by summaries.\n * \n * @param {GridData} data \n * @returns \n */\nexport const processDetails = (data) => {\n const details = {};\n\n data.forEach((row, rowIndex) => {\n row.cellData.forEach((cell, cellIndex) => {\n if (cell.type === \"control\") {\n details[cell.data.code] = getOptionValue(cell.data);\n }\n })\n })\n\n return details;\n}\n\nexport const wait = (time) => {\n return new Promise(resolve => setTimeout(resolve, time));\n}\n","import { defaultGrid } from '@helpers/datagrid';\nimport defaultReducer from './defaultReducer';\n\nexport default defaultReducer(\n 'COLLECTION_BREAKDOWN_MODAL',\n {\n comments: [],\n loading: false,\n open: false,\n detailGrid: defaultGrid.grid,\n detailGridInterim: defaultGrid.grid,\n meterGrid: defaultGrid.grid,\n collectionPeriod: defaultGrid.grid,\n interimCollections: defaultGrid.grid,\n varianceHistory: defaultGrid.grid,\n transactionsGrid: defaultGrid.grid,\n eventsGrid: defaultGrid.grid,\n transactionsSummaryGrid: defaultGrid.grid,\n siteText: \"Rimini Test lab A, Chester\",\n weekText: \"10 - Aug 1st - Aug 9th\",\n egmText: \"[54] - Lucky Dip, Rimini\",\n showEventsGrid: false,\n showMetersGrid: true,\n showTicketsGrid: true,\n ticketsGrid: defaultGrid.grid,\n showMetersGridInterim: true,\n optionShowExport: false,\n optionShowVariance: false,\n optionShowVarianceHistory: false,\n onRefresh: () => { }\n }\n)","import { defaultGrid } from '@helpers/datagrid';\nimport defaultReducer from './defaultReducer';\n\n\nexport default defaultReducer(\n 'COLLECTION_MODAL',\n {\n open: false,\n title: \"Collection Week Banking\",\n operator: null,\n siteId: null,\n periodId: null,\n fnLoad: () => { },\n isPerformance: false,\n detailGrid: defaultGrid,\n summaryGrid: defaultGrid,\n categoryGrid: defaultGrid,\n siteFloatGrid: defaultGrid,\n kioskGrid: defaultGrid,\n optionShowViewCommentsButton: false,\n siteText: \"\",\n weekText: \"\",\n }\n)\n","import defaultReducer from \"./defaultReducer\";\n\nconst initialState = { message: \"\", visible: false, onConfirm: () => {}}\n\nexport default defaultReducer('CONFIRM_MODAL', initialState);","import { defaultGrid } from '@helpers/datagrid';\nimport defaultReducer from './defaultReducer';\n\nexport default defaultReducer('COUNT_DETAILS_MODAL', { open: false, ...defaultGrid })\n","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('SET_EFT', []);\n","import defaultReducer from './defaultReducer';\n\nexport default defaultReducer('FLOAT_LEVEL_SETTINGS_MODAL', { \n open: false,\n maximumFloats: [],\n lowFloats: []\n})","import defaultReducer from './defaultReducer' ;\n\nexport default defaultReducer('INSTALL_HISTORY_MODAL', { grid: { data: [], rowDef: [], headerDef: [] }, open: false })\n","import defaultReducer from './defaultReducer';\n\nexport const setActiveInstallationReducer = defaultReducer('SET_ACTIVE_INSTALLATION', {});\nexport const installationReducer = defaultReducer('FETCH_INSTALLATIONS', { grid: { date:[], headerDef:[], rowDef:[] } });\nexport const addPositionsReducer = defaultReducer('ADD_POSITIONS', \"\");\n","import { defaultGrid } from '@helpers/datagrid';\nimport moment from 'moment';\nimport defaultReducer from './defaultReducer';\n\nexport const kioskDefaultState = {\n filters: {\n fromDate: moment().subtract(1, 'days').startOf('day'),\n toDate: moment(),\n collectionDate: null,\n currentDate: true,\n includeEvents: false,\n periodId: 2,\n loading: false,\n useCollectionWeek: 0,\n page: 1\n },\n activeRow: null,\n transactions: {\n ...defaultGrid,\n pageCount: 1\n },\n summary: defaultGrid,\n positions: {\n ...defaultGrid,\n optionAllowExport: false,\n collectionDates: []\n },\n details: defaultGrid\n}\n\nexport default defaultReducer('KIOSK_VIEW', kioskDefaultState);\n\n","\nconst defaultState = {\n\topen: false,\n\tinstallation: {\n\t\tinstallationId: null,\n\t\tsiteName: \"\",\n\t\tgameName: \"\",\n\t\tmanufacturer: \"\",\n\t\tassetNo: \"\"\n\t}\n}\n\nconst LiveFloorViewDetailsModalReducer = (state = defaultState, action) => {\n\tswitch (action.type) {\n\t\tcase 'LIVE_FLOOR_VIEW_DETAILS_MODAL':\n\t\t\treturn { ...defaultState, ...action.payload };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\nexport default LiveFloorViewDetailsModalReducer;\n","import defaultReducer from './defaultReducer';\n\nexport const logInReducer = defaultReducer('FETCH_LOGIN', \"\");\n\nexport const logInSetReducer = defaultReducer('SET_PASSWORD', \"OK\");\nexport const logInResetReducer = defaultReducer('RESET_PASSWORD', \"OK\");\nexport const logOutReducer = defaultReducer('SET_LOGOUT', \"\");\n","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('FETCH_MACHINE', []);","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('SET_MACHINE', [])\n","import defaultReducer from './defaultReducer' ;\nconst defaultState = { \n isLoading: false,\n isValid: false,\n open: false, \n header: [],\n cms: [], \n cmsMobile: [], \n siteController: [],\n onSave: () => {}, \n onClose: () => {},\n onChange: () => {}\n}\n\nexport default defaultReducer('NEW_PROFILE_MODAL', defaultState)\n","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('FETCH_OPERATORS', []);","import defaultReducer from './defaultReducer';\n\nexport const initialState = {\n\tfilterData: {\n\t\toperator: [],\n\t\tmanufacturer: [],\n\t\tmachinetypes: [],\n\t\tgame: [],\n\t\tregions: []\n\t},\n\tfilterActive: {\n\t\tdirectory: true,\n\t\tmanufacturer: false,\n\t\tgame: false,\n\t\tmachinetypes: false,\n\t\tregions: false,\n\t\tsearch: false\n\t},\n\tfilterSelected: {\n\t\tcompany: { id: null },\n\t\tsubcompany: { id: null },\n\t\tsite: { id: null },\n\t\tsearchText: '',\n\t\toperator: null,\n\t\tregions: [],\n\t\tmanufacturer: [],\n\t\tmachinetypes: [],\n\t\tgame: []\n\t},\n\torganisations: [],\n\tallOrgsActive: true,\n\tactiveOrgs: [],\n\tactiveSubOrgs: [],\n\thasSelection: false,\n\toperatorOptions: {},\n\tshowOrgTree: true\n}\n\nexport const transactionsFiltersReducer = defaultReducer('FETCH_TRANSACTIONS_FILTERS', initialState);\nexport const installationsFiltersReducer = defaultReducer('FETCH_INSTALLATIONS_FILTERS', initialState);\nexport const sessionsFiltersReducer = defaultReducer('FETCH_SESSIONS_FILTERS', initialState);\nexport const LiveFloorViewerFiltersReducer = defaultReducer('FETCH_LIVE_FLOOR_VIEWER_FILTERS', initialState);\nexport const collectionsFiltersReducer = defaultReducer('FETCH_COLLECTIONS_FILTERS', initialState);\nexport const settingsFiltersReducer = defaultReducer('FETCH_SETTINGS_FILTERS', initialState);\nexport const kioskFiltersReducer = defaultReducer('FETCH_KIOSK_FILTERS', initialState);\nexport const analysisFiltersReducer = defaultReducer('FETCH_ANALYSIS_FILTERS', initialState);\nexport const complianceFiltersReducer = defaultReducer('FETCH_COMPLIANCE_FILTERS', initialState);\n","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('FETCH_ORGANISATION_BY_POSITION', null)","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('FETCH_ORGANISATIONS', []);\n","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('PASSWORD_MODAL', { visible: false, header: '', message: '', onConfirm: () => {} })","import { defaultGrid } from \"@helpers/datagrid\";\nimport defaultReducer from \"./defaultReducer\";\n\nconst initialState = {\n open: false,\n ...defaultGrid\n}\n\nexport default defaultReducer('PROMO_ANALYSIS_DETAILS_MODAL', initialState);","import { defaultGrid } from \"@helpers/datagrid\";\nimport defaultReducer from \"./defaultReducer\";\n\nconst initialState = {\n open: false,\n grid: defaultGrid,\n periods: [],\n currentWeek: true\n}\n\nexport default defaultReducer('PROMO_ANALYSIS_MODAL', initialState);","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('REMOVE_MACHINE', []);","import defaultReducer from \"./defaultReducer\";\n\nconst initialState = { \n open: false,\n selectedSite: {\n siteId: null,\n siteDisplay: \"\"\n },\n isSiteVariance: false,\n operator: null,\n selectedVarianceType: null\n}\n\nexport default defaultReducer('REVENUE_MODAL', initialState);","import defaultReducer from './defaultReducer';\n\nexport default defaultReducer('FETCH_SEARCHTERMS', []);","import { defaultGrid } from \"@helpers/datagrid\";\n\nconst initialState = {\n\tgrid: { ...defaultGrid.grid },\n\tsummary: { ...defaultGrid.grid },\n\tpageCount: 1\n}\n\nconst sessionsByCompanyReducer = (state = initialState, action) => {\n\tswitch (action.type) {\n\t\tcase 'FETCH_SESSIONS_BY_COMPANY':\n\t\t\treturn { ...state, ...action.payload };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default sessionsByCompanyReducer;\n","import { defaultGrid } from \"@helpers/datagrid\";\nimport defaultReducer from \"./defaultReducer\";\n\nconst initialState = {\n title: \"Cash In Box\",\n open: false,\n ...defaultGrid,\n onRefresh: () => { }\n}\n\nexport default defaultReducer('SITE_DETAILS_MODAL', initialState);","import defaultReducer from './defaultReducer';\n\nexport default defaultReducer('SITE_VARIANCE_HISTORY_MODAL', { open: false })\n","import defaultReducer from \"./defaultReducer\";\n\nexport default defaultReducer('SUCCESS_ALERT', { message: \"\", visible: false})\n","\nimport moment from 'moment'\n\nexport const APIDateFormat = 'DD MMMM YYYY'\nexport const APIDateTimeFormat = 'DD MMMM YYYY HH:mm:ss'\nexport const defaultFromDate = moment().subtract(1, 'days').startOf('day')\nexport const UIDateFormat = \"DD-MM-YYYY\"\nexport const UIDateTimeFormat = \" HH:mm\"\nexport const ComplianceAPIDateFormat = \"YYYY-MM-DD\"\nexport const ComplianceUIDateTimeFormat = \"YYYY-MM-DD HH:mm\"\nexport const UITimeFormat = \"HH:mm\"\nexport const UIFileFormat = \"DD-MM-YYYY-HH-mm-ss\"\n\nexport const mapPeriodsToSelect = (array) => {\n return array.map(\n ({ name, fromDate, toDate }) => ({ key: name, text: name, value: { fromDate, toDate } })\n );\n}\n","import { defaultFromDate } from \"@helpers/dates\";\nimport moment from \"moment\";\n\nconst defaultReducer = (key, initialState) => {\n return (state = initialState, action) => {\n switch (action.type) {\n case key:\n return typeof action.payload === \"string\" ? action.payload : { ...state, ...action.payload };\n default:\n return state;\n }\n }\n}\n\nconst initialState = {\n loading: false,\n grid: { data: [], headerDef: [], rowDef: [], pageCount: 1, pageNumber: 1 },\n summary: { data: [], headerDef: [], rowDef: [] },\n showSummary: false,\n}\n\nconst viewInitialState = {\n activeIndex: 0,\n exportLoading: false,\n searchParams: {\n startDate: moment(defaultFromDate).toISOString(true),\n endDate: moment().toISOString(true),\n companyId: null,\n subCompanyId: null,\n siteId: null,\n includeEvents: false,\n sessionId: '',\n week: null,\n transactionRef: '',\n assetNo: '',\n playerId: null,\n username: '',\n useCurrentWeek: true,\n selectedFilterType: \"1\",\n selectedFilterValue: \"-1\",\n ticketSerial: null\n },\n ticketsView: 1,\n filterTypes: [],\n filterValues: [],\n periods: [],\n useCurrentDateTime: true,\n useCollectionWeek: 1,\n showSummary: true\n\n}\n\nexport const transactionsReducer = defaultReducer('FETCH_TRANSACTIONS', initialState);\nexport const transactionsTicketsReducer = defaultReducer('TRANSACTIONS_TICKETS', initialState);\nexport const transactionsLiabilityReducer = defaultReducer('TRANSACTIONS_LIABILITY', initialState);\nexport const transactionsKioskReducer = defaultReducer('TRANSACTIONS_KIOSK', initialState);\nexport const transactionsViewReducer = defaultReducer('TRANSACTIONS_VIEW', viewInitialState);\n\nexport const transactionAdjustReducer = defaultReducer('SET_TRANSACTION_ADJUST', \"\");\nexport const transactionAuthoriseReducer = defaultReducer('SET_TRANSACTION_AUTHORISE', \"\");\nexport const transactionVoidReducer = defaultReducer('SET_TRANSACTION_VOID', \"\");\n","import { defaultGrid } from \"@helpers/datagrid\";\nimport defaultReducer from \"./defaultReducer\";\n\nconst initialState = {\n ...defaultGrid,\n siteDisplay: '',\n machineDisplay: ''\n}\n\nexport default defaultReducer('VARIANCE_HISTORY_DETAILS_MODAL', initialState);","import defaultReducer from './defaultReducer' ;\n\nexport default defaultReducer('VIEW_COMMENTS_MODAL', { open: false })\n","import defaultReducer from './defaultReducer';\n\nconst initialState = {\n site: '',\n countDate: '',\n min: '',\n pos: '',\n game: '',\n open: false,\n activeRow: { collectionType: null, collectionId: null },\n curr50: 0,\n curr20: 0,\n curr10: 0,\n curr5: 0,\n currCoins: 0,\n new50: 0,\n new20: 0,\n new10: 0,\n new5: 0,\n newCoins: 0,\n Comments: '',\n loading: false\n}\n\nexport default defaultReducer('EDIT_MACHINE_COUNT_MODAL', initialState);\n","import moment from \"moment\";\nimport defaultReducer from \"./defaultReducer\";\nimport { ComplianceAPIDateFormat } from \"../../helpers/dates\";\n\nexport const COMPLIANCE_SUMMARY_TAB_KEY = \"COMPLIANCE_SUMMARY_TAB\";\nexport const EVENT_DETAILS_TAB_KEY = \"EVENT_DETAILS_TAB_KEY\";\n\n// @TODO: Rename and segregate?\nexport const complianceSummaryTabReducer = defaultReducer(\n COMPLIANCE_SUMMARY_TAB_KEY,\n {\n activeIndex: 0,\n totalRecords: 0,\n expanded: false,\n filtersLoading: false,\n gridLoading: false,\n graphLoading: false,\n formLoading: false,\n hideDetails: false,\n complianceRecord: {\n id: null,\n rowVersion: null,\n isReadOnly: false,\n },\n quarter: {\n incompleteRecords: null,\n canBeProcessed: false,\n quarterName: \"\",\n startDate: null,\n endDate: null,\n year: null,\n },\n statusCounts: [],\n filters: {\n activePage: 1,\n periods: [],\n status: [],\n processedQuarters: [],\n selfExclusionTypes: [],\n eventTypes: [],\n incidentTypes: [],\n selectedPeriod: null,\n selectedQuarter: null,\n selectedEventType: [],\n selectedSelfExclusionType: [],\n selectedIncidentType: [],\n selectedStatuses: [],\n startDate: moment().subtract(14, \"day\").startOf(\"day\").format(\n ComplianceAPIDateFormat,\n ),\n endDate: moment().endOf(\"day\").format(ComplianceAPIDateFormat),\n allNames: null,\n },\n grid: [],\n eventsGridLoading: false,\n eventsGrid: [],\n eventsGridActiveRow: null,\n incident: { record: { incidentType: { name: null } } },\n graph: {\n symbol: \"\",\n lines: [],\n data: [],\n },\n },\n);\n","import defaultReducer from './defaultReducer';\nimport sampleGrid from '@helpers/sampleGrid';\n\nexport const PROCESS_PERIOD_MODAL_TYPE = 'PROCESS_PERIOD_MODAL_TYPE';\n\nexport const ProcessPeriodModalDefaultState = {\n open: false,\n fromDate: '2024-01-01',\n toDate: '2024-03-31',\n data: []\n}\n\nexport default defaultReducer(PROCESS_PERIOD_MODAL_TYPE, ProcessPeriodModalDefaultState)\n","class BaseReducer {\n getActionType = () => `[${this.domain}] ${this.type}`;\n\n map = () => {\n return { [this.getPath()]: this.getReducer() };\n };\n\n getPath = () => this.domain + \"_\" + this.type;\n\n getReducer = () => {\n return (state = this.initialState, action) => {\n switch (action.type) {\n case this.getActionType():\n return { ...state, ...action.payload };\n default:\n return state;\n }\n };\n };\n}\n\nexport default BaseReducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass LoginReducer extends BaseReducer {\n domain = \"Auth\";\n type = \"Session\";\n\n initialState = {\n menu: [],\n sites: [],\n siteGuid: null,\n name: null,\n version: null,\n sessionkey: null,\n resetPassword: false,\n currencyFormat: null,\n currencySymbol: null,\n minEntryRegex: null,\n isDesktop: false,\n optionShowSitesList: false,\n isInReadMode: true,\n optionDisplaySessionsInCompliance: true,\n site: {\n retailerName: \"\",\n siteCode: \"\",\n regionCode: \"\",\n location: \"\",\n subCompanyName: \"\",\n town: \"\",\n guid: \"\",\n },\n };\n}\n\nconst reducer = new LoginReducer();\n\nexport default reducer;\n","import dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport utc from \"dayjs/plugin/utc\";\n\ndayjs.extend(utc);\n\ndayjs.extend(customParseFormat);\n\nexport function getDateTimeNow() {\n return dayjs().utc().format(\"YYYY-MM-DDTHH:mm:ss[Z]\");\n}\n\n/**\n * Get 1 hour from the current time.\n * @returns {Date} A Date object representing 1 hour ahead of the current time.\n */\nexport function anHourFromNow() {\n return dayjs().add(1, \"hour\").toDate();\n}\n\n/**\n * Get midnight of the previous day.\n * @returns {Date} A Date object representing midnight of the previous day.\n */\nexport function getMidnightPreviousDay() {\n return dayjs().subtract(1, \"day\").startOf(\"day\").toDate();\n}\n\n/**\n * Get the current date and time.\n * @returns {Date} A Date object representing the current date and time.\n */\nexport function getCurrentDateTime() {\n return dayjs().toDate();\n}\n\n/**\n * Get the date part of a Date object.\n * @param {Date} date - The date object to extract the date part from.\n * @param {string} [dateFormat=\"YYYY-MM-DD\"] - The format to use for the date. Defaults to \"YYYY-MM-DD\".\n * @returns {string} The formatted date string.\n */\nexport function getDatePart(date, dateFormat = \"YYYY-MM-DD\") {\n return dayjs(date).format(dateFormat);\n}\n\n/**\n * Get the time part of a Date object.\n * @param {Date} date - The date object to extract the time part from.\n * @returns {string} The formatted time string in \"HH:mm\" format.\n */\nexport function getTimePart(date) {\n return dayjs(date).format(\"HH:mm\");\n}\n\n/**\n * Convert a date and time to ISO 8601 format, accounting for BST (UTC+1).\n * @param {string} date - The date string.\n * @param {string} time - The time string.\n * @returns {string} The ISO 8601 formatted date-time string, or null if invalid.\n */\nexport function convertToIsoDateTime(date, time) {\n const datetime = dayjs(`${date} ${time}`).locale(\"en-gb\");\n\n // Check if dayjs objects are valid\n if (!datetime.isValid()) {\n return null;\n }\n\n // Manually add one hour to account for BST (UTC+1)\n // const bstDatetime = datetime.add(1, \"hour\");\n\n // Convert to ISO 8601 format\n // return bstDatetime.toISOString();\n return datetime.toISOString();\n}\n\n/**\n * Validate a date string against a given format.\n * @param {string} date - The date string to validate.\n * @param {string} [dateFormat=\"YYYY-MM-DD\"] - The format to validate against, ie.\"YYYY-MM-DD\".\n * @returns {boolean} True if the date is valid, false otherwise.\n */\nexport function validateDate(date, dateFormat = \"YYYY-MM-DD\") {\n // Validate the date\n const isDateValid = dayjs(date, dateFormat, true).isValid();\n return isDateValid;\n}\n\n/**\n * Validate a time string in \"HH:mm\" format.\n * @param {string} time - The time string to validate.\n * @returns {boolean} True if the time is valid, false otherwise.\n */\nexport function validateTime(time) {\n const timeFormat = \"HH:mm\";\n // Validate the time\n const isTimeValid = dayjs(time, timeFormat, true).isValid();\n return isTimeValid;\n}\n\n/**\n * Get the year difference between now and the given date.\n * @param {string} date - The data string to validate.\n * @returns {int} The number of years as an int.\n */\nexport function yearDifference(date) {\n return dayjs().diff(dayjs(date), \"year\");\n}\n\n\n/**\n * Returns the the unix epoch in seconds.\n * @returns {int} epoch.\n */\nexport function epochInSeconds() {\n return Math.floor(Date.now() / 1000);\n} \n","import BaseReducer from \"@common/redux/reducers/BaseReducer\";\nimport {\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"@common/components/helpers/datetime\";\n\nclass CustomerIncidentReducer extends BaseReducer {\n domain = \"CustomerIncident\";\n type = \"View\";\n\n initialState = {\n id: null,\n customerIncidentTypes: [],\n customerUnknown: false,\n date: getDatePart(getCurrentDateTime()),\n time: getTimePart(getCurrentDateTime()),\n customerIncidentType: null,\n customers: [],\n description: \"\",\n capturedByCctv: null,\n injuries: null,\n injuryDetails: \"\",\n esCalled: null, // Emergency Service\n esTypes: [],\n ambulanceDetails: \"\",\n timeServicesContacted: getTimePart(getCurrentDateTime()),\n servicesDidNotAttend: false,\n timeServicesArrived: getTimePart(getCurrentDateTime()), // if empty - did not attend\n incidentNumber: \"\",\n comments: \"\",\n incidentRecord: null,\n customerRecord: null,\n officerRecord: null,\n incidentType: null,\n officerType: null,\n type: 1,\n };\n}\n\nconst reducer = new CustomerIncidentReducer();\n\nexport default reducer;\n","export const reasons = [{\n id: 1,\n name: \"Amount spent\",\n}, {\n id: 7,\n name: \"Asked for information on self-exclusion\",\n}, {\n id: 4,\n name: \"Change in behaviour \",\n}, {\n id: 8,\n name: \"Suspect borrowing money to gamble\",\n}, {\n id: 2,\n name: \"Time at machine / at venue\",\n}, {\n id: 5,\n name: \"Visible signs of stress or distress\",\n}, {\n id: 3,\n name: \"Visiting the ATM regularly\",\n}, {\n id: 6,\n name: \"Vulnerable person – physical, impaired or showing signs of stress\",\n}];\n\nexport const outcomes = [\n {\n id: 1,\n name: \"Customer agreed to set a time and spend limit\",\n },\n {\n id: 6,\n name: \"Customer agreed to take a longer break from gambling\",\n },\n {\n id: 5,\n name: \"Customer agreed to take a short break\",\n },\n {\n id: 7,\n name: \"Customer barred for a period of time\",\n },\n {\n id: 2,\n name: \"Customer moved to a lower stake\",\n },\n {\n id: 3,\n name: \"Customer was fine and seems in control of their gambling\",\n },\n {\n id: 4,\n name: \"Other (details entered of the other type of outcome) \",\n },\n];\n\nexport const defaultInteractionOptions = { outcomes, reasons };\n","import { defaultInteractionOptions } from \"@common/components/helpers/options/vulnerabilityFormOptions\";\nimport BaseReducer from \"./BaseReducer\";\n\nclass CustomerFormReducer extends BaseReducer {\n domain = \"CustomerForm\";\n type = \"View\";\n\n initialState = {\n rowVersion: null,\n // Loading flag for the Select component\n loadingCustomers: false,\n // The raw API response for searching a customer\n customersResponse: [],\n // The options for the Search Customer dropdown list fetch from backend API\n customersOptions: [],\n unselectedCustomerOptions: [],\n // The customer input that is populated in the Search Customer search box\n searchedCustomer: null,\n // The customer that is selected for form submission\n customers: null,\n // Options for the customer interaction reasons\n customerInteractionOptions: defaultInteractionOptions,\n };\n}\n\nconst reducer = new CustomerFormReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass OfficerReducer extends BaseReducer {\n domain = \"Officer\";\n type = \"View\";\n\n initialState = {\n // Loading flag for the Select component\n loadingOfficers: false,\n loadingPoliceId: false,\n policeId: 1,\n // The options for the Search Officer dropdown list fetch from backend API\n officersOptions: [],\n // The officer input that is populated in the Search Officer search box\n searchedOfficer: null,\n // The officer that is selected for form submission\n officer: null,\n };\n}\n\nconst reducer = new OfficerReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass OfficerFormModalReducer extends BaseReducer {\n domain = \"OfficerForm\";\n type = \"Modal\";\n\n initialState = {\n open: false,\n title: \"Add Officer\",\n searchQuery: \"\",\n // The currently selected officer type\n officerType: 1,\n isEnforcementPolice: false,\n // The officer type options meta data\n officerTypes: null,\n loadingOfficerTypes: false,\n officerFormData: {\n name: \"\",\n badgeNumber: \"\",\n stationName: \"\",\n phoneNumber: \"\",\n address1: \"\",\n address2: \"\",\n town: \"\",\n postcode: \"\",\n },\n };\n}\n\nconst reducer = new OfficerFormModalReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass AlertModalReducer extends BaseReducer {\n domain = \"Modals\";\n type = \"AlertModal\";\n\n initialState = {\n open: false,\n title: \"Confirmation\",\n message: \"Are you sure you wish to continue?\",\n };\n}\n\nconst reducer = new AlertModalReducer();\n\nexport default reducer;\n","import { defaultInteractionOptions } from \"@common/components/helpers/options/vulnerabilityFormOptions\";\nimport BaseReducer from \"./BaseReducer\";\n\nclass InteractionOptionsReducer extends BaseReducer {\n domain = \"InteractionOptions\";\n type = \"View\";\n\n initialState = {\n // Loading flag for the Select components\n loadingOptions: false,\n // Options for various customer interaction Select components\n customerInteractionOptions: defaultInteractionOptions,\n };\n}\n\nconst reducer = new InteractionOptionsReducer();\n\nexport default reducer;\n","import {\n anHourFromNow,\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"@common/components/helpers/datetime\";\nimport BaseReducer from \"./BaseReducer\";\n\nclass CustomerInteractionReducer extends BaseReducer {\n domain = \"CustomerInteraction\";\n type = \"View\";\n\n initialState = {\n // For form input field display purpose\n searchedCustomer: null,\n // The actual selected customer\n customer: null,\n\n isCustomerVulnerable: null,\n isCustomerOk: null,\n customerUnknown: null,\n\n // The reason selection object consist of id and name\n reason: null,\n\n // The outcome selection object consist of id and name\n outcome: null,\n // A string to record the description if the outcome choice is \"Other\"\n otherOutcomeDescription: \"\",\n\n providedLeaflet: null,\n reasonNotProvidedLeaflet: \"\",\n\n seekHelp: null,\n reasonNotSeekHelp: \"\",\n\n discussedSelfExclusion: null,\n reasonNotDiscussedSelfExclusion: \"\",\n selfExclude: null,\n reasonNotSelfExclude: \"\",\n reviewDate: getDatePart(getCurrentDateTime()),\n\n setReminder: null,\n reminderDate: getDatePart(anHourFromNow()),\n reminderTime: getTimePart(anHourFromNow()),\n\n // Comment field for GDPR\n comments: \"\",\n };\n}\n\nconst reducer = new CustomerInteractionReducer();\n\nexport default reducer;\n","import BaseReducer from \"@common/redux/reducers/BaseReducer\";\n\n// Helpers\nimport {\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"@common/components/helpers/datetime\";\n\nclass AgeVerificationReducer extends BaseReducer {\n domain = \"AgeVerification\";\n type = \"View\";\n\n initialState = {\n idTypes: [],\n genders: [],\n idOther: false,\n date: getDatePart(getCurrentDateTime()),\n time: getTimePart(getCurrentDateTime()),\n hasId: null,\n idType: null,\n otherId: \"\",\n gender: null,\n dateOfBirth: \"\",\n under18: false,\n under18Confirm: false,\n confirmation: false,\n hasGambled: null,\n hasHadStakeReturned: null,\n hasBeenRefusedEntry: null,\n comments: \"\",\n record: null,\n };\n}\n\nconst reducer = new AgeVerificationReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\nimport {\n anHourFromNow,\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"@common/components/helpers/datetime\";\n\nclass ObservationsReducer extends BaseReducer {\n domain = \"Observations\";\n type = \"View\";\n\n initialState = {\n observationDate: getDatePart(getCurrentDateTime()),\n observationTime: getTimePart(getCurrentDateTime()),\n\n customerUnknown: false,\n // For form input field display purpose\n searchedCustomer: null,\n // The actual selected customer\n customer: null,\n\n observation: null,\n customerMood: [],\n comments: \"\",\n setReminder: null,\n reminderDate: getDatePart(anHourFromNow()),\n reminderTime: getTimePart(anHourFromNow()),\n\n observationOptions: [],\n moodOptions: [],\n record: null,\n customerRecord: null,\n };\n}\n\nconst reducer = new ObservationsReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass SetupReducer extends BaseReducer {\n domain = \"Setup\";\n type = \"Config\";\n\n initialState = {\n mode: 1,\n version: \"Guardian Mobile v2.3.4\",\n useUserCodePin: true,\n pinLength: 4,\n userCodeLength: 6,\n };\n}\n\nconst reducer = new SetupReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass LinkSessionReducer extends BaseReducer {\n domain = \"LinkSession\";\n type = \"View\";\n\n initialState = {\n linkSession: null,\n linkedSessionData: [],\n };\n}\n\nconst reducer = new LinkSessionReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass LinkSessionModalReducer extends BaseReducer {\n domain = \"Modals\";\n type = \"LinkSession\";\n\n initialState = {\n open: false,\n };\n}\n\nconst reducer = new LinkSessionModalReducer();\n\nexport default reducer;\n","export const defaultGrid = {\n headerDef: [],\n rowDef: [],\n data: [],\n};\n\nexport const defaultRow = { installationId: null };\n\nexport const updateGridOption = (grid, option) => {\n let newGrid = { ...grid };\n const data = [...newGrid.data];\n\n data.forEach((row, rowIndex) => {\n row.cellData.forEach((cell, cellIndex) => {\n if (cell.data.code === option.code) {\n let cellData = { ...data[rowIndex].cellData };\n cellData[cellIndex].data = { ...option };\n data[rowIndex].cellData = cellData;\n }\n });\n });\n\n return { ...newGrid, data: { ...data } };\n};\n","import BaseReducer from \"./BaseReducer\";\nimport { defaultGrid } from \"../../components/helpers/grid\";\n\nclass SessionalDetailsReducer extends BaseReducer {\n domain = \"Sessional\";\n type = \"Details\";\n\n initialState = {\n installationId: null,\n grid: defaultGrid,\n showEvents: false,\n periodType: 0,\n pageCount: 1,\n pageNumber: 1,\n title: null,\n };\n}\n\nconst reducer = new SessionalDetailsReducer();\n\nexport default reducer;\n","import { defaultGrid, defaultRow } from \"../../components/helpers/grid\";\nimport BaseReducer from \"./BaseReducer\";\n\nclass SessionalPositionsReducer extends BaseReducer {\n domain = \"Sessional\";\n type = \"Positions\";\n\n initialState = {\n loaded: false,\n grid: defaultGrid,\n activeRow: defaultRow,\n offline: 0,\n nonOp: 0,\n online: 0,\n doorOpen: 0,\n inPlay: 0,\n showOnline: true,\n showOffline: true,\n showNonOp: true,\n showDoorOpen: true,\n showInPlay: true,\n };\n}\n\nconst reducer = new SessionalPositionsReducer();\n\nexport default reducer;\n","export const enforcementVisitOptions = [\n { key: \"c\", text: \"Cash\", value: \"cash\" },\n { key: \"m\", text: \"Machine\", value: \"machine\" },\n { key: \"b\", text: \"Bingo\", value: \"bingo\" },\n { key: \"p\", text: \"Prize Payout\", value: \"prizePayout\" },\n { key: \"o\", text: \"Other\", value: \"other\" },\n];\n","import {\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"../../components/helpers/datetime\";\nimport BaseReducer from \"./BaseReducer\";\nimport { enforcementVisitOptions } from \"@common/components/helpers/options/enforcementVisitOptions\";\n\nclass UnresolvedDisputeReducer extends BaseReducer {\n domain = \"UnresolvedDispute\";\n type = \"View\";\n\n initialState = {\n types: enforcementVisitOptions,\n // the selected customer\n customerId: null,\n customer: null,\n customerUnknown: false,\n // the form data\n formData: {\n id: null,\n complianceId: null,\n rowVersion: null,\n date: getDatePart(getCurrentDateTime()),\n time: getTimePart(getCurrentDateTime()),\n type: \"\",\n sessionIds: [],\n machine: null,\n machineReference: null,\n description: \"\",\n cctvCatched: null,\n signature: \"\",\n phoneNumberEdit: \"\",\n emailAddressEdit: \"\",\n },\n };\n}\n\nconst reducer = new UnresolvedDisputeReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\nimport {\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"../../components/helpers/datetime\";\n\nclass SuspiciousActivityReducer extends BaseReducer {\n domain = \"SuspiciousActivity\";\n type = \"View\";\n\n initialState = {\n showSuspectModal: false,\n types: [],\n suspectsTable: [],\n searchedCustomer: null,\n formData: {\n id: null,\n date: getDatePart(getCurrentDateTime()),\n time: getTimePart(getCurrentDateTime()),\n activityType: null,\n sessionIds: [],\n machine: null,\n machineReference: null,\n cctvCatched: null,\n description: \"\",\n outcome: \"\",\n suspectIds: [],\n suspects: [],\n policedInvolved: null,\n timeServicesContacted: getTimePart(getCurrentDateTime()),\n timeServicesArrived: getTimePart(getCurrentDateTime()),\n servicesDidNotAttend: false,\n incidentNumber: null,\n },\n };\n}\n\nconst reducer = new SuspiciousActivityReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\nimport {\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"../../components/helpers/datetime\";\n\nclass EnforcementReducer extends BaseReducer {\n domain = \"Enforcement\";\n type = \"View\";\n\n initialState = {\n loadingTypes: false,\n typeOptions: [],\n officer: null,\n formData: {\n id: null,\n rowVersion: null,\n date: getDatePart(getCurrentDateTime()),\n time: getTimePart(getCurrentDateTime()),\n isGamblingRelated: null,\n officerTypeId: null,\n visitDetails: \"\",\n incidentNumber: \"\",\n comments: \"\",\n },\n };\n}\n\nconst reducer = new EnforcementReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass ConfirmModalReducer extends BaseReducer {\n domain = \"Modals\";\n type = \"ConfirmModal\";\n\n initialState = {\n open: false,\n title: \"Confirmation\",\n message: \"Are you sure you wish to continue?\",\n };\n}\n\nconst reducer = new ConfirmModalReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass UploadReducer extends BaseReducer {\n domain = \"Upload\";\n type = \"View\";\n\n initialState = {\n loadingImages: false,\n incidentId: 0,\n imageList: [],\n progress: 0,\n };\n}\n\nconst reducer = new UploadReducer();\n\nexport default reducer;\n","import BaseReducer from \"./BaseReducer\";\n\nclass ImageModalReducer extends BaseReducer {\n domain = \"Modals\";\n type = \"ImageModal\";\n\n initialState = {\n open: false,\n title: \"Image\",\n image: null,\n };\n}\n\nconst reducer = new ImageModalReducer();\n\nexport default reducer;\n","import defaultReducer from \"./defaultReducer\";\n\nconst initialComplianceEvents = [\n {\n text: \"Interactions\",\n value: \"Customer Interaction\",\n },\n {\n text: \"Observations\",\n value: \"Observations\",\n \n },\n {\n text: \"Gambling Dispute\",\n value: \"GamblingDisputeType\",\n },\n {\n text: \"Customer Incident\",\n value: \"IncidentType\"\n },\n {\n text: \"SUspicious Activity\",\n value: \"SuspiciousActivityType\",\n },\n {\n text: \"Enforcement Visit\",\n value: \"EnforcementVisitType\",\n },\n {\n text: \"Think 25 Challenge\",\n value: \"IdType\"\n },\n {\n text: \"Customer Profile\",\n value: \"Customer\",\n },\n {\n text: \"Authorisation Required\",\n value: \"EventType\"\n }\n]\n\nexport const complianceMetadata = defaultReducer('FETCH_COMPLIANCE_METADATA', []);\nexport const activeComplianceModule = defaultReducer('SET_ACTIVE_COMPLIANCE_MODULE', {});\nexport const complianceModel = defaultReducer('FETCH_COMPLIANCE_MODEL',{});\nexport const complianceRecords = defaultReducer('FETCH_COMPLIANCE_REC', {});\nexport const complianceEvents = defaultReducer('FETCH_COMPLIANCE_EVENTS', initialComplianceEvents);\nexport const compliceCustomerConfig = defaultReducer('FETCH_COMPLIANCE_CUSTOMER_CONFIG', {});\n \n","import { combineReducers } from \"redux\";\nimport AssetOwnershipProfileModalReducer from \"./AssetOwnershipProfileModalReducer\";\nimport addCommentModalReducer from \"./addCommentModalReducer\";\nimport downloadReportModalReducer from \"./downloadReportModalReducer\";\nimport { analysisReducer } from \"./analysisViewReducer\";\nimport authoriseReducer from \"./authoriseReducer\";\nimport bankingCommentsModalReducer from \"./bankingCommentsModalReducer\";\nimport collectionBreakdownModalReducer from \"./collectionBreakdownModalReducer\";\nimport collectionModalReducer from \"./collectionModalReducer\";\nimport confirmModalReducer from \"./confirmModalReducer\";\nimport countDetailsModalReducer from \"./countDetailsModalReducer\";\nimport eftReducer from \"./eftReducer\";\nimport floatLevelSettingsModalReducer from \"./floatLevelSettingsModalReducer\";\nimport installHistoryModalReducer from \"./installHistoryModalReducer\";\nimport {\n\taddPositionsReducer,\n\tinstallationReducer,\n\tsetActiveInstallationReducer,\n} from \"./installationReducer\";\nimport kioskReducer from \"./kioskReducer\";\nimport liveFloorViewDetailsModalReducer from \"./liveFloorViewDetailsModalReducer\";\nimport { logInReducer } from \"./logInOutReducer\";\nimport machineReducer from \"./machineReducer\";\nimport machineSaveReducer from \"./machineSaveReducer\";\nimport newProfileModalReducer from \"./newProfileModalReducer\";\nimport operatorsReducer from \"./operatorsReducer\";\nimport {\n\tanalysisFiltersReducer,\n\tcollectionsFiltersReducer,\n\tcomplianceFiltersReducer,\n\tinstallationsFiltersReducer,\n\tkioskFiltersReducer,\n\tLiveFloorViewerFiltersReducer,\n\tsessionsFiltersReducer,\n\tsettingsFiltersReducer,\n\ttransactionsFiltersReducer,\n} from \"./organisationDirectoryReducer\";\nimport organisationReducer from \"./organisationReducer\";\nimport organisationsReducer from \"./organisationsReducer\";\nimport passwordModalReducer from \"./passwordModalReducer\";\nimport promoAnalysisDetailsModalReducer from \"./promoAnalysisDetailsModalReducer\";\nimport promoAnalysisModalReducer from \"./promoAnalysisModalReducer\";\nimport removeAssetReducer from \"./removeAssetReducer\";\nimport revenueModalReducer from \"./revenueModalReducer\";\nimport searchTermReducer from \"./searchTermReducer\";\nimport sessionsByCompanyReducer from \"./sessionsByCompanyReducer\";\nimport siteDetailsModalReducer from \"./siteDetailsModalReducer\";\nimport siteVarianceHistoryModalReducer from \"./siteVarianceHistoryModalReducer\";\nimport successAlertReducer from \"./successAlertReducer\";\nimport {\n\ttransactionAdjustReducer,\n\ttransactionAuthoriseReducer,\n\ttransactionsKioskReducer,\n\ttransactionsLiabilityReducer,\n\ttransactionsReducer,\n\ttransactionsTicketsReducer,\n\ttransactionsViewReducer,\n\ttransactionVoidReducer,\n} from \"./transactionsReducer\";\nimport varianceHistoryDetailsModalReducer from \"./varianceHistoryDetailsModalReducer\";\nimport viewCommentsModalReducer from \"./viewCommentsModalReducer\";\nimport EditMachineCountModalReducer from \"./EditMachineCountModalReducer\";\nimport { complianceSummaryTabReducer } from \"./complianceSummaryReducer\";\nimport ProcessPeriodModalReducer from \"./ProcessPeriodModalReducer\";\nimport LoginReducer from \"@common/redux/reducers/LoginReducer\";\nimport CustomerIncidentReducer from \"@common/redux/reducers/CustomerIncidentReducer\";\nimport CustomerFormReducer from \"@common/redux/reducers/CustomerFormReducer\";\nimport OfficerReducer from \"@common/redux/reducers/OfficerReducer\";\nimport OfficerFormModalReducer from \"@common/redux/reducers/OfficerFormModalReducer\";\nimport AlertModalReducer from \"@common/redux/reducers/AlertModalReducer\";\nimport InteractionOptionsReducer from \"@common/redux/reducers/InteractionOptionsReducer\";\nimport CustomerInteractionReducer from \"@common/redux/reducers/CustomerInteractionReducer\";\nimport AgeVerificationReducer from \"@common/redux/reducers/AgeVerificationReducer\";\nimport ObservationsReducer from \"@common/redux/reducers/ObservationsReducer\";\nimport SetupReducer from \"@common/redux/reducers/SetupReducer\";\nimport LinkSessionReducer from \"@common/redux/reducers/LinkSessionReducer\";\nimport LinkSessionModalReducer from \"@common/redux/reducers/LinkSessionModalReducer\";\nimport SessionalDetailsReducer from \"@common/redux/reducers/SessionalDetailsReducer\";\nimport SessionalPositionsReducer from \"@common/redux/reducers/SessionalPositionsReducer\";\nimport UnresolvedDisputeReducer from \"@common/redux/reducers/UnresolvedDisputeReducer\";\nimport SuspiciousActvityReducer from \"@common/redux/reducers/SuspiciousActivityReducer\";\nimport EnforcementReducer from \"@common/redux/reducers/EnforcementReducer\";\nimport ConfirmModalReducer from \"@common/redux/reducers/ConfirmModalReducer\";\nimport UploadReducer from \"@common/redux/reducers/UploadReducer\";\nimport ImageModalReducer from \"@common/redux/reducers/ImageModalReducer\";\nimport { complianceMetadata, activeComplianceModule, complianceModel, complianceRecords, complianceEvents, compliceCustomerConfig } from './complianceReducer';\n\nconst appReducer = combineReducers({\n\t// modals\n\taddCommentModal: addCommentModalReducer,\n\tassetOwnershipProfileModal: AssetOwnershipProfileModalReducer,\n\tbankingCommentsModal: bankingCommentsModalReducer,\n\tcollectionBreakdownModal: collectionBreakdownModalReducer,\n\tcollectionModal: collectionModalReducer,\n\tconfirmModal: confirmModalReducer,\n\tcountDetailsModal: countDetailsModalReducer,\n\tdownloadReportModal: downloadReportModalReducer,\n\teditMachineCountModal: EditMachineCountModalReducer,\n\tfloatLevelSettingsModal: floatLevelSettingsModalReducer,\n\tinstallHistoryModal: installHistoryModalReducer,\n\tnewProfileModal: newProfileModalReducer,\n\tpasswordModal: passwordModalReducer,\n\tprocessPeriodModal: ProcessPeriodModalReducer,\n\tpromoAnalysisDetailsModal: promoAnalysisDetailsModalReducer,\n\tpromoAnalysisModal: promoAnalysisModalReducer,\n\trevenueModal: revenueModalReducer,\n\tsiteDetailsModal: siteDetailsModalReducer,\n\tsiteVarianceHistoryModal: siteVarianceHistoryModalReducer,\n\tsuccessAlert: successAlertReducer,\n\tvarianceHistoryDetailsModal: varianceHistoryDetailsModalReducer,\n\tviewCommentsModal: viewCommentsModalReducer,\n\n\t// filters (for organisation directory)\n\tanalysisFilters: analysisFiltersReducer,\n\tcollectionsFilters: collectionsFiltersReducer,\n\tcomplianceFilters: complianceFiltersReducer,\n\tinstallationsFilters: installationsFiltersReducer,\n\tkioskFilters: kioskFiltersReducer,\n\tLiveFloorViewerFilters: LiveFloorViewerFiltersReducer,\n\tsessionsFilters: sessionsFiltersReducer,\n\tsettingsFilters: settingsFiltersReducer,\n\ttransactionsFilters: transactionsFiltersReducer,\n\n\t// other\n\tactiveInstallation: setActiveInstallationReducer,\n\tanalysisView: analysisReducer,\n\tassetRemove: removeAssetReducer,\n\tauthorise: authoriseReducer,\n\tcomplianceSummaryTab: complianceSummaryTabReducer,\n\teftUpdate: eftReducer,\n\tinstallations: installationReducer,\n\tkiosk: kioskReducer,\n\tliveFloorViewDetailsModal: liveFloorViewDetailsModalReducer,\n\tlogIn: logInReducer,\n\tmachine: machineReducer,\n\tmachineSave: machineSaveReducer,\n\toperators: operatorsReducer,\n\torganisation: organisationReducer,\n\torganisations: organisationsReducer,\n\tpositionsAdd: addPositionsReducer,\n\tsearchTerms: searchTermReducer,\n\tsessionsByCompany: sessionsByCompanyReducer,\n\ttransactionAdjust: transactionAdjustReducer,\n\ttransactionAuthorise: transactionAuthoriseReducer,\n\ttransactions: transactionsReducer,\n\ttransactionsKiosk: transactionsKioskReducer,\n\ttransactionsLiability: transactionsLiabilityReducer,\n\ttransactionsTickets: transactionsTicketsReducer,\n\ttransactionsView: transactionsViewReducer,\n\ttransactionVoid: transactionVoidReducer,\n\n\t// common\n\t...CustomerIncidentReducer.map(),\n\t...CustomerFormReducer.map(),\n\t...LoginReducer.map(),\n\t...OfficerReducer.map(),\n\t...OfficerFormModalReducer.map(),\n\t...AlertModalReducer.map(),\n\t...InteractionOptionsReducer.map(),\n\t...CustomerInteractionReducer.map(),\n\t...AgeVerificationReducer.map(),\n\t...ObservationsReducer.map(),\n\t...SetupReducer.map(),\n\t...LinkSessionReducer.map(),\n\t...LinkSessionModalReducer.map(),\n\t...SessionalDetailsReducer.map(),\n\t...SessionalPositionsReducer.map(),\n\t...UnresolvedDisputeReducer.map(),\n\t...SuspiciousActvityReducer.map(),\n\t...EnforcementReducer.map(),\n\t...ConfirmModalReducer.map(),\n\t...UploadReducer.map(),\n\t...ImageModalReducer.map(),\n\tcomplianceMetadata,\n\tcomplianceModel,\n\tcomplianceRecords,\n\tcomplianceEvents,\n\tactiveComplianceModule,\n\tcompliceCustomerConfig,\n});\n\nexport default function baseReducer(state, action) {\n\tif (action.type === \"CLEAR_REDUX\") {\n\t\tstate = appReducer({}, {});\n\t}\n\n\treturn appReducer(state, action);\n}\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport thunk from 'redux-thunk';\nimport reducers from './reducers';\n\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nexport const store = createStore(\n\treducers,\n\tcomposeEnhancers(\n\t\tapplyMiddleware(thunk)\n\t)\n);\n\n","import { store } from \"@store\";\nimport axios from \"axios\";\n\n\nexport const showSuccessAlert =\n (message, header = \"Success\", onConfirm = async () => { }) =>\n async (dispatch) => {\n dispatch({\n type: \"SUCCESS_ALERT\",\n payload: { message, onConfirm, visible: true, header },\n });\n };\n\nexport const CMSRequestInterceptor = (config) => {\n const logIn = JSON.parse(sessionStorage.getItem(\"login\"));\n\n config = { ...config, baseURL: sessionStorage.getItem(\"base_url\") };\n\n if (!logIn) {\n return config;\n }\n\n if (logIn.sessionkey) {\n config = {\n ...config,\n ...{ headers: { common: { \"SessionKey\": `${logIn.sessionkey}` } } },\n };\n }\n\n return config;\n};\n\nexport const CMSResponseErrorInterceptor = (error) => {\n const logIn = JSON.parse(sessionStorage.getItem(\"login\"));\n\n if (logIn) {\n if (error.response) {\n if ([401].includes(error.response.status)) {\n sessionStorage.removeItem(\"login\");\n window.location = \"/?expired=1\";\n } else {\n if (error.response.data) {\n const message = typeof error.response.data === \"string\"\n ? error.response.data\n : \"There was an error completing your request\";\n store.dispatch(showSuccessAlert(message, \"Error\"));\n } else {\n store.dispatch(\n showSuccessAlert(\n \"There was an error completing your request!\",\n \"Error\",\n ),\n );\n }\n }\n } else {\n store.dispatch(\n showSuccessAlert(\n \"There was an error completing your request!\",\n \"Error\",\n ),\n );\n }\n }\n\n return Promise.reject(error);\n};\n\nexport const CMSResponseSuccessInterceptor = (response) => response;\n\nconst cmsInstance = axios.create();\n\ncmsInstance.interceptors.request.use(CMSRequestInterceptor);\ncmsInstance.interceptors.response.use(\n CMSResponseSuccessInterceptor,\n CMSResponseErrorInterceptor,\n);\n\nexport default cmsInstance;\n","import axios from \"axios\";\nimport { epochInSeconds } from \"@common/components/helpers/datetime\";\n\nclass ApiClient {\n constructor(name) {\n this.name = name;\n this.apiUrlKey = \"base_url\";\n this.setupAxios();\n }\n\n setApiUrlKey(urlKey) {\n this.apiUrlKey = urlKey;\n }\n\n setupAxios = () => {\n this.axios = axios.create();\n this.registerInterceptors();\n };\n\n complianceWillExpire = () => {\n const expiry = sessionStorage.getItem(\"tokenExpires\");\n const now = epochInSeconds();\n\n if (!expiry) {\n return true;\n }\n return expiry < now;\n };\n\n registerInterceptors = () => {\n // Append session token to header\n this.axios.interceptors.request.use(async (config) => {\n const token = sessionStorage.getItem(\"token\");\n const deviceId = sessionStorage.getItem(\"deviceId\");\n const accessToken = sessionStorage.getItem(\"accessToken\");\n const refreshToken = sessionStorage.getItem(\"refreshToken\");\n\n const refreshTokenConditions = [\n token,\n refreshToken,\n this.complianceWillExpire(),\n !config.url.includes(\"RefreshToken\"),\n !config.url.includes(\"/Authentication/SignIn\"),\n ];\n\n if (refreshTokenConditions.every((condition) => condition)) {\n this.axios.request({\n url: `${\n sessionStorage.getItem(\"auth_api_url\")\n }/Authentication/RefreshToken`,\n method: \"POST\",\n data: { refreshToken },\n }).then(({ accessToken, refreshToken, expiresIn }) => {\n sessionStorage.setItem(\"accessToken\", accessToken);\n sessionStorage.setItem(\"refreshToken\", refreshToken);\n sessionStorage.setItem(\"tokenExpires\", epochInSeconds() + expiresIn);\n });\n }\n\n // Fake delay to test loading indicators in development mode\n // await delay(3000);\n\n return {\n ...config,\n headers: {\n common: {\n SessionKey: token,\n DeviceKey: deviceId,\n },\n // For Compliance API\n Authorization: `Bearer ${accessToken}`,\n },\n };\n });\n };\n\n request = async (endpoint, method, data = {}, options = {}) => {\n const url = `${\n sessionStorage.getItem(this.apiUrlKey)\n }/${this.name}/${endpoint}`;\n return await this.axios.request({\n url,\n method,\n data,\n ...options,\n });\n };\n\n get = async (endpoint) => {\n const response = await this.request(endpoint, \"GET\");\n return response.data;\n };\n\n put = async (endpoint, payload = {}) => {\n const response = await this.request(endpoint, \"PUT\", payload);\n return response.data;\n };\n\n post = async (endpoint, payload = {}, options = {}) => {\n const response = await this.request(\n endpoint,\n \"POST\",\n payload,\n options,\n );\n return response.data;\n };\n\n getFile = async (endpoint, verb = \"GET\", payload = {}) => {\n const response = await this.request(\n endpoint,\n verb,\n payload,\n {\n responseType: \"arrayBuffer\",\n },\n );\n return response;\n };\n}\n\nexport default ApiClient;\n","import ApiClient from \"@common/api/ApiClient\";\n\n/**\n * Class representing the authentication functionality for Guardian Authorisation API\n *\n * Note: Compliance components use this API instead of Guardian Mobile API for authorisation\n *\n * Extends the ApiClient to handle API requests\n *\n * @extends ApiClient\n */\nclass AuthenticationClient extends ApiClient {\n /**\n * Create a AuthenticationClient.\n * Initializes the API client with the \"Authentication\" route and sets the API URL key.\n */\n constructor() {\n super(\"Authentication\");\n this.setApiUrlKey(\"auth_api_url\");\n }\n\n SignIn = async (email, password) => {\n return await this.post(\n \"SignIn\",\n {\n id: email,\n password: password,\n },\n );\n };\n\n SwitchTenant = async (operator) => {\n return await this.post(\"SwitchTenant\", { name: `${operator}` });\n };\n\n RefreshToken = async (refreshToken) => await this.post('RefreshToken', { refreshToken });\n}\n\nconst client = new AuthenticationClient();\n\nexport default client;\n","import axios from '@common/api/desktop/axios';\nimport AuthenticationClient from \"@common/api/AuthenticationClient\";\nimport md5 from 'md5';\n\nexport const fetchLogin = (username, password) => async dispatch => {\n\t// const cp_auth_base_url = sessionStorage.getItem('cp_auth_base_url')\n\tconst response = await axios.put(`Security/Login2/`, { username, password });\n\t// const cpAuthRes = await _axios.post(`${cp_auth_base_url}/Authentication/signIn`, {id: username, password: password,});\n\t// console.log(cpAuthRes.data, response.data);\n\n\tconst session = { ...response.data, ...{ email: username }, hash: md5(password) }\n\tconsole.log(session, 'session')\n\tdispatch({ type: 'FETCH_LOGIN', payload: session });\n};\n\n/**\n * Reset a user's password\n * @param {string} username \n * @param {md5 hash} prevPassword\n * @param {string} password \n * @param {string} password2 \n */\nexport const setPassword = (username, prevPassword, password, password2) => async dispatch => {\n\treturn await axios.put(`Security/SetPassword4/`, { username, prevPassword, password, password2 });\n};\n\nexport const resetPassword = (email) => async dispatch => {\n\ttry {\n\t\tawait axios.put(`Security/ResetPassword/${email}`);\n\t\treturn true\n\t} catch (error) {\n\t\treturn false\n\t}\n};\n\nexport const setLogout = () => async dispatch => {\n\tconst callback = () => {\n\t\tsessionStorage.removeItem('login')\n\t\tdispatch({ type: 'CLEAR_REDUX', payload: { logOut: true } });\n\t}\n\n\taxios.put(`Security/Logout`).then(callback, callback);\n};\n","import { analysisInitialState } from \"@reducers/analysisViewReducer\";\n\nconst type = 'ANALYSIS_VIEW';\n\nexport const updateAnalysisView = (payload) => async dispatch => {\n\tdispatch({ type, payload });\n}\n\nexport const emptyAnalysisSection = () => async dispatch => {\n\tdispatch({ type, analysisInitialState })\n}","export const mergeWithState = (data, state) => {\n\tlet newState = {}\n\n\tfor (const [key, value] of Object.entries(state)) {\n\t\tif (data[key] != null) {\n\t\t\tif (typeof value === \"object\" && typeof data[key] === \"object\" && !Array.isArray(data[key])) {\n\t\t\t\tnewState[key] = { ...value, ...data[key] }\n\t\t\t} else {\n\t\t\t\tnewState[key] = data[key];\n\t\t\t}\n\t\t} else {\n\t\t\tnewState[key] = value;\n\t\t}\n\t}\n\n\treturn newState;\n}\n\nexport const fetchInstallationsFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().installationsFilters;\n\tdispatch({ type: 'FETCH_INSTALLATIONS_FILTERS', payload: mergeWithState(data, state) });\n};\n\nexport const fetchAnalysisFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().analysisFilters;\n\tdispatch({ type: 'FETCH_ANALYSIS_FILTERS', payload: mergeWithState(data, state) });\n};\n\nexport const fetchTransactionsFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().transactionsFilters;\n\tdispatch({ type: 'FETCH_TRANSACTIONS_FILTERS', payload: mergeWithState(data, state) });\n};\n\nexport const fetchCollectionsFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().collectionsFilters;\n\tdispatch({ type: 'FETCH_COLLECTIONS_FILTERS', payload: mergeWithState(data, state) });\n};\n\nexport const fetchSessionsFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().sessionsFilters;\n\tdispatch({ type: 'FETCH_SESSIONS_FILTERS', payload: mergeWithState(data, state) });\n};\nexport const fetchLiveFloorViewerFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().LiveFloorViewerFilters;\n\tdispatch({ type: 'FETCH_LIVE_FLOOR_VIEWER_FILTERS', payload: mergeWithState(data, state) });\n};\n\nexport const fetchComplianceFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().complianceFilters;\n\tdispatch({ type: 'FETCH_COMPLIANCE_FILTERS', payload: mergeWithState(data, state) });\n};\n\nexport const fetchSettingsFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().settingsFilters;\n\tdispatch({ type: 'FETCH_SETTINGS_FILTERS', payload: mergeWithState(data, state) });\n};\n\nexport const fetchKioskFilters = (data) => async (dispatch, getState) => {\n\tconst state = getState().kioskFilters;\n\tdispatch({ type: 'FETCH_KIOSK_FILTERS', payload: mergeWithState(data, state) });\n};\n","export default function prepareDetails(details) {\n\tconst parts = [];\n\n\tfor (const [key, value] of Object.entries(details)) {\n\t\tparts.push(`${key}=${value}`);\n\t}\n\n\treturn parts.join(\";\")\n\n}\n","import axios from '@common/api/desktop/axios';\nimport { defaultGrid } from \"@helpers/datagrid\";\nimport prepareDetails from \"@helpers/prepareDetails\";\nimport { initialState } from \"@reducers/organisationDirectoryReducer\";\nimport moment from \"moment\";\n\nexport const fetchInstallations =\n\t(\n\t\tOperatorId,\n\t\tSiteId,\n\t\tShowHistory,\n\t\tOperatorRegions,\n\t\tManufacturers,\n\t\tGameNames,\n\t\tCategories,\n\t\tShowOfflineOnly,\n\t) =>\n\t\tasync (dispatch) => {\n\t\t\tconst params = {\n\t\t\t\tOperatorId,\n\t\t\t\tSiteId,\n\t\t\t\tShowHistory,\n\t\t\t\tOperatorRegions,\n\t\t\t\tManufacturers,\n\t\t\t\tGameNames,\n\t\t\t\tCategories,\n\t\t\t\tDetails: \"\",\n\t\t\t\tShowOfflineOnly,\n\t\t\t};\n\t\t\tconst response = await axios.put(`organisation/filterbymachine2`, params);\n\t\t\tdispatch({ type: \"FETCH_INSTALLATIONS\", payload: response.data });\n\t\t};\n\nexport const fetchInstallationsExport = async (\n\tOperatorId,\n\tSiteId,\n\tShowHistory,\n\tOperatorRegions,\n\tManufacturers,\n\tGameNames,\n\tCategories,\n\tShowOfflineOnly,\n) => {\n\tconst params = {\n\t\tOperatorId,\n\t\tSiteId,\n\t\tShowHistory,\n\t\tOperatorRegions,\n\t\tManufacturers,\n\t\tGameNames,\n\t\tCategories,\n\t\tDetails: \"\",\n\t\tShowOfflineOnly,\n\t};\n\treturn await axios.put(`organisation/filterbymachine2/export`, params);\n};\n\nexport const fetchTransaction = (id) => async (dispatch) => {\n\tconst transactions = await axios.get(`Transactions/Details/${id}`).catch(\n\t\t(error) => {\n\t\t\tdispatch({ type: \"FETCH_TRANSACTION\", payload: [] });\n\t\t},\n\t);\n\tdispatch({ type: \"FETCH_TRANSACTION\", payload: transactions.data });\n};\n\nexport const fetchTransactions = (\n\tinstallationId,\n\tstartDate,\n\tendDate,\n\tincludeEvents = true,\n\tetfIn = true,\n\tetfOut = true,\n\tsuspiciousOpen = true,\n\tsuspiciousVoid = true,\n\tsuspiciousAuth = true,\n\tcancelled = true,\n\tpartial = true,\n) =>\n\tasync (dispatch) => {\n\t\tif (!startDate) {\n\t\t\tstartDate = moment().format(\"DD MMM YYYY [00:00]\");\n\t\t}\n\t\tif (!endDate) {\n\t\t\tendDate = moment().format(\"DD MMM YYYY HH:mm\");\n\t\t}\n\t\tconst transactions = await axios.get(\n\t\t\t`Transactions/installationsUI2/${startDate},${endDate},${installationId},${includeEvents},${etfIn},${etfOut},${suspiciousOpen},${suspiciousVoid},${suspiciousAuth},${cancelled},${partial}`,\n\t\t);\n\n\t\tlet data = transactions.data;\n\t\tdata.startDate = startDate;\n\t\tdata.endDate = endDate;\n\t\tdata.includeEvents = includeEvents;\n\t\tdata.installationId = installationId;\n\t\tdispatch({ type: \"FETCH_TRANSACTIONS\", payload: data });\n\t};\n\nexport const fetchInstallTransactionsWithSummary = (\n\tinstallationId,\n\tstartDate,\n\tendDate,\n\tincludeEvents,\n\tdetails,\n) =>\n\tasync (dispatch) => {\n\t\tconst params = {\n\t\t\tInstallationId: Math.trunc(installationId),\n\t\t\tStartDate: startDate.toISOString(true),\n\t\t\tEndDate: endDate.toISOString(true),\n\t\t\tIncludeEvents: includeEvents,\n\t\t\tDetails: prepareDetails(details),\n\t\t};\n\n\t\tconst response = await axios.put(`Transactions/installationsUI3`, params);\n\t\tconst data = {\n\t\t\t...response.data,\n\t\t\tstartDate,\n\t\t\tendDate,\n\t\t\tincludeEvents,\n\t\t\tinstallationId,\n\t\t};\n\t\tdispatch({ type: \"FETCH_TRANSACTIONS\", payload: data });\n\t};\n\nexport const clearInstallSessions = () => async (dispatch) => {\n\tdispatch({\n\t\ttype: \"FETCH_SESSIONS\",\n\t\tpayload: { grid: { data: [], headerDef: [], rowDef: [] } },\n\t});\n};\n\nexport const clearInstallTransactions = () => async (dispatch) => {\n\tdispatch({\n\t\ttype: \"FETCH_TRANSACTIONS\",\n\t\tpayload: { grid: { data: [], headerDef: [], rowDef: [] } },\n\t});\n};\n\nexport const fetchInstallSessionsWithSummary =\n\t(installationId, startDate, endDate, ZeroBetSessions, details) =>\n\t\tasync (dispatch) => {\n\t\t\tconst params = {\n\t\t\t\tInstallationId: Math.trunc(installationId),\n\t\t\t\tStartDate: startDate.toISOString(true),\n\t\t\t\tEndDate: endDate.toISOString(true),\n\t\t\t\tZeroBetSessions,\n\t\t\t\tDetails: prepareDetails(details),\n\t\t\t};\n\n\t\t\tconst response = await axios.put(`Sessions/installationsUI2/`, params);\n\t\t\tconst data = { ...response.data, startDate, endDate, installationId };\n\t\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: data });\n\t\t};\n\nexport const fetchSessions =\n\t(\n\t\tinstallationId,\n\t\tstartDate,\n\t\tendDate,\n\t\teftSessions = true,\n\t\tcashSessions = true,\n\t) =>\n\t\tasync (dispatch) => {\n\t\t\tif (!installationId) {\n\t\t\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: [] });\n\t\t\t} else {\n\t\t\t\tif (!startDate) {\n\t\t\t\t\tstartDate = moment().format(\"DD MMM YYYY [00:00]\");\n\t\t\t\t}\n\t\t\t\tif (!endDate) {\n\t\t\t\t\tendDate = moment().format(\"DD MMM YYYY HH:mm\");\n\t\t\t\t}\n\t\t\t\tconst sessions = await axios.get(\n\t\t\t\t\t`Sessions/installationsUI/${startDate},${endDate},${installationId},${eftSessions},${cashSessions}`,\n\t\t\t\t).catch((error) => {\n\t\t\t\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: [] });\n\t\t\t\t});\n\t\t\t\tlet data = sessions.data;\n\t\t\t\tdata.startDate = startDate;\n\t\t\t\tdata.endDate = endDate;\n\t\t\t\tdata.installationId = installationId;\n\t\t\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: data });\n\t\t\t}\n\t\t};\n\nexport const fetchSessionsWithSummary =\n\t(\n\t\tinstallationId,\n\t\tstartDate,\n\t\tendDate,\n\t\teftSessions = true,\n\t\tcashSessions = true,\n\t) =>\n\t\tasync (dispatch) => {\n\t\t\tif (!installationId) {\n\t\t\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: [] });\n\t\t\t} else {\n\t\t\t\tif (!startDate) {\n\t\t\t\t\tstartDate = moment().format(\"DD MMM YYYY [00:00]\");\n\t\t\t\t}\n\t\t\t\tif (!endDate) {\n\t\t\t\t\tendDate = moment().format(\"DD MMM YYYY HH:mm\");\n\t\t\t\t}\n\t\t\t\tconst sessions = await axios.get(\n\t\t\t\t\t`Sessions/installationsUI/${startDate},${endDate},${installationId},${eftSessions},${cashSessions}`,\n\t\t\t\t).catch((error) => {\n\t\t\t\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: [] });\n\t\t\t\t});\n\t\t\t\tlet data = sessions.data;\n\t\t\t\tdata.startDate = startDate;\n\t\t\t\tdata.endDate = endDate;\n\t\t\t\tdata.installationId = installationId;\n\t\t\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: data });\n\t\t\t}\n\t\t};\n\n\nexport const fetchAsset = async (id, positionId) => {\n\tconst response = await axios.get(`Organisation/asset2/${id},${positionId}`);\n\treturn response.data;\n};\n\nexport const setAsset = async (PositionId, AssetNo, Details, Complete) => {\n\tconst payload = {\n\t\tComplete,\n\t\tPositionId,\n\t\tAssetNo,\n\t\tDetails: prepareDetails(Details),\n\t};\n\n\tconst response = await axios.put(`Installation/installposition`, payload);\n\treturn response.data;\n};\n\nexport const removeAsset = async (installationId) => {\n\tconst response = await axios.delete(`Installation/${installationId}`);\n\treturn response.data;\n};\n\nexport const setEft = (installationId, active) => async (dispatch) => {\n\tconst eft = active ? \"disableEFT\" : \"enableEFT\";\n\tawait axios.put(`Installation/${eft}/${installationId}`).catch((error) => {\n\t\tdispatch({ type: \"SET_EFT\", payload: \"ERROR\" });\n\t});\n\tdispatch({ type: \"SET_EFT\", payload: \"OK\" });\n};\n\nexport const setAuthorise = (installationId) => async (dispatch) => {\n\tawait axios.put(`Installation/authorise/${installationId}`).catch((error) => {\n\t\tdispatch({ type: \"SET_AUTHORISE\", payload: \"ERROR\" });\n\t});\n\tdispatch({ type: \"SET_AUTHORISE\", payload: \"OK\" });\n};\n\nexport const emptyInstallationsSection =\n\t(clearFilters = true) => async (dispatch) => {\n\t\tdispatch({ type: \"FETCH_INSTALLATIONS\", payload: defaultGrid });\n\t\tdispatch({ type: \"FETCH_TRANSACTIONS\", payload: defaultGrid });\n\t\tdispatch({ type: \"FETCH_SESSIONS\", payload: defaultGrid });\n\t\tdispatch({ type: \"SET_ACTIVE_INSTALLATION\", payload: {} });\n\t\tif (clearFilters) {\n\t\t\tdispatch({\n\t\t\t\ttype: \"FETCH_INSTALLATIONS_FILTERS\",\n\t\t\t\tpayload: { ...initialState },\n\t\t\t});\n\t\t}\n\t};\n\nexport const addPositions = (siteId, numPositions) => async (dispatch) => {\n\tawait axios.put(`Organisation/AddPositions/${siteId},${numPositions}`)\n\t\t.catch((error) => {\n\t\t\tdispatch({ type: \"ADD_POSITIONS\", payload: \"ERROR\" });\n\t\t});\n\n\tdispatch({ type: \"ADD_POSITIONS\", payload: \"OK\" });\n};\n\nexport const setActiveInstallation = (row = {}) => async (dispatch) => {\n\tdispatch({ type: \"SET_ACTIVE_INSTALLATION\", payload: row });\n};\n","import axios from \"@common/api/desktop/axios\";\n\nexport const fetchSession = async (id, showGamePlayEvents = false) => {\n const response = await axios.get(\n `Sessions/Details2/${id},${showGamePlayEvents}`,\n );\n return response.data;\n};\n\nexport const fetchComplianceSessionsPositions = async (siteId) => {\n const response = await axios.get(\n `ComplianceSessions/Positions/${siteId}`,\n );\n return response.data;\n};\n\nexport const fetchSessionsByGuids = async (sessionIds, pageNumber = 1) => {\n const response = await axios.get(\n `ComplianceSessions/Sessions/byids/${sessionIds.join(\";\")},${pageNumber}`,\n );\n return response.data;\n};\n\nexport const fetchComplianceSessions = async (\n installationId,\n periodId,\n pageNumber,\n) => {\n const response = await axios.get(\n `ComplianceSessions/Sessions2/${installationId},${periodId},${pageNumber}`,\n );\n return response.data;\n};\n","import { defaultGrid } from \"@helpers/datagrid\";\nimport { initialState } from \"@reducers/organisationDirectoryReducer\";\n\nexport const emptyTransactionsSection = (clearFilters = true) => async dispatch => {\n\tdispatch({ type: 'FETCH_TRANSACTIONS', payload: defaultGrid });\n\tif (clearFilters) dispatch({ type: 'FETCH_TRANSACTIONS_FILTERS', payload: { ...initialState } });\n}\n\nexport const setTransactionsKiosk = (payload) => async dispatch => {\n\tdispatch({ type: 'TRANSACTIONS_KIOSK', payload });\n}\n\nexport const setTransactionsLiability = (payload) => async dispatch => {\n\tdispatch({ type: 'TRANSACTIONS_LIABILITY', payload });\n}\n\nexport const setTransactionsTickets = (payload) => async dispatch => {\n\tdispatch({ type: 'TRANSACTIONS_TICKETS', payload });\n}\n\nexport const setTransactionsView = (payload) => async dispatch => {\n\tdispatch({ type: 'TRANSACTIONS_VIEW', payload });\n}","import axios from '@common/api/desktop/axios';\n\nexport const fetchSearchTerms = async (operatorId) => {\n\tconst manufacturers = await axios.get(`Organisation/manufacturers/${operatorId}`);\n\tconst machinetypes = await axios.get(`Organisation/categories/${operatorId}`);\n\tconst gametitles = await axios.get(`Organisation/gametitles/${operatorId}`);\n\tconst regions = await axios.get(`Security/operatorregions/${operatorId}`);\n\n\tconst filters = {\n\t\tmanufacturer: manufacturers.data,\n\t\tmachinetypes: machinetypes.data,\n\t\tgame: gametitles.data,\n\t\tregions: regions.data\n\t}\n\treturn filters;\n};\n\nexport const fetchOperators = () => async dispatch => {\n\n\tconst operators = await axios.get(`Security/operators`);\n\n\tconst data = operators.data.map(operator => {\n\t\treturn { key: operator.id, value: operator.id, text: operator.name }\n\t})\n\n\tawait dispatch({ type: 'FETCH_OPERATORS', payload: data });\n\n}\n\nexport const fetchOperatorOptions = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/operator/options/${operatorId}`);\n\treturn response.data\n}\n\nexport const prepareFilter = (selected, allOptions) => {\n\n\tif (selected.length < 1) {\n\t\treturn '#';\n\t}\n\n\tconst filterSelected = selected.filter(x => x.id !== -1)\n\tconst filterAll = allOptions.filter(x => x.id !== -1)\n\n\tif (filterSelected.length < filterAll.length) {\n\t\tconst items = filterSelected.map(x => x.id)\n\t\treturn items.join(';');\n\t}\n\n\treturn \"-1\";\n}\n\nexport const fetchAnalysisOrganisations = async (filters, FromAdmin) => {\n\treturn await fetchOrganisations(filters, FromAdmin, 'Analysis/OrgTree');\n}\n\nexport const fetchKioskOrganisations = async (filters, FromAdmin) => {\n\treturn await fetchOrganisations(filters, FromAdmin, 'Kiosk/OrgTree');\n}\n\nexport const fetchOrganisations = async (filters, FromAdmin = false, url = 'Organisation/tree2') => {\n\n\tconst { filterSelected, filterData } = filters;\n\n\tconst params = {\n\t\tOperatorId: filterSelected.operator,\n\t\tOperatorRegions: prepareFilter(filterSelected.regions, filterData.regions),\n\t\tManufacturers: prepareFilter(filterSelected.manufacturer, filterData.manufacturer),\n\t\tGameNames: prepareFilter(filterSelected.game, filterData.game),\n\t\tCategories: prepareFilter(filterSelected.machinetypes, filterData.machinetypes),\n\t\tSearch: filterSelected.searchText || \"#\",\n\t\tFromAdmin,\n\t}\n\n\tconst response = await axios.put(url, params)\n\t// format\n\tvar organisations = [];\n\tvar subCompanies = [];\n\tvar sites = [];\n\tresponse.data.forEach(item => {\n\t\tswitch (item.type) {\n\t\t\tcase \"CO\":\n\t\t\t\torganisations.push(item);\n\t\t\t\tbreak;\n\t\t\tcase \"SUB\":\n\t\t\t\tsubCompanies.push(item);\n\t\t\t\tbreak;\n\t\t\tcase \"SI\":\n\t\t\t\tsites.push(item);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tsubCompanies.forEach(item => {\n\t\titem.sites = sites.filter(site => site.parent === item.child);\n\t});\n\n\torganisations.forEach(item => {\n\t\titem.subCompanies = subCompanies.filter(company => company.parent === item.child);\n\t});\n\n\tconst activeOrgs = organisations.map(x => x.id);\n\tlet activeSubOrgs = []\n\n\torganisations.forEach((company) => {\n\t\tcompany.subCompanies.forEach((subCompany) => {\n\t\t\tactiveSubOrgs.push(subCompany.id)\n\t\t})\n\t})\n\n\treturn { activeOrgs, activeSubOrgs, organisations }\n};\n\nexport const fetchOrganisationByPosition = async (posId) => {\n\tconst response = await axios.get(`Organisation/Position2/${posId}`);\n\treturn response.data\n};\n\nexport const mergeParams = (filterSelected, searchParams) => {\n\tconst selected = {\n\t\tcompanyId: filterSelected.company.id,\n\t\tsubCompanyId: filterSelected.subcompany.id,\n\t\tsiteId: filterSelected.site.id,\n\t\toperator: filterSelected.operator,\n\t\tmanufacturer: filterSelected.manufacturer,\n\t\tmachinetypes: filterSelected.machinetypes,\n\t\tgamenames: filterSelected.game,\n\t}\n\n\treturn { ...searchParams, ...selected }\n}\n\nexport const checkForUpdates = (prevProps, newProps) => {\n\n\tif (!newProps.hasSelection) {\n\t\treturn false;\n\t}\n\n\tlet updated = false;\n\n\t['company', 'subcompany', 'site', 'operator'].forEach(item => {\n\t\tif (prevProps.filterSelected[item] !== newProps.filterSelected[item]) {\n\t\t\tupdated = true;\n\t\t}\n\t})\n\n\treturn updated;\n}\n","import { defaultGrid } from \"@helpers/datagrid\";\n\nexport const showSuccessAlert =\n (message, header = \"Success\", onConfirm = async () => { }) =>\n async (dispatch) => {\n dispatch({\n type: \"SUCCESS_ALERT\",\n payload: { message, onConfirm, visible: true, header },\n });\n };\n\nexport const hideSuccessAlert = () => async (dispatch) => {\n dispatch({\n type: \"SUCCESS_ALERT\",\n payload: { message: \"\", visible: false, header: \"\" },\n });\n};\n\nexport const showInstallHistoryModal = (grid) => async (dispatch) => {\n dispatch({ type: \"INSTALL_HISTORY_MODAL\", payload: { grid, open: true } });\n};\n\nexport const showCountDetailsModal = (data, onClose = () => { }) => async (dispatch) => {\n dispatch({ type: \"COUNT_DETAILS_MODAL\", payload: { ...data, open: true, onClose } });\n};\n\nexport const hideCountDetailsModal = () => async (dispatch) => {\n dispatch({\n type: \"COUNT_DETAILS_MODAL\",\n payload: { open: false, siteDisplay: \"\", countDateDisplay: \"\" },\n });\n};\n\nexport const hideInstallHistoryModal = () => async (dispatch) => {\n dispatch({\n type: \"INSTALL_HISTORY_MODAL\",\n payload: { grid: { data: [], headerDef: [], rowDef: [] }, open: false },\n });\n};\n\nexport const confirmModal =\n (message, visible, onConfirm, onClose = async () => { }, isYesNo = false) =>\n async (dispatch) => {\n dispatch({\n type: \"CONFIRM_MODAL\",\n payload: { message, visible, onConfirm, onClose, isYesNo },\n });\n };\n\nexport const setAssetOwnershipModal = (data) => async (dispatch) => {\n dispatch({ type: \"ASSET_OWNERSHIP_PROFILE_MODAL\", payload: { ...data } });\n};\n\nexport const showPasswordModal =\n (header, message, onConfirm) => async (dispatch) => {\n dispatch({\n type: \"PASSWORD_MODAL\",\n payload: { visible: true, message, header, onConfirm },\n });\n };\n\nexport const hidePasswordModal = () => async (dispatch) => {\n dispatch({\n type: \"PASSWORD_MODAL\",\n payload: { visible: false, header: \"\", message: \"\", onConfirm: () => { } },\n });\n};\n\nexport const setCollectionModal = (payload) => async (dispatch) => {\n dispatch({ type: \"COLLECTION_MODAL\", payload });\n};\n\nexport const showBankingCommentsModal =\n (open, data = {}) => async (dispatch) => {\n dispatch({ type: \"BANKING_COMMENTS_MODAL\", payload: { open, ...data } });\n };\n\nexport const showSiteVarianceHistoryModal =\n (open, data = {}) => async (dispatch) => {\n dispatch({\n type: \"SITE_VARIANCE_HISTORY_MODAL\",\n payload: { open, ...data },\n });\n };\n\nexport const setCollectionBreakdownModal =\n (data = {}, onRefresh = async () => { }, onClose = async () => { }) =>\n async (dispatch) => {\n dispatch({\n type: \"COLLECTION_BREAKDOWN_MODAL\",\n payload: { open: true, ...data, onRefresh, onClose },\n });\n };\n\nexport const hideCollectionBreakdownModal = () => async (dispatch) => {\n dispatch({ type: \"COLLECTION_BREAKDOWN_MODAL\", payload: { open: false } });\n};\n\nexport const showAddCommentModal =\n (header, subHeader, onSave = () => { }) => async (dispatch) => {\n dispatch({\n type: \"ADD_COMMENTS_MODAL\",\n payload: { open: true, header, subHeader, onSave },\n });\n };\n\nexport const hideAddCommentModal = () => async (dispatch) => {\n dispatch({ type: \"ADD_COMMENTS_MODAL\", payload: { open: false } });\n};\n\nexport const newProfileModal =\n (open, data, onSave = () => { }) => async (dispatch) => {\n dispatch({ type: \"NEW_PROFILE_MODAL\", payload: { ...data, open, onSave } });\n };\n\nexport const showRevenueModal = (\n selectedSite,\n operator,\n isSiteVariance = false,\n onClose = () => { },\n selectedVarianceType = 0,\n) =>\n async (dispatch) => {\n dispatch({\n type: \"REVENUE_MODAL\",\n payload: {\n open: true,\n selectedSite,\n operator,\n isSiteVariance,\n onClose,\n selectedVarianceType,\n },\n });\n };\n\nexport const hideRevenueModal = () => async (dispatch) => {\n dispatch({ type: \"REVENUE_MODAL\", payload: { open: false } });\n};\n\nexport const showVarianceHistoryDetailsModal =\n (data, onRefresh = async () => { }, onClose = async () => { }) =>\n async (dispatch) => {\n dispatch({\n type: \"VARIANCE_HISTORY_DETAILS_MODAL\",\n payload: { open: true, onRefresh, onClose, ...data },\n });\n };\n\nexport const hideVarianceHistoryDetailsModal = () => async (dispatch) => {\n dispatch({\n type: \"VARIANCE_HISTORY_DETAILS_MODAL\",\n payload: { open: false },\n });\n};\n\nexport const setEditMachineCountModal = (payload) => async (dispatch) => {\n dispatch({\n type: \"EDIT_MACHINE_COUNT_MODAL\",\n payload\n });\n};\n\nexport const showFloatLevelSettingsModal = (data) => async (dispatch) => {\n dispatch({\n type: \"FLOAT_LEVEL_SETTINGS_MODAL\",\n payload: { open: true, ...data },\n });\n};\n\nexport const hideFloatLevelSettingsModal = () => async (dispatch) => {\n dispatch({ type: \"FLOAT_LEVEL_SETTINGS_MODAL\", payload: { open: false } });\n};\n\nexport const showLiveFloorViewDetailsModal =\n (installation) => async (dispatch) => {\n dispatch({\n type: \"LIVE_FLOOR_VIEW_DETAILS_MODAL\",\n payload: { open: true, installation },\n });\n };\n\nexport const hideLiveFloorViewDetailsModal = () => async (dispatch) => {\n dispatch({ type: \"LIVE_FLOOR_VIEW_DETAILS_MODAL\", payload: { open: false } });\n};\n\nexport const showPromoAnalysisModal =\n (periods, selectedPeriod, grid) => async (dispatch) => {\n dispatch({\n type: \"PROMO_ANALYSIS_MODAL\",\n payload: { periods, from: selectedPeriod, grid, open: true },\n });\n };\n\nexport const hidePromoAnalysisModal = () => async (dispatch) => {\n dispatch({\n type: \"PROMO_ANALYSIS_MODAL\",\n payload: { periods: [], grid: defaultGrid, open: false },\n });\n};\n\nexport const showPromoAnalysisDetailsModal = (grid) => async (dispatch) => {\n dispatch({\n type: \"PROMO_ANALYSIS_DETAILS_MODAL\",\n payload: { grid, open: true },\n });\n};\n\nexport const hidePromoAnalysisDetailsModal = () => async (dispatch) => {\n dispatch({\n type: \"PROMO_ANALYSIS_DETAILS_MODAL\",\n payload: { grid: defaultGrid, open: false },\n });\n};\n\nexport const showSiteDetailsModal = (\n siteId,\n title,\n periodId,\n positionsFn = () => { },\n eventsFn = () => { },\n exportsFn = () => { },\n) =>\n async (dispatch) => {\n dispatch({\n type: \"SITE_DETAILS_MODAL\",\n payload: {\n siteId,\n title,\n periodId,\n positionsFn,\n eventsFn,\n exportsFn,\n open: true,\n },\n });\n };\n\nexport const hideSiteDetailsModal = () => async (dispatch) => {\n dispatch({\n type: \"SITE_DETAILS_MODAL\",\n payload: {\n open: false,\n positionsFn: () => { },\n eventsFn: () => { },\n exportsFn: () => { },\n },\n });\n};\n\nexport const showViewCommentsModal = (comments) => async (dispatch) => {\n dispatch({\n type: \"VIEW_COMMENTS_MODAL\",\n payload: { ...comments, open: true },\n });\n};\n\nexport const hideViewCommentsModal = () => async (dispatch) => {\n dispatch({ type: \"VIEW_COMMENTS_MODAL\", payload: { open: false } });\n};\n\nexport const showDownloadReportModal =\n (open, filename, onSave = () => { }) => (dispatch) => {\n dispatch({\n type: \"DOWNLOAD_REPORT_MODAL\",\n payload: { open, filename, onSave },\n });\n };\n","import mime from 'mime-types';\nimport { store } from '@store';\nimport { showDownloadReportModal } from '@actions/modals';\n\nexport const newFile = (data, fileName, contentType) => {\n\tconst blob = new Blob([data], { type: contentType })\n\tconst url = window.URL.createObjectURL(blob);\n\tconst a = document.createElement(\"a\");\n\tdocument.body.appendChild(a);\n\ta.style = \"display: none\";\n\ta.href = url;\n\ta.download = fileName;\n\ta.click();\n\twindow.URL.revokeObjectURL(url);\n}\n\nexport const handleDownload = (response) => {\n\tconst contentType = response.headers[\"content-type\"];\n\tconst contentDisposition = response.headers[\"content-disposition\"];\n\n\tconst extension = mime.extension(contentType) || 'pdf';\n\tconst name = contentDisposition.split('filename=')[1].split(';')[0].replace(/^\"|\"$/g, '') || `Report.${extension}`;\n\tconst onSave = async (name) => newFile(response.data, name, contentType);\n\tstore.dispatch(showDownloadReportModal(true, name, onSave));\n}\n","import axios from '@common/api/desktop/axios';\nimport { defaultGrid } from '@helpers/datagrid';\nimport { APIDateTimeFormat } from '@helpers/dates';\nimport prepareDetails from '@helpers/prepareDetails';\nimport { initialState } from '@reducers/organisationDirectoryReducer';\nimport moment from 'moment';\nimport { handleDownload } from '../../helpers/downloads';\n\nexport const fetchSessionsByCompany = (filters) => async dispatch => {\n\n\tlet params = new Map();\n\n\tparams.set(\"startDate\", moment().subtract(14, 'days').format(APIDateTimeFormat));\n\tparams.set(\"endDate\", moment().format(APIDateTimeFormat));\n\tparams.set(\"operator\", -1);\n\tparams.set(\"companyId\", -1);\n\tparams.set(\"subCompanyId\", -1);\n\tparams.set(\"siteId\", -1);\n\tparams.set(\"sessionId\", -1);\n\tparams.set(\"assetNo\", encodeURIComponent('#'));\n\tparams.set(\"playerId\", encodeURIComponent('#'))\n\tparams.set(\"eftSessions\", true);\n\tparams.set(\"cashSessions\", true);\n\tparams.set(\"manufacturer\", '-1');\n\tparams.set(\"gamenames\", '-1');\n\tparams.set(\"machinetypes\", '-1');\n\n\tfor (const [key, item] of Object.entries(filters)) {\n\t\tif (typeof item !== \"object\" && item !== '' && item !== null) {\n\t\t\tparams.set(key, encodeURIComponent(item));\n\t\t}\n\t}\n\n\tconst query = Array.from(params.values()).join(\",\");\n\n\tconst transactions = await axios.get(`Sessions/filterbymachine/${query}`).catch(error => {\n\t\tdispatch({ type: 'FETCH_SESSIONS_BY_COMPANY', payload: { grid: [] } });\n\t})\n\n\tdispatch({ type: 'FETCH_SESSIONS_BY_COMPANY', payload: transactions.data });\n\n}\n\nexport const fetchSessionsWithSummary =\n\t(\n\t\tStartDate,\n\t\tEndDate,\n\t\tOperatorId,\n\t\tCompanyId,\n\t\tSubCompanyId,\n\t\tSiteId,\n\t\tSessionId,\n\t\tAssetNo,\n\t\tPlayerId,\n\t\tTransactionRef,\n\t\tZeroBetSessions,\n\t\tOperatorRegions,\n\t\tManufacturers,\n\t\tGameNames,\n\t\tCategories,\n\t\tDetails,\n\t\tpageNumber = 1\n\t) => async dispatch => {\n\t\tconst params = {\n\t\t\tStartDate,\n\t\t\tEndDate,\n\t\t\tOperatorId,\n\t\t\tCompanyId: CompanyId || -1,\n\t\t\tSubCompanyId: SubCompanyId || -1,\n\t\t\tSiteId: SiteId || -1,\n\t\t\tSessionId: parseInt(SessionId) || -1,\n\t\t\tAssetNo: AssetNo || \"#\",\n\t\t\tPlayerId: PlayerId || \"#\",\n\t\t\tTransactionRef: TransactionRef || \"#\",\n\t\t\tZeroBetSessions: false,\n\t\t\tOperatorRegions,\n\t\t\tManufacturers,\n\t\t\tGameNames,\n\t\t\tCategories,\n\t\t\tDetails: prepareDetails(Details),\n\t\t\tpageNumber\n\t\t}\n\n\t\tconst response = await axios.put(`Sessions/filterbymachine3/`, params)\n\t\tdispatch({ type: 'FETCH_SESSIONS_BY_COMPANY', payload: response.data });\n\t}\n\nexport const updateSessionsWithSummary = (data) => async dispatch => {\n\tdispatch({ type: 'FETCH_SESSIONS_BY_COMPANY', payload: data });\n}\n\nexport const fetchSessionsExport =\n\tasync (\n\t\tStartDate,\n\t\tEndDate,\n\t\tOperatorId,\n\t\tCompanyId,\n\t\tSubCompanyId,\n\t\tSiteId,\n\t\tSessionId,\n\t\tAssetNo,\n\t\tPlayerId,\n\t\tTransactionRef,\n\t\tZeroBetSessions,\n\t\tOperatorRegions,\n\t\tManufacturers,\n\t\tGameNames,\n\t\tCategories,\n\t\tDetails\n\t) => {\n\t\tconst params = {\n\t\t\tStartDate,\n\t\t\tEndDate,\n\t\t\tOperatorId,\n\t\t\tCompanyId: CompanyId || -1,\n\t\t\tSubCompanyId: SubCompanyId || -1,\n\t\t\tSiteId: SiteId || -1,\n\t\t\tSessionId: parseInt(SessionId) || -1,\n\t\t\tAssetNo: AssetNo || \"#\",\n\t\t\tPlayerId: PlayerId || \"#\",\n\t\t\tTransactionRef: TransactionRef || \"#\",\n\t\t\tZeroBetSessions,\n\t\t\tOperatorRegions,\n\t\t\tManufacturers,\n\t\t\tGameNames,\n\t\t\tCategories,\n\t\t\tDetails: prepareDetails(Details)\n\t\t}\n\n\t\tconst response = await axios.put(`Sessions/export/`, params)\n\t\thandleDownload(response)\n\t}\n\nexport const emptySessionsSection = (clearFilters = true) => async dispatch => {\n\tdispatch({ type: 'FETCH_SESSIONS_BY_COMPANY', payload: defaultGrid });\n\tif (clearFilters) dispatch({ type: 'FETCH_SESSIONS_FILTERS', payload: { ...initialState } });\n}\n\nexport const fetchBlankSummarySessions = (operatorId) => async dispatch => {\n\tconst data = await fetchBlankSummary(operatorId);\n\tdispatch({ type: 'FETCH_SESSIONS_BY_COMPANY', payload: { summary: data } });\n}\n\nexport const fetchBlankSummary = async (operatorId) => {\n\tconst response = await axios.get(`/Sessions/blanksummary/${operatorId}`);\n\treturn response.data\n}\n","import { initialState } from \"@reducers/organisationDirectoryReducer\";\n\nexport const emptySettingsSection = (clearFilters = true) => async dispatch => {\n\tif (clearFilters) dispatch({ type: 'FETCH_SETTINGS_FILTERS', payload: { ...initialState } });\n}","/**\n * Take 1 dimensional array from endpoint response and build a hierarchical tree\n * @param {Array} array \n */\nexport default function buildTree(array) {\n // Add a child array to every object in the base array\n const modified = array.map(x => {\n return { ...x, children: [] }\n })\n\n // push the child ids onto their parents\n modified.forEach(item => {\n if (item.parent !== item.child && item.parent !== \"0\") {\n const parentIndex = modified.findIndex(x => x.child === item.parent)\n if (modified[parentIndex]) {\n modified[parentIndex].children.push(item); // the child prop is the unique id of the current item\n } else {\n console.error(item) // we found an orphan :(\n }\n }\n })\n\n // filter out the duplicates.\n return modified.filter(y => y.child === y.parent || y.parent === \"0\")\n}\n","import axios from '@common/api/desktop/axios';\nimport buildTree from \"@helpers/buildTree\";\nimport prepareDetails from \"@helpers/prepareDetails\";\n\nexport const mapToSelect = (data, alternative = false) => {\n\t// transactions tickets filterlist response is slightly different\n\treturn data.map((row) => {\n\t\treturn alternative\n\t\t\t? { value: row.key, text: row.text, key: row.key }\n\t\t\t: { key: row.id, value: row.id, text: row.name };\n\t});\n};\n\nexport const getOwnershipProfiles = async (operatorId) => {\n\tconst response = await axios.get(\n\t\t`OwnershipProfile/Profiles?operatorId=${operatorId}`,\n\t);\n\treturn mapToSelect([{ name: \"All\", id: -1 }, ...response.data]);\n};\n\nexport const getManufacturers = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/manufacturers/${operatorId}`);\n\treturn mapToSelect(response.data);\n};\n\nexport const getNoteAcceptorModels = async (operatorId) => {\n\tconst response = await axios.get(\n\t\t`Organisation/noteacceptormodels/${operatorId}`,\n\t);\n\treturn mapToSelect(response.data);\n};\n\nexport const getSuppliers = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/suppliers/${operatorId}`);\n\treturn mapToSelect(response.data);\n};\n\nexport const getDepots = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/depots/${operatorId}`);\n\treturn mapToSelect(response.data);\n};\n\nexport const getCategories = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/categories/${operatorId}`);\n\treturn mapToSelect(response.data);\n};\n\nexport const getGameTitles = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/gametitles/${operatorId}`);\n\treturn mapToSelect(response.data);\n};\n\nexport const getStatuses = async () => {\n\tconst response = await axios.get(`Asset/option/statuswithqty`);\n\treturn response.data;\n};\n\nexport const getCabinetTypes = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/cabinettypes/${operatorId}`);\n\treturn mapToSelect(response.data);\n};\n\nexport const getVariants = async () => {\n\tconst response = await axios.get(`Organisation/variants`);\n\treturn mapToSelect(response.data);\n};\n\nexport const getGroupings = async () => {\n\tconst response = await axios.get(`Asset/option/groupby`);\n\treturn mapToSelect(response.data);\n};\n\nexport const deleteAsset = async (assetId) => {\n\tconst response = await axios.put(`Asset/delete/${assetId}`);\n\treturn response.data;\n};\n\nexport const getAssets = async (\n\tOperatorId,\n\tMachineTypeId,\n\tManufacturerId,\n\tCabinetTypeId,\n\tGameId,\n\tNoteAcceptorId,\n\tStatusCode,\n\tVariantId,\n\tGroupBy,\n\tsearchText,\n\tDepot,\n\townershipProfileId,\n\tSupplierId,\n\tshowSummary,\n) => {\n\tconst Search = searchText || \"#\";\n\n\tconst body = {\n\t\tOperatorId,\n\t\tMachineTypeId,\n\t\tManufacturerId,\n\t\tCabinetTypeId,\n\t\tGameId,\n\t\tNoteAcceptorId,\n\t\tStatusCode: StatusCode.filter((x) => x.selected)\n\t\t\t.map((x) => x.id)\n\t\t\t.join(\";\"),\n\t\tVariantId,\n\t\tGroupBy,\n\t\tSearch,\n\t\tDepot,\n\t\townershipProfileId,\n\t\tSupplierId,\n\t\tshowSummary,\n\t};\n\n\tconst response = await axios.put(`Asset/tree/`, body);\n\treturn {\n\t\tstatuses: response.data.statuses,\n\t\tassets: buildTree(response.data.treeInfo),\n\t};\n};\n\nexport const getAssetsDownload = async (\n\tOperatorId,\n\tMachineTypeId,\n\tManufacturerId,\n\tCabinetTypeId,\n\tGameId,\n\tNoteAcceptorId,\n\tStatusCode,\n\tVariantId,\n\tGroupBy,\n\tsearchText,\n\tDepot,\n\townershipProfileId,\n\tSupplierId,\n\tshowSummary,\n) => {\n\tconst Search = searchText || \"#\";\n\n\tconst body = {\n\t\tOperatorId,\n\t\tMachineTypeId,\n\t\tManufacturerId,\n\t\tCabinetTypeId,\n\t\tGameId,\n\t\tNoteAcceptorId,\n\t\tStatusCode: StatusCode.filter((x) => x.selected)\n\t\t\t.map((x) => x.id)\n\t\t\t.join(\";\"),\n\t\tVariantId,\n\t\tGroupBy,\n\t\tSearch,\n\t\tDepot,\n\t\townershipProfileId,\n\t\tSupplierId,\n\t\tshowSummary,\n\t};\n\n\tconst response = await axios.put(`Asset/tree/export`, body, {\n\t\tresponseType: \"arraybuffer\",\n\t});\n\treturn response;\n};\n\nexport const newManufacturer = async (operatorId) => {\n\tconst response = await axios.get(\n\t\t`Organisation/newmanufacturer/${operatorId}`,\n\t);\n\treturn response.data;\n};\n\nexport const newCabinetType = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/newcabinettype/${operatorId}`);\n\treturn response.data;\n};\n\nexport const newGameTitle = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/newgametitle/${operatorId}`);\n\treturn response.data;\n};\nexport const newDepot = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/newdepot/${operatorId}`);\n\treturn response.data;\n};\n\nexport const newNoteAcceptorModel = async (operatorId) => {\n\tconst response = await axios.get(\n\t\t`Organisation/newnoteacceptormodel/${operatorId}`,\n\t);\n\treturn response.data;\n};\n\nexport const newSupplier = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/supplier/new/${operatorId}`);\n\treturn response.data;\n};\n\nexport const newAsset = async (operatorId) => {\n\tconst response = await axios.get(`Asset/new/${operatorId}`);\n\treturn response.data;\n};\n\nexport const newCategory = async (operatorId) => {\n\tconst response = await axios.get(`Organisation/newcategory/${operatorId}`);\n\treturn response.data;\n};\n\nexport const loadManufacturer = async (id) => {\n\tconst response = await axios.get(`Organisation/manufacturer/${id}`);\n\treturn response.data;\n};\n\nexport const loadCategory = async (id) => {\n\tconst response = await axios.get(`organisation/category/${id}`);\n\treturn response.data;\n};\n\nexport const loadDepot = async (id) => {\n\tconst response = await axios.get(`organisation/depot/${id}`);\n\treturn response.data;\n};\n\nexport const loadCabinetType = async (id) => {\n\tconst response = await axios.get(`organisation/cabinettype/${id}`);\n\treturn response.data;\n};\n\nexport const loadNoteAcceptorModel = async (id) => {\n\tconst response = await axios.get(`Organisation/noteacceptormodel/${id}`);\n\treturn response.data;\n};\n\nexport const loadSupplier = async (id) => {\n\tconst response = await axios.get(`Organisation/supplier/${id}`);\n\treturn response.data;\n};\n\nexport const loadGameTitle = async (id) => {\n\tconst response = await axios.get(`Organisation/gametitle/${id}`);\n\treturn response.data;\n};\n\nexport const loadAsset = async (id) => {\n\tconst response = await axios.get(`Asset/${id}`);\n\treturn response.data;\n};\n\nexport const updateManufacturer = async (\n\tid,\n\tOperatorId,\n\tdetails,\n\tcallback = () => { },\n) => {\n\tconst payload = { id, OperatorId, details: prepareDetails(details) };\n\tconst response = await axios.put(`/organisation/updatemanufacturer`, payload);\n\tcallback();\n\treturn response.data;\n};\n\nexport const updateSupplier = async (\n\tid,\n\tOperatorId,\n\tdetails,\n\tcallback = () => { },\n) => {\n\tconst payload = { id, OperatorId, details: prepareDetails(details) };\n\tconst response = await axios.put(`/organisation/supplier/update`, payload);\n\tcallback();\n\treturn response.data;\n};\n\nexport const updateDepot = async (\n\tid,\n\tOperatorId,\n\tdetails,\n\tcallback = () => { },\n) => {\n\tconst payload = { id, OperatorId, details: prepareDetails(details) };\n\tconst response = await axios.put(`/organisation/updatedepot`, payload);\n\tcallback();\n\treturn response.data;\n};\n\nexport const updateAsset = async (\n\tId,\n\tOperatorId,\n\tComplete,\n\tdetails,\n\tCopyAsset,\n) => {\n\tconst payload = {\n\t\tId,\n\t\tOperatorId,\n\t\tComplete,\n\t\tdetails: prepareDetails(details),\n\t\tCopyAsset,\n\t};\n\tconst response = await axios.put(`/asset/update`, payload);\n\treturn response.data;\n};\n\nexport const updateCategory = async (\n\tid,\n\tOperatorId,\n\tdetails,\n\tcallback = () => { },\n) => {\n\tconst payload = { id, OperatorId, details: prepareDetails(details) };\n\tconst response = await axios.put(`/organisation/updatecategory`, payload);\n\tcallback();\n\treturn response.data;\n};\n\nexport const updateNoteAcceptorModel = async (\n\tid,\n\tOperatorId,\n\tdetails,\n\tcallback = () => { },\n) => {\n\tconst payload = { id, OperatorId, details: prepareDetails(details) };\n\tconst response = await axios.put(\n\t\t`/organisation/updatenoteacceptormodel`,\n\t\tpayload,\n\t);\n\tcallback();\n\treturn response.data;\n};\n\nexport const updateGameTitle = async (\n\tid,\n\tOperatorId,\n\tdetails,\n\tcallback = () => { },\n) => {\n\tconst payload = { id, OperatorId, details: prepareDetails(details) };\n\tconst response = await axios.put(`/organisation/updategametitle`, payload);\n\tcallback();\n\treturn response.data;\n};\n\nexport const updateCabinetType = async (\n\tid,\n\tOperatorId,\n\tdetails,\n\tdoUpdate,\n\tcallback = () => { },\n) => {\n\tconst payload = {\n\t\tid,\n\t\tOperatorId,\n\t\tdetails: prepareDetails(details),\n\t\tdoUpdate,\n\t};\n\tconst response = await axios.put(`/organisation/updatecabinettype`, payload);\n\tcallback();\n\treturn response.data;\n};\n","import prepareDetails from '@helpers/prepareDetails';\nimport axios from '@common/api/desktop/axios';\n\nexport const fetchOperatorProfiles = async (operatorId) => {\n\tconst profiles = await axios.get(`SettingsProfile/profiles/${operatorId}`);\n\n\treturn profiles.data.map(profile => {\n\t\treturn { key: profile.id, value: profile.id, text: profile.name }\n\t})\n}\n\nexport const fetchProfile = async (operatorId, profileId = -1) => {\n\tconst profile = await axios.get(`/SettingsProfile/profile/${operatorId},${profileId}`);\n\treturn profile.data;\n}\n\nexport const newProfile = async (operatorId, profileId) => {\n\tconst response = await axios.get(`/SettingsProfile/new/${operatorId},${profileId}`);\n\treturn response.data\n}\n\nexport const getSite = async (siteId) => {\n\tconst response = await axios.get(`Organisation/site/${siteId}`);\n\treturn response.data\n}\n\nexport const getSubCompany = async (subcompanyId) => {\n\tconst response = await axios.get(`Organisation/region/${subcompanyId}`);\n\treturn response.data\n}\n\nexport const getCompany = async (companyId) => {\n\tconst response = await axios.get(`Organisation/company/${companyId}`);\n\treturn response.data\n}\n\nexport const getNewCompany = async (operatorId) => {\n\tconst response = await axios.get(`/Organisation/newcompany/${operatorId}`)\n\treturn response.data\n}\n\nexport const getNewRegion = async (operatorId, companyId) => {\n\tconst response = await axios.get(`/Organisation/newregion/${operatorId},${companyId}`)\n\treturn response.data\n}\n\nexport const getNewSite = async (operatorId, companyId, regionId) => {\n\tconst response = await axios.get(`/Organisation/newsite/${operatorId},${companyId},${regionId}`)\n\treturn response.data\n}\n\nexport const fetchOpeningHoursProfiles = async (operatorId) => {\n\tconst profiles = await axios.get(`OpeningHours/profiles/${operatorId}`);\n\n\treturn profiles.data.map(profile => {\n\t\treturn { key: profile.id, value: profile.id, text: profile.name }\n\t})\n}\n\nexport const fetchOpeningHoursProfile = async (operatorId, profileId) => {\n\tconst response = await axios.get(`OpeningHours/profile/${operatorId},${profileId}`);\n\treturn response.data\n}\n\nexport const updateOpeningHours = async (OperatorId, id, name, details) => {\n\tconst response = await axios.put(`/OpeningHours/update`, { id, OperatorId, name, details })\n\treturn response.data\n}\n\nexport const getOpeningHoursNew = async (operatorId) => {\n\tconst response = await axios.get(`/OpeningHours/new/${operatorId}`);\n\treturn response.data\n}\n\nexport const updateSettingsProfile = async (operatorId, profileId, baseProfileId, details) => {\n\tconst payload = { id: profileId, operatorId, profileId: baseProfileId, details: prepareDetails(details) }\n\tconst response = await axios.put(`/SettingsProfile/update/`, payload)\n\treturn response.data\n}\n\nexport const updateSite = async (OperatorId, CompanyId, RegionId, siteId, details) => {\n\tconst payload = { id: siteId, OperatorId, CompanyId, RegionId, details: prepareDetails(details) }\n\tconst response = await axios.put(`/organisation/updatesite/`, payload)\n\treturn response.data\n}\n\nexport const updateRegion = async (OperatorId, CompanyId, regionId, details) => {\n\tconst payload = { id: regionId, OperatorId, CompanyId, details: prepareDetails(details) }\n\tconst response = await axios.put(`/organisation/updateregion/`, payload)\n\treturn response.data\n}\n\nexport const updateCompany = async (OperatorId, companyId, details) => {\n\tconst payload = { id: companyId, OperatorId, details: prepareDetails(details) }\n\tconst response = await axios.put(`/organisation/updatecompany/`, payload)\n\treturn response.data\n}\n\nexport const updateOperator = async (OperatorId, details) => {\n\tconst payload = { id: OperatorId, details: prepareDetails(details) }\n\tconst response = await axios.put(`/organisation/updateoperator/`, payload)\n\treturn response.data\n}\n\nexport const getCalender = async (operatorId, year) => {\n\tconst response = await axios.get(`/Calendar/GetCalendar/${operatorId},${year}`);\n\treturn response.data;\n}\n\nexport const getOperatorOptions = async (operatorId) => {\n\tconst response = await axios.get(`/organisation/operator/${operatorId}`);\n\tconst data = [...response.data.map(x => {\n\t\treturn { ...x, type: \"options\" }\n\t})];\n\n\treturn data;\n}\n\nexport const getNewOperator = async () => {\n\tconst response = await axios.get(`/organisation/newoperator`);\n\treturn response.data\n}\n","import prepareDetails from '@helpers/prepareDetails';\nimport axios from '@common/api/desktop/axios';\n\nexport const fetchUserAccessProfiles = async (operatorId, search) => {\n\n\tconst searchTerm = search === \"\" ? \"#\" : search;\n\n\tconst profiles = await axios.get(`/UserAccessProfile/profiles/${operatorId},${encodeURIComponent(searchTerm)}`);\n\treturn profiles.data.map(x => {\n\t\treturn { key: x.id, value: x.id, text: x.name }\n\t})\n}\n\nexport const fetchSecurityUsers = async (operatorId, search) => {\n\tconst searchTerm = search === \"\" ? \"#\" : search;\n\tconst response = await axios.get(`/Security/users/${operatorId},${encodeURIComponent(searchTerm)}`);\n\tconst profiles = response.data.filter(x => x.type === \"P\");\n\n\treturn profiles.map(parent => {\n\t\treturn { ...parent, children: response.data.filter(child => child.parent === parent.parent && child.type === \"U\") }\n\t})\n}\n\nexport const fetchSecurityUser = async (userId) => {\n\tconst response = await axios.get(`/Security/user/${userId}`);\n\treturn response.data;\n}\n\nexport const fetchUserAccessProfile = async (profileId, fromAdmin = true) => {\n\tconst profiles = await axios.get(`UserAccessProfile/profile2/${profileId},${fromAdmin}`);\n\treturn profiles.data\n}\n\nexport const updateAccessProfile = async (profileId, OperatorId, details) => {\n\tconst payload = { Id: profileId, OperatorId, details: prepareDetails(details) }\n\tconst response = await axios.put(`/UserAccessProfile/update`, payload)\n\treturn response.data\n}\n\nexport const getAccessProfile = async (operatorId) => {\n\tconst response = await axios.get(`/UserAccessProfile/new2/${operatorId}`)\n\treturn response.data\n}\n\nexport const getSecurityUser = async (operatorId, profileId) => {\n\tconst response = await axios.get(`/Security/newuser/${operatorId},${profileId}`)\n\treturn response.data\n}\n\nexport const resetUserPassword = async (email) => {\n\tconst response = await axios.put(`/Security/ResetPassword/${email}`)\n\treturn response.data\n}\n\nexport const updateSecurityUser = async (userId, OperatorId, ProfileId, details, complete) => {\n\tconst payload = { id: userId, OperatorId, ProfileId, complete, details: prepareDetails(details) }\n\tconst response = await axios.put(`/Security/update2/`, payload)\n\treturn response.data\n}\n\nexport const getUserDataAccess = async (OperatorId, UserId, AccessType) => {\n\tconst response = await axios.get(`/Security/dataaccess/${OperatorId},${UserId},${AccessType}`)\n\treturn response.data\n}\n\nexport const updateUserDataAccess = async (userId, AccessTypeDetails, details) => {\n\tconst payload = { id: userId, AccessTypeDetails, details: prepareDetails(details) }\n\tconst response = await axios.put(`/Security/update/`, payload)\n\treturn response.data\n}\n","import { kioskDefaultState } from '@reducers/kioskReducer';\nimport { initialState } from '@reducers/organisationDirectoryReducer';\n\nexport const setKiosk = (data) => async dispatch => {\n\tdispatch({ type: 'KIOSK_VIEW', payload: data });\n};\n\nexport const emptyKioskSection = (clearFilters = true) => async dispatch => {\n\tdispatch({ type: 'KIOSK_VIEW', payload: { ...kioskDefaultState } });\n\tif (clearFilters) dispatch({ type: 'FETCH_KIOSK_FILTERS', payload: { ...initialState } });\n}","import React from 'react';\nimport { Button } from 'semantic-ui-react';\n\nconst CloseButton = (props) => {\n const onClick = (e) => {\n e.stopPropagation();\n props.onClose();\n }\n\n return \n )\n}\n\nexport default DownloadButton;\n","import { fetchAnalysisFilters, updateAnalysisView } from \"@actions\";\nimport { confirmModal } from \"@actions/modals\";\nimport { mapToSelect } from \"@api/egm\";\nimport ExpandButton from \"@buttons/ExpandButton\";\nimport { UIDateFormat, UITimeFormat } from \"@helpers/dates\";\nimport MultiSelect from \"@shared/MultiSelect\";\nimport moment from \"moment\";\nimport React, { useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DateInput } from \"semantic-ui-calendar-react\";\nimport { Button, Dropdown, Form } from \"semantic-ui-react\";\nimport OrgTreeButton from \"../buttons/OrgTreeButton.js\";\nimport DownloadButton from \"../buttons/DownloadButton.js\";\n\nconst AnalysisFilters = (props) => {\n\tconst {\n\t\tstartDate,\n\t\tendDate,\n\t\tfromWeek,\n\t\ttoWeek,\n\t\tcategories,\n\t\thours,\n\t\tweeks,\n\t\tselectedMeasures,\n\t\tdataGroups,\n\t\tdaysOfWeek,\n\t\ttotalBy,\n\t\ttimeGroupBy,\n\t\tfilteredTimeGroupBy,\n\t\tdataSource,\n\t\tselectedDataSource,\n\t\tselectedStartTime,\n\t\tselectedEndTime,\n\t\tselectedCategory,\n\t\tselectedTotalBy,\n\t\tselectedTimeGroupBy,\n\t\tselectedDayOfWeek,\n\t\tselectedMeasure,\n\t\tselectedDataGroup,\n\t\tdownloadLoading,\n\t\thideGraph,\n\t} = props.analysis;\n\tconst { measures } = dataSource.find((x) => x.id === selectedDataSource) || {\n\t\tmeasures: [],\n\t};\n\tconst {\n\t\tdisplayWeeksOfYear,\n\t\tdisplayDayOfWeek,\n\t\tdisplayDataType,\n\t\tdisplayDataTypes,\n\t\tdisplayTotalOptions,\n\t\tdisplayHours,\n\t} = timeGroupBy.find((x) => x.id === selectedTimeGroupBy) || {\n\t\tdisplayWeeksOfYear: false,\n\t\tdisplayDataType: false,\n\t\tdisplayDayOfWeek: false,\n\t\tdisplayTotalOptions: false,\n\t};\n\tconst { site, company, subcompany } = props.analysisFilters.filterSelected;\n\n\tconst onChange = (e, { name, value }) => {\n\t\tprops.updateAnalysisView({ [name]: value });\n\t};\n\n\tlet selection = \"All\";\n\tif (company.id) selection = \"CO\";\n\tif (subcompany.id) selection = \"SUB\";\n\tif (site.id) selection = \"SI\";\n\n\tconst processedGroups = dataGroups.filter((group) => {\n\t\treturn (\n\t\t\tgroup.orgFilter.split(\",\").includes(selection) || group.orgFilter === \"\"\n\t\t);\n\t});\n\n\tconst { updateAnalysisView } = props;\n\n\tuseEffect(() => {\n\t\tconst currentSelection = dataGroups.find((x) => x.id === selectedDataGroup);\n\n\t\tif (\n\t\t\t!currentSelection ||\n\t\t\tprocessedGroups.map((x) => x.id).includes(selectedDataGroup)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst match = processedGroups.find((x) => x.name === currentSelection.name);\n\n\t\tif (!match) {\n\t\t\treturn;\n\t\t}\n\n\t\tupdateAnalysisView({ selectedDataGroup: match.id });\n\t}, [processedGroups, dataGroups, selectedDataGroup, updateAnalysisView]);\n\n\tuseEffect(() => {\n\t\tif (!selectedDataSource || !measures) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst measure = measures.find((x) => x.id === selectedMeasure);\n\n\t\tif (!measure) {\n\t\t\tupdateAnalysisView({ selectedMeasure: measures[0].id });\n\t\t}\n\t}, [selectedDataSource, selectedMeasure, updateAnalysisView, measures]);\n\n\tconst onDateChange = (name, value) => {\n\t\tprops.updateAnalysisView({ [name]: moment(value, \"DD-MM-YYYY HH:mm:ss\") });\n\t};\n\n\tconst onDataSourceChange = (e, { name, value }) => {\n\t\tlet tmp = timeGroupBy.filter((x) =>\n\t\t\tx.displayForDataSources.includes(value),\n\t\t);\n\t\tif (tmp.length > 0) {\n\t\t\tif (tmp.filter((x) => x.id === selectedTimeGroupBy).length === 0) {\n\t\t\t\tprops.updateAnalysisView({ selectedTimeGroupBy: tmp[0].id }); //reset id to first in the list\n\t\t\t}\n\t\t}\n\n\t\tprops.updateAnalysisView({\n\t\t\t[name]: value,\n\t\t\tfilteredTimeGroupBy: tmp,\n\t\t});\n\t};\n\n\tconst onMultiSelectChange = (key, item) => {\n\t\tconst selections = props.analysis[key];\n\t\tif (selections.includes(item)) {\n\t\t\tprops.updateAnalysisView({ [key]: selections.filter((x) => x !== item) });\n\t\t} else {\n\t\t\tprops.updateAnalysisView({ [key]: [...selections, item] });\n\t\t}\n\t};\n\n\tconst disabled = !props.analysisFilters.hasSelection;\n\tconst { showOrgTree } = props.analysisFilters;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\tprops.fetchAnalysisFilters({ showOrgTree: !showOrgTree })\n\t\t\t\t}\n\t\t\t/>\n\t\t\t\n\t\t\t props.updateAnalysisView({ hideGraph: !hideGraph })}\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{!displayWeeksOfYear && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tonDateChange(\n\t\t\t\t\t\t\t\t\"startDate\",\n\t\t\t\t\t\t\t\tdisplayHours\n\t\t\t\t\t\t\t\t\t? `${value} ${startDate.format(UITimeFormat)}`\n\t\t\t\t\t\t\t\t\t: `${value} 00:00:00`,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimation=\"fade\"\n\t\t\t\t\t\tpopupPosition=\"bottom center\"\n\t\t\t\t\t\tclosable\n\t\t\t\t\t\tinlineLabel={false}\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\t{!displayWeeksOfYear && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tonDateChange(\n\t\t\t\t\t\t\t\t\"endDate\",\n\t\t\t\t\t\t\t\tdisplayHours\n\t\t\t\t\t\t\t\t\t? `${value} ${endDate.format(UITimeFormat)}`\n\t\t\t\t\t\t\t\t\t: `${value} 23:59:59`,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticonPosition=\"right\"\n\t\t\t\t\t\tanimation=\"fade\"\n\t\t\t\t\t\tpopupPosition=\"bottom center\"\n\t\t\t\t\t\tclosable\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\t{displayWeeksOfYear && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{displayWeeksOfYear && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{displayHours && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{displayHours && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{displayDataType && measures.length > 0 && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{displayDataTypes && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t onMultiSelectChange(\"selectedMeasures\", id)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{displayTotalOptions && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{displayDayOfWeek && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t x.name !== \"All\")}\n\t\t\t\t\t\tselections={selectedDayOfWeek}\n\t\t\t\t\t\tonChange={(id) => onMultiSelectChange(\"selectedDayOfWeek\", id)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t\n\t\t\t\t x.name !== \"All\")}\n\t\t\t\t\tselections={selectedCategory}\n\t\t\t\t\tonChange={(id) => onMultiSelectChange(\"selectedCategory\", id)}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tanalysis: state.analysisView,\n\t\tanalysisFilters: state.analysisFilters,\n\t};\n};\n\nexport default connect(mapStateToProps, {\n\tupdateAnalysisView,\n\tfetchAnalysisFilters,\n\tconfirmModal,\n})(AnalysisFilters);\n","import { prettyMoney } from '@helpers/currency';\nimport React from 'react';\nimport { CartesianGrid, Legend, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts';\n\nconst RevenueGraph = (props) => {\n\n const tickFormatter = (value) => {\n return props.symbol === \"£\" ? `${props.symbol}${prettyMoney(value, 2)}` : `${value}${props.symbol}`;\n }\n\n const toolTipFormatter = (value) => {\n return props.symbol === \"£\" ? `${props.symbol}${prettyMoney(value, 2)}` : `${value}${props.symbol}`;\n }\n\n return (\n \n \n \n \n \n \n {props.data && }\n {props.lines.map(line => )}\n \n \n )\n}\n\nexport default RevenueGraph;","export const getBackgroundColour = (item, defaultValue = \"transparent\") => {\n return getColour(item, \"backColour\", defaultValue);\n};\n\nexport const getTextColour = (item, defaultValue = \"inherit\") => {\n return getColour(item, \"foreColour\", defaultValue);\n};\n\nexport const getColour = (item, key, defaultValue) => {\n return item && item[key] && !item[key].isEmpty\n ? `rgb(${item[key].r},${item[key].g},${item[key].b},${item[key].a})`\n : defaultValue;\n};\n","import { getOptionValue } from '@helpers/options';\nimport React, { useState } from 'react';\nimport { Icon, Input } from 'semantic-ui-react';\n\nconst TextInput = (props) => {\n const { option, onChange, error, tabIndex } = props;\n const [masked, setMasked] = useState(option.isPassword || false)\n return (\n setMasked(!masked)} />}\n value={getOptionValue(option)}\n onChange={(event, { value }) => onChange(value)}\n readOnly={!option.isEditable}\n type={masked ? \"password\" : \"text\"}\n autoFocus={option.setFocus}\n tabIndex={tabIndex}\n error={error}\n placeholder={option.placeHolder}\n onBlur={props.onBlur}\n />\n )\n}\n\nexport default TextInput;","import { getBackgroundColour, getTextColour } from \"@helpers/colours\";\nimport { prettyMoney, uglyMoney } from \"@helpers/currency\";\nimport { UIDateFormat } from \"@helpers/dates\";\nimport { getOptionTotal, getOptionValue } from '@helpers/options';\nimport currency from \"currency.js\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { DateInput, DateTimeInput, TimeInput } from \"semantic-ui-calendar-react\";\nimport {\n Checkbox,\n Dropdown,\n Form,\n Icon,\n Input,\n Label,\n TextArea,\n} from \"semantic-ui-react\";\nimport TextInput from \"./TextInput\";\n\nclass Option extends React.Component {\n state = {\n focusValue: null,\n };\n\n handleListChange = (value) => {\n const selection = this.props.option.data.find((x) => x.id === value);\n const option = { ...this.props.option, defaultList: { ...selection } };\n this.props.onChange(option, value);\n };\n\n handleMoneyChange = (value) => {\n const isValid = /^[\\d.]+$/.test(value) || value.length < 1;\n\n if (isValid) {\n this.handleTextChange(value);\n }\n };\n\n handleTextChange = async (\n value,\n updateAttribute = \"defaultText\",\n reallyDoRefresh = false,\n ) => {\n const { option } = this.props;\n let update = true;\n let isValid = true;\n\n if (value.length > option.maxLength && option.maxLength > 0) {\n return;\n }\n\n if (update && option.entryPattern && value.length > 0) {\n const { allowedCharacterRegex, appends } = option.entryPattern;\n const regex = new RegExp(allowedCharacterRegex);\n const lastCharacter = value.slice(-1);\n\n if (getOptionValue(option).length < value.length) {\n update = regex.test(lastCharacter) || lastCharacter === \"-\";\n const appendedCharacter = appends.find(\n (x) => x.position === value.length,\n );\n if (appendedCharacter) {\n value += appendedCharacter.text;\n }\n }\n }\n\n if (update) {\n if (option.regex && value.length) {\n const regex = new RegExp(option.regex);\n isValid = regex.test(value);\n }\n if (isValid && option.checkDenom > 0) {\n isValid = (currency(value) * 1000) % (option.checkDenom * 1000) === 0;\n }\n this.props.onChange(\n { ...this.props.option, isValid, [updateAttribute]: value },\n value,\n \"changed\",\n reallyDoRefresh,\n );\n }\n };\n\n handleCheckboxChange = (option) => {\n const value =\n option.defaultText.toLowerCase() === \"true\" ? \"false\" : \"true\";\n this.props.onChange({ ...option, defaultText: value }, value);\n };\n\n renderError = () =>\n this.props.option.isValid === false && (\n Invalid {this.props.option.text}\n );\n\n handleMoneyBlur = (event) => {\n const { value } = event.target;\n\n if (isNaN(value)) {\n return;\n }\n\n const valueChangedSinceFocus =\n uglyMoney(value) !== uglyMoney(this.state.focusValue);\n this.props.onChange(\n { ...this.props.option, isValid: true, defaultText: prettyMoney(value) },\n prettyMoney(value),\n \"changed\",\n valueChangedSinceFocus,\n );\n };\n\n handleMoneyFocus = async (event) => {\n event.persist();\n const { value } = event.target;\n this.setState({ focusValue: value }, () => {\n this.props\n .onChange(\n {\n ...this.props.option,\n isValid: true,\n defaultText: uglyMoney(value),\n },\n uglyMoney(value),\n \"changed\",\n false,\n )\n .then(() => {\n event.target.select();\n });\n });\n };\n\n static getIcon = (option) => {\n switch (option.currencySymbol) {\n case \"£\":\n return \"pound\";\n case \"€\":\n return \"euro\";\n case \"$\":\n return \"dollar\";\n default:\n return \"pound\";\n }\n };\n\n render() {\n const { option } = this.props;\n const error = option.isValid === false;\n\n // @todo: base set of props to pass to each of these\n // @todo: split these into separate components\n\n switch (option.type) {\n case 1: // List (tested)\n const options = option.data.length\n ? option.data.map((option, index) => {\n return {\n ...option,\n value: option.id,\n key: `${option.text} ${index}`,\n };\n })\n : [];\n return (\n this.handleListChange(value)}\n tabIndex={this.props.tabIndex}\n disabled={!option.isEditable}\n placeholder={option.placeHolder}\n fluid={!this.props.inline}\n error={error}\n onFocus={() => this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n />\n );\n\n case 2: // Text\n return (\n \n this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n onBlur={() => this.handleTextChange(getOptionValue(option), 'defaultText', true)}\n />\n {this.renderError()}\n \n );\n\n case 3: // Date\n return (\n <>\n \n this.handleTextChange(\n moment(value, UIDateFormat).toISOString(),\n \"defaultDate\",\n true,\n )\n }\n readOnly={!option.isEditable}\n onFocus={() => this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n animation=\"fade\"\n tabIndex={this.props.tabIndex}\n popupPosition=\"bottom center\"\n closable\n placeholder={option.placeHolder}\n autoComplete=\"off\"\n error={error}\n />\n {this.renderError()}\n \n );\n\n case 4: // Multi\n return

Multi

;\n\n case 5: // Datetime\n return (\n \n this.handleTextChange(value)}\n readOnly={!option.isEditable}\n tabIndex={this.props.tabIndex}\n animation=\"fade\"\n popupPosition=\"bottom center\"\n closable\n autoComplete=\"off\"\n error={error}\n onFocus={() => this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n />\n {this.renderError()}\n \n );\n case 6: // Money\n // @todo: if we swap this out for a label, and swap the label to an input on focus, we can handle the formatting without all this complexity for refreshes.\n return (\n \n this.handleMoneyChange(value)}\n onBlur={this.handleMoneyBlur}\n value={getOptionValue(option)}\n tabIndex={this.props.tabIndex}\n readOnly={!option.isEditable}\n disabled={!option.isEditable}\n error={error}\n />\n {this.renderError()}\n \n );\n\n case 7: // Int\n return (\n \n this.handleTextChange(value)}\n tabIndex={this.props.tabIndex}\n readOnly={!option.isEditable}\n type=\"number\"\n error={error}\n onFocus={() => this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n onBlur={() => this.handleTextChange(getOptionValue(option), 'defaultText', true)}\n />\n {this.renderError()}\n \n );\n\n case 8: // switch\n case 10: // checkbox\n return (\n this.handleCheckboxChange(option)}\n disabled={!option.isEditable}\n />\n );\n\n case 9:\n const background = getBackgroundColour(option);\n const color = getTextColour(option);\n return background !== \"transparent\" ? (\n \n {option.defaultText}\n \n ) : (\n {option.defaultText}\n );\n\n case 11:\n return (\n \n this.handleTextChange(value)}\n className=\"w-100\"\n disabled={!option.isEditable}\n fluid\n rows={4}\n value={option.defaultText}\n tabIndex={this.props.tabIndex}\n onFocus={() => this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n />\n \n );\n\n case 12:\n return ;\n\n case 13:\n const total = getOptionTotal(option, this.props.optionsList);\n const processedTotal = option.isCurrency ? `${option.currencySymbol}${parseFloat(total).toFixed(2) || 0}${option.suffix}` : `${parseInt(total)}${option.suffix}` || 0;\n return {processedTotal};\n\n case 14: // Percentage\n return (\n \n this.handleTextChange(value)}\n label=\"%\"\n labelPosition=\"right\"\n tabIndex={this.props.tabIndex}\n readOnly={!option.isEditable}\n type=\"number\"\n error={error}\n onFocus={() => this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n />\n {this.renderError()}\n \n );\n\n case 15: // Time\n return (\n \n this.handleTextChange(value)}\n readOnly={!option.isEditable}\n tabIndex={this.props.tabIndex}\n animation=\"fade\"\n popupPosition=\"bottom center\"\n closable\n autoComplete=\"off\"\n error={error}\n onFocus={() => this.props.onFocus(option.code)}\n focus={option.code === this.props.focus}\n autoFocus={option.code === this.props.focus || option.setFocus}\n />\n {this.renderError()}\n \n );\n\n default:\n return {option.defaultText};\n }\n }\n}\n\nexport default Option;\n","import Option from \"@components/systemAdmin/Option\";\nimport { getBackgroundColour, getTextColour } from \"@helpers/colours\";\nimport _ from \"lodash\";\nimport React from \"react\";\nimport { Dimmer, Icon, Loader, Table } from \"semantic-ui-react\";\n\nclass DataGrid extends React.Component {\n state = {\n activeRow: null,\n sortBy: null,\n data: this.props.data,\n direction: \"ascending\",\n };\n\n componentDidUpdate = (prevProps) => {\n if (prevProps.data !== this.props.data) {\n this.setState({\n activeRow: null,\n sortBy: null,\n direction: \"ascending\",\n data: this.props.data,\n });\n }\n };\n\n onRowClick = (row) => {\n if (!this.props.disableActiveRow && row.isClickable !== false) {\n this.setState({ activeRow: row }, () => {\n if (typeof this.props.onRowClick === \"function\") {\n this.props.onRowClick(row);\n }\n });\n }\n };\n\n onCellClick = (cell) => {\n if (\n typeof this.props.onCellClick === \"function\" &&\n this.props.disableActiveRow\n ) {\n this.props.onCellClick(cell);\n }\n };\n\n renderData() {\n return this.state.data.map((data, index) => {\n const activeRow = this.props.activeRow || this.state.activeRow;\n const jsonData = JSON.stringify(data);\n const isActiveRow = Array.isArray(this.props.activeRow)\n ? this.props.activeRow.map((x) => JSON.stringify(x)).includes(jsonData)\n : JSON.stringify(activeRow) === jsonData;\n return (\n this.onRowClick(data)}\n >\n {this.dataToRow(data, index, isActiveRow)}\n \n );\n });\n }\n\n handleSort = (sortBy) => {\n let isString = false;\n\n for (const o of this.state.data) {\n if (Number.isNaN(parseFloat(o.cellData[sortBy].data.actualValue))) {\n isString = true;\n break;\n }\n }\n\n const sorted = _.orderBy(\n [...this.state.data],\n function(o) {\n return !isString\n ? parseFloat(o.cellData[sortBy].data.actualValue)\n : o.cellData[sortBy].data.actualValue;\n },\n this.state.direction === \"ascending\" ? \"desc\" : \"asc\",\n );\n\n this.setState({\n direction:\n this.state.direction === \"ascending\" ? \"descending\" : \"ascending\",\n sortBy,\n data: sorted,\n });\n };\n\n getCellAlignment = (index) => {\n const textAlign = [\"left\", \"center\", \"right\"];\n\n if (!this.props.rowDef[index]) {\n return textAlign[0];\n } else {\n const alignment = textAlign[this.props.rowDef[index].alignment];\n return alignment || textAlign[0];\n }\n };\n\n getHeaderAlignment = (index) => {\n const textAlign = [\"left\", \"center\", \"right\"];\n return textAlign[index];\n };\n\n dataToRow(data, rowIndex, isActiveRow) {\n return data.cellData\n .filter((item) => !item.hide)\n .map((item, index) => {\n switch (item.type) {\n case \"cell\":\n const style = isActiveRow\n ? { color: getTextColour(item.data) }\n : {\n background: getBackgroundColour(item.data),\n color: getTextColour(item.data),\n };\n return (\n this.onCellClick(item.data)}\n className={item.data.bold ? \"font-bold\" : \"\"}\n >\n {item.data.displayValue !== \"\" ? item.data.displayValue : \" \"}\n \n );\n default:\n return (\n \n \n \n );\n }\n });\n }\n\n renderGroupHeadings() {\n return this.props.groupHeadings.map((data, index) => {\n return (\n \n {data.header}\n \n );\n });\n }\n\n renderHeadings() {\n return this.props.headings.map((data, index) => {\n return (\n !this.props.disableSort && this.handleSort(index)}\n >\n {data.text}\n \n );\n });\n }\n\n render() {\n let classes = \"table-overflow max-height\";\n\n if (this.props.hideOverflow) {\n classes = \"\";\n }\n\n if (this.props.stretched) {\n classes = \"table-overflow flex-stretch\";\n }\n\n if (this.props.fullHeight) {\n classes = \"table-overflow flex-stretch-vertical\";\n }\n\n if (this.props.className) {\n classes += \" \" + this.props.className;\n }\n\n if (this.props.loading) {\n return (\n
\n \n Loading\n \n
\n );\n }\n\n if (!this.state.data || !this.state.data.length) {\n return (\n
\n
\n {\" \"}\n {\" \"}\n {this.props.noResults\n ? this.props.noResults\n : \"There are no results for the current set of filters.\"}\n
\n
\n );\n }\n\n return (\n
\n \n {this.props.headings && (\n \n {this.props.groupHeadings && (\n {this.renderGroupHeadings()}\n )}\n {this.renderHeadings()}\n \n )}\n {this.renderData()}\n \n
\n );\n }\n}\n\nexport default DataGrid;\n","import { checkForUpdates, emptyAnalysisSection, showSuccessAlert, updateAnalysisView } from '@actions';\nimport Analysis from '@api/analysis';\nimport AnalysisFilters from '@components/analysis/AnalysisFilters';\nimport RevenueGraph from '@components/revenue/RevenueGraph';\nimport { prettyMoney } from '@helpers/currency';\nimport { handleDownload } from '@helpers/downloads';\nimport { graphInitialState, gridInitialState } from '@reducers/analysisViewReducer';\nimport DataGrid from '@shared/DataGrid';\nimport _ from 'lodash';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, ButtonGroup, Dimmer, Grid, Loader } from 'semantic-ui-react';\n\nclass AnalysisView extends React.Component {\n\n constructor() {\n super();\n this.graphDebounce = _.debounce(this.loadGraph, 850);\n }\n\n handleRefresh = () => {\n const { startDate, endDate, fromWeek, toWeek, selectedStartTime, selectedEndTime, selectedCategory, selectedMeasure, selectedMeasures, selectedTotalBy, selectedTimeGroupBy, selectedDataGroup, selectedDayOfWeek, selectedDataSource } = this.props.analysis;\n const { operator, company, subcompany, site } = this.props.analysisFilters.filterSelected\n\n this.props.updateAnalysisView({ loading: true, graph: graphInitialState }).then(() => {\n Analysis.getGrid(\n startDate,\n endDate,\n fromWeek,\n toWeek,\n selectedStartTime,\n selectedEndTime,\n selectedMeasure,\n selectedMeasures,\n selectedTotalBy,\n selectedTimeGroupBy,\n selectedDataGroup,\n selectedCategory,\n operator,\n company.id,\n subcompany.id,\n site.id,\n selectedDayOfWeek,\n selectedDataSource\n )\n .then(\n grid => {\n this.props.updateAnalysisView({ grid, loading: false, selectedRows: [] })\n },\n () => this.props.updateAnalysisView({ loading: false, grid: gridInitialState, selectedRows: [] })\n );\n })\n }\n\n componentWillUnmount() {\n this.props.emptyAnalysisSection();\n }\n\n handleExport = () => {\n const { startDate, endDate, fromWeek, toWeek, selectedStartTime, selectedEndTime, selectedMeasure, selectedMeasures, selectedCategory, selectedTotalBy, selectedTimeGroupBy, selectedDataGroup, selectedDayOfWeek, selectedDataSource } = this.props.analysis;\n const { operator, company, subcompany, site } = this.props.analysisFilters.filterSelected\n const { email } = this.props.login;\n\n this.props.updateAnalysisView({ downloadLoading: true }).then(() => {\n Analysis.getExport(\n email,\n startDate,\n endDate,\n fromWeek,\n toWeek,\n selectedStartTime,\n selectedEndTime,\n selectedMeasure,\n selectedMeasures,\n selectedTotalBy,\n selectedTimeGroupBy,\n selectedDataGroup,\n selectedCategory,\n operator,\n company.id,\n subcompany.id,\n site.id,\n selectedDayOfWeek,\n selectedDataSource\n )\n .then(\n response => {\n handleDownload(response);\n this.props.updateAnalysisView({ downloadLoading: false });\n },\n () => this.props.updateAnalysisView({ downloadLoading: false })\n );\n })\n\n }\n\n loadGraph = () => {\n const { timeGroupBy, startDate, endDate, fromWeek, toWeek, selectedStartTime, selectedEndTime, selectedRows, selectedCategory, selectedMeasure, selectedMeasures, selectedTotalBy, selectedTimeGroupBy, selectedDataGroup, selectedDayOfWeek, selectedDataSource } = this.props.analysis;\n const { operator, company, subcompany, site } = this.props.analysisFilters.filterSelected\n const { canGraph } = timeGroupBy.find(x => x.id === selectedTimeGroupBy) || false;\n this.props.updateAnalysisView({ graph: graphInitialState, graphLoading: true }).then(() => {\n if (canGraph && selectedRows.length > 0) {\n Analysis.getGraph(\n selectedRows,\n startDate,\n endDate,\n fromWeek,\n toWeek,\n selectedStartTime,\n selectedEndTime,\n selectedMeasure,\n selectedMeasures,\n selectedTotalBy,\n selectedTimeGroupBy,\n selectedDataGroup,\n selectedCategory,\n operator,\n company.id,\n subcompany.id,\n site.id,\n selectedDayOfWeek,\n selectedDataSource\n )\n .then(\n graph => this.props.updateAnalysisView({ graph, graphLoading: false }),\n () => this.props.updateAnalysisView({ graphLoading: false, graph: graphInitialState })\n );\n } else {\n this.props.updateAnalysisView({ graphLoading: false, graph: graphInitialState })\n }\n\n });\n }\n\n onRowClick = selectedRow => {\n const { selectedRows, graphType } = this.props.analysis\n let newSelectedRows = [];\n\n if (selectedRows.includes(selectedRow)) {\n newSelectedRows = [...selectedRows.filter(row => row !== selectedRow)]\n } else {\n if (graphType === 1) {\n newSelectedRows = [selectedRow];\n } else {\n if (selectedRows.length < 5) {\n newSelectedRows = [...selectedRows, selectedRow];\n }\n }\n }\n this.props.updateAnalysisView({ selectedRows: newSelectedRows }).then(() => graphType === 1 ? this.loadGraph() : this.graphDebounce())\n }\n\n componentDidUpdate(prevProps) {\n const { operator } = this.props.analysisFilters.filterSelected;\n if (operator !== prevProps.analysisFilters.filterSelected.operator) {\n Analysis.getMetaData(operator).then(response => {\n const data = {\n ...response,\n selectedTimeGroupBy: response.timeGroupBy[0] ? response.timeGroupBy[0].id : null,\n selectedTotalBy: response.totalBy[0] ? response.totalBy[0].id : null,\n selectedMeasure: response.dataSource[0].measures[0] ? response.dataSource[0].measures[0].id : null,\n selectedMeasures: response.defaultMeasures || [],\n selectedDataGroup: response.dataGroups[0] ? response.dataGroups[0].id : null,\n selectedDayOfWeek: [...response.daysOfWeek.map(x => x.id)],\n selectedCategory: [...response.categories.map(x => x.id)],\n selectedStartTime: response.defaultStartTime,\n selectedEndTime: response.defaultEndTime,\n fromWeek: response.defaultStartWeek,\n toWeek: response.defaultEndWeek,\n selectedDataSource: response.dataSource[0] ? response.dataSource[0].id : null\n }\n this.props.updateAnalysisView(data);\n })\n }\n\n if (checkForUpdates(prevProps.analysisFilters, this.props.analysisFilters)) {\n this.props.updateAnalysisView({\n graph: graphInitialState,\n grid: gridInitialState\n })\n }\n }\n\n render() {\n\n const { grid, graphType, graph, graphLoading, loading, selectedRows, disabled, hideGraph } = this.props.analysis;\n const formatter = (value) => isNaN(value) ? value : prettyMoney(value, 2);\n\n return (\n \n \n \n \n \n \n {!hideGraph ?\n <>\n
\n \n \n \n \n
\n
\n \n \n \n \n \n {selectedRows.length} of {graphType === 1 ? 1 : 5} selected\n
\n \n : null}\n \n
\n
\n
\n );\n\n }\n}\n\nconst mapStateToProps = state => {\n return {\n analysis: state.analysisView,\n analysisFilters: state.analysisFilters,\n login: state.logIn\n };\n};\n\nexport default connect(mapStateToProps, { updateAnalysisView, showSuccessAlert, emptyAnalysisSection })(AnalysisView);\n","import React from 'react';\nimport { Input, Select } from 'semantic-ui-react'\n\n\nclass SelectOperator extends React.Component {\n\n render = () => {\n \n const { operators, value, onChange } = this.props;\n const fluid = this.props.fluid != null;\n\n if (operators.length === 1) {\n return \n } else {\n return \n \n }\n\n this.handleRefresh()}\n />\n\n
\n\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n};\n\nconst mapStateToProps = state => {\n return {\n filters: state.LiveFloorViewerFilters,\n };\n};\n\nexport default connect(mapStateToProps, { fetchLiveFloorViewerFilters, showSiteDetailsModal })(SiteDetailsTab);\n","import MachineStatusTab from '@components/LiveFloorViewer/MachineStatusTab';\nimport SiteDetailsTab from '@components/LiveFloorViewer/SiteDetailsTab';\nimport React from 'react';\nimport { Tab } from 'semantic-ui-react';\n\nconst LiveFloorView = () => {\n\n const panes = [\n {\n key: \"Site Details\",\n menuItem: \"Site Details\",\n pane: \n },\n {\n key: \"Machine Status\",\n menuItem: \"Machine Status\",\n pane: \n }\n ];\n\n return (\n
\n \n
\n )\n};\n\nexport default LiveFloorView;\n","import axios from '@common/api/desktop/axios';\nimport { handleDownload } from '@helpers/downloads';\n\nexport const fetchReports = async () => {\n\tconst response = await axios.get(`Report/ListGroups`);\n\treturn response.data.map((x, index) => {\n\t\treturn { ...x, id: index + 1 }\n\t})\n};\n\nexport const prepareParams = (params) => {\n\tconst missing = 10 - params.length;\n\tlet parsedParams = params.map((x) => (x === null ? \"#\" : x));\n\n\tfor (let i = 0; i < missing; i++) {\n\t\tparsedParams.push(\"#\");\n\t}\n\n\treturn parsedParams.map((item) => encodeURIComponent(item)).join(\",\");\n};\n\nexport const getReport = async (reportId, params) => {\n\tconst queryString = prepareParams(params);\n\tconst response = await axios.get(\n\t\t`Report/Parameters2/${reportId},${queryString}`,\n\t);\n\treturn response.data;\n};\n\nexport const createReport = async (reportName, reportId, params) => {\n\tconst queryString = prepareParams(Object.values(params));\n\n\tawait axios\n\t\t.get(`Report/Create2/${reportId},${queryString}`, {\n\t\t\tresponseType: \"arraybuffer\",\n\t\t})\n\t\t.then((response) => handleDownload(response));\n};\n","import { APIDateFormat, UIDateFormat } from \"@helpers/dates\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { DateInput } from \"semantic-ui-calendar-react\";\nimport { Form } from \"semantic-ui-react\";\n\nconst ReportsDatepicker = (props) => {\n const handleChange = (event, { name, value }) => {\n const formatDate = moment(value, UIDateFormat).format(APIDateFormat);\n props.onChange(name, formatDate);\n };\n\n return (\n \n \n \n \n );\n};\n\nexport default ReportsDatepicker;\n","import React from 'react';\nimport { Dropdown, Form } from 'semantic-ui-react';\n\nconst ReportsDropdown = (props) => {\n const options = props.options.length ? props.options.map((option, index) => { return { ...option, value: option.id, key: `${option.text} ${index}` } }) : []\n\n return (\n \n \n props.onChange(name, value)}\n disabled={options.length < 1}\n />\n \n\n )\n\n}\n\nexport default ReportsDropdown","import { createReport } from '@actions/reports';\nimport { APIDateFormat } from '@helpers/dates';\nimport moment from 'moment';\nimport React from 'react';\nimport { Button, Form, Header, Segment } from 'semantic-ui-react';\nimport ReportsDatepicker from './ReportsDatepicker';\nimport ReportsDropdown from './ReportsDropdown';\n\nclass FormBuilder extends React.Component {\n\n state = {\n fields: {},\n loading: false,\n error: null\n }\n\n handleChange = (name, value) => {\n this.setState({ fields: { ...this.state.fields, ...{ [name]: value } } }, () => {\n this.props.onChange(this.props.report, this.prepareParams())\n });\n }\n\n isValid = () => {\n if (this.state.loading) {\n return false;\n }\n\n const required = this.props.report.data.filter(x => x.isRequired).map(x => x.text);\n\n for (const field of required) {\n if (!this.state.fields[field]) {\n return false;\n }\n }\n\n return true;\n }\n\n prepareParams = () => {\n return this.props.report.data.map((item) => {\n return this.state.fields[item.text] ? moment.isMoment(this.state.fields[item.text]) ? this.state.fields[item.text].format(APIDateFormat) : this.state.fields[item.text] : '#';\n });\n }\n\n componentDidUpdate = (nextProps) => {\n if (this.props.report.id !== nextProps.report.id) {\n this.setDefaultValues();\n }\n }\n\n componentDidMount = () => {\n this.setDefaultValues();\n }\n\n setDefaultValues = () => {\n const fields = {}\n\n for (const item of this.props.report.data) {\n switch (item.type) {\n case 1:\n fields[item.text] = item.defaultList ? item.defaultList.id : null;\n break;\n default:\n fields[item.text] = item.defaultDate !== \"0001-01-01T00:00:00\" ? moment(item.defaultDate).format(APIDateFormat) : null;\n break;\n }\n }\n\n this.setState({ fields })\n }\n\n handleProcessReport = () => {\n this.props.onError(null, () => {\n this.setState({ loading: true }, () => {\n createReport(this.props.report.name, this.props.report.id, this.state.fields)\n .then(() => {\n this.setState({ loading: false })\n })\n .catch((error) => {\n let decoder = new TextDecoder(\"utf-8\")\n this.props.onError(decoder.decode(error.response.data));\n this.setState({ loading: false })\n })\n });\n });\n }\n\n render() {\n const isValid = this.isValid();\n return (\n \n \n
{this.props.report.name}
\n
\n \n
\n {this.props.report.data.map((item, index) => {\n switch (item.type) {\n case 1:\n return \n\n default:\n return \n\n }\n })}\n \n \n
\n
\n )\n }\n}\n\nexport default FormBuilder","import React from 'react';\nimport { Menu, Icon, Loader } from 'semantic-ui-react'\n\nclass ReportsList extends React.Component {\n\n render() {\n return (\n \n \n { this.props.title || My Reports }\n \n \n { this.props.reports.length ?\n \n { this.props.reports.map((item, index) => {\n return (\n this.props.onSelection(item)}\n >\n {item.name}\n\n { (this.props.selected.id === item.id && this.props.loading) &&\n \n }\n \n \n )\n }) } \n \n :\n No reports available. \n }\n \n );\n }\n};\n\n\n\nexport default ReportsList;\n","import { fetchReports, getReport } from '@actions/reports';\nimport FormBuilder from '@components/reports/FormBuilder';\nimport ReportsList from '@components/reports/ReportsList';\nimport React from 'react';\nimport { Grid, Header, Message, Segment } from 'semantic-ui-react';\n\nclass ReportsView extends React.Component {\n\n state = {\n reports: [],\n category: { id: null, reports: [] },\n report: { id: null },\n error: null\n }\n\n onSelection = (selection) => {\n this.onParamsChange(selection);\n }\n\n onError = (error, callback = () => { }) => {\n this.setState({ error }, callback)\n }\n\n onParamsChange = (report, params = ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']) => {\n this.setState({ error: null }, () => {\n getReport(report.id, params)\n .then((response) => {\n this.setState({ report: { ...report, data: response } });\n })\n })\n }\n\n componentDidMount() {\n fetchReports()\n .then(reports => {\n this.setState({ reports })\n })\n }\n\n render() {\n\n return (\n \n {this.state.error &&\n \n this.setState({ error: null })}>{this.state.error}\n \n }\n \n \n this.setState({ category: item, report: { id: null } })} />\n \n {this.state.category.id &&\n \n \n \n }\n \n {!this.state.report.id ?\n \n \n
Reports Viewer
\n
\n \n Please choose a report on the left menu to begin.\n \n
\n :\n \n }\n
\n
\n
\n );\n }\n};\n\nexport default ReportsView;\n","import prepareDetails from \"@helpers/prepareDetails\";\nimport axios from '@common/api/desktop/axios';\n\nclass Collections {\n addComment = async (collectionId, comment) => {\n const response = await axios.put(`Collections/comments/add`, {\n collectionId,\n comment,\n });\n return response.data;\n };\n\n getVarianceHistory = async (operatorId, siteId, option) => {\n const response = await axios.get(\n `Collections/variancehistory/${operatorId},${siteId},${option}`,\n );\n return response.data;\n };\n\n getVarianceHistoryByMin = async (operatorId, min) => {\n const response = await axios.get(\n `collections/variancehistorybymin/${operatorId},${min}`,\n );\n return response.data;\n };\n\n getVarianceHistoryExport = async (operatorId, siteId, option) => {\n const response = await axios.get(\n `Collections/variancehistory/export/${operatorId},${siteId},${option}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getVarianceHistoryOptions = async (operatorId, siteId) => {\n const response = await axios.get(\n `Collections/variancehistory/options/${operatorId},${siteId}`,\n );\n return response.data;\n };\n\n getCommentsByCollection = async (collectionId) => {\n const response = await axios.get(\n `Collections/comments/bycollection/${collectionId}`,\n );\n return response.data;\n };\n\n getComments = async (operatorId, siteId, periodId) => {\n const response = await axios.get(\n `Collections/comments/${operatorId},${siteId},${periodId}`,\n );\n return response.data;\n };\n\n getCommentsByPeriod = async (operatorId, siteId, fromId, toId) => {\n const response = await axios.get(\n `Collections/comments/byperiod/${operatorId},${siteId},${fromId},${toId}`,\n );\n return response.data;\n };\n\n getCommentsByInstallation = async (installationId) => {\n const response = await axios.get(\n `Collections/comments/byInstallation/${installationId}`,\n );\n return response.data;\n };\n\n getCommentsByBatchId = async (batchId) => {\n const collectionType = 0;\n const response = await axios.get(\n `Collections/comments/byCollection2/${collectionType},${batchId}`,\n );\n return response.data;\n };\n\n getPeriods = async (operatorId, siteId) => {\n const response = await axios.get(\n `Collections/banking/week/periods/${operatorId},${siteId}`,\n );\n return response.data;\n };\n\n getBankingWeek = async (operatorId, siteId, fromId, toId) => {\n const response = await axios.get(\n `Collections/banking/week/${operatorId},${siteId},${fromId},${toId}`,\n );\n return response.data;\n };\n\n getBankingWeekExport = async (operatorId, siteId, fromId, toId) => {\n const response = await axios.get(\n `Collections/banking/week/export/${operatorId},${siteId},${fromId},${toId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getBankingWeekByEgm = async (detailRef) => {\n const response = await axios.get(\n `Collections/banking/week/byEGM/${detailRef}`,\n );\n return response.data;\n };\n\n getBankingWeekTransactions = async (CollectionId, details) => {\n const response = await axios.put(\n `Collections/banking/week/byEGM/transactions/filter`,\n { CollectionId, Details: prepareDetails(details) },\n );\n return response.data;\n };\n\n getBankingPerformanceExport = async (\n operatorId,\n siteId,\n fromId,\n toId,\n showDetails,\n ) => {\n const response = await axios.get(\n `Collections/performance/week/export/${operatorId},${siteId},${fromId},${toId},${showDetails}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getBankingWeekDetail = async (operatorId, siteId, batchId) => {\n const response = await axios.get(\n `Collections/banking/week/detail/batch/${operatorId},${siteId},${batchId}`,\n );\n return response.data;\n };\n\n getBankingPerformanceDetail = async (operatorId, siteId, batchId) => {\n const response = await axios.get(\n `Collections/performance/week/detail/batch/${operatorId},${siteId},${batchId}`,\n );\n return response.data;\n };\n\n getBankingPerformance = async (\n operatorId,\n siteId,\n fromId,\n toId,\n showDetails,\n ) => {\n const response = await axios.get(\n `Collections/performance/week/${operatorId},${siteId},${fromId},${toId},${showDetails}`,\n );\n return response.data;\n };\n\n getBankingPerformanceByEgm = async (detailRef) => {\n const response = await axios.get(\n `Collections/performance/week/byEGM/${detailRef}`,\n );\n return response.data;\n };\n\n getMachinePerformancePdf = async (batchId) => {\n const response = await axios.get(\n `Report/Collection/Batch/Performance/Analysis/PDF/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getMachinePerformanceCsv = async (batchId) => {\n const response = await axios.get(\n `Report/Collection/Batch/Performance/Analysis/CSV/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getSummaryReportPdf = async (batchId) => {\n const response = await axios.get(\n `Report/Collection/Batch/Summary/PDF/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getBankingSummaryPdf = async (batchId) => {\n const response = await axios.get(\n `Report/Collection/Batch/Banking/Summary/PDF/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getBankingVariancePdf = async (batchId) => {\n const response = await axios.get(\n `Report/Collection/Batch/Banking/Variance/PDF/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getPerformanceSummaryPdf = async (batchId) => {\n const response = await axios.get(\n `Report/Collection/Batch/Performance/Summary/PDF/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getPerformanceSummaryCsv = async (batchId) => {\n const response = await axios.get(\n `report/Collection/Batch/Performance/Summary/CSV/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n getPerformanceVariancePdf = async (batchId) => {\n const response = await axios.get(\n `Report/Collection/Batch/Performance/Variance/PDF/${batchId}`,\n { responseType: \"arraybuffer\" },\n );\n return response;\n };\n\n editMeter = async (meterRef) => {\n const response = await axios.get(`Collections/meter/edit/${meterRef}`);\n return response.data;\n };\n\n updateMeter = async (meterRef, details) => {\n const response = await axios.put(`Collections/meter/update`, {\n meterRef,\n complete: true,\n details: prepareDetails(details),\n });\n return response.data;\n };\n\n refreshMeter = async (detailRef) => {\n const response = await axios.get(\n `Collections/banking/week/byEGM/Meters/${detailRef}`,\n );\n return response.data;\n };\n\n getPromoTickets = async (collectionId) => {\n const response = await axios.get(\n `Collections/promotickets/bycollection/${collectionId}`,\n );\n return response.data;\n };\n\n getTicketsInKiosk = async (collectionId, details) => {\n const response = await axios.post(\n `Collections/ticketsinkioskcd/bycollection/`,\n { collectionId, details: prepareDetails(details) },\n );\n return response.data;\n };\n\n getTickets = async (collectionId, details) => {\n const response = await axios.post(`Collections/tickets/bycollection/`, {\n collectionId,\n details: prepareDetails(details),\n });\n return response.data;\n };\n\n getEvents = async (collectionId) => {\n const response = await axios.get(\n `Collections/events/bycollection/${collectionId}`,\n );\n return response.data;\n };\n\n declareCountEdit = async (collectionType, collectionId) => {\n const response = await axios.get(\n `Collections/declare/edit/${collectionType},${collectionId}`\n );\n return response.data;\n };\n\n declareCountSave = async (data) => {\n const response = await axios.put(\n `Collections/declare/update`,\n data\n );\n return response.data;\n }\n}\n\nconst collections = new Collections();\n\nexport default collections;\n","import { showPromoAnalysisModal, showRevenueModal } from \"@actions/modals\";\nimport collections from \"@api/collections\";\nimport revenue from \"@api/revenue\";\nimport BaseRevenueView from \"@components/revenue/BaseRevenueView\";\nimport { handleDownload } from \"@helpers/downloads\";\nimport { connect } from \"react-redux\";\n\nclass RevenueView extends BaseRevenueView {\n useGroupBy = true;\n fnGetViewTypes = revenue.getRevenueViewTypes;\n fnGetGraphOptions = revenue.getRevenueGraphOptions;\n isVariance = false;\n\n handleApiCall = (fnRequest, fnSuccess, fnFailure) => {\n const {\n selectedOperator,\n selectedCompany,\n selectedSubCompany,\n selectedWeek,\n selectedViewType,\n selectedCategory,\n selectedGroupBy,\n selectedRegion,\n } = this.state;\n\n fnRequest(\n selectedOperator,\n selectedCompany,\n selectedSubCompany,\n selectedWeek,\n selectedCategory,\n selectedViewType,\n selectedGroupBy,\n selectedRegion,\n ).then(\n (response) => fnSuccess(response),\n () => fnFailure(),\n );\n };\n\n handleRefresh = () => {\n this.setState({ loading: true }, () => {\n this.handleApiCall(\n revenue.getSummary,\n (summary) => this.setState({ summary, loading: false }),\n () => this.setState({ loading: false }),\n );\n });\n };\n\n onExportClick = () => {\n this.setState({ exportLoading: true }, () => {\n this.handleApiCall(\n revenue.getRevenueSummaryExport,\n (summary) =>\n this.setState({ exportLoading: false }, () =>\n handleDownload(summary),\n ),\n () => this.setState({ exportLoading: false }),\n );\n });\n };\n\n onDetailsClick = () => {\n const { selectedViewType, activeRow, selectedOperator } = this.state;\n if (selectedViewType !== 4) {\n this.props.showRevenueModal(\n activeRow,\n selectedOperator,\n this.isVariance,\n () => this.handleRefresh(),\n );\n } else {\n this.setState({ detailsLoading: true }, () => {\n collections\n .getPeriods(selectedOperator, activeRow.siteId)\n .then((periods) => {\n const selectedPeriod = periods[0].value;\n collections\n .getPromoCashDetails(selectedPeriod, activeRow.siteId)\n .then((grid) =>\n this.props\n .showPromoAnalysisModal(periods, selectedPeriod, grid)\n .then(() => this.setState({ detailsLoading: false })),\n );\n });\n });\n }\n };\n\n refreshGraph = () => {\n const {\n selectedOperator,\n selectedCompany,\n selectedSubCompany,\n selectedWeek,\n selectedCategory,\n selectedGroupBy,\n selectedRegion,\n selectedViewType,\n selectedVarianceType,\n activeRow,\n } = this.state;\n this.setState({ chartLoading: true }, () => {\n revenue\n .getGraph(\n selectedOperator,\n selectedCompany,\n selectedSubCompany,\n activeRow.siteId,\n selectedWeek,\n selectedCategory,\n selectedViewType,\n selectedVarianceType,\n selectedGroupBy,\n selectedRegion,\n )\n .then(\n (graph) => this.setState({ graph, chartLoading: false }),\n () => this.setState({ chartLoading: false }),\n );\n });\n };\n}\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators.filter((x) => x.value !== -1),\n };\n};\n\nexport default connect(mapStateToProps, {\n showRevenueModal,\n showPromoAnalysisModal,\n})(RevenueView);\n","import { store } from \"@store\";\n\nclass BaseAction {\n constructor(reducer) {\n this.reducer = reducer;\n }\n\n hasChanged = () =>\n this.getStatePath(store.getState()) !== this.getInitialState();\n\n data = () => {\n return this.getStatePath(store.getState());\n };\n\n reset = async () => this.dispatch(this.reducer.initialState);\n\n getStatePath = (state) => state[this.reducer.getPath()];\n\n getInitialState = () => this.reducer.initialState;\n\n dispatch = async (payload) =>\n await store.dispatch(async (dispatch) =>\n dispatch({ type: this.reducer.getActionType(), payload })\n );\n}\n\nexport default BaseAction;\n","import BaseReducer from \"./BaseReducer\";\n\nclass LoadingReducer extends BaseReducer {\n domain = \"Loading\";\n type = \"Spinner\";\n\n initialState = {\n loading: false,\n };\n}\n\nconst reducer = new LoadingReducer();\n\nexport default reducer\n","import BaseAction from \"./BaseAction\";\nimport LoadingReducer from \"../reducers/LoadingReducer\";\n\nclass LoadingAction extends BaseAction {\n set = async (loading) => this.dispatch({ loading });\n}\n\nconst action = new LoadingAction(LoadingReducer);\n\nexport default action;\n","import BaseAction from \"./BaseAction\";\nimport LoginReducer from \"@common/redux/reducers/LoginReducer\";\n\nclass LoginAction extends BaseAction {\n Login = async (data) => this.dispatch({ ...data });\n\n Logout = async () => this.reset();\n}\n\nconst action = new LoginAction(LoginReducer);\n\nexport default action;\n","import currency from \"currency.js\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { DateInput, DateTimeInput } from \"semantic-ui-calendar-react\";\nimport {\n Checkbox,\n Dropdown,\n Form,\n Icon,\n Input,\n Label,\n TextArea,\n} from \"semantic-ui-react\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport { getBackgroundColour, getTextColour } from \"@helpers/colours\";\nimport { prettyMoney, uglyMoney } from \"@helpers/currency\";\n\nclass Option extends React.Component {\n state = {\n type: \"text\", // for money inputs\n };\n\n handleListChange = (value) => {\n const selection = this.props.option.data.find((x) => x.id === value);\n const option = { ...this.props.option, defaultList: { ...selection } };\n this.props.onChange(option, value);\n };\n\n handleMoneyChange = (value) => {\n const isValid = /^[\\d.]+$/.test(value) || value.length < 1;\n\n if (isValid) {\n this.handleTextChange(value);\n }\n };\n\n handleTextChange = async (value) => {\n const { option } = this.props;\n\n let update = true;\n let isValid = true;\n\n if (value.length > option.maxLength && option.maxLength > 0) {\n update = false;\n }\n\n if (update && option.entryPattern && value.length > 0) {\n const { allowedCharacterRegex, appends } = option.entryPattern;\n const regex = new RegExp(allowedCharacterRegex);\n const lastCharacter = value.slice(-1);\n\n if (Option.getValue(option).length < value.length) {\n update = regex.test(lastCharacter) || lastCharacter === \"-\";\n const appendedCharacter = appends.find((x) =>\n x.position === value.length\n );\n if (appendedCharacter) {\n value += appendedCharacter.text;\n }\n }\n }\n\n if (update) {\n if (option.regex && value.length) {\n const regex = new RegExp(option.regex);\n isValid = regex.test(value);\n }\n if (isValid && option.checkDenom > 0) {\n isValid = (currency(value) * 1000) % (option.checkDenom * 1000) === 0;\n }\n await this.props.onChange({\n ...this.props.option,\n isValid,\n defaultText: value,\n }, value);\n }\n };\n\n handleCheckboxChange = (event, option) => {\n const value = option.defaultText.toLowerCase() === \"true\"\n ? \"false\"\n : \"true\";\n this.props.onChange(event, { ...option, defaultText: value }, value);\n };\n\n static getValue = (option) => {\n switch (option.type) {\n case 1: // List (tested)\n return (option.defaultList && option.defaultList.id)\n ? option.defaultList.id\n : \"\";\n\n case 3:\n case 5:\n return option.defaultDate || \"\";\n\n default:\n return option.defaultText || \"\";\n }\n };\n\n renderError = () =>\n !this.props.option.isValid && (\n Invalid {this.props.option.text}\n );\n\n handleMoneyBlur = (event) => {\n this.setState({ type: \"text\" }, () => {\n const value = !parseFloat(event.target.value)\n ? \"0.00\"\n : parseFloat(event.target.value);\n this.prettifyMoney(value);\n });\n };\n\n handleMoneyFocus = (event) => {\n this.handleTextChange(uglyMoney(event.target.value)).then(() => {\n this.setState({ type: \"number\" }, () => {\n event.target.select();\n });\n });\n };\n\n prettifyMoney = (value) => {\n this.handleTextChange(prettyMoney(value));\n };\n\n render() {\n const { option } = this.props;\n const error = !option.isValid;\n const { currencySymbol } = this.props.login;\n\n switch (option.type) {\n case 1: // List (tested)\n const options = option.data.length\n ? option.data.map((option, index) => {\n return {\n ...option,\n value: option.id,\n key: `${option.text} ${index}`,\n };\n })\n : [];\n return (\n this.handleListChange(value)}\n tabIndex={this.props.tabIndex}\n disabled={!option.isEditable}\n placeholder={option.placeHolder}\n fluid\n error={error}\n />\n );\n\n case 2: // Text\n return (\n \n this.handleTextChange(value)}\n readOnly={!option.isEditable}\n autoFocus={option.setFocus}\n tabIndex={this.props.tabIndex}\n error={error}\n placeholder={option.placeHolder}\n />\n {this.renderError()}\n \n );\n\n case 3: // Date\n return (\n \n this.handleTextChange(value)}\n readOnly={!option.isEditable}\n animation=\"fade\"\n tabIndex={this.props.tabIndex}\n popupPosition=\"bottom center\"\n autoFocus={option.setFocus}\n closable\n autoComplete=\"off\"\n error={error}\n />\n {this.renderError()}\n \n );\n\n case 4: // Multi\n return

Multi

;\n\n case 5: // Datetime\n return (\n \n this.handleTextChange(value)}\n autoFocus={option.setFocus}\n readOnly={!option.isEditable}\n tabIndex={this.props.tabIndex}\n animation=\"fade\"\n popupPosition=\"bottom center\"\n closable\n autoComplete=\"off\"\n error={error}\n />\n {this.renderError()}\n \n );\n case 6: // Money\n return (\n \n this.handleMoneyChange(value)}\n onBlur={this.handleMoneyBlur}\n value={Option.getValue(option)}\n tabIndex={this.props.tabIndex}\n readOnly={!option.isEditable}\n error={error}\n />\n {this.renderError()}\n \n );\n\n case 7: // Int\n return (\n \n this.handleTextChange(value)}\n onFocus={(e) => e.target.select()}\n autoFocus={option.setFocus}\n tabIndex={this.props.tabIndex}\n readOnly={!option.isEditable}\n type=\"number\"\n error={error}\n />\n {this.renderError()}\n \n );\n\n case 8: // switch\n return (\n this.handleCheckboxChange(option)}\n disabled={!option.isEditable}\n />\n );\n\n case 9:\n const background = getBackgroundColour(option);\n const color = getTextColour(option);\n return background !== \"transparent\"\n ? (\n \n {option.defaultText}\n \n )\n : {option.defaultText};\n\n case 10: // checkbox\n return (\n this.handleCheckboxChange(event, option)}\n disabled={!option.isEditable}\n />\n );\n\n case 11:\n return (\n \n this.handleTextChange(value)}\n className=\"w-100\"\n disabled={!option.isEditable}\n fluid\n rows={4}\n value={option.defaultText}\n tabIndex={this.props.tabIndex}\n />\n \n );\n\n case 12:\n return ;\n\n case 13:\n let total = 0;\n\n option.data.forEach((item) => {\n const field = this.props.optionsList.find((x) => x.code === item.id);\n if (field) {\n const value = parseFloat(uglyMoney(Option.getValue(field)) || 0);\n switch (item.text) { // signage\n case \"+\":\n total += value;\n break;\n\n case \"-\":\n total -= value;\n break;\n\n case \"*\":\n total *= value;\n break;\n\n case \"/\":\n total /= value;\n break;\n\n default:\n break;\n }\n }\n });\n\n return £{parseFloat(total).toFixed(2) || 0};\n\n default:\n return {option.defaultText};\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n login: LoginAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(Option);\n","import _ from \"lodash\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Icon, Table } from \"semantic-ui-react\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport { getBackgroundColour, getTextColour } from \"@helpers/colours\";\nimport Option from \"@common/components/shared/Option\";\n\nclass DataGrid extends React.Component {\n state = {\n activeRow: null,\n sortBy: null,\n data: this.props.data,\n direction: \"ascending\",\n };\n\n componentDidUpdate = (prevProps) => {\n if (prevProps.data !== this.props.data) {\n this.setState({\n activeRow: null,\n sortBy: null,\n direction: \"ascending\",\n data: this.props.data,\n });\n }\n };\n\n onRowClick = (row) => {\n if (!this.props.disableActiveRow) {\n this.setState({ activeRow: row }, () => {\n if (typeof this.props.onRowClick === \"function\") {\n this.props.onRowClick(row);\n }\n });\n }\n };\n\n onCellClick = (cell) => {\n if (\n typeof this.props.onCellClick === \"function\" &&\n this.props.disableActiveRow\n ) {\n this.props.onCellClick(cell);\n }\n };\n\n renderData() {\n return this.state.data.map((data, index) => {\n const activeRow = this.props.activeRow\n ? this.props.activeRow\n : this.state.activeRow;\n return (\n {\n this.onRowClick(data);\n }}\n >\n {this.dataToRow(data, index)}\n \n );\n });\n }\n\n handleSort = (sortBy) => {\n let isString = false;\n\n this.state.data.forEach((o) => {\n if (!isString && isNaN(o.cellData[sortBy].data.actualValue)) {\n isString = true;\n }\n });\n\n const sorted = _.orderBy(\n this.state.data,\n function (o) {\n return !isString\n ? Number(o.cellData[sortBy].data.actualValue)\n : o.cellData[sortBy].data.actualValue;\n },\n this.state.direction === \"ascending\" ? \"desc\" : \"asc\",\n );\n\n this.setState({\n direction: this.state.direction === \"ascending\"\n ? \"descending\"\n : \"ascending\",\n sortBy,\n data: sorted,\n });\n };\n\n getCellAlignment = (index) => {\n const textAlign = [\"left\", \"center\", \"right\"];\n\n if (!Array.isArray(this.props.rowDef)) {\n return;\n }\n\n if (!this.props.rowDef[index]) {\n return textAlign[0];\n } else {\n const alignment = textAlign[this.props.rowDef[index].alignment];\n return alignment || textAlign[0];\n }\n };\n\n getHeaderAlignment = (index) => {\n const textAlign = [\"left\", \"center\", \"right\"];\n return textAlign[index];\n };\n\n dataToRow(data, rowIndex) {\n return data.cellData.filter((item) => !item.hide).map((item, index) => {\n const displayValue = item.data.displayValue !== \"\"\n ? item.data.displayValue\n : \" \";\n return (\n this.onCellClick(item.data)\n : null}\n >\n {item.type === \"cell\" ? displayValue : (\n \n this.props.onOptionChange(event, rowIndex, option)}\n />\n )}\n \n );\n });\n }\n\n renderHeadings() {\n if (!Array.isArray(this.props.headings)) {\n return;\n }\n\n return this.props.headings.map((data, index) => {\n return (\n !this.props.disableSort && this.handleSort(index)}\n >\n {data.text}\n \n );\n });\n }\n\n render() {\n let classes = \"stretch \";\n\n if (!this.props.noScroll) {\n classes += \" table-overflow \";\n }\n\n classes += this.props.className;\n\n if (!this.state.data || !this.state.data.length) {\n return (\n \n
\n {this.props.noResults\n ? this.props.noResults\n : \"There are no results for the current set of filters.\"}\n
\n \n );\n }\n\n return (\n \n \n \n \n {this.renderHeadings()}\n \n \n {this.renderData()}\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: LoadingAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(DataGrid);\n","import { fetchSession } from '@common/api/desktop/sessions';\nimport DataGrid from '@common/components/shared/DataGrid';\nimport React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { Checkbox, Dimmer, Grid, Header, Loader, Message, Modal } from 'semantic-ui-react';\n\nconst SessionDetailsModal = ({ sessionId, modalOpen, handleClose, logIn }) => {\n\n\n const [data, setData] = useState({\n loading: false,\n showGamePlayEvents: false,\n session: {\n eventsGrid: {\n headerDef: [],\n rowDef: [],\n data: []\n },\n summarysGrid: {\n headerDef: [],\n rowDef: [],\n data: []\n }\n }\n })\n\n const { session, showGamePlayEvents, loading } = data;\n const { summarysGrid, eventsGrid, suspiciousReason } = session;\n\n useEffect(() => {\n if (!sessionId || !modalOpen) {\n return;\n }\n setData(data => { return { ...data, loading: true } })\n fetchSession(sessionId, showGamePlayEvents).then(\n session => setData(data => { return { ...data, session, loading: false } }),\n () => setData(data => { return { ...data, loading: false } })\n );\n }, [sessionId, showGamePlayEvents])\n\n\n return (\n \n
\n \n {loading ?\n \n \n \n :\n \n {(session.isSuspicious && suspiciousReason) &&\n \n \n {suspiciousReason}\n \n \n }\n \n \n {session.site} - {session.gameName}\n {logIn.optionShowPlayerID && CUSTOMER ID: {session.playerID || \"N/A\"}}\n \n \n \n \n SESSION START: {session.startDate}\n SESSION END: {session.endDate}\n DURATION (HH:MM) {session.duration || \"N/A\"}\n setData({ ...data, showGamePlayEvents: !showGamePlayEvents })} checked={showGamePlayEvents} />\n \n \n \n \n \n \n \n \n \n \n \n }\n \n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n logIn: state.logIn,\n };\n};\n\nexport default connect(mapStateToProps, null)(SessionDetailsModal);\n","import RefreshButton from '@buttons/RefreshButton';\nimport { UIDateFormat, UITimeFormat } from '@helpers/dates';\nimport moment from 'moment';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { DateInput, TimeInput } from 'semantic-ui-calendar-react';\nimport { Checkbox, Form, Input } from 'semantic-ui-react';\n\nclass CompanyFilters extends React.Component {\n\n useCurrentDateTime = () => {\n this.props.setUseCurrentDateTime()\n }\n\n handleChange = (event) => {\n let name = event.target.name;\n let value = event.target.value;\n this.props.onChange(name, value)\n }\n\n handleSessionIDChange = (event) => {\n const value = event.target.value > 999999999 ? 999999999 : event.target.value;\n this.props.onChange(\"sessionId\", value)\n }\n\n handleShowEvents = () => {\n this.props.onChange('includeEvents', !this.props.includeEvents)\n }\n\n updateDate(name, date, time) {\n\n this.props.onChange(\n name,\n moment(`${date} ${time}`, 'DD-MM-YYYY HH:mm').toISOString(true)\n );\n\n }\n\n handleDateChange = (event, { name, value }) => {\n this.setState({ [name]: value }, () => {\n let time = name === 'startDate' ? moment(this.props.startDate).format(UITimeFormat) : moment(this.props.endDate).format(UITimeFormat);\n this.updateDate(name, value, time);\n });\n }\n\n handleTimeChange = (event, { name, value }) => {\n this.setState({ [name]: value }, () => {\n let key = name === 'startTime' ? 'startDate' : 'endDate';\n this.updateDate(key, this.state[key], value);\n });\n }\n\n convertParentDate(key) {\n return moment(this.props[key]).format(UIDateFormat)\n }\n\n convertParentTime(key) {\n\n return moment(this.props[key]).format(UITimeFormat)\n }\n\n render() {\n return (\n
\n \n \n \n \n \n \n\n {this.props.hideTransactionFilter && this.props.onChange(\"zeroBetSessions\", !this.props.zeroBetSessions)} />}\n\n {this.props.hasShowEvents && \n \n }\n\n {this.props.showUserField && \n \n \n }\n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n\n\n \n \n \n \n\n
\n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n logIn: state.logIn\n };\n};\n\nexport default connect(mapStateToProps)(CompanyFilters);\n","import {\n checkForUpdates, emptySessionsSection,\n fetchBlankSummarySessions,\n fetchSession,\n fetchSessionsExport,\n fetchSessionsFilters, fetchSessionsWithSummary,\n prepareFilter,\n updateSessionsWithSummary\n} from '@actions';\nimport DownloadButton from '@buttons/DownloadButton';\nimport OrgTreeButton from '@buttons/OrgTreeButton';\nimport SummaryButton from '@buttons/SummaryButton';\nimport { defaultFromDate } from '@helpers/dates';\nimport { getOptionValue } from '@helpers/options';\nimport SessionDetailsModal from '@common/components/modals/SessionDetailsModal';\nimport CompanyFilters from '@shared/CompanyFilters';\nimport DataGrid from '@shared/DataGrid';\nimport moment from 'moment';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Grid, Pagination } from 'semantic-ui-react';\n\n\nclass SessionsView extends React.Component {\n\n state = {\n searchParams: {\n startDate: moment(defaultFromDate).toISOString(true),\n endDate: moment().toISOString(true),\n sessionId: null,\n transactionRef: null,\n assetNo: null,\n week: null,\n playerId: null,\n details: {},\n zeroBetSessions: false,\n pageNumber: 1\n },\n loading: false,\n useCurrentDateTime: true,\n modalOpen: false,\n modalTitle: \"\",\n showGamePlayEvents: false,\n showSummary: true,\n };\n\n handleClose = () => this.setState({ modalOpen: false })\n\n handleSessionSelection = (term) => {\n this.setState({ sessionId: term.sessionId, modalOpen: true })\n }\n\n componentWillUnmount() {\n this.props.emptySessionsSection();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.props.filters.filterSelected.operator !== prevProps.filters.filterSelected.operator) {\n this.props.fetchBlankSummarySessions(this.props.filters.filterSelected.operator)\n }\n\n if (checkForUpdates(prevProps.filters, this.props.filters)) {\n this.handleRefresh();\n }\n }\n\n setUseCurrentDateTime = () => {\n this.setState({ useCurrentDateTime: !this.state.useCurrentDateTime })\n }\n\n handleChange = (key, value, callback = () => { }) => {\n let params = this.state.searchParams;\n params[key] = value;\n this.setState({ searchParams: params }, callback);\n\n }\n\n /**\n * Find all controls in the grid and populate the details object with their codes and values\n */\n getDetails = () => {\n const details = {};\n const data = this.props.sessionsByCompany.summary.data;\n\n data.forEach((row, rowIndex) => {\n row.cellData.forEach((cell, cellIndex) => {\n if (cell.type === \"control\") {\n details[cell.data.code] = getOptionValue(cell.data);\n }\n })\n })\n\n return details;\n }\n\n handleOptionChange = (option, value) => {\n const { summary } = this.props.sessionsByCompany;\n const data = [...summary.data];\n\n data.forEach((row, rowIndex) => {\n row.cellData.forEach((cell, cellIndex) => {\n if (cell.data.code === option.code) {\n data[rowIndex].cellData[cellIndex].data = { ...option }\n }\n })\n })\n\n this.props.updateSessionsWithSummary({ summary: { ...summary, data } })\n }\n\n handleRefresh = () => {\n if (this.state.useCurrentDateTime) {\n this.handleChange('endDate', moment().toISOString(true), () => this.loadSessions());\n } else {\n this.loadSessions();\n }\n }\n\n loadSessions = () => {\n const searchParams = this.state.searchParams\n const { operator, company, subcompany, site } = this.props.filters.filterSelected\n const { filterSelected, filterData } = this.props.filters\n\n this.setState({ loading: true }, () => {\n this.props.fetchSessionsWithSummary(\n searchParams.startDate,\n searchParams.endDate,\n operator,\n company.id,\n subcompany.id,\n site.id,\n searchParams.sessionId,\n searchParams.assetNo,\n searchParams.playerId,\n searchParams.transactionRef,\n searchParams.zeroBetSessions,\n prepareFilter(filterSelected.regions, filterData.regions),\n prepareFilter(filterSelected.manufacturer, filterData.manufacturer),\n prepareFilter(filterSelected.game, filterData.game),\n prepareFilter(filterSelected.machinetypes, filterData.machinetypes),\n this.getDetails(),\n this.state.searchParams.pageNumber\n ).then(() => this.setState({ loading: false }))\n .catch(() => this.setState({ loading: false }))\n });\n }\n\n loadExport = () => {\n const searchParams = this.state.searchParams\n const { operator, company, subcompany, site } = this.props.filters.filterSelected\n const { filterSelected, filterData } = this.props.filters\n\n fetchSessionsExport(\n searchParams.startDate,\n searchParams.endDate,\n operator,\n company.id,\n subcompany.id,\n site.id,\n searchParams.sessionId,\n searchParams.assetNo,\n searchParams.playerId,\n searchParams.transactionRef,\n searchParams.zeroBetSessions,\n prepareFilter(filterSelected.regions, filterData.regions),\n prepareFilter(filterSelected.manufacturer, filterData.manufacturer),\n prepareFilter(filterSelected.game, filterData.game),\n prepareFilter(filterSelected.machinetypes, filterData.machinetypes),\n this.getDetails(),\n )\n }\n\n render() {\n\n const showSummary = this.props.filters.filterSelected.operator && this.state.showSummary;\n const { pageNumber } = this.state.searchParams;\n const { pageCount } = this.props.sessionsByCompany;\n const { showOrgTree } = this.props.filters;\n\n return (\n \n \n \n \n
\n
\n this.props.fetchSessionsFilters({ showOrgTree: !showOrgTree })}\n active={showOrgTree}\n />\n this.setState({ showSummary: !this.state.showSummary })}\n active={!this.state.showSummary}\n />\n \n
\n
\n \n
\n
\n
\n
\n \n {showSummary &&\n \n \n \n }\n \n \n {pageCount > 1 &&\n
\n this.setState({ searchParams: { ...this.state.searchParams, pageNumber: activePage } }, () => this.handleRefresh())} />\n
\n }\n
\n
\n
\n {this.state.sessionId &&\n \n }\n
\n );\n }\n};\n\n\nconst mapStateToProps = state => {\n return {\n filters: state.sessionsFilters,\n sessionsByCompany: state.sessionsByCompany,\n searchParams: state.searchParams\n };\n};\n\nexport default connect(mapStateToProps, {\n fetchSessionsWithSummary,\n updateSessionsWithSummary,\n fetchSession,\n fetchBlankSummarySessions,\n fetchSessionsFilters,\n emptySessionsSection\n})(SessionsView);\n","import React from 'react';\nimport { Button } from 'semantic-ui-react';\n\nconst CommentsButton = (props) => {\n const { color, onClick, content } = props;\n return \n )}\n \n Refresh\n \n {props.isPerformance && (\n \n onChange(e, { name: \"showDetails\", value: !showDetails })\n }\n name=\"showDetails\"\n toggle\n />\n )}\n \n );\n};\n\nexport default CollectionFilters;\n","import collections from \"@api/collections\";\nimport CommentsButton from \"@buttons/CommentsButton\";\nimport { handleDownload } from \"@helpers/downloads\";\nimport DataGrid from \"@shared/DataGrid\";\nimport DetailsButton from \"@shared/DetailsButton\";\nimport React from \"react\";\nimport { Button, Dropdown, Grid, Icon } from \"semantic-ui-react\";\nimport CollectionFilters from \"./CollectionFilters\";\n\nclass BaseCollection extends React.Component {\n state = {\n loading: false,\n loadingReport: false,\n loadingExport: false,\n currentWeek: true,\n row: null,\n from: null,\n to: null,\n showDetails: false,\n periods: [],\n grid: {\n data: [],\n headerDef: [],\n rowDef: [],\n },\n activeRow: {\n optionShowDetails: false,\n },\n };\n\n handleDownload = () => {\n const { from, currentWeek, periods, showDetails } = this.state;\n if (periods.length) {\n const to = currentWeek ? \"-1\" : this.state.to;\n const { siteId, operator } = this.props;\n\n this.setState({ loadingExport: true }, () => {\n this.fnGetExport(operator, siteId, from, to, showDetails).then(\n (response) => {\n this.setState({ loadingExport: false }, () => {\n handleDownload(response);\n });\n },\n () => this.setState({ loadingExport: false }),\n );\n });\n }\n };\n\n onDetailsClick = async () => {\n const { activeRow } = this.state;\n const { siteId, operator } = this.props;\n const { batchId } = activeRow;\n console.log(batchId);\n\n this.props.setCollectionModal({\n open: true,\n title: this.modalTitle,\n isPerformance: this.isPerformance,\n operator,\n siteId,\n batchId,\n fnLoad: this.fnRowClick,\n });\n };\n\n onRowClick = (activeRow) => this.setState({ activeRow });\n\n handleRefresh = () => {\n const { from, currentWeek, periods, showDetails } = this.state;\n if (periods.length) {\n const to = currentWeek ? \"-1\" : this.state.to;\n const { siteId, operator } = this.props;\n this.setState({ loading: true }, () => {\n this.fnRefresh(operator, siteId, from, to, showDetails).then(\n (result) => {\n this.setState({ loading: false, grid: result.grid }, () => {\n if (!this.state.grid.data.includes(this.state.activeRow))\n this.setState({ activeRow: { optionShowDetails: false } });\n });\n },\n () => this.setState({ loading: false }),\n );\n });\n }\n };\n\n componentDidMount() {\n this.loadPeriods();\n }\n\n loadPeriods = () => {\n const { siteId, operator } = this.props;\n this.setState(\n {\n loading: true,\n grid: {\n data: [],\n headerDef: [],\n rowDef: [],\n },\n periods: [],\n },\n () => {\n this.setState({ loading: false }, () => {\n if (siteId) {\n this.setState({ loading: true }, () => {\n collections.getPeriods(operator, siteId).then((periods) => {\n const defaultPeriod =\n periods.find((period) => period.isDefault) || periods[0];\n this.setState(\n {\n periods,\n from: defaultPeriod ? defaultPeriod.value : null,\n loading: false,\n },\n () => {\n if (periods.length > 0) this.handleRefresh();\n },\n );\n });\n });\n }\n });\n },\n );\n };\n\n componentDidUpdate(prevProps) {\n if (\n this.props.siteId !== prevProps.siteId ||\n this.props.operator !== prevProps.operator ||\n (!this.props.collectionModal.open && prevProps.collectionModal.open)\n ) {\n this.loadPeriods();\n }\n }\n\n setCurrentWeek = () =>\n this.setState({ currentWeek: !this.state.currentWeek });\n\n handleVarianceHistory = () => {\n this.props.showSiteVarianceHistoryModal(true);\n };\n\n onChange = (event, { name, value }) => this.setState({ [name]: value });\n\n handlePdfClick = (downloadFn = async () => { }) => {\n const { activeRow } = this.state;\n if (activeRow.batchId) {\n this.setState({ loadingReport: true }, () => {\n downloadFn(activeRow.batchId).then(\n (response) =>\n this.setState({ loadingReport: false }, () =>\n handleDownload(response),\n ),\n () => this.setState({ loadingReport: false }),\n );\n });\n }\n };\n\n handleCommentsClick = () => {\n const { from, currentWeek, periods } = this.state;\n if (periods.length) {\n const to = currentWeek ? \"-1\" : this.state.to;\n const { siteId, operator } = this.props;\n\n this.setState({ loading: true }, () => {\n collections.getCommentsByPeriod(operator, siteId, from, to).then(\n (result) =>\n this.setState({ loading: false }, () =>\n this.props.showBankingCommentsModal(true, result),\n ),\n () => this.setState({ loading: false }),\n );\n });\n }\n };\n\n render() {\n const { headerDef, rowDef, data } = this.state.grid;\n const { activeRow, loadingExport } = this.state;\n\n return (\n \n \n \n \n \n \n \n {activeRow.optionShowDetails && (\n \n )}\n {activeRow.batchId && this.fnGetSummaryPdf !== null && (\n \n Reports\n \n }\n >\n \n \n this.handlePdfClick(this.fnGetSummaryReportPdf)\n }\n />\n this.handlePdfClick(this.fnGetSummaryPdf)}\n />\n {this.isPerformance && (\n this.handlePdfClick(this.fnGetSummaryCsv)}\n />\n )}\n this.handlePdfClick(this.fnGetVariancePdf)}\n />\n \n \n )}\n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default BaseCollection;\n","import { setCollectionModal, showBankingCommentsModal, showSiteVarianceHistoryModal } from '@actions/modals';\nimport collections from '@api/collections';\nimport { connect } from 'react-redux';\nimport BaseCollection from './BaseCollection';\n\nclass CollectionBanking extends BaseCollection {\n\n fnRowClick = collections.getBankingWeekDetail;\n fnRefresh = collections.getBankingWeek;\n fnGetSummaryPdf = collections.getBankingSummaryPdf;\n fnGetVariancePdf = collections.getBankingVariancePdf;\n fnGetExport = collections.getBankingWeekExport;\n fnGetSummaryReportPdf = collections.getSummaryReportPdf;\n isPerformance = false;\n\n reportName = \"Banking Report PDF\";\n modalTitle = \"Collection Week Banking\";\n summaryReportFileName = \"Summary Report\"\n reportFileName = \"Collection Week Banking\";\n exportFileName = \"Collection Week Banking Export CSV\"\n handleVarianceHistory = () => this.props.showSiteVarianceHistoryModal(true);\n\n}\n\nconst mapStateToProps = state => {\n return {\n installationsFilters: state.installationsFilters,\n collectionsFilters: state.collectionsFilters,\n collectionModal: state.collectionModal\n };\n};\n\nexport default connect(mapStateToProps, { showSiteVarianceHistoryModal, setCollectionModal, showBankingCommentsModal })(CollectionBanking)\n\n\n","import { setCollectionModal, showBankingCommentsModal } from \"@actions/modals\";\nimport collections from \"@api/collections\";\nimport { connect } from \"react-redux\";\nimport BaseCollection from \"./BaseCollection\";\n\nclass CollectionPerformance extends BaseCollection {\n fnRowClick = collections.getBankingPerformanceDetail;\n fnRefresh = collections.getBankingPerformance;\n fnGetSummaryPdf = collections.getPerformanceSummaryPdf;\n fnGetSummaryCsv = collections.getPerformanceSummaryCsv;\n fnGetVariancePdf = collections.getPerformanceVariancePdf;\n fnGetExport = collections.getBankingPerformanceExport;\n fnGetSummaryReportPdf = collections.getSummaryReportPdf;\n isPerformance = true;\n\n reportName = \"Machine Net Income PDF\";\n reportNameCsv = \"Machine Net Income CSV\";\n reportFileName = \"Collection Net Income\";\n summaryReportFileName = \"Summary Report\";\n exportFileName = \"Collection Net Income Export CSV\";\n modalTitle = \"Collection Week Net Income\";\n}\n\nconst mapStateToProps = (state) => {\n return {\n installationsFilters: state.installationsFilters,\n collectionsFilters: state.collectionsFilters,\n collectionModal: state.collectionModal,\n };\n};\n\nexport default connect(mapStateToProps, {\n setCollectionModal,\n showBankingCommentsModal,\n})(CollectionPerformance);\n","import axios from '@common/api/desktop/axios';\n\nclass Count {\n\n getCounts = async (operatorId, siteId, fromId, toId) => {\n const response = await axios.get(`collections/count/week/${operatorId},${siteId},${fromId},${toId}`);\n return response.data;\n }\n\n getBatch = async (collectionType, batchId) => {\n const response = await axios.get(`collections/count/batch/${collectionType},${batchId}`);\n return response.data;\n }\n\n getCountsExport = async (operatorId, siteId, fromId, toId) => {\n const response = await axios.get(`collections/count/week/export/${operatorId},${siteId},${fromId},${toId}`, { responseType: 'arraybuffer' });\n return response;\n }\n\n getBatchExport = async (batchId, collectionType) => {\n const response = await axios.get(`collections/count/batch/export/${batchId},${collectionType}`, { responseType: 'arraybuffer' });\n return response;\n }\n\n getReportPdf = async (batchId, collectionType) => {\n const response = await axios.get(`Report/Collection/Interim/Summary/PDF/${batchId},${collectionType}`, { responseType: 'arraybuffer' });\n return response;\n }\n\n addComment = async (CollectionType, CollectionId, Comment) => {\n const data = {\n CollectionType, CollectionId, Comment\n }\n\n const response = await axios.put(`collections/comments/add2/`, data);\n return response.data;\n }\n\n getComments = async (collectionType, collectionId) => {\n const response = await axios.get(`collections/comments/byCollection2/${collectionType},${collectionId}`);\n return response.data;\n }\n}\n\nconst count = new Count();\n\nexport default count;\n","import { showCountDetailsModal } from '@actions/modals';\nimport collections from '@api/collections';\nimport count from '@api/count';\nimport { handleDownload } from '@helpers/downloads';\nimport DataGrid from '@shared/DataGrid';\nimport DetailsButton from '@shared/DetailsButton';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Dropdown, Grid, Icon } from 'semantic-ui-react';\nimport CollectionFilters from './CollectionFilters';\n\nclass MachineCounts extends React.Component {\n\n state = {\n loading: false,\n currentWeek: true,\n exportLoading: false,\n reportLoading: false,\n row: null,\n from: null,\n to: null,\n periods: [],\n grid: {\n data: [],\n headerDef: [],\n rowDef: []\n },\n activeRow: {\n optionShowDetails: false,\n batchId: null\n }\n };\n\n onRowClick = (activeRow) => this.setState({ activeRow })\n\n handleRefresh = () => {\n const { from, currentWeek, periods } = this.state;\n if (periods.length) {\n this.setState({ loading: true }, () => {\n const { siteId, operator } = this.props;\n const to = currentWeek ? \"-1\" : this.state.to;\n count.getCounts(operator, siteId, from, to).then(\n grid => this.setState({ loading: false, grid }),\n () => this.setState({ loading: false })\n );\n });\n }\n }\n\n componentDidMount() {\n this.loadPeriods();\n }\n\n loadPeriods = () => {\n const { siteId, operator } = this.props;\n this.setState({\n loading: true,\n grid: {\n data: [],\n headerDef: [],\n rowDef: []\n },\n periods: []\n }, () => {\n this.setState({ loading: false }, () => {\n if (siteId) {\n this.setState({ loading: true }, () => {\n collections.getPeriods(operator, siteId).then(\n periods => {\n const defaultPeriod = periods.find(period => period.isDefault) || periods[0];\n this.setState({ periods, from: defaultPeriod ? defaultPeriod.value : null, loading: false }, () => {\n if (periods.length > 0) this.handleRefresh();\n })\n },\n () => this.setState({ loading: false })\n );\n })\n }\n })\n });\n }\n\n componentDidUpdate(prevProps) {\n if ((this.props.siteId !== prevProps.siteId || this.props.operator !== prevProps.operator)) {\n this.loadPeriods();\n }\n }\n\n setCurrentWeek = () => this.setState({ currentWeek: !this.state.currentWeek })\n\n onChange = (event, { name, value }) => this.setState({ [name]: value })\n\n onDetailsClick = async () => {\n const { batchId, collectionType } = this.state.activeRow;\n this.props.showCountDetailsModal({ batchId, collectionType }, this.handleRefresh)\n }\n\n downloadReport = () => {\n const { batchId, collectionType } = this.state.activeRow;\n this.setState({ reportLoading: true }, () => {\n count.getReportPdf(batchId, collectionType).then(\n response => this.setState({ reportLoading: false }, () => handleDownload(response)),\n () => this.setState({ reportLoading: false })\n )\n })\n }\n\n onExportClick = () => {\n const { from, currentWeek, periods } = this.state;\n if (periods.length) {\n this.setState({ exportLoading: true }, () => {\n const { siteId, operator } = this.props;\n const to = currentWeek ? \"-1\" : this.state.to;\n count.getCountsExport(operator, siteId, from, to).then(\n response => this.setState({ exportLoading: false }, () => handleDownload(response)),\n () => this.setState({ exportLoading: false })\n );\n });\n }\n }\n\n render() {\n const { headerDef, rowDef, data } = this.state.grid;\n const { activeRow, reportLoading, loading, exportLoading } = this.state;\n return (\n \n \n \n { }}\n onExportClick={this.onExportClick}\n onRefreshClick={this.handleRefresh}\n loadingExport={exportLoading}\n showVarianceHistory={false}\n />\n \n \n Reports}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default connect(null, { showCountDetailsModal })(MachineCounts);\n","import React from 'react';\nimport { Button, Dropdown } from 'semantic-ui-react';\n\nclass SettingsButton extends React.Component {\n state = {\n open: false\n };\n\n\n render() {\n return (\n this.setState({ open: !this.state.open })}\n />}\n >\n \n \n {this.props.children}\n \n \n \n );\n }\n}\n\nexport default SettingsButton;\n","import { addPositions, checkForUpdates, fetchAsset, fetchInstallations, fetchInstallationsFilters, fetchOrganisationByPosition, removeAsset, setActiveInstallation, setAsset, setAuthorise, setEft, showSuccessAlert } from '@actions';\nimport { fetchInstallationsExport } from '@actions/installations';\nimport { prepareFilter } from '@actions/organisationDirectory';\nimport DownloadButton from '@buttons/DownloadButton';\nimport OrgTreeButton from '@buttons/OrgTreeButton';\nimport SettingsButton from '@buttons/SettingsButton';\nimport { handleDownload } from '@helpers/downloads';\nimport OptionsModal from '@modals/OptionsModal';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Checkbox, Grid, Header, Input, Label, Message, Modal } from 'semantic-ui-react';\n\nclass SiteInstallations extends React.Component {\n\n initialValues = {\n activeOrg: null,\n activeSubOrg: null,\n editableMachine: false,\n installMachine: false,\n removeMachine: false,\n authInstall: false,\n organisation: null,\n modalInstallOpen: false,\n modalEditOpen: false,\n modalDeleteOpen: false,\n modalAddPosition: false,\n installations: { date: [], headerDef: [] },\n eftLabel: \"\",\n eftActive: null,\n AllowSuspendEnableEFT: false,\n loading: false,\n numPositions: \"\",\n addPositionError: false,\n modalErrorOpen: false,\n errorModalTitle: 'An Error Occured',\n errorModalContent: 'An unknown error occured.',\n removeLoading: false,\n assetNo: '',\n modalOpen: false,\n modalOptions: [],\n modalTitle: \"Install Machine\",\n modalSave: () => { },\n modalReload: () => { },\n }\n\n state = {\n showOfflineOnly: false,\n showHistory: false,\n ...this.initialValues\n }\n\n resetState() {\n this.setState({ ...this.initialValues })\n }\n\n onRowClick = installation => {\n //get the index from id\n const allowSuspendEnableEFT = (installation.optionAllowDisableEFT || installation.optionAllowEnableEFT) ? true : false;\n var eftLabel;\n var eftActive;\n if (installation.optionAllowDisableEFT) {\n eftLabel = \"Disable\";\n eftActive = true;\n }\n if (installation.optionAllowEnableEFT) {\n eftLabel = \"Enable\";\n eftActive = false;\n }\n\n this.setState({\n activeInstallation: installation,\n activeSiteRef: \"\",\n editableMachine: installation.optionModify,\n installMachine: installation.optionInstall,\n authInstall: installation.optionAllowAuthorise,\n AllowSuspendEnableEFT: allowSuspendEnableEFT,\n removeMachine: installation.optionAllowRemove,\n eftLabel: eftLabel,\n eftActive: eftActive,\n }, () => {\n this.props.setActiveInstallation(installation)\n });\n }\n\n handleModalChange = ({ target }) => {\n this.setState(state => {\n if (state[target.name]) {\n this.handleInstallationRefresh();\n }\n return { [target.name]: !state[target.name] }\n });\n };\n\n handleChange = ({ target }) => {\n const name = target.name;\n const value = target.value;\n if (this.state.hasOwnProperty(name)) {\n this.setState({ [name]: value });\n }\n }\n\n eftClick = () => {\n this.props.setEft(this.state.activeInstallation.installationId, this.state.eftActive).then(() => {\n if (this.props.eftUpdate === 'OK') {\n this.handleInstallationRefresh();\n } else {\n this.setState({\n modalDeleteOpen: false,\n modalErrorOpen: true,\n errorModalTitle: 'EFT Update failed',\n errorModalContent: 'There was an error while while trying to update the EFT state.',\n })\n }\n });\n }\n\n autoriseClick = () => {\n this.props.setAuthorise(this.state.activeInstallation.installationId).then(() => {\n if (this.props.authorise === 'OK') {\n this.handleInstallationRefresh();\n } else {\n this.setState({\n modalDeleteOpen: false,\n modalErrorOpen: true,\n errorModalTitle: 'Unable Authorise',\n errorModalContent: 'There was an error while trying to authorise.',\n })\n }\n });\n }\n\n removeClick = () => {\n this.setState({ removeLoading: true }, () => {\n removeAsset(this.state.activeInstallation.installationId).then(\n () => this.setState({ removeMachine: false, removeLoading: false }, () => this.handleInstallationRefresh()),\n () => this.setState({ removeMachine: false, removeLoading: false })\n );\n });\n }\n\n refreshClick = () => {\n this.resetState();\n this.props.setActiveInstallation().then(() => {\n this.handleInstallationRefresh();\n })\n }\n\n handleInstallationRefresh = () => {\n this.setState({ loading: true }, () => {\n const { filterSelected, filterData } = this.props.filters\n this.props.fetchInstallations(\n this.props.filters.filterSelected.operator,\n this.props.organisationId,\n this.state.showHistory,\n prepareFilter(filterSelected.regions, filterData.regions),\n prepareFilter(filterSelected.manufacturer, filterData.manufacturer),\n prepareFilter(filterSelected.game, filterData.game),\n prepareFilter(filterSelected.machinetypes, filterData.machinetypes),\n this.state.showOfflineOnly\n ).then(() => {\n this.setState({ loading: false });\n })\n .catch(() => {\n this.setState({ loading: false });\n });\n });\n }\n\n handleDownloadClick = () => {\n this.setState({ downloadLoading: true }, () => {\n const { filterSelected, filterData } = this.props.filters\n fetchInstallationsExport(\n this.props.filters.filterSelected.operator,\n this.props.organisationId,\n this.state.showHistory,\n prepareFilter(filterSelected.regions, filterData.regions),\n prepareFilter(filterSelected.manufacturer, filterData.manufacturer),\n prepareFilter(filterSelected.game, filterData.game),\n prepareFilter(filterSelected.machinetypes, filterData.machinetypes),\n this.state.showOfflineOnly\n ).then(\n response => this.setState({ downloadLoading: false }, () => handleDownload(response)),\n () => this.setState({ downloadLoading: false })\n );\n });\n }\n\n addPositions = () => {\n this.props.addPositions(this.props.organisationId, this.state.numPositions).then(() => {\n if (this.props.positionsAdd === 'OK') {\n this.handleInstallationRefresh();\n this.setState({ modalAddPosition: false, addPositionError: false });\n } else {\n this.setState({ addPositionError: true });\n }\n });\n }\n\n handleHistoryChange = () => {\n\n this.setState({ showHistory: !this.state.showHistory }, () => {\n this.handleInstallationRefresh()\n });\n }\n\n componentDidUpdate(prevProps) {\n // Check for a change in the transaction list\n if (this.props.installations !== prevProps.installations) {\n this.resetState();\n }\n if (checkForUpdates(prevProps.filters, this.props.filters)) {\n this.props.setActiveInstallation({}).then(() => this.handleInstallationRefresh());\n }\n }\n\n selectMachine = () => {\n this.fetchAsset(this.state.assetNo, this.state.activeInstallation.positionId)\n }\n\n fetchAsset = (assetNo, positionId) => {\n this.setState({ modalOptions: [], modalLoading: true }, () => {\n fetchAsset(assetNo, positionId).then(result => {\n this.setState({ modalOptions: result.options, modalLoading: false })\n },\n () => {\n this.setState({ modalLoading: false })\n })\n });\n }\n\n\n handleSaveInstall = async (changes, another, complete) => {\n await setAsset(this.props.activeInstallation.positionId, this.state.assetNo, changes, complete).then(result => {\n if (!complete) {\n this.setState({ modalOptions: result.options })\n } else {\n this.setState({ assetNo: \"\" }, () => {\n this.props.showSuccessAlert(result).then(() => {\n this.handleInstallationRefresh();\n })\n })\n }\n })\n }\n\n handleEditMachine = () => {\n fetchOrganisationByPosition(this.props.activeInstallation.positionId).then(result => {\n this.setState({\n modalOptions: result.options,\n modalOpen: true,\n modalSave: this.handleSaveInstall,\n modalReload: this.handleSaveInstall,\n assetNo: result.assetNo,\n modalTitle: `Edit Machine - ${result.companySite}`\n })\n })\n }\n handleInstallMachine = () => {\n fetchOrganisationByPosition(this.props.activeInstallation.positionId).then(result => {\n this.setState({\n modalOptions: [],\n modalOpen: true,\n modalSave: this.handleSaveInstall,\n modalReload: this.handleSaveInstall,\n modalTitle: `Install Machine - ${result.companySite}`\n })\n })\n }\n\n leftControls = () => {\n const { logIn } = this.props;\n const { optionShowInstCollectionTabs } = logIn;\n const { showOrgTree } = this.props.filters;\n\n return (\n <>\n\n {this.state.modalErrorOpen && \n
\n \n

{this.state.errorModalContent}

\n \n
\n \n }\n\n this.props.fetchInstallationsFilters({ showOrgTree: !showOrgTree })}\n />\n\n \n {optionShowInstCollectionTabs && }\n \n\n\n {/* Add Position button */}\n {this.props.organisationId && logIn.optionAllowAddPosition && \n )}\n open={this.state.modalAddPosition}\n size='small'>\n
\n \n {this.state.addPositionError && There was an error check your input.}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n\n\n {this.state.AllowSuspendEnableEFT && }\n\n {this.state.authInstall && }\n\n {/* Edit Machine button */}\n {this.state.editableMachine && \n Edit Machine\n \n }\n\n { /* Install Machine */}\n {this.state.installMachine &&\n \n Install Machine\n \n }\n\n {/* Remove Machine button */}\n {this.state.removeMachine && \n Remove Machine\n \n )}\n open={this.state.modalDeleteOpen}\n size='small'>\n
\n \n Are you sure you want to remove this machine?\n \n \n \n \n \n \n }\n \n )\n\n }\n\n\n render() {\n\n const { headerDef, rowDef, data } = this.props.installations.grid;\n const { showOfflineOnly } = this.state;\n const { online, offline } = this.props.installations;\n\n const prefix = this.state.installMachine ? \n EGM Asset No: *\n \n this.setState({ assetNo: value })} />\n \n \n : \n\n const { hasSelection } = this.props.filters;\n\n return (\n \n \n \n {this.leftControls()}\n \n \n {hasSelection &&\n
\n \n \n this.setState({ showOfflineOnly: !showOfflineOnly })} />\n \n
\n }\n \n this.setState({ modalOpen: false })} handleReload={this.state.modalReload} onSave={this.state.modalSave} />\n \n
\n
\n );\n }\n}\n\n\nconst mapStateToProps = state => {\n return {\n installations: state.installations,\n filters: state.installationsFilters,\n eftUpdate: state.eftUpdate,\n authorise: state.authorise,\n logIn: state.logIn,\n assetRemove: state.assetRemove,\n positionsAdd: state.positionsAdd,\n activeInstallation: state.activeInstallation\n };\n};\n\nexport default connect(mapStateToProps, {\n fetchInstallations,\n fetchAsset,\n showSuccessAlert,\n setEft,\n setAuthorise,\n removeAsset,\n addPositions,\n setActiveInstallation,\n fetchInstallationsFilters,\n})(SiteInstallations);\n","import { showVarianceHistoryDetailsModal } from '@actions/modals';\nimport collections from '@api/collections';\nimport DownloadButton from '@buttons/DownloadButton';\nimport { handleDownload } from '@helpers/downloads';\nimport DataGrid from '@shared/DataGrid';\nimport DetailsButton from '@shared/DetailsButton';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Dropdown, Grid } from 'semantic-ui-react';\n\nclass VarianceHistory extends React.Component {\n\n state = {\n detailsLoading: false,\n loading: false,\n options: [],\n grid: {\n headerDef: [],\n rowDef: [],\n data: []\n },\n activeRow: {\n optionShowDetails: false\n },\n selectedOption: null\n };\n\n componentDidMount() {\n this.getOptions();\n }\n\n componentDidUpdate(prevProps) {\n const { siteId, operator } = this.props;\n if ((siteId !== prevProps.siteId || operator !== prevProps.operator)) {\n this.getOptions();\n }\n }\n\n getOptions = () => {\n const { siteId, operator } = this.props;\n if (siteId) {\n this.setState({ loading: true }, () => {\n collections.getVarianceHistoryOptions(operator, siteId).then(\n options => {\n const selectedOption = this.props.selectedVarianceType || options.find(option => option.isDefault).value || options[0].value;\n this.setState({ options, selectedOption: selectedOption, loading: false }, () => this.handleRefresh())\n },\n () => this.setState({ loading: false })\n );\n });\n }\n }\n\n handleRefresh = () => {\n const { siteId, operator } = this.props;\n this.setState({ loading: true }, () => {\n collections.getVarianceHistory(operator, siteId, this.state.selectedOption).then(\n result => {\n this.setState({ loading: false, grid: result.grid })\n },\n () => this.setState({ loading: false })\n )\n })\n }\n\n onRowClick = (activeRow) => this.setState({ activeRow })\n\n onDetailsClick = () => {\n const { activeRow } = this.state;\n const { operator } = this.props;\n\n this.setState({ detailsLoading: true }, () => {\n collections.getVarianceHistoryByMin(operator, activeRow.min).then(\n result => this.setState({ detailsLoading: false }, () => {\n this.props.showVarianceHistoryDetailsModal(\n result,\n async () => this.onDetailsClick(),\n async () => this.handleRefresh()\n )\n }),\n () => this.setState({ detailsLoading: false })\n )\n })\n }\n\n onExportClick = () => {\n const { siteId, operator } = this.props;\n this.setState({ exportLoading: true }, () => {\n collections.getVarianceHistoryExport(operator, siteId, this.state.selectedOption).then(\n response => this.setState({ exportLoading: false }, () => handleDownload(response)),\n () => this.setState({ exportLoading: false })\n )\n })\n }\n\n render() {\n const { options, selectedOption, activeRow, loading, detailsLoading, exportLoading } = this.state;\n const { headerDef, rowDef, data } = this.state.grid;\n const { siteId } = this.props;\n\n return (\n \n \n \n \n this.setState({ selectedOption: value })} className=\"mr-1\" />\n \n \n \n \n )\n }\n}\n\nexport default OpeningHoursModal;","import React from 'react'\r\nimport { Dropdown } from 'semantic-ui-react'\r\n\r\nclass SelectProfile extends React.Component {\r\n\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default SelectProfile","import SelectOperator from '@shared/SelectOperator';\nimport React from 'react';\nimport { Button, Form, Input } from 'semantic-ui-react';\nimport SelectProfile from './SelectProfile';\n\n\n\nclass Filters extends React.Component {\n\n render() {\n return (\n
\n \n {this.props.operators.length > 0 &&\n \n \n \n \n }\n\n {(this.props.profiles && this.props.profiles.length > 0) &&\n \n \n \n \n }\n\n {this.props.onSearchClick &&\n \n \n \n }\n\n {this.props.onSearchClick &&\n \n }\n\n {this.props.append}\n \n
\n );\n }\n};\n\nexport default Filters;\n","import { fetchOpeningHoursProfile, fetchOpeningHoursProfiles, updateOpeningHours } from '@actions/index';\nimport { showSuccessAlert } from '@actions/modals';\nimport OpeningHoursModal from '@modals/OpeningHoursModal';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Form, Grid, Icon, Input } from 'semantic-ui-react';\nimport Filters from './Filters';\n\nclass OpeningHours extends React.Component {\n\n state = {\n profiles: [],\n loading: false,\n selectedOperator: null,\n selectedProfile: { profileName: \"\", grid: { data: [], headerDef: [] } },\n defaultProfile: null,\n modalOpen: false,\n hasChanges: false\n };\n\n componentDidMount() {\n const { operators } = this.props;\n if (operators.length === 1) {\n this.fetchProfiles(operators[0].value);\n }\n }\n\n handleOperatorSelect = (event, data) => {\n this.fetchProfiles(data.value)\n }\n\n handleProfileSelect = (event, data) => {\n const { selectedOperator } = this.state;\n this.setState({ loading: true }, () => {\n fetchOpeningHoursProfile(selectedOperator, data.value).then(\n selectedProfile => {\n this.setState({ selectedProfile, loading: false });\n },\n () => this.setState({ loading: false })\n );\n })\n\n }\n\n fetchProfiles = async (selectedOperator) => {\n const callback = () => this.setState({ loading: false })\n await this.setState({ loading: true })\n await fetchOpeningHoursProfiles(selectedOperator).then(\n async profiles => {\n await fetchOpeningHoursProfile(selectedOperator, -1).then(\n selectedProfile => {\n this.setState({ selectedOperator, profiles, loading: false, selectedProfile });\n },\n callback\n );\n },\n callback\n );\n }\n\n handleCellClick = (data) => {\n data.actualValue = data.actualValue === \"0\" ? \"1\" : \"0\";\n data.backColour = data.actualValue === \"0\" ? this.state.selectedProfile.closeColour : this.state.selectedProfile.openColour;\n\n this.setState({ hasChanges: true, selectedProfile: { ...this.state.selectedProfile } })\n }\n\n handleSave = () => {\n const items = [];\n this.state.selectedProfile.grid.data.forEach(row => {\n row.cellData.forEach((cell, index) => {\n if (index > 0) items.push(cell.data.actualValue);\n })\n })\n\n updateOpeningHours(this.state.selectedOperator, this.state.selectedProfile.profileId, this.state.selectedProfile.profileName, items.join(\";\")).then(x => {\n this.setState({ hasChanges: false }, () => this.props.showSuccessAlert(`Opening hours saved successfully!`))\n })\n }\n\n updateProfileName = (event, { value }) => {\n const selectedProfile = { ...this.state.selectedProfile, profileName: value }\n this.setState({ selectedProfile, hasChanges: true })\n }\n\n openNewModal = () => {\n this.setState({ modalOpen: true })\n\n }\n\n onNewProfile = () => {\n this.fetchProfiles(this.state.selectedOperator).then(() => this.setState({ modalOpen: false }, () => this.props.showSuccessAlert(`New profile successfully created!`)))\n }\n\n render() {\n return (\n
\n this.setState({ modalOpen: false })} />\n \n \n \n \n \n \n {this.state.selectedProfile.grid.data.length > 0 &&\n \n \n
\n \n \n \n \n
\n
\n
\n }\n {this.state.selectedProfile.grid.data.length > 0 &&\n \n \n\n {this.state.selectedProfile.grid.data.length > 0 &&\n \n }\n \n \n }\n \n \n {this.props.logIn.optionAllowNewOpeningHoursProfile && }\n \n \n {this.props.logIn.optionAllowSaveOpeningHoursProfile && }\n \n \n
\n
\n );\n }\n};\n\n\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators.filter(x => x.value !== -1),\n logIn: state.logIn\n }\n}\n\nexport default connect(mapStateToProps, { showSuccessAlert })(OpeningHours);","import prepareDetails from '@helpers/prepareDetails';\nimport axios from '@common/api/desktop/axios';\n\nclass OperatorRegion {\n\n\tgetRegion = async (regionId) => {\n\t\tconst response = await axios.get(`/organisation/operatorregion/${regionId}`);\n\t\treturn response.data\n\t}\n\n\tupdateRegion = async (Id, OperatorId, details) => {\n\t\tconst payload = { Id, OperatorId, details: prepareDetails(details) }\n\t\tconst response = await axios.put(`/organisation/operatorregion/update`, payload)\n\t\treturn response.data\n\t}\n\n\tnewRegion = async (operatorId) => {\n\t\tconst response = await axios.get(`/organisation/operatorregion/new/${operatorId}`);\n\t\treturn response.data\n\t}\n\n\tgetRegions = async (operatorId) => {\n\t\tconst response = await axios.get(`/Security/operatorregions/${operatorId}`);\n\t\treturn response.data\n\t}\n\n\tgetUserRegions = async (OperatorId, UserId, AccessType) => {\n\t\tconst response = await axios.put(`/Security/dataaccess/`, { OperatorId, UserId, AccessTypeDetails: `ACCESSTYPE=${AccessType}` });\n\t\treturn response.data\n\t}\n\n\tupdateDataAccess = async (UserId, AccessTypeDetails, Details) => {\n\t\tconst processedDetails = AccessTypeDetails === 0 ? prepareDetails(Details) : this.prepareSelections(Details);\n\t\tconst payload = { UserId, OperatorId: 0, AccessTypeDetails: `ACCESSTYPE=${AccessTypeDetails}`, Details: processedDetails }\n\t\tconst response = await axios.put(`/Security/dataaccess/update`, payload)\n\t\treturn response.data\n\t}\n\n\tprepareSelections = (selections) => {\n\t\tconst Details = [];\n\t\tconst mappings = { \"SI\": 2, \"SUB\": 1, \"CO\": 0, \"OP\": \"-1\" }\n\n\t\tselections.forEach(item => {\n\t\t\tDetails.push(`${mappings[item.type]}=${item.id}`)\n\t\t})\n\n\t\treturn Details.join(\";\");\n\t}\n\n\treloadList = async (OperatorId, UserId, selections) => {\n\t\tconst Details = this.prepareSelections(selections)\n\n\t\tconst response = await axios.put(`/Security/dataaccess/customeroperator`, { OperatorId, UserId, Details: Details });\n\t\treturn response.data.orgGrid;\n\t}\n\n}\n\nconst operatorRegion = new OperatorRegion();\n\nexport default operatorRegion;\n","import { fetchOperators } from '@actions/index.js';\nimport { showSuccessAlert } from '@actions/modals';\nimport OperatorRegion from '@api/operatorRegion';\nimport OptionsModal from '@modals/OptionsModal';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Grid, Icon, List } from 'semantic-ui-react';\n\nclass OperatorRegions extends React.Component {\n\n state = {\n selectedRegion: { id: 0, name: \"\" },\n regions: [],\n selectedOperator: null,\n hasChanges: false,\n modalOpen: false,\n modalTitle: \"New Operator Region\",\n modalOptions: [],\n loading: false\n\n }\n\n\n componentDidUpdate = (prevProps) => {\n if (this.props.selectedOperator !== null && prevProps.selectedOperator !== this.props.selectedOperator) {\n this.handleRefresh();\n }\n }\n\n handleRefresh = async () => {\n await this.setState({ loading: true })\n await OperatorRegion.getRegions(this.props.selectedOperator).then(\n regions => this.setState({ regions, loading: false }),\n () => this.setState({ loading: false })\n )\n }\n\n onNewRegionClick = () => {\n OperatorRegion.newRegion(this.props.selectedOperator).then(modalOptions => {\n this.setState({ modalOptions, modalTitle: \"New Operator Region\", selectedRegion: { id: 0, name: \"\" }, modalOpen: true })\n })\n }\n\n saveRegion = async (changed) => {\n await OperatorRegion.updateRegion(this.state.selectedRegion.id, this.props.selectedOperator, changed).then(id => {\n this.handleRefresh().then(() => {\n const selectedRegion = this.state.regions.find(x => x.id === id)\n this.setState({ modalOpen: false, selectedRegion }, () => this.props.showSuccessAlert(this.state.selectedRegion.id > 0 ? \"Operator Region Successfully Updated!\" : \"New Operator Region Successfully Created!\"))\n })\n })\n }\n\n onRegionClick = (item) => {\n this.setState({ selectedRegion: item }, () => {\n OperatorRegion.getRegion(item.id).then(modalOptions => {\n this.setState({ modalOptions, modalTitle: \"Edit Operator Region\", modalOpen: true })\n })\n })\n }\n\n render() {\n return (\n
\n \n \n \n
\n \n {this.state.regions.map(item => this.onRegionClick(item)}>{item.name})}\n \n
\n this.setState({ modalOpen: false })} onSave={this.saveRegion} />\n
\n \n
\n
\n
\n
\n
\n );\n }\n};\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators.filter(x => x.value !== -1),\n logIn: state.logIn\n }\n}\n\nexport default connect(mapStateToProps, { fetchOperators, showSuccessAlert })(OperatorRegions);\n","import { fetchOperators, getNewOperator, getOperatorOptions, updateOperator } from '@actions/index.js';\nimport { showSuccessAlert } from '@actions/modals';\nimport { getCalender } from '@api/settings.js';\nimport DataGrid from '@shared/DataGrid.js';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Grid, Header, Icon, Menu } from 'semantic-ui-react';\nimport BaseSettings from './BaseSettings';\nimport OptionsList from './OptionsList';\n\nclass OperatorSettings extends BaseSettings {\n\n constructor(props) {\n super(props)\n this.state = {\n ...this.state, // spread in parent's state\n selectedOptions: [],\n selectedOperator: { id: null, subTypes: [] },\n calendarDetails: { headerDef: [], data: [], rowDef: [] },\n loading: false\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.selectedOperator !== this.props.selectedOperator && this.props.selectedOperator !== null) {\n this.handleOperatorSelect(this.props.selectedOperator)\n }\n }\n\n handleOperatorSelect = async (id) => {\n await this.setState({ loading: true })\n await getOperatorOptions(id).then(\n subTypes => {\n const selectedOperator = { id, subTypes }\n const activeMenu = subTypes[0];\n this.setState({ selectedOperator, activeMenu, loading: false });\n },\n () => this.setState({ loading: false })\n )\n }\n\n handleSave = async () => {\n const changed = this.getChanged();\n await this.setState({ loading: true })\n const callback = () => this.setState({ loading: false });\n updateOperator(this.state.selectedOperator.id, changed).then(\n id => {\n this.props.fetchOperators().then(() => {\n this.setState({ changed: [] }, () => {\n this.props.showSuccessAlert(`Your changes were saved successfully.`);\n this.handleOperatorSelect(this.state.selectedOperator.id).then(\n () => {\n this.props.onOperatorChange(null, { value: id });\n this.setState({ loading: false });\n },\n callback\n )\n });\n })\n },\n callback\n );\n }\n\n onNewOperatorClick = () => {\n getNewOperator().then(subTypes => {\n this.setState({ selectedOperator: { id: 0, subTypes } });\n })\n }\n\n getSelectedOptions = () => {\n const subType = this.state.selectedOperator.subTypes.find(x => x.id === this.state.activeMenu.id)\n return subType ? this.mapChanged(subType.profileData) : []\n }\n\n onCalendarRowClick = row => {\n const operatorId = this.state.selectedOperator.id;\n const { year } = row;\n\n getCalender(operatorId, year).then(response => {\n this.setState({ calendarDetails: response })\n })\n\n }\n\n render() {\n const { activeMenu, calendarDetails } = this.state;\n const calendarData = activeMenu.calendarData || { data: [], headerDef: [], rowDef: [] };\n\n return (\n
\n \n \n \n
\n \n {this.getMenuItems(this.state.selectedOperator.subTypes)}\n \n
\n
\n\n {!this.state.activeMenu.isCalendar ?\n \n
\n
{this.state.selectedOperator.id === 0 && \"New Profile - \"}{this.state.activeMenu.name}
\n \n
\n
\n :\n \n
\n \n \n \n
{this.state.selectedOperator.id === 0 && \"New Profile - \"}{this.state.activeMenu.name}
\n
\n
\n \n 0 ? 11 : 16} className=\"gs-flex-container-vertical\">\n \n \n {calendarDetails.data.length > 0 &&\n \n { }}\n fullHeight\n />\n \n }\n \n
\n
\n
\n }\n
\n {(this.props.logIn.optionAllowNewOperator || this.props.logIn.optionAllowEditOperator) &&\n \n \n {this.props.logIn.optionAllowNewOperator && \n }\n \n \n {(this.props.logIn.optionAllowEditOperator && !this.state.activeMenu.isCalendar) && }\n \n \n }\n
\n
\n );\n }\n};\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators.filter(x => x.value !== -1),\n logIn: state.logIn\n }\n}\n\nexport default connect(mapStateToProps, { fetchOperators, showSuccessAlert })(OperatorSettings);\n","import { fetchOperators } from '@actions/index.js';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Tab } from 'semantic-ui-react';\nimport Filters from './Filters';\nimport OperatorRegions from './OperatorRegions';\nimport OperatorSettings from './OperatorSettings';\n\nclass Operators extends React.Component {\n\n state = {\n activeIndex: 0,\n selectedOperator: null\n }\n\n handleTabChange = (e, { activeIndex }) => {\n this.setState({ activeIndex })\n }\n\n componentDidMount() {\n if (this.props.operators.length === 1) {\n this.setState({ selectedOperator: this.props.operators[0].key })\n }\n }\n\n getPanes = () => {\n return [\n {\n key: \"Settings\",\n menuItem: 'Settings',\n pane: \n },\n {\n key: \"SubCompanies\",\n menuItem: 'Operator Regions',\n pane: \n }\n ];\n }\n\n handleOperatorSelect = (event, { value }) => this.setState({ selectedOperator: value })\n\n render() {\n const panes = this.getPanes()\n return (\n
\n \n \n
\n );\n }\n};\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators.filter(x => x.value !== -1),\n logIn: state.logIn\n }\n}\n\nexport default connect(mapStateToProps, { fetchOperators })(Operators);\n\n","import { checkForUpdates, fetchOrganisations, fetchSearchTerms, fetchSettingsFilters, getCompany, getNewCompany, getNewRegion, getNewSite, getSite, getSubCompany, updateCompany, updateRegion, updateSite } from '@actions/index.js';\nimport { showSuccessAlert } from '@actions/modals';\nimport OrgTreeButton from '@buttons/OrgTreeButton.js';\nimport OptionsModal from '@modals/OptionsModal';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Form, Grid, Header, Icon } from 'semantic-ui-react';\nimport BaseSettings from './BaseSettings.js';\nimport OptionsList from './OptionsList.js';\n\nclass Organisation extends BaseSettings {\n\n state = {\n options: [],\n title: \"\",\n companyId: null,\n subcompanyId: null,\n siteId: null,\n changed: [],\n saveFunction: () => { },\n modalOpen: false,\n modalOptions: [],\n modalTitle: \"\",\n modalSaveFunction: () => { },\n loading: false\n };\n\n handleRefresh = async () => {\n\n await this.setState({ loading: true })\n\n const companyId = this.props.filters.filterSelected.company.id\n const subcompanyId = this.props.filters.filterSelected.subcompany.id\n const siteId = this.props.filters.filterSelected.site.id\n const operatorId = this.props.filters.filterSelected.operator\n\n let saveFunction = () => updateSite(operatorId, companyId, subcompanyId, siteId, this.getChanged())\n\n const callback = (options) => {\n this.setState({ options, companyId, subcompanyId, siteId, operatorId, saveFunction, loading: false })\n }\n\n try {\n if (siteId) {\n await getSite(siteId).then(callback)\n this.setState({ title: \"Site Details\" })\n } else {\n if (subcompanyId) {\n saveFunction = () => updateRegion(operatorId, companyId, subcompanyId, this.getChanged())\n await getSubCompany(subcompanyId).then(callback)\n this.setState({ title: \"Operator Region Details\" })\n } else {\n saveFunction = () => updateCompany(operatorId, companyId, this.getChanged())\n await getCompany(companyId).then(callback)\n this.setState({ title: \"Company Details\" })\n }\n }\n } catch (err) {\n this.setState({ loading: false })\n }\n\n }\n\n handleChangeValue = async (option, value) => {\n const changed = [...this.state.changed].filter(x => x.code !== option.code)\n changed.push({ ...option, value })\n const options = [...this.state.options]\n const index = options.findIndex(item => item.code === option.code)\n options[index] = option\n this.setState({ options, changed })\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (checkForUpdates(prevProps.filters, this.props.filters)) {\n this.handleRefresh();\n }\n }\n\n createNewSite = () => {\n const { operatorId, companyId, subcompanyId } = this.state\n getNewSite(operatorId, companyId, subcompanyId).then(modalOptions => {\n this.setState({ modalSaveFunction: this.saveNewSite, modalOptions, modalTitle: \"New Site\", modalOpen: true })\n });\n }\n\n createNewRegion = () => {\n const { operatorId, companyId } = this.state\n getNewRegion(operatorId, companyId).then(modalOptions => {\n this.setState({ modalSaveFunction: this.saveNewRegion, modalOptions, modalTitle: \"New Operator Region\", modalOpen: true })\n });\n }\n\n createNewCompany = () => {\n const { operator } = this.props.filters.filterSelected\n getNewCompany(operator).then(modalOptions => {\n this.setState({ modalSaveFunction: this.saveNewCompany, modalOptions, modalTitle: \"New Company\", modalOpen: true })\n });\n }\n\n handleSave = () => {\n const catchFunction = () => this.setState({ loading: false });\n\n this.setState({ loading: true }, () => {\n this.state.saveFunction().then(() => {\n fetchOrganisations(this.props.filters, true).then(result => {\n this.props.fetchSettingsFilters({ ...result }).then(() => this.setState({ loading: false, changed: [] }, () => this.props.showSuccessAlert('Changes saved successfully!')));\n }).catch(catchFunction)\n }).catch(catchFunction)\n })\n }\n\n saveNewCompany = async (options) => {\n const { operator } = this.props.filters.filterSelected\n await updateCompany(operator, 0, options).then(newCompany => {\n fetchOrganisations(this.props.filters, true).then(result => {\n const company = result.organisations.find(x => x.id === newCompany) || { id: null }\n const data = { ...result, filterSelected: { ...this.props.filters.filterSelected, ...{ company } } }\n this.props.fetchSettingsFilters(data).then(() => this.setState({ modalOpen: false }, () => this.props.showSuccessAlert(`New company successfully created.`)))\n });\n })\n }\n\n saveNewSite = async (options) => {\n const { operatorId, companyId, subcompanyId } = this.state\n await updateSite(operatorId, companyId, subcompanyId, 0, options).then(newSite => {\n fetchOrganisations(this.props.filters, true).then(result => {\n const organisation = result.organisations.find(x => x.id === companyId) || { id: null };\n const subCompany = organisation.subCompanies.find(x => x.id === subcompanyId) || { id: null };\n const site = subCompany.sites.find(x => x.id === newSite)\n const data = { ...result, filterSelected: { ...this.props.filters.filterSelected, ...{ site } } }\n this.props.fetchSettingsFilters(data).then(() => this.setState({ modalOpen: false }, () => this.props.showSuccessAlert(`New site successfully created.`)))\n })\n })\n }\n\n saveNewRegion = async (options) => {\n const { operatorId, companyId } = this.state\n await updateRegion(operatorId, companyId, 0, options).then(newRegion => {\n fetchOrganisations(this.props.filters, true).then(result => {\n const organisation = result.organisations.find(x => x.id === companyId) || { id: null }\n const subcompany = organisation.subCompanies.find(x => x.id === newRegion) || { id: null };\n const data = { ...result, filterSelected: { ...this.props.filters.filterSelected, ...{ subcompany } } }\n this.props.fetchSettingsFilters(data).then(() => {\n this.setState({ modalOpen: false }, () => this.props.showSuccessAlert(`New sub company successfully created.`))\n });\n })\n })\n }\n\n render() {\n\n const { operator } = this.props.filters.filterSelected;\n const { showOrgTree } = this.props.filters;\n\n return (\n \n \n \n this.setState({ modalOpen: false })} onSave={this.state.modalSaveFunction} />\n
\n
{this.state.title}
\n \n
\n
\n
\n \n \n
\n this.props.fetchSettingsFilters({ showOrgTree: !showOrgTree })}\n />\n {this.props.logIn.optionAllowNewOrgCompany && }\n {this.props.logIn.optionAllowNewOrgRegion && }\n {this.props.logIn.optionAllowNewOrgSite && }\n {this.props.logIn.optionAllowSaveOrg && }\n \n
\n
\n
\n );\n }\n};\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n logIn: state.logIn,\n filters: state.settingsFilters\n };\n};\n\nexport default connect(mapStateToProps, { showSuccessAlert, fetchSearchTerms, fetchOrganisations, fetchSettingsFilters })(Organisation);\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass GuardianClient extends ApiClient {\n constructor() {\n super(\"\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n \n request = async (endpoint, method, data = {}, options = {}) => {\n const url = `${\n sessionStorage.getItem(this.apiUrlKey)\n }/${endpoint}`;\n return await this.axios.request({\n url,\n method,\n data,\n ...options,\n });\n };\n}\n\nconst client = new GuardianClient();\n\nexport default client;\n","export function camelCaseToText(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/^./, s => s.toUpperCase());\n}","import React from 'react';\nimport { Form, FormInput, Grid, Button, GridColumn, GridRow, Modal, ModalActions, Select, Header, FormRadio } from 'semantic-ui-react';\nimport { camelCaseToText } from '../../helpers';\n\nclass ComplianceModal extends React.Component {\n state = {\n loading: false,\n selectedType: null,\n formData: {},\n }\n checkCanSubmit = () => {\n return (this.state.selectedEventId) || this.state.description\n }\n handleChangeEvent = (event) => {\n if (!this.props.eventTypeId) {\n this.setState({ ...this.state, selectedEventId: event.target.value })\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.data && this.props.data != prevProps.data) {\n this.setState({ formData: this.props.data });\n }\n\n if (!this.props.data && (this.props.data != prevProps.data || this.props.model != prevProps.model)) {\n this.setState({ formData: this.props.model });\n }\n\n }\n\n handleChange = (e) => {\n this.setState({ formData: { ...this.state.formData, [e.target.name]: e.target.value } });\n }\n \n handleToggleChange = (e, {name, checked}) => {\n this.setState({ formData: { ...this.state.formData, [name]: checked } });\n }\n\n handleSave = async () => {\n this.setState({ loading: true });\n await this.props.onSave(this.state.formData);\n this.setState({ loading: false,});\n this.props.onClose();\n }\n\n isVisiableField = (field) => {\n return field != \"rowVersion\" && field != \"id\" && field != \"lastUpdated\"\n }\n\n mapFieldNames = (field) => {\n switch (field) {\n case \"isDisabled\": return \"Hide\";\n case \"ordinal\": return \"Order\";\n \n default: return field;\n }\n }\n\n isRadioField = (field) => {\n return typeof this.state.formData[field] == 'boolean' \n // ||( this.props.type == \"CustomerInteractionOutcome\" && field == \"description\")\n }\n\n render() {\n return (\n \n
{this.props.title}
\n \n
\n \n {\n this.state.formData && Object.keys(this.state.formData).map(key => (\n this.isVisiableField(key) ? \n {camelCaseToText(this.mapFieldNames(key))}\n \n {this.isRadioField(key) ?\n \n :\n \n }\n \n : <>\n ))\n }\n \n \n
\n\n
\n \n \n \n Save\n \n \n \n )\n }\n}\n\nexport default ComplianceModal;","import React from 'react';\nimport { connect } from 'react-redux';\nimport { Table, TableCell, TableHeader, TableHeaderCell, TableRow, TableBody, Button, Radio } from 'semantic-ui-react';\nimport ComplianceModal from '../modals/ComplianceModal';\nimport { getSelectedModuleData } from '@actions/compliance'\nimport { camelCaseToText } from '../../helpers';\n\nclass ComplianceTable extends React.Component {\n state = {\n activeIndex: null,\n selectedRowData: null,\n showModal: false,\n }\n\n getFields = (data) => {\n const keys = Object.keys(data).filter(key => {\n const value = data[key];\n return (typeof value !== 'object' && key != 'rowVersion' && key != \"id\" && key != \"lastUpdated\") || value == null\n });\n\n return keys;\n }\n\n handleNew = () => {\n this.setState({ selectedRowData: null, showModal: true });\n }\n\n handleDelete = () => {\n this.props.onDelete(this.state.selectedRowData.id)\n }\n handleEdit = async () => {\n const data = await getSelectedModuleData(this.props.type, this.state.selectedRowData.id);\n console.log('selected data', data);\n\n this.setState({selectedRowData: data, showModal: true });\n }\n\n handleSelect = (data) => (e) => {\n this.setState({ selectedRowData: data });\n }\n\n onClose = () => {\n this.setState({ showModal: false, selectedRowData: null });\n }\n\n onSave = async (data) => {\n await this.props.onSave(data);\n }\n\n mapFieldNames = (field) => {\n switch (field) {\n case \"isDisabled\": return \"Hide\";\n case \"ordinal\": return \"Order\";\n \n default: return field;\n }\n }\n isRadioField = (field, value) => {\n return typeof value == 'boolean' \n }\n\n render() {\n return (\n
\n\n
\n \n \n \n
\n {this.props.data && (\n\n \n \n \n {this.getFields(this.props.data[0] || this.props.model).map(field => (\n {camelCaseToText(this.mapFieldNames(field))}\n ))}\n \n \n \n {this.props.data.map(data => (\n \n {this.getFields(this.props.data[0] || this.props.model).map(field => (\n \n {\n this.isRadioField(field, data[field]) ? (\n \n ) : (data[field])\n }\n \n ))}\n \n ))}\n \n
\n\n )\n }\n \n
\n )\n }\n}\n\nexport default ComplianceTable;","import { COMPLIANCE_SUMMARY_TAB_KEY } from '@reducers/complianceSummaryReducer';\nimport GuardianClient from '@common/api/GuardianClient';\n\n\nexport const setKiosk = (data) => async dispatch => {\n dispatch({ type: 'KIOSK_VIEW', payload: data });\n};\n\n// import cpAxios from '@api/cpaxios';\n\nexport const fetchComplianceMetadata = () => async (dispatch) => {\n const response = await GuardianClient.get(`Configuration/Metadata`);\n dispatch({ type: \"FETCH_COMPLIANCE_METADATA\", payload: response });\n}\n\nexport const clearComplianceMetadata = () => dispatch => {\n \n dispatch({ type: \"FETCH_COMPLIANCE_METADATA\", payload: [] });\n}\nexport const clearComplianceRecords = () => dispatch => {\n \n dispatch({ type: \"FETCH_COMPLIANCE_REC\", payload: { } })\n}\n\nexport const fetchComplianceModel = (activeModule) => async (dispatch) => {\n const response = await GuardianClient.get(`${activeModule}/Create`);\n dispatch({ type: \"FETCH_COMPLIANCE_MODEL\", payload: response });\n}\n\nexport const fetchComplianceRecords = (activeModule) => async (dispatch) => {\n const response = await GuardianClient.post(`${activeModule}/Search`, {});\n const data = await Promise.all(response.data.map(async data => {\n const { name, ...rest } = await GuardianClient.get(`${activeModule}/Read?id=${data.id}`);\n return name ? { name, ...rest } : rest\n }))\n dispatch({ type: \"FETCH_COMPLIANCE_REC\", payload: { data } })\n}\n\nexport const updateCompliance = async (activeModule, data) => {\n const originData = await GuardianClient.get(`${activeModule}/Read?id=${data.id}`);\n const response = await GuardianClient.post(`${activeModule}/Update`, { ...originData, ...data });\n return response;\n}\n\nexport const deleteCompliance = async (activeModule, id) => {\n const response = await GuardianClient.get(`${activeModule}/Delete?id=${id}`, {});\n return response;\n}\n\nexport const createCompliance = async (activeModule, data) => {\n const response = await GuardianClient.post(`${activeModule}/Create`, data);\n return response;\n}\n\nexport const getSelectedModuleData = async (activeModule, id) => {\n const response = await GuardianClient.get(`${activeModule}/Read?id=${id}`);\n return response;\n}\nexport const fetchCustomerConfig = () => async (dispatch) => {\n const response = await GuardianClient.get(`CustomerConfiguration/Read?id=1`);\n\n dispatch({ type: \"FETCH_COMPLIANCE_CUSTOMER_CONFIG\", payload: response })\n}\n\nexport const updateCustomerConfig = (data) => async(dispatch) => {\n const response = await GuardianClient.post(`CustomerConfiguration/Update`, data);\n dispatch({ type: \"FETCH_COMPLIANCE_CUSTOMER_CONFIG\", payload: response })\n}","import { Header, Radio, Select } from 'semantic-ui-react';\nimport SelectOperator from '@shared/SelectOperator';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport {\n fetchComplianceMetadata,\n fetchComplianceModel,\n fetchComplianceRecords,\n updateCompliance,\n deleteCompliance,\n createCompliance,\n fetchCustomerConfig,\n updateCustomerConfig,\n clearComplianceMetadata,\n clearComplianceRecords\n} from '@actions/compliance'\nimport ComplianceTable from './ComplianceTable';\nimport { confirmModal } from \"@actions/modals\";\nimport AuthenticationClient from \"@common/api/AuthenticationClient\";\nimport { epochInSeconds } from \"@common/components/helpers/datetime\";\n\nconst mapLabelNames = (label) => {\n if (label == \"Event Type\") {\n return \"Event Configuration\"\n }\n return label\n .replace(/Type$/i, \"\") // Remove \"Type\" if it appears at the end\n .replace(/([a-z])([A-Z])/g, \"$1 $2\") // Add space between camel case words\n .trim();\n}\nclass Compliance extends React.Component {\n state = {\n activeIndex: 0,\n selectedDataField: null,\n selectedEventType: null,\n loading: false,\n canAdd: true,\n canDelete: true,\n dataFields: [],\n selectedOperator: null,\n customerConfig: this.props.customerConfig\n }\n // componentDidMount() {\n // const { operators } = this.props;\n // if (operators.length === 1) {\n // this.fetchProfiles(operators[0].value);\n // }ue\n // }\n handleOperatorSelect = async (event, { value }) => {\n this.setState({ selectedOperator: value })\n await AuthenticationClient\n .SwitchTenant(value)\n .then(({ accessToken, refreshToken, expiresIn }) => {\n sessionStorage.setItem(\"accessToken\", accessToken)\n sessionStorage.setItem(\"refreshToken\", refreshToken);\n sessionStorage.setItem(\"tokenExpires\", epochInSeconds() + expiresIn);\n this.setState({ selectedDataField: null, selectedEventType: null })\n this.props.clearComplianceMetadata();\n this.props.clearComplianceRecords();\n this.props.fetchComplianceMetadata();\n });\n\n // this.fetchProfiles(data.value)\n }\n onSelectEventType = async (e, { value }) => {\n if (value && this.props.metadata) {\n const selectedEventType = this.props.complianceEvents.find(data => data.value == value);\n const datafields = this.props.metadata.filter(data => (data.parent == value || data.value == value));\n if (datafields.length == 0) {\n datafields.push({\n key: value,\n type: value,\n text: value,\n canAdd: selectedEventType.canAdd,\n canDelete: selectedEventType.canDelete,\n isReadOnly: selectedEventType.isReadOnly,\n })\n }\n\n this.setState({ selectedEventType: value, dataFields: datafields, selectedDataField: datafields[0].type, loading: true, canAdd: datafields[0].canAdd, canDelete: datafields[0].canDelete });\n if (datafields[0].canAdd) {\n try {\n this.props.clearComplianceRecords();\n await this.props.fetchComplianceModel(datafields[0].value);\n } catch (e) {\n console.log(e)\n }\n }\n this.setState({ loading: false })\n await this.props.fetchComplianceRecords(datafields[0].value);\n }\n }\n\n\n onSelectDataField = async (e, { value }) => {\n const selectedEntry = this.state.dataFields.find(data => data.value == value);\n if (selectedEntry) {\n\n this.setState({ selectedDataField: value, loading: true, canAdd: selectedEntry.canAdd, canDelete: selectedEntry.canDelete });\n this.props.clearComplianceRecords();\n if (selectedEntry.canAdd && selectedEntry.isDisabled) {\n\n await this.props.fetchComplianceModel(selectedEntry.value);\n }\n this.setState({ loading: false })\n await this.props.fetchComplianceRecords(selectedEntry.value);\n }\n }\n\n async componentDidMount() {\n this.props.fetchComplianceMetadata();\n this.props.fetchCustomerConfig();\n if ( this.props.operators && this.props.operators.length == 1 ) {\n console.log('operator selected')\n this.setState({ selectedOperator: this.props.operators[0].value })\n await AuthenticationClient\n .SwitchTenant(this.props.operators[0].value)\n .then(({ accessToken, refreshToken, expiresIn }) => {\n sessionStorage.setItem(\"accessToken\", accessToken)\n sessionStorage.setItem(\"refreshToken\", refreshToken);\n sessionStorage.setItem(\"tokenExpires\", epochInSeconds() + expiresIn);\n this.setState({ selectedDataField: null, selectedEventType: null })\n this.props.clearComplianceMetadata();\n this.props.clearComplianceRecords();\n this.props.fetchComplianceMetadata();\n });\n \n }\n }\n\n onSave = async (data) => {\n if (data.id == null && data.id == undefined) {\n await createCompliance(this.state.selectedDataField, data);\n } else {\n await updateCompliance(this.state.selectedDataField, data);\n }\n this.props.fetchComplianceRecords(this.state.selectedDataField);\n }\n\n onDelete = async (id) => {\n const callback = async () => {\n await deleteCompliance(this.state.selectedDataField, id);\n await this.props.fetchComplianceRecords(this.state.selectedDataField);\n };\n\n this.props.confirmModal(\n \"Are you sure you want to delete the entry?\",\n true,\n callback,\n () => {\n this.props.confirmModal(\"\", false);\n },\n true\n );\n\n }\n\n async componentDidUpdate(props) {\n if (this.props.customerConfig != props.customerConfig) {\n this.setState({ customerConfig: this.props.customerConfig })\n }\n \n }\n\n handleToggleChange = (e, { name, checked }) => {\n this.setState({ customerConfig: { ...this.state.customerConfig, [name]: checked } });\n this.props.updateCustomerConfig({ ...this.state.customerConfig, [name]: checked });\n }\n\n render() {\n console.log(this.state.customerConfig, this.state.selectedDataField, 'customerCOnfig')\n return (\n
\n
Compliance configuration
\n
\n
\n \n \n
\n {this.state.selectedOperator && (\n <>\n \n \n )}\n
\n {this.state.selectedOperator && (\n <>\n
\n {this.state.selectedEventType == \"Customer Profile\" && Object.keys(this.props.customerConfig).includes(`has${this.state.selectedDataField}`) && (\n
\n \n

Display attribute type on Customer Profile

\n
\n )}\n
\n \n \n )}\n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n metadata: state.complianceMetadata.map(data => ({ key: data.type, value: data.type, text: mapLabelNames(data.name), ...data })),\n complianceModel: state.complianceModel,\n customerConfig: state.compliceCustomerConfig,\n activeComplianceModule: state.activeComplianceModule,\n complianceRecords: state.complianceRecords.data,\n complianceEvents: state.complianceMetadata\n ?.filter(data => data.parent === \"Event\")\n .map(data => ({ value: data.type, text: data.name, ...data }))\n .concat([...state.complianceMetadata\n ?.filter(data => data.parent != \"Event\" && data.parent != \"Compliance\")\n .map(data => ({ value: data.parent, text: data.parent }))\n ?.filter((item, index, arr) => arr.findIndex(_item => _item.value == item.value) == index)\n ]).map(data => ({ ...data, text: mapLabelNames(data.text) })),\n operators: state.operators.filter(x => x.value !== -1),\n }\n}\n\nexport default connect(mapStateToProps,\n {\n fetchComplianceMetadata,\n fetchComplianceModel,\n fetchComplianceRecords,\n fetchCustomerConfig,\n confirmModal,\n updateCustomerConfig,\n clearComplianceMetadata,\n clearComplianceRecords,\n }\n)(Compliance);","import { fetchOperatorProfiles, fetchProfile, newProfile, updateSettingsProfile } from '@actions/index';\nimport { showSuccessAlert } from '@actions/modals';\nimport BaseSettings from '@components/systemAdmin/BaseSettings';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Grid, Header, Icon, Menu } from 'semantic-ui-react';\nimport Filters from './Filters';\nimport OptionsList from './OptionsList';\n\nclass SystemSettings extends BaseSettings {\n\n constructor() {\n super()\n this.state = {\n ...this.state, // spread in parent's state\n selectedProfile: { profileId: null, subTypes: [], profileData: [], baseProfileId: 0 },\n profileModalOpen: false,\n profiles: [],\n defaultProfile: false,\n loading: false,\n selectedOperator: null,\n };\n }\n\n getSelectedOptions = () => {\n const subType = this.state.selectedProfile.subTypes.find(x => x.id === this.state.activeMenu.id)\n return this.mapChanged(subType.profileData);\n }\n\n componentDidMount() {\n const { operators } = this.props;\n if (operators.length === 1) {\n this.fetchProfiles(operators[0].value);\n }\n }\n\n handleOperatorSelect = (event, data) => {\n this.fetchProfiles(data.value)\n }\n\n handleProfileSelect = async (event, data) => {\n const selected = this.state.profiles.find(profile => profile.value === data.value);\n const callback = () => this.setState({ loading: false })\n await this.setState({ loading: true });\n await this.updateProfile(this.state.selectedOperator, selected.value).then(\n callback,\n callback\n )\n\n }\n\n fetchProfiles = (selectedOperator) => {\n fetchOperatorProfiles(selectedOperator).then(profiles => {\n fetchProfile(selectedOperator, -1).then(selectedProfile => {\n const item = selectedProfile.subTypes[0];\n this.setState({ selectedOperator, profiles, selectedProfile, defaultProfile: selectedProfile.isDefault, activeMenu: item });\n });\n });\n }\n\n\n updateProfile = async (operator, profile, defaultTab = true) => {\n await fetchProfile(operator, profile).then(async selectedProfile => {\n const activeMenu = defaultTab ? selectedProfile.subTypes[0] : this.state.activeMenu;\n await this.setState({ selectedProfile, defaultProfile: selectedProfile.isDefault, changed: [], activeMenu })\n });\n }\n\n handleNewProfile = async (profileName) => {\n const { selectedOperator } = this.state\n newProfile(this.state.selectedProfile.profileId, profileName).then(selectedProfile => {\n fetchOperatorProfiles(selectedOperator).then(profiles => {\n this.setState(\n { profileModalOpen: false, profiles },\n () => {\n this.updateProfile(selectedOperator, selectedProfile.profileId);\n this.props.showSuccessAlert(`New profile successfully created.`)\n });\n })\n })\n }\n\n handleDefaultChange = () => {\n this.setState({ defaultProfile: !this.state.defaultProfile })\n }\n\n\n handleProfileNameChange = (event, { value }) => {\n this.setState({ selectedProfile: { ...this.state.selectedProfile, ...{ profileName: value } } })\n }\n\n handleSave = () => {\n\n const changed = this.getChanged();\n\n updateSettingsProfile(this.state.selectedOperator, this.state.selectedProfile.profileId, this.state.selectedProfile.baseProfileId, changed).then(id => {\n this.setState({ changed: [] }, () => {\n const profileId = this.state.selectedProfile.profileId === 0 ? id : this.state.selectedProfile.profileId;\n fetchOperatorProfiles(this.state.selectedOperator).then(profiles => {\n this.setState({ profiles }, () => {\n this.updateProfile(this.state.selectedOperator, profileId, false).then(() => this.props.showSuccessAlert(`Your changes were saved successfully.`))\n })\n })\n })\n })\n }\n\n onNewProfileClick = () => {\n newProfile(this.state.selectedOperator, this.state.selectedProfile.profileId).then(result => {\n const selectedProfile = { ...result, baseProfileId: this.state.selectedProfile.profileId }\n const activeMenu = selectedProfile.subTypes[0];\n this.setState({ selectedProfile, defaultProfile: selectedProfile.isDefault, changed: [], activeMenu })\n });\n }\n\n render() {\n\n const menuItems = this.getMenuItems(this.state.selectedProfile.subTypes);\n\n return (\n
\n \n \n \n \n \n \n {this.state.selectedProfile.profileId !== null &&\n \n \n \n
\n \n {menuItems}\n \n
\n
\n \n
\n
{this.state.selectedProfile.profileId === 0 && \"New Profile - \"}{this.state.activeMenu.name}
\n \n
\n
\n
\n \n \n {this.props.logIn.optionAllowNewSystemSettingProfile && }\n \n \n {this.props.logIn.optionAllowSaveSystemSettingProfile && }\n \n \n
\n }\n
\n
\n );\n }\n};\n\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators.filter(x => x.value !== -1),\n logIn: state.logIn\n }\n}\n\nexport default connect(mapStateToProps, { showSuccessAlert })(SystemSettings);","import { emptySettingsSection, fetchSettingsFilters } from '@actions/index';\nimport OpeningHours from '@components/systemAdmin/OpeningHours';\nimport Operators from '@components/systemAdmin/Operators';\nimport Organisation from '@components/systemAdmin/Organisation';\nimport Compliance from '@components/systemAdmin/Compliance';\nimport SystemSettings from '@components/systemAdmin/SystemSettings';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Tab } from 'semantic-ui-react';\nclass SystemAdminView extends React.Component {\n\n state = {\n activeIndex: 0\n }\n\n componentDidMount = () => {\n this.props.fetchSettingsFilters({ showOrgTree: false });\n }\n\n componentWillUnmount = () => {\n this.props.emptySettingsSection();\n }\n\n componentDidUpdate() {\n const panes = this.getPanes();\n if (panes[this.state.activeIndex].key === \"Organisation\") {\n this.props.fetchSettingsFilters({ showOrgTree: true });\n } else {\n this.props.fetchSettingsFilters({ showOrgTree: false });\n }\n }\n\n handleTabChange = (e, { activeIndex }) => {\n const panes = this.getPanes();\n if (panes[activeIndex].key === \"Organisation\") {\n this.props.fetchSettingsFilters({ showOrgTree: true });\n } else {\n this.props.fetchSettingsFilters({ showOrgTree: false });\n }\n this.setState({ activeIndex })\n }\n\n getPanes = () => {\n return [\n {\n key: \"Operators\",\n menuItem: 'Operators',\n pane: \n },\n {\n key: \"Organisation\",\n menuItem: 'Organisation',\n pane: \n },\n {\n key: \"Settings\",\n menuItem: 'System Settings Profile',\n pane: \n },\n {\n key: \"Opening Hours\",\n menuItem: 'Site Opening Hours Profiles',\n pane: \n },\n {\n key: \"Compliance\",\n menuItem: 'Compliance',\n pane: \n },\n ];\n }\n\n render() {\n const panes = this.getPanes()\n return (\n
\n \n
\n );\n }\n};\n\nexport default connect(null, { fetchSettingsFilters, emptySettingsSection })(SystemAdminView);\n","import { prepareFilter } from '@actions';\nimport prepareDetails from '@helpers/prepareDetails';\nimport axios from '@common/api/desktop/axios';\n\nclass Transactions {\n\n getTickets = async (useCollectionWeek, searchParams, filterSelected, filterData, Details, pageNumber) => {\n const response = await axios.put(`transactions/byOrg/filter/tickets`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details, pageNumber));\n return response.data;\n }\n\n getTicketsSummary = async (useCollectionWeek, searchParams, filterSelected, filterData, Details) => {\n const response = await axios.put(`transactions/byOrg/summary/tickets`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details));\n return response.data;\n }\n\n getLiability = async (useCollectionWeek, searchParams, filterSelected, filterData, Details, pageNumber) => {\n const response = await axios.put(`Transactions/byOrg/filter/liabilities`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details, pageNumber));\n return response.data;\n }\n\n getLiabilitySummary = async (useCollectionWeek, searchParams, filterSelected, filterData, Details) => {\n const response = await axios.put(`Transactions/byOrg/summary/liabilities`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details));\n return response.data;\n }\n\n getKiosk = async (useCollectionWeek, searchParams, filterSelected, filterData, Details, pageNumber) => {\n const response = await axios.put(`Transactions/byOrg/filter/transactions`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details, pageNumber));\n return response.data;\n }\n\n getKioskSummary = async (useCollectionWeek, searchParams, filterSelected, filterData, Details) => {\n const response = await axios.put(`Transactions/byOrg/summary/transactions`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details));\n return response.data;\n }\n\n getTicketsExport = async (useCollectionWeek, searchParams, filterSelected, filterData, Details) => {\n const response = await axios.put(`Transactions/export/tickets`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details), { responseType: 'arraybuffer' });\n return response;\n }\n\n getKioskExport = async (useCollectionWeek, searchParams, filterSelected, filterData, Details) => {\n const response = await axios.put(`Transactions/export/transactions`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details), { responseType: 'arraybuffer' });\n return response;\n }\n\n getLiabilityExport = async (useCollectionWeek, searchParams, filterSelected, filterData, Details) => {\n const response = await axios.put(`Transactions/export/liabilities`, this.prepareData(useCollectionWeek, searchParams, filterSelected, filterData, Details), { responseType: 'arraybuffer' });\n return response;\n }\n\n getFilterTypes = async () => {\n const response = await axios.get('Transactions/options/tickets/asset/filtertype');\n return response.data;\n }\n\n getFilterList = async (operatorId, siteId, type) => {\n const response = await axios.get(`Transactions/options/tickets/assets/filterlist/${operatorId},${siteId},${type}`);\n return response.data;\n }\n\n prepareData = (useCollectionWeek, searchParams, filterSelected, filterData, Details, pageNumber) => {\n const { operator, company, subcompany, site } = filterSelected;\n return {\n // Search params\n StartDate: searchParams.startDate,\n EndDate: searchParams.endDate,\n IncludeEvents: searchParams.includeEvents || false,\n SessionId: parseInt(searchParams.sessionId) || -1,\n TransactionRef: searchParams.transactionRef || \"#\",\n AssetNo: searchParams.assetNo || \"#\",\n PlayerId: searchParams.playerId || \"#\",\n pageNumber,\n UserName: searchParams.username || \"#\",\n collectionWeek: useCollectionWeek === 3 ? searchParams.week : null,\n useCurrentWeek: useCollectionWeek === 1 ? true : false,\n TicketSerial: searchParams.ticketSerial,\n filterType: searchParams.selectedFilterType.toString(),\n filterValue: searchParams.selectedFilterValue.toString(),\n\n // Selected company etc from the org tree\n OperatorId: operator,\n CompanyId: company.id || -1,\n SubCompanyId: subcompany.id || -1,\n SiteId: site.id || -1,\n\n // Selected filters from the org tree\n OperatorRegions: prepareFilter(filterSelected.regions, filterData.regions),\n Manufacturers: prepareFilter(filterSelected.manufacturer, filterData.manufacturer),\n GameNames: prepareFilter(filterSelected.game, filterData.game),\n Categories: prepareFilter(filterSelected.machinetypes, filterData.machinetypes),\n\n // Filters from the summary;\n Details: prepareDetails(Details),\n }\n }\n\n}\n\nconst transactions = new Transactions();\nexport default transactions;\n","import SessionDetailsModal from '@common/components/modals/SessionDetailsModal';\nimport DataGrid from '@shared/DataGrid';\nimport React, { Component } from 'react';\nimport { Grid, Pagination } from 'semantic-ui-react';\n\nclass BaseTab extends Component {\n\n state = {\n sessionId: null,\n modalOpen: false\n }\n\n handleClose = () => this.setState({ modalOpen: false })\n\n onPageChange = (event, { activePage }) => this.props.onPageChange(activePage);\n\n handleOptionChange = (option, value) => {\n const { summary } = this.props.data;\n const data = [...summary.data];\n\n data.forEach((row, rowIndex) => {\n row.cellData.forEach((cell, cellIndex) => {\n if (cell.data.code === option.code) {\n data[rowIndex].cellData[cellIndex] = { ...data[rowIndex].cellData[cellIndex], data: { ...option } }\n }\n })\n })\n\n this.props.onOptionChange({ ...summary, data })\n }\n\n onRowClick = activeRow => {\n if (activeRow.sessionId) {\n this.setState({ sessionId: activeRow.sessionId, modalOpen: true });\n }\n }\n\n render() {\n const { hasSelection } = this.props.filters;\n const showSummary = this.props.view.showSummary && hasSelection;\n const { summary, grid, loading } = this.props.data;\n const { prefix } = this.props;\n\n const tablet = 6;\n const computer = 6;\n const largeScreen = 5;\n const wideScreen = 4;\n\n return (\n \n {prefix && \n \n {prefix}\n \n }\n \n {(showSummary) &&\n \n \n \n }\n \n \n \n \n \n \n \n {this.state.sessionId &&\n \n }\n \n \n \n )\n }\n}\n\nexport default BaseTab;\n","import { setTransactionsKiosk } from '@actions';\nimport { connect } from 'react-redux';\nimport BaseTab from './BaseTab';\n\nclass KioskTab extends BaseTab {\n fnDispatch = this.props.setTransactionsKiosk;\n}\n\nconst mapStateToProps = state => {\n return {\n data: state.transactionsKiosk,\n view: state.transactionsView,\n filters: state.transactionsFilters,\n };\n};\n\n\nexport default connect(mapStateToProps, { setTransactionsKiosk })(KioskTab);","import { setTransactionsLiability } from '@actions/transactions';\nimport { connect } from 'react-redux';\nimport BaseTab from './BaseTab';\n\nclass LiabilityTab extends BaseTab {\n fnDispatch = this.props.setTransactionsLiability;\n}\n\nconst mapStateToProps = state => {\n return {\n data: state.transactionsLiability,\n view: state.transactionsView,\n filters: state.transactionsFilters,\n };\n};\n\n\nexport default connect(mapStateToProps, { setTransactionsLiability })(LiabilityTab);","import { setTransactionsView } from '@actions';\nimport { mapToSelect } from '@api/egm';\nimport transactions from '@api/transactions';\nimport _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { Form, Input, Select } from 'semantic-ui-react';\n\nlet debounce = null;\n\nconst TicketsFilters = (props) => {\n const { setTransactionsView } = props;\n const { filterTypes, filterValues, searchParams } = props.view;\n const { loading } = props.data;\n const { selectedFilterType, selectedFilterValue } = searchParams;\n const { hasSelection } = props.filters;\n const { operator } = props.filters.filterSelected;\n const siteId = props.filters.filterSelected.site.id;\n\n useEffect(() => {\n if (filterTypes.length > 0) {\n return;\n }\n transactions.getFilterTypes().then(filterTypes => {\n const selectedFilterType = filterTypes.length > 0 ? filterTypes[0].id : null;\n setTransactionsView({ filterTypes: mapToSelect(filterTypes), searchParams: { ...searchParams, selectedFilterType } })\n })\n }, [searchParams, setTransactionsView]);\n\n useEffect(() => {\n if (!selectedFilterType || !operator || !siteId) {\n return;\n }\n\n transactions.getFilterList(operator, siteId, selectedFilterType).then(filterValues => setTransactionsView({ filterValues: mapToSelect(filterValues, true), searchParams: { ...searchParams, selectedFilterValue: \"-1\" } }))\n }, [selectedFilterType, operator, siteId])\n\n const onChange = (e, { name, value }) => {\n\n if (!debounce) {\n debounce = _.debounce(() => props.onRefresh(), 500);\n }\n setTransactionsView({ searchParams: { ...searchParams, [name]: value } }).then(debounce);\n }\n\n const disabled = loading || !hasSelection;\n\n return (\n
\n \n \n \n \n {filterValues.length > 0 &&\n \n \n \n }\n\n \n \n \n \n
\n )\n}\n\nconst mapStateToProps = state => {\n return {\n filters: state.transactionsFilters,\n data: state.transactionsTickets,\n view: state.transactionsView\n };\n};\n\nexport default connect(mapStateToProps, { setTransactionsView })(TicketsFilters);\n","import { setTransactionsTickets } from '@actions';\nimport { connect } from 'react-redux';\nimport BaseTab from './BaseTab';\n\nclass TicketsTab extends BaseTab {\n fnDispatch = this.props.setTransactionsTickets;\n}\n\nconst mapStateToProps = state => {\n return {\n data: state.transactionsTickets,\n view: state.transactionsView,\n filters: state.transactionsFilters,\n };\n};\n\n\n\nexport default connect(mapStateToProps, { setTransactionsTickets })(TicketsTab);","import React from 'react';\nimport { Select } from 'semantic-ui-react';\n\nconst PeriodSelect = (props) => {\n\n const options = [\n {\n key: 'Current Week',\n text: 'Current Week',\n value: 1,\n },\n {\n key: 'Date Period',\n text: 'Date Period',\n value: 2,\n },\n {\n key: 'Collection Week',\n text: 'Collection Week',\n value: 3,\n },\n ]\n return \n}\n\nexport default PeriodSelect;","import { mapToSelect } from '@api/egm';\nimport RefreshButton from '@buttons/RefreshButton';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Form, Select } from 'semantic-ui-react';\n\nconst CollectionWeekFilters = (props) => {\n const { onChange, view, filters } = props;\n const { periods, searchParams } = view;\n const { hasSelection } = filters;\n const { week } = searchParams\n\n return \n \n \n onChange(name, value)}\n value={week}\n disabled={periods.length < 1}\n search\n />\n \n \n \n}\n\nconst mapStateToProps = state => {\n return {\n logIn: state.logIn,\n filters: state.transactionsFilters,\n view: state.transactionsView,\n };\n};\n\nexport default connect(mapStateToProps, null)(CollectionWeekFilters);\n","import { UIDateFormat, UITimeFormat } from \"@helpers/dates\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { DateInput, TimeInput } from \"semantic-ui-calendar-react\";\nimport { Form } from \"semantic-ui-react\";\n\nfunction extractDate(datetime) {\n return moment(datetime).format(UIDateFormat);\n}\n\nfunction extractTime(datetime) {\n return moment(datetime).format(UITimeFormat);\n}\n\nconst DateTimeGroupInput = (props) => {\n const { label, name, datetime, disabled, onChange } = props;\n\n const handleDateChange = (event, { name, value }) => {\n const time = moment(datetime).format(UITimeFormat);\n updateDate(name, value, time);\n };\n\n const handleTimeChange = (event, { name, value }) => {\n let date = moment(datetime).format(UIDateFormat);\n updateDate(name, date, value);\n };\n\n const updateDate = (name, date, time) => {\n onChange(\n name,\n moment(`${date} ${time}`, \"DD-MM-YYYY HH:mm\").toISOString(true),\n );\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default DateTimeGroupInput;\n","import { setTransactionsView } from \"@actions\";\nimport RefreshButton from \"@buttons/RefreshButton\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Checkbox, Form } from \"semantic-ui-react\";\nimport DateTimeGroupInput from \"./DateTimeGroupInput\";\n\nconst DatePeriodFilters = (props) => {\n const { onChange } = props;\n const { hasSelection } = props.filters;\n const { useCurrentDateTime, searchParams } = props.view;\n const { startDate, endDate } = searchParams;\n\n return (\n <>\n \n \n \n \n \n \n props.setTransactionsView({\n useCurrentDateTime: !useCurrentDateTime,\n })\n }\n disabled={!hasSelection}\n />\n \n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n logIn: state.logIn,\n filters: state.transactionsFilters,\n view: state.transactionsView,\n };\n};\n\nexport default connect(mapStateToProps, { setTransactionsView })(\n DatePeriodFilters,\n);\n","import { setTransactionsView } from \"@actions\";\nimport RefreshButton from \"@buttons/RefreshButton\";\nimport PeriodSelect from \"@shared/PeriodSelect\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Form, Grid } from \"semantic-ui-react\";\nimport CollectionWeekFilters from \"./CollectionWeekFilters\";\nimport DatePeriodFilters from \"./DatePeriodFilters\";\n\nconst TransactionFilters = (props) => {\n const { useCollectionWeek, searchParams } = props.view;\n const { hasSelection } = props.filters;\n\n const onChange = (name, value) => {\n props.setTransactionsView({\n searchParams: { ...searchParams, [name]: value },\n });\n };\n\n const renderControls = () => {\n switch (useCollectionWeek) {\n case 2:\n return (\n \n );\n case 3:\n return (\n \n );\n default:\n return (\n \n );\n }\n };\n\n return (\n
\n \n \n \n \n \n props.setTransactionsView({ useCollectionWeek: value })\n }\n />\n \n {renderControls()}\n \n \n \n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n logIn: state.logIn,\n filters: state.transactionsFilters,\n view: state.transactionsView,\n };\n};\n\nexport default connect(mapStateToProps, { setTransactionsView })(\n TransactionFilters,\n);\n","import React from 'react';\nimport { Form, Input } from 'semantic-ui-react';\n\nconst UserInput = (props) => {\n const { value, onChange, disabled } = props;\n return (\n \n \n onChange(name, value)}\n disabled={disabled}\n />\n \n )\n}\n\nexport default UserInput;","import { emptyTransactionsSection, fetchTransactionsFilters, setTransactionsKiosk, setTransactionsTickets, setTransactionsView } from '@actions';\nimport { setTransactionsLiability } from '@actions/transactions';\nimport kiosk from '@api/kiosk';\nimport transactions from '@api/transactions';\nimport DownloadButton from '@buttons/DownloadButton';\nimport OrgTreeButton from '@buttons/OrgTreeButton';\nimport SummaryButton from '@buttons/SummaryButton';\nimport KioskTab from '@components/transactions/KioskTab';\nimport LiabilityTab from '@components/transactions/LiabilityTab';\nimport TicketsFilters from '@components/transactions/TicketsFilters';\nimport TicketsTab from '@components/transactions/TicketsTab';\nimport TransactionFilters from '@components/transactions/TransactionFilters';\nimport UserInput from '@components/transactions/UserInput';\nimport { handleDownload } from '@helpers/downloads';\nimport { getControlValues } from '@helpers/summary';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Form, Grid, Menu, Tab } from 'semantic-ui-react';\n\nclass TransactionsView extends React.Component {\n\n componentDidUpdate(prevProps) {\n if (this.props.filters.filterSelected.operator !== prevProps.filters.filterSelected.operator || this.props.filters.filterSelected.site.id !== prevProps.filters.filterSelected.site.id) {\n this.loadPeriods();\n\n const panes = this.getPanes();\n panes.forEach((pane, index) => this.loadSummary(index))\n }\n }\n\n onPageChange = (activePage) => {\n const { activeIndex } = this.props.view;\n const { fnDispatch, reduxKey } = this.getPanes()[activeIndex];\n const { grid } = this.props[reduxKey];\n fnDispatch({ grid: { ...grid, pageNumber: activePage } }).then(() => {\n this.handleRefresh(activeIndex);\n })\n }\n\n getPanes = () => {\n const { hasSelection } = this.props.filters;\n const { searchParams } = this.props.view;\n const { username } = searchParams;\n return [\n {\n key: \"Kiosk/Cash Desk\",\n menuItem: Kiosk/ Cash Desk,\n fnSummary: transactions.getKioskSummary,\n fnRefresh: transactions.getKiosk,\n fnDispatch: this.props.setTransactionsKiosk,\n fnExport: transactions.getKioskExport,\n reduxKey: 'kiosk',\n pane:\n \n \n this.props.setTransactionsView({ searchParams: { ...searchParams, [name]: value } }).then(() => {\n if (!this.debounce) this.debounce = _.debounce(() => this.onRefresh(), 1000);\n this.debounce();\n })}\n disabled={!hasSelection || this.props.kiosk.loading}\n />\n \n }\n onPageChange={this.onPageChange}\n onOptionChange={this.onOptionChange}\n />\n \n },\n {\n key: 'Tickets',\n menuItem: Tickets,\n fnSummary: transactions.getTicketsSummary,\n fnRefresh: transactions.getTickets,\n fnDispatch: this.props.setTransactionsTickets,\n fnExport: transactions.getTicketsExport,\n reduxKey: 'tickets',\n pane: \n }\n onPageChange={this.onPageChange}\n onOptionChange={this.onOptionChange}\n />\n \n },\n {\n key: 'Site Liability',\n menuItem: Site Liability,\n fnSummary: transactions.getLiabilitySummary,\n fnRefresh: transactions.getLiability,\n fnExport: transactions.getLiabilityExport,\n fnDispatch: this.props.setTransactionsLiability,\n reduxKey: 'liability',\n pane: \n \n \n }\n ]\n }\n\n componentWillUnmount() {\n this.props.emptyTransactionsSection();\n }\n\n loadSummary = (activeIndex) => {\n const { useCollectionWeek } = this.props.view;\n const { reduxKey, fnDispatch, fnSummary } = this.getPanes()[activeIndex];\n const defaultGrid = { data: [], headerDef: [], rowDef: [] };\n fnDispatch({ grid: defaultGrid, loading: true }).then(() => {\n const { filterSelected, filterData } = this.props.filters;\n const details = getControlValues(this.props[reduxKey].summary.data);\n const { searchParams } = this.props.view;\n if (!this.props.filters.hasSelection) {\n fnDispatch({ loading: false });\n return;\n }\n fnSummary(useCollectionWeek, searchParams, filterSelected, filterData, details).then(\n summary => fnDispatch({ summary, loading: false }).then(() => this.handleRefresh(activeIndex)),\n error => fnDispatch({ loading: false })\n );\n })\n }\n\n handleRefresh = (activeIndex) => {\n const { reduxKey, fnDispatch, fnRefresh } = this.getPanes()[activeIndex];\n const callback = () => {\n const { filterSelected, filterData } = this.props.filters;\n const { searchParams, useCollectionWeek } = this.props.view;\n\n fnDispatch({ loading: true }).then(() => {\n const details = getControlValues(this.props[reduxKey].summary.data);\n fnRefresh(useCollectionWeek, searchParams, filterSelected, filterData, details, this.props[reduxKey].grid.pageNumber).then(\n grid => {\n this.props.setTransactionsView({ showSummary: true });\n fnDispatch({ loading: false, grid });\n },\n error => {\n fnDispatch({ loading: false })\n }\n );\n });\n }\n\n if (this.props.useCurrentDateTime) {\n this.props.onChange(\"endDate\", moment().toISOString(true), callback);\n } else {\n callback();\n }\n }\n\n onRefresh = () => this.loadSummary(this.props.view.activeIndex);\n\n loadPeriods = () => {\n const { operator } = this.props.filters.filterSelected;\n const siteId = this.props.filters.filterSelected.site.id;\n const companyId = this.props.filters.filterSelected.company.id;\n const subCompanyId = this.props.filters.filterSelected.subcompany.id;\n this.props.setTransactionsView({\n periods: []\n }).then(() => {\n this.props.setTransactionsView({ loading: false }).then(() => {\n if (siteId) {\n this.props.setTransactionsView({ loading: true }).then(() => {\n kiosk.Positions(operator, companyId, subCompanyId, siteId, true, true, true, true, true).then(\n ({ collectionDates }) => {\n const defaultPeriod = Array.isArray(collectionDates) && collectionDates.length > 1 ? collectionDates[0].id : null;\n this.props.setTransactionsView({ periods: collectionDates, searchParams: { ...this.props.view.searchParams, week: defaultPeriod, loading: false } })\n }\n );\n })\n }\n })\n });\n }\n\n loadExport = () => {\n const { activeIndex } = this.props.view;\n const { fnExport, reduxKey } = this.getPanes()[activeIndex];\n const { filterSelected, filterData } = this.props.filters;\n const details = getControlValues(this.props[reduxKey].summary.data);\n const { searchParams, useCollectionWeek } = this.props.view;\n\n this.props.setTransactionsView({ exportLoading: true }).then(() => {\n fnExport(useCollectionWeek, searchParams, filterSelected, filterData, details).then(\n response => this.props.setTransactionsView({ exportLoading: false }).then(() => handleDownload(response)),\n () => this.props.setTransactionsView({ exportLoading: false })\n );\n })\n }\n\n onOptionChange = (summary) => {\n const { activeIndex } = this.props.view;\n const { fnDispatch } = this.getPanes()[activeIndex];\n fnDispatch({ summary });\n }\n\n onTabChange = (e, { activeIndex }) => this.props.setTransactionsView({ activeIndex });\n\n render() {\n const { exportLoading, showSummary } = this.props.view;\n const { hasSelection, showOrgTree } = this.props.filters;\n const panes = this.getPanes();\n return (\n \n \n \n
\n
\n this.props.fetchTransactionsFilters({ showOrgTree: !showOrgTree })}\n />\n this.props.setTransactionsView({ showSummary: !showSummary })}\n active={showSummary}\n />\n \n
\n
\n \n
\n
\n
\n
\n \n \n \n \n \n
\n );\n }\n};\n\n\nconst mapStateToProps = state => {\n return {\n filters: state.transactionsFilters,\n kiosk: state.transactionsKiosk,\n tickets: state.transactionsTickets,\n liability: state.transactionsLiability,\n view: state.transactionsView,\n };\n};\n\nexport default connect(mapStateToProps, { fetchTransactionsFilters, emptyTransactionsSection, setTransactionsTickets, setTransactionsLiability, setTransactionsView, setTransactionsKiosk })(TransactionsView);\n","import OptionsList from '@components/systemAdmin/OptionsList';\nimport React from 'react';\nimport { Tab } from \"semantic-ui-react\";\n\nconst Options = (props) => {\n return (\n
\n
\n
\n )\n}\n\nconst ProfileTabs = (props) => {\n const panes = [\n {\n menuItem: 'CMS',\n pane: props.onChange('cms', option, value)} />\n },\n {\n menuItem: 'Site Controller',\n pane: props.onChange('siteController', option, value)} />\n },\n {\n menuItem: 'Mobile',\n pane: props.onChange('cmsMobile', option, value)} />\n },\n ]\n\n return \n}\n\nexport default ProfileTabs;\n","import { fetchUserAccessProfile, fetchUserAccessProfiles, getAccessProfile, updateAccessProfile } from '@actions/index';\nimport { newProfileModal, showSuccessAlert } from '@actions/modals';\nimport BaseSettings from '@components/systemAdmin/BaseSettings';\nimport Filters from '@components/systemAdmin/Filters';\nimport OptionsList from '@components/systemAdmin/OptionsList';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Grid, Icon, List } from 'semantic-ui-react';\nimport ProfileTabs from './ProfileTabs';\n\nclass AccessProfiles extends BaseSettings {\n\n state = {\n changed: [],\n search: \"\",\n activeProfile: {\n value: null,\n text: \"\",\n key: \"\",\n header: [],\n cms: [],\n cmsMobile: [],\n siteController: [],\n },\n selectedOperator: null,\n profiles: [],\n profileModalOpen: false,\n modalOpen: false,\n modalTitle: \"\",\n loading: false\n }\n\n componentDidMount() {\n const { operators } = this.props;\n const selectedOperator = operators.length === 1 ? operators[0].key : null;\n this.setState({ selectedOperator });\n }\n\n handleOperatorSelect = (event, data) => {\n this.setState({ selectedOperator: data.value })\n }\n\n handleChangeValue = (key, option, value) => {\n const changed = [...this.state.changed].filter(x => x.code !== option.code)\n changed.push({ ...option, value })\n const options = [...this.state.activeProfile[key]]\n const index = options.findIndex(item => item.code === option.code)\n options[index] = option\n this.setState({ activeProfile: { ...this.state.activeProfile, [key]: options }, changed })\n }\n\n handleModalClose = () => {\n this.setState({ successModalOpen: false })\n }\n\n handleSearch = async () => {\n const { selectedOperator, search } = this.state\n await this.setState({ loading: true })\n const profiles = await fetchUserAccessProfiles(selectedOperator, search)\n this.setState({ profiles, loading: false });\n return true;\n }\n\n handleSearchChange = (event, { value }) => {\n this.setState({ search: value })\n }\n\n handleClick = (activeProfile) => {\n this.fetchAccessProfile(activeProfile)\n }\n\n fetchAccessProfile = async (activeProfile) => {\n this.setState({ loading: true }, () => {\n fetchUserAccessProfile(activeProfile.value, true).then(\n result => {\n this.setState({ changes: {}, loading: false, activeProfile: { ...activeProfile, ...result } })\n },\n () => this.setState({ loading: false })\n );\n })\n }\n\n handleSave = () => {\n updateAccessProfile(this.state.activeProfile.value, this.state.selectedOperator, this.getChanged()).then(response => {\n this.setState({ changed: [] }, () => {\n this.handleSearch().then(() => {\n this.fetchAccessProfile(this.state.activeProfile)\n this.props.showSuccessAlert(`Your changes were saved successfully`)\n })\n })\n })\n }\n\n handleNewProfile = () => {\n getAccessProfile(this.state.selectedOperator).then(response => {\n this.props.newProfileModal(true, response, this.saveNewProfile);\n });\n }\n\n saveNewProfile = async (options) => {\n await updateAccessProfile(0, this.state.selectedOperator, options).then(profileId => {\n this.handleSearch().then(() => {\n const activeProfile = this.state.profiles.find(x => x.value === profileId);\n this.fetchAccessProfile(activeProfile)\n this.props.newProfileModal(false).then(() => this.props.showSuccessAlert(`New profile successfully created!`));\n })\n })\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n \n
\n \n {this.state.profiles.map(profile => {\n return ( this.handleClick(profile)}>{profile.text})\n })}\n \n
\n
\n \n {this.state.activeProfile.value &&\n
\n this.handleChangeValue('header', option, value)} />\n
\n }\n \n
\n
\n \n \n {this.props.logIn.optionAllowNewUserAccessProfile &&\n }\n \n \n {this.props.logIn.optionAllowSaveUserAccessProfile && }\n \n \n
\n );\n }\n};\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators.filter(x => x.value !== -1),\n logIn: state.logIn\n }\n}\n\nexport default connect(mapStateToProps, { newProfileModal, showSuccessAlert })(AccessProfiles);\n","import React from 'react';\nimport ProfileTabs from './ProfileTabs';\nimport { Header } from 'semantic-ui-react';\n\nconst SystemAccess = (props) => {\n return (\n
\n
User System Access Profile - {props.profileName}
\n \n
\n )\n}\n\nexport default SystemAccess;","import { fetchSecurityUser, fetchSecurityUsers, fetchUserAccessProfile, fetchUserAccessProfiles, getSecurityUser, resetUserPassword, updateSecurityUser } from '@actions/index';\nimport { showSuccessAlert } from '@actions/modals';\nimport OperatorRegion from '@api/operatorRegion';\nimport BaseSettings from '@components/systemAdmin/BaseSettings';\nimport Filters from '@components/systemAdmin/Filters';\nimport OptionsList from '@components/systemAdmin/OptionsList';\nimport SelectProfile from '@components/systemAdmin/SelectProfile';\nimport buildTree from '@helpers/buildTree';\nimport OptionsModal from '@modals/OptionsModal';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Accordion, Button, Grid, Header, Icon, List, Tab } from 'semantic-ui-react';\nimport SystemAccess from './SystemAccess';\n\nclass UserAccounts extends BaseSettings {\n\n defaultUser = { profileData: [] }\n defaultProfile = { profileId: null, profileData: [] }\n\n state = {\n activeIndex: 0,\n loading: false,\n dataAccess: 1,\n selectedOperator: null,\n profiles: [],\n activeUser: this.defaultUser,\n search: \"\",\n selectedProfile: this.defaultProfile,\n userAccessProfiles: [],\n modalOpen: false,\n modalTitle: \"\",\n modalOptions: [],\n changed: [],\n profileChanged: false,\n operatorRegions: [],\n orgGrid: { data: [], headerDef: [], rowDef: [] },\n orgTree: [],\n orgTreeSelection: null,\n dataAccessChanged: [],\n orgGridSelections: [],\n operatorCustomerChanged: false,\n selectedRow: null,\n showDataAccess: false,\n expanded: [],\n allExpanded: false,\n }\n\n componentDidMount() {\n const selectedOperator = this.props.operators.length === 1 ? this.props.operators[0].key : null;\n\n if (selectedOperator) {\n this.fetchAccessProfiles(selectedOperator)\n }\n\n this.setState({ selectedOperator });\n }\n\n\n handleDataAccessChangeValue = (option, value) => this.handleChangeValue(option, value, \"dataAccessChanged\")\n\n fetchAccessProfiles = (operator) => {\n fetchUserAccessProfiles(operator, this.state.search).then(userAccessProfiles => this.setState({ userAccessProfiles }));\n }\n\n handleOperatorSelect = (event, data) => {\n this.setState({ selectedOperator: data.value, profiles: [], activeUser: { ...this.defaultUser }, selectedProfile: { ...this.defaultProfile } }, () => this.fetchAccessProfiles(data.value))\n }\n\n handleClick = (user) => {\n this.setState({ expanded: [], allExpanded: false }, () => this.fetchUser(user.id, user.name))\n }\n\n fetchUser = async (id) => {\n\n const callback = () => this.setState({ loading: false })\n await this.setState({ loading: true });\n\n fetchSecurityUser(id).then(\n user => {\n const activeUser = { ...user, id }\n fetchUserAccessProfile(activeUser.userAccessProfile, false).then(\n selectedProfile => {\n const showDataAccess = user.optionDisplayDataAccess;\n this.setState({ activeUser, showDataAccess, orgTreeSelection: null, dataAccessChanged: [], orgGridSelections: [], operatorCustomerChanged: false, selectedProfile, loading: false }, () => this.fetchDataAccess(id));\n },\n callback\n );\n },\n callback\n );\n }\n\n fetchDataAccess = (id) => {\n OperatorRegion.getUserRegions(this.state.selectedOperator, id, this.state.dataAccess).then(result => {\n const operatorRegions = result.operatorRegions || this.state.operatorRegions;\n const orgGrid = result.orgGrid || this.state.orgGrid;\n const orgTree = result.orgTree ? buildTree(result.orgTree) : this.state.orgTree;\n this.setState({ operatorRegions, orgGrid, orgTree, orgTreeSelection: null, orgGridSelections: result.selections, dataAccessChanged: [], operatorCustomerChanged: false })\n });\n }\n\n handleSearch = async () => {\n await this.setState({ loading: true })\n const { selectedOperator, search } = this.state\n await fetchSecurityUsers(selectedOperator, search).then(\n profiles => this.setState({ profiles, selectedProfile: this.defaultProfile, activeUser: this.defaultUser, loading: false }),\n () => this.setState({ loading: false })\n )\n return true;\n }\n\n handleSearchChange = (event, { value }) => {\n this.setState({ search: value })\n }\n\n handleProfileSelect = (event, { value }) => {\n fetchUserAccessProfile(value, false).then(selectedProfile => {\n this.setState({ selectedProfile, profileChanged: true })\n });\n }\n\n handleOptionChange = (option, value) => {\n const changed = [...this.state.changed].filter(x => x.code !== option.code)\n changed.push({ ...option, value })\n const profileData = [...this.state.activeUser.profileData]\n const index = profileData.findIndex(item => item.code === option.code)\n profileData[index] = option\n this.setState({ activeUser: { ...this.state.activeUser, profileData }, changed }, () => {\n if (option.doRefresh) {\n this.handleSave(false)\n }\n })\n }\n\n handleSave = (complete = true) => {\n const activeUser = { ...this.state.activeUser }\n updateSecurityUser(activeUser.id, this.state.selectedOperator, this.state.selectedProfile.profileId, this.getChanged(), complete).then(response => {\n if (complete) {\n this.setState({ changed: [], profileChanged: false }, () => {\n this.handleSearch().then(() => {\n this.fetchUser(activeUser.id, activeUser.name)\n this.props.showSuccessAlert(`Your changes were saved successfully.`)\n })\n })\n } else {\n this.setState({ activeUser: { ...this.state.activeUser, profileData: response.profileData } })\n }\n })\n }\n\n handleNewUser = () => {\n getSecurityUser(this.state.selectedOperator, this.state.selectedProfile.profileId).then(response => {\n this.setState({ modalOptions: response.profileData, modalTitle: \"New User\", modalOpen: true })\n });\n }\n\n handleOptionsReload = async (changes, another, complete) => {\n this.saveNewUser(changes, another, complete)\n }\n\n saveNewUser = async (details, another, complete = true) => {\n await updateSecurityUser(0, this.state.selectedOperator, this.state.selectedProfile.profileId, details, complete).then(response => {\n if (complete) {\n this.handleSearch().then(() => {\n this.setState({ modalOpen: false }, () => {\n this.fetchUser(response)\n this.props.showSuccessAlert(`Your new user was successfully created`)\n })\n })\n } else {\n this.setState({ modalOptions: response.profileData })\n }\n })\n }\n\n handleResetPassword = () => {\n resetUserPassword(this.state.activeUser.userEmail).then(() => this.props.showSuccessAlert(`A reset password email has been sent to ${this.state.activeUser.userEmail}!`))\n }\n\n handleProfileClick = (profile) => {\n fetchUserAccessProfile(profile, false).then(selectedProfile => {\n this.setState({ selectedProfile, activeUser: { profileData: [] }, profileChanged: false })\n });\n }\n\n toggleCollapsed = (id) => {\n const expanded = [...this.state.expanded];\n const index = expanded.findIndex(x => x === id)\n\n if (index >= 0) {\n expanded.splice(index, 1);\n } else {\n expanded.push(id);\n }\n\n this.setState({ expanded })\n }\n\n renderTree = (item) => {\n let css = \"clickable text-normal\"\n\n if (this.state.orgTreeSelection === item) {\n css += \" treeActive\"\n }\n\n const isExpanded = this.state.expanded.includes(item.id);\n const iconName = isExpanded ? \"minus square outline\" : \"plus square outline\"\n\n return (\n
\n \n {item.children.length > 0 && this.toggleCollapsed(item.id)} />}\n this.handleNodeClick(item)} className={css}>{item.name}\n \n {(item.children.length > 0 && isExpanded) &&\n \n \n {item.children.map(x => this.renderTree(x))}\n \n \n }\n
\n )\n }\n\n handleNodeClick = (orgTreeSelection) => this.setState({ orgTreeSelection })\n\n addNode = () => {\n let orgGridSelections = [...this.state.orgGridSelections];\n orgGridSelections.push(this.state.orgTreeSelection);\n\n this.setState({ orgGridSelections, operatorCustomerChanged: true }, () => {\n OperatorRegion.reloadList(this.state.selectedOperator, this.state.activeUser.id, this.state.orgGridSelections).then(orgGrid => this.setState({ orgGrid }))\n })\n }\n\n removeRow = () => {\n let orgGridSelections = [...this.state.orgGridSelections];\n orgGridSelections = orgGridSelections.filter(x => x.id !== this.state.selectedRow.id);\n\n this.setState({ orgGridSelections, operatorCustomerChanged: true }, () => {\n OperatorRegion.reloadList(this.state.selectedOperator, this.state.activeUser.id, this.state.orgGridSelections).then(orgGrid => this.setState({ orgGrid, selectedRow: null }))\n })\n }\n\n updateDataAccess = () => {\n const changed = this.state.dataAccess === 0 ? this.getChanged(\"dataAccessChanged\") : this.state.orgGridSelections;\n OperatorRegion.updateDataAccess(this.state.activeUser.id, this.state.dataAccess, changed).then(() => {\n this.fetchDataAccess(this.state.activeUser.id)\n this.props.showSuccessAlert(\"Data Access updated successfully!\")\n })\n }\n\n render() {\n const optionsPrefix = (\n \n Access Profile\n \n \n );\n\n const panes = []\n\n panes.push(\n {\n menuItem: 'General Options', render: () => {\n return (\n \n \n \n \n
\n \n
\n
\n
\n \n \n {this.props.logIn.optionallowUserPasswordReset &&\n \n }\n \n \n {this.props.logIn.optionAllowSaveUser &&\n \n }\n \n \n
\n
\n )\n }\n }\n )\n\n if (this.state.showDataAccess) {\n\n const css = (this.state.orgTreeSelection && this.state.orgTreeSelection.type === \"OP\") ? \"clickable treeActive\" : \"clickable\";\n\n panes.push(\n {\n menuItem: 'Data Access', render: () => {\n return (\n \n \n \n \n
\n \n \n this.setState({ allExpanded: !this.state.allExpanded })} />\n { this.setState({ orgTreeSelection: { id: 0, name: \"All\", type: \"OP\" } }) }} className=\"clickable\">All\n \n {this.state.allExpanded &&\n \n \n {this.state.orgTree.map(x => this.renderTree(x))}\n \n \n }\n \n
\n
\n \n this.setState({ selectedRow })}\n fullHeight\n />\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n }\n }\n )\n }\n\n panes.push(\n {\n menuItem: 'System Access', render: () => {\n const { profileName, cms, cmsMobile, siteController } = this.state.selectedProfile;\n return (\n \n \n \n )\n }\n }\n )\n\n const append = \n\n return (\n \n {this.props.operators &&\n \n \n \n \n \n }\n \n \n
\n \n {this.state.profiles.map(profile => {\n const css = this.state.selectedProfile.profileId === profile.id && !this.state.activeUser.profileData.length ? \"clickable active\" : \"clickable\";\n return (\n this.handleProfileClick(profile.id)}>{profile.name}\n \n {profile.children.map(child => {\n return this.handleClick(child)}> {child.name} {child.icon && }\n })}\n \n )\n })}\n \n
\n
\n this.setState({ modalOpen: false })} onSave={this.saveNewUser} />\n {this.state.activeUser.profileData.length > 0 &&\n \n
\n \n \n {this.state.activeUser.displayName}\n {this.state.selectedProfile.profileName}\n \n
\n this.setState({ activeIndex })}\n className=\"height-100 gs-flex-container-vertical\"\n />\n
\n }\n
\n
\n );\n }\n};\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n operators: state.operators,\n logIn: state.logIn\n }\n}\n\nexport default connect(mapStateToProps, { showSuccessAlert })(UserAccounts);\n","import AccessProfiles from '@components/useradmin/AccessProfiles';\nimport UserAccounts from '@components/useradmin/UserAccounts';\nimport React from 'react';\nimport { Tab } from 'semantic-ui-react';\n\nclass UserAdminView extends React.Component {\n\n state = {\n activeIndex: 0\n }\n\n handleTabChange = (e, { activeIndex }) => {\n this.setState({ activeIndex })\n }\n\n getPanes = () => {\n return [\n {\n key: \"User Accounts\",\n menuItem: 'User Accounts',\n pane: \n },\n {\n key: \"User System Access Profiles\",\n menuItem: 'User System Access Profiles',\n pane: \n }\n ];\n }\n\n\n render() {\n const panes = this.getPanes()\n return (\n
\n \n
\n );\n }\n};\n\nexport default UserAdminView;\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass ComplianceClient extends ApiClient {\n constructor() {\n super(\"Compliance\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n getMetaData = async () => {\n const response = await this.get(\"Search\");\n const {\n status,\n selfExclusionTypes,\n eventTypes,\n incidentTypes,\n periods,\n processedQuarters,\n } = response;\n\n const selectedPeriod = periods[0]?.value;\n const selectedQuarter = processedQuarters[0]?.id;\n const selectedEventType = [...eventTypes.map((type) => type.id)];\n const selectedIncidentType = [...incidentTypes.map((type) => type.id)];\n const selectedStatuses = [...status.map((status) => status.id)];\n const selectedSelfExclusionType = [\n ...selfExclusionTypes.map((status) => status.id),\n ];\n\n return {\n ...response,\n selectedPeriod,\n selectedQuarter,\n selectedEventType,\n selectedIncidentType,\n selectedStatuses,\n selectedSelfExclusionType,\n };\n };\n\n getEventDetails = async (filters) => {\n console.log(filters);\n const {\n allNames,\n siteIds,\n startDate,\n endDate,\n selectedStatuses,\n selectedEventType,\n selectedIncidentType,\n selectedSelfExclusionType,\n activePage,\n returnCsv,\n } = filters;\n\n const payload = {\n allNames,\n dateCreatedFrom: `${startDate}T00:00:00`,\n dateCreatedTo: `${endDate}T23:59:59`,\n statusIds: selectedStatuses,\n eventTypeIds: selectedEventType.filter((x) => x !== 3 && x !== 5),\n incidentTypeIds: selectedIncidentType,\n selfExclusionTypeIds: selectedSelfExclusionType,\n siteIds,\n pageNumber: activePage,\n pageSize: 25,\n returnCsv,\n };\n\n return await returnCsv\n ? this.getFile(\"Search\", \"POST\", payload)\n : this.post(\"Search\", payload);\n };\n\n Process = async (id) => await this.get(`Process?organisationUnitId=${id}`);\n\n Delete = async (id) => await this.post(`Delete?id=${id}`, { id });\n\n Complete = async (quarter, year, organisationUnitId) =>\n await this.post(\"Process\", { year, quarter, organisationUnitId });\n\n SiteSummary = async (\n quarter,\n year,\n organisationUnitId,\n returnCsv = false,\n ) => {\n const payload = {\n year,\n quarter,\n organisationUnitId,\n returnCsv,\n };\n\n return returnCsv\n ? await this.getFile(\"SiteSummary\", \"POST\", payload)\n : await this.post(\"SiteSummary\", payload);\n };\n\n ReadForAuthorise = async (id) => {\n const { record } = await this.get(`Update?id=${id}`);\n return record;\n };\n\n Authorise = async (id, rowVersion) => {\n await this.post(`Authorise`, {\n id,\n rowVersion,\n comments: \"\",\n isAuthorised: true,\n });\n };\n}\n\nconst client = new ComplianceClient();\n\nexport default client;\n","export const toggleItemInArray = (array, item) =>\n array?.includes(item)\n ? [...array.filter((x) => x !== item)]\n : [...array, item];\n","import { useCallback } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { COMPLIANCE_SUMMARY_TAB_KEY } from \"../redux/reducers/complianceSummaryReducer\";\nimport AuthenticationClient from \"@common/api/AuthenticationClient\";\nimport { store } from '@store';\n\nexport default function useComplianceView() {\n const data = useSelector((state) => state.complianceSummaryTab);\n const dispatch = useDispatch();\n const { activeIndex, eventsGridLoading, filtersLoading } = data;\n const { hasSelection, filterSelected: { operator } } = useSelector((state) =>\n state.complianceFilters\n );\n\n const onOperatorChange = () => {\n if (!operator) {\n return;\n }\n AuthenticationClient.SwitchTenant(operator).then(({ accessToken }) =>\n sessionStorage.setItem(\"accessToken\", accessToken)\n );\n };\n\n\n const setViewData = (payload) => {\n dispatch({ type: COMPLIANCE_SUMMARY_TAB_KEY, payload });\n }\n\n const onTabChange = useCallback(\n (_e, { activeIndex }) => {\n setViewData({ activeIndex });\n const showOrgTree = activeIndex === 0;\n store.dispatch(async (dispatch) => dispatch({ type: \"FETCH_COMPLIANCE_FILTERS\", payload: { showOrgTree } }));\n },\n [setViewData, store],\n );\n\n const isLoading = eventsGridLoading ||\n filtersLoading /* graphLoading || gridLoading || */;\n\n return {\n ...data,\n operator,\n onOperatorChange,\n onTabChange,\n isLoading,\n activeIndex,\n hasSelection,\n setViewData,\n };\n}\n","import { useSelector } from \"react-redux\";\n\nfunction getCompanySites(company) {\n const sitesList = [];\n company.subCompanies.forEach(({ sites }) => {\n sites.forEach((site) => sitesList.push(site.id));\n });\n return sitesList;\n}\n\nfunction useOrganisationTreeSelections(stateKey) {\n const { filterSelected } = useSelector((state) => state[stateKey]);\n const { site, subcompany, company } = filterSelected;\n const siteCallback = (x) => x.id;\n\n if (site.id) {\n return [site.id];\n }\n\n if (subcompany.id) {\n return subcompany.sites.map(siteCallback);\n }\n\n if (company.id) {\n return getCompanySites(company);\n }\n\n return null;\n}\n\nexport default useOrganisationTreeSelections;\n","import ComplianceClient from \"@common/api/ComplianceClient\";\nimport { toggleItemInArray } from \"@common/components/helpers/arrays\";\nimport useComplianceView from \"./useComplianceView\";\nimport useOrganisationTreeSelections from \"@hooks/useOrganisationTreeSelections\";\n\nexport default function useComplianceSummaryFilters() {\n const { filters, hasSelection, setViewData } = useComplianceView();\n const {\n selectedEventType,\n selectedSelfExclusionType,\n selectedIncidentType,\n } = filters;\n\n const siteIds = useOrganisationTreeSelections(\"complianceFilters\");\n\n const onEventTypeChange = (id) =>\n onChange(null, {\n name: \"selectedEventType\",\n value: toggleItemInArray(selectedEventType, id),\n });\n const onIncidentTypeChange = (id) =>\n onChange(null, {\n name: \"selectedIncidentType\",\n value: toggleItemInArray(selectedIncidentType, id),\n });\n const onSelfExclusionTypeChange = (id) =>\n onChange(null, {\n name: \"selectedSelfExclusionType\",\n value: toggleItemInArray(selectedSelfExclusionType, id),\n });\n\n\n const onAllNamesChange = (_e, { name, value }) =>\n setViewData({ allNames: value });\n\n const onChange = (_e, { name, value }) =>\n setViewData({ filters: { ...filters, [name]: value } });\n\n const onPeriodChange = (startDate, endDate) =>\n setViewData({ filters: { ...filters, startDate, endDate } });\n\n const onPageChange = (_e, { activePage }) =>\n setViewData({ filters: { ...filters, activePage } });\n\n const getMetaData = () => {\n if (!hasSelection) {\n return;\n }\n\n ComplianceClient.getMetaData()\n .then((response) => {\n setViewData({ filters: { ...filters, ...response } });\n })\n .finally(() => setViewData({ filtersLoading: false }));\n };\n\n return {\n ...filters,\n siteIds,\n getMetaData,\n onChange,\n onPageChange,\n onPeriodChange,\n onEventTypeChange,\n onAllNamesChange,\n onIncidentTypeChange,\n onSelfExclusionTypeChange,\n };\n}\n","import AlertModalReducer from \"../reducers/AlertModalReducer\";\nimport BaseAction from \"./BaseAction\";\n\nclass AlertModalAction extends BaseAction {\n onClose = () => { };\n\n open = async (message, title = \"Error\", onClose = () => { }) => {\n this.onClose = onClose;\n this.dispatch({ open: true, message, title });\n };\n}\n\nconst action = new AlertModalAction(AlertModalReducer);\n\nexport default action;\n","import AlertModalAction from \"../../redux/actions/AlertModalAction\";\n\nconst logout = (idle = false) => {\n const deviceId = sessionStorage.getItem(\"deviceId\");\n\n const callback = () => {\n sessionStorage.removeItem(\"token\");\n sessionStorage.removeItem(\"accessToken\");\n\n if (idle) {\n AlertModalAction.open(\n \"You have been logged out due to inactivity, please log in again to continue using Guardian Mobile.\",\n \"Session Timeout\",\n () => {\n window.location = \"/?deviceid=\" + deviceId;\n },\n );\n } else {\n window.location = \"/?deviceid=\" + deviceId;\n }\n };\n\n};\n\nexport default logout;\n","import LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport logOut from \"@common/components/helpers/logout\";\n\n/**\n * Generic Error Handler for failed API requests\n * @param {AxiosError} error\n */\n\nexport const handleError = (\n error,\n title = \"Error\",\n message =\n \"There was an error completing your request to the server, please try again.\",\n onClose = () => {},\n) => {\n if (error.response) {\n if (error.response.status === 401) {\n message =\n \"There was an error authenticating your login session, please login again.\";\n onClose = () => logOut();\n } else {\n if (\n typeof error.response.data === \"string\" &&\n error.response.data.length > 0\n ) {\n message = error.response.data;\n } else {\n if (\n error.response.data.detail && error.response.data.detail.length > 0\n ) {\n message = error.response.data.detail;\n }\n }\n }\n }\n\n const titleWithStatus = `${title}: ${error?.response?.status}`;\n\n LoadingAction.set(false).then(() =>\n AlertModalAction.open(\n message,\n titleWithStatus,\n error?.response?.status == 401\n ? () => window.location = \"/?expired=1\"\n : onClose,\n )\n );\n};\n","import LoginAction from \"@common/redux/actions/LoginAction\";\nimport { useSelector } from \"react-redux\";\n\nfunction useLogin() {\n return [\n useSelector((state) => LoginAction.getStatePath(state)),\n LoginAction.dispatch,\n ];\n}\n\nexport default useLogin;\n","import mime from \"mime-types\";\n\nexport const newFile = (data, fileName, contentType) => {\n const blob = new Blob([data], { type: contentType });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n};\n\nexport const handleDownload = (response) => {\n const contentType = response.headers[\"content-type\"];\n const contentDisposition = response.headers[\"content-disposition\"];\n\n const extension = mime.extension(contentType) || \"pdf\";\n const name = contentDisposition.split(\"filename=\")[1].split(\";\")[0].replace(\n /^\"|\"$/g,\n \"\",\n ) || `Report.${extension}`;\n\n newFile(response.data, name, contentType);\n};\n","import ComplianceClient from \"@common/api/ComplianceClient\";\nimport useComplianceSummaryFilters from \"./useComplianceSummaryFilters\";\nimport useComplianceView from \"./useComplianceView\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { useCallback } from \"react\";\nimport { handleDownload } from \"@common/components/helpers/downloads\";\nimport { useSelector } from \"react-redux\";\nimport useOrganisationTreeSelections from \"./useOrganisationTreeSelections.js\";\n\nexport default function useEventDetailsGrid() {\n const {\n eventsGrid,\n operator,\n eventsGridLoading,\n setViewData,\n hasSelection,\n eventsGridActiveRow,\n } = useComplianceView();\n\n const { allNames, filters } = useSelector((state) =>\n state.complianceSummaryTab\n );\n\n const [{ isInReadMode }, dispatchLogin] = useLogin();\n const siteIds = useOrganisationTreeSelections(\"complianceFilters\");\n\n const onRowClick = useCallback(\n (eventsGridActiveRow) => {\n setViewData({ eventsGridActiveRow });\n dispatchLogin({ isInReadMode: true });\n },\n [setViewData],\n );\n\n const onRefresh = (returnCsv = false, keepActiveRow = true) => {\n if (!hasSelection || !operator || !isInReadMode) {\n return;\n }\n\n const onReturnGrid = ({ statusCounts, data, totalRecords }) => {\n setViewData({\n totalRecords,\n statusCounts,\n eventsGrid: data,\n eventsGridActiveRow: keepActiveRow\n ? data.find((x) => x.id === eventsGridActiveRow?.id)\n : null,\n });\n };\n\n const onReturnCsv = (response) => handleDownload(response);\n\n setViewData({\n eventsGridLoading: true,\n });\n ComplianceClient.getEventDetails({\n ...filters,\n siteIds,\n allNames,\n returnCsv,\n })\n .then(\n returnCsv ? onReturnCsv : onReturnGrid,\n (error) => {\n console.log(error);\n handleError(error);\n },\n ).finally(() => setViewData({ eventsGridLoading: false }));\n };\n\n return {\n activeRow: eventsGridActiveRow,\n grid: eventsGrid,\n gridLoading: eventsGridLoading,\n onRefresh,\n onRowClick,\n };\n}\n","import React from 'react';\nimport { Button, Label } from 'semantic-ui-react';\nimport useEventDetailsStatuses from '@hooks/useEventDetailsStatuses';\nimport useComplianceView from '@hooks/useComplianceView';\n\nconst EventDetailsStatuses = () => {\n\n const { isLoading } = useComplianceView();\n const { onStatusChange, selectedStatuses, status, statusCounts } = useEventDetailsStatuses();\n\n return (\n \n {status.map((label, index) => {\n return (\n onStatusChange(label)}\n style={{ border: \"1px solid\" }}\n >\n {label.name}\n {statusCounts[index]?.count ?? 0}\n \n );\n })}\n \n )\n}\n\nexport default EventDetailsStatuses;\n","import useComplianceView from \"./useComplianceView\";\n\nexport default function useEventDetailsStatuses() {\n\n const { filters, filters: { status, selectedStatuses }, statusCounts, setViewData } = useComplianceView();\n\n const onStatusChange = ({ id }) => {\n\n const newStatuses = [...selectedStatuses];\n\n console.log(id, newStatuses.filter(x => x !== id));\n\n if (newStatuses.includes(id)) {\n setViewData({ filters: { ...filters, selectedStatuses: newStatuses.filter(x => x !== id) } });\n } else {\n selectedStatuses.push(id);\n setViewData({ filters: { ...filters, selectedStatuses } });\n }\n\n\n\n // setViewData({ statuses: newStatuses })\n }\n\n return {\n status,\n statusCounts,\n selectedStatuses,\n onStatusChange\n }\n}\n","import BaseAction from \"./BaseAction\";\nimport CustomerInteractionReducer from \"../reducers/CustomerInteractionReducer\";\n\nclass CustomerInteractionAction extends BaseAction {\n onClose = () => {};\n\n onCreateCustomer = () => {};\n\n editCustomer = (value) => {\n this.dispatch({ customer: [value] });\n };\n\n removeCustomer = () => {\n this.dispatch({ customer: null });\n };\n}\n\nconst action = new CustomerInteractionAction(CustomerInteractionReducer);\n\nexport default action;\n","import CustomerFormReducer from \"@common/redux/reducers/CustomerFormReducer\";\nimport BaseAction from \"@common/redux/actions/BaseAction\";\n\nclass CustomerFormAction extends BaseAction {\n setLoadingCustomers = async (value) =>\n await this.dispatch({ loadingCustomers: value });\n}\n\nconst action = new CustomerFormAction(CustomerFormReducer);\n\nexport default action;\n","import * as yup from \"yup\";\nimport { validateDate, validateTime } from \"../datetime\";\n\n// Define the validation schema using yup\nexport const customerInteractionSchema = yup.object().shape({\n searchedCustomer: yup.string().notRequired(),\n customer: yup.object().required(\n \"Selected customer is required\",\n ),\n\n isCustomerVulnerable: yup.boolean(),\n isCustomerOk: yup.boolean(),\n customerUnknown: yup.boolean(),\n\n reason: yup.number(\"Please select a reason\").when(\"isCustomerVulnerable\", {\n is: true,\n then: (schema) => schema.required(\"Reason for interaction is required\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n\n outcome: yup.number(\"Please select an outcome\").when(\"isCustomerVulnerable\", {\n is: true,\n then: (schema) => schema.required(\"Outcome is required\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n otherOutcomeDescription: yup.string().when(\"outcome\", {\n is: (outcome) => outcome === 4,\n then: (schema) => schema.required(\"Outcome description is required\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n\n providedLeaflet: yup.boolean().when(\"isCustomerOk\", {\n is: true,\n then: (schema) => schema.nullable(),\n otherwise: (schema) =>\n schema.required(\"Please specify whether or not leaflet was provided\"),\n }),\n reasonNotProvidedLeaflet: yup.string().when([\n \"isCustomerOk\",\n \"providedLeaflet\",\n ], {\n is: (x, y) => !x && !y,\n then: (schema) =>\n schema.required(\n \"Please provide the reason why not provide a safer gambling leaflet?\",\n ),\n otherwise: (schema) => schema.notRequired(),\n }),\n\n seekHelp: yup.boolean().when(\"isCustomerOk\", {\n is: true,\n then: (schema) => schema.nullable(),\n otherwise: (schema) =>\n schema.required(\n \"Please specify whether or not how to seek help was explained\",\n ),\n }),\n reasonNotSeekHelp: yup.string().when([\"isCustomerOk\", \"seekHelp\"], {\n is: (x, y) => !x && !y,\n then: (schema) =>\n schema.required(\n \"Please provide the reason why not explain how to seek help?\",\n ),\n otherwise: (schema) => schema.notRequired(),\n }),\n\n discussedSelfExclusion: yup.boolean().when(\"isCustomerOk\", {\n is: true,\n then: (schema) => schema.nullable(),\n otherwise: (schema) =>\n schema.required(\n \"Please specify whether or not self-exclusion was discussed\",\n ),\n }),\n reasonNotDiscussedSelfExclusion: yup.string().when([\n \"isCustomerOk\",\n \"discussedSelfExclusion\",\n ], {\n is: (x, y) => !x && !y,\n then: (schema) =>\n schema.required(\n \"Please provide the reason why not explain self-exclusion process?\",\n ),\n otherwise: (schema) => schema.notRequired(),\n }),\n\n selfExclude: yup.boolean().when([\"isCustomerOk\", \"discussedSelfExclusion\"], {\n is: (x, y) => !x && y,\n then: (schema) =>\n schema.required(\n \"Please specify whether or not the customer wish to self-exclude\",\n ),\n otherwise: (schema) => schema.nullable(),\n }),\n reasonNotSelfExclude: yup.string().when([\n \"isCustomerOk\",\n \"discussedSelfExclusion\",\n \"selfExclude\",\n ], {\n is: (x, y, z) => !x && y && !z,\n then: (schema) =>\n schema.required(\n \"Please provide the reason why not wish to self-exclude?\",\n ),\n otherwise: (schema) => schema.notRequired(),\n }),\n reviewDate: yup.string().when([\"outcome\"], {\n is: (outcome) => outcome === 6 || outcome === 7,\n then: (schema) =>\n schema.required(\"Date is required\")\n .test(\n \"is-valid-date\",\n \"Review date is not valid\",\n validateDate,\n ),\n otherwise: (schema) => schema.nullable(),\n }),\n\n setReminder: yup\n .boolean()\n .required(\"Please choose whether to set a reminder or not.\"),\n\n reminderDate: yup.string().when(\"setReminder\", {\n is: true,\n then: (schema) =>\n schema\n .required(\"Date is required\")\n .test(\"is-valid-date\", \"Reminder date is not valid\", validateDate),\n otherwise: (schema) => schema.notRequired(),\n }),\n reminderTime: yup.string().when(\"setReminder\", {\n is: true,\n then: (schema) =>\n schema\n .required(\"Time is required\")\n .test(\"is-valid-time\", \"Reminder time is not valid\", validateTime),\n otherwise: (schema) => schema.notRequired(),\n }),\n\n comments: yup.string().notRequired(),\n});\n","import LoadingAction from \"../../redux/actions/LoadingAction\";\n\nexport const handleReset = (...functions) => {\n LoadingAction.set(true)\n .then(() => handleResetFunctions(...functions))\n .finally(() => LoadingAction.set(false));\n};\n\nexport const handleResetFunctions = (...functions) => {\n // Execute each function in the order they were passed\n functions.forEach((fn) => {\n if (typeof fn === \"function\") {\n fn();\n }\n });\n};\n","import { useForm } from \"react-hook-form\";\nimport { useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { customerInteractionSchema } from \"@common/components/helpers/validation-schemas/customerInteractionSchema\";\nimport CustomerInteractionAction from \"@common/redux/actions/CustomerInteractionAction\";\nimport { handleReset } from \"@common/components/helpers/reset\";\n\nconst useCustomerInteraction = () => {\n const customerInteractionData = useSelector(state => CustomerInteractionAction.getStatePath(state));\n const history = useHistory();\n\n const methods = useForm({\n resolver: yupResolver(customerInteractionSchema),\n defaultValues: customerInteractionData,\n mode: \"all\",\n });\n\n const handleBack = () => {\n handleReset(methods.reset, CustomerInteractionAction.reset);\n history.push(\"/compliance\");\n };\n\n return {\n methods,\n handleBack,\n };\n};\n\nexport default useCustomerInteraction;\n","import ApiClient from \"@common/api/ApiClient\";\n\n/**\n * Class representing a client for customer interactions.\n * Extends the ApiClient to provide specific functionalities for API requests.\n *\n * @extends ApiClient\n */\nclass CustomerInteractionClient extends ApiClient {\n /**\n * Create a CustomerInteractionClient.\n * Initializes the API client with the \"CustomerInteraction\" route and sets the API URL key.\n */\n constructor() {\n super(\"CustomerInteraction\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n MetaData = async (payload) => await this.get(\"Create\", payload);\n\n Create = async (payload) => await this.post(\"Create\", payload);\n\n Search = async (payload = {}) => await this.post(\"Search\", payload);\n\n ReadForUpdate = async (id) => await this.get(`Update?id=${id}`);\n Read = async (id) => {\n const record = await this.get(`Read?id=${id}`);\n return { record }\n }\n\n Update = async (payload) => await this.post(\"Update\", payload);\n}\n\nconst client = new CustomerInteractionClient();\n\nexport default client;\n","import CustomerIncidentReducer from \"@common/redux/reducers/CustomerIncidentReducer\";\nimport BaseAction from \"@common/redux/actions/BaseAction\";\n\nclass CustomerIncidentAction extends BaseAction { }\n\nconst action = new CustomerIncidentAction(CustomerIncidentReducer);\n\nexport default action;\n","import BaseAction from \"./BaseAction\";\nimport SuspiciousActivityReducer from \"../reducers/SuspiciousActivityReducer\";\n\nclass SuspiciousActivityAction extends BaseAction {\n onClose = () => { };\n\n reset = () => {\n const { machines } = this.data();\n this.dispatch({ ...this.reducer.initialState, machines });\n };\n\n open = async (data) => await this.dispatch({ ...data, open: true });\n\n addSuspect = (value) => {\n const { suspectsTable } = this.data();\n this.dispatch({ suspectsTable: [...suspectsTable, value] });\n };\n\n setSuspects = (values) => {\n this.dispatch({ suspectsTable: values });\n };\n}\n\nconst action = new SuspiciousActivityAction(SuspiciousActivityReducer);\n\nexport default action;\n","import OfficerReducer from \"../reducers/OfficerReducer\";\nimport BaseAction from \"./BaseAction\";\n\nclass OfficerFormAction extends BaseAction {\n setLoadingOfficers = async (value) =>\n await this.dispatch({ loadingOfficers: value });\n\n setLoadingPoliceId = async (value) =>\n await this.dispatch({ loadingPoliceId: value });\n\n editOfficer = async (value) => {\n await this.dispatch({ officer: value });\n };\n}\n\nconst action = new OfficerFormAction(OfficerReducer);\n\nexport default action;\n","import BaseAction from \"./BaseAction\";\nimport ObservationsReducer from \"@common/redux/reducers/ObservationsReducer\";\n\nclass ObservationsAction extends BaseAction {\n onClose = () => { };\n\n open = async (data) => await this.dispatch({ ...data, open: true });\n}\n\nconst action = new ObservationsAction(ObservationsReducer);\n\nexport default action;\n","import LinkSessionReducer from \"../reducers/LinkSessionReducer\";\nimport BaseAction from \"./BaseAction\";\n\nclass LinkSessionAction extends BaseAction {\n toggleLinkSession = (row) => {\n const { linkedSessionData } = this.data();\n const isSelected = linkedSessionData.find((x) =>\n x.sessionId === row.sessionId\n );\n if (isSelected) {\n const updatedData = linkedSessionData.filter((x) =>\n x.sessionId !== row.sessionId\n );\n this.dispatch({\n linkedSessionData: updatedData,\n });\n } else {\n this.dispatch({\n linkedSessionData: [...linkedSessionData, row],\n });\n }\n };\n\n onOptionChange = (newData) => {\n this.dispatch({ linkedSessionData: newData });\n };\n\n removeSelectedSessions = (sessionToBeDeleted) => {\n const { linkedSessionData } = this.data();\n const updatedData = linkedSessionData.filter((x) =>\n !sessionToBeDeleted.includes(x)\n );\n this.dispatch({ linkedSessionData: updatedData });\n return updatedData;\n };\n}\n\nconst action = new LinkSessionAction(LinkSessionReducer);\n\nexport default action;\n","import moment from \"moment\";\nimport CustomerIncidentAction from \"@common/redux/actions/CustomerIncidentAction\";\nimport CustomerInteractionAction from \"@common/redux/actions/CustomerInteractionAction\";\nimport SuspiciousActivityAction from \"@common/redux/actions/SuspiciousActivityAction\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport ObservationsAction from \"@common/redux/actions/ObservationsAction\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\n\n// @TODO: migrate dates helper from cms desktop to common\nexport const UIDateFormat = \"DD-MM-YYYY\";\nexport const UITimeFormat = \"HH:mm\";\nexport const ComplianceAPIDateFormat = \"YYYY-MM-DD\";\n\nexport function prepareCustomers(incidentDetails) {\n const customers = [\n incidentDetails.customer ? [incidentDetails.customer] : null,\n incidentDetails.customers,\n [],\n ].find((item) => item !== null && typeof item !== \"undefined\");\n\n return customers.map((customer) => prepareCustomer(customer));\n}\n\nexport function prepareDateTime(date) {\n const parsed = moment(date);\n\n if (!parsed.isValid()) {\n return [\n null,\n null,\n ];\n }\n return [\n parsed.format(\"YYYY-MM-DD\"),\n parsed.format(\"HH:mm\"),\n ];\n}\n\nexport function prepareCustomer(customer) {\n const { gender, ageRange, height, build, ethnicity, features } = customer;\n const keys = [gender, ageRange, height, build, ethnicity];\n return {\n ...customer,\n features: `${keys.map((x) => x.name).join(\", \")}, ${features}`,\n };\n}\n\nexport function parseCustomerInteractionResponse(record) {\n const {\n customer,\n reason,\n outcome,\n reasonNotSeekingHelp,\n reviewDate,\n endDateOfBreak,\n } = record;\n const [reminderDate, reminderTime] = prepareDateTime(reviewDate);\n\n CustomerInteractionAction.dispatch({ customer: [prepareCustomer(customer)] });\n\n return {\n ...record,\n reason: reason?.id,\n isCustomerVulnerable: true,\n reasonNotSeekHelp: reasonNotSeekingHelp,\n isCustomerOk: outcome?.customerOk,\n outcome: outcome?.id,\n setReminder: reviewDate !== null,\n reviewDate: moment(endDateOfBreak).format(ComplianceAPIDateFormat),\n reminderDate,\n reminderTime,\n };\n}\n\nexport function parseObservationResponse(record) {\n const { moods, behaviour, sessionId, customer } = record;\n const [reminderDate, reminderTime] = prepareDateTime(record.reminderDate);\n const [observationDate, observationTime] = prepareDateTime(\n record.observationDate,\n );\n const linkSession = ![0, null].includes(record.sessionId);\n\n LinkSessionAction.reset().then(() =>\n LinkSessionAction.dispatch({ sessionId })\n );\n ObservationsAction.dispatch({\n record,\n customer: [prepareCustomer(customer)],\n });\n return {\n ...record,\n linkSession,\n linkSessionEnabled: linkSession,\n sessionId: record.sessionId,\n reminderDate,\n reminderTime,\n observationDate,\n observationTime,\n observation: behaviour,\n customerMood: moods.map((x) => x.id),\n setReminder: reminderDate !== null,\n };\n}\n\nexport function parseAgeVerificationResponse(response) {\n const { dateOfBirth } = response;\n const [date, time] = prepareDateTime(response);\n return {\n ...response,\n time,\n date,\n dateOfBirth: moment(dateOfBirth).format(ComplianceAPIDateFormat),\n };\n}\n\nexport function parseSelfExclusionResponse(\n { record },\n) {\n const [date, time] = prepareDateTime(record.selfExclusionDate);\n return {\n ...record,\n date,\n time,\n };\n}\n\nexport function parseCustomerIncidentResponse(response) {\n const {\n id,\n rowVersion,\n incidentDetails: {\n customers,\n customerIncidentType,\n ambulanceDetails,\n ambulanceCalled,\n fireServiceCalled,\n policeCalled,\n anyoneInjured,\n customerIncidentDetails,\n detailsOfInjured,\n capturedByCctv,\n emergencyServicesAttended,\n timeEmergencyServicesCalled,\n timeEmergencyServicesArrived,\n incidentNumber,\n officer,\n },\n } = response;\n\n const esTypes = [];\n\n if (ambulanceCalled) {\n esTypes.push(\"ambulance\");\n }\n\n if (policeCalled) {\n esTypes.push(\"police\");\n }\n\n if (fireServiceCalled) {\n esTypes.push(\"fire\");\n }\n\n const [date, time] = prepareDateTime(response.incidentDate);\n\n OfficerAction.dispatch({ officer });\n CustomerIncidentAction.dispatch({\n customers: customers.map((customer) => prepareCustomer(customer)),\n });\n return {\n id,\n rowVersion,\n date,\n time,\n officer,\n customerIncidentType: customerIncidentType,\n capturedByCctv,\n injuries: anyoneInjured,\n injuryDetails: detailsOfInjured ?? \"\",\n description: customerIncidentDetails,\n esCalled: emergencyServicesAttended,\n allowFuture: true,\n timeServicesContacted: formatTime(timeEmergencyServicesCalled),\n timeServicesArrived: formatTime(timeEmergencyServicesArrived),\n ambulanceDetails: ambulanceDetails ?? \"\",\n incidentNumber: incidentNumber ?? \"\",\n esTypes,\n customers,\n };\n}\n\nexport function parseEnforcementVisitResponse(response) {\n const { incidentDate, incidentDetails, incidentDetails: { officer } } =\n response;\n\n OfficerAction.dispatch({ officer });\n\n const [date, time] = prepareDateTime(incidentDate);\n return {\n ...response,\n ...incidentDetails,\n date,\n time,\n officerTypeId: incidentDetails.enforcementVisitType.id,\n visitDetails: incidentDetails.visitDetails,\n };\n}\n\nexport function parseGamblingDisputeResponse(response) {\n const { record: { id, rowVersion, incidentDate, incidentDetails } } =\n response;\n const [date, time] = prepareDateTime(incidentDate);\n\n const linkSession = ![0, null].includes(incidentDetails.sessionId);\n return {\n id,\n rowVersion,\n ...incidentDetails,\n linkSession,\n linkSessionEnabled: linkSession,\n sessionIds: incidentDetails.sessionIds,\n date,\n time,\n type: incidentDetails.gamblingDisputeType.id,\n machine: incidentDetails.machine,\n description: incidentDetails.gamblingDisputeDetails,\n cctvCatched: incidentDetails.capturedByCCTV,\n phoneNumberEdit: incidentDetails.customer.phoneNumber,\n emailAddressEdit: incidentDetails.customer.emailAddress,\n };\n}\n\nexport function parseSuspiciousActivityResponse(response) {\n const [date, time] = prepareDateTime(response.incidentDate);\n const {\n incidentDetails,\n incidentDetails: { customers, officer },\n id,\n rowVersion,\n } = response;\n\n const linkSession = incidentDetails.sessionIds.length > 0;\n\n SuspiciousActivityAction.dispatch({\n suspectsTable: customers.map((customer) => prepareCustomer(customer)),\n });\n OfficerAction.dispatch({ officer });\n\n return {\n ...incidentDetails,\n id,\n rowVersion,\n activityType: incidentDetails.suspiciousActivityType.id,\n machine: incidentDetails.machine,\n description: incidentDetails.suspiciousActivityDetails,\n date,\n time,\n linkSession,\n linkSessionEnabled: linkSession,\n sessionIds: incidentDetails.sessionIds,\n dateServicesContact: moment(incidentDetails.policeContactedDateTime).format(\n UIDateFormat,\n ),\n timeServicesContacted: formatTime(incidentDetails.policeContactedDateTime),\n timeServicesArrived: formatTime(incidentDetails.policeArrivedDateTime),\n cctvCatched: incidentDetails.capturedByCctv,\n suspects: incidentDetails.customers,\n suspectIds: incidentDetails.customers.map((x) => x.id),\n allowFuture: true,\n };\n}\n\nconst formatTime = (time) => moment(time).format(UITimeFormat);\n","import { useFormContext } from \"react-hook-form\";\nimport { useHistory } from \"react-router-dom\";\n\n// API Clients\nimport CustomerInteractionClient from \"@common/api/CustomerInteractionClient\";\n\n// Actions\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport CustomerInteractionAction from \"@common/redux/actions/CustomerInteractionAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\n\n// Helpers\nimport {\n customerInteractionCreatePayload,\n} from \"@common/components/helpers/CustomerInteraction/customerInteractionSubmission\";\nimport {\n handleReset,\n handleResetFunctions,\n} from \"@common/components/helpers/reset\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\nconst useCustomerInteractionForm = () => {\n const history = useHistory();\n const methods = useFormContext();\n const [{ isDesktop }] = useLogin();\n const {\n watch,\n reset,\n formState: { errors, isValid },\n } = methods;\n const isCustomerVulnerable = watch(\"isCustomerVulnerable\");\n\n const resetActions = [reset, CustomerInteractionAction.reset];\n const resetForm = () => handleReset(...resetActions);\n\n const onSubmit = (data) => {\n\n const { siteGuid } = LoginAction.data();\n if (!isValid) {\n console.error(errors);\n return;\n }\n const payload = customerInteractionCreatePayload(data, siteGuid);\n\n const fnSubmit = isDesktop ? CustomerInteractionClient.Update : CustomerInteractionClient.Create\n\n LoadingAction.set(true).then(() =>\n fnSubmit(payload).then(response => {\n AlertModalAction.open(\n \"The customer interaction was successfully submitted!\",\n \"Success\",\n isDesktop ?\n () => { }\n :\n () => history.push('/compliance')\n )\n\n if (!isDesktop) {\n handleResetFunctions(...resetActions);\n } else {\n methods.setValue(\"rowVersion\", response.rowVersion)\n LoginAction.dispatch({ isInReadMode: true })\n }\n }).catch((error) => {\n handleError(\n error,\n \"Error\",\n \"There is an error submitting customer interaction.\",\n );\n }).finally(() => LoadingAction.set(false))\n );\n };\n\n return { methods, isCustomerVulnerable, onSubmit, resetForm };\n};\n\nexport default useCustomerInteractionForm;\n","import { getDateTimeNow } from \"@common/components/helpers/datetime\";\nimport { convertToIsoDateTime } from \"../datetime\";\n\nexport const customerInteractionCreatePayload = (data, siteGuid) => {\n const { customer } = data;\n return {\n ...data,\n interactionDate: getDateTimeNow(),\n endDateOfBreak: data.reviewDate ? `${data.reviewDate}T00:00:00Z` : null,\n providedLeaflet: data.providedLeaflet ?? false,\n seekHelp: data.seekHelp ?? false,\n selfExclude: data.selfExclude ?? false,\n discussedSelfExclusion: data.discussedSelfExclusion ?? false,\n customerId: data.customer.id ? data.customer.id : 0,\n otherOutcome: data.otherOutcome,\n reasonNotProvidedLeaflet: data.reasonNotProvidedLeaflet,\n reasonNotSeekingHelp: data.reasonNotSeekHelp,\n reasonNotDiscussedSelfExclusion: data.reasonNotDiscussedSelfExclusion,\n reasonNotSelfExclude: data.reasonNotSelfExclude,\n reviewDate: data.setReminder\n ? convertToIsoDateTime(data.reminderDate, data.reminderTime)\n : null,\n comments: data.comments,\n outcome: {\n id: data.outcome,\n name: \"\",\n customerOk: true,\n },\n reason: {\n id: data.reason,\n name: \"\",\n },\n site: {\n guid: siteGuid,\n id: 0,\n },\n customer: customer.id ? null : {\n ...customer,\n address1: \"\",\n address2: \"\",\n town: \"\",\n postcode: \"\",\n },\n };\n};\n","import InteractionOptionsReducer from \"@common/redux/reducers/InteractionOptionsReducer\";\nimport BaseAction from \"@common/redux/actions/BaseAction\";\n\nclass InteractionOptionsAction extends BaseAction {\n setLoadingOptions = async (value) =>\n await this.dispatch({ loadingOptions: value });\n}\n\nconst action = new InteractionOptionsAction(InteractionOptionsReducer);\n\nexport default action;\n","import CustomerInteractionClient from \"@common/api/CustomerInteractionClient\";\nimport InteractionOptionsAction from \"@common/redux/actions/InteractionOptionsAction\";\nimport { handleError } from \"@common/components/helpers/error\";\n\nexport const fetchInteractionOptions = () => {\n InteractionOptionsAction.setLoadingOptions(true)\n .then(() =>\n CustomerInteractionClient.MetaData()\n .then((response) => {\n // console.table(response);\n InteractionOptionsAction.dispatch({\n customerInteractionOptions: response,\n });\n })\n .catch((error) => {\n console.error(error);\n handleError(error);\n })\n .finally(() => {\n InteractionOptionsAction.setLoadingOptions(false);\n })\n );\n};\n","import { useEffect, useState } from \"react\";\n\nexport const useWindowWidth = () => {\n const [width, setWidth] = useState(window.innerWidth);\n\n useEffect(() => {\n const handleResize = () => setWidth(window.innerWidth);\n\n window.addEventListener(\"resize\", handleResize);\n\n // Cleanup the event listener on component unmount\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return width;\n};\n","import React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { Button, Form, Label } from \"semantic-ui-react\";\n\nimport { useWindowWidth } from \"@common/components/helpers/useWindowWidth\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n/**\n * Toggle component for selecting if something is Yes or No.\n *\n * @typedef {object} ToggleProps\n * @property {function} control - Control function from react-hook-form.\n * @property {string} name - The name of the field.\n * @property {Function} [handleTrue = () => {}] - A function to run on true toggle.\n * @property {Function} [handleFalse = () => {}] - A function to run on false toggle.\n * @property {string} [label=''] - The label text to display.\n * @property {Object} [error=null] - Object containing validation error.\n * @property {string} [fieldStyle='flex-between flex-row-center my-1'] - The style of the field.\n * @property {string} [labelStyle='p-0'] - The style of the label.\n * @property {string} [buttonsContainerStyle=''] - The style of the buttons container.\n *\n * @param {ToggleProps} props\n * @returns {JSX.Element} The rendered toggle component.\n */\nexport default function ToggleComponent({\n control,\n name,\n handleTrue = () => {},\n handleFalse = () => {},\n label = \"\",\n error = null,\n fieldStyle = \"flex-between flex-row-center my-1\",\n labelStyle = \"p-0\",\n buttonsContainerStyle = \"\",\n}) {\n const width = useWindowWidth();\n\n const [{ isInReadMode }] = useLogin();\n\n return (\n (\n <>\n \n \n
\n {\n onChange(true);\n handleTrue();\n }}\n type=\"button\"\n positive={value === true}\n disabled={isInReadMode}\n >\n Yes\n \n {\n onChange(false);\n handleFalse();\n }}\n type=\"button\"\n positive={value === false}\n disabled={isInReadMode}\n >\n No\n \n
\n
\n \n {error && }\n \n \n )}\n />\n );\n}\n","import React from \"react\";\nimport { Form, Label } from \"semantic-ui-react\";\n\n/**\n * InputComponent renders an input field with validation.\n *\n * @typedef {object} InputProps\n * @property {string} name - Name of the input field.\n * @property {string} [label=''] - Label of the input field.\n * @property {string} [labelClass=''] - Class name of the Label.\n * @property {string} [placeholder=''] - Placeholder text of the input field.\n * @property {string} [type='text'] - Input type of the input field.\n * @property {Function} register - Function to register the input field for form\n * @property {Object} [error=null] - Object containing validation error.\n * @property {Function} handleChange - Callback function when input changes.\n * @property {Function} handleFocus - Callback function when input focuses.\n * @property {Function} handleBlur - Callback function when input blurs.\n * @property {string} [fieldStyle='flex-between flex-row-center'] - Style for Form.Field.\n * @property {string} [selectContainerStyle='w-100'] - Style for toggle buttons container.\n *\n * @component\n * @param {InputProps} props - The component props.\n * @returns {JSX.Element} The rendered input field with validation.\n */\nexport default function InputComponent({\n name,\n register,\n handleChange,\n}) {\n return (\n {\n handleChange();\n },\n })}\n type='hidden'\n />\n );\n}\n","\nimport React from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport HiddenComponent from \"@common/components/shared/forms/HiddenComponent\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\nexport const StandardHiddenInputs = () => {\n\n const [{ siteGuid }] = useLogin();\n\n const methods = useFormContext();\n const { register } = methods;\n return (\n <>\n \n \n \n \n )\n}\n\nexport default StandardHiddenInputs;\n","import useLogin from \"@common/components/hooks/useLogin\";\nimport React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { Form, Label } from \"semantic-ui-react\";\n\n/**\n * SelectComponent renders a select field with validation.\n *\n * @typedef {object} SelectProps\n * @property {string} name - Name of the select field.\n * @property {string} [label=''] - Label of the select field.\n * @property {string} placeholder - Placeholder text of the select field.\n * @property {Function} control - Function to control the select field for form\n * @property {Object} [error=null] - Object containing validation error.\n * @property {array} options - Options for the select component.\n * @property {boolean} [loading=false] - Loading flag for the select component.\n * @property {string} [labelStyle='w-30'] - Style for the label.\n * @property {string} [fieldStyle='flex-between flex-row-center'] - Style for Form.Field.\n * @property {string} [selectContainerStyle='w-100'] - Style for select container.\n * @property {number} [selectWidth=16] - Width of the Form.Select component.\n *\n * @component\n * @param {SelectProps} props - The component props.\n * @returns {JSX.Element} The rendered select form component with validation.\n */\nexport default function SelectComponent({\n name,\n label = \"\",\n placeholder,\n control,\n error = null,\n options,\n loading = false,\n labelStyle = \"w-30\",\n fieldStyle = \"flex-between flex-row-center\",\n selectContainerStyle = \"w-100\",\n selectWidth = 16,\n}) {\n\n const [{ isInReadMode }] = useLogin();\n return (\n \n {label && }\n
\n {\n if (isInReadMode) {\n const readValue = value?.name ?? options.find(x => {\n return (x.value && x.value == value) || (x.id && x.id == value) || (x.value && value?.value && x.value == value.value) || (x.id && value.id && x.id == value.id)\n })?.text\n\n return \n }\n\n return (\n {\n onChange(value);\n }}\n width={selectWidth}\n />\n );\n }}\n />\n {error && (\n \n )}\n
\n
\n );\n}\n","export const genders = [\n { id: 1, name: \"male\" },\n { id: 2, name: \"female\" },\n { id: 3, name: \"other\" },\n];\n\nexport const ageRanges = [\n { id: 1, name: \"21-30\" },\n { id: 2, name: \"30-60\" },\n { id: 3, name: \"60+\" },\n];\n\nexport const heights = [\n { id: 1, name: \"short\" },\n { id: 2, name: \"medium\" },\n { id: 3, name: \"tall\" },\n];\n\nexport const builds = [\n { id: 1, name: \"thin\" },\n { id: 2, name: \"medium\" },\n { id: 3, name: \"large\" },\n];\n\nexport const hairs = [\n { id: 1, name: \"blonde\" },\n { id: 2, name: \"brown\" },\n { id: 3, name: \"black\" },\n { id: 4, name: \"grey\" },\n { id: 5, name: \"other\" },\n];\n\nexport const ethnicity = [\n { id: 1, name: \"white-british\" },\n { id: 2, name: \"white-traveller\" },\n { id: 3, name: \"white-european\" },\n { id: 4, name: \"black\" },\n {\n id: 5,\n name: \"asian-indian-pakistani-bangladeshi\",\n },\n { id: 6, name: \"asian-chinese\" },\n { id: 7, name: \"arab\" },\n { id: 8, name: \"other\" },\n];\n\nexport const identityFormOptionsDefaults = {\n ageRanges: ageRanges,\n builds: builds,\n ethnicity: ethnicity,\n genders: genders,\n hair: hairs,\n heights: heights,\n};\n","import { identityFormOptionsDefaults } from \"@common/components/helpers/options/identityOptions\";\nimport BaseReducer from \"./BaseReducer\";\n\nclass IdentityFormModalReducer extends BaseReducer {\n domain = \"IdentityForm\";\n type = \"Modal\";\n\n initialState = {\n loadingIdentityOptions: false,\n open: false,\n title: \"Add person\",\n hideName: false,\n optionalName: true,\n showContacts: false,\n searchQuery: \"\",\n identityFormData: {\n name: null,\n gender: null,\n ageRange: null,\n height: null,\n build: null,\n hair: null,\n ethnicity: null,\n phoneNumber: \"\",\n emailAddress: \"\",\n },\n identityData: {\n id: \"\",\n name: \"\",\n features: \"\",\n },\n identityFormOptions: identityFormOptionsDefaults,\n };\n}\n\nconst reducer = new IdentityFormModalReducer();\n\nexport default reducer;\n","import ApiClient from \"@common/api/ApiClient\";\n\n/**\n * Class representing a client for customer interactions.\n * Extends the ApiClient to provide specific functionalities for API requests.\n *\n * @extends ApiClient\n */\nclass CustomerClient extends ApiClient {\n /**\n * Create a CustomerInteractionClient.\n * Initializes the API client with the \"CustomerInteraction\" route and sets the API URL key.\n */\n constructor() {\n super(\"Customer\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n MetaData = async () => await this.get(\"Create\");\n\n Create = async (payload) => await this.post(\"Create\", payload);\n\n UpdateMetaData = async (id) => await this.get(`Update?id=${id}`);\n\n Search = async (\n payload = {\n ageRangeId: null,\n buildId: null,\n ethnicityId: null,\n genderId: null,\n hairId: null,\n heightId: 1,\n features: null,\n postcode: \"Post\",\n phoneNumber: null,\n emailAddress: null,\n address1: null,\n address2: null,\n town: null,\n id: null,\n name: null,\n description: null,\n lastUpdated: null,\n lastUpdatedTo: null,\n lastUpdatedFrom: null,\n isDisabled: null,\n foreignPK: null,\n },\n ) => await this.post(\"Search\", payload);\n}\n\nconst client = new CustomerClient();\n\nexport default client;\n","import { handleError } from \"@common/components/helpers/error\";\nimport CustomerClient from \"@common/api/CustomerClient\";\nimport IdentityFormModalAction from \"@common/redux/actions/IdentityFormModalAction\";\n\nconst fetchIdentityOptions = () => {\n IdentityFormModalAction.setLoadingIdentityOptions(true).then(() =>\n CustomerClient.MetaData().then((response) => {\n IdentityFormModalAction.dispatch({ identityFormOptions: response });\n })\n .catch((error) => {\n console.error(error);\n handleError(error);\n })\n .finally(() => IdentityFormModalAction.setLoadingIdentityOptions(false))\n );\n};\n\nexport default fetchIdentityOptions;\n","import IdentityFormModalReducer from \"@common/redux/reducers/IdentityFormModalReducer\";\nimport fetchIdentityOptions from \"@common/components/helpers/Customer/fetchIdentityOptions\";\nimport BaseAction from \"./BaseAction\";\n\nclass IdentityFormModalAction extends BaseAction {\n onClose = () => {};\n\n onSubmit = async (newIdentityData) => {};\n\n open = async (onSubmit, data) => {\n await fetchIdentityOptions();\n this.dispatch({ open: true, ...data });\n this.onSubmit = onSubmit;\n };\n\n onType = (searchQuery) => {\n this.dispatch({ searchQuery: searchQuery });\n };\n\n setLoadingIdentityOptions = async (value) => {\n this.dispatch({ loadingIdentityOptions: value });\n };\n}\n\nconst action = new IdentityFormModalAction(IdentityFormModalReducer);\n\nexport default action;\n","import React from 'react';\nimport { Button, Icon } from \"semantic-ui-react\";\n\nconst additionHelpers = (handleAddition, isCustomer = true) => {\n const additionLabel = (\n <>\n \n Don't see the correct {isCustomer ? \"customer\" : \"officer\"}?\n \n \n \n );\n\n const additionButton = {\n key: \"addition\",\n text: \"addition\",\n value: \"addition\",\n disabled: true,\n content: additionLabel,\n };\n\n return { additionLabel, additionButton };\n};\n\nexport default additionHelpers;\n","export const filterSelectedCustomerOptions = (\n selectedCustomers = null,\n allCustomers,\n) => {\n if (!selectedCustomers) {\n return allCustomers;\n }\n // Extract IDs from the selectedCustomers array\n let idsToExclude = new Set(selectedCustomers.map((item) => item.id));\n\n const unselectedCustomers = allCustomers.filter((item) =>\n !idsToExclude.has(item.key)\n );\n\n return unselectedCustomers;\n};\n\nexport const filterUnknownCustomers = (customersOptions) =>\n customersOptions.filter((x) =>\n x.text && !x.text.toLowerCase().includes(\"unknown\")\n );\n","import { useSelector } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\n\nimport additionHelpers from \"@common/components/helpers/addition\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport IdentityFormModalAction from \"@common/redux/actions/IdentityFormModalAction\";\nimport {\n filterSelectedCustomerOptions,\n filterUnknownCustomers,\n} from \"../helpers/Customer/filterCustomers\";\nimport { useEffect } from \"react\";\n\nconst useCustomerForm = (\n customers,\n handleNewCustomer,\n showContacts,\n showCustomerUnknownCheckbox,\n) => {\n const { customersOptions, loadingCustomers } = useSelector((store) =>\n CustomerFormAction.getStatePath(store)\n );\n const methods = useFormContext();\n const [customerUnknown, hideCustomerSearch] = methods.watch(\n [\"customerUnknown\", \"hideCustomerSearch\"],\n );\n\n const handleAddition = () => {\n IdentityFormModalAction.open(handleNewCustomer, {\n title: \"Add New Customer\",\n hideName: false,\n optionalName: false,\n showContacts: showContacts,\n });\n };\n\n const { additionLabel } = additionHelpers(handleAddition);\n\n const knownCustomers = filterUnknownCustomers(customersOptions);\n\n useFilterCustomers(customers, customersOptions);\n\n return {\n methods,\n customersOptions: showCustomerUnknownCheckbox\n ? customersOptions\n : knownCustomers,\n loadingCustomers,\n customerUnknown,\n handleAddition,\n additionLabel,\n hideCustomerSearch,\n };\n};\n\nexport default useCustomerForm;\n\nconst useFilterCustomers = (selectedCustomers, allCustomers) => {\n useEffect(() => {\n const unselectedCustomers = filterSelectedCustomerOptions(\n selectedCustomers,\n allCustomers,\n );\n CustomerFormAction.dispatch({\n customersOptions: unselectedCustomers,\n });\n }, [selectedCustomers]);\n};\n","// Function to transform the data to display in the table\nexport const transformData = (data) => {\n // Extract the id and name\n const { id, name, phoneNumber, emailAddress } = data;\n // Return the transformed object\n return {\n id: id,\n name: name,\n features: transformFeatures(data),\n phone: phoneNumber,\n email: emailAddress,\n };\n};\n\nexport const transformFeatures = (item) =>\n [\n item.gender.name,\n item.ageRange.name,\n item.height.name,\n item.build.name,\n item.hair.name,\n item.ethnicity.name,\n item.features,\n ].filter(Boolean).join(\", \");\n\nexport const appendPlaceholders = (newIdentityData) => {\n newIdentityData.address1 = \"\";\n newIdentityData.address2 = \"\";\n newIdentityData.town = \"\";\n newIdentityData.postcode = \"\";\n newIdentityData.rowVersion = \"\";\n newIdentityData.phoneNumber = \"\";\n newIdentityData.emailAddress = \"\";\n newIdentityData.hasBeenModified = false;\n return newIdentityData;\n};\n\nexport const appendPlaceholdersForUnresolvedDispute = (newIdentityData) => {\n newIdentityData.address1 = \"\";\n newIdentityData.address2 = \"\";\n newIdentityData.town = \"\";\n newIdentityData.postcode = \"\";\n newIdentityData.rowVersion = \"\";\n newIdentityData.hasBeenModified = false;\n return newIdentityData;\n};\n","import { transformFeatures } from \"../identity\";\n\n// Map from the API response for search customers to the select dropdown options\nexport const mapCustomersToOptions = (response) => {\n return response.map((x) => ({\n key: x.id,\n text: x.name,\n value: x.id,\n features: transformFeatures(x),\n phone: x.phoneNumber,\n email: x.emailAddress,\n }));\n};\n\n// Map from the dropdown options to the display table\nexport const castCustomerToTable = (customer) => {\n return {\n id: customer.key,\n name: customer.text,\n features: customer.features,\n phone: customer.phone,\n email: customer.email,\n };\n};\n\n// Map from the selected customer to submission back to the API\nexport const castCustomerForSubmission = (customer) => {\n return { id: customer.key, name: customer.text, hasBeenModified: false };\n};\n\n// Filter outcomes options for customer interaction form select based on is customer is ok\nexport const filterOutcomes = (outcomes, value) =>\n outcomes\n .filter((x) => x.customerOk === value)\n .map((x) => {\n return { value: x.id, text: x.name };\n });\n","import CustomerClient from \"@common/api/CustomerClient\";\nimport { mapCustomersToOptions } from \"@common/components/helpers/Customer/customers\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport { filterSelectedCustomerOptions } from \"./filterCustomers\";\nimport { handleError } from \"../error\";\n\nexport const searchCustomer = (searchQuery, selectedCustomers = null) => {\n CustomerFormAction.setLoadingCustomers(true).then(() => {\n CustomerClient.Search({ name: searchQuery, pageNumber: 1 }).then(\n (response) => {\n const customerOptions = mapCustomersToOptions(response.data);\n const unselectedCustomerOptions = filterSelectedCustomerOptions(\n selectedCustomers,\n customerOptions,\n );\n CustomerFormAction.dispatch({\n customersResponse: response.data,\n customersOptions: unselectedCustomerOptions,\n });\n },\n ).catch((error) => {\n console.error(error);\n handleError(error);\n })\n .finally(() => CustomerFormAction.setLoadingCustomers(false));\n });\n};\n\nexport const fetchCustomerRowVersion = async (id) => {\n try {\n await CustomerFormAction.setLoadingCustomers(true);\n const response = await CustomerClient.UpdateMetaData(id);\n return response.record.rowVersion;\n } catch (error) {\n console.error(error);\n return \"\";\n } finally {\n CustomerFormAction.setLoadingCustomers(false);\n }\n};\n","import React from \"react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { Controller } from \"react-hook-form\";\nimport { Dropdown, Form, Label } from \"semantic-ui-react\";\nimport debounce from \"lodash.debounce\";\n\n/**\n * SelectComponent renders a select field with validation.\n *\n * @typedef {object} SelectProps\n * @property {string} name - Name of the select field.\n * @property {string} [label=''] - Label of the select field.\n * @property {string} placeholder - Placeholder text of the select field.\n * @property {Function} control - Function to control the select field for form\n * @property {Object} [error=null] - Object containing validation error.\n * @property {array} options - Options for the select component.\n * @property {boolean} [loading=false] - Show that it is curently loading data.\n * @property {boolean} [allowAdditions=false] - Allow additions.\n * @property {Object} [additionLabel='Add'] - Object for addition label.\n * @property {Function} [handleAddition=()=>{}] - Function when clicking addition button.\n * @property {Function} [handleSearch=()=>{}] - Function to call on search.\n * @property {Function} [handleFocus=()=>{}] - Function to call on focus.\n * @property {Function} [onType=()=>{}] - Function to capture search input on type.\n * @property {Object} [noResultsMessage=.No result found] - Object for no results message label.\n * @property {Function} [onSelect=()=>{}] - Function to call on select.\n * @property {string} [labelStyle='w-30'] - Style for the label.\n * @property {string} [fieldStyle='flex-between flex-row-center'] - Style for Form.Field.\n * @property {string} [selectContainerStyle='w-100'] - Style for select container.\n *\n * @component\n * @param {SelectProps} props - The component props.\n * @returns {JSX.Element} The rendered select form component with validation.\n */\nexport default function SearchableDropdownComponent({\n name,\n label = \"\",\n placeholder,\n control,\n error = null,\n options,\n loading = false,\n allowAdditions = false,\n additionLabel = \"Add \",\n handleAddition = () => { },\n handleSearch = () => { },\n handleFocus = () => { },\n onType = () => { },\n noResultsMessage = \"No result found\",\n onSelect = () => { },\n labelStyle = \"w-30\",\n fieldStyle = \"flex-between flex-row-center\",\n selectContainerStyle = \"w-100\",\n}) {\n const optionsMap = options.map((option) => ({\n ...option,\n content: option.features\n ? (\n
\n {option.text}\n
\n {option.features}\n
\n
\n )\n : (option.name),\n }));\n\n // Debounce the handleSearch function\n const debouncedHandleSearch = debounce(\n handleSearch,\n 300,\n );\n\n const [{ isInReadMode }] = useLogin();\n\n if (isInReadMode) {\n return <>\n }\n\n return (\n \n {label && }\n
\n {\n return (\n {\n onChange(value);\n onSelect(value);\n }}\n additionLabel={additionLabel}\n noResultsMessage={noResultsMessage}\n allowAdditions={allowAdditions}\n onAddItem={handleAddition}\n onSearchChange={(_, { searchQuery }) => {\n onType(searchQuery);\n debouncedHandleSearch(searchQuery);\n }}\n additionPosition=\"bottom\"\n />\n );\n }}\n />\n {error && (\n \n )}\n
\n
\n );\n}\n","import React from \"react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { Controller } from \"react-hook-form\";\nimport { Form, Label } from \"semantic-ui-react\";\n\n/**\n * CheckboxComponent renders a with validation.\n *\n * @typedef {object} InputProps\n * @property {Function} control - Function to control the checkbox field for form\n * @property {string} name - Name of the checkbox field.\n * @property {string} [label=''] - Label of the checkbox field.\n * @property {Object} [error=null] - Object containing validation error.\n * @property {boolean} [multipleCheckboxes=false] - Boolean to determine if there will be multiple checkboxes.\n * @property {array} [multiData=null] - The data to be used with the multiple checkboxes.\n * @property {Function} [boxChecked=null] - A custom way to handle if the checkbox is checked.\n * @property {Function} [handleChange=null] - A custom way to handle the checkbox being clicked.\n * @property {string} [fieldStyle='flex-row-center'] - Style for Form.Field.\n * @property {string} [labelStyle=''] - Style for the label.\n * @property {string} [textareaContainerStyle=''] - Style for checkbox container.\n *\n * @component\n * @param {InputProps} props - The component props.\n * @returns {JSX.Element} The rendered checkbox field with validation.\n */\nexport default function CheckboxComponent({\n control,\n name,\n label = \"\",\n error = null,\n multipleCheckboxes = false,\n multiData = null,\n boxChecked = null,\n handleChange = null,\n fieldStyle = \"flex-row-center\",\n labelStyle,\n checkboxContainerStyle,\n}) {\n const [{ isInReadMode }] = useLogin();\n return (\n (\n <>\n {multipleCheckboxes\n ? (\n \n {multiData.map((data) => (\n \n
\n {\n if (handleChange !== null) {\n handleChange();\n } else {\n let valueCopy = value;\n valueCopy.includes(data.value)\n ? valueCopy.splice(\n valueCopy.indexOf(data.value),\n 1,\n )\n : valueCopy.push(data.value);\n onChange(valueCopy);\n }\n }}\n className=\"m-0\"\n label={data.text}\n />\n
\n
\n ))}\n \n {error && (\n \n )}\n \n \n )\n : (\n <>\n \n
\n {\n if (handleChange !== null) {\n onChange(checked);\n handleChange();\n } else {\n onChange(checked);\n }\n }}\n className=\"m-0\"\n label={label}\n />\n
\n
\n \n {error && (\n \n )}\n \n \n )}\n \n )}\n />\n );\n}\n","import React from \"react\";\nimport { Button, Icon, Table } from \"semantic-ui-react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n/**\n * TableComponent renders a with validation.\n *\n * @typedef {object} InputProps\n * @property {array} rows - The table rows data\n * @property {Function} handleRemove - Function to remove a row from the table\n *\n * @component\n * @param {InputProps} props - The component props.\n * @returns {JSX.Element} The rendered table input field with validation.\n */\nexport default function TableComponent({\n rows,\n handleRemove,\n hideName = false,\n showContacts = false,\n nameColumnClassName = \"w-25\",\n secondColumnName = \"Features\",\n}) {\n const [{ isInReadMode }] = useLogin();\n\n return (\n <>\n \n \n \n {!hideName && (\n \n Name\n \n )}\n {secondColumnName}\n {showContacts && Contact}\n  \n \n \n\n \n {rows.map((row, index) => (\n \n {!hideName && (\n \n \n \n )}\n \n \n \n {showContacts && (\n \n \n \n )}\n \n handleRemove(row.id ? row : index)}\n >\n \n \n \n \n ))}\n \n
\n \n );\n}\n","import React from \"react\";\nimport { Button } from \"semantic-ui-react\";\nimport useLogin from '@common/components/hooks/useLogin';\n\n// Actions, hooks and helpers\nimport IdentityFormModalAction from \"@common/redux/actions/IdentityFormModalAction\";\nimport useCustomerForm from \"../hooks/useCustomerForm\";\nimport { searchCustomer } from \"@common/components/helpers/Customer/searchCustomer\";\n\n// Components\nimport SearchableDropdownComponent from \"@common/components/shared/forms/SearchableDropdownComponent\";\nimport CheckboxComponent from \"@common/components/shared/forms/CheckboxComponent\";\nimport TableComponent from \"@common/components/shared/forms/TableComponent\";\n\nconst CustomerForm = ({\n customers,\n onSelect,\n handleNewCustomer,\n handleRemoveCustomer,\n handleResetCustomer,\n showCustomerUnknownCheckbox = true,\n label = \"Search Customer\",\n placeholder = \"Search for a customer...\",\n unknownNameLabel = \"Customer unknown\",\n showContacts = false,\n selectContainerStyle = \"w-100\",\n}) => {\n const {\n methods,\n customersOptions,\n loadingCustomers,\n customerUnknown,\n handleAddition,\n additionLabel,\n hideCustomerSearch,\n } = useCustomerForm(\n customers,\n handleNewCustomer,\n showContacts,\n showCustomerUnknownCheckbox,\n );\n\n const {\n setValue,\n control,\n formState: { errors },\n } = methods;\n\n const [{ isInReadMode }] = useLogin();\n\n return (\n <>\n {!hideCustomerSearch &&\n (\n \n searchCustomer(searchQuery, customers)}\n handleFocus={() => setValue(\"customerUnknown\", false)}\n onType={IdentityFormModalAction.onType}\n noResultsMessage={additionLabel}\n onSelect={onSelect}\n selectContainerStyle={selectContainerStyle}\n />\n )}\n {showCustomerUnknownCheckbox && !isInReadMode && !hideCustomerSearch && (\n
\n \n {customerUnknown && (\n {\n IdentityFormModalAction.onClose = handleResetCustomer;\n IdentityFormModalAction.open(handleNewCustomer, {\n title: \"Add New Customer\",\n hideName: true,\n optionalName: true,\n showContacts: false,\n });\n }}\n positive\n >\n Add Customer\n \n )}\n
\n )}\n {customers && customers.length > 0 && (\n \n )}\n \n );\n};\n\nexport default CustomerForm;\n","import {\n castCustomerForSubmission,\n castCustomerToTable,\n} from \"../Customer/customers\";\nimport CustomerInteractionAction from \"@common/redux/actions/CustomerInteractionAction\";\nimport { transformData } from \"@common/components/helpers/identity\";\nimport { appendPlaceholders } from \"../identity\";\n\nconst vulnerabilityFormHelpers = ({ props, methods }) => {\n const { customerFormOptions } = props;\n const customerUnknown = methods.watch(\"customerUnknown\");\n\n const onSelect = (value) => {\n const filteredCustomer = customerFormOptions.customersOptions.find(\n (x) => x.key === value,\n );\n if (!filteredCustomer) {\n console.warn(\"Filtered customer is not found!\");\n return;\n }\n methods.setValue(\"customer\", castCustomerForSubmission(filteredCustomer), {\n shouldValidate: true,\n });\n methods.setValue(\n \"hideCustomerSearch\",\n true,\n );\n CustomerInteractionAction.editCustomer(\n castCustomerToTable(filteredCustomer),\n );\n methods.resetField(\"searchedCustomer\");\n };\n\n const handleNewCustomer = (value) => {\n if (customerUnknown) value.name = \"Unknown\";\n const customer = appendPlaceholders(value);\n methods.setValue(\"customer\", customer, { shouldValidate: true });\n methods.setValue(\n \"hideCustomerSearch\",\n true,\n );\n const tableData = transformData(value);\n CustomerInteractionAction.editCustomer(tableData);\n };\n\n const handleRemoveCustomer = () => {\n CustomerInteractionAction.removeCustomer();\n methods.setValue(\n \"customer\",\n null,\n { shouldValidate: true },\n );\n methods.setValue(\"hideCustomerSearch\", null);\n };\n\n return { onSelect, handleNewCustomer, handleRemoveCustomer };\n};\n\nexport default vulnerabilityFormHelpers;\n","import React from 'react';\nimport { Form, Label } from \"semantic-ui-react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n/**\n * TextareaComponent renders a textarea field with validation.\n *\n * @typedef {object} InputProps\n * @property {string} name - Name of the input field.\n * @property {string} [label=''] - Label of the input field.\n * @property {string} placeholder - Placeholder text of the input field.\n * @property {string} rows - Rows number of the input field.\n * @property {Function} register - Function to register the input field for form\n * @property {Object} [error=null] - Object containing validation error.\n * @property {boolean} [labelAbove=false] - Boolean to determine if the label is above or next to the textarea.\n * @property {string} [labelStyle=''] - Style for the label.\n * @property {string} [fieldStyle=''] - Style for Form.Field.\n * @property {string} [textareaContainerStyle='w-100'] - Style for textarea container.\n * @property {number} [rows=5] - Number of rows the textarea has.\n *\n * @component\n * @param {InputProps} props - The component props.\n * @returns {JSX.Element} The rendered textarea input field with validation.\n */\nexport default function TextareaComponent({\n name,\n label = \"\",\n placeholder,\n register,\n error = null,\n labelAbove = false,\n labelStyle = \"\",\n fieldStyle = \"\",\n textareaContainerStyle = \"w-100\",\n rows = 5,\n}) {\n const [{ isInReadMode }] = useLogin();\n return (\n \n {label && (\n \n )}\n
\n \n {error && (\n \n )}\n
\n \n );\n}\n","import React from \"react\";\nimport TextareaComponent from \"./TextareaComponent\";\nimport ToggleComponent from \"./ToggleComponent\";\nimport useLogin from '@common/components/hooks/useLogin';\n\nconst ToggleTextareaComponent = (\n {\n control,\n register,\n watch,\n toggleName,\n toggleLabel,\n toggleError,\n textareaName,\n textareaPlaceholder,\n textareaError,\n },\n) => {\n const toggleValue = watch(toggleName, false);\n const [{ isInReadMode }] = useLogin();\n return (\n <>\n \n {(toggleValue !== null && toggleValue === false) &&\n (\n \n )}\n \n );\n};\n\nexport default ToggleTextareaComponent;\n","import React from \"react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { Controller } from \"react-hook-form\";\nimport { DateInput } from \"semantic-ui-calendar-react\";\nimport { Form, Label } from \"semantic-ui-react\";\n\n/**\n * DateComponent renders a date component with validation.\n *\n * @typedef {object} InputProps\n * @property {Function} control - Function to control the date field for form\n * @property {string} name - Name of the date field.\n * @property {string} [label=''] - Label of the date field.\n * @property {string} placeholder - Placeholder text of the date field.\n * @property {Object} [error=null] - Object containing validation error.\n * @property {boolean} [labelAbove=false] - Boolean to determine if the label is above or next to the date field.\n * @property {string} [dateFormat='DD MM YYYY'] - The format of the date.\n * @property {string} [maxDate=null] - The maximum date possible to select.\n * @property {string} [startMode='day'] - The start mode of the date popop: day, month, year.\n * @property {string} [initialDate=''] - The start date of the popup.\n * @property {string} [fieldStyle='flex-row-center'] - Style for Form.Field.\n * @property {string} [labelStyle=''] - Style for the label.\n * @property {string} [dateContainerStyle='w-100'] - Style for date field container.\n *\n * @component\n * @param {InputProps} props - The component props.\n * @returns {JSX.Element} The rendered date input field with validation.\n */\n\nexport default function DateComponent({\n control,\n name,\n label = \"\",\n placeholder = \"\",\n error = null,\n labelAbove = false,\n dateFormat = \"DD MM YYYY\",\n maxDate = null,\n startMode = \"day\",\n initialDate = \"\",\n fieldStyle = \"flex-row-center\",\n labelStyle,\n dateContainerStyle = \"w-100\",\n}) {\n const [{ isInReadMode }] = useLogin();\n return (\n (\n \n {label && (\n \n )}\n
\n {\n onChange(value);\n }}\n dateFormat={dateFormat}\n maxDate={maxDate}\n closable\n startMode={startMode}\n initialDate={initialDate}\n readOnly={isInReadMode}\n />\n {error && (\n \n )}\n
\n \n )}\n />\n );\n}\n","import React from \"react\";\nimport ToggleTextareaComponent from \"@common/components/shared/forms/ToggleTextareaComponent\";\nimport DateComponent from \"@common/components/shared/forms/DateComponent\";\nimport { useFormContext } from \"react-hook-form\";\n\nconst DiscussionForm = () => {\n const { control, register, watch, formState: { errors } } = useFormContext();\n const [outcome, discussedSelfExclusion] = watch([\n \"outcome\",\n \"discussedSelfExclusion\",\n ]);\n\n return (\n <>\n

\n Confirm you have discussed the following:\n

\n
\n \n \n\n {(outcome === 6 || outcome === 7) && (\n \n )}\n {(outcome === 5 || outcome === 6 ||\n outcome === 7) && (\n \n )}\n\n {discussedSelfExclusion && (\n \n )}\n
\n \n );\n};\n\nexport default DiscussionForm;\n","import React from \"react\";\n\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { TimeInput } from \"semantic-ui-calendar-react\";\nimport { Form, Label } from \"semantic-ui-react\";\nimport { getCurrentDateTime, getDatePart } from \"../../helpers/datetime\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n/**\n * TimeComponent renders a time component with validation.\n *\n * @typedef {object} TimeProps\n * @property {Function} control - Function to control the time field for form\n * @property {string} name - Name of the time field.\n * @property {string} [label=''] - Label of the time field.\n * @property {string} placeholder - Placeholder text of the time field.\n * @property {Object} [error=null] - Object containing validation error.\n * @property {boolean} [labelAbove=false] - Boolean to determine if the label is above or next to the time field.\n * @property {string} [timeFormat='HH:mm'] - The format of the time.\n * @property {string} [fieldStyle='flex-row-center'] - Style for Form.Field.\n * @property {string} [labelStyle=''] - Style for the label.\n * @property {string} [timeContainerStyle='w-100'] - Style for time field container.\n * @property {boolean} [disabled] - Boolean to disable the input.\n *\n * @component\n * @param {TimeProps} props - The component props.\n * @returns {JSX.Element} The rendered time input field with validation.\n */\n\nexport default function TimeComponent({\n control,\n name,\n dateName,\n label = \"\",\n placeholder = \"\",\n error = null,\n labelAbove = false,\n timeFormat = \"HH:mm\",\n fieldStyle = \"flex-row-center\",\n labelStyle,\n timeContainerStyle = \"w-100\",\n disabled = false,\n}) {\n const { setValue, watch } = useFormContext();\n const [{ isInReadMode }] = useLogin();\n return (\n (\n \n {label && (\n \n )}\n
\n {\n onChange(value);\n if (!watch(dateName)) {\n setValue(\n dateName,\n getDatePart(getCurrentDateTime()),\n );\n }\n }}\n dateFormat={timeFormat}\n closable\n placeholder={placeholder}\n disabled={disabled}\n readOnly={isInReadMode}\n />\n {error && (\n \n )}\n
\n \n )}\n />\n );\n}\n","import React from \"react\";\n\nimport { Form } from \"semantic-ui-react\";\n\nimport DateComponent from \"@common/components/shared/forms/DateComponent\";\nimport TimeComponent from \"@common/components/shared/forms/TimeComponent\";\n\n/**\n * DateAndTimeGroup renders a grouped date and time component with validation.\n *\n * @typedef {object} InputProps\n * @property {Function} control - Function to control the date field for form\n * @property {Object} [errorsDate=null] - Object containing validation error for date.\n * @property {Object} [errorsTime=null] - Object containing validation error for time.\n * @property {string} [dateName='date'] - Name of the date field.\n * @property {string} [timeName='time'] - Name of the time field.\n * @property {string} [dateLabel='Date'] - Label of the date field.\n * @property {string} [timeLabel='Time'] - Label of the time field.\n * @property {string} [dateFormat='DD MM YYYY'] - The format of the date.\n * @property {string} [timeFormat='HH:mm'] - The format of the time.\n * @property {string} [maxDate=null] - The maximum date possible to be selected.\n *\n * @component\n * @param {InputProps} props - The component props.\n * @returns {JSX.Element} The rendered date and time fields with validation.\n */\n\nexport default function DateAndTimeGroup({\n control,\n dateName = \"date\",\n timeName = \"time\",\n dateLabel = \"Date\",\n timeLabel = \"Time\",\n dateFormat = \"DD MM YYYY\",\n timeFormat = \"HH:mm\",\n errorsDate = null,\n errorsTime = null,\n maxDate = null,\n}) {\n return (\n \n \n\n \n \n );\n}\n","import React from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport DateAndTimeGroup from \"./forms/DateAndTimeGroup\";\nimport ToggleComponent from \"./forms/ToggleComponent\";\n\nconst Reminder = () => {\n const {\n control,\n watch,\n formState: { errors },\n } = useFormContext();\n const setReminder = watch(\"setReminder\");\n\n return (\n <>\n \n {setReminder && (\n \n )}\n \n );\n};\n\nexport default Reminder;\n","import SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport DiscussionForm from \"./DiscussionForm\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { filterOutcomes } from \"../../helpers/Customer/customers\";\nimport { useFormContext } from \"react-hook-form\";\nimport InteractionOptionsAction from \"@common/redux/actions/InteractionOptionsAction\";\nimport Reminder from \"../Reminder\";\n\nconst CustomerOutcomeForm = () => {\n const { loadingOptions, customerInteractionOptions: { outcomes } } =\n useSelector((store) => InteractionOptionsAction.getStatePath(store));\n const { control, register, watch, formState: { errors } } = useFormContext();\n const [isCustomerOk, outcome] = watch([\"isCustomerOk\", \"outcome\"]);\n\n return (\n <>\n {isCustomerOk !== null && (\n <>\n \n {isCustomerOk\n ? (\n outcome === 4 &&\n (\n \n )\n )\n : }\n \n \n \n )}\n \n );\n};\n\nexport default CustomerOutcomeForm;\n","import ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport CustomerForm from \"@common/components/shared/CustomerForm\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\nimport InteractionOptionsAction from \"@common/redux/actions/InteractionOptionsAction\";\nimport CustomerInteractionAction from \"@common/redux/actions/CustomerInteractionAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport vulnerabilityFormHelpers from \"../../helpers/CustomerInteraction/vulnerabilityFormHelpers\";\nimport CustomerOutcomeForm from \"./CustomerOutcomeForm\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\nconst VulnerabilityForm = (props) => {\n const { loadingOptions, customerInteractionOptions: { reasons } } =\n props.interactionOptionsData;\n const methods = useFormContext();\n const [{ isDesktop }] = useLogin();\n const { control, watch, formState: { errors } } = methods;\n const [customer, reason] = watch([\"customer\", \"reason\"]);\n const { onSelect, handleNewCustomer, handleRemoveCustomer } =\n vulnerabilityFormHelpers({\n props,\n methods,\n });\n\n return (\n <>\n \n {\n return { value: x.id, text: x.name };\n })}\n labelStyle=\"w-40\"\n loading={loadingOptions}\n />\n {(isDesktop || customer !== null && reason !== null) && (\n <>\n \n \n \n )}\n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n interactionOptionsData: InteractionOptionsAction.getStatePath(state),\n customerInteractionData: CustomerInteractionAction.getStatePath(state),\n customerFormOptions: CustomerFormAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(VulnerabilityForm);\n","import React from \"react\";\nimport { Button } from \"semantic-ui-react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n/**\n * FormButtonsComponent renders buttons for a form.\n *\n * @typedef {object} FormButtonsProps\n * @property {boolean} isValid - Boolean for if the form is valid.\n * @property {Function} resetForm - Function for handling resetting the form.\n *\n * @component\n * @param {FormButtonsProps} props - The component props.\n * @returns {JSX.Element} The rendered form buttons.\n */\nexport default function FormButtonsComponent({ isValid, resetForm }) {\n const [{ isDesktop, isInReadMode }] = useLogin();\n\n return (\n
\n {!isDesktop &&\n (\n \n Reset\n \n )}\n \n Save\n \n
\n );\n}\n","import React from \"react\";\nimport { Grid, Header, Icon, Image, Segment } from \"semantic-ui-react\";\n\n// Function to render a row with a given set of items\nexport const renderRow = (\n imageSize,\n items,\n columns,\n rowIndex,\n onRowClick = () => {},\n) => (\n \n {items.map((item, index) => (\n \n onRowClick(item)\n : null}\n textAlign=\"center\"\n >\n {item.icon && item.icon.endsWith(\".png\")\n ? (\n \n )\n : (\n \n )}\n
\n {item.name}\n \n {item.subHeader}\n \n
\n \n
\n ))}\n
\n);\n","export const urlMappings = new Map([\n [\"INST\", \"/installations\"],\n [\"SC_MANUAL_VALIDATION\", \"/ticket\"],\n [\"SC_DAILY\", \"/daily\"],\n [\"T_HPAY\", \"/transactions\"],\n [\"T_SPOTCHECK\", \"/live\"],\n [\"SC_ATR_STATUS\", \"/kiosk\"],\n [\"SC_PLAY_SESSIONS\", \"/sessions\"],\n [\"COLL\", \"/collection\"],\n [\"COLL_METERS\", \"/collection\"],\n [\"INTERIM\", \"\"],\n [\"COMPLIANCE\", \"/compliance\"],\n [\"OBS\", \"/compliance/observations\"],\n [\"AGE\", \"/compliance/age-verification\"],\n [\"INTERACTION\", \"/compliance/customer-interaction\"],\n [\"CUSTOMER\", \"/compliance/customer-incidents\"],\n [\"UNRESOLVED\", \"/compliance/unresolved-dispute\"],\n [\"SUSPICIOUS\", \"/compliance/suspicious-activity\"],\n [\"ENFORCE\", \"/compliance/enforcement\"],\n [\"SELF_EXCL\", \"/compliance/self-exclusion\"],\n]);\n","export const redirectOptions = [\n \"CUSTOMER\",\n \"UNRESOLVED\",\n \"SUSPICIOUS\",\n \"SELF_EXCL\",\n \"AGE\",\n];\n","import React from 'react';\nimport { Grid } from \"semantic-ui-react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport splitArrayByPattern from \"@common/components/helpers/split\";\nimport { renderRow } from \"@common/components/helpers/renderGridRow\";\nimport { urlMappings } from \"@common/components/helpers/urlMappings\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport { useWindowWidth } from \"@common/components/helpers/useWindowWidth\";\nimport { redirectOptions } from \"@common/components/helpers/options/navigationOptions\";\n\nconst RedirectDashboard = () => {\n const history = useHistory();\n const width = useWindowWidth();\n const { menu } = useSelector((store) => LoginAction.getStatePath(store));\n const splitMenu = splitArrayByPattern(\n menu.find((x) => x.code === \"COMPLIANCE\").menu.filter((x) =>\n redirectOptions.includes(x.code)\n ),\n );\n\n return (\n <>\n

\n Please select one of the following:\n

\n \n {splitMenu.map((rowItems, rowIndex) =>\n renderRow(\n \"tiny\",\n rowItems,\n rowItems.length,\n rowIndex,\n (item) => history.push(urlMappings.get(item.code)),\n )\n )}\n \n \n );\n};\n\nexport default RedirectDashboard;\n","export default function splitArrayByPattern(array) {\n const result = [];\n const pattern = [1, 2, 2, 3, 3, 3];\n let index = 0;\n let patternIndex = 0;\n\n while (index < array.length) {\n const chunkSize = pattern[patternIndex];\n const chunk = array.slice(index, index + chunkSize);\n result.push(chunk);\n index += chunkSize;\n patternIndex = (patternIndex + 1) % pattern.length; // Cycle through the pattern\n }\n\n return result;\n}\n","import React from \"react\";\nimport { Form } from \"semantic-ui-react\";\n\n// Hooks and Helpers\nimport useCustomerInteractionForm from \"@common/components/hooks/useCustomerInteractionForm\";\nimport { fetchInteractionOptions } from \"@common/components/helpers/CustomerInteraction/fetchInteractionOptions\";\n\n// Components\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport StandardHiddenInputs from \"@common/components/shared/forms/StandardHiddenInputs\";\nimport VulnerabilityForm from \"./VulnerabilityForm\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\nimport RedirectDashboard from \"./RedirectDashboard\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\nconst CustomerInteractionForm = () => {\n const { methods, isCustomerVulnerable, onSubmit, resetForm } =\n useCustomerInteractionForm();\n const {\n handleSubmit,\n control,\n formState: { errors, isValid },\n } = methods;\n\n const [{ isDesktop }] = useLogin();\n\n return (\n
\n \n {!isDesktop &&\n (\n \n )}\n {isCustomerVulnerable !== null &&\n (isCustomerVulnerable || isDesktop\n ? (\n <>\n \n \n \n )\n : )}\n \n );\n};\n\nexport default CustomerInteractionForm;\n","import React, { useEffect } from \"react\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { Button, Header, Label } from \"semantic-ui-react\";\n\nimport ComplianceClient from '@common/api/ComplianceClient';\nimport useEventDetailsGrid from \"../../hooks/useEventDetailsGrid\";\nimport useComplianceView from \"../../hooks/useComplianceView\";\n\nimport { handleError } from \"@common/components/helpers/error\";\nimport { connect } from \"react-redux\";\nimport { confirmModal } from '@actions/modals';\n\nconst ComplianceHeader = ({ confirmModal, logIn, title, loadRecord }) => {\n\n const { optionComplianceAllowEdit, optionComplianceAllowAuthorise, optionComplianceAllowDelete } = logIn;\n\n const [{ isInReadMode }] = useLogin();\n const { activeRow: { isReadOnly, id, status: { name } } } = useEventDetailsGrid();\n const { complianceRecord: { rowVersion }, setViewData } = useComplianceView();\n const { onRefresh } = useEventDetailsGrid();\n\n const onAuthoriseClick = () => {\n ComplianceClient.Authorise(id, rowVersion).then(\n () => AlertModalAction.open(\"The compliance record was successfully authorised!\", \"Success\", () => onRefresh()),\n handleError,\n );\n }\n\n const onDeleteClick = () => {\n confirmModal(\n `Are you sure you wish to delete this compliance record #${id}? `,\n true,\n async () => {\n ComplianceClient.Delete(id).then(\n () => onRefresh(false, true),\n handleError\n )\n },\n async () => { },\n true\n );\n\n }\n\n useEffect(() => {\n if (!id) {\n return;\n }\n ComplianceClient.ReadForAuthorise(id).then((complianceRecord) => {\n setViewData({ complianceRecord });\n })\n }, [id])\n\n return (\n
\n\n
\n {title}\n
\n\n {\n LoginAction.dispatch({ isInReadMode: !isInReadMode }).then(() => loadRecord(!isInReadMode))\n }}\n />\n\n \n\n \n
\n )\n}\n\nconst mapStateToProps = (state) => {\n return {\n logIn: state.logIn\n };\n};\n\nexport default connect(mapStateToProps, { confirmModal })(ComplianceHeader);\n","import React, { useEffect } from 'react';\nimport CustomerInteractionAction from '@common/redux/actions/CustomerInteractionAction'\nimport CustomerFormAction from '@common/redux/actions/CustomerFormAction'\nimport useCustomerInteraction from '@common/components/hooks/useCustomerInteraction'\nimport LoginAction from '@common/redux/actions/LoginAction'\nimport { connect } from 'react-redux';\nimport { FormProvider } from 'react-hook-form';\nimport useEventDetailsGrid from '../../../hooks/useEventDetailsGrid';\nimport CustomerInteractionClient from '@common/api/CustomerInteractionClient';\nimport { handleError } from '@common/components/helpers/error'\nimport { parseCustomerInteractionResponse } from '../../../common/components/helpers/compliance.js';\nimport CustomerInteractionForm from '../../../common/components/shared/CustomerInteraction/CustomerInteractionForm.js';\nimport { fetchInteractionOptions } from \"@common/components/helpers/CustomerInteraction/fetchInteractionOptions\";\nimport { Loader } from 'semantic-ui-react';\nimport ComplianceHeader from '../ComplianceHeader.js';\nimport useComplianceView from '../../../hooks/useComplianceView.js';\n\nconst CustomerInteractionContainer = () => {\n\n const { activeRow: { event: { id } } } = useEventDetailsGrid();\n const { formLoading, setViewData } = useComplianceView();\n const { methods, methods: { reset } } = useCustomerInteraction();\n\n useEffect(fetchInteractionOptions, [])\n\n const loadRecord = (isRead = true) => {\n if (!id) {\n return;\n }\n\n setViewData({ formLoading: true })\n const fnRead = isRead ? CustomerInteractionClient.Read : CustomerInteractionClient.ReadForUpdate;\n\n fnRead(id).then(\n ({ record }) => {\n reset(parseCustomerInteractionResponse(record))\n setViewData({ formLoading: false })\n },\n error => {\n setViewData({ formLoading: false })\n handleError(error)\n }\n );\n\n }\n useEffect(loadRecord, [id, reset])\n\n if (formLoading) {\n return \n }\n\n return (\n \n \n \n \n )\n}\n\nconst mapStateToProps = (state) => {\n return {\n customerInteractionData: CustomerInteractionAction.getStatePath(state),\n customerFormOptions: CustomerFormAction.getStatePath(state),\n loginData: LoginAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(CustomerInteractionContainer);\n","import AgeVerificationReducer from \"@common/redux/reducers/AgeVerificationReducer\";\nimport BaseAction from \"@common/redux/actions/BaseAction\";\n\nclass AgeVerificationAction extends BaseAction { }\n\nconst action = new AgeVerificationAction(AgeVerificationReducer);\n\nexport default action;\n","import dayjs from \"dayjs\";\nimport { ValidationError } from \"yup\";\nimport { getDatePart } from \"../datetime\";\n\n/**\n * Validates that the given date and time are not set in the future.\n *\n * This function checks if the combined date and time are after the current date and time.\n * If they are, it returns validation errors for both the date and time fields.\n *\n * @param {string} date - The date string to validate.\n * @param {string} time - The time string to validate.\n * @param {Object} ctx - The context object provided by Yup, used to create errors.\n * @returns {boolean|Object} - Returns true if validation passes, or an error object if validation fails.\n */\nexport const notInFuture = (value, dateName, timeName, ctx) => {\n const date = value[dateName];\n const time = value[timeName];\n if (!date || !time) {\n return true;\n }\n const errors = [];\n const now = dayjs();\n const dateTime = dayjs(`${date} ${time}`);\n\n if (dateTime.isAfter(now)) {\n errors.push(\n new ValidationError(\n \"Time of the selected date cannot be in the future\",\n value,\n dateName\n )\n );\n errors.push(\n new ValidationError(\n \"Time of the selected date cannot be in the future\",\n value,\n timeName\n )\n );\n return ctx.createError({\n message: () => errors,\n });\n }\n\n return true;\n};\n\n/**\n * Validates that the given time is not set in the future.\n *\n * This function checks if the time is after the current time.\n * If they are, it returns validation errors for the time field.\n *\n * @param {string} value - The time string to validate.\n * @returns {boolean} - Returns true if validation passes, or false if validation fails.\n */\nexport const notFutureTime = (value) => {\n const now = dayjs();\n const today = getDatePart(now);\n const dateTime = dayjs(`${today} ${value}`);\n if (dateTime.isBefore(now)) {\n return true;\n }\n return false;\n};\n","import * as yup from \"yup\";\nimport { validateDate, validateTime } from \"../datetime\";\nimport { notInFuture } from \"./datetimeSchema\";\n\nexport const ageVerificationSchema = yup\n .object()\n .shape({\n date: yup\n .string()\n .required(\"Date is required.\")\n .test(\"validDate\", \"Date is not valid.\", validateDate),\n time: yup\n .string()\n .required(\"Time is required.\")\n .test(\"validTime\", \"Time is not valid.\", validateTime),\n hasId: yup\n .boolean()\n .required(\"You must say if a customer has their ID or not.\"),\n idType: yup.object().when(\"hasId\", {\n is: true,\n then: (schema) =>\n schema.shape({\n id: yup.number().positive().min(1, \"ID type is required.\"),\n name: yup.string(),\n detailsRequired: yup.boolean(),\n }),\n otherwise: (schema) => schema.nullable(),\n }),\n otherId: yup.string().when([\"hasId\", \"idType\"], {\n is: (hasId, idType) =>\n hasId === true && idType && idType.detailsRequired === true,\n then: (schema) =>\n schema.required(\"If ID type is other, you must enter details.\"),\n }),\n gender: yup.object().when(\"hasId\", {\n is: true,\n then: (schema) =>\n schema.shape({\n id: yup.number().positive().min(1, \"Gender is required.\"),\n name: yup.string(),\n detailsRequired: yup.boolean(),\n }),\n otherwise: (schema) => schema.nullable(),\n }),\n dateOfBirth: yup.string().when(\"hasId\", {\n is: true,\n then: (schema) =>\n schema\n .required(\"Date of birth is required.\")\n .test(\"validDate\", \"Date is not valid.\", validateDate),\n }),\n under18: yup.boolean(),\n under18Confirm: yup.boolean().when([\"hasId\", \"under18\"], {\n is: (hasId, under18) => hasId === true && under18 === true,\n then: (schema) =>\n schema.oneOf(\n [true],\n \"You must confirm the customer is under 18 or re-enter their date of birth.\"\n ),\n otherwise: (schema) => schema.nullable(),\n }),\n confirmation: yup.boolean().when([\"hasId\", \"under18\"], {\n is: (hasId, under18) => hasId === true && under18 === false,\n then: (schema) => schema.oneOf([true], \"Confirmation is required.\"),\n otherwise: (schema) => schema.nullable(),\n }),\n hasGambled: yup.boolean().when(\"hasId\", {\n is: false,\n then: (schema) =>\n schema.required(\n \"You must say if the customer gambled before the challenge.\"\n ),\n otherwise: (schema) => schema.nullable(),\n }),\n hasHadStakeReturned: yup.boolean().when([\"hasId\", \"hasGambled\"], {\n is: (hasId, hasGambled) => hasId === false && hasGambled === true,\n then: (schema) =>\n schema.oneOf(\n [true],\n \"You must confirm the customer's stake has been returned\"\n ),\n otherwise: (schema) => schema.nullable(),\n }),\n hasBeenRefusedEntry: yup.boolean().when(\"hasId\", {\n is: false,\n then: (schema) =>\n schema.oneOf(\n [true],\n \"You must confirm the customer was refused entry.\"\n ),\n otherwise: (schema) => schema.nullable(),\n }),\n comments: yup.string().notRequired(),\n })\n .test(\n \"not-future-date-time\",\n \"Date and time cannot be set in the future\",\n function (value, ctx) {\n return notInFuture(value, \"date\", \"time\", ctx);\n }\n );\n","import { useHistory } from \"react-router-dom\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport AgeVerificationAction from \"@common/redux/actions/AgeVerificationAction\";\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport { ageVerificationSchema } from \"@common/components/helpers/validation-schemas/ageVerificationSchema\";\n\nconst useAgeVerification = ({ formData }) => {\n const form = useForm({\n defaultValues: formData,\n resolver: yupResolver(ageVerificationSchema),\n mode: \"all\",\n });\n\n const history = useHistory();\n const onBack = () => {\n handleReset(form.reset, AgeVerificationAction.reset);\n history.push(\"/compliance\");\n };\n\n return {\n form,\n onBack,\n };\n};\n\nexport default useAgeVerification;\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass AgeVerification extends ApiClient {\n constructor() {\n super(\"AgeVerification\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n MetaData = async () => {\n return await this.get(\"Create\");\n };\n\n Create = async (payload) => {\n return await this.post(`Create`, payload);\n };\n\n Read = async (id) => {\n const record = await this.get(`Read?id=${id}`);\n return { record }\n };\n\n ReadForUpdate = async (id) => {\n return await this.get(`Update?id=${id}`);\n };\n\n Update = async (payload) => await this.post(`Update`, payload);\n}\n\nconst client = new AgeVerification();\n\nexport default client;\n","export const formatForSelect = (dataToFormat) => {\n let selectData = [];\n dataToFormat.sort(({ id: a }, { id: b }) => a - b);\n dataToFormat.forEach((value) => {\n selectData.push({\n key: value.id,\n text: value.name,\n value: {\n id: value.id,\n name: value.name,\n detailsRequired: value.detailsRequired,\n },\n });\n });\n return selectData;\n};\n","// Actions\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport AgeVerificationAction from \"@common/redux/actions/AgeVerificationAction\";\n\n// Helpers\nimport { handleError } from \"@common/components/helpers/error\";\n\n// Client\nimport AgeVerificationClient from \"@common/api/AgeVerificationClient\";\n\nimport { formatForSelect } from \"./formOptions\";\n\nconst fetchAgeVerificationData = () => {\n LoadingAction.set(true).then(() => {\n AgeVerificationClient.MetaData()\n .then(\n (response) => {\n AgeVerificationAction.dispatch({\n idTypes: formatForSelect(response.idTypes),\n genders: formatForSelect(response.genders),\n record: response.record,\n });\n },\n (error) => handleError(error),\n )\n .finally(() => LoadingAction.set(false));\n });\n};\n\nexport default fetchAgeVerificationData;\n","// Helpers\nimport { convertToIsoDateTime } from \"@common/components/helpers/datetime\";\n\nconst prepareAgeVerificationData = (data, formData, siteGuid) => {\n let record = {\n ...formData.record,\n id: data.id,\n rowVersion: data.rowVersion,\n };\n\n record.ageVerificationDate = convertToIsoDateTime(data.date, data.time);\n\n record.hasId = data.hasId;\n\n record.idType = data.hasId ? data.idType : null;\n record.description = data.hasId && data.idType.detailsRequired\n ? data.otherId\n : \"\";\n\n record.gender = data.hasId ? data.gender : null;\n\n record.dateOfBirth = data.hasId\n ? convertToIsoDateTime(data.dateOfBirth, \"12:00\")\n : null;\n record.isUnder18 = data.hasId && data.under18 && data.under18Confirm;\n\n record.hasGambled = !data.hasId && data.hasGambled;\n record.hasHadStakeReturned = !data.hasId && data.hasGambled &&\n data.hasHadStakeReturned;\n record.hasBeenRefusedEntry = !data.hasId && data.hasBeenRefusedEntry;\n\n record.comments = data.comments;\n\n record.site.guid = siteGuid;\n\n return record;\n};\n\nexport default prepareAgeVerificationData;\n","import { useCallback, useEffect } from \"react\";\n\n// Helpers\nimport fetchAgeVerificationData from \"@common/components/helpers/AgeVerification/fetchAgeVerificationData\";\nimport prepareAgeVerificationData from \"@common/components/helpers/AgeVerification/prepareAgeVerificationData\";\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport { yearDifference } from \"@common/components/helpers/datetime\";\n\n// Actions\nimport AgeVerificationAction from \"@common/redux/actions/AgeVerificationAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport { parseAgeVerificationResponse } from '@common/components/helpers/compliance'\n\n// Client\nimport AgeVerificationClient from \"@common/api/AgeVerificationClient\";\nimport useLogin from '@common/components/hooks/useLogin';\n\nconst useAgeVerificationForm = ({ formData, form, history }) => {\n\n\n const [{ isDesktop, siteGuid }] = useLogin();\n\n const watchIdType = form.watch(\"idType\");\n useEffect(() => {\n const idOther = watchIdType && watchIdType.detailsRequired;\n AgeVerificationAction.dispatch({ idOther });\n }, [watchIdType, formData.idTypes]);\n\n const watchDob = form.watch(\"dateOfBirth\");\n useEffect(() => {\n if (!watchDob) return;\n\n const years = yearDifference(watchDob);\n if (years < 18) {\n form.setValue(\"under18\", true, { shouldValidate: true });\n } else {\n form.setValue(\"under18\", false, { shouldValidate: true });\n }\n // asking for form as dependency but this caused an infinite rerender\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchDob]);\n\n const handleFormLoad = useCallback(() => {\n fetchAgeVerificationData();\n }, []);\n useEffect(() => {\n handleFormLoad();\n }, [handleFormLoad]);\n\n const handleFormReset = () => {\n handleReset(form.reset, AgeVerificationAction.reset);\n handleFormLoad();\n };\n\n const onSubmit = (data) => {\n AgeVerificationAction.dispatch(data);\n\n const record = prepareAgeVerificationData(data, formData, siteGuid);\n const fnSubmit = isDesktop ? AgeVerificationClient.Update : AgeVerificationClient.Create\n\n LoadingAction.set(true).then(() =>\n fnSubmit(record)\n .then(\n response => {\n const verb = isDesktop ? \"updated\" : \"created\"\n AlertModalAction.open(\n `The age verification was successfully ${verb}!`,\n \"Success\",\n isDesktop ?\n () => { }\n :\n () => history.push('/compliance')\n );\n if (!isDesktop) {\n handleFormReset();\n } else {\n form.reset(parseAgeVerificationResponse(response))\n LoginAction.dispatch({ isInReadMode: true })\n }\n },\n (error) =>\n handleError(\n error,\n \"Error\",\n \"There is an error submitting age verification.\"\n )\n )\n .finally(() => {\n LoadingAction.set(false);\n })\n );\n };\n\n const onError = (errors) => console.log(\"Submit errors \", errors);\n\n return { onSubmit, onError, handleFormReset };\n};\nexport default useAgeVerificationForm;\n","export const confirmationList = [\n { value: \"1\", text: \"1. Customer has verified their date of birth\" },\n { value: \"2\", text: \"2. Picture on ID resembles the customer\" },\n { value: \"3\", text: \"3. ID is valid and in date\" },\n {\n value: \"4\",\n text: \"4. A pass hologram logo with no obvious signs of modification\",\n },\n {\n value: \"5\",\n text: \"5. Customer informed to bring ID on future visits\",\n },\n];\n\nexport const under18List = [\n {\n value: \"1\",\n text: \"- Identification provided shows the individual to be under 18 years of age\",\n },\n {\n value: \"2\",\n text: \"- If the individual has gambled, then funds used have been returned to them\",\n },\n { value: \"3\", text: \"- The individual has been refused entry\" },\n];\n","import React from \"react\";\nimport { Form, Icon } from \"semantic-ui-react\";\nimport { useFormContext } from \"react-hook-form\";\n\n// Helpers\nimport { confirmationList } from \"@common/components/helpers/options/ageVerificationSelect\";\nimport { getCurrentDateTime } from \"@common/components/helpers/datetime\";\nimport { useWindowWidth } from \"@common/components/helpers/useWindowWidth\";\nimport { under18List } from \"@common/components/helpers/options/ageVerificationSelect\";\n\n// Components\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport DateComponent from \"@common/components/shared/forms/DateComponent\";\nimport CheckboxComponent from \"@common/components/shared/forms/CheckboxComponent\";\nimport useLogin from \"../../hooks/useLogin.js\";\n\nconst CustomerHasIdForm = ({ idTypes, genders, idOther }) => {\n const {\n control,\n register,\n watch,\n formState: { errors },\n } = useFormContext();\n\n const width = useWindowWidth();\n const [{ isDesktop }] = useLogin();\n\n const watchUnder18 = watch(\"under18\");\n\n return (\n <>\n \n {idOther && (\n \n )}\n 700 ? \"w-50\" : \"\"}\n />\n\n 700 ? \"w-50\" : \"\"}\n error={errors.dateOfBirth}\n />\n\n {watchUnder18 && (\n <>\n \n \n \n \n \n \n\n \n \n \n {under18List.map((item) => (\n \n ))}\n \n \n \n )}\n\n {(!watchUnder18 && !isDesktop) && (\n <>\n \n \n \n {confirmationList.map((item) => (\n \n ))}\n \n \n \n )}\n \n );\n};\nexport default CustomerHasIdForm;\n","import React from \"react\";\nimport { useFormContext } from \"react-hook-form\";\n\n// Components\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\n\nconst CustomerHasNoIdForm = ({ watchGambledBeforeChallenge }) => {\n const {\n control,\n formState: { errors },\n } = useFormContext();\n\n return (\n <>\n \n {watchGambledBeforeChallenge && (\n \n )}\n \n \n );\n};\n\nexport default CustomerHasNoIdForm;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Form } from \"semantic-ui-react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { useHistory } from \"react-router-dom\";\n\n// Helpers & Hooks\nimport useAgeVerificationForm from \"@common/components/hooks/useAgeVerificationForm\";\nimport { getCurrentDateTime } from \"@common/components//helpers/datetime\";\n\n// Actions\nimport AgeVerificationAction from \"@common/redux/actions/AgeVerificationAction\";\n\n// Components\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport DateAndTimeGroup from \"@common/components/shared/forms/DateAndTimeGroup\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport CustomerHasIdForm from \"./CustomerHasIdForm\";\nimport CustomerHasNoIdForm from \"./CustomerHasNoIdForm\";\nimport StandardHiddenInputs from \"../forms/StandardHiddenInputs\";\n\nconst AgeVerificationForm = (props) => {\n const formData = props.data;\n\n const form = useFormContext();\n const {\n control,\n register,\n watch,\n handleSubmit,\n formState: { errors, isValid },\n } = form;\n\n const [watchCustomerHasId, watchGambledBeforeChallenge] = watch([\n \"hasId\",\n \"hasGambled\",\n ]);\n\n const history = useHistory();\n\n const { handleFormReset, onSubmit, onError } = useAgeVerificationForm({\n formData,\n form,\n history,\n });\n\n return (\n
\n \n \n\n \n\n {watchCustomerHasId !== null && (\n <>\n {watchCustomerHasId && (\n \n )}\n {!watchCustomerHasId && (\n \n )}\n\n \n\n \n \n )}\n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n data: AgeVerificationAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(AgeVerificationForm);\n","\nimport React, { useEffect } from \"react\";\nimport { FormProvider } from \"react-hook-form\";\nimport useAgeVerification from \"@common/components/hooks/useAgeVerification\";\nimport AgeVerificationForm from \"@common/components/shared/AgeVerification/AgeVerificationForm\";\nimport AgeVerificationAction from \"@common/redux/actions/AgeVerificationAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport { useSelector } from \"react-redux\";\nimport useEventDetailsGrid from \"@hooks/useEventDetailsGrid\";\nimport AgeVerificationClient from \"@common/api/AgeVerificationClient\";\nimport { parseAgeVerificationResponse } from \"../../../common/components/helpers/compliance.js\";\nimport ComplianceHeader from \"../ComplianceHeader.js\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport useComplianceView from \"../../../hooks/useComplianceView.js\";\nimport { Loader } from \"semantic-ui-react\";\n\nconst AgeVerificationContainer = () => {\n\n const selector = useSelector(state => AgeVerificationAction.getStatePath(state));\n const { form, form: { reset } } = useAgeVerification(selector);\n const { activeRow: { event: { id } } } = useEventDetailsGrid();\n const { formLoading, setViewData } = useComplianceView();\n\n const loadRecord = (isRead = true) => {\n if (!id) {\n return;\n }\n\n setViewData({ formLoading: true })\n const fnRead = isRead ? AgeVerificationClient.Read : AgeVerificationClient.ReadForUpdate;\n\n fnRead(id)\n .then(\n ({ record }) => {\n reset(parseAgeVerificationResponse(record))\n },\n handleError\n )\n .finally(() => setViewData({ formLoading: false }));\n }\n\n useEffect(loadRecord, [id])\n\n if (formLoading) {\n return \n }\n\n return (\n \n \n \n \n )\n}\n\nexport default AgeVerificationContainer;\n","import * as yup from \"yup\";\nimport { validateDate, validateTime } from \"../datetime\";\nimport { notInFuture } from \"./datetimeSchema\";\n\n// Define the validation schema using yup\nexport const observationsSchema = yup\n .object()\n .shape({\n observationDate: yup\n .string()\n .required(\"Observation date is required\")\n .test(\"is-valid-date\", \"Observation date is not valid\", validateDate),\n\n observationTime: yup\n .string()\n .required(\"Observation time is required\")\n .test(\"is-valid-time\", \"Observation time is not valid\", validateTime),\n\n customerUnknown: yup.boolean(),\n customer: yup.object().required(\"Customer is required\"),\n observation: yup.object().shape({\n id: yup.number().positive().min(1, \"ID type is required.\"),\n name: yup.string(),\n detailsRequired: yup.boolean(),\n }),\n customerMood: yup.array().required(\"Please select a mood option\"),\n comments: yup.string().notRequired(),\n\n setReminder: yup\n .boolean()\n .required(\"Please choose whether to set a reminder or not.\"),\n\n reminderDate: yup.string().when(\"setReminder\", {\n is: true,\n then: (schema) =>\n schema\n .required(\"Date is required\")\n .test(\"is-valid-date\", \"Reminder date is not valid\", validateDate),\n otherwise: (schema) => schema.notRequired(),\n }),\n reminderTime: yup.string().when(\"setReminder\", {\n is: true,\n then: (schema) =>\n schema\n .required(\"Time is required\")\n .test(\"is-valid-time\", \"Reminder time is not valid\", validateTime),\n otherwise: (schema) => schema.notRequired(),\n }),\n })\n .test(\n \"not-future-date-time\",\n \"Date and time cannot be set in the future\",\n function (value, ctx) {\n return notInFuture(value, \"observationDate\", \"observationTime\", ctx);\n },\n );\n","import ObservationsAction from \"@common/redux/actions/ObservationsAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport {\n castCustomerForSubmission,\n castCustomerToTable,\n} from \"../Customer/customers\";\nimport { transformData } from \"@common/components/helpers/identity\";\nimport { useSelector } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\n\nconst useObservationCustomerUtils = () => {\n const methods = useFormContext();\n const customerFormData = useSelector((state) =>\n CustomerFormAction.getStatePath(state)\n );\n const customerUnknown = methods.watch(\"customerUnknown\");\n\n const onSelect = (value) => {\n const filteredCustomer = customerFormData.customersOptions.find(\n (x) => x.key === value,\n );\n if (!filteredCustomer) {\n console.warn(\"Filtered customer is not found!\");\n return;\n }\n methods.setValue(\"customer\", castCustomerForSubmission(filteredCustomer), {\n shouldValidate: true,\n });\n methods.setValue(\n \"hideCustomerSearch\",\n true,\n );\n ObservationsAction.dispatch({\n customer: [castCustomerToTable(filteredCustomer)],\n });\n methods.resetField(\"searchedCustomer\");\n methods.resetField(\"customerUnknown\");\n };\n\n const handleNewCustomer = (value) => {\n if (customerUnknown) value.name = \"Unknown\";\n methods.setValue(\"customer\", value, { shouldValidate: true });\n ObservationsAction.dispatch({\n customer: [transformData(value)],\n });\n methods.setValue(\n \"hideCustomerSearch\",\n true,\n );\n methods.resetField(\"searchedCustomer\");\n methods.resetField(\"customerUnknown\");\n };\n\n const handleRemoveCustomer = () => {\n methods.setValue(\"customer\", null, { shouldValidate: true });\n methods.setValue(\n \"hideCustomerSearch\",\n null,\n );\n ObservationsAction.dispatch({ customer: null });\n };\n\n return { onSelect, handleNewCustomer, handleRemoveCustomer };\n};\n\nexport default useObservationCustomerUtils;\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass Observations extends ApiClient {\n constructor() {\n super(\"Observation\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n MetaData = async () => {\n return await this.get(\"Create\");\n };\n\n Create = async (payload) => {\n return await this.post(`Create`, payload);\n };\n\n ReadForUpdate = async (id) => await this.get(`Update?id=${id}`);\n\n Read = async (id) => {\n const record = await this.get(`Read?id=${id}`);\n return { record };\n };\n\n Update = async (payload) => await this.post(`Update`, payload);\n}\n\nconst client = new Observations();\n\nexport default client;\n","export const formatForSelect = (dataToFormat, moods = false) => {\n let selectData = [];\n dataToFormat.sort(({ id: a }, { id: b }) => a - b);\n dataToFormat.forEach((value) => {\n selectData.push({\n key: value.id,\n text: value.name,\n value: moods\n ? value.id\n : {\n id: value.id,\n name: value.name,\n },\n });\n });\n return selectData;\n};\n\nexport const formatMoodForSubmit = (moodId, moodOptions) => {\n const mood = moodOptions.filter((obj) => {\n return obj.key === moodId;\n })[0];\n\n return {\n id: mood.key,\n name: mood.text,\n };\n};\n","import LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport ObservationsClient from \"@common/api/ObservationsClient\";\nimport { formatForSelect } from \"./formOptions\";\nimport ObservationsAction from \"@common/redux/actions/ObservationsAction\";\nimport CustomerClient from \"@common/api/CustomerClient\";\n\nconst fetchObservationsData = () => {\n LoadingAction.set(true).then(() => {\n CustomerClient.MetaData().then(\n (response) => {\n ObservationsAction.dispatch({\n customerRecord: { ...response.record },\n });\n },\n (error) => handleError(error),\n );\n\n ObservationsClient.MetaData()\n .then(\n (response) => {\n ObservationsAction.dispatch({\n observationOptions: formatForSelect(response.behaviours),\n moodOptions: formatForSelect(response.moods, true),\n record: { ...response.record },\n });\n },\n (error) => handleError(error),\n )\n .finally(() => LoadingAction.set(false));\n });\n};\n\nexport default fetchObservationsData;\n","import { formatMoodForSubmit } from \"./formOptions\";\nimport { convertToIsoDateTime } from \"../datetime\";\n\nconst prepareObservationsData = (\n data,\n recordData,\n customerRecordData,\n moodOptions,\n siteGuid,\n) => {\n let record = { ...recordData, site: { ...recordData.site } };\n\n record.id = data.id;\n record.rowVersion = data.rowVersion;\n\n record.observationDate = convertToIsoDateTime(\n data.observationDate,\n data.observationTime,\n );\n\n record.customerId = !data.customer.id ? 0 : data.customer.id;\n\n if (data.customer.id) {\n record.customer = null;\n } else {\n let customer = { ...customerRecordData };\n customer = { ...data.customer };\n\n const fields = [\n \"address1\",\n \"address2\",\n \"emailAddress\",\n \"phoneNumber\",\n \"postcode\",\n \"town\",\n \"RowVersion\",\n ];\n fields.forEach((field) => (customer[field] = \"\"));\n\n customer.hasBeenModified = false;\n customer.id = 0;\n\n record.customer = customer;\n }\n\n record.behaviour = data.observation;\n\n let moods = [];\n data.customerMood.forEach((mood) => {\n moods.push(formatMoodForSubmit(mood, moodOptions));\n });\n record.moods = moods;\n\n record.comments = data.comments;\n\n record.reminderDate = data.setReminder\n ? convertToIsoDateTime(data.reminderDate, data.reminderTime)\n : null;\n\n record.site.guid = siteGuid;\n\n return record;\n};\n\nexport default prepareObservationsData;\n","import { useEffect } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { useHistory } from \"react-router-dom\";\n\n// Api client\nimport ObservationsClient from \"@common/api/ObservationsClient\";\n\n// Actions\nimport LoginAction from \"../../../redux/actions/LoginAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport LinkSessionAction from \"../../../redux/actions/LinkSessionAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport ObservationsAction from \"@common/redux/actions/ObservationsAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\n\n// Hooks and Helpers\nimport fetchObservationsData from \"@common/components/helpers/Observations/fetchObservationsData\";\nimport { handleResetFunctions } from \"@common/components/helpers/reset\";\nimport prepareObservationsData from \"./prepareObservationsData\";\nimport { handleError } from \"../error\";\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { parseObservationResponse } from \"../compliance\";\n\nconst useObservationsUtils = ({\n record,\n customerRecord,\n moodOptions,\n}) => {\n const history = useHistory();\n const methods = useFormContext();\n\n useEffect(() => {\n fetchObservationsData();\n }, []);\n\n const [{ isDesktop, siteGuid }] = useLogin();\n\n const { reset } = useFormContext();\n\n const onReset = () => {\n handleReset(\n reset,\n ObservationsAction.reset,\n CustomerFormAction.reset,\n fetchObservationsData,\n );\n };\n\n const onSubmit = (data) => {\n if (!methods.formState.isValid) {\n console.error(methods.formState.errors);\n return;\n }\n\n const payload = prepareObservationsData(\n data,\n record,\n customerRecord,\n moodOptions,\n siteGuid,\n );\n\n const fnSubmit = isDesktop\n ? ObservationsClient.Update\n : ObservationsClient.Create;\n\n LoadingAction.set(true)\n .then(() => {\n fnSubmit(payload).then(\n (response) => {\n AlertModalAction.open(\n \"The observation was successfully submitted!\",\n \"Success\",\n isDesktop ? () => {} : () => history.push(\"/compliance\"),\n );\n\n if (!isDesktop) {\n handleResetFunctions(\n methods.reset,\n ObservationsAction.reset,\n LinkSessionAction.reset,\n );\n } else {\n methods.reset(parseObservationResponse(response));\n LoginAction.dispatch({ isInReadMode: true });\n }\n },\n (error) => {\n console.log(error);\n handleError(\n error,\n \"Error\",\n \"There was an error submitting the observation.\",\n );\n },\n );\n })\n .finally(() => {\n LoadingAction.set(false);\n });\n };\n\n return { onSubmit, onReset };\n};\n\nexport default useObservationsUtils;\n","import React from 'react';\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { Controller } from \"react-hook-form\";\nimport { Dropdown, Form, Label } from \"semantic-ui-react\";\n\n/**\n * MultiSelectComponent renders a multi-select field with validation.\n *\n * @typedef {object} SelectProps\n * @property {string} name - Name of the select field.\n * @property {string} [label=''] - Label of the select field.\n * @property {string} placeholder - Placeholder text of the select field.\n * @property {Function} control - Function to control the select field for form\n * @property {Object} [error=null] - Object containing validation error.\n * @property {array} options - Options for the select component.\n * @property {boolean} [loading=false] - Loading flag for the select component.\n * @property {string} [labelStyle='w-30'] - Style for the label.\n * @property {string} [fieldStyle='flex-between flex-row-center'] - Style for Form.Field.\n * @property {string} [selectContainerStyle='w-100'] - Style for select container.\n *\n * @component\n * @param {SelectProps} props - The component props.\n * @returns {JSX.Element} The rendered select form component with validation.\n */\nexport default function MultiSelectComponent({\n name,\n label = \"\",\n placeholder,\n control,\n error = null,\n options,\n loading = false,\n labelStyle = \"w-30\",\n fieldStyle = \"flex-between flex-row-center\",\n selectContainerStyle = \"w-100\",\n}) {\n const [{ isInReadMode }] = useLogin();\n return (\n \n {label && }\n
\n (\n {\n onChange(value);\n }}\n fluid\n icon=\"\"\n />\n )}\n />\n {error && (\n \n )}\n
\n
\n );\n}\n","import React from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport ObservationsAction from \"@common/redux/actions/ObservationsAction\";\nimport MultiSelectComponent from \"@common/components/shared/forms/MultiSelectComponent\";\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport { useSelector } from \"react-redux\";\n\nconst ObservationsSelectForm = () => {\n const {\n control,\n register,\n watch,\n formState: { errors },\n } = useFormContext();\n const { observationOptions, moodOptions } = useSelector((state) =>\n ObservationsAction.getStatePath(state)\n );\n const observation = watch(\"observation\");\n\n return (\n <>\n \n \n {observation === 10 && (\n \n )}\n \n );\n};\n\nexport default ObservationsSelectForm;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\nimport { Form } from \"semantic-ui-react\";\n\n// Actions\nimport ObservationsAction from \"@common/redux/actions/ObservationsAction\";\n\n// Hooks and Helpers\nimport useObservationCustomerUtils from \"@common/components/helpers/Observations/useObservationCustomerUtils\";\nimport useObservationsUtils from \"@common/components/helpers/Observations/useObservationsUtils\";\nimport { getCurrentDateTime } from \"../../helpers/datetime\";\n\n// Components\nimport StandardHiddenInputs from \"@common/components/shared/forms/StandardHiddenInputs\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\nimport DateAndTimeGroup from \"@common/components/shared/forms/DateAndTimeGroup\";\nimport Reminder from \"../Reminder\";\nimport ObservationsSelectForm from \"./ObservationsSelectForm\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport CustomerForm from \"@common/components/shared/CustomerForm\";\n\nconst ObservationsForm = () => {\n const { customer, record, customerRecord, moodOptions } = useSelector((\n state,\n ) => ObservationsAction.getStatePath(state));\n\n const {\n control,\n register,\n handleSubmit,\n formState: { isValid, errors },\n } = useFormContext();\n\n const { onSubmit, onReset } = useObservationsUtils({\n record,\n customerRecord,\n moodOptions,\n });\n\n const { onSelect, handleNewCustomer, handleRemoveCustomer } =\n useObservationCustomerUtils();\n\n return (\n
\n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default ObservationsForm;\n","\nimport React, { useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { FormProvider } from \"react-hook-form\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport ObservationsAction from \"@common/redux/actions/ObservationsAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport { observationsSchema } from \"@common/components/helpers/validation-schemas/observationsSchema\";\nimport ObservationsForm from \"@common/components/shared/Observations/ObservationsForm\";\nimport ObservationsClient from \"@common/api/ObservationsClient\";\nimport useEventDetailsGrid from \"@hooks/useEventDetailsGrid\";\nimport { parseObservationResponse } from \"../../../common/components/helpers/compliance\";\nimport ComplianceHeader from \"../ComplianceHeader\";\nimport useComplianceView from \"../../../hooks/useComplianceView\";\nimport { Loader } from \"semantic-ui-react\";\nimport { handleError } from \"@common/components/helpers/error\";\n\nfunction useObservationContainer() {\n const data = useSelector(state => ObservationsAction.getStatePath(state));\n const { setViewData } = useComplianceView();\n const { activeRow: { event: { id } } } = useEventDetailsGrid()\n\n const methods = useForm({\n resolver: yupResolver(observationsSchema),\n defaultValues: data,\n mode: \"all\",\n });\n\n const { reset } = methods;\n\n const loadRecord = (isRead = true) => {\n if (!id) {\n return;\n }\n\n setViewData({ formLoading: true })\n\n const fnRead = isRead ? ObservationsClient.Read : ObservationsClient.ReadForUpdate;\n\n fnRead(id).then(\n ({ record }) => {\n const { site: { guid } } = record;\n LoginAction.dispatch({ siteGuid: guid, isInReadMode: isRead })\n reset(parseObservationResponse(record))\n setViewData({ formLoading: false })\n },\n error => {\n setViewData({ formLoading: false })\n handleError(error);\n }\n )\n }\n\n useEffect(loadRecord, [id])\n\n return {\n data,\n methods,\n loadRecord\n }\n}\n\nconst ObservationContainer = () => {\n\n const { methods, loadRecord } = useObservationContainer();\n const { formLoading } = useComplianceView();\n\n if (formLoading) {\n return \n }\n\n return (\n \n \n \n \n );\n};\n\nexport default ObservationContainer;\n","import BaseAction from \"./BaseAction\";\nimport UnresolvedDisputeReducer from \"../reducers/UnresolvedDisputeReducer\";\n\nclass UnresolvedDisputeAction extends BaseAction {\n onClose = () => { };\n\n reset = () => {\n const { machines } = this.data();\n this.dispatch({ ...this.reducer.initialState, machines });\n };\n\n editCustomer = (value) => {\n this.dispatch({ customer: [value] });\n };\n\n removeCustomer = () => {\n this.dispatch({ customer: null });\n };\n}\n\nconst action = new UnresolvedDisputeAction(UnresolvedDisputeReducer);\n\nexport default action;\n","import BaseAction from \"./BaseAction\";\nimport SetupReducer from \"../reducers/SetupReducer\";\n\nclass SetupAction extends BaseAction {\n}\n\nconst action = new SetupAction(SetupReducer);\n\nexport default action;\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass IncidentClient extends ApiClient {\n constructor() {\n super(\"Incident\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n MetaData = async (siteGuid = null) => {\n if (!siteGuid) {\n return await this.get(\"Create\");\n }\n return await this.get(`Create?guid=${siteGuid}`);\n };\n\n Update = async (payload) => {\n return await this.post(`Update`, payload);\n };\n\n Create = async (payload) => {\n return await this.post(`Create`, payload);\n };\n\n Read = async (id) => {\n const record = await this.get(`Read?id=${id}`);\n return { record };\n };\n\n ReadForUpdate = async (id) => {\n return await this.get(`Update?id=${id}`);\n };\n}\n\nconst client = new IncidentClient();\n\nexport default client;\n","export const mapToSelect = (data) =>\n data.map((row) => {\n return { key: row.id, value: row.id, text: row.name };\n });\n\nexport const mapOfficersToOptions = (response) => {\n return response.data.map((x) => ({\n key: x.id,\n text: `${x.name} (${x.badgeNumber})`,\n value: x,\n }));\n};\n\nexport const isAlphaNumeric = (str) => {\n return /^(?=.*[a-zA-Z])(?=.*\\d)[a-zA-Z\\d]+$/.test(str);\n};\n\nexport const isNumeric = (str) => {\n return /^\\d+$/.test(str);\n};\n","import BaseAction from \"./BaseAction\";\nimport SessionalDetailsReducer from \"../reducers/SessionalDetailsReducer\";\n\nclass SessionalDetailsAction extends BaseAction {\n onOptionChange = (newData) => {\n const { grid } = this.data();\n const newGrid = { ...grid, data: newData };\n this.dispatch({ grid: newGrid });\n };\n}\n\nconst action = new SessionalDetailsAction(SessionalDetailsReducer);\n\nexport default action;\n","import BaseAction from \"./BaseAction\";\nimport SessionalPositionsReducer from \"../reducers/SessionalPositionsReducer\";\n\nclass SessionalPositionsAction extends BaseAction {\n}\n\nconst action = new SessionalPositionsAction(SessionalPositionsReducer);\n\nexport default action;\n","import { useEffect } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useHistory } from \"react-router-dom\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { unresolvedDisputeSchema } from \"@common/components/helpers/validation-schemas/unresolvedDisputeSchema\";\nimport UnresolvedDisputeAction from \"@common/redux/actions/UnresolvedDisputeAction\";\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport SetupAction from \"@common/redux/actions/SetupAction\";\nimport IncidentClient from \"@common/api/IncidentClient\";\nimport { mapToSelect } from \"@common/components/helpers/forms\";\nimport { useSelector } from \"react-redux\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\nimport SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport SessionalPositionsAction from \"@common/redux/actions/SessionalPositionsAction\";\n\nexport const useUnresolvedDispute = (sigPad) => {\n const history = useHistory();\n const { siteGuid, optionDisplaySessionsInCompliance } = useSelector((store) =>\n LoginAction.getStatePath(store)\n );\n const { formData } = useSelector((store) =>\n UnresolvedDisputeAction.getStatePath(store)\n );\n const { mode } = useSelector((store) => SetupAction.getStatePath(store));\n\n const schema = unresolvedDisputeSchema(\n mode,\n optionDisplaySessionsInCompliance,\n );\n\n const methods = useForm({\n resolver: yupResolver(schema),\n defaultValues: formData,\n mode: \"all\",\n });\n\n const handleBack = () => {\n if (sigPad.current) sigPad.current.clear();\n handleReset(\n methods.reset,\n UnresolvedDisputeAction.reset,\n LinkSessionAction.reset,\n SessionalDetailsAction.reset,\n SessionalPositionsAction.reset,\n );\n history.push(\"/compliance\");\n };\n\n useEffect(() => {\n LoadingAction.set(true).then(() => {\n IncidentClient.MetaData(siteGuid).then((response) => {\n const { gamblingDisputeTypes } = response;\n const disputeTypes = mapToSelect(gamblingDisputeTypes);\n UnresolvedDisputeAction.dispatch({\n types: disputeTypes,\n });\n }).catch((e) => {\n console.error(e);\n }).finally(() => {\n LoadingAction.set(false);\n });\n });\n }, [siteGuid]);\n\n return { methods, handleBack };\n};\n","import * as yup from \"yup\";\nimport {\n validateDate,\n validateTime,\n} from \"@common/components/helpers/datetime\";\nimport { notInFuture } from \"./datetimeSchema\";\n\n// Define the validation schema using yup\nexport const unresolvedDisputeSchema = (\n mode,\n optionDisplaySessionsInCompliance,\n) =>\n yup.object().shape({\n date: yup.string().required(\"Date is required\").test(\n \"is-valid-date\",\n \"Date is not valid\",\n validateDate,\n ),\n time: yup.string().required(\"Time is required\").test(\n \"is-valid-time\",\n \"Time is not valid\",\n validateTime,\n ),\n type: yup.string().required(\"Type is required\"),\n\n machine: mode !== 3\n ? yup.object().shape({\n installationGuid: yup.string().required(\n \"Machine installationGuid is required\",\n ),\n })\n : yup.object().notRequired(),\n\n machineReference: mode === 3\n ? yup.string().required(\"Machine reference is required\")\n : yup.string().notRequired(),\n\n description: yup.string().required(\"Description is required\"),\n\n sessionIds: optionDisplaySessionsInCompliance\n ? yup.array().required()\n : yup.array().notRequired(),\n\n cctvCatched: yup.boolean().required(\n \"Please select yes or no for Captured on CCTV\",\n ),\n signature: yup.string().required(\"Signature is required\"),\n customerId: yup.string().nullable(),\n customer: yup.object().nullable(),\n phoneNumberEdit: yup.string(),\n emailAddressEdit: yup.string().email(),\n }).test(\n \"one-of-two\",\n \"Either customer or customerId must be provided\",\n function (value) {\n return value.customer || value.customerId;\n },\n ).test(\n \"either-phone-or-email\",\n \"Either phone or email must be provided when selecting and existing customer\",\n function (value) {\n return !value.customerId || value.phoneNumberEdit ||\n value.emailAddressEdit;\n },\n ).test(\n \"not-future-date-time\",\n \"Date and time cannot be set in the future\",\n function (value, ctx) {\n return notInFuture(\n value,\n \"date\",\n \"time\",\n ctx,\n );\n },\n );\n","import { convertToIsoDateTime } from \"@common/components/helpers/datetime\";\n\nconst unresolvedDisputeCreatePayload = (data, siteGuid) => {\n const editCustomerContacts = !data.customer.phoneNumber &&\n !data.customer.emailAddress;\n\n if (data.customerId && editCustomerContacts) {\n data.customer.phoneNumber = data.phoneNumberEdit;\n data.customer.emailAddress = data.emailAddressEdit;\n data.customer.hasBeenModified = true;\n } else if (data.customerId) {\n data.customer = null;\n }\n\n return {\n id: data.id,\n rowVersion: data.rowVersion,\n incidentDate: convertToIsoDateTime(data.date, data.time),\n incidentStatus: {\n id: 2,\n name: \"In Review\",\n },\n incidentType: {\n id: 4,\n name: \"Unresolved Gambling Dispute\",\n },\n site: { guid: siteGuid },\n customerIncident: null,\n enforcementVisit: null,\n gamblingDispute: {\n ...data,\n capturedByCctv: data.cctvCatched,\n gamblingDisputeDetails: data.description,\n customerId: data.customerId ?? data.customer.id,\n customer: data.customer ? data.customer : null,\n gamblingDisputeType: {\n id: data.type,\n name: \"\",\n },\n },\n suspiciousActivity: null,\n };\n};\n\nexport default unresolvedDisputeCreatePayload;\n","import { useFormContext } from \"react-hook-form\";\nimport { useHistory } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\n// Api Clients\nimport IncidentClient from \"@common/api/IncidentClient\";\n\n// Actions\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport SetupAction from \"@common/redux/actions/SetupAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport UnresolvedDisputeAction from \"@common/redux/actions/UnresolvedDisputeAction\";\nimport SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport SessionalPositionsAction from \"@common/redux/actions/SessionalPositionsAction\";\n\n// Helpers\nimport {\n handleReset,\n handleResetFunctions,\n} from \"@common/components/helpers/reset\";\nimport unresolvedDisputeCreatePayload from \"@common/components/helpers/UnresolvedDispute/unresolvedDisputeSubmission\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\n\nconst useUnresolvedDisputeForm = (sigPad) => {\n const history = useHistory();\n const methods = useFormContext();\n const { reset, formState: { isValid, errors } } = methods;\n\n const { siteGuid, isDesktop } = useSelector((store) =>\n LoginAction.getStatePath(store)\n );\n const { types, formData } = useSelector((store) =>\n UnresolvedDisputeAction.getStatePath(store)\n );\n const { linkSessionEnabled } = formData;\n const { mode } = useSelector((store) => SetupAction.getStatePath(store));\n\n const resetActions = [\n sigPad.current && sigPad.current.clear,\n reset,\n UnresolvedDisputeAction.reset,\n LinkSessionAction.reset,\n SessionalDetailsAction.reset,\n SessionalPositionsAction.reset,\n ];\n const resetForm = () => {\n handleReset(...resetActions);\n };\n\n const onSubmit = (data) => {\n if (!isValid) {\n console.error(errors);\n return;\n }\n\n const payload = unresolvedDisputeCreatePayload(data, siteGuid, mode);\n\n // @TODO: other hooks have similar code - refactor\n const fnSubmit = isDesktop ? IncidentClient.Update : IncidentClient.Create;\n\n LoadingAction.set(true).then(() =>\n fnSubmit(payload).then((response) => {\n const verb = isDesktop ? \"updated\" : \"created\";\n AlertModalAction.open(\n `The unresolved gambling dispute was successfully ${verb}!`,\n \"Success\",\n isDesktop ? () => {} : () => history.push(\"/compliance\"),\n );\n if (!isDesktop) {\n handleResetFunctions(...resetActions);\n } else {\n LoginAction.dispatch({ isInReadMode: true });\n methods.setValue(\"rowVersion\", response.rowVersion);\n }\n }).catch((error) => {\n handleError(\n error,\n \"Errors\",\n \"There is an error submitting unresolved gambling dispute.\",\n );\n }).finally(() => LoadingAction.set(false))\n );\n };\n\n return {\n methods,\n resetForm,\n onSubmit,\n types,\n mode,\n linkSessionEnabled,\n isDesktop,\n };\n};\n\nexport default useUnresolvedDisputeForm;\n","import React from \"react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { Controller } from \"react-hook-form\";\nimport SignaturePad from \"react-signature-canvas\";\nimport { Button, Label } from \"semantic-ui-react\";\n\nconst SignatureComponent = ({ sigRef, control, errors }) => {\n const handleSignatureEnd = (field) => {\n const dataUrl = sigRef.current.getTrimmedCanvas().toDataURL(\"image/png\");\n field.onChange(dataUrl);\n };\n\n const clearSignature = (field) => {\n if (sigRef.current) {\n sigRef.current.clear();\n field.onChange(\"\");\n }\n };\n\n\n const [{ isInReadMode }] = useLogin();\n\n return (\n <>\n

\n Signature\n

\n {\n return (\n <>\n handleSignatureEnd(field)}\n />\n clearSignature(field)}\n >\n Clear Signature\n \n \n );\n }}\n />\n {errors.signature && (\n \n )}\n \n );\n};\n\nexport default SignatureComponent;\n","import { useSelector } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\nimport UnresolvedDisputeAction from \"@common/redux/actions/UnresolvedDisputeAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport { castCustomerToTable } from \"@common/components/helpers/Customer/customers\";\nimport { transformData } from \"@common/components/helpers/identity\";\nimport { appendPlaceholdersForUnresolvedDispute } from \"../helpers/identity\";\nimport { fetchCustomerRowVersion } from \"../helpers/Customer/searchCustomer\";\n\nconst useUnresolvedDisputeCustomer = () => {\n const methods = useFormContext();\n\n const state = useSelector((store) =>\n UnresolvedDisputeAction.getStatePath(store)\n );\n const { customersResponse, customersOptions } = useSelector((store) =>\n CustomerFormAction.getStatePath(store)\n );\n\n const customerUnknown = methods.watch(\"customerUnknown\");\n\n const onSelect = async (value) => {\n const rowVersion = await fetchCustomerRowVersion(value);\n const filteredCustomer = {\n ...customersResponse.find((x) => x.id === value),\n rowVersion: rowVersion,\n };\n\n const filteredCustomerForTable = customersOptions.find(\n (x) => x.key === value,\n );\n if (!filteredCustomer || !filteredCustomerForTable) {\n console.warn(\"Filtered customer is not found!\");\n return;\n }\n\n // For submission to API\n methods.setValue(\"customerId\", value, { shouldValidate: true });\n methods.setValue(\"customer\", filteredCustomer, { shouldValidate: true });\n\n // Set the values for phone and email for schema validation purpose\n methods.setValue(\"phoneNumberEdit\", filteredCustomer.phoneNumber, {\n shouldValidate: true,\n });\n methods.setValue(\"emailAddressEdit\", filteredCustomer.emailAddress, {\n shouldValidate: true,\n });\n\n // For display in UI table\n UnresolvedDisputeAction.editCustomer(\n castCustomerToTable(filteredCustomerForTable),\n );\n methods.setValue(\"searchedCustomer\", null);\n };\n\n const handleNewCustomer = (value) => {\n if (customerUnknown) value.name = \"Unknown\";\n let customer = appendPlaceholdersForUnresolvedDispute(value);\n // For submission to API\n methods.setValue(\"customer\", customer, { shouldValidate: true });\n // Set customerId to null if customer is new\n methods.setValue(\"customerId\", null, { shouldValidate: true });\n // For display in UI table\n const tableData = transformData(value);\n UnresolvedDisputeAction.editCustomer(tableData);\n };\n\n const handleRemoveCustomer = () => {\n UnresolvedDisputeAction.removeCustomer();\n methods.setValue(\"customerId\", null, { shouldValidate: true });\n methods.setValue(\"customer\", null, { shouldValidate: true });\n };\n\n return {\n ...state,\n onSelect,\n handleNewCustomer,\n handleRemoveCustomer,\n methods,\n };\n};\n\nexport default useUnresolvedDisputeCustomer;\n","import React from \"react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { Form, Label } from \"semantic-ui-react\";\n\n/**\n * InputComponent renders an input field with validation.\n *\n * @typedef {object} InputProps\n * @property {string} name - Name of the input field.\n * @property {string} [label=''] - Label of the input field.\n * @property {string} [labelClass=''] - Class name of the Label.\n * @property {string} [placeholder=''] - Placeholder text of the input field.\n * @property {string} [type='text'] - Input type of the input field.\n * @property {Function} register - Function to register the input field for form\n * @property {Object} [error=null] - Object containing validation error.\n * @property {Function} handleChange - Callback function when input changes.\n * @property {Function} handleFocus - Callback function when input focuses.\n * @property {Function} handleBlur - Callback function when input blurs.\n * @property {string} [fieldStyle='flex-between flex-row-center'] - Style for Form.Field.\n * @property {string} [selectContainerStyle='w-100'] - Style for toggle buttons container.\n *\n * @component\n * @param {InputProps} props - The component props.\n * @returns {JSX.Element} The rendered input field with validation.\n */\nexport default function InputComponent({\n name,\n label = \"\",\n labelClass = \"w-30\",\n placeholder = \"\",\n type = \"text\",\n register,\n error = null,\n handleChange = () => { },\n handleFocus = () => { },\n handleBlur = () => { },\n fieldStyle = \"flex-between flex-row-center\",\n inputContainerStyle = \"w-100\",\n maxCharacters = 524288, // default max length value\n}) {\n const [{ isInReadMode }] = useLogin();\n return (\n \n {label && }\n
\n {\n handleChange();\n },\n onBlur: (e) => {\n handleBlur();\n },\n })}\n placeholder={placeholder}\n type={type}\n onFocus={handleFocus}\n maxLength={maxCharacters}\n readOnly={isInReadMode}\n />\n {error && (\n \n )}\n
\n
\n );\n}\n","import React from \"react\";\nimport UnresolvedDisputeAction from \"@common/redux/actions/UnresolvedDisputeAction\";\nimport useUnresolvedDisputeCustomer from \"@common/components/hooks/useUnresolvedDisputeCustomer\";\nimport CustomerForm from \"@common/components/shared/CustomerForm\";\nimport InputComponent from \"@common/components/shared/forms/InputComponent\";\n\nconst UnresolvedDisputeCustomerForm = () => {\n const {\n customer,\n onSelect,\n handleNewCustomer,\n handleRemoveCustomer,\n methods,\n } = useUnresolvedDisputeCustomer();\n const { register, formState: { errors } } = methods;\n\n return (\n <>\n \n {(customer && customer[0].id &&\n (!customer[0].phone && !customer[0].email)) &&\n (\n
\n

Please provide contact details for the existing customer:

\n \n \n
\n )}\n \n );\n};\n\nexport default UnresolvedDisputeCustomerForm;\n","import LinkSessionModalReducer from \"@common/redux/reducers/LinkSessionModalReducer\";\nimport BaseAction from \"@common/redux/actions/BaseAction\";\n\nclass LinkSessionModalAction extends BaseAction {\n onClose = async (linked) => {};\n\n open = async (onClose) => {\n this.dispatch({ open: true });\n this.onClose = onClose;\n };\n}\n\nconst action = new LinkSessionModalAction(LinkSessionModalReducer);\n\nexport default action;\n","import React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { Button, Form, Label } from \"semantic-ui-react\";\n\nexport default function ButtonComponent(\n {\n control,\n name,\n label,\n buttonName,\n fieldStyle = \"flex-between flex-row-center\",\n handleClick,\n error,\n disabled\n },\n) {\n return (\n (\n <>\n \n {label ? : <>}\n \n {buttonName}\n \n \n {error && (\n \n \n \n )}\n \n )}\n />\n );\n}\n","import React from \"react\";\nimport { useEffect } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\nimport LinkSessionModalAction from \"@common/redux/actions/LinkSessionModalAction\";\nimport SessionalPositionsAction from \"@common/redux/actions/SessionalPositionsAction\";\nimport ButtonComponent from \"../forms/ButtonComponent\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport { useSelector } from \"react-redux\";\n\nconst ToggleLinkSession = () => {\n const {\n control,\n resetField,\n setValue,\n } = useFormContext();\n\n const handleModalClose = (linked) => {\n LinkSessionModalAction.reset();\n if (!linked) resetField(\"linkSession\", false);\n };\n\n const { linkedSessionData } = useSelector((state) =>\n LinkSessionAction.getStatePath(state)\n );\n\n const linkedSessionIds = linkedSessionData.map((x) =>\n x.sessionGuid.toString()\n );\n\n const { activeRow } = useSelector((state) =>\n SessionalPositionsAction.getStatePath(state)\n );\n\n const [{ isInReadMode }] = useLogin();\n\n useEffect(() => {\n setValue(\"sessionIds\", linkedSessionIds, { shouldValidate: true });\n if (activeRow) {\n setValue(\"machine\", {\n installationGuid: activeRow.installationGuid,\n }, {\n shouldValidate: true,\n });\n }\n }, [linkedSessionData, activeRow, setValue]);\n\n return (\n <>\n {\n LinkSessionAction.dispatch({ linkedSessionData: [] });\n LinkSessionModalAction.open(handleModalClose);\n }}\n />\n \n );\n};\n\nexport default ToggleLinkSession;\n","import SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\n\nexport const handleOptionChange = (event, gridData, rowIndex, option) => {\n event.preventDefault();\n event.stopPropagation();\n const newGridData = gridData.map((row, index) => {\n if (index === rowIndex) {\n const newCellData = row.cellData.map((cell) => {\n if (cell.type === \"control\") {\n return { ...cell, data: option };\n }\n return cell;\n });\n return { ...row, cellData: newCellData };\n }\n return row;\n });\n\n return newGridData;\n};\n\nexport const handleRowClickOptionChange = (gridData, clickedRow) => {\n const newGridData = gridData.map((row) => {\n if (row.sessionId === clickedRow.sessionId) {\n const newCellData = row.cellData.map((cell) => {\n if (cell.type === \"control\") {\n return {\n ...cell,\n data: {\n ...cell.data,\n defaultText: toggleSessionOption(cell.data.defaultText),\n },\n };\n }\n return cell;\n });\n return { ...row, cellData: newCellData };\n }\n return row;\n });\n\n return newGridData;\n};\n\nconst toggleSessionOption = (currentValue) => {\n return currentValue.toLowerCase() === \"false\" ? \"true\" : \"false\";\n};\n\nexport const handleSessionsOptionChange = (clickedRow, newGridData) => {\n SessionalDetailsAction.onOptionChange(newGridData);\n LinkSessionAction.toggleLinkSession(clickedRow);\n};\n\nexport const handleSessionsRowClick = (clickedRow, newGridData) => {\n LinkSessionAction.toggleLinkSession(clickedRow);\n SessionalDetailsAction.onOptionChange(newGridData);\n};\n\n// Filter out the sessions where the checkbox is \"true\", for removal purpose\nexport const filterSelectedSessions = (linkedSessionData) => {\n const selectedSessions = linkedSessionData.filter((x) => {\n const selectedRow = x.cellData.find((x) => x.type === \"control\");\n return selectedRow.data.defaultText.toLowerCase() === \"true\";\n });\n return selectedSessions;\n};\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport DataGrid from \"@common/components/shared/DataGrid\";\nimport SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\nimport ButtonComponent from \"../forms/ButtonComponent\";\nimport { useFormContext } from \"react-hook-form\";\nimport {\n filterSelectedSessions,\n handleOptionChange,\n handleRowClickOptionChange,\n} from \"../../helpers/Sessions/sessionsDetailsHelpers\";\n\nconst LinkedSession = () => {\n const { control, setValue } = useFormContext();\n const details = useSelector((state) =>\n SessionalDetailsAction.getStatePath(state)\n );\n const { linkedSessionData } = useSelector((state) =>\n LinkSessionAction.getStatePath(state)\n );\n\n const sessionsToBeDeleted = filterSelectedSessions(linkedSessionData);\n\n return (\n <>\n

\n {details.title ?? \"\"}\n

\n {linkedSessionData.length > 0\n ? (\n {\n const newGridData = handleRowClickOptionChange(\n linkedSessionData,\n row,\n );\n LinkSessionAction.onOptionChange(newGridData);\n }}\n onOptionChange={(event, rowIndex, option) => {\n const newGridData = handleOptionChange(\n event,\n linkedSessionData,\n rowIndex,\n option,\n );\n LinkSessionAction.onOptionChange(newGridData);\n }}\n />\n )\n : <>}\n {sessionsToBeDeleted.length > 0\n ? (\n {\n const updatedData = LinkSessionAction.removeSelectedSessions(\n sessionsToBeDeleted,\n );\n const sessionGuids = updatedData.map((x) => x.sessionGuid);\n setValue(\"sessionIds\", sessionGuids, { shouldValidate: true });\n }}\n />\n )\n : <>}\n
\n \n );\n};\n\nexport default LinkedSession;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport ToggleLinkSession from \"@common/components/shared/LinkSession/ToggleLinkSession\";\nimport LinkedSession from \"@common/components/shared/LinkSession/LinkedSession\";\nimport ViewSessionButton from \"@common/components/shared/LinkSession/ViewSessionButton\";\nimport SetupAction from \"@common/redux/actions/SetupAction\";\n\nconst LinkSessionComponent = () => {\n const [{ isDesktop }] = useLogin();\n const { mode } = useSelector((store) => SetupAction.getStatePath(store));\n\n return (mode !== 3 &&\n (\n <>\n \n \n \n ));\n};\n\nexport default LinkSessionComponent;\n","import UploadReducer from \"../reducers/UploadReducer\";\nimport BaseAction from \"./BaseAction\";\n\nclass UploadAction extends BaseAction {\n setLoadingImages = async (value) =>\n await this.dispatch({ loadingImages: value });\n}\n\nconst action = new UploadAction(UploadReducer);\n\nexport default action;\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass MediaClient extends ApiClient {\n constructor() {\n super(\"Media\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n Create = async (payload, options) => {\n return await this.post(`Create`, payload, options);\n };\n\n Search = async (payload = { incidentId: 0 }) =>\n await this.post(\"Search\", payload);\n\n Read = async (imageId = null) => await this.get(`Read?id=${imageId}`);\n\n Delete = async (imageId = null) => await this.get(`Delete?id=${imageId}`);\n}\n\nconst client = new MediaClient();\n\nexport default client;\n","import AlertModalAction from \"@common/redux/actions/AlertModalAction\";\n\nexport const handleSuccess = (message, history, redirectPath) => {\n AlertModalAction.open(\n message,\n \"Success\",\n history ? () => history.push(redirectPath) : () => {}\n );\n};\n","// Actions\nimport UploadAction from \"@common/redux/actions/UploadAction\";\n\n// Client\nimport MediaClient from \"@common/api/MediaClient\";\n\nconst fetchCctvImages = (incidentId) => {\n UploadAction.setLoadingImages(true).then(() => {\n MediaClient.Search({ incidentId })\n .then((response) => {\n UploadAction.dispatch({ imageList: response });\n })\n .catch((error) => {\n console.error(\"Error fetching images: \", error);\n })\n .finally(() => UploadAction.setLoadingImages(false));\n });\n};\n\nexport default fetchCctvImages;\n","import { useEffect, useRef, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\n\n// Actions\nimport UploadAction from \"@common/redux/actions/UploadAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\n\n// Client\nimport MediaClient from \"@common/api/MediaClient\";\n\n// Helpers\nimport { handleError } from \"@common/components/helpers/error\";\nimport { handleSuccess } from \"@common/components/helpers/success\";\nimport fetchCctvImages from \"@common/components/helpers/fetchCctvImages\";\n\nconst useUpload = () => {\n const { incidentId, progress } = useSelector((state) =>\n UploadAction.getStatePath(state)\n );\n\n const fileInputRef = useRef(null);\n const [imageToUpload, setImageToUpload] = useState(null);\n\n useEffect(() => {\n fetchCctvImages(incidentId);\n }, [incidentId]);\n\n const handleFileChange = (event) => {\n const file = event.target.files[0];\n if (file) {\n setImageToUpload(file);\n }\n };\n\n const handleButtonClick = () => {\n fileInputRef.current.click();\n };\n\n const handleUpload = () => {\n if (imageToUpload) {\n console.log(\"Upload to remote file storage: \", imageToUpload);\n\n const reader = new FileReader();\n reader.readAsDataURL(imageToUpload);\n\n reader.onload = () => {\n const fileData = reader.result.replace(\"data:image/jpeg;base64,\", \"\");\n MediaClient.Create(\n {\n incidentId: incidentId,\n fileName: imageToUpload.name,\n data: fileData,\n },\n {\n onUploadProgress: function (progressEvent) {\n const percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n );\n UploadAction.dispatch({ progress: percentCompleted });\n },\n },\n )\n .then(\n () =>\n handleSuccess(\n \"The CCTV file was successfully submitted!\",\n null,\n \"/compliance\",\n ),\n (error) =>\n handleError(\n error,\n \"Error\",\n \"There is an error submitting the CCTV file.\",\n ),\n )\n .finally(() => {\n UploadAction.dispatch({ progress: 0 });\n setImageToUpload(null);\n fileInputRef.current.value = null;\n fetchCctvImages(incidentId);\n LoginAction.dispatch({ isInReadMode: true });\n });\n };\n }\n };\n\n return {\n fileInputRef,\n imageToUpload,\n setImageToUpload,\n progress,\n handleFileChange,\n handleButtonClick,\n handleUpload,\n };\n};\n\nexport default useUpload;\n","import ConfirmModalReducer from \"@common/redux/reducers/ConfirmModalReducer\";\nimport BaseAction from \"./BaseAction\";\n\nclass ConfirmModalAction extends BaseAction {\n onClose = () => {};\n\n onConfirm = () => {};\n\n open = async (\n message,\n title = \"Error\",\n onConfirm = () => {},\n onClose = () => {}\n ) => {\n this.onClose = onClose;\n this.onConfirm = onConfirm;\n this.dispatch({ open: true, message, title });\n };\n}\n\nconst action = new ConfirmModalAction(ConfirmModalReducer);\n\nexport default action;\n","import ImageModalReducer from \"../reducers/ImageModalReducer\";\nimport BaseAction from \"./BaseAction\";\n\nclass ImageModalAction extends BaseAction {\n open = async (image, title = \"Image\") => {\n this.dispatch({ open: true, image, title });\n };\n}\n\nconst action = new ImageModalAction(ImageModalReducer);\n\nexport default action;\n","import { useSelector } from \"react-redux\";\n\n// Actions\nimport UploadAction from \"@common/redux/actions/UploadAction\";\nimport ConfirmModalAction from \"@common/redux/actions/ConfirmModalAction\";\nimport ImageModalAction from \"@common/redux/actions/ImageModalAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\n\n// Client\nimport MediaClient from \"@common/api/MediaClient\";\n\n// Helpers\nimport { handleError } from \"@common/components/helpers/error\";\nimport { handleSuccess } from \"@common/components/helpers/success\";\nimport fetchCctvImages from \"@common/components/helpers/fetchCctvImages\";\n\nconst useUploadedImageList = () => {\n const { incidentId } = useSelector((state) =>\n UploadAction.getStatePath(state)\n );\n\n const { loadingImages, imageList } = useSelector((state) =>\n UploadAction.getStatePath(state)\n );\n\n const handleView = (imageId, imageName) => {\n LoadingAction.set(true).then(() => {\n MediaClient.Read(imageId)\n .then((res) => {\n ImageModalAction.open(res.data, imageName);\n })\n .catch((error) => {\n handleError(\n error,\n \"Error\",\n \"There was an error reading the CCTV image\"\n );\n })\n .finally(() => LoadingAction.set(false));\n });\n };\n\n const deleteImage = (imageId) => {\n LoadingAction.set(true).then(() => {\n MediaClient.Delete(imageId)\n .then(() => {\n handleSuccess(\"CCTV image deleted successfully\");\n })\n .catch((error) => {\n handleError(\n error,\n \"Error\",\n \"There was an error deleting the CCTV image\"\n );\n })\n .finally(() => {\n fetchCctvImages(incidentId);\n LoadingAction.set(false);\n });\n });\n };\n\n const handleDelete = (imageId) => {\n ConfirmModalAction.open(\n \"Are you sure you want to delete this CCTV image?\",\n \"Confirm Delete\",\n () => deleteImage(imageId)\n );\n };\n\n return {\n loadingImages,\n imageList,\n handleView,\n handleDelete,\n };\n};\n\nexport default useUploadedImageList;\n","import React from \"react\";\nimport { Loader, Button, Icon, Image } from \"semantic-ui-react\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n// Hooks\nimport useUploadedImageList from \"@common/components/hooks/useUploadedImageList\";\n\nconst UploadedImageList = ({ incidentId }) => {\n const { loadingImages, imageList, handleView, handleDelete } =\n useUploadedImageList({ incidentId });\n\n\n const [{ isInReadMode }] = useLogin();\n\n return (\n
\n {loadingImages ? (\n \n ) : (\n <>\n

\n CCTV Images\n

\n <>\n {imageList.length > 0 ? (\n imageList.map((image) => (\n
\n
\n \n

{image.fileName}

\n
\n
\n handleView(image.id, image.fileName)}\n >\n View\n \n { !isInReadMode &&\n handleDelete(image.id)}\n >\n \n \n }\n
\n
\n ))\n ) : (\n

No CCTV Images Uploaded

\n )}\n \n \n )}\n
\n );\n};\n\nexport default UploadedImageList;\n","import React from 'react';\nimport { Button, Form, Icon } from \"semantic-ui-react\";\n\n// Hooks\nimport useUpload from \"@common/components/hooks/useUpload\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport UploadedImageList from \"./UploadedImageList\";\n\nconst UploadComponent = () => {\n const {\n fileInputRef,\n imageToUpload,\n setImageToUpload,\n progress,\n handleFileChange,\n handleButtonClick,\n handleUpload,\n } = useUpload();\n\n const [{ isInReadMode }] = useLogin();\n\n\n return (\n
\n {!isInReadMode &&\n <>\n
\n \n \n \n 20000000) ||\n progress !== 0\n }\n onClick={handleUpload}\n >\n Upload\n \n \n
\n 20000000 && \"warning-text\"\n }`}\n >\n Maximum file size: 20MB\n

\n {imageToUpload && (\n
\n {progress === 0 && (\n {\n setImageToUpload(null);\n fileInputRef.current.value = null;\n }}\n name=\"remove circle\"\n />\n )}\n
\n

\n {imageToUpload.name}\n

\n {progress > 0 && }\n
\n
\n )}\n \n }\n \n
\n );\n};\nexport default UploadComponent;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Form, Image } from \"semantic-ui-react\";\n\n// Hooks and Helpers\nimport useUnresolvedDisputeForm from \"@common/components/hooks/useUnresolvedDisputeForm\";\nimport { getCurrentDateTime } from \"../../helpers/datetime\";\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n// Components\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport SignatureComponent from \"@common/components/shared/forms/SignatureComponent\";\nimport DateAndTimeGroup from \"@common/components/shared/forms/DateAndTimeGroup\";\nimport UnresolvedDisputeCustomerForm from \"./UnresolvedDisputeCustomerForm\";\nimport LinkSessionComponent from \"@common/components/shared/LinkSession/LinkSessionComponent\";\nimport InputComponent from \"@common/components/shared/forms/InputComponent\";\nimport UploadComponent from \"@common/components/shared/forms/UploadComponent\";\nimport UnresolvedDisputeAction from \"@common/redux/actions/UnresolvedDisputeAction\";\nimport StandardHiddenInputs from \"../forms/StandardHiddenInputs\";\n\nconst DisplaySignature = () => {\n const { signature } = useSelector((state) =>\n UnresolvedDisputeAction.getStatePath(state)\n );\n\n return (\n
\n Signature:\n \n
\n );\n};\n\nconst UnresolvedDisputeForm = ({ sigPad }) => {\n const [{ isDesktop }] = useLogin();\n\n const {\n methods,\n resetForm,\n onSubmit,\n types,\n mode,\n } = useUnresolvedDisputeForm(sigPad);\n\n const {\n handleSubmit,\n control,\n register,\n watch,\n formState: { isValid, errors },\n } = methods;\n\n const watchCctv = watch(\"cctvCatched\");\n\n return (\n
\n \n \n \n {mode !== 3 ? : (\n \n )}\n \n \n {isDesktop && watchCctv && }\n \n \n {isDesktop ? : (\n \n )}\n \n \n );\n};\n\nexport default UnresolvedDisputeForm;\n","import { useCallback } from \"react\";\nimport useEventDetailsGrid from \"@hooks/useEventDetailsGrid\";\nimport useComplianceView from \"@hooks/useComplianceView\";\nimport IncidentClient from \"@common/api/IncidentClient\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\nimport UploadAction from \"@common/redux/actions/UploadAction\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport { fetchSessionsByGuids } from \"@common/api/desktop/sessions\";\nimport SetupAction from \"@common/redux/actions/SetupAction\";\nimport SessionalPositionsAction from \"@common/redux/actions/SessionalPositionsAction\";\nimport SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\n\nfunction useIncidentContainer() {\n const { setViewData } = useComplianceView();\n const { activeRow } = useEventDetailsGrid();\n\n const onRowUpdate = (isRead = true) => {\n setViewData({ formLoading: true });\n const { event: { id } } = activeRow;\n const fnRead = isRead ? IncidentClient.Read : IncidentClient.ReadForUpdate;\n\n fnRead(id).then(\n (response) => {\n const {\n record: {\n incidentDetails,\n incidentDetails: { sessionIds },\n site: { guid },\n },\n } = response;\n UploadAction.dispatch({ incidentId: id });\n\n const filteredSessions = sessionIds?.filter((x) => x.length > 1) ?? [];\n if (sessionIds && filteredSessions.length > 0) {\n console.log(\"SESSIONS\", sessionIds);\n fetchSessionsByGuids(sessionIds).then(\n (response) => {\n LinkSessionAction.dispatch({\n linkedSessionData: response.grid.data,\n });\n },\n );\n }\n\n SetupAction.dispatch({\n mode: incidentDetails.machine == null ? 3 : 1,\n });\n SessionalDetailsAction.dispatch({\n title: incidentDetails.machine?.name ??\n incidentDetails.machineRef,\n });\n SessionalPositionsAction.dispatch({\n activeRow: incidentDetails.machine,\n });\n\n LoginAction.dispatch({\n siteGuid: guid,\n isInReadMode: isRead,\n }).then(() => {\n setViewData({ incident: response, formLoading: false });\n });\n },\n (error) => {\n setViewData({ formLoading: false, eventsGridActiveRow: null });\n handleError(error);\n },\n );\n };\n\n return {\n onRowUpdate,\n };\n}\n\nexport default useIncidentContainer;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { useUnresolvedDispute } from \"@common/components/hooks/useUnresolvedDispute\";\nimport UnresolvedDisputeForm from \"@common/components/shared/UnresolvedDispute/UnresolvedDisputeForm\";\nimport UnresolvedDisputeAction from \"@common/redux/actions/UnresolvedDisputeAction\";\nimport { FormProvider } from \"react-hook-form\";\nimport { GAMBLING_DISPUTE_TYPE } from \"../details/EventDetailsForm\";\nimport useComplianceView from \"@hooks/useComplianceView\";\n\nimport { parseGamblingDisputeResponse, prepareCustomers } from \"@common/components/helpers/compliance.js\";\nimport { Loader } from \"semantic-ui-react\";\nimport ComplianceHeader from \"../ComplianceHeader\";\nimport useIncidentContainer from \"../../../hooks/useIncidentContainer\";\n\nconst UnresolvedDisputeContainer = () => {\n const sigPad = useRef({});\n const { methods, methods: { reset } } = useUnresolvedDispute(sigPad);\n const { formLoading, incident, incident: { record, record: { id, incidentDetails, incidentDetails: { signature }, incidentType: { name } } } } = useComplianceView();\n const { onRowUpdate } = useIncidentContainer();\n\n useEffect(() => {\n if (name !== GAMBLING_DISPUTE_TYPE) {\n return;\n }\n UnresolvedDisputeAction.dispatch({\n customer: prepareCustomers(incidentDetails),\n signature\n });\n\n const formData = parseGamblingDisputeResponse(incident);\n\n reset(formData)\n }, [record])\n\n if (formLoading) {\n return \n }\n\n return (\n \n \n \n \n );\n};\n\nexport default UnresolvedDisputeContainer;\n","import OfficerFormModalReducer from \"../reducers/OfficerFormModalReducer\";\nimport BaseAction from \"./BaseAction\";\n\nclass OfficerFormModalAction extends BaseAction {\n onClose = () => {};\n\n onSubmit = () => {};\n\n open = async (onSubmit, data) => {\n this.dispatch({ open: true, ...data });\n this.onSubmit = onSubmit;\n };\n\n onType = async (searchQuery) => {\n await this.dispatch({ searchQuery: searchQuery });\n };\n\n setLoadingOfficerTypes = (value) =>\n this.dispatch({ isLoadingOfficerTypes: value });\n}\n\nconst action = new OfficerFormModalAction(OfficerFormModalReducer);\n\nexport default action;\n","import ApiClient from \"@common/api/ApiClient\";\n\n/**\n * Class representing a client for officers.\n * Extends the ApiClient to provide specific functionalities for API requests.\n *\n * @extends ApiClient\n */\nclass OfficerClient extends ApiClient {\n /**\n * Create a OfficerClient.\n * Initializes the API client with the \"Officer\" route and sets the API URL key.\n */\n constructor() {\n super(\"Officer\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n MetaData = async () => await this.get(\"Create\");\n\n Create = async (payload) => await this.post(\"Create\", payload);\n\n Search = async (payload = { badgeNumber: \"\", officerTypeId: \"\" }) =>\n await this.post(\"Search\", payload);\n}\n\nconst client = new OfficerClient();\n\nexport default client;\n","import OfficerClient from \"../../../api/OfficerClient\";\nimport OfficerAction from \"../../../redux/actions/OfficerAction\";\nimport { mapOfficersToOptions, mapToSelect } from \"../forms\";\nimport OfficerFormModalAction from \"../../../redux/actions/OfficerFormModalAction\";\n\nexport const searchOfficer = (searchQuery, officerTypeId = 1) => {\n OfficerAction.setLoadingOfficers(true).then(() => {\n OfficerClient.Search({\n badgeNumberOrName: searchQuery,\n officerTypeId: officerTypeId ?? 1,\n }).then((response) => {\n const mappedResponse = mapOfficersToOptions(response);\n OfficerAction.dispatch({\n officersOptions: mappedResponse,\n });\n })\n .catch((error) => console.error(error))\n .finally(() => OfficerAction.setLoadingOfficers(false));\n });\n};\n\nexport const fetchOfficerTypes = () => {\n OfficerFormModalAction.setLoadingOfficerTypes(true).then(() => {\n OfficerClient.MetaData().then((response) => {\n const mappedResponse = mapToSelect(response.officerTypes);\n OfficerFormModalAction.dispatch({ officerTypes: mappedResponse });\n });\n })\n .catch((error) => console.error(error))\n .finally(() => OfficerFormModalAction.setLoadingOfficerTypes(false));\n};\n\nexport const fetchPoliceId = () => {\n OfficerAction.setLoadingPoliceId(true).then(() => {\n OfficerClient.MetaData().then((response) => {\n const officerTypes = response.officerTypes.filter((x) =>\n x.isPoliceOfficer === true\n );\n const policeId = officerTypes ? officerTypes[0].id : 1;\n OfficerAction.dispatch({\n policeId: policeId,\n });\n })\n .catch((error) => console.error(error))\n .finally(() => OfficerAction.setLoadingOfficers(false));\n });\n};\n","import SuspiciousActivityAction from \"@common/redux/actions/SuspiciousActivityAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport IncidentClient from \"@common/api/IncidentClient\";\nimport { mapToSelect } from \"../forms\";\nimport { handleError } from \"@common/components/helpers/error\";\n\nexport const fetchSuspiciousActivityMetaData = () => {\n LoadingAction.set(true).then(() => {\n IncidentClient.MetaData().then((response) => {\n const { suspiciousActivityTypes } = response;\n const types = mapToSelect(suspiciousActivityTypes);\n SuspiciousActivityAction.dispatch({\n types: types,\n });\n }).catch((error) => {\n console.error(error);\n handleError(error);\n }).finally(() => {\n LoadingAction.set(false);\n });\n });\n};\n","import { useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport SuspiciousActivityAction from \"@common/redux/actions/SuspiciousActivityAction\";\nimport { suspiciousActivitySchema } from \"@common/components/helpers/validation-schemas/suspiciousActivitySchema\";\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport { useEffect } from \"react\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport { fetchPoliceId } from \"../helpers/Officer/searchOfficer\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport SetupAction from \"@common/redux/actions/SetupAction\";\nimport SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport SessionalPositionsAction from \"@common/redux/actions/SessionalPositionsAction\";\nimport { fetchSuspiciousActivityMetaData } from \"../helpers/SuspiciousActivity/fetchSuspiciousActivityData\";\n\nconst useSuspiciousActivity = () => {\n const { optionDisplaySessionsInCompliance } = useSelector((state) =>\n LoginAction.getStatePath(state)\n );\n const { formData } = useSelector((state) =>\n SuspiciousActivityAction.getStatePath(state)\n );\n const { mode } = useSelector((state) => SetupAction.getStatePath(state));\n\n const history = useHistory();\n\n const schema = suspiciousActivitySchema(\n mode,\n optionDisplaySessionsInCompliance,\n );\n\n const methods = useForm({\n resolver: yupResolver(schema),\n defaultValues: formData,\n mode: \"all\",\n });\n\n const handleBack = () => {\n handleReset(\n methods.reset,\n SuspiciousActivityAction.reset,\n OfficerAction.reset,\n OfficerFormModalAction.reset,\n LinkSessionAction.reset,\n SessionalDetailsAction.reset,\n SessionalPositionsAction.reset,\n );\n history.push(\"/compliance\");\n };\n\n useEffect(() => fetchPoliceId(), []);\n\n useEffect(() => fetchSuspiciousActivityMetaData(), []);\n\n return { methods, handleBack };\n};\n\nexport default useSuspiciousActivity;\n","import * as yup from \"yup\";\nimport { validateDate, validateTime } from \"../datetime\";\nimport { notFutureTime, notInFuture } from \"./datetimeSchema\";\n\n// Define the validation schema using yup\nexport const suspiciousActivitySchema = (\n mode,\n optionDisplaySessionsInCompliance,\n) => {\n return yup.object().shape({\n date: yup\n .string()\n .required(\"Date is required\")\n .test(\"is-valid-date\", \"Date is not valid\", validateDate),\n time: yup\n .string()\n .required(\"Time is required\")\n .test(\"is-valid-time\", \"Time is not valid\", validateTime),\n activityType: yup.string().required(\"Activity type is required\"),\n\n machine: mode !== 3\n ? yup.object().shape({\n installationGuid: yup.string().required(\n \"Machine installationGuid is required\",\n ),\n })\n : yup.object().notRequired(),\n\n machineReference: mode === 3\n ? yup.string().required(\"Machine reference is required\")\n : yup.string().notRequired(),\n\n cctvCatched: yup\n .boolean()\n .required(\"Please select Yes or No for Captured by CCTV\"),\n\n description: yup.string().required(\"Description is required\"),\n\n sessionIds: optionDisplaySessionsInCompliance\n ? yup.array().required()\n : yup.array().notRequired(),\n\n outcome: yup.string().required(\"Outcome is required\"),\n\n policeInvolved: yup.boolean().required(\n \"Please select whether police is involved\",\n ),\n\n timeServicesContacted: yup.string().when(\n [\"allowFuture\", \"policeInvolved\"],\n {\n is: (allowFuture, policeInvolved) => !allowFuture && policeInvolved,\n then: (schema) =>\n schema\n .required(\"Time police contacted is required\")\n .test(\"is-valid-time\", \"Time is not valid\", validateTime)\n .test(\n \"not-future-time\",\n \"Time cannot be in the future\",\n notFutureTime,\n ),\n otherwise: (schema) => schema.notRequired(),\n },\n ),\n\n servicesDidNotAttend: yup.boolean().when(\"policeInvolved\", {\n is: true,\n then: (schema) =>\n schema.when(\"timeServicesArrived\", {\n is: (timeServicesArrived) => timeServicesArrived === \"\",\n then: (schema) =>\n schema.required(\n \"Did not attend is required when there is no arrival time\",\n ),\n }),\n }),\n\n timeServicesArrived: yup.string().when([\"allowFuture\", \"policeInvolved\"], {\n is: (allowFuture, policeInvolved) => !allowFuture && policeInvolved,\n then: (schema) =>\n schema.when(\"servicesDidNotAttend\", {\n is: (servicesDidNotAttend) => servicesDidNotAttend === false,\n then: (schema) =>\n schema\n .required(\n \"Arrival time is required, unles the emergency services did not attend\",\n ).test(\"validDate\", \"Time is not valid.\", validateTime)\n .test(\n \"not-future-time\",\n \"Time cannot be in the future\",\n notFutureTime,\n ),\n }),\n }),\n\n officer: yup.object().when(\"policeInvolved\", {\n is: true,\n then: (schema) =>\n schema.when(\"servicesDidNotAttend\", {\n is: false,\n then: (schema) => schema.notRequired(\"Officer is required\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n otherwise: (schema) => schema.notRequired(),\n }),\n\n incidentNumber: yup.string().when(\n \"policeInvolved\",\n {\n is: true,\n then: (schema) =>\n schema.when(\"servicesDidNotAttend\", {\n is: false,\n then: (schema) => schema.required(\"Incident number is required\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n otherwise: (schema) => schema.notRequired(),\n },\n ),\n\n suspects: yup.array().nullable(),\n suspectIds: yup.array().nullable(),\n }).test(\n \"one-of-two\",\n \"Either suspects or suspectIds must be provided\",\n function (value) {\n const hasSuspects = value.suspects && value.suspects.length > 0;\n const hasSuspectIds = value.suspectIds && value.suspectIds.length > 0;\n return hasSuspects || hasSuspectIds;\n },\n ).test(\n \"not-future-date-time\",\n \"Date and time cannot be set in the future\",\n function (value, ctx) {\n return notInFuture(\n value,\n \"date\",\n \"time\",\n ctx,\n );\n },\n );\n};\n","export const newOfficer = (officer, officerType) => {\n return {\n ...officer,\n officerType: { id: officerType, name: \"\" },\n };\n};\n","import { useFormContext } from \"react-hook-form\";\nimport { useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\n\n// Api Clients\nimport IncidentClient from \"@common/api/IncidentClient\";\n\n// Actions\nimport SuspiciousActivityAction from \"@common/redux/actions/SuspiciousActivityAction\";\nimport LinkSessionAction from \"@common/redux/actions/LinkSessionAction\";\nimport SetupAction from \"@common/redux/actions/SetupAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport SessionalPositionsAction from \"@common/redux/actions/SessionalPositionsAction\";\n\n// Hooks\nimport useLogin from \"@common/components/hooks/useLogin\";\n\n// Helpers\nimport { suspiciousActivityCreatePayload } from \"@common/components/helpers/SuspiciousActivity/suspiciousActivitySubmission\";\nimport {\n handleReset,\n handleResetFunctions,\n} from \"@common/components/helpers/reset\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport { parseSuspiciousActivityResponse } from \"@common/components/helpers/compliance\";\nimport { fetchSuspiciousActivityMetaData } from \"../helpers/SuspiciousActivity/fetchSuspiciousActivityData\";\n\nconst useSuspiciousActivityForm = () => {\n const history = useHistory();\n const methods = useFormContext();\n const [{ isDesktop }] = useLogin();\n\n const { reset, formState: { isValid, errors } } = methods;\n const { types, formData } = useSelector((store) =>\n SuspiciousActivityAction.getStatePath(store)\n );\n const { linkSessionEnabled } = formData;\n const { mode } = useSelector((store) => SetupAction.getStatePath(store));\n\n const [policeInvolved, servicesDidNotAttend] = methods.watch([\n \"policeInvolved\",\n \"servicesDidNotAttend\",\n ]);\n\n const resetActions = [\n reset,\n SuspiciousActivityAction.reset,\n OfficerAction.reset,\n OfficerFormModalAction.reset,\n LinkSessionAction.reset,\n SessionalDetailsAction.reset,\n SessionalPositionsAction.reset,\n fetchSuspiciousActivityMetaData,\n ];\n\n const resetForm = () => {\n handleReset(...resetActions);\n };\n\n const onSubmit = (data) => {\n if (!isValid) {\n console.error(errors);\n handleError(errors, \"Error\", \"The submitted values are not valid!\");\n return;\n }\n\n const payload = suspiciousActivityCreatePayload(data);\n const fnSubmit = isDesktop ? IncidentClient.Update : IncidentClient.Create;\n\n LoadingAction.set(true).then(() =>\n fnSubmit(payload).then((response) => {\n AlertModalAction.open(\n \"The suspicious activity was successfully submitted!\",\n \"Success\",\n isDesktop ? () => {} : () => history.push(\"/compliance\"),\n );\n\n if (!isDesktop) {\n handleResetFunctions(...resetActions);\n } else {\n reset(parseSuspiciousActivityResponse(response));\n LoginAction.dispatch({ isInReadMode: true });\n }\n }).catch((error) => {\n handleError(\n error,\n \"Error\",\n `There is an error submitting suspicious activity: ${error}`,\n );\n }).finally(() => {\n LoadingAction.set(false);\n })\n );\n };\n\n const onError = (errors) => console.log(\"Submit errors \", errors);\n\n return {\n policeInvolved,\n servicesDidNotAttend,\n onSubmit,\n onError,\n resetForm,\n methods,\n types,\n mode,\n linkSessionEnabled,\n isDesktop,\n };\n};\n\nexport default useSuspiciousActivityForm;\n","import { newOfficer } from \"../Officer/officer\";\nimport { convertToIsoDateTime } from \"../datetime\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\n\nexport const suspiciousActivityCreatePayload = (data) => {\n const { siteGuid } = LoginAction.data();\n const { policeId } = OfficerAction.data();\n\n const officerId = (data.officer && data.officer.id) ? data.officer.id : null;\n const officer = (data.officer && !data.officer.id)\n ? newOfficer(data.officer, policeId)\n : null;\n\n return {\n ...data,\n incidentDate: convertToIsoDateTime(data.date, data.time),\n incidentStatus: {\n id: 2,\n name: \"In Review\",\n },\n incidentType: {\n id: 3,\n name: \"Suspicious Activity\",\n },\n site: { guid: siteGuid },\n customerIncident: null,\n enforcementVisit: null,\n gamblingDispute: null,\n suspiciousActivity: {\n ...data,\n suspiciousActivityDetails: data.description,\n capturedByCctv: data.cctvCatched,\n policeContactedDateTime: convertToIsoDateTime(\n data.date,\n data.timeServicesContacted,\n ),\n policeArrivedDateTime: convertToIsoDateTime(\n data.date,\n data.timeServicesArrived,\n ),\n policeDidNotAttend: data.servicesDidNotAttend,\n officerId: officerId,\n officer: officer,\n suspiciousActivityType: {\n id: data.activityType,\n name: \"\",\n },\n customerIds: data.suspectIds,\n customers: data.suspects,\n },\n };\n};\n","import SuspiciousActivityAction from \"@common/redux/actions/SuspiciousActivityAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport {\n appendPlaceholders,\n transformData,\n} from \"@common/components/helpers/identity\";\nimport { useFormContext } from \"react-hook-form\";\nimport { castCustomerToTable } from \"@common/components/helpers/Customer/customers\";\nimport { useSelector } from \"react-redux\";\n\nconst useSuspects = () => {\n const methods = useFormContext();\n const { watch, setValue } = methods;\n const [customerUnknown, suspects, suspectIds] = watch([\n \"customerUnknown\",\n \"suspects\",\n \"suspectIds\",\n ]);\n const { suspectsTable } = useSelector(state => SuspiciousActivityAction.getStatePath(state));\n const { customersOptions } = useSelector(state => CustomerFormAction.getStatePath(state));\n\n const onSelect = (value) => {\n const filteredCustomer = customersOptions.find((x) => x.key === value);\n if (!filteredCustomer) {\n console.warn(\"Filtered customer is not found!\");\n return;\n }\n\n if (suspectIds.includes(value)) {\n return;\n }\n\n // Submit a list of ids for existing customers\n setValue(\"suspectIds\", [...suspectIds, value], { shouldValidate: true });\n // Add suspects for display in table\n SuspiciousActivityAction.addSuspect(castCustomerToTable(filteredCustomer));\n setValue(\"searchedCustomer\", null);\n };\n\n const handleNewSuspect = (value) => {\n if (customerUnknown) value.name = \"Unknown\";\n const suspect = appendPlaceholders(value);\n // For submission to API endpoint\n setValue(\"suspects\", [...suspects, suspect], { shouldValidate: true });\n // For displaying in table in the UI\n const tableData = transformData(value);\n SuspiciousActivityAction.addSuspect(tableData);\n };\n\n const removeSuspects = (suspects, row) => {\n return suspects.filter((x, index) =>\n x.id ? x.id !== row.id : index !== row\n );\n };\n\n const removeSuspectIds = (suspectIds, row) => {\n return suspectIds.filter((x, index) => (x ? x !== row.id : index !== row));\n };\n\n // If the rows doesnt have id, it will remove it using index\n const handleRemoveSuspect = (row) => {\n // Remove the suspect from the API payload\n setValue(\"suspects\", removeSuspects(suspects, row), {\n shouldValidate: true,\n });\n setValue(\"suspectIds\", removeSuspectIds(suspectIds, row), {\n shouldValidate: true,\n });\n // Remove the suspect from the display table\n SuspiciousActivityAction.setSuspects(removeSuspects(suspectsTable, row));\n };\n\n return {\n onSelect,\n suspectsTable,\n handleNewSuspect,\n handleRemoveSuspect,\n };\n};\n\nexport default useSuspects;\n","import React from \"react\";\nimport { Form } from \"semantic-ui-react\";\nimport CustomerForm from \"@common/components/shared/CustomerForm\";\nimport useSuspects from \"@common/components/hooks/useSuspects\";\nimport SuspiciousActivityAction from \"@common/redux/actions/SuspiciousActivityAction\";\n\nconst SuspectsForm = () => {\n const {\n onSelect,\n suspectsTable,\n handleNewSuspect,\n handleRemoveSuspect,\n } = useSuspects();\n\n return (\n <>\n \n \n \n \n \n );\n};\n\nexport default SuspectsForm;\n","export const services = [\n { id: 1, value: \"police\", text: \"Police\" },\n { id: 2, value: \"ambulance\", text: \"Ambulance\" },\n { id: 3, value: \"fire\", text: \"Fire\" },\n];\n","// Map option from select dropdown to display in table\nexport const mapFromSelectToTable = (value) => {\n return { id: value.id, name: value.text, features: value.features };\n};\n\n// Function to transform the data to display in the table\nexport const transformOfficerData = (data) => {\n // Extract the id and name\n const { id, name } = data;\n\n // Return the transformed object\n return {\n id,\n name,\n features: `Badge Number: ${data.badgeNumber ?? \"N/A\"} - Phone: ${\n data.phoneNumber ?? \"N/A\"\n } - Address: ${data.address1}, ${data.address2}, ${data.town}, ${data.postcode}`,\n };\n};\n","import OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport { transformOfficerData } from \"../tables\";\n\nconst emergencyServicesHelpers = ({ methods }) => {\n const handleNewOfficer = (value) => {\n methods.setValue(\"officer\", value, { shouldValidate: true });\n\n // Officer for display in the UI table\n OfficerAction.editOfficer(value);\n };\n\n const handleRemoveOfficer = () => {\n methods.setValue(\"officer\", null, { shouldValidate: true });\n\n OfficerAction.editOfficer(null);\n };\n\n return { handleNewOfficer, handleRemoveOfficer };\n};\n\nexport default emergencyServicesHelpers;\n","import React from \"react\";\n\nimport { Form } from \"semantic-ui-react\";\n\nimport TimeComponent from \"@common/components/shared/forms/TimeComponent\";\nimport CheckboxComponent from \"@common/components/shared/forms/CheckboxComponent\";\n\n/**\n * DidNotAttendTimeGroup renders a time component and did not attend checkbox with validation.\n *\n * @typedef {object} DidNotAttendTimeProps\n * @property {Function} control - Function to control the time field for form\n * @property {string} timeName - Name of the time field.\n * @property {string} didNotAttendName - Name of the checkbox field.\n * @property {string} [label=''] - Label of the field.\n * @property {string} [timeLabel=''] - Label of the time field.\n * @property {Object} [timeError=null] - Object containing validation error.\n * @property {Object} [didNotAttendError=null] - Object containing validation error.\n * @property {string} [timeFormat='HH:mm'] - The format of the time.\n * @property {string} [fieldStyle='flex-between flex-row-center'] - Style for Form.Field.\n * @property {string} [labelStyle='w-30'] - Style for the label.\n * @property {string} [checkboxFieldStyle='flex-row-center m-0'] - Style for checkbox field.\n * @property {string} [checkboxLabelStyle] - Style for checkbox label.\n * @property {string} [checkboxContainerStyle] - Style for checkbox container.\n * @property {string} [timeFieldStyle] - Style for time field.\n * @property {string} [timeLabelStyle] - Style for time label.\n * @property {string} [timeContainerStyle] - Style for time container.\n * @property {Function} [setValue] - Function to set the value of a form field.\n * @property {boolean} [didNotAttend] - Boolean to watch did not attend.\n *\n * @component\n * @param {DidNotAttendTimeProps} props - The component props.\n * @returns {JSX.Element} The rendered time input and did not attend checkbox with validation.\n */\n\nexport default function DidNotAttendTimeGroup({\n control,\n timeName,\n didNotAttendName,\n label = \"\",\n timeLabel = \"\",\n timeError = null,\n didNotAttendError = null,\n timeFormat,\n fieldStyle = \"flex-between flex-row-center\",\n labelStyle = \"w-30\",\n checkboxFieldStyle = \"flex-row-center m-0\",\n checkboxLabelStyle,\n checkboxContainerStyle,\n timeFieldStyle,\n timeLabelStyle,\n timeContainerStyle,\n setValue,\n didNotAttend = false,\n}) {\n return (\n \n {label && }\n setValue(timeName, \"\")}\n />\n \n \n );\n}\n","import { useSelector } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\n\nimport additionHelpers from \"@common/components/helpers/addition\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport { searchOfficer } from \"../helpers/Officer/searchOfficer\";\n\nconst useOfficerForm = ({ handleNewOfficer }) => {\n const { loadingOfficers, officersOptions, officer } = useSelector((store) =>\n OfficerAction.getStatePath(store)\n );\n\n const methods = useFormContext();\n\n const officerTypeId = methods.watch(\"officerTypeId\");\n\n const handleAddition = () => {\n OfficerFormModalAction.open(handleNewOfficer, {\n title: \"Add New Officer\",\n });\n };\n const { additionLabel } = additionHelpers(handleAddition, false);\n\n const onSelect = (value) => {\n OfficerAction.editOfficer(value);\n methods.setValue(\"searchedOfficer\", null);\n methods.setValue(\"officer\", value);\n };\n\n const handleSearch = (searchQuery) =>\n searchOfficer(searchQuery, officerTypeId);\n\n return {\n methods,\n loadingOfficers,\n officer,\n officersOptions,\n officerTypeId,\n additionLabel,\n handleAddition,\n handleSearch,\n onSelect,\n };\n};\n\nexport default useOfficerForm;\n","import React from \"react\";\n\nimport SearchableDropdownComponent from \"@common/components/shared/forms/SearchableDropdownComponent\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport TableComponent from \"@common/components/shared/forms/TableComponent\";\nimport InputComponent from \"@common/components/shared/forms/InputComponent\";\nimport useOfficerForm from \"../../hooks/useOfficerForm\";\nimport { transformOfficerData } from \"../../helpers/tables\";\n\nconst OfficerForm = ({ handleNewOfficer, handleRemoveOfficer }) => {\n const {\n methods,\n loadingOfficers,\n officer,\n officersOptions,\n officerTypeId,\n additionLabel,\n handleAddition,\n handleSearch,\n onSelect,\n } = useOfficerForm({ handleNewOfficer });\n const {\n control,\n register,\n formState: { errors },\n } = methods;\n\n return (\n <>\n \n {officer && (\n \n )}\n {(officerTypeId === 1 || !officerTypeId) && (\n \n )}\n \n );\n};\n\nexport default OfficerForm;\n","import React from \"react\";\nimport { Form } from \"semantic-ui-react\";\nimport { useFormContext } from \"react-hook-form\";\n\n// Helpers\nimport { services } from \"@common/components/helpers/options/customerIncidentSelect\";\nimport emergencyServicesHelpers from \"@common/components/helpers/CustomerIncident/emergencyServicesHelpers\";\n\n// Components\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport TimeComponent from \"@common/components/shared/forms/TimeComponent\";\nimport CheckboxComponent from \"@common/components/shared/forms/CheckboxComponent\";\nimport DidNotAttendTimeGroup from \"@common/components/shared/forms/DidNotAttendTimeGroup\";\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport OfficerForm from \"@common/components/shared/forms/OfficerForm\";\n\nconst EmergencyServicesForm = ({\n policeCalled,\n ambulanceCalled,\n eSCalled,\n policeOnly = false,\n didNotAttend,\n}) => {\n const methods = useFormContext();\n const {\n control,\n register,\n setValue,\n formState: { errors },\n } = methods;\n const { handleNewOfficer, handleRemoveOfficer } = emergencyServicesHelpers({\n methods,\n });\n\n return (\n <>\n \n\n {eSCalled && (\n <>\n {!policeOnly && (\n \n \n \n {ambulanceCalled && !didNotAttend && (\n \n )}\n \n \n )}\n \n \n {policeCalled && !didNotAttend && (\n \n )}\n \n )}\n \n );\n};\n\nexport default EmergencyServicesForm;\n","import React from \"react\";\nimport { Form } from \"semantic-ui-react\";\n\n// Hooks and Helpers\nimport useSuspiciousActivityForm from \"@common/components/hooks/useSuspiciousActivityForm\";\nimport { getCurrentDateTime } from \"../../helpers/datetime\";\n\n// Components\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport StandardHiddenInputs from \"@common/components/shared/forms/StandardHiddenInputs\";\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\nimport DateAndTimeGroup from \"@common/components/shared/forms/DateAndTimeGroup\";\nimport SuspectsForm from \"./SuspectsForm\";\nimport EmergencyServicesForm from \"@common/components/shared/forms/EmergencyServicesForm\";\nimport InputComponent from \"@common/components/shared/forms/InputComponent\";\nimport UploadComponent from \"@common/components/shared/forms/UploadComponent\";\nimport LinkSessionComponent from \"@common/components/shared/LinkSession/LinkSessionComponent\";\n\nconst SuspiciousActivityForm = () => {\n const {\n policeInvolved,\n servicesDidNotAttend,\n onSubmit,\n resetForm,\n onError,\n methods,\n types,\n mode,\n isDesktop,\n } = useSuspiciousActivityForm();\n\n const {\n control,\n register,\n setValue,\n handleSubmit,\n watch,\n formState: { isValid, errors },\n } = methods;\n const watchCctv = watch(\"cctvCatched\");\n\n return (\n
\n \n \n \n {mode !== 3 ? : (\n \n )}\n \n {isDesktop && watchCctv && }\n \n
\n \n \n \n \n \n \n );\n};\n\nexport default SuspiciousActivityForm;\n","import React, { useEffect } from \"react\";\nimport { FormProvider } from \"react-hook-form\";\nimport useSuspiciousActivity from \"@common/components/hooks/useSuspiciousActivity\";\nimport SuspiciousActivityForm from \"@common/components/shared/SuspiciousActivity/SuspiciousActivityForm\";\nimport useComplianceView from '../../../hooks/useComplianceView.js';\nimport { SUSPICIOUS_ACTIVITY_TYPE } from '../details/EventDetailsForm.js';\nimport { parseSuspiciousActivityResponse } from '@common/components/helpers/compliance.js';\nimport ComplianceHeader from \"../ComplianceHeader.js\";\nimport useIncidentContainer from \"../../../hooks/useIncidentContainer.js\";\nimport { Loader } from \"semantic-ui-react\";\n\n\nconst SuspiciousActivityContainer = (props) => {\n const { methods, methods: { reset } } = useSuspiciousActivity(props);\n const { formLoading, incident: { record, record: { incidentType: { name } } } } = useComplianceView();\n const { onRowUpdate } = useIncidentContainer();\n\n useEffect(() => {\n if (name !== SUSPICIOUS_ACTIVITY_TYPE) {\n return;\n }\n\n reset(parseSuspiciousActivityResponse(record))\n }, [record])\n\n if (formLoading) {\n return \n }\n\n return (\n \n \n \n \n );\n};\n\nexport default SuspiciousActivityContainer;\n","export const formatForSelect = (dataToFormat) => {\n let selectData = [];\n dataToFormat.sort(({ id: a }, { id: b }) => a - b);\n dataToFormat.forEach((value) => {\n selectData.push({\n key: value.id,\n text: value.name,\n value: {\n id: value.id,\n name: value.name,\n detailsRequired: value.detailsRequired,\n policeIncident: value.policeIncident,\n },\n });\n });\n return selectData;\n};\n\nexport const formatForSubmit = (array, value) => {\n const object = array.filter((obj) => {\n return obj.value === value;\n })[0];\n return {\n id: object.value,\n name: object.text,\n };\n};\n","import LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport CustomerClient from \"@common/api/CustomerClient\";\nimport IncidentClient from \"@common/api/IncidentClient\";\nimport CustomerIncidentAction from \"@common/redux/actions/CustomerIncidentAction\";\nimport { formatForSelect } from \"./formOptions\";\nimport OfficerClient from \"@common/api/OfficerClient\";\n\nconst fetchIncidentData = (siteGuid) => {\n LoadingAction.set(true).then(() => {\n IncidentClient.MetaData(siteGuid).then(\n (response) => {\n CustomerIncidentAction.dispatch({\n customerIncidentTypes: formatForSelect(\n response.customerIncidentTypes\n ),\n incidentType: response.types.filter((obj) => {\n return obj.name.toLowerCase().indexOf(\"customer incident\") !== -1;\n })[0],\n incidentRecord: { ...response.record },\n });\n },\n (error) => handleError(error)\n );\n CustomerClient.MetaData()\n .then(\n (response) => {\n CustomerIncidentAction.dispatch({\n customerRecord: { ...response.record },\n });\n },\n (error) => handleError(error)\n )\n .finally(() => {\n LoadingAction.set(false);\n });\n OfficerClient.MetaData()\n .then(\n (response) => {\n CustomerIncidentAction.dispatch({\n officerRecord: { ...response.record },\n officerType: response.officerTypes.filter((obj) => {\n return obj.name.toLowerCase().indexOf(\"police\") !== -1;\n })[0],\n });\n },\n (error) => handleError(error)\n )\n .finally(() => {\n LoadingAction.set(false);\n });\n });\n};\n\nexport default fetchIncidentData;\n","import { convertToIsoDateTime } from \"../datetime\";\nimport { newOfficer } from \"../Officer/officer\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\n\nconst prepareIncidentData = (data, formData, siteGuid) => {\n let record = { ...formData.incidentRecord };\n\n record.incidentDate = convertToIsoDateTime(data.date, data.time);\n record.id = data.id;\n record.rowVersion = data.rowVersion;\n record.incidentType = formData.incidentType;\n\n record.customerIncident = {};\n record.customerIncident.customerIncidentType = data.customerIncidentType;\n\n let newCustomers = [];\n let existingCustomers = [];\n data.customers.forEach((person) => {\n if (person.id) {\n existingCustomers.push(person.id);\n } else {\n let nextPerson = { ...formData.customerRecord };\n nextPerson = { ...person };\n\n const fields = [\n \"address1\",\n \"address2\",\n \"emailAddress\",\n \"phoneNumber\",\n \"postcode\",\n \"town\",\n \"RowVersion\",\n ];\n fields.forEach((field) => (nextPerson[field] = \"\"));\n\n nextPerson.hasBeenModified = false;\n nextPerson.id = 0;\n\n newCustomers.push(nextPerson);\n }\n });\n record.customerIncident.customers = newCustomers;\n record.customerIncident.customerIds = existingCustomers;\n\n record.customerIncident.customerIncidentDetails = data.description;\n\n record.customerIncident.capturedByCctv = data.capturedByCctv;\n record.customerIncident.anyoneInjured = data.injuries;\n if (data.injuries) {\n record.customerIncident.detailsOfInjured = data.injuryDetails;\n }\n\n const esCalled = data.esCalled;\n record.customerIncident.emergencyServicesCalled = esCalled;\n\n if (esCalled) {\n record.customerIncident.policeCalled = data.esTypes.includes(\"police\")\n ? true\n : false;\n record.customerIncident.ambulanceCalled = data.esTypes.includes(\"ambulance\")\n ? true\n : false;\n record.customerIncident.fireServiceCalled = data.esTypes.includes(\"fire\")\n ? true\n : false;\n\n record.customerIncident.timeEmergencyServicesCalled = convertToIsoDateTime(\n data.date,\n data.timeServicesContacted,\n );\n\n record.customerIncident.emergencyServicesAttended = !data\n .servicesDidNotAttend;\n if (!data.servicesDidNotAttend) {\n record.customerIncident.timeEmergencyServicesArrived =\n convertToIsoDateTime(data.date, data.timeServicesArrived);\n }\n\n if (data.servicesDidNotAttend) {\n record.customerIncident.incidentNumber = null;\n record.customerIncident.officerId = null;\n record.customerIncident.officer = null;\n record.customerIncident.ambulanceDetails = null;\n } else {\n record.customerIncident.incidentNumber = data.incidentNumber;\n\n record.customerIncident.officerId =\n data.esTypes.includes(\"police\") && data.officer.id\n ? data.officer.id\n : null;\n\n if (!data.esTypes.includes(\"police\") || data.officer.id) {\n record.customerIncident.officer = null;\n } else {\n const { policeId } = OfficerAction.data();\n const officer = newOfficer(data.officer, policeId);\n let officerRecord = { ...formData.officerRecord, ...officer };\n officerRecord.RowVersion = \"\";\n\n record.customerIncident.officer = officerRecord;\n }\n\n if (data.esTypes.includes(\"ambulance\")) {\n record.customerIncident.ambulanceDetails = data.ambulanceDetails;\n }\n }\n }\n\n record.customerIncident.comments = data.comments;\n\n record.site.guid = siteGuid;\n\n record.enforcementVisit = null;\n record.gamblingDispute = null;\n record.suspiciousActivity = null;\n\n return record;\n};\n\nexport default prepareIncidentData;\n","import { useCallback, useEffect } from \"react\";\n\n// Client\nimport IncidentClient from \"@common/api/IncidentClient\";\n\n// Actions\nimport CustomerIncidentAction from \"@common/redux/actions/CustomerIncidentAction\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport { parseCustomerIncidentResponse } from \"../helpers/compliance\";\n\n// Helpers\nimport fetchIncidentData from \"@common/components/helpers/CustomerIncident/fetchIncidentData\";\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport prepareIncidentData from \"@common/components/helpers/CustomerIncident/prepareIncidentData\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport { handleSuccess } from \"@common/components/helpers/success\";\n\nconst useCustomerIncidentForm = ({ formData, siteGuid, form, history }) => {\n const watchCustomerIncidentType = form.watch(\"customerIncidentType\");\n const setValue = form.setValue;\n\n const [{ isDesktop }] = useLogin();\n\n useEffect(() => {\n if (watchCustomerIncidentType && watchCustomerIncidentType.policeIncident) {\n setValue(\"esCalled\", true, { shouldValidate: true });\n }\n }, [watchCustomerIncidentType, formData.customerIncidentTypes, setValue]);\n\n const handleFormLoad = useCallback(() => {\n fetchIncidentData(siteGuid);\n }, [siteGuid]);\n\n useEffect(() => {\n handleFormLoad();\n }, [handleFormLoad]);\n\n const handleFormReset = () => {\n handleReset(\n form.reset,\n CustomerIncidentAction.reset,\n OfficerAction.reset,\n CustomerFormAction.reset,\n OfficerFormModalAction.reset,\n );\n handleFormLoad();\n };\n\n const onSubmit = (data) => {\n CustomerIncidentAction.dispatch(data);\n\n const record = prepareIncidentData(data, formData, siteGuid);\n const fnSubmit = isDesktop ? IncidentClient.Update : IncidentClient.Create;\n\n LoadingAction.set(true).then(() =>\n fnSubmit(record)\n .then(\n (response) => {\n const verb = isDesktop ? \"updated\" : \"created\";\n AlertModalAction.open(\n `The customer incident was successfully ${verb}!`,\n \"Success\",\n isDesktop ? () => {} : () => history.push(\"/compliance\"),\n );\n\n if (!isDesktop) {\n handleFormReset();\n } else {\n form.reset(parseCustomerIncidentResponse(response));\n LoginAction.dispatch({ isInReadMode: true });\n }\n },\n (error) =>\n handleError(\n error,\n \"Error\",\n \"There is an error submitting customer incident.\",\n ),\n )\n .finally(() => {\n LoadingAction.set(false);\n })\n );\n };\n\n const onError = (errors) => console.log(\"Submit errors \", errors);\n\n return { onSubmit, onError, handleFormReset, isDesktop };\n};\n\nexport default useCustomerIncidentForm;\n","import {\n castCustomerForSubmission,\n castCustomerToTable,\n} from \"../Customer/customers\";\nimport { transformData } from \"@common/components/helpers/identity\";\nimport CustomerIncidentAction from \"@common/redux/actions/CustomerIncidentAction\";\n\nconst customerIncidentFormHelpers = ({ props, methods, tableData }) => {\n const { customerFormOptions } = props;\n const customerUnknown = methods.watch(\"customerUnknown\");\n\n const customerListsUpdate = (formValue, tableValue) => {\n let getCustomers = methods.getValues(\"customers\");\n let customers = getCustomers ? [...getCustomers] : [];\n\n if (formValue.id && customers.some((el) => el.id === formValue.id)) {\n return;\n }\n\n formValue.index =\n customers.length > 0 ? customers[customers.length - 1].index + 1 : 1;\n customers.push(formValue);\n\n methods.setValue(\"customers\", customers, { shouldValidate: true });\n\n let tableDataUpdate = tableData ? [...tableData] : tableData;\n tableValue.index =\n tableDataUpdate.length > 0\n ? tableDataUpdate[tableDataUpdate.length - 1].index + 1\n : 1;\n if (!tableValue.id) tableValue.id = 0 - tableValue.index;\n tableDataUpdate.push(tableValue);\n CustomerIncidentAction.dispatch({ customers: tableDataUpdate });\n };\n\n const onSelect = (value) => {\n const filteredCustomer = customerFormOptions.customersOptions.find(\n (x) => x.key === value\n );\n if (!filteredCustomer) {\n console.warn(\"Filtered customer is not found!\");\n return;\n }\n customerListsUpdate(\n castCustomerForSubmission(filteredCustomer),\n castCustomerToTable(filteredCustomer)\n );\n methods.setValue(\"searchedCustomer\", null);\n };\n\n const handleNewCustomer = (value) => {\n if (customerUnknown) value.name = \"Unknown\";\n customerListsUpdate(value, transformData(value));\n };\n\n const handleRemoveCustomer = (customer) => {\n let getCustomers = methods.getValues(\"customers\");\n let customers = getCustomers ? [...getCustomers] : [];\n let customersUpdate = customers.filter(function (obj) {\n return obj.index !== customer.index;\n });\n if (customersUpdate.length === 0) customersUpdate = [];\n methods.setValue(\"customers\", customersUpdate, { shouldValidate: true });\n\n let tableDataCopy = [...tableData];\n let tableDataUpdate = tableDataCopy.filter(function (obj) {\n return obj.index !== customer.index;\n });\n if (tableDataUpdate.length === 0) tableDataUpdate = [];\n CustomerIncidentAction.dispatch({ customers: tableDataUpdate });\n };\n\n return { onSelect, handleNewCustomer, handleRemoveCustomer };\n};\n\nexport default customerIncidentFormHelpers;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport { Form } from \"semantic-ui-react\";\nimport { useFormContext } from \"react-hook-form\";\n\n// Actions\nimport CustomerIncidentAction from \"@common/redux/actions/CustomerIncidentAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\n\n// Hooks and Helpers\nimport useCustomerIncidentForm from \"@common/components/hooks/useCustomerIncidentForm\";\nimport customerIncidentFormHelpers from \"@common/components/helpers/CustomerIncident/customerIncidentFormHelpers\";\nimport { getCurrentDateTime } from \"@common/components/helpers/datetime\";\n\n// Components\nimport EmergencyServicesForm from \"@common/components/shared/forms/EmergencyServicesForm\";\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport StandardHiddenInputs from \"@common/components/shared/forms/StandardHiddenInputs\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport DateAndTimeGroup from \"@common/components/shared/forms/DateAndTimeGroup\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\nimport CustomerForm from \"@common/components/shared/CustomerForm\";\nimport UploadComponent from \"@common/components/shared/forms/UploadComponent\";\n\nconst CustomerIncidentForm = (props) => {\n const formData = props.data;\n const siteGuid = props.loginData.siteGuid;\n\n const form = useFormContext();\n const {\n control,\n register,\n watch,\n handleSubmit,\n formState: { errors, isValid },\n } = form;\n\n const [\n watchInjuries,\n watchESCalled,\n watchServices,\n watchDidNotAttend,\n watchCctv,\n ] = watch([\n \"injuries\",\n \"esCalled\",\n \"esTypes\",\n \"servicesDidNotAttend\",\n \"capturedByCctv\",\n ]);\n\n const { onSelect, handleNewCustomer, handleRemoveCustomer } =\n customerIncidentFormHelpers({\n props,\n methods: form,\n tableData: formData.customers,\n });\n\n const history = useHistory();\n const { onSubmit, onError, handleFormReset, isDesktop } =\n useCustomerIncidentForm({\n formData,\n siteGuid,\n form,\n history,\n });\n\n return (\n
\n \n \n\n \n\n \n\n \n\n \n {isDesktop && watchCctv && }\n\n \n\n {watchInjuries && (\n \n )}\n\n {watchServices && (\n \n )}\n\n \n\n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n data: CustomerIncidentAction.getStatePath(state),\n customerFormOptions: CustomerFormAction.getStatePath(state),\n loginData: LoginAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(CustomerIncidentForm);\n","import * as yup from \"yup\";\nimport {\n validateDate,\n validateTime,\n} from \"@common/components/helpers/datetime\";\nimport {\n notFutureTime,\n notInFuture,\n} from \"@common/components/helpers/validation-schemas/datetimeSchema\";\n\nexport const customerIncidentSchema = yup\n .object()\n .shape({\n searchedCustomer: yup.string().notRequired(),\n date: yup\n .string()\n .required(\"Date is required.\")\n .test(\"validDate\", \"Date is not valid.\", validateDate),\n time: yup\n .string()\n .required(\"Time is required.\")\n .test(\"validTime\", \"Time is not valid.\", validateTime),\n customerIncidentType: yup.object().shape({\n id: yup.number().positive().min(1, \"Incident type is required.\"),\n name: yup.string(),\n detailsRequired: yup.boolean(),\n policeIncident: yup.boolean(),\n }),\n customers: yup\n .array()\n .of(yup.object())\n .required(\"Persons involved are required.\")\n .min(1, \"Persons involved are required.\"),\n description: yup.string().required(\"Description is required.\"),\n capturedByCctv: yup\n .boolean()\n .required(\"You must say if the incident was captured by ccTV.\"),\n injuries: yup.boolean().required(\"You must say if anyone was injured.\"),\n injuryDetails: yup.string().when(\"injuries\", {\n is: true,\n then: (schema) =>\n schema.required(\"You must enter details of the injuries.\"),\n }),\n esCalled: yup\n .boolean()\n .required(\"You must say if emergency services were called.\"),\n esTypes: yup\n .array()\n .of(\n yup\n .string()\n .oneOf(\n [\"police\", \"ambulance\", \"fire\"],\n \"At least one emergency service is required.\",\n ),\n )\n .when(\"esCalled\", {\n is: true,\n then: (schema) =>\n schema\n .required(\"Emergency services types are required.\")\n .min(1, \"At least one emergency service is required.\"),\n }),\n ambulanceDetails: yup\n .string()\n .when([\"esCalled\", \"esTypes\", \"servicesDidNotAttend\"], {\n is: (esCalled, esTypes, servicesDidNotAttend) =>\n esCalled === true &&\n esTypes.includes(\"ambulance\") &&\n !servicesDidNotAttend,\n then: (schema) => schema.required(\"Ambulance details are required.\"),\n }),\n timeServicesContacted: yup.string().when(\"esCalled\", {\n is: true,\n then: (schema) =>\n schema\n .test(\"validTime\", \"Time is not valid.\", validateTime)\n .required(\"Emergency services called time is required.\")\n .test(\n \"not-future-time\",\n \"Time cannot be in the future\",\n notFutureTime,\n ),\n }),\n servicesDidNotAttend: yup.boolean().when(\"esCalled\", {\n is: true,\n then: (schema) =>\n schema.when(\"timeServicesArrived\", {\n is: (timeServicesArrived) => timeServicesArrived === \"\",\n then: (schema) =>\n schema.required(\n \"Did not attend is required when there is no arrival time.\",\n ),\n }),\n }),\n timeServicesArrived: yup.string().when(\"esCalled\", {\n is: true,\n then: (schema) =>\n schema.when(\"servicesDidNotAttend\", {\n is: (servicesDidNotAttend) => servicesDidNotAttend === false,\n then: (schema) =>\n schema\n .test(\"validDate\", \"Time is not valid.\", validateTime)\n .required(\n \"Arrival time is required, unles the emergency services did not attend.\",\n )\n .test(\n \"not-future-time\",\n \"Time cannot be in the future\",\n notFutureTime,\n ),\n }),\n }),\n officer: yup\n .mixed()\n .nullable()\n .when([\"esCalled\", \"esTypes\", \"servicesDidNotAttend\"], {\n is: (esCalled, esTypes, servicesDidNotAttend) =>\n esCalled === true &&\n esTypes.includes(\"police\") &&\n !servicesDidNotAttend,\n then: (schema) => schema.required(\"Officer is required.\"),\n }),\n incidentNumber: yup\n .string()\n .when([\"esCalled\", \"esTypes\", \"servicesDidNotAttend\"], {\n is: (esCalled, esTypes, servicesDidNotAttend) =>\n esCalled === true &&\n esTypes.includes(\"police\") &&\n !servicesDidNotAttend,\n then: (schema) => schema.required(\"Incident number is required.\"),\n }),\n comments: yup.string(),\n })\n .test(\n \"not-future-date-time\",\n \"Date and time cannot be set in the future\",\n function (value, ctx) {\n return notInFuture(value, \"date\", \"time\", ctx);\n },\n );\n","import React, { useEffect } from 'react';\nimport useEventDetailsGrid from '@hooks/useEventDetailsGrid';\nimport CustomerIncidentForm from '@common/components/shared/CustomerIncident/CustomerIncidentForm';\nimport { useCustomerIncident } from '@common/components/hooks/useCustomerIncident';\nimport { FormProvider } from 'react-hook-form';\nimport useComplianceView from '../../../hooks/useComplianceView.js';\nimport { CUSTOMER_INCIDENT_TYPE } from '../details/EventDetailsForm.js';\nimport { parseCustomerIncidentResponse } from '@common/components/helpers/compliance.js';\nimport ComplianceHeader from '../ComplianceHeader.js';\nimport useIncidentContainer from '../../../hooks/useIncidentContainer.js';\nimport { Loader } from 'semantic-ui-react';\n\nconst CustomerIncidentContainer = () => {\n\n const { formLoading, incident: { record, record: { rowVersion, incidentType: { name } } } } = useComplianceView();\n const { form, form: { reset } } = useCustomerIncident();\n const { onRowUpdate } = useIncidentContainer();\n\n useEffect(() => {\n if (name !== CUSTOMER_INCIDENT_TYPE) {\n return;\n }\n\n reset(parseCustomerIncidentResponse(record))\n\n }, [record])\n\n if (formLoading) {\n return \n }\n\n return (\n \n\n \n \n \n )\n}\n\nexport default CustomerIncidentContainer;\n","import { useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { customerIncidentSchema } from \"@common/components/helpers/validation-schemas/customerIncidentSchema\";\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport CustomerIncidentAction from \"@common/redux/actions/CustomerIncidentAction\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport CustomerFormAction from \"@common/redux/actions/CustomerFormAction\";\nimport { fetchPoliceId } from \"@common/components/helpers/Officer/searchOfficer\";\nimport { useSelector } from \"react-redux\";\n\nexport const useCustomerIncident = () => {\n const formData = useSelector((state) =>\n CustomerIncidentAction.getStatePath(state)\n );\n\n const form = useForm({\n defaultValues: formData,\n resolver: yupResolver(customerIncidentSchema),\n mode: \"all\",\n });\n\n const history = useHistory();\n const onBack = () => {\n handleReset(\n form.reset,\n CustomerIncidentAction.reset,\n OfficerAction.reset,\n CustomerFormAction.reset,\n OfficerFormModalAction.reset,\n );\n history.push(\"/compliance\");\n };\n\n useEffect(fetchPoliceId, []);\n\n return {\n form,\n formData,\n onBack,\n };\n};\n","import BaseAction from \"./BaseAction\";\nimport EnforcementReducer from \"../reducers/EnforcementReducer\";\n\nclass EnforcementAction extends BaseAction {\n onClose = () => { };\n\n open = async (data) => await this.dispatch({ ...data, open: true });\n\n setLoadingTypes = async (value) => this.dispatch({ loadingTypes: value });\n}\n\nconst action = new EnforcementAction(EnforcementReducer);\n\nexport default action;\n","import * as yup from \"yup\";\nimport { validateDate, validateTime } from \"../../helpers/datetime\";\nimport { notInFuture } from \"./datetimeSchema\";\n\n// Define the validation schema using yup\nexport const enforcementSchema = yup.object().shape({\n date: yup\n .string()\n .required(\"Date is required\")\n .test(\"is-valid-date\", \"Date is not valid\", validateDate),\n time: yup\n .string()\n .required(\"Time is required\")\n .test(\"is-valid-time\", \"Time is not valid\", validateTime),\n officerTypeId: yup.number().required(\"Officer type is required\"),\n visitDetails: yup.string().required(\"Nature of visit is required\"),\n incidentNumber: yup.string().when(\"officerTypeId\", {\n is: (x) => x === 1,\n then: (schema) => schema.required(\"Incident number is required\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n officer: yup.object().required(\"Officer is required\"),\n comments: yup.string().notRequired(),\n}).test(\n \"not-future-date-time\",\n \"Date and time cannot be set in the future\",\n function (value, ctx) {\n return notInFuture(\n value,\n \"date\",\n \"time\",\n ctx,\n );\n },\n);\n","import { handleError } from \"@common/components/helpers/error\";\nimport IncidentClient from \"@common/api/IncidentClient\";\nimport EnforcementAction from \"@common/redux/actions/EnforcementAction\";\nimport { enforcementTypesToSelect } from \"../options/enforcementTypeOptions\";\n\nconst fetchEnforcementTypes = () => {\n EnforcementAction.setLoadingTypes(true)\n .then(() => {\n IncidentClient.MetaData()\n .then((response) => {\n const options = enforcementTypesToSelect(\n response.enforcementVisitTypes,\n );\n EnforcementAction.dispatch({\n typeOptions: options,\n });\n })\n .catch((\n error,\n ) => {\n console.error(error);\n handleError(error);\n })\n .finally(() => EnforcementAction.setLoadingTypes(false));\n });\n};\n\nexport default fetchEnforcementTypes;\n","export const defaultEnforcementTypes = [\n {\n id: 3,\n name: \"Environmental Health\",\n handlesGamblingRelated: false,\n handlesNonGamblingRelated: true,\n },\n {\n id: 4,\n name: \"Fire Officer\",\n handlesGamblingRelated: false,\n handlesNonGamblingRelated: true,\n },\n {\n id: 6,\n name: \"Gambling Comission Officer\",\n handlesGamblingRelated: true,\n handlesNonGamblingRelated: false,\n },\n {\n id: 2,\n name: \"Local Goverment Officer\",\n handlesGamblingRelated: true,\n handlesNonGamblingRelated: true,\n },\n {\n id: 5,\n name: \"Other\",\n handlesGamblingRelated: false,\n handlesNonGamblingRelated: true,\n },\n {\n id: 1,\n name: \"Police\",\n handlesGamblingRelated: true,\n handlesNonGamblingRelated: true,\n },\n];\n\nexport const enforcementTypesToSelect = (options) => {\n // Sort the options by id in ascending order\n options.sort((a, b) => a.id - b.id);\n\n return options.map((x) => ({\n key: x.id,\n text: x.name,\n value: x.id,\n // Attributes to DOM elements cannot be boolean, and must be converted to string\n gambling: x.handlesGamblingRelated ? \"true\" : \"false\",\n nongambling: x.handlesNonGamblingRelated ? \"true\" : \"false\",\n }));\n};\n\nexport const filterEnforcementTypes = (isGamblingRelated, options) =>\n options.filter((option) =>\n isGamblingRelated\n ? option.gambling === \"true\"\n : option.nongambling === \"true\"\n );\n","import { convertToIsoDateTime } from \"../datetime\";\n\nconst enforcementCreatePayload = (data, officer, siteGuid) => {\n return {\n rowVersion: data.rowVersion,\n id: data.id,\n incidentDate: convertToIsoDateTime(data.date, data.time),\n incidentStatus: {\n id: 2,\n name: \"In Review\",\n },\n incidentType: {\n id: 1,\n name: \"Enforcement Visit\",\n },\n site: { guid: siteGuid },\n enforcementVisit: {\n isGamblingRelated: data.isGamblingRelated,\n officerId: data.officer.id ? data.officer.id : 0,\n enforcementVisitType: { id: data.officerTypeId, name: \"\" },\n officer: data.officer,\n visitDetails: data.visitDetails,\n incidentNumber: data.incidentNumber,\n comments: data.comments,\n },\n customerIncident: null,\n gamblingDispute: null,\n suspiciousActivity: null,\n };\n};\n\nexport default enforcementCreatePayload;\n","import { useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\n\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport EnforcementAction from \"@common/redux/actions/EnforcementAction\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport useLogin from \"@common/components/hooks/useLogin\";\nimport IncidentClient from \"@common/api/IncidentClient\";\nimport enforcementCreatePayload from \"@common/components/helpers/Enforcement/enforcementSubmission\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport { filterEnforcementTypes } from \"@common/components/helpers/options/enforcementTypeOptions\";\nimport { parseEnforcementVisitResponse } from \"@common/components/helpers/compliance\";\nimport {\n handleReset,\n handleResetFunctions,\n} from \"@common/components/helpers/reset\";\nimport fetchEnforcementTypes from \"@common/components/helpers/Enforcement/fetchEnforcementTypes\";\n\nconst useEnforcementForm = () => {\n const history = useHistory();\n const methods = useFormContext();\n const {\n reset,\n watch,\n formState: { isValid, errors },\n } = methods;\n const [officerTypeId, isGamblingRelated] = watch([\n \"officerTypeId\",\n \"isGamblingRelated\",\n ]);\n\n const { officer } = useSelector((store) => OfficerAction.getStatePath(store));\n const { typeOptions, loadingTypes } = useSelector((store) =>\n EnforcementAction.getStatePath(store)\n );\n\n const [{ isDesktop, siteGuid }] = useLogin();\n\n useEffect(() => {\n OfficerFormModalAction.dispatch({\n officerType: officerTypeId,\n isEnforcementPolice: officerTypeId === 1 ? true : false,\n });\n }, [officerTypeId]);\n\n const options = filterEnforcementTypes(isGamblingRelated, typeOptions);\n\n const resetActions = [\n reset,\n EnforcementAction.reset,\n OfficerAction.reset,\n OfficerFormModalAction.reset,\n fetchEnforcementTypes,\n ];\n\n const resetForm = () => handleReset(...resetActions);\n\n const onSubmit = (values) => {\n if (!isValid) {\n console.error(errors);\n }\n\n const payload = enforcementCreatePayload(values, officer, siteGuid);\n\n const fnSubmit = isDesktop ? IncidentClient.Update : IncidentClient.Create;\n\n LoadingAction.set(true).then(() =>\n fnSubmit(payload).then((response) => {\n const verb = isDesktop ? \"updated\" : \"created\";\n AlertModalAction.open(\n `The enforcement visit was successfully ${verb}!`,\n \"Success\",\n isDesktop ? () => {} : () => history.push(\"/compliance\"),\n );\n if (!isDesktop) {\n handleResetFunctions(...resetActions);\n } else {\n LoginAction.dispatch({ isInReadMode: true });\n reset(parseEnforcementVisitResponse(response));\n }\n }).catch((error) =>\n handleError(\n error,\n \"Error\",\n `There is an error submitting enforcement visit: ${error}`,\n )\n )\n .finally(() => LoadingAction.set(false))\n );\n };\n\n const handleNewOfficer = (value) => {\n value.officerType = { id: officerTypeId };\n methods.setValue(\"officer\", value, { shouldValidate: true });\n\n OfficerAction.editOfficer(value);\n };\n\n const handleRemoveOfficer = () => {\n OfficerAction.editOfficer(null);\n };\n\n return {\n officerTypeId,\n loadingTypes,\n isGamblingRelated,\n options,\n onSubmit,\n handleNewOfficer,\n handleRemoveOfficer,\n resetForm,\n methods,\n };\n};\n\nexport default useEnforcementForm;\n","import React from \"react\";\nimport { Form, GridRow } from \"semantic-ui-react\";\n\n// Hooks and Helpers\nimport useEnforcementForm from \"@common/components/hooks/useEnforcementForm\";\nimport { getCurrentDateTime } from \"@common/components/helpers/datetime\";\n\n// Components\nimport StandardHiddenInputs from \"@common/components/shared/forms/StandardHiddenInputs\";\nimport TextareaComponent from \"@common/components/shared/forms/TextareaComponent\";\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport ToggleComponent from \"@common/components/shared/forms/ToggleComponent\";\nimport DateAndTimeGroup from \"@common/components/shared/forms/DateAndTimeGroup\";\nimport OfficerForm from \"@common/components/shared/forms/OfficerForm\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\n\nconst EnforcementForm = () => {\n const {\n officerTypeId,\n loadingTypes,\n isGamblingRelated,\n options,\n onSubmit,\n handleNewOfficer,\n handleRemoveOfficer,\n resetForm,\n methods,\n } = useEnforcementForm();\n\n const {\n control,\n register,\n handleSubmit,\n formState: { isValid, errors },\n } = methods;\n\n return (\n
\n \n \n \n {isGamblingRelated !== null && (\n <>\n \n \n VISIT DETAILS\n \n \n {officerTypeId && (\n \n )}\n \n \n )}\n \n \n );\n};\n\nexport default EnforcementForm;\n","import React, { useEffect } from \"react\";\nimport { useEnforcement } from \"@common/components/hooks/useEnforcement\";\nimport EnforcementForm from \"@common/components/shared/Enforcement/EnforcementForm\";\nimport { FormProvider } from \"react-hook-form\";\nimport { ENFORCEMENT_VISIT_TYPE } from \"../details/EventDetailsForm.js\";\nimport useComplianceView from \"../../../hooks/useComplianceView.js\";\nimport { parseEnforcementVisitResponse } from \"@common/components/helpers/compliance.js\";\nimport useIncidentContainer from \"../../../hooks/useIncidentContainer.js\";\nimport ComplianceHeader from \"../ComplianceHeader.js\";\nimport { Loader } from \"semantic-ui-react\";\n\nconst EnforcementVisitContainer = () => {\n const { methods, methods: { reset } } = useEnforcement();\n const { formLoading, incident: { record, record: { id, incidentDetails: { officer }, incidentType: { name } } } } = useComplianceView();\n const { onRowUpdate } = useIncidentContainer();\n\n useEffect(() => {\n if (name !== ENFORCEMENT_VISIT_TYPE) {\n return;\n }\n\n reset(parseEnforcementVisitResponse(record))\n\n methods.setValue(\"officer\", officer)\n }, [record])\n\n if (formLoading) {\n return \n }\n\n return (\n \n \n \n \n );\n};\n\nexport default EnforcementVisitContainer;\n","import EnforcementAction from \"../../redux/actions/EnforcementAction\";\nimport { useForm } from \"react-hook-form\";\nimport { useSelector } from \"react-redux\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { enforcementSchema } from \"@common/components/helpers/validation-schemas/enforcementSchema\";\nimport { handleReset } from \"../helpers/reset\";\nimport { useEffect } from \"react\";\nimport fetchEnforcementTypes from \"@common/components/helpers/Enforcement/fetchEnforcementTypes\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport OfficerAction from \"@common/redux/actions/OfficerAction\";\nimport { fetchPoliceId } from \"../helpers/Officer/searchOfficer\";\nimport { useHistory } from \"react-router-dom\";\n\nexport const useEnforcement = () => {\n const history = useHistory();\n const { formData } = useSelector((state) =>\n EnforcementAction.getStatePath(state)\n );\n\n const methods = useForm({\n resolver: yupResolver(enforcementSchema),\n defaultValues: formData,\n mode: \"all\",\n });\n\n useEffect(fetchEnforcementTypes, []);\n\n useEffect(fetchPoliceId, []);\n\n const handleBack = () => {\n handleReset(\n methods.reset,\n EnforcementAction.reset,\n OfficerAction.reset,\n OfficerFormModalAction.reset,\n );\n history.push(\"/compliance\");\n };\n\n return { methods, handleBack };\n};\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass SelfExclusionClient extends ApiClient {\n constructor() {\n super(\"SelfExclusion\");\n this.setApiUrlKey(\"comp_api_url\");\n }\n\n MetaData = async () => {\n return await this.get(\"Create\");\n };\n\n Create = async (payload) => {\n return await this.post(`Create`, payload);\n };\n\n ReadForUpdate = async (id) => await this.get(`Update?id=${id}`);\n\n Read = async (id) => {\n const record = await this.get(`Read?id=${id}`);\n return { record };\n };\n\n Update = async (payload) => await this.post(`Update`, payload);\n}\n\nconst client = new SelfExclusionClient();\n\nexport default client;\n","import * as yup from \"yup\";\nimport { validateDate, validateTime } from \"../datetime\";\nimport { notInFuture } from \"./datetimeSchema\";\n\nexport const selfExclusionSchema = yup.object().shape({\n date: yup.string().required(\"Date is required\").test(\n \"is-valid-date\",\n \"Date is not valid\",\n validateDate,\n ),\n time: yup.string().required(\"Time is required\").test(\n \"is-valid-time\",\n \"Time is not valid\",\n validateTime,\n ),\n selfExclusionType: yup.object().shape({\n id: yup.number().required(\"Self-exclusion event is required\"),\n }),\n customerReference: yup.string().required(\n \"Customer reference is required\",\n ),\n}).test(\n \"not-future-date-time\",\n \"Date and time cannot be set in the future\",\n function (value, ctx) {\n return notInFuture(\n value,\n \"date\",\n \"time\",\n ctx,\n );\n },\n);\n","import { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { handleReset } from \"@common/components/helpers/reset\";\nimport { selfExclusionSchema } from \"../helpers/validation-schemas/selfExclusionSchema\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n getCurrentDateTime,\n getDatePart,\n getTimePart,\n} from \"../helpers/datetime\";\n\nconst useSelfExclusion = () => {\n const history = useHistory();\n const methods = useForm({\n resolver: yupResolver(selfExclusionSchema),\n defaultValues: selfExclusionDefaultValues,\n mode: \"all\",\n });\n\n const handleBack = () => {\n handleReset(methods.reset);\n history.push(\"/compliance\");\n };\n\n return {\n methods,\n handleBack,\n };\n};\nexport default useSelfExclusion;\n\nconst selfExclusionDefaultValues = {\n date: getDatePart(getCurrentDateTime()),\n time: getTimePart(getCurrentDateTime()),\n selfExclusionTypes: [],\n selfExclusionType: { id: null },\n customerReference: null,\n};\n","import { useFormContext } from \"react-hook-form\";\nimport { selfExclusionCreatePayload } from \"../helpers/SelfExclusion/selfExclusionSubmission\";\nimport useLogin from \"./useLogin\";\nimport LoadingAction from \"@common/redux/actions/LoadingAction\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport SelfExclusionClient from \"@common/api/SelfExclusionClient\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport { useHistory } from \"react-router-dom\";\nimport { handleReset } from \"../helpers/reset\";\nimport { useEffect } from \"react\";\nimport { mapToSelect } from \"@common/components/helpers/forms\";\nimport { parseSelfExclusionResponse } from \"../helpers/compliance.js\";\n\nconst fetchSelfExclusionMetaData = (methods) => {\n SelfExclusionClient.MetaData().then((response) => {\n const options = mapToSelect(response.selfExclusionTypes);\n methods.setValue(\"selfExclusionTypes\", options);\n });\n};\n\nconst useSelfExclusionForm = () => {\n const history = useHistory();\n const methods = useFormContext();\n const {\n reset,\n getValues,\n formState: { errors, isValid },\n } = methods;\n\n const [{ isDesktop, siteGuid }] = useLogin();\n\n useEffect(() => {\n fetchSelfExclusionMetaData(methods);\n }, []);\n\n const onReset = () => {\n handleReset(reset);\n fetchSelfExclusionMetaData(methods);\n };\n\n const onSubmit = (data) => {\n if (!isValid) {\n console.error(errors);\n return;\n }\n const payload = selfExclusionCreatePayload(data, siteGuid);\n const fnSubmit = isDesktop\n ? SelfExclusionClient.Update\n : SelfExclusionClient.Create;\n\n LoadingAction.set(true).then(() =>\n fnSubmit(payload).then((record) => {\n AlertModalAction.open(\n \"The self exclusion record was successfully submitted!\",\n \"Success\",\n isDesktop ? () => {} : () => history.push(\"/compliance\"),\n );\n\n if (!isDesktop) {\n reset();\n } else {\n reset({\n ...getValues(),\n ...parseSelfExclusionResponse({ record }),\n });\n\n LoginAction.dispatch({ isInReadMode: true });\n }\n }).catch((error) => {\n console.log(error);\n handleError(\n error,\n \"Errors\",\n \"There is an error submitting self exclusion record.\",\n );\n }).finally(() => LoadingAction.set(false))\n );\n };\n\n return { methods, onSubmit, onReset };\n};\n\nexport default useSelfExclusionForm;\n","import { convertToIsoDateTime } from \"../datetime\";\n\nexport const selfExclusionCreatePayload = (data, siteGuid) => {\n return {\n ...data,\n selfExclusionDate: convertToIsoDateTime(data.date, data.time),\n site: { guid: siteGuid },\n };\n};\n","import React from \"react\";\nimport { Form } from \"semantic-ui-react\";\nimport useSelfExclusionForm from \"../../hooks/useSelfExclusionForm\";\nimport { getCurrentDateTime } from \"../../helpers/datetime\";\n\nimport DateAndTimeGroup from \"@common/components/shared/forms/DateAndTimeGroup\";\nimport FormButtonsComponent from \"@common/components/shared/forms/FormButtonsComponent\";\nimport SelectComponent from \"@common/components/shared/forms/SelectComponent\";\nimport InputComponent from \"@common/components/shared/forms/InputComponent\";\nimport StandardHiddenInputs from \"@common/components/shared/forms/StandardHiddenInputs\";\n\nconst SelfExclusionForm = () => {\n const { methods, onSubmit, onReset } = useSelfExclusionForm();\n const {\n watch,\n handleSubmit,\n register,\n control,\n formState: { errors, isValid },\n } = methods;\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default SelfExclusionForm;\n","\nimport React, { useEffect } from \"react\";\nimport { FormProvider } from \"react-hook-form\";\nimport SelfExclusionClient from \"@common/api/SelfExclusionClient\";\nimport useEventDetailsGrid from \"@hooks/useEventDetailsGrid\";\nimport ComplianceHeader from \"../ComplianceHeader\";\nimport useComplianceView from \"../../../hooks/useComplianceView\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport useSelfExclusion from \"@common/components/hooks/useSelfExclusion\";\nimport SelfExclusionForm from \"@common/components/shared/SelfExclusion/SelfExclusionForm\";\nimport { prepareDateTime } from \"@common/components/helpers/compliance\";\nimport { parseSelfExclusionResponse } from \"../../../common/components/helpers/compliance.js\";\n\nfunction useSelfExclusionContainer() {\n const { setViewData } = useComplianceView();\n const { activeRow: { event: { id } } } = useEventDetailsGrid()\n const { methods } = useSelfExclusion();\n const { reset, getValues } = methods;\n\n const loadRecord = (isRead = true) => {\n if (!id) {\n return;\n }\n setViewData({ formLoading: true })\n\n const fnRead = isRead ? SelfExclusionClient.Read : SelfExclusionClient.ReadForUpdate;\n\n fnRead(id).then(\n (response) => {\n const parsed = parseSelfExclusionResponse(response)\n reset({\n ...getValues(),\n ...parsed\n })\n },\n error => {\n setViewData({ formLoading: false })\n handleError(error);\n }\n )\n }\n\n useEffect(loadRecord, [id])\n\n return {\n methods,\n loadRecord\n }\n}\n\nconst SelfExclusionContainer = () => {\n\n const { methods, loadRecord } = useSelfExclusionContainer();\n\n return (\n \n \n \n \n );\n};\n\nexport default SelfExclusionContainer;\n","import React, { useEffect } from 'react';\nimport useEventDetailsGrid from '@hooks/useEventDetailsGrid';\nimport { Loader, Message } from 'semantic-ui-react';\nimport CustomerInteractionContainer from '@components/Compliance/forms/CustomerInteractionContainer';\nimport AgeVerificationContainer from '@components/Compliance/forms/AgeVerificationContainer';\nimport ObservationContainer from '@components/Compliance/forms/ObservationContainer';\nimport UnresolvedDisputeContainer from '@components/Compliance/forms/UnresolvedDisputeContainer';\nimport useIncidentContainer from '@hooks/useIncidentContainer';\nimport useComplianceView from '@hooks/useComplianceView';\nimport SuspiciousActivityContainer from '../forms/SuspiciousActivityContainer.js';\nimport CustomerIncidentContainer from '../forms/CustomerIncidentContainer.js';\nimport EnforcementVisitContainer from '../forms/EnforcementVisitContainer.js';\nimport SelfExclusionContainer from '../forms/SelfExclusionContainer.js';\n\nconst INCIDENT_TYPE = 'Incident';\nconst CUSTOMER_INTERACTION_TYPE = 'Customer Interaction';\nconst AGE_VERFIFICATION_TYPE = 'Age Verification';\nconst OBSERVATION_TYPE = 'Observation';\nexport const SELF_EXCLUSION_TYPE = 'Self Exclusion';\n\nexport const SUSPICIOUS_ACTIVITY_TYPE = 'Suspicious Activity';\nexport const CUSTOMER_INCIDENT_TYPE = 'Customer Incident';\nexport const GAMBLING_DISPUTE_TYPE = 'Gambling Dispute';\nexport const ENFORCEMENT_VISIT_TYPE = 'Enforcement Visit';\n\nconst IncidentContainer = () => {\n\n const { onRowUpdate } = useIncidentContainer();\n const { activeRow: { event: { id } } } = useEventDetailsGrid();\n const { incident: { record, record: { incidentType: { name } } } } = useComplianceView();\n\n useEffect(onRowUpdate, [id])\n\n if (!name) {\n return <>\n }\n\n switch (name) {\n\n case SUSPICIOUS_ACTIVITY_TYPE:\n return \n\n case GAMBLING_DISPUTE_TYPE:\n return \n\n case CUSTOMER_INCIDENT_TYPE:\n return \n\n case ENFORCEMENT_VISIT_TYPE:\n return \n\n default:\n return No form for this incident type.\n\n }\n\n}\n\nconst FormContainer = () => {\n\n const { activeRow } = useEventDetailsGrid()\n\n const { event: { name } } = activeRow\n\n if (!name) {\n return <>\n }\n\n switch (name) {\n case INCIDENT_TYPE:\n return \n\n case CUSTOMER_INTERACTION_TYPE:\n return \n\n case AGE_VERFIFICATION_TYPE:\n return \n\n case OBSERVATION_TYPE:\n return \n\n case SELF_EXCLUSION_TYPE:\n return \n\n default:\n return Form not implemented\n }\n}\n\nconst EventDetailsForm = () => {\n\n\n const { activeRow, activeRow: { id } } = useEventDetailsGrid()\n\n if (!activeRow) {\n return <>\n }\n\n\n return (\n
\n \n
\n )\n}\n\nexport default EventDetailsForm;\n","import React from 'react';\nimport useEventDetailsGrid from '@hooks/useEventDetailsGrid';\nimport moment from 'moment';\nimport { ComplianceUIDateTimeFormat } from '@helpers/dates';\nimport { Label, Loader, Table } from 'semantic-ui-react';\nimport useComplianceView from '@hooks/useComplianceView';\n\nconst CustomerButton = ({ name }) => {\n return \n}\n\nconst EventDetailsTable = () => {\n\n const { isLoading } = useComplianceView();\n const { grid, activeRow, onRowClick } = useEventDetailsGrid();\n\n const headings = [\n {\n name: 'Status',\n textAlign: 'center',\n collapsing: true\n },\n {\n name: 'Date',\n textAlign: 'center',\n collapsing: true\n },\n {\n name: 'Type',\n textAlign: 'left',\n collapsing: false\n },\n {\n name: 'Site',\n textAlign: 'center',\n collapsing: true\n },\n {\n name: 'Customer',\n textAlign: 'center',\n collapsing: true\n },\n {\n name: 'User',\n textAlign: 'center',\n collapsing: true\n },\n {\n name: 'Authorised By',\n textAlign: 'center',\n collapsing: true\n },\n {\n name: 'QR Period',\n textAlign: 'center',\n collapsing: true\n },\n ]\n\n const icons = {\n \"Age Verification\": 'birthday cake',\n \"Customer Interaction\": 'talk',\n \"Incident\": 'exclamation',\n \"Observation\": 'eye'\n }\n\n if (isLoading) {\n return \n }\n\n\n return (\n
\n \n \n \n {headings.map(({ name, textAlign, collapsing }) => {\n return (\n \n {name}\n \n )\n })}\n \n \n \n {grid.map(row => {\n const { status, dateCreated, event, site, createdByPerson, authorisedByPerson, yearQuarter, customers, comments, name } = row;\n return (\n {\n console.log(\"activerow\", row.event.id)\n onRowClick(row)\n }} className='clickable' active={row.id === activeRow?.id}>\n \n {moment(dateCreated).format(ComplianceUIDateTimeFormat)}\n \n \n {site?.name}\n {customers.length > 0 ? customers.map(({ name }) => ) : \"N/A\"}\n {createdByPerson?.name ?? 'N/A'}\n {authorisedByPerson?.name ?? 'N/A'}\n {yearQuarter}\n \n )\n })}\n \n \n
\n )\n}\n\nexport default EventDetailsTable;\n","import React, { useEffect } from 'react';\nimport { Grid, Pagination } from 'semantic-ui-react';\nimport useEventDetailsGrid from '@hooks/useEventDetailsGrid';\nimport EventDetailsStatuses from './EventDetailsStatuses';\nimport useComplianceSummaryFilters from '@hooks/useComplianceSummaryFilters';\nimport EventDetailsForm from './EventDetailsForm';\nimport useComplianceView from '@hooks/useComplianceView';\nimport EventDetailsTable from './EventDetailsTable';\nimport ExpandButton from \"@buttons/ExpandButton\";\nimport useLogin from '@common/components/hooks/useLogin';\n\nconst EventDetailsTab = () => {\n\n const { activeRow, onRefresh } = useEventDetailsGrid();\n const { hideDetails, totalRecords, isLoading, hasSelection, setViewData } = useComplianceView();\n const { activePage, onPageChange, periods, selectedStatuses, selectedPeriod, processedQuarters, selectedQuarter } = useComplianceSummaryFilters();\n const [{ isInReadMode }] = useLogin();\n\n useEffect(onRefresh, [activePage, selectedStatuses, isInReadMode, hasSelection, periods, selectedPeriod, processedQuarters, selectedQuarter]);\n\n const isDetailsVisible = activeRow && !hideDetails;\n\n const widescreen = isDetailsVisible ? 10 : 16;\n const largeScreen = isDetailsVisible ? 9 : 16;\n const computer = isDetailsVisible ? 8 : 16;\n const tablet = 16;\n const mobile = 16;\n\n const recordsPerPage = 25;\n const totalPages = Math.ceil(totalRecords / recordsPerPage);\n const currentItem = ((activePage - 1) * 25) + 1\n const lastItem = Math.min((activePage * recordsPerPage), totalRecords);\n\n return (\n
\n \n \n \n \n \n {activeRow &&\n \n setViewData({ hideDetails: !hideDetails })}\n />\n \n }\n \n \n \n \n \n {isDetailsVisible &&\n \n \n \n }\n \n {totalPages > 0 &&\n \n \n \n \n \n Showing Items {currentItem} to {lastItem} of {totalRecords}.\n \n \n }\n \n
\n );\n}\n\nexport default EventDetailsTab;\n","\nimport React from 'react';\nimport { Checkbox, Dropdown, Form } from 'semantic-ui-react';\nimport MultiSelect from \"@shared/MultiSelect\";\nimport useComplianceSummaryFilters from '@hooks/useComplianceSummaryFilters';\nimport useComplianceView from '@hooks/useComplianceView';\n\nconst TypesFilterItem = ({ id, prefix, name, checked, onClick, disabled }) => {\n\n const onToggle = (e) => {\n e.stopPropagation();\n e.preventDefault();\n onClick(id);\n }\n\n return (\n \n {prefix ? `${prefix} - ${name}` : name}\n \n );\n}\n\nconst TypesFilterDropdown = () => {\n\n const { onEventTypeChange, onSelfExclusionTypeChange, onIncidentTypeChange, selectedEventType, selectedIncidentType, selectedSelfExclusionType, eventTypes, incidentTypes, selfExclusionTypes } = useComplianceSummaryFilters();\n const { isLoading, hasSelection, filters, setViewData } = useComplianceView();\n\n const maximumSelected = selfExclusionTypes.length + eventTypes.length + incidentTypes.length - 2;\n const totalSelected = selectedSelfExclusionType.length + selectedEventType.length + selectedIncidentType.length;\n const allSelected = maximumSelected <= totalSelected;\n\n const onSelectAll = (e) => {\n e.stopPropagation();\n e.preventDefault();\n\n const payload = allSelected\n ? { filters: { ...filters, selectedEventType: [], selectedIncidentType: [], selectedSelfExclusionType: [] } }\n : { filters: { ...filters, selectedEventType: [...eventTypes.filter(x => ![3, 5].includes(x.id)).map(x => x.id)], selectedIncidentType: [...incidentTypes.map(x => x.id)], selectedSelfExclusionType: [...selfExclusionTypes.map(x => x.id)] } }\n setViewData(payload);\n }\n\n return (\n \n \n \n \n \n SELECT ALL\n \n \n {eventTypes.filter(x => ![3, 5].includes(x.id)).map((eventType, index) => )}\n \n {incidentTypes.map((incidentType, index) => )}\n {selfExclusionTypes.map((selfExclusionType, index) => )}\n \n \n\n \n )\n}\n\nexport default TypesFilterDropdown;\n","import React, { useEffect } from 'react';\nimport { DateInput } from 'semantic-ui-calendar-react';\nimport useComplianceView from '@hooks/useComplianceView';\nimport useComplianceSummaryFilters from '@hooks/useComplianceSummaryFilters';\n\nconst PeriodFilters = () => {\n\n const { isLoading, operator, hasSelection } = useComplianceView();\n\n const {\n onChange,\n getMetaData,\n startDate,\n endDate\n } = useComplianceSummaryFilters();\n\n useEffect(getMetaData, [operator, hasSelection]);\n\n const fields = [\n {\n name: 'startDate',\n label: 'From',\n value: startDate\n },\n {\n name: 'endDate',\n label: 'To',\n value: endDate\n }\n ]\n\n return (\n <>\n {fields.map(({ name, label, value }) => {\n return (\n \n )\n })}\n \n )\n}\n\nexport default PeriodFilters;\n","import React from 'react';\nimport { Form, Input } from 'semantic-ui-react';\n\nconst SearchInput = ({ name, value, onChange, disabled }) => {\n return (\n \n \n \n \n )\n}\n\nexport default SearchInput;\n","import React from 'react';\nimport { Dropdown, DropdownItem, DropdownMenu } from 'semantic-ui-react';\n\nconst DateFiltersDropdown = ({ text, items, onChange, className, disabled }) => {\n return (\n \n \n {items.map(({ name, startDate, endDate }) => {\n return onChange(startDate, endDate)} />\n })}\n \n \n )\n}\n\nexport default DateFiltersDropdown;\n","import React from 'react';\nimport { Button } from 'semantic-ui-react';\nimport DownloadButton from \"@buttons/DownloadButton\";\nimport ExpandButton from \"@buttons/ExpandButton\";\nimport useComplianceView from '@hooks/useComplianceView';\nimport useComplianceSummaryGrid from '@hooks/useComplianceSummaryGrid';\n\nconst ComplianceSummaryButtons = () => {\n\n const { expanded, isLoading, setViewData } = useComplianceView();\n const { onRefresh } = useComplianceSummaryGrid();\n\n return <>\n \n setViewData({ expanded: !expanded })}\n />\n { }}\n size=\"medium\"\n />\n \n}\nexport default ComplianceSummaryButtons;\n","import { useCallback } from 'react';\nimport useComplianceView from './useComplianceView';\n\nexport default function useComplianceSummaryGrid() {\n\n const { setViewData, grid } = useComplianceView();\n\n const onRowClick = (activeRow) => setViewData({ grid: { ...grid, activeRow } })\n\n const onRefresh = useCallback(() => {\n setViewData({\n gridLoading: true,\n grid: {\n activeRow: null,\n data: [],\n headerDef: [],\n rowDef: [],\n span: []\n },\n graph: {\n lines: []\n }\n })\n }, [setViewData])\n\n return {\n activeRow: grid.activeRow,\n grid,\n onRefresh,\n onRowClick\n }\n}\n","import { useDispatch, useSelector } from \"react-redux\";\nimport { PROCESS_PERIOD_MODAL_TYPE } from \"@reducers/ProcessPeriodModalReducer\";\nimport ComplianceClient from \"@common/api/ComplianceClient\";\nimport AlertModalAction from \"@common/redux/actions/AlertModalAction\";\nimport ConfirmModalAction from \"@common/redux/actions/ConfirmModalAction\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport useComplianceView from \"@hooks/useComplianceView\";\nimport useEventDetailsGrid from \"@hooks/useEventDetailsGrid\";\nimport { handleDownload } from \"../helpers/downloads.js\";\n\nexport default function useProcessPeriodModal() {\n const data = useSelector((state) => state.processPeriodModal);\n\n const { filterSelected: { company, site, subcompany } } = useSelector(\n (state) => state.complianceFilters,\n );\n const disableProcessQuarterBtn = site.id !== null ||\n subcompany.id !== null || company.id == null;\n\n const { open } = data;\n const {\n operator,\n hasSelection,\n quarter,\n filters,\n filters: {\n status,\n },\n quarter: {\n startDate,\n endDate,\n quarterName,\n year,\n canBeProcessed,\n incompleteRecords,\n },\n setViewData,\n } = useComplianceView();\n\n const { onRefresh } = useEventDetailsGrid();\n\n const { filterSelected: { company: { id } } } = useSelector((state) =>\n state.complianceFilters\n );\n\n const dispatch = useDispatch();\n\n const setProcessPeriodModal = (payload) =>\n dispatch({ type: PROCESS_PERIOD_MODAL_TYPE, payload });\n const toggleProcessPeriodModal = () => setProcessPeriodModal({ open: !open });\n\n const onProcessClick = (returnCsv = false) => {\n if (disableProcessQuarterBtn) {\n AlertModalAction.open(\n `Process quarterly returns at company level!`,\n \"Error\",\n );\n return;\n }\n\n if (!canBeProcessed) {\n AlertModalAction.open(\n `${quarterName} ${year} cannot be processed as it does not end until ${endDate}.`,\n \"Error\",\n );\n return;\n }\n\n if (incompleteRecords > 0) {\n ConfirmModalAction.open(\n `${quarterName} ${year} cannot be processed as it still has ${incompleteRecords} incomplete records. Would you like to view the incomplete records now?`,\n true,\n async () => {\n const incompleteStatuses = [\n ...status.filter((x) => !x.isComplete).map((x) => x.id),\n ];\n setViewData({\n filters: {\n ...filters,\n startDate,\n endDate,\n selectedStatuses: incompleteStatuses,\n },\n });\n },\n async () => {},\n true,\n );\n return;\n }\n\n console.log(returnCsv);\n\n const processFn = !returnCsv\n ? (data) => {\n setProcessPeriodModal({ data });\n toggleProcessPeriodModal();\n }\n : (response) => {\n handleDownload(response);\n };\n\n ComplianceClient.SiteSummary(quarter.quarter, year, company.id, returnCsv)\n .then(\n processFn,\n handleError,\n );\n };\n\n const onLoadProcess = () => {\n if (!operator || !hasSelection || !id) {\n return;\n }\n ComplianceClient.Process(id).then((quarter) => setViewData({ quarter }));\n };\n\n const onCompleteClick = () => {\n ComplianceClient.Complete(quarter.quarter, year, id).then(\n () => {\n AlertModalAction.open(\n `${quarterName} ${year} has been successfully processed!`,\n \"Success\",\n () => {\n setProcessPeriodModal({ open: false });\n onLoadProcess();\n onRefresh();\n },\n );\n },\n (error) => handleError(error),\n );\n };\n\n return {\n ...data,\n companyId: company.id,\n disableProcessQuarterBtn,\n onLoadProcess,\n onProcessClick,\n onCompleteClick,\n toggleProcessPeriodModal,\n setProcessPeriodModal,\n };\n}\n","import React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport DownloadButton from \"@buttons/DownloadButton\";\nimport { Button, Icon, Label } from 'semantic-ui-react';\nimport useComplianceView from '@hooks/useComplianceView';\nimport useEventDetailsGrid from '@hooks/useEventDetailsGrid';\nimport useProcessPeriodModal from '@hooks/useProcessPeriodModel';\nimport { confirmModal } from '@actions/modals';\nimport { useSelector } from 'react-redux';\n\nconst EventDetailsButtons = () => {\n\n const { companyId, onLoadProcess, disableProcessQuarterBtn, onProcessClick } = useProcessPeriodModal();\n const { operator, hasSelection, quarter: { quarterName, year }, isLoading } = useComplianceView();\n const { onRefresh } = useEventDetailsGrid();\n const { optionComplianceAllowPeriodEnd } = useSelector(state => state.logIn);\n\n useEffect(onLoadProcess, [companyId, operator, hasSelection])\n\n const disabled = isLoading || !hasSelection\n\n return (\n <>\n onRefresh(false, false)}\n disabled={disabled}\n />\n\n onProcessClick(false)}\n color={disableProcessQuarterBtn ? 'grey': 'black'}\n >\n \n Process {quarterName}\n \n\n onRefresh(true)}\n size=\"medium\"\n />\n \n )\n}\n\nexport default connect(null, { confirmModal })(EventDetailsButtons);\n","\nimport React from 'react';\nimport { Grid, Form } from 'semantic-ui-react';\nimport TypesFilterDropdown from '@components/Compliance/filters/TypesFilterDropdown';\nimport PeriodFilters from './PeriodFilters';\nimport useComplianceView from '@hooks/useComplianceView';\nimport useComplianceSummaryFilters from '@hooks/useComplianceSummaryFilters';\nimport SearchInput from '@shared/SearchInput';\nimport DateFiltersDropdown from '@shared/DateFiltersDropdown';\nimport ComplianceSummaryButtons from '@components/Compliance/summary/ComplianceSummaryButtons';\nimport EventDetailsButtons from '@components/Compliance/details/EventDetailsButtons';\n\nconst MainFilters = () => {\n\n const { activeIndex, allNames, isLoading, hasSelection } = useComplianceView();\n const { periods, onAllNamesChange, processedQuarters, onPeriodChange } = useComplianceSummaryFilters();\n\n const disabled = isLoading || !hasSelection;\n\n return (\n <>\n \n \n \n
\n \n \n \n {activeIndex === 0 && }\n \n
\n
\n
\n \n \n
\n \n \n \n
\n \n {activeIndex !== 0 ?\n \n :\n \n }\n \n
\n
\n \n\n\n )\n}\n\nexport default MainFilters;\n","import React, { useEffect } from 'react';\nimport { Tab } from 'semantic-ui-react';\nimport EventDetailsTab from '../Compliance/details/EventDetailsTab';\nimport MainFilters from '../Compliance/filters/MainFilters';\nimport useComplianceView from '@hooks/useComplianceView';\n\nconst ComplianceView = () => {\n\n const panes = [\n /*\n {\n key: \"Summary\",\n menuItem: \"Summary\",\n pane: ,\n },\n */\n {\n key: \"Compliance Events\",\n menuItem: \"Compliance Events\",\n pane: \n }\n ];\n\n const { operator, onOperatorChange, activeIndex, onTabChange } = useComplianceView();\n\n useEffect(onOperatorChange, [operator]);\n\n return (\n
\n \n \n
\n );\n}\n\nexport default ComplianceView;\n","import AnalysisView from '@views/AnalysisView';\nimport AssetAdminView from '@views/AssetAdminView';\nimport DeviceManagementView from \"@views/DeviceManagementView\";\nimport IncomeSecurityView from \"@views/IncomeSecurityView\";\nimport KioskView from '@views/KioskView';\nimport LiveFloorView from \"@views/LiveFloorView\";\nimport ReportsView from '@views/ReportsView';\nimport RevenueView from \"@views/RevenueView\";\nimport SessionsView from '@views/SessionsView';\nimport SiteInstallationsView from \"@views/SiteInstallationsView\";\nimport SystemAdminView from '@views/SystemAdminView';\nimport TransactionsView from '@views/TransactionsView';\nimport UserAdminView from '@views/UserAdminView';\nimport ComplianceView from '@views/ComplianceView';\nimport React from 'react';\n\nconst availablePanes = [\n {\n key: 'GENERAL_INSTALL',\n title: 'Site Installations',\n component: \n },\n {\n key: 'GENERAL_COMMS',\n title: 'Live Floor View',\n component: \n },\n {\n key: 'GENERAL_COLLECTIONS',\n title: 'Revenue',\n component: \n },\n {\n key: 'GENERAL_INCOMESECURITY',\n title: 'Income Security',\n component: \n },\n {\n key: 'GENERAL_TRANS',\n title: 'Transactions',\n component: \n },\n {\n key: 'COMPLIANCE',\n title: 'Compliance',\n component: \n },\n {\n key: 'GENERAL_ANALYSIS',\n title: 'Analysis',\n component: \n },\n {\n key: 'GENERAL_SESSIONS',\n title: 'Sessions',\n component: \n },\n {\n key: 'GENERAL_REPORTS',\n title: 'Reports',\n component: \n },\n {\n key: 'KIOSK',\n title: 'Kiosk',\n component: \n },\n {\n key: 'GENERAL_USERADMIN',\n title: 'User Admin',\n component: \n },\n {\n key: 'GENERAL_SYSADMIN',\n title: 'System Admin',\n component: \n },\n {\n key: 'GENERAL_ASSETADMIN',\n title: 'Asset Admin',\n component: \n },\n {\n key: 'GENERAL_DEVICEADMIN',\n title: 'System Hardware Admin',\n component: \n },\n]\n\nexport default availablePanes;\n","import { hideAddCommentModal, showSuccessAlert } from '@actions/modals';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Form, Header, Modal, TextArea } from 'semantic-ui-react';\n\nclass AddCommentModal extends React.Component {\n\n state = {\n value: ''\n }\n\n handleClose = () => this.props.hideAddCommentModal(false).then(() => this.setState({ value: '' }))\n\n handleSave = () => this.props.modal.onSave(this.state.value).then(() => this.setState({ value: '' }));\n\n render() {\n const { value } = this.state;\n const { header, subHeader } = this.props.modal;\n return (\n \n Add Comment\n \n
\n {header}\n {subHeader}\n
\n
\n \n
\n
\n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.addCommentModal,\n };\n};\n\nexport default connect(mapStateToProps, { hideAddCommentModal, showSuccessAlert })(AddCommentModal);\n\n\n","import { getOptionValue } from '@helpers/options';\nimport axios from '@common/api/desktop/axios';\nimport { mapToSelect } from './egm';\n\nclass Ownership {\n\n getProfiles = async (operator) => {\n const response = await axios.get(`OwnershipProfile/Profiles?operatorId=${operator}`);\n return response.data;\n }\n\n getProfile = async (profileId) => {\n const response = await axios.get(`OwnershipProfile/Profile?profileId=${profileId}`);\n return response.data;\n }\n\n getProfileAttributes = async (profileId) => {\n const response = await axios.get(`OwnershipProfile/profile/attributes?profileId=${profileId}`);\n return response.data;\n }\n\n getTypes = async (operator) => {\n const response = await axios.get(`OwnershipProfile/OwnershipTypes?operatorId=${operator}`);\n return mapToSelect(response.data);\n }\n\n getTypeAttributes = async (typeId) => {\n const response = await axios.get(`OwnershipProfile/OwnershipType/attributes?ownershipTypeId=${typeId}`);\n return response.data;\n }\n\n saveProfile = async (operatorId, name, ownershipTypeId, values, id) => {\n const response = await axios.post(\n `OwnershipProfile/Profile/update`,\n {\n id,\n operatorId,\n name,\n ownershipTypeId,\n values: values.map(x => {\n return { attributeTypeId: parseInt(x.code), value: getOptionValue(x) }\n })\n }\n );\n\n return response.data;\n }\n\n\n\n createProfile = async (operatorId, name, ownershipTypeId, values) => {\n const response = await axios.post(\n `OwnershipProfile/Profile/create`,\n {\n operatorId,\n name,\n ownershipTypeId,\n values: values.map(x => {\n return { attributeTypeId: parseInt(x.code), value: getOptionValue(x) }\n })\n }\n );\n\n return response.data;\n }\n}\n\nconst ownership = new Ownership();\n\nexport default ownership;\n","import React from \"react\";\nimport { Dimmer, List, Loader } from \"semantic-ui-react\";\n\nconst ScrollableList = (props) => {\n const { loading, items, value, onClick } = props || {\n items: [],\n value: null,\n onClick: () => { },\n loading: false,\n };\n\n return (\n
\n {loading ? (\n \n \n \n ) : (\n \n {items.map((item) => (\n onClick(item)}\n >\n {item.text}\n \n ))}\n \n )}\n
\n );\n};\n\nexport default ScrollableList;\n","import { setAssetOwnershipModal, showSuccessAlert } from \"@actions/modals\";\nimport { mapToSelect } from \"@api/egm\";\nimport ownership from \"@api/ownership\";\nimport { getOptionTotal, getOptionValue } from \"@helpers/options\";\nimport { default as React, useCallback, useEffect, useRef } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Grid, Header, Input, Modal, Select } from \"semantic-ui-react\";\nimport ScrollableList from \"../shared/ScrollableList\";\nimport OptionsList from \"../systemAdmin/OptionsList\";\n\nconst AssetOwnershipProfileModal = (props) => {\n const { setAssetOwnershipModal, showSuccessAlert } = props;\n const {\n open,\n profiles,\n selectedProfile,\n types,\n ownershipTypeId,\n operator,\n fields,\n name,\n loading,\n } = props.modal;\n const nameFieldRef = useRef(null);\n\n const onChange = async (option, value) => {\n const newFields = [\n ...fields.map((field) => {\n return field.code === option.code ? { ...option, value } : field;\n }),\n ];\n\n setAssetOwnershipModal({ fields: newFields });\n };\n\n const resetForm = useCallback(() => {\n setAssetOwnershipModal({\n selectedProfile: { id: null },\n name: \"\",\n fields: [],\n ownershipTypeId: null,\n }).then(() => nameFieldRef.current?.focus());\n }, [setAssetOwnershipModal]);\n\n const onProfileClick = (profile) => {\n const selectedProfile = profiles.find((x) => x.id === profile.value);\n setAssetOwnershipModal({ selectedProfile }).then(() => {\n ownership.getProfileAttributes(selectedProfile.id).then(\n (fields) => setAssetOwnershipModal({ fields, loading: false }),\n () => setAssetOwnershipModal({ loading: false }),\n );\n });\n };\n\n const updateProfiles = useCallback(() => {\n setAssetOwnershipModal({ loading: true }).then(() => {\n ownership.getProfiles(operator).then(\n (profiles) => setAssetOwnershipModal({ profiles, loading: false }),\n () => setAssetOwnershipModal({ loading: false }),\n );\n });\n }, [setAssetOwnershipModal, operator]);\n\n const onSaveClick = () => {\n const saveFn = selectedProfile.id\n ? ownership.saveProfile\n : ownership.createProfile;\n const verb = selectedProfile.id ? \"updated\" : \"created\";\n saveFn(operator, name, ownershipTypeId, fields, selectedProfile?.id).then(\n (selectedProfile) => {\n showSuccessAlert(\n `Profile ${verb} successfully!`,\n \"Success\",\n async () => {\n setAssetOwnershipModal({ selectedProfile }).then(() =>\n updateProfiles(),\n );\n },\n );\n },\n );\n };\n\n useEffect(() => {\n if (!open || !selectedProfile) {\n return;\n }\n const { name, ownershipTypeId } = selectedProfile;\n setAssetOwnershipModal({ name, ownershipTypeId });\n }, [selectedProfile, setAssetOwnershipModal, open]);\n\n useEffect(() => {\n if (!open || !operator) {\n return;\n }\n\n resetForm();\n updateProfiles();\n ownership\n .getTypes(operator)\n .then((types) => setAssetOwnershipModal({ types }));\n }, [operator, open, setAssetOwnershipModal, resetForm, updateProfiles]);\n\n useEffect(() => {\n if (!open || !ownershipTypeId || selectedProfile.id !== null) {\n return;\n }\n\n setAssetOwnershipModal({ loading: true }).then(() => {\n ownership.getTypeAttributes(ownershipTypeId).then(\n (fields) => setAssetOwnershipModal({ fields, loading: false }),\n () => setAssetOwnershipModal({ loading: false }),\n );\n });\n }, [selectedProfile, ownershipTypeId, open, setAssetOwnershipModal]);\n\n const canSubmit = () => {\n if (fields.length < 1) return false;\n if (!ownershipTypeId) return false;\n if (!name || name.length < 1) return false;\n\n let canSubmit = true;\n\n fields.forEach((option) => {\n if (option.type === 13 && option.isRequired) {\n const total = getOptionTotal(option, fields);\n if (option.minValue > total || option.maxValue < total) {\n canSubmit = false;\n }\n }\n\n if (option.isRequired && !getOptionValue(option) && option.type !== 13) {\n canSubmit = false;\n }\n });\n\n return canSubmit;\n };\n\n const optionsPrefix = (\n <>\n \n \n Profile Type *\n \n \n {\n setAssetOwnershipModal({ ownershipTypeId: value });\n }}\n />\n \n \n \n \n Profile Name *\n \n \n setAssetOwnershipModal({ name: value })}\n />\n \n \n \n );\n\n return (\n setAssetOwnershipModal({ open: false })}\n size=\"large\"\n closeIcon\n >\n Asset Ownership Profile\n \n \n \n \n \n \n \n
\n {!selectedProfile.id ? \"New Profile\" : selectedProfile.name}\n
\n \n
\n
\n
\n
\n \n resetForm()}\n />\n onSaveClick()}\n />\n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n modal: state.assetOwnershipProfileModal,\n };\n};\n\nexport default connect(mapStateToProps, {\n setAssetOwnershipModal,\n showSuccessAlert,\n})(AssetOwnershipProfileModal);\n","import React from 'react';\nimport { Container, Divider, Header } from 'semantic-ui-react';\n\nconst CommentsList = (props) => {\n \n const { comments } = props;\n\n return (\n <>\n {comments.length < 1 ? \n
\n No comments have been recorded yet.\n
\n :\n <>\n {comments.map((comment, index) => {\n return \n
\n {comment.date} [{comment.user}]\n {comment.egm}\n
\n {comment.comment}\n {index < comments.length - 1 && }\n
\n })}\n \n }\n \n )\n}\n\nexport default CommentsList;","import { showBankingCommentsModal } from '@actions/modals';\nimport CommentsList from '@shared/CommentsList';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Header, Modal } from 'semantic-ui-react';\n\nclass BankingCommentsModal extends React.Component {\n\n state = {\n\n }\n\n handleClose = (refresh) => {\n this.props.showBankingCommentsModal(false);\n }\n\n render() {\n return (\n \n \n
\n \n \n \n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.bankingCommentsModal,\n };\n};\n\nexport default connect(mapStateToProps, { showBankingCommentsModal })(BankingCommentsModal);\n\n","\nimport collections from '@api/collections';\nimport OptionsModal from '@modals/OptionsModal';\nimport DataGrid from '@shared/DataGrid';\nimport React, { Component } from 'react';\nimport { Grid, Header } from \"semantic-ui-react\";\n\nclass BaseBreakdownTab extends Component {\n\n meterGridKey = \"meterGrid\";\n detailGridKey = \"detailGrid\";\n\n state = {\n modalOpen: false,\n loading: false,\n modalOptions: [],\n activeRow: null,\n modalTitle: \"\",\n meterRef: null\n }\n\n onRowClick = (activeRow) => {\n if (activeRow.optionAllowEdit) {\n this.setState({ loading: true }, () => {\n collections.editMeter(activeRow.meterRef).then(\n result => {\n this.setState({ modalTitle: activeRow.name, loading: false, ...result, modalOpen: true })\n }\n );\n })\n }\n }\n\n closeModal = () => {\n this.setState({ modalOpen: false })\n }\n\n handleSave = async (changed) => {\n const { meterRef } = this.state;\n collections.updateMeter(meterRef, changed).then(response => {\n this.props.showSuccessAlert(response, \"Success\", async () => {\n this.setState({ modalOpen: false }, () => {\n if (this.props.loadData) {\n this.props.loadData();\n }\n })\n })\n });\n }\n\n render() {\n const { varianceHistory, optionShowVariance, showMetersGrid } = this.props.modal\n const { controls, modalOpen, loading } = this.state;\n const { allowShowMeters } = this.props;\n\n const meterGrid = this.props.modal[this.meterGridKey];\n const detailGrid = this.props.modal[this.detailGridKey];\n\n const showSecondGrid = showMetersGrid && allowShowMeters;\n\n return (\n \n \n \n \n \n {showSecondGrid &&\n \n \n \n \n }\n \n {optionShowVariance &&\n \n \n
Variance History
\n { }}\n fullHeight\n />\n
\n
\n }\n
\n )\n }\n}\n\nexport default BaseBreakdownTab;\n","\nimport { showSuccessAlert } from '@actions/index';\nimport { connect } from \"react-redux\";\nimport BaseBreakdownTab from './BaseBreakdowTab';\n\nclass CollectionPeriod extends BaseBreakdownTab {\n meterGridKey = \"meterGrid\";\n detailGridKey = \"detailGrid\";\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.collectionBreakdownModal,\n };\n};\n\nexport default connect(mapStateToProps, { showSuccessAlert })(CollectionPeriod);","import { showSuccessAlert } from '@actions/index';\nimport { connect } from \"react-redux\";\nimport BaseBreakdownTab from \"./BaseBreakdowTab\";\n\nclass InterimCollections extends BaseBreakdownTab {\n meterGridKey = \"meterGridInterim\";\n detailGridKey = \"detailGridInterim\";\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.collectionBreakdownModal,\n };\n};\n\nexport default connect(mapStateToProps, { showSuccessAlert })(InterimCollections);","import { Tab } from \"semantic-ui-react\";\nimport CollectionPeriod from \"./CollectionPeriod\";\nimport React from \"react\";\nimport InterimCollections from \"./InterimCollections\";\n\nconst PrimaryTabs = ({ loadData, onDetailsRowClick }) => {\n const panes = [\n {\n menuItem: 'Summary',\n pane: \n },\n {\n menuItem: 'Count Details',\n pane: \n }\n ];\n\n return \n\n }\n\nexport default PrimaryTabs;\n","\nimport CommentsList from '@shared/CommentsList';\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { Dimmer, Grid, Loader } from 'semantic-ui-react';\n\nclass CommentsTab extends Component {\n\n state = {\n comments: [],\n loading: false\n }\n\n render() {\n return (\n \n \n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n data: state.collectionBreakdownModal,\n };\n};\n\nexport default connect(mapStateToProps, null)(CommentsTab);","import { handleOptionChange, processDetails } from '@helpers/datagrid';\nimport DataGrid from \"@shared/DataGrid\";\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Dimmer, Grid, Loader } from \"semantic-ui-react\";\n\nconst SimpleTab = (props) => {\n\n const { collectionId } = props.collection;\n const { onLoad } = props;\n\n const [loading, setLoading] = useState(false);\n const [data, setData] = useState({\n summary: { headerDef: [], rowDef: [], data: [] },\n grid: { headerDef: [], rowDef: [], data: [] }\n });\n\n const { summary, grid } = data;\n\n const loadData = () => {\n if (!collectionId) return;\n setLoading(true);\n onLoad(collectionId, summary ? processDetails(summary.data) : {}).then(\n response => {\n setData(response);\n setLoading(false);\n },\n () => setLoading(false)\n );\n }\n\n\n useEffect(loadData, [onLoad, summary, collectionId])\n\n const onOptionChange = (key, option, value) => {\n const newGrid = handleOptionChange(data[key], option, value);\n loadData();\n setData({ ...data, [key]: newGrid })\n }\n\n if (loading) {\n return \n }\n\n return (\n \n {(summary && summary.data && summary.data.length > 0) &&\n \n \n onOptionChange('summary', option, value)}\n />\n \n \n }\n \n \n { }}\n fullHeight\n stretched\n onOptionChange={(option, value) => onOptionChange('grid', option, value)}\n />\n \n \n \n\n );\n}\n\nconst mapStateToProps = state => {\n return {\n collection: state.collectionBreakdownModal\n };\n};\n\nexport default connect(mapStateToProps)(SimpleTab);\n","import { setCollectionBreakdownModal } from '@actions/modals';\nimport collections from \"@api/collections\";\nimport { getControlValues } from \"@helpers/summary\";\nimport DataGrid from \"@shared/DataGrid\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Grid } from \"semantic-ui-react\";\n\nconst Transactions = (props) => {\n const { collectionId, transactionsGrid, loading, transactionsSummaryGrid } = props.modal;\n\n const handleOptionChange = (option, value) => {\n const data = [...transactionsSummaryGrid.data];\n\n data.forEach((row, rowIndex) => {\n row.cellData.forEach((cell, cellIndex) => {\n if (cell.data.code === option.code) {\n data[rowIndex].cellData[cellIndex].data = option\n }\n })\n })\n\n const grid = { ...transactionsSummaryGrid, data }\n props.setCollectionBreakdownModal({ loading: true }, props.modal.onRefresh, props.modal.onClose).then(() => {\n props.setCollectionBreakdownModal({ transanctionSummaryGrid: grid }, props.modal.onRefresh, props.modal.onClose).then(() => {\n collections.getBankingWeekTransactions(collectionId, getControlValues(data)).then(transactionsGrid => props.setCollectionBreakdownModal({ loading: false, transactionsGrid }, props.modal.onRefresh, props.modal.onClose))\n })\n });\n }\n\n return (\n \n \n \n \n \n \n \n \n { }}\n fullHeight\n />\n \n \n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.collectionBreakdownModal,\n };\n};\n\nexport default connect(mapStateToProps, { setCollectionBreakdownModal })(Transactions);","import collections from \"@api/collections\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Tab } from \"semantic-ui-react\";\nimport CommentsTab from \"./CommentsTab\";\nimport SimpleTab from \"./SimpleTab\";\nimport Transactions from \"./Transactions\";\n\nconst SecondaryTabs = (props) => {\n\n let panes = [\n {\n menuItem: 'Transactions',\n pane: \n },\n {\n menuItem: 'Comments',\n pane: \n },\n {\n menuItem: 'Events',\n pane: \n },\n {\n menuItem: 'Tickets @ EGM',\n pane: \n },\n {\n menuItem: 'Tickets Redeemed @ Kiosk/CD',\n pane: \n }\n ]\n\n return \n}\nconst mapStateToProps = state => {\n return {\n modal: state.collectionBreakdownModal,\n };\n};\n\nexport default connect(mapStateToProps)(SecondaryTabs);","import {\n hideAddCommentModal,\n hideCollectionBreakdownModal,\n setCollectionBreakdownModal,\n showAddCommentModal,\n showBankingCommentsModal,\n showCountDetailsModal,\n showSiteVarianceHistoryModal,\n showSuccessAlert,\n} from \"@actions/modals\";\nimport collections from \"@api/collections\";\nimport CommentsButton from \"@buttons/CommentsButton\";\nimport PrimaryTabs from \"@components/CollectionBreakdown/PrimaryTabs\";\nimport SecondaryTabs from \"@components/CollectionBreakdown/SecondaryTabs\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Dimmer, Grid, Header, Loader, Modal } from \"semantic-ui-react\";\n\nclass CollectionBreakdownModal extends React.Component {\n state = {\n loading: false,\n detailsRow: null,\n };\n\n componentDidUpdate(prevProps) {\n if (\n (this.props.modal.open && !prevProps.modal.open) ||\n this.props.modal.detailRef !== prevProps.modal.detailRef\n ) {\n this.loadData();\n }\n }\n\n loadData = () => {\n this.setState({ loading: true }, () => {\n this.props.modal.fnLoad(this.props.modal.detailRef).then(\n (response) =>\n this.setState({ loading: false }, () => {\n this.props\n .setCollectionBreakdownModal(response)\n .then(() => this.getComments());\n }),\n () => this.setState({ loading: false }),\n );\n });\n };\n\n getComments = () => {\n const { collectionId } = this.props.modal;\n collections.getCommentsByCollection(collectionId).then(\n (response) =>\n this.props.setCollectionBreakdownModal({\n ...this.props.modal,\n comments: response.comments,\n }),\n () => this.setState({ loading: false }),\n );\n };\n\n handleVarianceHistory = () => this.props.showSiteVarianceHistoryModal(true);\n\n onRowClick = (row) => this.props.showMachineCollectionDetailsModal(true);\n\n handleClose = () => this.props.hideCollectionBreakdownModal();\n\n handleViewComments = () => this.props.showBankingCommentsModal(true);\n\n handleCommentSave = async (comment) => {\n const { collectionId } = this.props.modal;\n collections.addComment(collectionId, comment).then((result) =>\n this.props.showSuccessAlert(result, \"Success\", async () => {\n this.props.hideAddCommentModal();\n this.getComments();\n this.loadData();\n }),\n );\n };\n\n handleAddComment = () => {\n const { siteText, weekText, egmText } = this.props.modal;\n this.props.showAddCommentModal(\n `${siteText} - ${weekText}`,\n egmText,\n this.handleCommentSave,\n this.getComments,\n );\n };\n\n onDetailsRowClick = (detailsRow) => this.setState({ detailsRow });\n\n onCountDetailsClick = async () => {\n const { batchId, collectionType } = this.state.detailsRow;\n this.props.showCountDetailsModal(\n { batchId, collectionType },\n this.loadData,\n );\n };\n\n onViewCommentsClick = () => {\n const { installationId } = this.props.modal;\n\n this.setState({ loading: true }, () => {\n collections.getCommentsByInstallation(installationId).then(\n (result) =>\n this.setState({ loading: false }, () =>\n this.props.showBankingCommentsModal(true, result),\n ),\n () => this.setState({ loading: false }),\n );\n });\n };\n\n render() {\n const { detailsRow, loading } = this.state;\n const { optionShowExport, optionShowVarianceHistory } = this.props.modal;\n\n const tablet = 11;\n const computer = 8;\n const largeScreen = 8;\n const wideScreen = 6;\n\n return (\n \n Collection Breakdown\n \n {loading ? (\n \n \n \n ) : (\n \n \n \n
\n {this.props.modal.siteText} - {this.props.modal.weekText}\n \n {this.props.modal.egmText}\n \n
\n \n \n \n \n \n {optionShowVarianceHistory && (\n \n )}\n {optionShowExport && }\n \n
\n \n \n \n \n \n \n \n \n
\n )}\n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n modal: state.collectionBreakdownModal,\n };\n};\n\nexport default connect(mapStateToProps, {\n showSuccessAlert,\n showBankingCommentsModal,\n showCountDetailsModal,\n showSiteVarianceHistoryModal,\n showAddCommentModal,\n setCollectionBreakdownModal,\n hideAddCommentModal,\n hideCollectionBreakdownModal,\n})(CollectionBreakdownModal);\n","import { setCollectionBreakdownModal, setCollectionModal, showBankingCommentsModal, showSiteVarianceHistoryModal } from '@actions/modals';\nimport collections from '@api/collections';\nimport CommentsButton from '@buttons/CommentsButton';\nimport SummaryButton from '@buttons/SummaryButton';\nimport { handleDownload } from '@helpers/downloads';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Dimmer, Dropdown, Grid, Header, Icon, Loader, Modal } from 'semantic-ui-react';\n\nclass CollectionModal extends React.Component {\n\n state = {\n showSummary: true,\n loading: false,\n loadingReport: false,\n }\n\n handleRefresh = () => {\n this.setState({ loading: true }, () => {\n const { siteId, operator, batchId, fnLoad } = this.props.modal;\n fnLoad(operator, siteId, batchId).then(\n result => this.props.setCollectionModal(result).then(() => this.setState({ loading: false })),\n () => this.setState({ loading: false })\n )\n })\n }\n\n handleVarianceHistory = () => {\n this.props.showSiteVarianceHistoryModal(true);\n }\n\n onRowClick = (row) => {\n const { detailRef } = row;\n const fnLoad = this.props.modal.isPerformance ? collections.getBankingPerformanceByEgm : collections.getBankingWeekByEgm;\n this.props.setCollectionBreakdownModal({\n open: true,\n detailRef,\n fnLoad\n });\n }\n\n handleClose = () => {\n this.props.setCollectionModal({ open: false });\n }\n\n handleViewComments = () => {\n const { operator, periodId, siteId } = this.props.modal;\n\n this.setState({ loading: true }, () => {\n collections.getComments(operator, periodId, siteId).then(\n result => this.setState({ loading: false }, () => this.props.showBankingCommentsModal(true, result)),\n () => this.setState({ loading: false })\n )\n })\n }\n\n requestFile = (fn) => {\n this.setState({ loadingReport: true }, () => {\n fn(this.props.modal.batchId).then(\n response => this.setState({ loadingReport: false }, () => handleDownload(response)),\n () => this.setState({ loadingReport: false })\n )\n })\n }\n\n handleVariancePdfClick = () => {\n const fn = this.props.modal.isPerformance ? collections.getPerformanceVariancePdf : collections.getBankingVariancePdf;\n this.requestFile(fn)\n }\n\n handleSummaryPdfClick = () => {\n const fn = this.props.modal.isPerformance ? collections.getPerformanceSummaryPdf : collections.getBankingSummaryPdf;\n this.requestFile(fn)\n }\n\n componentDidUpdate(prevProps) {\n const checkProps = ['operator', 'siteId', 'batchId', 'isPerformance', 'open'];\n\n if (!this.props.modal.open) {\n return;\n }\n\n for (const prop of checkProps) {\n if (this.props.modal[prop] !== prevProps.modal[prop]) {\n this.handleRefresh();\n break;\n }\n }\n }\n\n render() {\n const { showFloatsGrid } = this.props.modal;\n const { showSummary, loading } = this.state;\n\n const rightWidth = showSummary ? 13 : 16;\n\n return (\n \n {this.props.modal.title}\n \n {loading ?\n \n :\n \n \n \n this.setState({ showSummary: !showSummary })} />\n
\n {this.props.modal.siteText} - {this.props.modal.weekText}\n
\n
\n \n {this.props.modal.optionShowViewCommentsButton && }\n Reports}\n >\n \n this.requestFile(collections.getSummaryReportPdf)} />\n \n {this.props.modal.isPerformance && this.requestFile(collections.getPerformanceSummaryCsv)} />}\n \n \n \n \n
\n {this.props.modal.isPerformance &&\n \n \n { }}\n style={{ maxHeight: \"120px\" }}\n />\n \n {showFloatsGrid &&\n \n { }}\n style={{ maxHeight: \"120px\" }}\n />\n \n }\n \n }\n \n {showSummary &&\n \n { }}\n />\n \n }\n \n \n {!this.props.modal.isPerformance &&\n
\n
Kiosk/Cash Desk Summary
\n { }}\n loading={this.state.loading}\n style={{ maxHeight: \"120px\" }}\n />\n
\n }\n
\n
\n
\n }\n
\n \n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.collectionModal,\n breakdown: state.collectionBreakdownModal,\n };\n};\n\nexport default connect(mapStateToProps, { showBankingCommentsModal, setCollectionBreakdownModal, showSiteVarianceHistoryModal, setCollectionModal })(CollectionModal);\n\n\n","import { confirmModal } from '@actions/modals';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Header, Modal } from 'semantic-ui-react';\n\nclass ConfirmModal extends React.Component {\n\n onConfirm = () => {\n this.props.data.onConfirm().then(() => {\n this.props.confirmModal(\"\", false, () => { })\n })\n }\n\n onClose = () => {\n this.props.data.onClose().then(() => {\n this.props.confirmModal(\"\", false, () => { })\n })\n }\n\n render() {\n const { visible, message } = this.props.data;\n return (\n \n
{this.props.header || \"Confirmation\"}
\n \n {message}\n \n \n \n {this.props.data.isYesNo ? \"No\" : \"Cancel\"}\n \n\n \n {this.props.data.isYesNo ? \"Yes\" : \"Continue\"}\n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n data: state.confirmModal\n };\n};\n\nexport default connect(mapStateToProps, { confirmModal })(ConfirmModal);\n\n","import {\n hideAddCommentModal,\n hideCountDetailsModal,\n showAddCommentModal,\n showCountDetailsModal,\n showSuccessAlert,\n showViewCommentsModal,\n} from \"@actions/modals\";\nimport count from \"@api/count\";\nimport DownloadButton from \"@buttons/DownloadButton\";\nimport { handleDownload } from \"@helpers/downloads\";\nimport DataGrid from \"@shared/DataGrid\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Dropdown, Grid, Header, Icon, Modal } from \"semantic-ui-react\";\nimport { setEditMachineCountModal } from \"../../redux/actions/modals\";\n\nclass CountDetailsModal extends React.Component {\n state = {\n activeRow: { collectionId: 0 },\n downloadLoading: false,\n loadingReport: true,\n loading: false,\n };\n\n componentDidUpdate(prevProps) {\n console.log(this.props.modal);\n if (this.props.modal.batchId !== prevProps.modal.batchId) {\n this.handleRefresh();\n }\n }\n\n handleClose = () =>\n this.props.hideCountDetailsModal().then(this.props.modal.onClose);\n\n onViewCommentsClick = () => {\n const { batchId, collectionType } = this.props.modal;\n this.setState({ loadingComments: true }, () => {\n count\n .getComments(collectionType, batchId)\n .then((comments) =>\n this.setState({ loadingComments: false }, () =>\n this.props.showViewCommentsModal(comments),\n ),\n );\n });\n };\n\n handleSaveComment = async (comment) => {\n const { collectionId } = this.state.activeRow;\n const { collectionType } = this.props.modal;\n count.addComment(collectionType, collectionId, comment).then((response) => {\n this.props.showSuccessAlert(response, \"Success\", () =>\n this.props.hideAddCommentModal().then(() => this.handleRefresh()),\n );\n });\n };\n\n handleRefresh = () => {\n const { batchId, collectionType } = this.props.modal;\n this.setState({ loading: true }, () => {\n count.getBatch(batchId, collectionType).then(\n (response) =>\n this.setState({ loading: false }, () =>\n this.props.showCountDetailsModal(\n { ...response, batchId, collectionType },\n this.props.modal.onClose,\n ),\n ),\n () => this.setState({ loading: false }),\n );\n });\n };\n\n handleAddComment = () => {\n const { siteDisplay, countDateDisplay } = this.props.modal;\n const { gameName } = this.state.activeRow;\n this.props.showAddCommentModal(\n `${siteDisplay} ${countDateDisplay}`,\n gameName,\n this.handleSaveComment,\n );\n };\n\n downloadReport = () => {\n const { batchId, collectionType } = this.props.modal;\n this.setState({ loadingReport: true }, () => {\n count.getReportPdf(batchId, collectionType).then(\n (response) =>\n this.setState({ loadingReport: false }, () =>\n handleDownload(response),\n ),\n () => this.setState({ loadingReport: false }),\n );\n });\n };\n\n downloadExport = () => {\n const { batchId, collectionType } = this.props.modal;\n this.setState({ downloadLoading: true }, () => {\n count.getBatchExport(batchId, collectionType).then(\n (response) =>\n this.setState({ downloadLoading: false }, () =>\n handleDownload(response),\n ),\n () => this.setState({ downloadLoading: false }),\n );\n });\n };\n\n render() {\n const { headerDef, rowDef, data } = this.props.modal;\n const {\n reportLoading,\n downloadLoading,\n activeRow,\n loading,\n loadingComments,\n } = this.state;\n const { siteDisplay, countDateDisplay } = this.props.modal;\n\n return (\n \n Count Details\n \n \n \n \n
\n {siteDisplay}\n
\n \n Count Date: {countDateDisplay}\n
\n \n \n this.props.setEditMachineCountModal({\n activeRow,\n open: true,\n callback: this.handleRefresh,\n })\n }\n disabled={!activeRow || !activeRow.optionAllowEdit}\n />\n \n \n \n Reports\n \n }\n >\n \n \n \n \n \n
\n \n \n this.setState({ activeRow })}\n loading={loading}\n />\n \n \n
\n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n modal: state.countDetailsModal,\n };\n};\n\nexport default connect(mapStateToProps, {\n showSuccessAlert,\n hideAddCommentModal,\n setEditMachineCountModal,\n showAddCommentModal,\n showCountDetailsModal,\n hideCountDetailsModal,\n showViewCommentsModal,\n})(CountDetailsModal);\n","import { hidePasswordModal } from '@actions/modals';\nimport md5 from 'md5';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Dimmer, Form, Header, Input, Loader, Message, Modal } from 'semantic-ui-react';\n\nclass EnterPasswordModal extends React.Component {\n\n state = {\n password: '',\n error: false,\n loading: false\n }\n\n onConfirm = () => {\n if (this.props.login.hash !== md5(this.state.password)) {\n this.setState({ error: true });\n } else {\n this.setState({ loading: true, password: '', error: false }, () => {\n this.props.data.onConfirm()\n .then(() => {\n this.setState({ loading: false }, () => this.props.hidePasswordModal());\n })\n .catch(() => {\n this.setState({ loading: false }, () => this.props.hidePasswordModal());\n })\n })\n }\n }\n\n render() {\n const { visible } = this.props.data;\n return (\n \n
{this.props.data.header || \"Enter your password to confirm\"}
\n \n {this.state.loading ?\n \n Processing\n \n :\n
\n {this.state.error && }\n
{this.props.data.message}
\n
\n \n \n this.setState({ password: value })} />\n \n
\n
\n }\n\n
\n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n data: state.passwordModal,\n login: state.logIn\n };\n};\n\nexport default connect(mapStateToProps, { hidePasswordModal })(EnterPasswordModal);\n","import { hideFloatLevelSettingsModal, showFloatLevelSettingsModal, showSuccessAlert } from '@actions/modals';\nimport Kiosk from '@api/kiosk';\nimport OptionsList from '@components/systemAdmin/OptionsList';\nimport { getOptionValue } from '@helpers/options';\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Form, Grid, Header, Icon, Modal } from 'semantic-ui-react';\n\nclass FloatLevelSettingsModal extends Component {\n\n closeModal = () => this.props.hideFloatLevelSettingsModal();\n\n onOptionChange = (key, option, value) => {\n const floatControls = [...this.props.data[key]];\n const index = floatControls.findIndex(control => control.code === option.code);\n floatControls[index] = option;\n this.props.showFloatLevelSettingsModal({ [key]: floatControls })\n }\n\n getChanged = () => {\n const { maximumFloats, lowFloats } = this.props.data;\n let changed = {}\n\n maximumFloats.forEach(x => {\n if (x.isEditable) changed[x.code] = getOptionValue(x);\n })\n\n lowFloats.forEach(x => {\n if (x.isEditable) changed[x.code] = getOptionValue(x);\n })\n\n return changed;\n }\n\n handleSave = () => {\n const { installationId } = this.props.data;\n const changed = this.getChanged();\n\n Kiosk.UpdateFloats(installationId, changed).then(result => {\n this.props.showSuccessAlert(result, \"Success\", this.closeModal)\n })\n }\n\n render() {\n\n const { maximumFloats, lowFloats, game, open } = this.props.data;\n\n return (\n \n \n
\n Kiosk Float Level Settings\n \n {game}\n \n
\n
\n \n \n \n \n
\n this.onOptionChange(\"maximumFloats\", option, value)} />\n \n
\n \n
\n this.onOptionChange(\"lowFloats\", option, value)} />\n \n
\n
\n
\n
\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n data: state.floatLevelSettingsModal\n };\n};\n\nexport default connect(mapStateToProps, { showFloatLevelSettingsModal, hideFloatLevelSettingsModal, showSuccessAlert })(FloatLevelSettingsModal)\n","import { hideInstallHistoryModal, showInstallHistoryModal } from '@actions/modals';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Modal } from 'semantic-ui-react';\n\nclass InstallHistoryModal extends React.Component {\n render() {\n const { headerDef, data, rowDef } = this.props.modal.grid;\n return (\n \n Install History\n \n \n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.installHistoryModal\n };\n};\n\nexport default connect(mapStateToProps, { showInstallHistoryModal, hideInstallHistoryModal })(InstallHistoryModal);\n\n\n","import { hideLiveFloorViewDetailsModal, showLiveFloorViewDetailsModal } from '@actions/modals';\nimport LiveFloorViewApi from '@api/livefloorview';\nimport { getColour } from '@helpers/colours';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Checkbox, Grid, Header, Label, Modal, Pagination, Select } from 'semantic-ui-react';\n\nclass LiveFloorViewDetailsModal extends React.Component {\n\n initialState = {\n eventsLoading: false,\n sessionsLoading: false,\n selectedSessionLoading: false,\n showEvents: false,\n events: {\n pageNumber: 1,\n pageCount: 1,\n grid: {\n headerDef: [],\n rowDef: [],\n data: []\n }\n },\n sessions: {\n grid: {\n headerDef: [],\n rowDef: [],\n data: []\n }\n },\n selectedSession: {\n summarysGrid: {\n headerDef: [],\n rowDef: [],\n data: []\n },\n eventsGrid: {\n headerDef: [],\n rowDef: [],\n data: []\n }\n },\n selectedPeriod: 1,\n }\n\n componentDidMount() {\n this.getPeriods();\n }\n\n getPeriods = () => LiveFloorViewApi.getPeriods().then(periods => this.setState({ periods }));\n\n state = { ...this.initialState, periods: [] };\n\n resetState = (callback) => this.setState({ ...this.initialState }, callback)\n\n getEvents = () => {\n this.setState({ eventsLoading: true }, () => {\n LiveFloorViewApi.getEvents(\n this.props.data.installation.installationId,\n this.state.selectedPeriod,\n this.state.showEvents,\n this.state.events.pageNumber\n ).then(\n events => this.setState({ events, eventsLoading: false }),\n () => this.setState({ events: [], eventsLoading: false })\n )\n })\n }\n\n getSessions = () => {\n this.setState({ sessionsLoading: true }, () => {\n LiveFloorViewApi.getSessions(this.props.data.installation.installationId, this.state.selectedPeriod, this.state.showEvents)\n .then(\n sessions => this.setState({ sessions, sessionsLoading: false }),\n () => this.setState({ sessions: [], sessionsLoading: false })\n )\n })\n }\n\n handleRefresh = () => {\n this.setState({ selectedSession: { ...this.initialState.selectedSession } }, () => {\n this.getSessions();\n this.getEvents();\n })\n }\n\n handlePeriodChange = (event, { value }) => this.setState({ selectedPeriod: value })\n\n componentDidUpdate = (prevProps, prevState) => {\n if (!prevProps.data.open && this.props.data.open) {\n this.resetState(() => this.handleRefresh())\n }\n }\n\n handleSessionSelect = session => {\n this.setState({ selectedSessionLoading: true }, () => {\n LiveFloorViewApi.getSession(session.sessionId)\n .then(\n selectedSession => this.setState({ selectedSession, selectedSessionLoading: false }),\n () => this.setState({ selectedSessionLoading: false })\n )\n })\n }\n\n render() {\n const { pageCount, pageNumber } = this.state.events;\n const stateColour = getColour(this.props.data.installation, \"commsStateColour\", \"#CCC\");\n return (\n this.props.hideLiveFloorViewDetailsModal()}\n size='fullscreen'\n closeIcon\n className=\"gs-flex-container-vertical h-80\"\n >\n
\n \n \n \n Live Floor View - Details\n \n \n {this.props.data.installation.siteName}\n \n \n {this.props.data.installation.gameName}, {this.props.data.installation.manufacturer}\n \n \n EGM Asset No: {this.props.data.installation.assetNo}\n \n \n \n
\n \n \n \n \n \n \n\n \n onChange(e, { name: \"showEvents\", value: !showEvents })} checked={showEvents} name=\"showEvents\" />\n \n\n \n \n \n )\n}\n\nexport default SiteDetailsFilters;","import { prepareFilter } from '@actions';\nimport { hideSiteDetailsModal } from '@actions/modals';\nimport DownloadButton from '@buttons/DownloadButton';\nimport ExpandButton from '@buttons/ExpandButton';\nimport RefreshButton from '@buttons/RefreshButton';\nimport SiteDetailsFilters from '@components/LiveFloorViewer/SiteDetailsFilters';\nimport { handleDownload } from '@helpers/downloads';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Checkbox, Grid, Header, Label, Modal } from 'semantic-ui-react';\n\nconst defaultGrid = { span: [], headerDef: [], rowDef: [], data: [], online: 0, offline: 0, siteDisplay: \"\" }\nconst defaultRow = { installationId: null }\nclass SiteDetailsModal extends React.Component {\n\n state = {\n periodId: 1,\n showEvents: false,\n loadingPositions: false,\n loadingEvents: false,\n grid: defaultGrid,\n events: defaultGrid,\n hideDetails: false,\n siteDisplay: \"\",\n activeRow: defaultRow,\n offlineOnly: false\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.modal.open && this.props.modal.open) {\n this.handleRefresh();\n }\n }\n\n onClose = () => this.setState({ grid: defaultGrid, events: defaultGrid, activeRow: defaultRow }, () => this.props.hideSiteDetailsModal());\n\n triggerApiCall = (fnApiCall, fnSuccess, fnFailure) => {\n const { filterSelected, filterData } = this.props.filters;\n const { periodId, siteId } = this.props.modal;\n const { operator, company, subcompany, } = filterSelected\n const { offlineOnly } = this.state;\n this.setState({ activeRow: defaultRow, loadingPositions: true }, () => {\n fnApiCall({\n offlineOnly,\n OperatorId: operator,\n CompanyId: company.id,\n SubCompanyId: subcompany.id,\n SiteId: siteId,\n Manufacturers: prepareFilter(filterSelected.manufacturer, filterData.manufacturer),\n GameNames: prepareFilter(filterSelected.game, filterData.game),\n Categories: prepareFilter(filterSelected.machinetypes, filterData.machinetypes),\n OperatorRegions: prepareFilter(filterSelected.regions, filterData.regions),\n PeriodId: periodId\n }).then(\n grid => fnSuccess(grid),\n () => fnFailure()\n )\n })\n }\n\n handleRefresh = () => {\n const { positionsFn } = this.props.modal;\n this.triggerApiCall(\n positionsFn,\n grid => this.setState({ grid, loadingPositions: false, activeRow: defaultRow, events: defaultGrid }),\n () => this.setState({ loadingPositions: false, grid: defaultGrid })\n );\n }\n\n onExportClick = () => {\n const { exportsFn } = this.props.modal;\n this.triggerApiCall(\n exportsFn,\n response => this.setState({ loadingPositions: false }, () => handleDownload(response)),\n () => this.setState({ loadingPositions: false })\n );\n }\n\n handleRefreshEvents = () => {\n const { eventsFn } = this.props.modal;\n const { activeRow, periodId, showEvents } = this.state;\n const { installationId } = activeRow\n\n this.setState({ loadingEvents: true }, () => {\n eventsFn(installationId, periodId, showEvents).then(\n events => this.setState({ events, loadingEvents: false }),\n () => this.setState({ loadingEvents: false, events: defaultGrid })\n );\n })\n }\n\n render() {\n\n const { title, open } = this.props.modal;\n const { offlineOnly } = this.state;\n const { hideDetails, events, grid, loadingPositions, loadingEvents, activeRow } = this.state;\n\n return (\n \n {title || \"Cash In Box\"}\n \n \n \n \n
{grid.siteDisplay}
\n
\n \n \n \n this.setState({ hideDetails: !hideDetails })} />\n \n {!hideDetails &&\n \n this.setState({ [name]: value })}\n />\n \n }\n
\n \n \n this.setState({ activeRow }, () => this.handleRefreshEvents())}\n hideOverflow\n fullHeight\n />\n \n {!hideDetails &&\n \n \n \n }\n \n
\n
\n \n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.siteDetailsModal,\n filters: state.LiveFloorViewerFilters,\n };\n};\n\nexport default connect(mapStateToProps, { hideSiteDetailsModal })(SiteDetailsModal);\n\n\n","import { hideSuccessAlert } from '@actions/modals';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Header, Modal } from 'semantic-ui-react';\n\nclass SuccessModal extends React.Component {\n\n onClose = () => {\n this.props.successAlert.onConfirm().then(() => this.props.hideSuccessAlert());\n }\n\n render() {\n const { visible, message, header } = this.props.successAlert;\n return (\n \n
{header || \"Success\"}
\n \n {message}\n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n successAlert: state.successAlert\n };\n};\n\nexport default connect(mapStateToProps, { hideSuccessAlert })(SuccessModal);","import { hideVarianceHistoryDetailsModal, setCollectionBreakdownModal } from '@actions/modals';\nimport collections from '@api/collections';\nimport DataGrid from '@shared/DataGrid';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Header, Modal } from 'semantic-ui-react';\n\nclass SiteVarianceHistoryModal extends React.Component {\n\n state = {\n loading: false\n }\n\n onRowClick = (row) => {\n const { detailRef } = row;\n const fnLoad = collections.getBankingWeekByEgm;\n this.props.setCollectionBreakdownModal({\n open: true,\n detailRef,\n fnLoad\n });\n /*\n if (detailRef && detailRef.length > 0) {\n this.setState({ loading: true }, () => {\n collections.getBankingWeekByEgm(detailRef).then(\n result => {\n this.setState({ loading: false })\n this.props.setCollectionBreakdownModal(\n {\n open: true,\n detailRef,\n ...result,\n fnLoad\n },\n async () => this.onRowClick(row),\n async () => {\n this.setState({ loading: true }, () => {\n this.props.modal.onRefresh().then(() => this.setState({ loading: false }))\n })\n },\n );\n },\n error => this.setState({ loading: false })\n );\n });\n }\n */\n }\n\n onClose = () => {\n this.props.hideVarianceHistoryDetailsModal().then(() => {\n this.props.modal.onClose()\n })\n }\n\n render() {\n const { open, siteDisplay, machineDisplay } = this.props.modal;\n const { data, rowDef, headerDef } = this.props.modal.grid\n return (\n \n Variance History Details\n \n
\n {siteDisplay}\n {machineDisplay}\n
\n \n
\n \n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.varianceHistoryDetailsModal,\n };\n};\n\nexport default connect(mapStateToProps, { hideVarianceHistoryDetailsModal, setCollectionBreakdownModal })(SiteVarianceHistoryModal);\n\n\n","import { hideViewCommentsModal } from '@actions/modals';\nimport CommentsList from '@shared/CommentsList';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Modal } from 'semantic-ui-react';\n\nclass AddCommentModal extends React.Component {\n\n handleClose = async () => {\n this.props.hideViewCommentsModal(false)\n }\n\n render() {\n const { comments } = this.props.modal;\n return (\n \n View Comments\n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.viewCommentsModal,\n };\n};\n\nexport default connect(mapStateToProps, { hideViewCommentsModal })(AddCommentModal);\n\n\n","import { showDownloadReportModal } from '@actions/modals';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Input, Form, Modal } from 'semantic-ui-react';\n\nconst DownloadReportModal = (props) => {\n const { open, filename, onSave } = props.modal;\n const { showDownloadReportModal } = props;\n const onClose = () => showDownloadReportModal(false, '', () => { })\n\n const onChange = (e, { value }) => {\n showDownloadReportModal(open, value, onSave);\n }\n\n return (\n \n Download Report\n \n
\n \n \n \n \n
\n
\n \n \n \n \n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n modal: state.downloadReportModal,\n };\n};\n\nexport default connect(mapStateToProps, { showDownloadReportModal })(DownloadReportModal);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { Grid } from 'semantic-ui-react';\n\nconst CountModalSummary = (props) => {\n const { min, pos, game, site, countDate } = props.data;\n return (\n \n \n Site:\n {site}\n \n \n Count Date:\n {countDate}\n \n \n Position:\n {pos}\n \n \n Game:\n {game}\n \n \n MIN:\n {min}\n \n \n )\n}\n\nconst mapStateToProps = (state) => {\n return {\n data: state.editMachineCountModal\n };\n};\n\nexport default connect(mapStateToProps)(CountModalSummary);\n","import { setEditMachineCountModal, showSuccessAlert } from \"@actions/modals\";\nimport React, { useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n\tIcon,\n\tLabel,\n\tButton,\n\tHeader,\n\tModal,\n\tTable,\n\tInput,\n\tTextArea,\n\tForm,\n} from \"semantic-ui-react\";\nimport collections from \"../../api/collections\";\nimport { prettyMoney } from \"@helpers/currency\";\nimport { sum } from \"lodash\";\nimport CountModalSummary from \"../SiteInstallations/CountModalSummary\";\n\nconst denoms = [\n\t{\n\t\tlabel: \"£50\",\n\t\tkey: \"50\",\n\t},\n\t{\n\t\tlabel: \"£20\",\n\t\tkey: \"20\",\n\t},\n\t{\n\t\tlabel: \"£10\",\n\t\tkey: \"10\",\n\t},\n\t{\n\t\tlabel: \"£5\",\n\t\tkey: \"5\",\n\t},\n];\n\nconst EditMachineCountModal = (props) => {\n\tconst { open, activeRow, callback, newCoins, currCoins, loading, Comments } =\n\t\tprops.data;\n\tconst { collectionId, collectionType } = activeRow;\n\tconst { setEditMachineCountModal } = props;\n\n\tuseEffect(() => {\n\t\tif (collectionId === null || collectionType === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tcollections\n\t\t\t.declareCountEdit(collectionType, collectionId)\n\t\t\t.then((response) => {\n\t\t\t\tconst newValues = {};\n\t\t\t\tdenoms.forEach(({ key }) => {\n\t\t\t\t\tnewValues[`new${key}`] = response[`curr${key}`];\n\t\t\t\t});\n\t\t\t\tnewValues.newCoins = response.currCoins;\n\t\t\t\tsetEditMachineCountModal({ ...response, ...newValues });\n\t\t\t});\n\t}, [collectionId, collectionType, setEditMachineCountModal]);\n\n\tconst onClose = () =>\n\t\tprops\n\t\t\t.setEditMachineCountModal({\n\t\t\t\topen: false,\n\t\t\t\tcollectionId: null,\n\t\t\t\tcollectionType: null,\n\t\t\t})\n\t\t\t.then(callback);\n\n\tconst onProcess = () => {\n\t\tprops.setEditMachineCountModal({ loading }).then(() => {\n\t\t\tconst { new50, new20, new10, new5 } = props.data;\n\t\t\tconst params = {\n\t\t\t\tcollectionId,\n\t\t\t\tcollectionType,\n\t\t\t\tnew50: Number(new50),\n\t\t\t\tnew20: Number(new20),\n\t\t\t\tnew10: Number(new10),\n\t\t\t\tnew5: Number(new5),\n\t\t\t\tnewCoins: parseFloat(newCoins),\n\t\t\t\tComments,\n\t\t\t};\n\n\t\t\tcollections.declareCountSave(params).then(\n\t\t\t\t(response) =>\n\t\t\t\t\tprops\n\t\t\t\t\t\t.setEditMachineCountModal({ loading: false })\n\t\t\t\t\t\t.then(() => props.showSuccessAlert(response, \"Success\", onClose)),\n\t\t\t\t() => props.setEditMachineCountModal({ loading: false }),\n\t\t\t);\n\t\t});\n\t};\n\tconst sumByKey = (prefix) =>\n\t\tsum(denoms.map(({ key }) => Number(props.data[`${prefix}${key}`])));\n\tconst sumChanged = () => {\n\t\treturn sum(\n\t\t\tdenoms.map(\n\t\t\t\t({ key }) => props.data[`new${key}`] - props.data[`curr${key}`],\n\t\t\t),\n\t\t);\n\t};\n\n\tconst coinsDiff = newCoins - currCoins;\n\n\tconst validFields = (fields) => {\n\t\treturn fields.map(({ key }) => {\n\t\t\tconst value = props.data[`new${key}`];\n\n\t\t\tif ([\"\", null].includes(value)) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (value < 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (key !== \"Coins\" && value % Number(key) !== 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (key === \"Coins\" && value % 0.05 !== 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn 1;\n\t\t});\n\t};\n\n\tconst fields = [...denoms, { key: \"Coins\", label: \"Coins\" }];\n\tconst isValid =\n\t\tsum(validFields(fields)) === denoms.length + 1 && Comments.length > 0;\n\n\treturn (\n\t\t\n\t\t\t
Machine Count - Edit
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tDenomination\n\t\t\t\t\t\tCurrent\n\t\t\t\t\t\tNew\n\t\t\t\t\t\tChange\n\t\t\t\t\t\n\t\t\t\t\t{denoms.map(({ label, key }) => {\n\t\t\t\t\t\tconst currentValue = props.data[`curr${key}`];\n\t\t\t\t\t\tconst newValue = props.data[`new${key}`];\n\t\t\t\t\t\tconst diff = newValue - currentValue;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t 0} negative={diff < 0}>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t£{prettyMoney(currentValue)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tprops.setEditMachineCountModal({ [`new${key}`]: value })\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t£{prettyMoney(diff)}\n\t\t\t\t\t\t\t\t\t{diff !== 0 && (\n\t\t\t\t\t\t\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t\t\t\t\t\t\t\tname={diff >= 0 ? \"arrow up\" : \"arrow down\"}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tTotal Notes\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t£{prettyMoney(sumByKey(\"curr\"))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t£{prettyMoney(sumByKey(\"new\"))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t£{prettyMoney(sumChanged())}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t 0} negative={coinsDiff < 0}>\n\t\t\t\t\t\tTotal Coins\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t£{prettyMoney(currCoins)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tprops.setEditMachineCountModal({ newCoins: value })\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t£{prettyMoney(newCoins - currCoins)}\n\t\t\t\t\t\t\t{coinsDiff !== 0 && (\n\t\t\t\t\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t\t\t\t\t\tname={coinsDiff >= 0 ? \"arrow up\" : \"arrow down\"}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tTotal Count\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t£{prettyMoney(Number(sumByKey(\"curr\") + currCoins))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t£{prettyMoney(sumByKey(\"new\") + Number(newCoins))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t£{prettyMoney(sumChanged() + coinsDiff)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tprops.setEditMachineCountModal({ Comments: value })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n \n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n data: AlertModalAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(AlertModal);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Modal } from \"semantic-ui-react\";\nimport ConfirmModalAction from \"@common/redux/actions/ConfirmModalAction\";\n\nconst ConfirmModal = (props) => {\n const closeModal = () => {\n ConfirmModalAction.reset().then(ConfirmModalAction.onClose);\n };\n\n const confirm = () => {\n ConfirmModalAction.reset().then(ConfirmModalAction.onConfirm);\n };\n\n return (\n \n {props.data.title}\n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n data: ConfirmModalAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(ConfirmModal);\n","import * as yup from \"yup\";\n\nexport const officerSchema = (officerType = null) =>\n yup.object().shape({\n name: yup.string().required(\"Officer name is required.\"),\n\n badgeNumber: yup.string().required(\n \"Officer badge number is required.\",\n ),\n\n stationName: (!officerType || officerType === 1)\n ? yup.string().required(\"Station name is required.\")\n : yup.string().notRequired(),\n\n phoneNumber: yup.string().required(\n \"Station contact number is required.\",\n ),\n\n address1: yup.string().notRequired(),\n\n address2: yup.string().notRequired(),\n\n town: yup.string().notRequired(),\n\n postcode: yup.string().notRequired(),\n });\n","import { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport OfficerFormModalAction from \"@common/redux/actions/OfficerFormModalAction\";\nimport { officerSchema } from \"../helpers/validation-schemas/officerSchema\";\nimport { useEffect } from \"react\";\nimport { isAlphaNumeric, isNumeric } from \"../helpers/forms\";\nimport { useSelector } from \"react-redux\";\n\nconst useOfficerFormModal = (\n { officerFormData, searchQuery },\n) => {\n const { officerType } = useSelector((store) =>\n OfficerFormModalAction.getStatePath(store)\n );\n const methods = useForm({\n resolver: yupResolver(officerSchema(officerType)),\n defaultValues: officerFormData,\n mode: \"all\",\n });\n\n const { reset, formState: { isValid, errors } } = methods;\n\n // Effect to prefill form values when user input searchQuery changes\n useEffect(() => {\n if (isAlphaNumeric(searchQuery) || isNumeric(searchQuery)) {\n reset({ badgeNumber: searchQuery });\n } else reset({ name: searchQuery });\n }, [searchQuery, reset]);\n\n const closeModal = () => {\n reset();\n OfficerFormModalAction.reset().then(OfficerFormModalAction.onClose);\n };\n\n const onSubmit = (data) => {\n if (!isValid) {\n console.error(errors);\n return;\n }\n OfficerFormModalAction.onSubmit(data);\n reset();\n OfficerFormModalAction.reset();\n };\n\n return { methods, closeModal, onSubmit };\n};\n\nexport default useOfficerFormModal;\n","/**\n * @typedef {Object} OfficerItem\n * @property {string} name - The unique name for the field.\n * @property {string} label - The display label for the field.\n * @property {string} placeholder - The display placeholder for the field.\n * @property {Object} [error=null] - Object containing validation error.\n */\n\nconst addressFormFields = (errors) => [\n {\n key: 5,\n name: \"address1\",\n label: \"\",\n placeholder: \"Address 1\",\n error: errors.address1,\n },\n {\n key: 6,\n name: \"address2\",\n label: \"\",\n placeholder: \"Address 2\",\n error: errors.address2,\n },\n {\n key: 7,\n name: \"town\",\n label: \"\",\n placeholder: \"Town\",\n error: errors.town,\n },\n {\n key: 8,\n name: \"postcode\",\n label: \"\",\n placeholder: \"Postcode\",\n error: errors.postcode,\n },\n];\n\nconst stationNameField = (\n officerType,\n errors,\n) => (!officerType || officerType === 1\n ? [{\n key: 3,\n name: \"stationName\",\n label: \"Station Name\",\n placeholder: \"Enter officer's station name...\",\n error: errors.stationName,\n }]\n : []);\n\nconst phoneNumberLabel = (officerType) =>\n (!officerType || officerType === 1)\n ? \"Station Contact Number\"\n : \"Contact Number\";\n\nconst officerFormFields = (officerType, errors) => [\n {\n key: 1,\n name: \"name\",\n label: \"Officer Name\",\n placeholder: \"Enter officer's name (e.g. Bill Harris)\",\n error: errors.name,\n },\n {\n key: 2,\n name: \"badgeNumber\",\n label: \"Officer Badge Number\",\n placeholder: \"Enter officer's badge number...\",\n error: errors.badgeNumber,\n },\n ...stationNameField(officerType, errors),\n {\n key: 4,\n name: \"phoneNumber\",\n label: phoneNumberLabel(officerType),\n placeholder: \"Enter officer's station contact number...\",\n error: errors.phoneNumber,\n },\n];\n\n/**\n * An array of items for the select component.\n * @param {function} errors - Errors function from react-hook-form\n * @returns {{ officerForm: OfficerItem[], addressForm: OfficerItem[] }} - The return objects\n */\nexport const mapOfficerFormOptions = ({ officerType = null, errors }) => {\n const officerForm = officerFormFields(officerType, errors);\n const addressForm = addressFormFields(errors);\n return { officerForm, addressForm };\n};\n","import React from 'react';\nimport { Form } from \"semantic-ui-react\";\nimport { connect } from \"react-redux\";\nimport { useFormContext } from \"react-hook-form\";\n\nimport InputComponent from \"./InputComponent\";\nimport SelectComponent from \"./SelectComponent\";\nimport { mapOfficerFormOptions } from \"../../helpers/options/officerFormOptions\";\nimport OfficerFormModalAction from \"../../../redux/actions/OfficerFormModalAction\";\n\nconst OfficerDetailsForm = (props) => {\n const {\n officerType,\n officerTypes,\n isEnforcementPolice,\n loadingOfficerTypes,\n } = props.data;\n const methods = useFormContext();\n const { register, control, formState: { errors } } = methods;\n let fields = mapOfficerFormOptions({ officerType, errors });\n\n return (\n <>\n {officerTypes &&\n (\n \n )}\n {fields.officerForm.map((x) => (\n \n ))}\n \n \n
\n {fields.addressForm.map((x) => (\n \n ))}\n
\n
\n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n data: OfficerFormModalAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(OfficerDetailsForm);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Form, Icon, Modal } from \"semantic-ui-react\";\nimport { FormProvider } from \"react-hook-form\";\nimport OfficerFormModalAction from \"../../redux/actions/OfficerFormModalAction\";\nimport useOfficerFormModal from \"../hooks/useOfficerFormModal\";\nimport OfficerDetailsForm from \"../shared/forms/OfficerDetailsForm\";\n\nconst OfficerFormModal = (props) => {\n const {\n open,\n title,\n searchQuery,\n officerFormData,\n } = props.data;\n\n const { methods, closeModal, onSubmit } = useOfficerFormModal({\n officerFormData,\n searchQuery,\n });\n\n return (\n \n {title}\n \n \n
\n \n \n
\n
\n \n \n \n Back\n \n \n Submit\n \n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n data: OfficerFormModalAction.getStatePath(state),\n };\n};\n\nexport default connect(mapStateToProps)(OfficerFormModal);\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Button, Modal, Image } from \"semantic-ui-react\";\n\n// Actions\nimport ImageModalAction from \"@common/redux/actions/ImageModalAction\";\n\nconst ImageModal = () => {\n const { open, title, image } = useSelector((store) =>\n ImageModalAction.getStatePath(store)\n );\n\n const closeModal = () => {\n ImageModalAction.reset();\n };\n\n return (\n \n {title}\n \n \n \n \n \n \n \n );\n};\n\nexport default ImageModal;\n","import React from 'react';\nimport { Dropdown, Form } from \"semantic-ui-react\";\nimport { mapToSelect } from \"@common/components/helpers/forms\";\n\nconst Filters = (props) => {\n const longTermOptions = [\n { key: \"24 Hours\", text: \"24 Hours\", value: 0 },\n { key: \"7 Days\", text: \"7 days\", value: 1 },\n { key: \"28 Days\", text: \"28 Days\", value: 2 },\n ];\n const shortTermOptions = [\n { key: \"20 Minutes\", text: \"20 Minutes\", value: 3 },\n { key: \"1 Hour\", text: \"1 Hour\", value: 4 },\n { key: \"3 Hours\", text: \"3 Hours\", value: 5 },\n { key: \"24 Hours\", text: \"24 Hours\", value: 0 },\n { key: \"7 Days\", text: \"7 days\", value: 1 },\n { key: \"28 Days\", text: \"28 Days\", value: 2 },\n ];\n\n const options = !props.shortTerm ? longTermOptions : shortTermOptions;\n\n const events = [\n { key: \"Yes\", text: \"Yes\", value: true },\n { key: \"No\", text: \"No\", value: false },\n ];\n\n const { dataType, dataTypes, onChange, disabled, periodType, showEvents } =\n props;\n\n return (\n
\n \n {dataTypes &&\n (\n \n \n \n \n )}\n \n \n \n \n {events.map((x) => x.value).includes(showEvents) &&\n (\n \n \n \n \n )}\n \n
\n );\n};\n\nexport default Filters;\n","import SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport SessionalPositionsAction from \"@common/redux/actions/SessionalPositionsAction\";\nimport { makeLabels } from \"@common/components/helpers/machines\";\nimport { useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\n\nconst useSessionsUtils = () => {\n const history = useHistory();\n const positions = useSelector((state) =>\n SessionalPositionsAction.getStatePath(state)\n );\n\n const labels = makeLabels(positions, false, false);\n\n const onPositionClick = (activeRow) => {\n SessionalPositionsAction.dispatch({ activeRow });\n };\n\n const onDetailClick = (row) => {\n const sessionId = row.sessionId;\n history.push(`/sessions/view/?id=${sessionId}`);\n };\n\n const toggleFilter = (key) => {\n SessionalPositionsAction.dispatch({ [key]: !positions[key] });\n };\n\n const onPageChange = (e, { pageNumber }) => {\n SessionalDetailsAction.dispatch({ pageNumber });\n };\n\n const onBack = () => history.push(\"/dashboard\");\n\n return {\n labels,\n onPositionClick,\n onDetailClick,\n toggleFilter,\n onPageChange,\n onBack,\n };\n};\n\nexport default useSessionsUtils;\n","/**\n * Takes object containing booleans and quantities for labels and maps them onto an array of label objects.\n * @param {Object} data\n */\nexport const makeLabels = (\n data,\n includeDoorOpen = true,\n includeShowInPlay = true,\n) => {\n const {\n showOnline,\n showOffline,\n showNonOp,\n online,\n offline,\n nonOp,\n showDoorOpen,\n doorOpen,\n showInPlay,\n inPlay,\n } = data;\n\n const array = [\n {\n key: \"showOnline\",\n text: \"Online\",\n color: \"green\",\n disabled: !showOnline,\n quantity: online,\n },\n {\n key: \"showOffline\",\n text: \"Offline\",\n color: \"red\",\n disabled: !showOffline,\n quantity: offline,\n },\n {\n key: \"showNonOp\",\n text: \"Pending\",\n color: \"orange\",\n disabled: !showNonOp,\n quantity: nonOp,\n },\n ];\n\n if (includeDoorOpen) {\n array.push({\n key: \"showDoorOpen\",\n text: \"Door Open\",\n color: \"blue\",\n disabled: !showDoorOpen,\n quantity: doorOpen,\n });\n }\n\n if (includeShowInPlay) {\n array.push({\n key: \"showInPlay\",\n text: \"In Play\",\n color: \"purple\",\n disabled: !showInPlay,\n quantity: inPlay,\n });\n }\n\n return array;\n};\n\nexport const transactionsLabels = [\n {\n text: \"Handpays\",\n color: \"orange\",\n disabled: false,\n quantity: \"12 (£1,245.35)\",\n },\n {\n text: \"Refills\",\n color: \"green\",\n disabled: false,\n quantity: \"12 (£1,245.35)\",\n },\n { text: \"Payouts\", color: \"blue\", disabled: false, quantity: \"12 (£245.50)\" },\n {\n text: \"Promo Cash\",\n color: \"purple\",\n disabled: false,\n quantity: \"12 (£245.50)\",\n },\n {\n text: \"M/c Test\",\n color: \"grey\",\n disabled: false,\n quantity: \"12 (£245.50)\",\n },\n {\n text: \"Tickets Redeemed Kiosk\",\n color: \"black\",\n disabled: false,\n quantity: \"250 (£11,245.50)\",\n },\n {\n text: \"Tickets Redeemed CD\",\n color: \"yellow\",\n disabled: false,\n quantity: \"250 (£11,245.50)\",\n },\n];\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Pagination } from \"semantic-ui-react\";\nimport SessionalDetailsAction from \"../../redux/actions/SessionalDetailsAction\";\nimport SessionalPositionsAction from \"../../redux/actions/SessionalPositionsAction\";\nimport DataGrid from \"@common/components/shared/DataGrid\";\nimport Filters from \"@common/components/shared/Filters\";\nimport useSessionsUtils from \"@common/components/hooks/useSessionsUtils\";\nimport {\n handleOptionChange,\n handleSessionsOptionChange,\n} from \"../helpers/Sessions/sessionsDetailsHelpers\";\nimport useLogin from \"../hooks/useLogin\";\n\nconst SessionsDetails = (props) => {\n const { onDetailClick } = props;\n const [{ optionDisplaySessionsInCompliance }] = useLogin();\n const positions = useSelector((state) =>\n SessionalPositionsAction.getStatePath(state)\n );\n const details = useSelector((state) =>\n SessionalDetailsAction.getStatePath(state)\n );\n const { onPositionClick, onPageChange } = useSessionsUtils();\n\n return (\n <>\n \n {optionDisplaySessionsInCompliance\n ? (\n <>\n \n SessionalDetailsAction.dispatch({ [name]: value })}\n {...details}\n />\n {\n const newGridData = handleOptionChange(\n event,\n details.grid.data,\n rowIndex,\n option,\n );\n handleSessionsOptionChange(\n details.grid.data[rowIndex],\n newGridData,\n );\n }}\n />\n \n \n )\n : <>}\n \n );\n};\n\nexport default SessionsDetails;\n","import React from 'react';\n\nconst Flex = (props) => {\n return
{props.children}
;\n};\n\nexport default Flex;\n","import ApiClient from \"@common/api/ApiClient\";\n\nclass Session extends ApiClient {\n constructor() {\n super(\"Session\");\n }\n\n Sessions = async (installationId, periodId, pageNumber = 1) => {\n console.log(\n `Installation ID: ${installationId}, Period ID: ${periodId}, Page number: ${pageNumber}`,\n );\n return await this.get(\n `Sessions2/${installationId},${periodId},${pageNumber}`,\n );\n };\n\n SessionsCompliance = async (installationId, periodId, pageNumber = 1) => {\n console.log(\n `Compliance Installation ID: ${installationId}, Period ID: ${periodId}, Page number: ${pageNumber}`,\n );\n return await this.get(\n `compliance/sessions/${installationId},${periodId},${pageNumber}`,\n );\n };\n\n Positions = async (online, offline, nonOp) => {\n return await this.get(`Positions/${online},${offline},${nonOp}`);\n };\n\n Session = async (sessionId) => {\n return await this.get(`Session/${sessionId}`);\n };\n\n LiveFloorView = async (\n installationId,\n periodId,\n pageNumber = 1,\n ) => {\n return await this.get(\n `Sessions/LFV/${installationId},${periodId},${pageNumber}`,\n );\n };\n}\n\nconst client = new Session();\n\nexport default client;\n","import { useCallback, useEffect } from \"react\";\nimport SessionsApi from \"@common/api/SessionClient\";\nimport LoadingAction from \"../../redux/actions/LoadingAction\";\nimport SessionalDetailsAction from \"../../redux/actions/SessionalDetailsAction\";\nimport SessionalPositionsAction from \"../../redux/actions/SessionalPositionsAction\";\nimport { handleError } from \"@common/components/helpers/error\";\nimport { useSelector } from \"react-redux\";\nimport useLogin from \"./useLogin.js\";\nimport { fetchComplianceSessionsPositions } from \"@common/api/desktop/sessions.js\";\nimport { fetchComplianceSessions } from \"../../api/desktop/sessions.js\";\n\nexport const useSessions = (isComplianceMobile, open) => {\n const { showOnline, showOffline, showNonOp } = useSelector((state) =>\n SessionalPositionsAction.getStatePath(state)\n );\n\n const [{ isDesktop }] = useLogin();\n const compliance = useSelector((state) => state.complianceSummaryTab);\n useLoadDetails({ isComplianceMobile, open });\n\n const handleRefresh = useCallback(() => {\n if (!open) {\n return;\n }\n\n SessionalDetailsAction.reset().then(() => {\n LoadingAction.set(true).then(() => {\n const fnSearch = isDesktop\n ? async () => {\n return await fetchComplianceSessionsPositions(\n compliance.eventsGridActiveRow.site.id,\n );\n }\n : async () =>\n await SessionsApi.Positions(showOnline, showOffline, showNonOp);\n\n fnSearch().then(\n (positions) =>\n SessionalPositionsAction.dispatch({\n ...positions,\n activeRow: null,\n }).then(() => LoadingAction.set(false)),\n (error) => {\n console.log(error);\n handleError(error);\n },\n );\n });\n });\n }, [showOnline, showOffline, showNonOp, open, compliance]);\n\n useEffect(() => {\n handleRefresh();\n }, [handleRefresh]);\n\n return handleRefresh;\n};\n\nconst useLoadDetails = ({ isComplianceMobile, open }) => {\n const [{ isDesktop }] = useLogin();\n\n const positions = useSelector((state) =>\n SessionalPositionsAction.getStatePath(state)\n );\n const details = useSelector((state) =>\n SessionalDetailsAction.getStatePath(state)\n );\n\n useEffect(() => {\n if (!positions.activeRow || !positions.activeRow.installationId || !open) {\n return;\n }\n LoadingAction.set(true).then(() => {\n const fnSearch = isDesktop\n ? fetchComplianceSessions\n : isComplianceMobile\n ? SessionsApi.SessionsCompliance\n : SessionsApi.Sessions;\n\n fnSearch(\n positions.activeRow.installationId,\n details.periodType,\n details.pageNumber,\n ).then(\n (grid) => {\n SessionalDetailsAction.dispatch(grid).then(() =>\n LoadingAction.set(false)\n );\n },\n (error) => handleError(error),\n );\n });\n }, [positions, details.periodType, details.pageNumber, open]);\n};\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Button, Modal } from \"semantic-ui-react\";\nimport LinkSessionModalAction from \"@common/redux/actions/LinkSessionModalAction\";\nimport SessionalDetailsAction from \"@common/redux/actions/SessionalDetailsAction\";\nimport SessionsDetails from \"@common/components/shared/SessionsDetails\";\nimport Flex from \"@common/components/shared/Flex\";\nimport { useSessions } from \"../hooks/useSessions\";\nimport {\n handleRowClickOptionChange,\n handleSessionsRowClick,\n} from \"../helpers/Sessions/sessionsDetailsHelpers\";\nimport useLogin from \"../hooks/useLogin\";\n\nconst LinkSessionModal = () => {\n const {\n open,\n selectedSessionDetails,\n } = useSelector((\n state,\n ) => LinkSessionModalAction.getStatePath(state));\n const [{ optionDisplaySessionsInCompliance }] = useLogin();\n\n const { grid } = useSelector((state) =>\n SessionalDetailsAction.getStatePath(state)\n );\n\n const handleRefresh = useSessions(true, open);\n\n return (\n <>\n LinkSessionModalAction.onClose(false)}\n size=\"large\"\n centered={false}\n >\n \n Link Session\n \n \n \n \n {\n const newGridData = handleRowClickOptionChange(grid.data, row);\n handleSessionsRowClick(row, newGridData);\n }}\n shortTerm={true}\n />\n \n
\n \n LinkSessionModalAction.onClose(false)}\n >\n Close\n \n {\n LinkSessionModalAction.onClose(true);\n }}\n >\n Submit\n \n \n \n \n );\n};\n\nexport default LinkSessionModal;\n","import React from 'react';\nimport AddCommentModal from './AddCommentModal';\nimport AssetOwnershipProfileModal from './AssetOwnershipProfileModal';\nimport BankingCommentsModal from './BankingCommentsModal';\nimport CollectionBreakdownModal from './CollectionBreakdownModal';\nimport CollectionModal from './CollectionModal';\nimport ConfirmModal from './ConfirmModal';\nimport CountDetailsModal from './CountDetailsModal';\nimport EnterPasswordModal from './EnterPasswordModal';\nimport FloatLevelSettingsModal from './FloatLevelSettingsModal';\nimport InstallHistoryModal from './InstallHistoryModal';\nimport LiveFloorViewDetailsModal from './LiveFloorViewDetailsModal';\nimport NewProfileModal from './NewProfileModal';\nimport PromoAnalysisDetailsModal from './PromoAnalysisDetailsModal';\nimport PromoAnalysisModal from './PromoAnalysisModal';\nimport RevenueModal from './RevenueModal';\nimport SiteDetailsModal from './SiteDetailsModal';\nimport SuccessModal from './SuccessModal';\nimport VarianceHistoryDetailsModal from './VarianceHistoryDetailsModal';\nimport ViewCommentsModal from './ViewCommentsModal';\nimport DownloadReportModal from './DownloadReportModal.js';\nimport EditMachineCountModal from './EditMachineCountModal.js';\nimport ProcessPeriodModal from './ProcessPeriodModal.js';\nimport AlertModal from '@common/components/modals/AlertModal';\nimport CommonConfirmModal from '@common/components/modals/ConfirmModal';\nimport OfficerFormModal from '@common/components/modals/OfficerFormModal';\nimport ImageModal from '@common/components/modals/ImageModal';\nimport LinkSessionModal from '@common/components/modals/LinkSessionModal';\n\nconst ModalContainer = () => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default ModalContainer;\n","import { fetchOperatorOptions, fetchOperators, fetchSearchTerms } from '@actions';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Accordion, Button, Checkbox, Form, Icon, Input, List, Loader, Menu } from 'semantic-ui-react';\nimport SelectOperator from './SelectOperator';\n\nclass OrganisationDirectory extends React.Component {\n\n state = {\n loading: false,\n buttonEnabled: false,\n allOrgsSelected: false,\n }\n\n showOrganisations = async () => {\n const { fetchOrganisations, data, showEmpty } = this.props;\n const organisations = await fetchOrganisations(data, showEmpty)\n await this.props.onChange(organisations)\n }\n\n handleSearchTextChange = (event, { value }) => {\n this.props.onChange({ filterSelected: { searchText: value } })\n }\n\n componentDidMount() {\n this.assignOperator();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.section !== prevProps.section && !this.props.data.filterSelected.operator) {\n this.assignOperator();\n }\n }\n\n assignOperator = () => {\n if (this.props.operators.length === 1) this.handleOperatorChange(null, { value: this.props.operators[0].value })\n\n if (this.props.data.filterSelected.operator) {\n this.setState({ buttonEnabled: true })\n }\n }\n\n handleOperatorChange = (event, data) => {\n this.setState({ buttonEnabled: false, loading: true, operator: data.value }, () => {\n fetchSearchTerms(data.value).then(\n searchTerms => {\n const filterSelected = {\n ...this.props.data.filterSelected,\n company: { id: null },\n subcompany: { id: null },\n site: { id: null },\n searchText: '',\n operator: data.value,\n ...searchTerms\n }\n\n this.props.empty(false).then(() => {\n fetchOperatorOptions(data.value).then(\n operatorOptions => {\n this.setState({ buttonEnabled: true, loading: false }, () => {\n this.props.onChange({ filterData: searchTerms, operatorOptions, organisations: [], hasSelection: false, filterSelected })\n })\n },\n () => this.setState({ loading: false })\n );\n });\n },\n () => this.setState({ loading: false })\n )\n })\n }\n\n handleCheckboxChange = (key, item) => {\n\n const selected = { ...this.props.data.filterSelected }\n\n if (item.id === -1) {\n if (this.props.data.filterSelected[key].length < this.props.data.filterData[key].length - 1) {\n selected[key] = [...this.props.data.filterData[key]]\n } else {\n selected[key] = [];\n }\n } else {\n if (selected[key].includes(item)) {\n selected[key] = selected[key].filter(current => current !== item && current.id !== -1)\n } else {\n selected[key].push(item);\n\n if (selected[key].length === this.props.data.filterData[key].length - 1) {\n selected[key] = [...this.props.data.filterData[key]]\n }\n }\n }\n\n this.handleRefresh({ filterSelected: selected });\n }\n\n renderLevel3(company, subcompany) {\n const listItems = subcompany.sites.map(item => {\n return (\n { this.setSelection(company, subcompany, item) }}\n >\n {item.name}\n );\n });\n return (\n \n {listItems}\n \n );\n }\n\n handleClick(id, key) {\n const orgs = this.props.data[key];\n var index = orgs.indexOf(id);\n\n if (index === -1) {\n orgs.push(id);\n } else {\n orgs.splice(index, 1);\n }\n\n this.props.onChange({ [key]: orgs, activeLink: id })\n }\n\n renderLevel2(company) {\n\n const items = company.subCompanies;\n\n const panels = items.map(item => {\n const isActive = this.props.data.activeSubOrgs.includes(item.id);\n const hasItems = item.sites != null\n const iconName = isActive || !hasItems ? \"minus square outline\" : \"plus square outline\"\n return (\n
\n \n this.handleClick(item.id, 'activeSubOrgs')} />\n { this.setSelection(company, item, null) }}>{item.name}\n \n {this.renderLevel3(company, item)}\n
\n )\n });\n return (\n \n \n {panels}\n \n \n )\n }\n\n panelsList = () => {\n return this.props.data.organisations.map(installation => {\n const isActive = this.props.data.activeOrgs.includes(installation.id);\n const hasItems = installation.subCompanys != null\n const iconName = isActive || !hasItems ? \"minus square outline\" : \"plus square outline\"\n return (\n \n \n this.handleClick(installation.id, 'activeOrgs')} />\n { this.setSelection(installation, null, null) }}>{installation.name}\n \n \n {this.renderLevel2(installation)}\n \n \n );\n });\n }\n\n toggleActiveFilter = (key) => {\n this.props.onChange({ filterActive: { [key]: !this.props.data.filterActive[key] } })\n }\n\n searchOptions = (title, key) => {\n if (this.props.data.filterSelected.operator) {\n return (\n \n this.toggleActiveFilter(key)} active={this.props.data.filterActive[key]}>\n \n {title}\n \n \n {this.props.data.filterData[key].map((item) => {\n return (
{ this.handleCheckboxChange(key, item) }} key={item.id} />
)\n })}\n
\n
\n )\n }\n }\n\n handleRefresh = (data) => {\n this.setState({ loading: true }, () => {\n this.props.onChange(data).then(() => {\n this.showOrganisations().then(() => this.setState({ loading: false }))\n })\n })\n }\n\n toggleAllOrgs = () => {\n this.props.onChange({ allOrgsActive: !this.props.data.allOrgsActive })\n }\n\n setSelection = (company, subCompany, site) => {\n\n if (site || this.props.extraFilters) {\n\n this.setState({ allOrgsSelected: company === null && subCompany === null && site === null })\n\n let updatedCompany = company === null ? { id: null, name: \"ALL\", displayText: \"ALL\" } : company\n let updatedSubCompany = subCompany === null ? { id: null, name: \"ALL\", displayText: \"ALL\" } : subCompany\n let updatedSite = site === null ? { id: null, name: \"ALL\", displayText: \"ALL\" } : site\n\n const data = { company: updatedCompany, subcompany: updatedSubCompany, site: updatedSite }\n\n this.props.onChange({ hasSelection: true, filterSelected: { ...data } })\n }\n }\n\n isSelected = (company, subCompany, site) => {\n\n const defaultCompany = company === null ? { id: null } : company;\n const defaultSubCompany = subCompany === null ? { id: null } : subCompany;\n const defaultSite = site === null ? { id: null } : site;\n\n const companyMatches = this.props.data.filterSelected.company.id === defaultCompany.id\n const subCompanyMatches = this.props.data.filterSelected.subcompany.id === defaultSubCompany.id\n const siteMatches = this.props.data.filterSelected.site.id === defaultSite.id;\n\n return companyMatches && subCompanyMatches && siteMatches;\n }\n\n handleSearch = () => {\n this.setState({ loading: true }, () => {\n if (this.props.data.filterSelected.operator) {\n this.showOrganisations().then(() => this.setState({ loading: false }))\n } else {\n this.setState({ modalOpen: true, loading: false })\n }\n });\n\n }\n\n render = () => {\n const { operators } = this.props;\n const { showOrgTree } = this.props.data || true;\n\n if (!showOrgTree) return \n\n return (\n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {this.state.loading ?\n Loading\n :\n this.props.allowAll ?\n\n this.props.data.organisations.length &&\n \n \n \n { this.setSelection(null, null, null) }}>All\n \n \n \n \n \n :\n \n }\n \n {(this.props.includeSearchTerms) &&\n
\n {this.props.data.filterData.regions.length > 1 && this.searchOptions(\"Operator Regions\", \"regions\")}\n {this.searchOptions(\"Manufacturer\", \"manufacturer\")}\n {this.searchOptions(\"EGM Cabinet Name\", \"game\")}\n {this.searchOptions(\"Category\", \"machinetypes\")}\n
\n }\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n operators: state.operators.filter(x => x.value !== -1)\n }\n}\n\nexport default connect(mapStateToProps, { fetchOperators })(OrganisationDirectory);\n","import {\n emptyAnalysisSection,\n emptyCollectionsSection,\n emptyInstallationsSection,\n emptyKioskSection,\n emptySessionsSection,\n emptySettingsSection,\n emptyTransactionsSection,\n fetchAnalysisFilters,\n fetchCollectionsFilters,\n fetchInstallationsFilters,\n fetchKioskFilters,\n fetchLiveFloorViewerFilters,\n fetchOrganisations,\n fetchSessionsFilters,\n fetchSettingsFilters,\n fetchTransactionsFilters,\n fetchComplianceFilters\n} from '@actions';\nimport React from 'react';\nimport { connect } from 'react-redux';\n\nimport { fetchAnalysisOrganisations, fetchKioskOrganisations } from '@actions/organisationDirectory';\nimport OrganisationDirectory from '@shared/OrganisationDirectory';\n\nconst OrganisationDirectoryMenu = (props) => {\n\n const { section, marginLeft } = props;\n const { fetchComplianceFilters, fetchInstallationsFilters, fetchTransactionsFilters, fetchKioskFilters, fetchSessionsFilters, fetchAnalysisFilters, fetchLiveFloorViewerFilters, fetchSettingsFilters } = props;\n const { complianceFilters, installationsFilters, transactionsFilters, kioskFilters, sessionsFilters, analysisFilters, liveFloorViewerFilters, settingsFilters } = props;\n const { emptyInstallationsSection, emptyTransactionsSection, emptyKioskSection, emptySessionsSection, emptyAnalysisSection, emptySettingsSection } = props;\n\n let defaultProps = {\n showOrgTree: true,\n extraFilters: true,\n data: null,\n onChange: null,\n empty: async () => { },\n hideable: false,\n allowAll: true,\n showEmpty: false,\n includeSearchTerms: true,\n marginLeft,\n section,\n fetchOrganisations\n }\n\n switch (section) {\n case \"GENERAL_INSTALL\":\n return (\n \n )\n\n case \"GENERAL_TRANS\":\n return (\n \n )\n\n case \"KIOSK\":\n return (\n \n )\n\n case \"GENERAL_SESSIONS\":\n return (\n \n )\n\n case \"GENERAL_ANALYSIS\":\n return (\n \n )\n\n case \"GENERAL_COMMS\":\n return (\n \n )\n\n case \"COMPLIANCE\":\n return (\n \n )\n\n case \"GENERAL_SYSADMIN\":\n return (\n \n )\n\n default:\n return \n }\n\n}\n\nconst mapStateToProps = (state) => {\n return {\n sessionsFilters: state.sessionsFilters,\n analysisFilters: state.analysisFilters,\n complianceFilters: state.complianceFilters,\n collectionsFilters: state.collectionsFilters,\n installationsFilters: state.installationsFilters,\n transactionsFilters: state.transactionsFilters,\n liveFloorViewerFilters: state.LiveFloorViewerFilters,\n settingsFilters: state.settingsFilters,\n kioskFilters: state.kioskFilters\n };\n};\n\nexport default connect(mapStateToProps, {\n emptyInstallationsSection,\n emptySessionsSection,\n emptySettingsSection,\n emptyTransactionsSection,\n fetchSettingsFilters,\n fetchComplianceFilters,\n fetchSessionsFilters,\n emptyCollectionsSection,\n emptyAnalysisSection,\n fetchKioskFilters,\n emptyKioskSection,\n fetchCollectionsFilters,\n fetchAnalysisFilters,\n fetchInstallationsFilters,\n fetchTransactionsFilters,\n fetchLiveFloorViewerFilters,\n})(OrganisationDirectoryMenu);\n","export const emptyCollectionsSection = (clearFilters = true) => async dispatch => {\n\tif (clearFilters) dispatch({type: 'FETCH_COLLECTIONS_FILTERS', payload: []});\n}","import { setLogout, showSuccessAlert } from '@actions'\nimport React from 'react'\nimport { useIdleTimer } from 'react-idle-timer'\nimport { connect } from 'react-redux'\n\nconst TimeoutCheck = (props) => {\n const handleOnIdle = event => {\n props.showSuccessAlert(\n \"You have been logged out due to inactivity, please log in again to continue using Guardian CMS.\",\n \"Session Timeout\",\n () => { props.setLogout(); window.location = '/'; }\n );\n }\n\n useIdleTimer({\n timeout: 1000 * props.logIn.logOutSeconds || 300,\n onIdle: handleOnIdle,\n debounce: 500\n })\n\n return (\n \n )\n}\n\n\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n logIn: state.logIn,\n };\n};\n\nexport default connect(mapStateToProps, { setLogout, showSuccessAlert })(TimeoutCheck);\n","import React from \"react\";\n\nconst DefaultView = (props) => {\n return (\n
\n \"Logo\"\n
\n );\n}\n\nexport default DefaultView;","import { setLogout } from '@actions';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom.min';\nimport { Icon, Menu } from 'semantic-ui-react';\n\nconst MainMenu = props => {\n\n const { onSubmit, setLogout, menu, collapsed, onCollapse } = props;\n const history = useHistory();\n const onItemClick = (event, { name }) => onSubmit(name);\n\n const onLogout = () => {\n setLogout().then(() => {\n history.push('/')\n })\n }\n\n const menuOptions = menu.map(item =>\n \n {!collapsed && item.name}\n \n \n );\n\n return (\n \n \n {collapsed ?\n \n :\n \"Logo\"\n }\n \n {menuOptions}\n \n {!collapsed && Log Out}\n \n \n \n );\n}\n\nexport default connect(null, { setLogout })(MainMenu);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { Icon } from 'semantic-ui-react';\n\nclass SystemTray extends React.Component {\n\n render() {\n return (\n
\n {this.props.logIn.name}\n \n {this.props.logIn.companyName}\n Version {this.props.logIn.version} #5.3.3\n \n
\n )\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n logIn: state.logIn,\n };\n};\n\nexport default connect(mapStateToProps, null)(SystemTray);\n","import { fetchLogin, fetchOperators, setLogout } from '@actions';\nimport CloseButton from '@buttons/CloseButton';\nimport { createWidget } from '@helpers/jira';\nimport availablePanes from '@helpers/panes';\nimport ModalContainer from '@modals/ModalContainer';\nimport OrganisationDirectoryMenu from '@shared/OrganisationDirectoryMenu';\nimport TimeoutCheck from '@shared/TimeoutCheck';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Menu, Tab } from 'semantic-ui-react';\nimport DefaultView from './DefaultView';\nimport MainMenu from './MainMenu';\nimport SystemTray from './SystemTray';\n\nclass Panes extends React.Component {\n\n constructor(props) {\n super(props);\n\n if (this.props.logIn === \"\") window.location = \"/\";\n\n this.state = {\n section: null,\n collapsed: true,\n activeIndex: 0,\n panes: [],\n availablePanes: this.getAvailablePanes()\n };\n }\n\n getAvailablePanes = () => {\n return availablePanes.map(({ key, title, component }) => {\n return {\n menuItem: {title} this.rmTab(key)} />,\n pane: {component}\n }\n })\n }\n\n rmTab = (name) => {\n const panes = this.state.panes.filter(pane => pane.menuItem.key !== name);\n\n let activeIndex = null;\n let section = \"\";\n\n if (panes.length) {\n activeIndex = panes.length - 1\n section = panes[activeIndex].menuItem.key\n }\n\n this.setState({ panes, activeIndex, section });\n }\n\n createPane(menuItem) {\n let newPane = this.state.availablePanes.find(pane => pane.menuItem.key === menuItem);\n if (newPane) {\n this.setState((state, props) => {\n const newPanes = [...state.panes, newPane];\n return {\n activeIndex: state.panes.length,\n panes: newPanes,\n section: menuItem\n }\n });\n }\n }\n\n updateTab = menuItem => {\n if (this.state.panes.length > 0) {\n let pane = this.state.panes.findIndex(pane => pane.menuItem.key === menuItem);\n if (pane > -1) {\n this.setState({\n activeIndex: pane,\n section: menuItem\n });\n } else {\n this.createPane(menuItem);\n }\n } else {\n this.createPane(menuItem);\n }\n }\n\n setPane = () => {\n this.setState((state, props) => {\n var pane = 0;\n if (props.match.params.id === \"current_installations\") {\n pane = 1;\n }\n return { activeIndex: pane };\n });\n\n }\n\n handleTabChange = (e, { activeIndex }) => this.setState({ activeIndex, section: this.state.panes[activeIndex].menuItem.key })\n\n componentDidMount() {\n this.props.fetchOperators();\n this.setPane();\n if (this.props.logIn.optionShowSupportWidget) {\n createWidget(this.props.logIn.supportWidgetKey);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.match.params.id !== prevProps.match.params.id)\n this.setPane();\n }\n\n calculateLeftMargin = () => {\n let marginLeft = 0;\n marginLeft += this.state.collapsed ? 48 : 210\n marginLeft += !this.isOrgTreeCollapsed() ? 0 : 230\n\n return marginLeft;\n }\n\n isOrgTreeCollapsed = () => {\n switch (this.state.section) {\n case 'GENERAL_SESSIONS':\n return this.props.sessionsFilters.showOrgTree;\n case 'GENERAL_TRANS':\n return this.props.transactionsFilters.showOrgTree;\n case 'GENERAL_INSTALL':\n return this.props.installationsFilters.showOrgTree;\n case 'GENERAL_COMMS':\n return this.props.liveFloorViewerFilters.showOrgTree;\n case 'GENERAL_ANALYSIS':\n return this.props.analysisFilters.showOrgTree;\n case 'KIOSK':\n return this.props.kioskFilters.showOrgTree;\n case 'GENERAL_SYSADMIN':\n return this.props.settingsFilters.showOrgTree;\n case 'COMPLIANCE':\n return this.props.complianceFilters.showOrgTree;\n default:\n return false;\n\n }\n }\n\n render() {\n const marginLeft = this.calculateLeftMargin()\n\n return (\n
\n \n \n this.setState({ collapsed: !this.state.collapsed })}\n onSubmit={this.updateTab}\n onLogout={this.logout}\n menu={this.props.logIn.menu}\n />\n {this.state.panes.length > 0 &&\n \n }\n
\n {this.state.panes.length > 0 ?\n
\n \n
\n :\n \n }\n \n
\n
\n )\n\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n logIn: state.logIn,\n complianceFilters: state.complianceFilters,\n settingsFilters: state.settingsFilters,\n sessionsFilters: state.sessionsFilters,\n transactionsFilters: state.transactionsFilters,\n installationsFilters: state.installationsFilters,\n kioskFilters: state.kioskFilters,\n analysisFilters: state.analysisFilters,\n liveFloorViewerFilters: state.LiveFloorViewerFilters,\n };\n};\n\nexport default connect(mapStateToProps, {\n fetchLogin,\n setLogout,\n fetchOperators,\n})(Panes);\n","export const createWidget = (key) => {\n const jiraScriptTag = document.createElement(\"script\");\n jiraScriptTag.id = 'jira-script-tag';\n jiraScriptTag.setAttribute('data-base-url', 'https://jsd-widget.atlassian.com');\n jiraScriptTag.setAttribute('data-jsd-embedded', true);\n jiraScriptTag.setAttribute('data-key', key);\n jiraScriptTag.src = 'https://jsd-widget.atlassian.com/assets/embed.js';\n document.body.appendChild(jiraScriptTag);\n setTimeout(() => {\n window.document.dispatchEvent(new Event(\"DOMContentLoaded\", {\n bubbles: true,\n cancelable: true\n }))\n\n const widget = document.getElementById(\"jsd-widget\");\n widget.style.top = '0px';\n }, 1000);\n}","import { resetPassword } from '@actions';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Button, Form, Grid, Header, Input, Message } from 'semantic-ui-react';\n\nclass Forgotten extends React.Component {\n\n state = {\n userEmail: '',\n result: false,\n showMessage: false,\n loading: false\n }\n\n resetPassword = () => {\n this.setState({ loading: true }, () => {\n this.props.resetPassword(this.state.userEmail).then(result => {\n this.setState({ showMessage: true, result, loading: false })\n },\n () => this.setState({ loading: false })\n );\n })\n }\n\n handleChange = (event, { name, value }) => {\n if (this.state.hasOwnProperty(name)) {\n this.setState({ [name]: value });\n }\n }\n\n handleReturnToLogin = () => {\n this.props.history.push(\"/\");\n }\n\n componentDidMount() {\n }\n\n render() {\n //Check for login\n return (\n \n \n \n \"Rimini\n
Request Password Reset
\n
\n
\n \n \n
\n\n {this.state.showMessage &&\n
\n {!this.state.result ?\n Reset ErrorUnable to reset your password, please try again.\n :\n Reset SuccessfulPassword reset successful, please check your email address for further instructions.\n }\n
\n }\n\n \n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\n\nexport default connect(null, {\n resetPassword\n})(Forgotten);\n","import { fetchLogin } from \"@actions\";\nimport { hideSuccessAlert } from \"@actions/modals\";\nimport AuthenticationClient from \"@common/api/AuthenticationClient\";\nimport LoginAction from \"@common/redux/actions/LoginAction\";\nimport axios from '@common/api/desktop/axios';\nimport ModalContainer from \"@modals/ModalContainer\";\nimport { detect } from \"detect-browser\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n\tButton,\n\tForm,\n\tGrid,\n\tHeader,\n\tInput,\n\tLabel,\n\tMessage,\n} from \"semantic-ui-react\";\nimport { epochInSeconds } from \"@common/components/helpers/datetime\";\n\nclass Login extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tlogIn: {},\n\t\t\tloading: false,\n\t\t\tshowReset: false,\n\t\t\tloggedIn: false,\n\t\t\tuserName: \"\",\n\t\t\tpassword: \"\",\n\t\t\tactiveIndex: 0,\n\t\t\tpanes: [],\n\t\t\tpasswordMatch: true,\n\t\t\tnewPasswordRepeat: \"\",\n\t\t\tnewPassword: \"\",\n\t\t\tuserEmail: \"\",\n\t\t\tforgotPassword: false,\n\t\t\tlogInFail: false,\n\t\t\texpired: false,\n\t\t\tbrowser: detect(),\n\t\t};\n\t}\n\n\tlogin = () => {\n\t\tconst onError = (error) => {\n\t\t\tthis.setState({\n\t\t\t\tloginFail: true,\n\t\t\t\tloading: false,\n\t\t\t\tshowReset: error.optionShowResetPassword || false,\n\t\t\t})\n\t\t}\n\t\tthis.setState({ loading: true, expired: false }, () => {\n\t\t\tthis.props.fetchLogin(this.state.userName, this.state.password).then(\n\t\t\t\t() => {\n\t\t\t\t\tif (this.props.logIn.resetPassword) {\n\t\t\t\t\t\tthis.props.history.push(\"/reset\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst hasCompliancePermission = this.props.logIn.menu.map(item => item.code).includes('COMPLIANCE')\n\n\t\t\t\t\t\tconst callback = () => {\n\t\t\t\t\t\t\t\tLoginAction.dispatch({ isDesktop: true })\n\t\t\t\t\t\t\t\tsessionStorage.setItem(\"login\", JSON.stringify(this.props.logIn));\n\t\t\t\t\t\t\tthis.props.hideSuccessAlert().then(() => {\n\t\t\t\t\t\t\t\t\tthis.props.history.push(\"/dashboard\");\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!hasCompliancePermission) {\n\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tAuthenticationClient.SignIn(this.state.userName, this.state.password).then(\n\t\t\t\t\t\t\t({ accessToken, refreshToken, expiresIn }) => {\n\t\t\t\t\t\t\t\tsessionStorage.setItem(\"accessToken\", accessToken)\n\t\t\t\t\t\t\t\tsessionStorage.setItem(\"refreshToken\", refreshToken);\n\t\t\t\t\t\t\t\tsessionStorage.setItem(\"tokenExpires\", epochInSeconds() + expiresIn);\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonError\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonError\n\t\t\t);\n\t\t});\n\t};\n\n\thandleChange = (event, { name, value }) => {\n\t\tif (this.state.hasOwnProperty(name)) {\n\t\t\tthis.setState({ [name]: value });\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tconst query = new URLSearchParams(this.props.location.search);\n\t\tconst expired = query.get(\"expired\");\n\t\tthis.setState({ expired: expired !== null });\n\t}\n\n\trender() {\n\t\tif (this.state.browser.name === \"ie\") {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\"Rimini\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tBrowser Not Supported\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tUnfortunately, Internet Explorer is not compatible with Rimini\n\t\t\t\t\t\t\t\tPortal.\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tPlease try another browser such as Chrome, Firefox{\" \"}\n\t\t\t\t\t\t\t\tor Edge.\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{axios.defaults.baseURL ===\n\t\t\t\t\t\t\t\"https://gneval-api.guardian-cms.com/api\" && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{this.state.loginFail && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tLogin Failed\n\t\t\t\t\t\t\t\t\t

Please check your username and password.

\n\n\t\t\t\t\t\t\t\t\t{this.state.showReset && (\n\t\t\t\t\t\t\t\t\t\t this.props.history.push(\"/forgotten\")}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tReset Password\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this.state.expired && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tSession Expired Your login\n\t\t\t\t\t\t\t\t\tsession has expired, please login again.\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tLog In\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n}\n\nconst mapStateToProps = (state, ownProps) => {\n\treturn {\n\t\tlogIn: state.logIn,\n\t};\n};\n\nexport default connect(mapStateToProps, {\n\tfetchLogin,\n\thideSuccessAlert,\n})(Login);\n","import { fetchCollectionsFilters, fetchInstallationsFilters, fetchLiveFloorViewerFilters, fetchLogin, fetchSessionsFilters, fetchTransactionsFilters, setLogout, setPassword } from '@actions';\nimport React from 'react';\nimport PasswordStrengthBar from 'react-password-strength-bar';\nimport { connect } from 'react-redux';\nimport { Button, Form, Grid, Header, Input, Message } from 'semantic-ui-react';\n\nclass Panes extends React.Component {\n constructor(props) {\n super(props);\n // Don't call this.setState() here!\n this.state = {\n error: null,\n newPasswordRepeat: '',\n newPassword: '',\n loading: false,\n score: 0\n };\n }\n\n handleChange = (event, { name, value }) => {\n if (this.state.hasOwnProperty(name)) {\n this.setState({ [name]: value });\n }\n }\n\n setPassword = () => {\n const { email, hash } = this.props.logIn;\n const { newPassword, newPasswordRepeat } = this.state;\n\n this.setState({ loading: true }, () => {\n this.props.setPassword(email, hash, newPassword, newPasswordRepeat).then(\n () => {\n this.props.fetchLogin(email, newPassword).then((result) => {\n this.setState({ loading: false }, () => {\n sessionStorage.setItem('login', JSON.stringify(this.props.logIn));\n this.props.history.push('/dashboard');\n })\n })\n },\n error => this.setState({ loading: false, error: error.response.data })\n );\n });\n\n }\n\n handleScoreChange = (score) => this.setState({ score });\n\n handleReturnToLogin = () => this.props.setLogout().then(() => this.props.history.push(\"/\"));\n\n canSubmit = () => {\n const { newPassword, newPasswordRepeat, score } = this.state;\n\n if (newPassword.length < 1) return false;\n if (newPasswordRepeat.length < 1) return false;\n if (score < 2) return false;\n\n return true;\n }\n\n render() {\n return (\n \n \n \n \"Rimini\n
Set New Password
\n
\n
\n \n \n
\n {this.state.error && {this.state.error}}\n\n \n \n \n \n\n \n \n \n\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n logIn: state.logIn,\n logOut: state.logOut,\n logInSet: state.logInSet,\n sessionsFilters: state.sessionsFilters,\n collectionsFilters: state.collectionsFilters,\n installationsFilters: state.installationsFilters,\n transactionsFilters: state.transactionsFilters,\n LiveFloorViewerFilters: state.LiveFloorViewerFilters,\n };\n};\n\nexport default connect(mapStateToProps, {\n fetchLogin,\n setPassword,\n setLogout,\n fetchSessionsFilters,\n fetchCollectionsFilters,\n fetchInstallationsFilters,\n fetchTransactionsFilters,\n fetchLiveFloorViewerFilters,\n})(Panes);\n","import React from 'react'\nimport { Grid, Header } from 'semantic-ui-react'\n\nconst Incompatible = () => {\n return (\n \n \n \n \"Rimini\n
\n Browser Not Supported\n
\n

\n Unfortunately, Internet Explorer is not compatible with Rimini\n Portal.\n

\n

\n Please try another browser such as Chrome, Firefox{\" \"}\n or Edge.\n

\n
\n
\n
\n );\n}\n\nexport default Incompatible;\n","import Panes from '@views/Panes';\nimport React, { useEffect, useState } from 'react';\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\nimport { Loader } from 'semantic-ui-react';\nimport Forgotten from './auth/Forgotten';\nimport Login from './auth/Login';\nimport Reset from './auth/Reset';\nimport Incompatible from '@views/Incompatible';\nimport { detect } from \"detect-browser\";\n\nconst App = () => {\n const [loading, setIsLoading] = useState(true);\n\n useEffect(() => {\n fetch('/config.json')\n .then(response => response.json())\n .then(response => {\n\n sessionStorage.setItem('base_url', response.base_url);\n sessionStorage.setItem('auth_api_url', response.auth_api_url);\n sessionStorage.setItem('comp_api_url', response.comp_api_url);\n setTimeout(() => setIsLoading(false), 500)\n })\n }, [loading])\n\n const browser = detect()\n if (browser.name === \"ie\") {\n return \n }\n\n if (loading) {\n return \n }\n\n return (\n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import { store } from \"@/redux/store\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport App from \"./components/App\";\nimport \"./index.css\";\n\nReactDOM.render(\n \n \n ,\n document.querySelector(\"#root\"),\n);\n"],"sourceRoot":""}