{"version":3,"sources":["common/endpoints.ts","components/Spacer.tsx","store/billPayersSummary/actions.ts","store/invoiceSummary/actions.ts","store/invoiceDetail/actions.ts","store/notistack/actions.ts","components/SubmiticaTooltip.tsx","components/Loader.tsx","common/addNotification.tsx","common/EnumUtils.ts","store/error/types.ts","store/trafficManagement/types.ts","store/administration/actions.ts","common/enums.ts","store/applicationDetail/actions.ts","components/ProtectedRoute.tsx","containers/OutagePage/index.tsx","routes.tsx","ProviderWrapper.tsx","assets/img/apple_share_icon.png","components/AddToHomescreen.tsx","App.tsx","serviceWorker.ts","index.tsx","store/applicationsSummary/types.ts","store/createApplication/actions.ts","store/preferences/types.ts","store/administration/types.ts","store/map/types.ts","store/auth/types.ts","common/wktToFeatures.ts","store/trafficManagement/actions.ts","store/billPayerDetail/types.ts","common/featuresToWkt.ts","store/media/types.ts","store/lookup/types.ts","common/dateHelper.ts","store/applicationDetail/types.ts","store/billPayersSummary/types.ts","store/invoiceSummary/types.ts","styles/themes/types.ts","store/invoiceDetail/types.ts","store/notistack/types.ts","store/applicationsSummary/actions.ts","store/auth/actions.ts","store/map/actions.ts","store/createApplication/types.ts","components/react-azure-b2c.js","store/preferences/actions.ts","store/billPayerDetail/actions.ts","styles/colours.ts","store/lookup/actions.ts","common/constants.ts","store/auth/reducer.ts","store/preferences/reducer.ts","store/applicationsSummary/reducer.ts","store/applicationDetail/reducer.ts","store/createApplication/reducers.ts","store/administration/reducer.ts","store/loading/reducer.ts","store/lookup/reducer.ts","store/trafficManagement/reducer.ts","store/error/reducer.ts","store/notistack/reducers.ts","store/map/reducer.ts","store/billPayerDetail/reducer.ts","store/billPayersSummary/reducer.ts","store/invoiceSummary/reducer.ts","store/invoiceDetail/reducer.ts","store/media/reducer.ts","store/rootReducer.ts","store/applicationDetail/sagas.ts","common/controllerConstants.ts","store/applicationsSummary/sagas.ts","store/lookup/sagas.ts","store/trafficManagement/sagas.ts","store/administration/sagas.ts","store/createApplication/sagas.ts","store/map/sagas.ts","store/billPayerDetail/sagas.ts","store/billPayersSummary/sagas.ts","store/invoiceSummary/sagas.ts","store/invoiceDetail/sagas.ts","store/media/sagas.ts","store/auth/sagas.ts","store/preferences/sagas.ts","store/rootSagas.ts","store/index.ts","assets/img/submitica-s.png","store/media/actions.ts"],"names":["ADMINISTRATION_ENDPOINT","APPLICATION_ENDPOINT","BILLING_ENDPOINT","MEDIA_ENDPOINT","TTM_ENDPOINT","Spacer","style","margin","loadBillPayersSummaryRequest","payload","type","LOAD_BILLPAYERS_SUMMARY_REQUEST","billPayersSummaryOptions","loadBillPayersSummaryRequestExtra","LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA","loadBillPayersSummarySuccess","LOAD_BILLPAYERS_SUMMARY_SUCCESS","receivedData","totalCount","loadBillPayersSummaryFailure","errorMessage","LOAD_BILLPAYERS_SUMMARY_FAILURE","resetBillPayersSummary","RESET_BILLPAYERS_SUMMARY","loadInvoicesSummaryRequest","LOAD_INVOICES_SUMMARY_REQUEST","invoicesSummaryOptions","loadInvoicesSummaryRequestExtra","LOAD_INVOICES_SUMMARY_REQUEST_EXTRA","loadInvoicesSummarySuccess","LOAD_INVOICES_SUMMARY_SUCCESS","loadInvoicesSummaryFailure","LOAD_INVOICES_SUMMARY_FAILURE","resetInvoicesSummary","RESET_INVOICES_SUMMARY","resetInvoiceDetail","RESET_INVOICE_DETAIL","loadInvoiceDetailRequest","options","LOAD_INVOICE_DETAIL_REQUEST","invoiceDetailOptions","loadInvoiceDetailSuccess","LOAD_INVOICE_DETAIL_SUCCESS","invoiceHeaderData","receivedBillingItems","loadInvoiceDetailFailure","LOAD_INVOICE_DETAIL_FAILURE","enqueueSnackbar","notification","ENQUEUE_SNACKBAR","removeSnackbar","key","REMOVE_SNACKBAR","deleteSnackbar","DELETE_SNACKBAR","removeAllSnackbar","REMOVE_ALL_SNACKBAR","useStyles","makeStyles","theme","createStyles","tooltipRoot","fontSize","props","textTransform","isCapitalised","SubmiticaTooltip","classes","placement","title","tooltip","children","Logo","styled","img","buttonProgress","color","SubmiticaGreen","position","Loader","isScreenSmall","useMediaQuery","useTheme","breakpoints","down","display","justifyContent","minHeight","isPartial","height","width","alignItems","className","size","thickness","marginTop","marginLeft","src","SubmiticaLogo","addNotification","message","enqueueNotification","variant","createNotification","dismissed","autoHideDuration","GetValueFromEnum","enumObject","searchStr","filtered","Object","entries","filter","t","length","GetApplicationTypeString","applicationType","ApplicationType","Excavation","NonExcavation","Preliminary","Event","Retrospective","RESET_ERROR_MESSAGE","LOAD_TTM_SITES_REQUEST","LOAD_TTM_SITES_SUCCESS","LOAD_TTM_SITES_FAILURE","SET_TTM_SITE_STORE_DATA","SET_TTM_DETOUR_STORE_DATA","SET_TTM_CLOSURE_STORE_DATA","DELETE_TTM_SITE_STORE","DELETE_TTM_DETOUR_STORE","DELETE_TTM_CLOSURE_STORE","SET_TTM_SITE_DB_REQUEST","SET_TTM_SITE_DB_SUCCESS","SET_TTM_SITE_DB_FAILURE","SET_TTM_DETOUR_DB_REQUEST","SET_TTM_DETOUR_DB_SUCCESS","SET_TTM_DETOUR_DB_FAILURE","SET_TTM_CLOSURE_DB_REQUEST","SET_TTM_CLOSURE_DB_SUCCESS","SET_TTM_CLOSURE_DB_FAILURE","DELETE_TTM_SITE_DB_REQUEST","DELETE_TTM_SITE_DB_SUCCESS","DELETE_TTM_SITE_DB_FAILURE","DELETE_TTM_DETOUR_DB_REQUEST","DELETE_TTM_DETOUR_DB_SUCCESS","DELETE_TTM_DETOUR_DB_FAILURE","DELETE_TTM_CLOSURE_DB_REQUEST","DELETE_TTM_CLOSURE_DB_SUCCESS","DELETE_TTM_CLOSURE_DB_FAILURE","DUPLICATE_TTM","RESET_TTM","RESET_ADDED_SITE_ID","setNewOrganisationRequest","newOrganisation","parentId","SET_NEW_ORGANISATION_REQUEST","setNewOrganisationSuccess","newOrg","SET_NEW_ORGANISATION_SUCCESS","setNewOrganisationFailure","SET_NEW_ORGANISATION_FAILURE","resetCreateApplicationNewUserData","RESET_CREATE_APPLICATION_NEW_USER_DATA","setUserDetailRequest","newUserFormModel","isEditingUserAccount","SET_USER_DETAIL_REQUEST","setUserDetailFailure","SET_USER_DETAIL_FAILURE","setUserDetailSuccess","newUser","userDetail","SET_USER_DETAIL_SUCCESS","setGstNumberRequest","gstNumber","SET_GST_NUMBER_REQUEST","setGstNumberFailure","SET_GST_NUMBER_FAILURE","setGstNumberSuccess","SET_GST_NUMBER_SUCCESS","loadAccountManagementRequest","userId","LOAD_USER_LINKS_REQUEST","loadAccountManagementFailure","LOAD_USER_LINKS_FAILURE","loadAccountManagementSuccess","LOAD_USER_LINKS_SUCCESS","resetAccountManagement","RESET_ACCOUNT_MANAGEMENT","setUserLinkRequest","user","actionType","userLinkType","SET_USER_LINK_REQUEST","setUserLinkFailure","SET_USER_LINK_FAILURE","setUserLinkSuccess","userLink","SET_USER_LINK_SUCCESS","deleteUserLinkRequest","userLinkId","DELETE_USER_LINK_REQUEST","deleteUserLinkSuccess","DELETE_USER_LINK_SUCCESS","deleteUserLinkFailure","DELETE_USER_LINK_FAILURE","loadUserDetailRequest","LOAD_USER_DETAIL_REQUEST","loadUserDetailFailure","LOAD_USER_DETAIL_FAILURE","loadUserDetailSuccess","LOAD_USER_DETAIL_SUCCESS","loadDuplicateAccountRequest","LOAD_DUPLICATE_ACCOUNT_REQUEST","loadDuplicateAccountFailure","LOAD_DUPLICATE_ACCOUNT_FAILURE","loadDuplicateAccountSuccess","duplicateAccounts","LOAD_DUPLICATE_ACCOUNT_SUCCESS","setLinkDuplicatesRequest","selectedIds","emailToLink","SET_LINK_DUPLICATES_REQUEST","setLinkDuplicatesFailure","SET_LINK_DUPLICATES_FAILURE","setLinkDuplicatesSuccess","SET_LINK_DUPLICATES_SUCCESS","resetSuccessNotification","RESET_SUCCESS_NOTIFICATION","loadNewOrganisationsRequest","endpoint","route","args","LOAD_NEW_ORGANISATIONS_REQUEST","loadNewOrganisationSuccess","data","LOAD_NEW_ORGANISATIONS_SUCCESS","loadNewOrganisationsFailure","LOAD_NEW_ORGANISATIONS_FAILURE","resetNewOrganisationsData","RESET_NEW_ORGANISATIONS","setNotificationSettingsRequest","notificationSettings","SET_NOTIFICATION_SETTINGS_REQUEST","setNotificationSettingsSuccess","SET_NOTIFICATION_SETTINGS_SUCCESS","setNotificationSettingsFailure","SET_NOTIFICATION_SETTINGS_FAILURE","setUserRegionsRequest","userRegions","SET_USER_REGIONS_REQUEST","setUserRegionsSuccess","SET_USER_REGIONS_SUCCESS","setUserRegionsFailure","SET_USER_REGIONS_FAILURE","loadPermissionToViewUserRequest","LOAD_PERMISSION_TO_VIEW_USER_REQUEST","loadPermissionToViewUserSuccess","hasPermission","LOAD_PERMISSION_TO_VIEW_USER_SUCCESS","loadPermissionToViewUserFailure","LOAD_PERMISSION_TO_VIEW_USER_FAILURE","loadUserNotificationsRequest","pageIndex","LOAD_USER_NOTIFICATIONS_REQUEST","loadUserNotificationsSuccess","userNotificationPagination","LOAD_USER_NOTIFICATIONS_SUCCESS","loadUserNotificationsFailure","LOAD_USER_NOTIFICATIONS_FAILURE","resetUserNotifications","RESET_USER_NOTIFICATIONS","loadUserNotificationsCountRequest","LOAD_USER_NOTIFICATIONS_COUNT_REQUEST","loadUserNotificationsCountSuccess","notificationCount","LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS","loadUserNotificationsCountFailure","LOAD_USER_NOTIFICATIONS_COUNT_FAILURE","setUserNotificationInactiveRequest","request","SET_USER_NOTIFICATIONS_INACTIVE_REQUEST","setUserNotificationInactiveFailure","SET_USER_NOTIFICATIONS_INACTIVE_FAILURE","setUserNotificationInactiveSuccess","SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS","setUserNotificationConfirmDeclineRequest","notificationId","notificationActionType","SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST","setUserNotificationConfirmDeclineSuccess","SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS","setUserNotificationConfirmDeclineFailure","SET_USER_NOTIFICATION_CONFIRM_DECLINE_FAILURE","loadScaleOfWorkQuestionnaireRequest","rcaId","LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST","loadScaleOfWorkQuestionnaireSuccess","questions","LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS","loadScaleOfWorkQuestionnaireFailure","LOAD_SCALE_OF_WORK_QUESTIONNAIRE_FAILURE","loadScaleOfWorkQuestionnaireReset","LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET","loadUserRegionsRequest","LOAD_USER_REGIONS_REQUEST","loadUserRegionsSuccess","LOAD_USER_REGIONS_SUCCESS","loadParticipantOrganisationRequest","LOAD_PARTICIPANT_ORGANISATION_REQUEST","loadParticipantOrganisationSuccess","organisation","LOAD_PARTICIPANT_ORGANISATION_SUCCESS","loadParticipantOrganisationFailure","LOAD_PARTICIPANT_ORGANISATION_FAILURE","resetAutofillOrganisation","RESET_AUTOFILL_ORGANISATION","confirmUserLinkRequest","code","CONFIRM_USER_LINK_REQUEST","userLinkSuccess","userLinkAction","USER_LINK_SUCCESS","confirmUserLinkFailure","CONFIRM_USER_LINK_FAILURE","declineUserLinkRequest","DECLINE_USER_LINK_REQUEST","declineUserLinkFailure","resetUserLinkProcessed","RESET_USER_LINK_PROCESSED","ApplicantRoleEnum","ParticipantRoleEnum","ParticipantCategoryEnum","ContainerNamesEnum","SectionNamesEnum","CreateApplicationStep","AttachmentTypeEnum","WorkType","CarDetailLabel","DispatchLabel","UserLinkType","CalloutType","UserNotificationTypes","UserNotificationActionTypes","ApplicationStatus","ApplicationStep","WorkDateStatus","ParticipantActionType","RcaCustomisationTypes","SubmiticaPermission","BottomNavigationType","WhoPanelSections","EmailNotificationTypes","LinkActionResponse","MaxInputLenghts","GuidesGridAction","loadSingleApplicationRequest","carId","guid","LOAD_SINGLE_APPLICATION_REQUEST","loadSingleApplicationSuccess","LOAD_SINGLE_APPLICATION_SUCCESS","applicationDetailData","loadSingleApplicationFailure","LOAD_SINGLE_APPLICATION_FAILURE","resetSingleApplication","RESET_SINGLE_APPLICATION","uploadFileRequest","applicationId","carStepId","attachments","permissionValue","childApplicationIds","reference","UPLOAD_DETAIL_FILE_REQUEST","uploadFileSuccess","UPLOAD_DETAIL_FILE_SUCCESS","uploadFileFailure","UPLOAD_DETAIL_FILE_FAILURE","setApplicationNotesRequest","notes","SET_APPLICATION_NOTES_REQUEST","setApplicationNotesSuccess","SET_APPLICATION_NOTES_SUCCESS","setApplicationNotesFailure","SET_APPLICATION_NOTES_FAILURE","setWorkInformationRequest","workInfo","SET_WORK_INFORMATION_REQUEST","setWorkInformationSuccess","SET_WORK_INFORMATION_SUCCESS","setWorkInformationFailure","SET_WORK_INFORMATION_FAILURE","setApplicationFeedbackRequest","rating","SET_APPLICATION_FEEDBACK_REQUEST","setApplicationFeedbackSuccess","feedback","SET_APPLICATION_FEEDBACK_SUCCESS","setApplicationFeedbackFailure","SET_APPLICATION_FEEDBACK_FAILURE","loadExistingApplicationFeedbackRequest","LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST","loadExistingApplicationFeedbackSuccess","LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS","downloadCalloutReportRequest","calloutId","calloutType","DOWNLOAD_CALLOUT_REPORT_REQUEST","downloadInspectionReportSuccess","inspection","DOWNLOAD_INSPECTION_REPORT_SUCCESS","downloadDefectReportSuccess","defect","DOWNLOAD_DEFECT_REPORT_SUCCESS","downloadCalloutReportFailure","DOWNLOAD_CALLOUT_REPORT_FAILURE","setParticipantRequest","participant","SET_PARTICIPANT_REQUEST","setParticipantSuccess","SET_PARTICIPANT_SUCCESS","setParticipantFailure","SET_PARTICIPANT_FAILURE","setNotifyWorkStatusRequest","newDate","isStart","offset","SET_NOTIFY_WORK_STATUS_REQUEST","setNotifyWorkStartSuccess","updatedInfo","SET_NOTIFY_WORK_START_SUCCESS","setNotifyWorkCompletionSuccess","SET_NOTIFY_WORK_COMPLETION_SUCCESS","setNotifyWorkStatusFailure","SET_NOTIFY_WORK_STATUS_FAILURE","replaceParticipantRequest","REPLACE_PARTICIPANT_REQUEST","replaceParticipantSuccess","participantResponse","REPLACE_PARTICIPANT_SUCCESS","replaceParticipantFailure","REPLACE_PARTICIPANT_FAILURE","loadAuditLogsRequest","sourceField","LOAD_AUDIT_LOGS_REQUEST","loadAuditLogsSuccess","auditLog","LOAD_AUDIT_LOGS_SUCCESS","loadAuditLogsFailure","LOAD_AUDIT_LOGS_FAILURE","resetAuditLogs","RESET_AUDIT_LOGS","removeParticipantRequest","participantLinkId","REMOVE_PARTICIPANT_REQUEST","removeParticipantSuccess","REMOVE_PARTICIPANT_SUCCESS","removeParticipantFailure","REMOVE_PARTICIPANT_FAILURE","setLocationRequest","locationInfo","SET_LOCATION_REQUEST","setLocationSuccess","SET_LOCATION_SUCCESS","setLocationFailure","SET_LOCATION_FAILURE","deleteAttachmentRequest","attachmentReference","DELETE_ATTACHMENT_REQUEST","deleteAttachmentSuccess","DELETE_ATTACHMENT_SUCCESS","deleteAttachmentFailure","DELETE_ATTACHMENT_FAILURE","cancelApplicationRequest","CANCEL_APPLICATION_REQUEST","cancelApplicationSuccess","CANCEL_APPLICATION_SUCCESS","cancelApplicationFailure","CANCEL_APPLICATION_FAILURE","setMaintenanceCompletionRequest","model","SET_MAINTENANCE_COMPLETION_REQUEST","setMaintenanceCompletionSuccess","SET_MAINTENANCE_COMPLETION_SUCCESS","declineApplicationParticipantRequest","DECLINE_APPLICATION_PARTICIPANT_REQUEST","declineApplicationParticipantSuccess","participantDeclined","DECLINE_APPLICATION_PARTICIPANT_SUCCESS","declineApplicationParticipantFailure","DECLINE_APPLICATION_PARTICIPANT_FAILURE","connect","state","isAuthenticated","auth","isLoggedIn","Comp","component","rest","render","to","outageContainer","backgroundColor","outageDiv","padding","SubmiticaOutage","Grid","container","item","xs","md","Typography","clear","outageMessage","Application","React","lazy","ApplicationLoader","fallback","dispatch","allowBypass","window","location","pathname","toLowerCase","indexOf","outageModel","isSubmiticaOffline","history","authentication","required","ProviderWrapper","store","CssBaseline","showModalBasedOnDate","localStorage","getItem","prevVisit","setItem","moment","toISOString","isAfter","AddToHomescreen","useState","userAgent","navigator","test","isIos","matchMedia","matches","isOpen","setIsOpen","handleClose","Dialog","open","onClose","DialogTitle","top","right","IconButton","onClick","DialogContent","verticalAlign","AppleShareIcon","App","isLocalhost","Boolean","hostname","match","registerValidSW","swUrl","config","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","onUpdate","onSuccess","catch","error","URL","process","href","origin","addEventListener","fetch","response","contentType","headers","get","status","ready","unregister","reload","checkValidServiceWorker","axios","API_ROUTE","x","adB2CInformation","isSubmiticaDown","b2cauth","initialize","instance","tenant","domain","signInPolicy","signUpSignInPolicyId","resetPolicy","resetPasswordPolicyId","clientId","cacheLocation","scopes","postLogoutRedirectUri","redirectUri","tenantName","ReactDOM","document","getElementById","LOAD_APPLICATIONS_SUMMARY_REQUEST","LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA","LOAD_APPLICATIONS_SUMMARY_SUCCESS","LOAD_APPLICATIONS_SUMMARY_FAILURE","LOAD_MAP_APPLICATIONS_SUMMARY_REQUEST","LOAD_MAP_APPLICATIONS_SUMMARY_SUCCESS","LOAD_RCA_LOGOS_REQUEST","LOAD_RCA_LOGOS_SUCCESS","LOAD_RCA_BOUNDARIES_REQUEST","LOAD_RCA_BOUNDARIES_SUCCESS","RESET_APPLICATIONS_SUMMARY","LOAD_APPLICATION_EXPORT_COLUMNS_REQUEST","LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS","LOAD_APPLICATION_EXPORT_COLUMNS_FAILURE","GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST","GENERATE_APPLICATION_GRID_LIST_EXPORT_SUCCESS","GENERATE_APPLICATION_GRID_LIST_EXPORT_FAILURE","submitApplicationRequest","newApplication","ttmSites","SUBMIT_APPLICATION_REQUEST","submitApplicationSuccess","applicationList","hasRequestFailure","SUBMIT_APPLICATION_SUCCESS","submitApplicationFailure","SUBMIT_APPLICATION_FAILURE","uploadTemporaryFileRequest","UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST","uploadTemporaryFileSuccess","fileIdentifiers","UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS","uploadTemporaryFileFailure","UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE","deleteTemporaryFileRequest","attachmentDetails","DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST","deleteTemporaryFileSuccess","fileIdentifier","DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS","deleteTemporaryFileFailure","DELETE_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE","resetCreateApplication","RESET_CREATE_APPLICATION","setCreateApplicationMaxStep","SET_CREATE_APPLICATION_NEXT_STEP","setCreateApplicationSetupData","setupData","SET_CREATE_APPLICATION_SETUP_DATA","setCreateApplicationWhatData","whatData","SET_CREATE_APPLICATION_WHAT_DATA","setCreateApplicationWhereData","whereData","SET_CREATE_APPLICATION_WHERE_DATA","setCreateApplicationTrafficData","trafficData","SET_CREATE_APPLICATION_TRAFFIC_DATA","setCreateApplicationWhenData","whenData","SET_CREATE_APPLICATION_WHEN_DATA","setCreateApplicationWhoData","whoData","SET_CREATE_APPLICATION_WHO_DATA","setCreateApplicationExtraData","extraData","SET_CREATE_APPLICATION_EXTRA_DATA","resetApplicationDependentData","RESET_APPLICATION_TYPE_DEPENDENT_DATA","loadApplicationSettingsDataRequest","rcaIds","LOAD_APPLICATION_SETTINGS_DATA_REQUEST","loadApplicationSettingsDataFailure","LOAD_APPLICATION_SETTINGS_DATA_FAILURE","loadApplicationSettingsDataSuccess","applicationSettings","LOAD_APPLICATION_SETTINGS_DATA_SUCCESS","loadSiblingApplicationSettingsRequest","LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST","loadSiblingApplicationSettingsFailure","LOAD_SIBLING_APPLICATION_SETTINGS_DATA_FAILURE","loadSiblingApplicationSettingsDataSuccess","siblingApplicationSettings","LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS","loadSiblingApplicationSettingsDataReset","LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET","loadBillingItemPreviewRequest","billingPreviewRequestModel","LOAD_BILLING_ITEMS_PREVIEW_REQUEST","billingPreviewRequest","loadBillingItemPreviewSuccess","LOAD_BILLING_ITEMS_PREVIEW_SUCCESS","loadBillingItemPreviewFailure","LOAD_BILLING_ITEMS_PREVIEW_FAILURE","loadRcaIdsFromShapesRequest","shapes","LOAD_RCA_IDS_FROM_SHAPES_REQUEST","loadRcaIdsFromShapesSuccess","rcaOptions","LOAD_RCA_IDS_FROM_SHAPES_SUCCESS","loadRcaIdsFromShapesFailure","LOAD_RCA_IDS_FROM_SHAPES_FAILURE","resetForceRcaSelection","RESET_STORE_FORCE_RCA_SELECTION","loadRcaOptionFromIdRequest","LOAD_RCA_OPTION_FROM_ID_REQUEST","loadRcaOptionsFromIdSuccess","rcaOption","LOAD_RCA_OPTION_FROM_ID_SUCCESS","loadRcaOptionsFromIdFailure","LOAD_RCA_OPTION_FROM_ID_FAILURE","loadPrimaryApplicantInfoRequest","LOAD_PRIMARY_APPLICANT_INFO_REQUEST","loadPrimaryApplicantInfoSuccess","billPayer","LOAD_PRIMARY_APPLICANT_INFO_SUCCESS","loadPrimaryApplicantInfoFailure","LOAD_PRIMARY_APPLICANT_INFO_FAILURE","duplicateApplication","applicationData","DUPLICATE_APPLICATION","resetDuplicatingStatusAction","RESET_DUPLICATING_STATUS","setTemporarySavedApplicationRequest","SET_TEMPORARY_SAVED_APPLICATION_REQUEST","checkRegisteredOrganisationRequest","organisationId","CHECK_REGISTERED_ORGANISATION_REQUEST","checkRegisteredOrganisationSuccess","organisationRegisters","CHECK_REGISTERED_ORGANISATION_SUCCESS","checkRegisteredOrganisationFailure","CHECK_REGISTERED_ORGANISATION_FAILURE","loadSavedApplicationsRequest","LOAD_SAVED_APPLICATION_LIST_REQUEST","loadSavedApplicationsSuccess","savedApplications","LOAD_SAVED_APPLICATION_LIST_SUCCESS","loadSavedApplicationsFailure","LOAD_SAVED_APPLICATION_LIST_FAILURE","deleteSavedApplicationRequest","id","DELETE_SAVED_APPLICATION_REQUEST","deleteSavedApplicationSuccess","DELETE_SAVED_APPLICATION_SUCCESS","loadSavedApplicationRequest","LOAD_SAVED_APPLICATION_REQUEST","loadSavedApplicationSuccess","LOAD_SAVED_APPLICATION_SUCCESS","loadSavedApplicationFailure","LOAD_SAVED_APPLICATION_FAILURE","resetHasRequestFailure","RESET_HAS_REQUEST_FAILURE","getDefaultBillPayerRequest","GET_DEFAULT_BILLPAYER_REQUEST","getDefaultBillPayerSuccess","GET_DEFAULT_BILLPAYER_SUCCESS","SETDARKTHEME","SETLIGHTTHEME","SETPREFERENCES","LOADPREFERENCES","MAP_VIEW","TABLE_VIEW","DETAILED_VIEW","TILE_VIEW","CHANGE_VIEW_MODE","SET_COLUMN_SORTING","GET_FILTER_PREFERENCE_REQUEST","GET_FILTER_PREFERENCE_SUCCESS","GET_FILTER_PREFERENCE_FAILURE","SET_FILTER_PREFERENCE_REQUEST","SET_FILTER_PREFERENCE_SUCCESS","SET_FILTER_PREFERENCE_FAILURE","GRANT_USER_ACCESS","REQUEST_SUPERVISOR_ACCESS","REQUEST_ACCESS_TO_APPLICATION","LOAD_NEW_ORGANISATIONS_LOOKUP","LOAD_USER_REGIONS_FAILURE","DECLINE_USER_LINK_FAILURE","LOAD_SHAPES_REQUEST","LOAD_SHAPES_SUCCESS","LOAD_SHAPES_FAILURE","RESET_SHAPES","LOAD_APPLICATION_CLASH_REQUEST","LOAD_APPLICATION_CLASH_SUCCESS","LOAD_APPLICATION_CLASH_FAILURE","LOAD_DISPATCHES_REQUEST","LOAD_DISPATCHES_SUCCESS","LOAD_DISPATCHES_FAILURE","RESET_DISPATCHES_SHAPES","SET_MAP_INPUT_REQUEST","LOGIN_USER_REQUEST","LOGIN_USER_SUCCESS","LOAD_DEFAULT_REGION_REQUEST","LOAD_DEFAULT_REGION_SUCCESS","LOAD_DEFAULT_REGION_FAILURE","LOAD_SEARCHABLE_REGION_REQUEST","LOAD_SEARCHABLE_REGION_SUCCESS","LOAD_SEARCHABLE_REGION_FAILURE","LOAD_CAN_VIEW_INVOICE_REQUEST","LOAD_CAN_VIEW_INVOICE_SUCCESS","LOAD_CAN_VIEW_INVOICE_FAILURE","UPDATE_STORE_DEFAULT_REGION","RESET_STORE_SEARCHABLE_REGION","wktToFeatures","wicket","wktString","carDetail","features","startsWith","replace","slice","split","forEach","shape","endsWith","feature","getSingleFeatureFromWkt","push","read","geom","toJson","coordinates","coords","geometry","newFeature","flipCoordinates","Guid","create","coordinatesArray","map","y","getLatLngTuple","latLng","getDispatchFeature","geometries","toUpperCase","properties","dispatchDetail","dispatch_id","assetType","asset_type","call_status","callType","call_type","contractId","contract_id","fault","priority","loadTTMSitesRequest","loadTTMSitesSuccess","sites","loadTTMSitesFailure","setTTMSiteStoreData","newSite","isEditing","setTTMDetourStoreData","newDetour","setTTMClosureStoreData","newClosure","setTTMSiteDbRequest","setTTMSiteDbSuccess","setTTMSiteDbFailure","setTTMDetourDbRequest","setTTMDetourDbSuccess","setTTMDetourDbFailure","setTTMClosureDbRequest","setTTMClosureDbSuccess","setTTMClosureDbFailure","deleteTTMSiteStore","siteId","deleteTTMSiteDbRequest","deleteTTMSiteDbSuccess","deleteTTMSiteDbFailure","deleteTTMDetourStore","detourId","deleteTTMDetourDbRequest","deleteTTMDetourDbSuccess","deleteTTMDetourDbFailure","deleteTTMClosureStore","closureId","deleteTTMClosureDbRequest","deleteTTMClosureDbSuccess","deleteTTMClosureDbFailure","duplicateTTM","resetTTM","resetAddedSiteId","LOAD_BILL_PAYER_REQUEST","LOAD_BILL_PAYER_SUCCESS","LOAD_BILL_PAYER_FAILURE","ADD_BILL_PAYER_REQUEST","ADD_BILL_PAYER_SUCCESS","ADD_BILL_PAYER_FAILURE","CLEAR_BILL_PAYER_DETAIL","featureToWkt","str","JSON","stringify","write","featuresToWkt","shapeWkts","join","DOWNLOAD_ATTACHMENT_REQUEST","DOWNLOAD_ATTACHMENT_FAILURE","DOWNLOAD_ATTACHMENTS_REQUEST","DOWNLOAD_ATTACHMENTS_FAILURE","GET_ATTACHMENT_VALIDATION_REQUEST","GET_ATTACHMENT_VALIDATION_SUCCESS","ROAD_LEVELS_LOOKUP","SCALE_OF_WORK_LOOKUP","MAJOR_ACTIVITIES_LOOKUP","APPLICATION_STATUSES_LOOKUP","APPLICATION_STEPS_LOOKUP","APPLICATION_TYPES_LOOKUP","RCAS_LOOKUP","PARTICIPANT_CATEGORIES_LOOKUP","PARTICIPANT_ROLES_LOOKUP","PRINCIPAL_ORGANISATIONS_LOOKUP","PARTICIPANT_CERTIFICATION_TYPES_LOOKUP","ACTIVITIES_LOOKUP","ROAD_CLASS_LOOKUP","TTM_TYPES_LOOKUP","TTM_IMPACT_LOOKUP","WORK_ACTIVITY_LOOKUP","SPEED_LIMITS_LOOKUP","AFFECTED_ACCESS_LOOKUP","PRIMARY_APPLICANTS_LOOKUP","PRIMARY_APPLICANT_ROLES_LOOKUP","SEARCH_ORGANISATIONS_LOOKUP","SEARCH_USERS_LOOKUP","LOCATIONS_IN_ROAD_LOOKUP","ATTACHMENT_TYPE_LOOKUP","REGION_LOOKUP","AREA_LOOKUP","NOTIFICATION_SUMMARY_TYPE_LOOKUP","FEEDBACK_LEVELS_LOOKUP","FILTER_USERS_LOOKUP","COUNTRIES_LOOKUP","RCA_MATCH_LOOKUP","ADDRESS_SEARCH_LOOKUP","QUICK_FILTER_LOOKUP","LOAD_LOOKUP_REQUEST","LOAD_LOOKUP_SUCCESS","LOAD_LOOKUP_FAILURE","RESET_LOOKUP_DATA","ToStartOfDay","date","startOf","toDate","ToEndOfDay","endOf","GetOffsetUtc","utcOffset","GetOffset","LOAD_EXISTING_APPLICATION_FEEDBACK_FAILURE","SET_MAINTENANCE_COMPLETION_FAILURE","LIGHT","DARK","loadApplicationsSummaryRequest","applicationsSummaryOptions","loadApplicationsSummaryRequestExtra","loadApplicationsSummarySuccess","isMapView","loadApplicationsSummaryFailure","resetApplicationsSummary","loadRcaLogosRequest","loadRcaLogosSuccess","rcaLogos","loadRcaBoundariesRequest","loadRcaBoundariesSuccess","rcaBoundaries","loadApplicationExportColumnsRequest","loadApplicationExportColumnsSuccess","applicationExportColumns","generateApplicationGridListExportRequest","filters","generateApplicationGridListExportSuccess","generateApplicationGridListExportFailure","loginUserSuccess","loginSuccessData","loadDefaultRegionRequest","loadDefaultRegionSuccess","defaultRegion","loadDefaultRegionFailure","updateStoreDefaultRegion","loadSearchableRegionRequest","loadSearchableRegionSuccess","searchableRegion","loadSearchableRegionFailure","resetStoreSearchableRegion","loadCanViewInvoiceRequest","loadCanViewInvoiceSuccess","canViewInvoice","loadCanViewInvoiceFailure","loadShapesRequest","loadShapesSuccess","shapeDetails","loadShapesFailure","resetShapes","loadApplicationClashRequest","applicationClashRequest","loadApplicationClashSuccess","applicationClash","loadApplicationClashFailure","loadDispatchesRequest","loadDispatchesSuccess","dispatchDetails","loadDispatchesFailure","resetDispatchesShapes","setMapInputData","mapInputData","DELETE_SAVED_APPLICATION_FAILURE","PRINCIPAL_CONTACT_PERSON","LOCAL_STORAGE","AUTHORIZATION_KEY","stopLoopingRedirect","launchApp","accessToken","resetUrl","policy","timeOutHandle","msalConfig","authority","validateAuthority","cache","storeAuthStateInCookie","apiConfig","b2cScopes","webApi","b2cPolicies","names","signUpSignIn","forgotPassword","authorities","loginRequest","forceRefresh","authCallback","msal","loginRedirect","acquireToken","successCallback","acquireTokenSilent","result","sessionStorage","jwt","defaults","common","decoded","jwt_decode","authorization","submiticaUserId","firstName","submiticaFirstName","lastName","submiticaLastName","submiticaOrganisationId","organisationName","submiticaOrganisationName","isOrganisationManager","profileUpdateRequired","getAuthorization","clearTimeout","setTimeout","Date","exp","getTime","applyToken","interceptors","use","originalRequest","_retry","Promise","resolve","reject","removeItem","Msal","handleRedirectCallback","run","isCallback","hash","parent","WrappedComponent","renderLoading","signedIn","this","setState","Component","signOut","logout","getAccessToken","setDarkTheme","setLightTheme","changeViewMode","view","viewMode","setColumnSorting","columnSorting","getFilterPreferenceRequest","loggedInUserId","getFilterPreferenceSuccess","filterPreference","getFilterPreferenceFailure","setFilterPreferenceRequest","setFilterPreferenceSuccess","setFilterPreferenceFailure","clearBillPayerDetail","loadBillPayerRequest","loadBillPayerSuccess","loadBillPayerFailure","addBillPayerRequest","addBillPayerSuccess","addBillPayerFailure","errorMesage","EventBorderColour","EventFillColour","ExcavationBorderColour","ExcavationFillColour","NonExcavationBorderColour","NonExcavationFillColour","PreliminaryBorderColour","PreliminaryFillColour","RetrospectiveBorderColour","RetrospectiveFillColour","DispatchBorderColour","DispatchFillColour","SubmiticaDarkGreen","SubmiticaGrey","SubmiticaLightGrey","SubmiticaWhite","SubmiticaBlack","SubmiticaWhiteOffset","SubmiticaGreenOffset","SubmiticaYellow","SubmiticaOrange","LightSubmiticaLabel","LightSubmiticaRed","DarkSubmiticaWhite","DarkSubmiticaLabel","DarkSubmiticaRed","loadLookupRequest","loadLookupSuccess","loadLookupFailure","resetLookupData","APPLICANT_PRIMARY_CONTACT","PRINCIPAL_PRIMARY_CONTACT","BILL_PAYER","MESSAGE_UNSAVED_CHANGES","MESSAGE_LEAVE_APPLICATION_PROCESS","MESSAGE_DELETE_TEMPORARY_ATTACHMENT","MESSAGE_FILTER_UNAPPLIED","MESSAGE_REMOVE_FILTER","TTM_SITES_HELP_MODAL_TITLE","TTM_DETOURS_HELP_MODAL_TITLE","TTM_CLOSURES_HELP_MODAL_TITLE","REGEX_NAME_PATTERN","INVALID_FILE_TYPE_MESSAGE","FILE_LIMIT_EXCEEDED_MESSAGE","FILE_NAME","FILE_SIZE","INITIAL_ZOOM_VALUE","MAX_FILE_NUMBER_EXCEEDED_MESSAGE","MAX_FILES","authReducer","produce","draft","action","isLoading","undefined","initialState","getThemeFromStorage","applicationsViewMode","filterPreferences","searchValue","rcaSelection","statusSelection","stepSelection","typeSelection","roleSelection","peopleSelection","endDate","startDate","quickFilterSelection","preferencesReducer","preferences","keys","reduce","acc","current","currentData","description","applicationsSummaryReducer","Wkt","dateSubmitted","estimatedStartDate","estimatedCompletionDate","applicationsSummaryData","totalSummaries","wkt","newBoundaries","rcaBoundaryFeatures","rcaBoundaryShape","rcaOrganisationId","applicationDetailReducer","isApplicationCancelled","dateTmpLodged","dateReceived","dateApproved","dateWorkSignedOff","dateWarrantyStarted","dateWarrantyCompletionNotified","dateWarrantyEnded","dateClosed","dateWorkStarted","dateWorkCompleted","inspectionsAndDefects","addedOn","applicationFees","dateAdded","participants","certificateDetails","certificateExpiry","concat","applicantRole","activities","majorActivities","roadLevel","globalCar","isGlobalCar","isRoadClosureRequired","estimatedDuration","Number","hoursOfWork","utilityRefNumber","consentNumber","purchaseOrderNumber","doc","jsPDF","text","autoTable","body","content","carNumber","inspectionId","toLocaleDateString","auditor","category","remedialWorkRequired","columnStyles","cellWidth","tableWidth","month","toLocaleString","dateString","getDate","getFullYear","getHours","getMinutes","getSeconds","save","defectId","dateFound","source","explanation","dateFixed","resolutionNote","duration","carStatus","dateWorkStartedStatus","dateAuditLog","dateWorkCompletedStatus","carStep","streetName","streetNumber","suburb","townCity","postcode","postCode","addressNotes","locationsInRoad","newApplicationList","currentMaxStep","billingPreview","hasNoConflicts","hasTMPForUpload","hasServicePlans","isDuplicating","forceRcaSelection","isFullRoadClosureRequired","workType","normalWorkingHours","isPrincipal","isPrincipalAnOrganisation","billPayerOrganisation","isOnBehalfOfUtilityOperator","primaryApplicant","primaryApplicantOrganisation","principalContactPerson","principalOrganisation","utilityOperatorContact","utilityOperatorOrganisation","principalRole","additionalParticipants","utilityReferenceNumber","extraInformation","createApplicationReducer","showUtilityOperatorOption","showPrincipalFillOutForm","tmp","file","includes","identifier","isUploaded","extraAttachments","applicationSettingsData","principal","find","participantRole","PrincipalPrimaryContact","participantOrganisation","BillPayer","utilityOperator","UtilityOperatorPrimaryContact","applicant","ApplicantPrimaryContact","participantCategory","participantCategoryId","participantContact","carType","initialUserData","email","address","mobilePhone","workPhone","fax","jobPosition","isTrafficManagementCoordinator","participantCertificateType","certificationNumber","dateOfExpiry","dateOfIssue","placeOfIssue","sendDowntimeEmails","sendNotificationEmails","notificationSummaryType","organisationWhitelist","newUserData","newOrganisations","userAccount","supervisors","authorisedParents","supervisorOf","authorisedChildren","duplicateAccountData","selectedDuplicateIds","hasPermissionToViewUser","notifications","scaleOfWorkQuestionnaire","hasNext","hasPrevious","newUserReducer","lastAddedEntity","parentControl","obj","notificationItems","showConfirmButton","notificationTypeId","UserLinkRequest","ParticipantLinkRequest","showDeclineButton","ParticipantLinkResponse","ParticipantLinkReplaceResponse","ParticipantLinkDeclineResponse","canDecline","updatedGuidList","notificationIds","index","findIndex","some","userLinkActionResponse","Set","loadingReducer","exec","requestName","add","delete","Map","lookupReducer","set","ttmReducer","TTMSites","site","addedSiteId","detours","detour","closures","closure","proposedStart","proposedEnd","errorReducer","notistackReducer","getShapes","mapReducer","carShape","mapData","carShapes","hasClash","dispatches","applicationShape","details","parse","dispatchFeatures","getDispatches","billPayerDetailData","billPayerDetailReducer","billPayersSummaryReducer","billPayersSummaryData","invoicesSummaryReducer","invoiceSummaryData","totalInvoices","invoiceBillingItems","totalBillingItems","invoiceDetailData","invoiceDetailReducer","attachmentValidation","maxFileSize","whiteList","mediaReducer","enableMapSet","rootReducer","combineReducers","applicationsSummary","applicationDetail","createApplication","administration","administrationReducer","lookup","trafficManagement","loading","notistack","billPayerDetail","billPayersSummary","invoicesSummary","invoiceDetail","media","watchLoadSingleApplicationRequest","watchFileUploadRequest","setApplicationNotes","watchSetApplicationNotesRequest","setWorkInformation","watchSetWorkInformationRequest","setApplicationFeedback","watchSetApplicationFeedbackRequest","loadExistingApplicationFeedback","watchLoadExistingApplicationFeedbackRequest","downloadCalloutReport","watchDownloadCalloutReportRequest","setParticipant","watchSetParticipantRequest","replaceParticipant","watchReplaceParticipantRequest","setNotifyWorkStatus","watchSetNotifyWorkStatusRequest","loadAuditLogs","watchLoadAuditLogsRequest","removeParticipant","watchRemoveParticipantRequest","setLocation","watchSetLocationRequest","deleteAttachment","watchDeleteAttachmentRequest","cancelApplication","watchCancelApplicationRequest","setMaintenanceCompletion","watchSetMaintenanceCompletionRequest","declineApplicationParticipant","watchDeclineApplicationParticipantRequest","getSingleApplication","call","readOnlyApplicationDetailApi","put","Message","takeLatest","uploadFile","formData","uri","post","FormData","attachmentTypes","append","toString","filedetails","attachmentType","attachmentTypeId","filename","canDelete","attachmentStatus","setApplicationNotesApi","notesModel","MessageType","setWorkInformationApi","workInfoModel","setApplicationFeedbackApi","applicationFeedbackModel","loadExistingApplicationFeedbackApi","downloadInspectionReport","downloadDefectReport","Inspection","addParticipantApi","participantRequest","replaceParticipantApi","setNotifyWorkStartApi","setNotifyWorkCompletionApi","loadAuditLogsApi","removeParticipantApi","setLocationApi","locationModel","deleteAttachmentApi","cancelApplicationApi","setMaintenanceCompletionApi","declineApplicationParticipantApi","USERS_CONTROLLER","ORGANISATIONS_CONTROLLER","ATTACHMENTS_CONTROLLER","MAP_CONTROLLER","APPLICATIONS_CONTROLLER","TEMPORARY_CONTROLLER","watchLoadApplicationsSummaryRequestExtra","watchLoadApplicationsSummaryRequest","loadRcaLogos","watchLoadRcaLogosRequest","loadRcaBoundaries","watchLoadRcaBoundariesRequest","loadApplicationExportColumns","watchLoadApplicationExportColumnsRequest","generateApplicationGridListExport","watchGenerateApplicationGridListExportRequest","mapFilterModel","searchTerm","dateFrom","dateTo","carStepIds","carStatusIds","carTypeIds","applicantRoleIds","userIds","bounds","quickFilterId","skip","take","sorting","loadCount","getApplications","applicationFilter","applicationsFilter","loadRcaLogosApi","rcaOrganisationIds","rca","logo","f","rcaBoundariesApi","applicationExportColumnsApi","applicationGridListExportApi","fileName","format","download","name","url","createObjectURL","Blob","link","createElement","setAttribute","appendChild","click","remove","watchLoadLookupRequest","getLookupData","finalArgs","postLookupData","cleanupTasks","Array","takeLatestByKey","pattern","saga","fork","tasks","has","cancel","watchLoadTTMSitesRequest","setTTMSiteRequest","watchSetTTMSiteDbRequest","setTTMDetourRequest","watchSetTTMDetourDbRequest","setTTMClosureRequest","watchSetTTMClosureDbRequest","deleteTTMSite","watchDeleteTTMSiteDbRequest","deleteTTMDetour","watchDeleteTTMDetourDbRequest","deleteTTMClosure","watchDeleteTTMClosureDbRequest","getTTMSites","ttmSiteDetails","readOnlyTtmDetailsApi","setTTMSiteApiCall","fromStreetNumber","toStreetNumber","streetAddress","roadClassId","roadClass","roadLevelId","ttmTypeId","ttmType","ttmTypeExplanation","ttmImpactId","ttmImpact","ttmImpactExplanation","workActivityId","workActivity","workActivityExplanation","speedLimitId","speedLimit","affectedAccessIds","affectedAccess","affectedAreaDescription","isTrafficDelayLikely","isPublicNotificationRequired","actualStart","actualEnd","setTTMDetourApiCall","setTTMClosureApiCall","deleteTTMSiteApi","deleteTTMDetourApi","deleteTTMClosureApi","setUserDetail","watchSetUserDetailRequest","loadDuplicateAccounts","watchLoadDuplicateAccountsRequest","setLinkSelectedDuplicates","watchSetLinkSelectedDuplicatesRequest","setUserLink","watchSetUserLinkRequest","deleteUserLink","watchDeleteUserLinkRequest","loadUserLinks","watchLoadUserLinksRequest","loadPermissionToViewUser","watchLoadPermissionToViewUserRequest","loadUserDetail","watchLoadUserDetailRequest","setGstNumber","watchSetGstNumberRequest","watchLoadNewOrganisationsRequest","setNewOrganisationsRequest","watchSetNewOrganisationRequest","setNotificationSettings","watchSetNotificationSettingsRequest","setUserRegions","watchSetUserRegionsRequest","loadUserNotifications","watchLoadUserNotificationsRequest","loadUserNotificationsCount","watchLoadUserNotificationCountRequest","setUserNotificationInactive","watchSetUserNotificationInactiveRequest","setUserNotificationConfirmDecline","watchSetUserNotificationConfirmDeclineRequest","loadScaleOfWorkQuestionnaire","watchLoadScaleOfWorkQuestionnaireRequest","loadUserRegions","watchLoadUserRegionsRequest","loadParticipantOrganisation","watchLoadParticipantOrganisationRequest","confirmUserLink","watchConfirmUserLinkRequest","declineUserLink","watchDeclineUserLinkRequest","setUserDetailApi","userModel","addUser","participantCertificationTypeLink","participantCertificateTypeId","loadDuplicateAccountsApi","setLinkSelectedDuplicatesApi","UserIds","setUserLinkApi","userLinkTypeId","isBaseUser","deleteUserLinkApi","loadUserLinksApi","loadPermissionToViewUserApi","loadUserDetailApi","setGstNumberApi","getNewOrganisations","addNewOrganisation","setNotificationSettingsApi","notificationSummaryTypeId","organisationIds","setUserRegionsApi","loadUserNotificationsApi","pageSize","loadUserNotificationsCountApi","setUserNotificationInactiveApi","setUserNotificationConfirmApi","setUserNotificationDeclineApi","Confirm","Decline","actionDone","loadScaleOfWorkQuestionnaireApi","loadUserRegionsApi","loadParticipantOrganisationApi","confirmUserLinkApi","declineUserLinkApi","applicationSettingsDataRequest","watchApplicationSettingsDataRequest","childApplicationSettingsDataRequest","watchChildApplicationSettingsDataRequest","loadRcaOptionFromId","watchLoadRcaOptionsFromIdRequest","watchTemporaryFileUploadRequest","watchTemporaryFileDeleteRequest","watchSubmitApplicationRequest","watchLoadBillingItemPreviewRequest","watchLoadRcaIdsFromShapesRequest","loadPrimaryApplicantInfo","watchLoadPrimaryApplicantInfoRequest","setTemporarySavedApplication","watchSetTemporarySavedApplicationRequest","checkRegisteredOrganisation","watchCheckRegisteredOrganisationRequest","loadSavedApplications","watchLoadSavedApplicationsRequest","deleteSavedApplication","watchDeleteSavedApplicationRequest","loadSavedApplication","watchLoadSavedApplicationRequest","getDefaultBillPayer","watchGetDefaultBillPayerRequest","uploadTemporaryFile","deleteTemporaryFile","filepath","ids","submitApplication","app","UtilityOperator","OtherPartyConsultant","applicationTypeId","rcaIdList","isSubmiticaEnabled","isActive","workTypeId","majorActivityIds","principalRoleId","activityIds","noTMP","getApplicationSettings","loadBillingPreview","loadRcaIdsFromShapes","wktShapes","wktStrings","loadRcaOptionsFromIdApi","loadPrimaryApplicantInfoApi","setTemporarySavedApplicationApi","temporaryCarModel","storageId","ttmDetail","registeredOrganisationApi","loadSavedApplicationsApi","deleteSavedApplicationApi","loadSavedApplicationApi","application","value","attachment","ttm","getDefaultBillPayerApi","loadShapeRequest","watchLoadShapesRequest","loadApplicationClash","watchLoadApplicationClash","loadDispatchRequest","watchLoadDispatchRequest","applicationClashApi","loadBillPayer","addBillPayer","watchLoadBillPayerRequest","watchAddBillPayerRequest","loadBillPayerApi","addBillPayerApi","watchLoadBillPayersSummaryRequestExtra","watchLoadBillPayersSummaryRequest","getBillPayers","loadInvoices","watchLoadInvoicesSummaryRequest","watchLoadInvoicesSummaryRequestExtra","loadInvoicesApi","loadInvoice","watchLoadInvoiceDetailRequest","loadInvoiceApi","invoiceId","downloadAttachment","watchDownloadAttachmentRequest","downloadAttachments","watchDownloadAttachmentsRequest","watchGetAttachmentValidation","downloadAttachmentApi","isMasterAttachment","responseType","downloadAttachmentFailure","downloadAttachmentsApi","getMonth","applicationNumber","downloadAttachmentsFailure","attachmentValidationApi","getAttachmentValidationSuccess","loadDefaultRegion","watchLoadDefaultRegionRequest","loadSearchableRegion","watchLoadSearchableRegionRequest","loadCanViewInvoice","watchLoadCanViewInvoiceRequest","loadDefaultRegionApi","loadSearchableRegionApi","loadCanViewInvoiceApi","setFilterPreference","watchSetFilterPreferenceRequest","getFilterPreference","watchGetFilterPreferenceRequest","setFilterPreferenceApi","saveFilter","getFilterPreferenceApi","rootSaga","all","sagaMiddleware","createSagaMiddleware","middleware","createStore","composeWithDevTools","applyMiddleware","downloadAttachmentRequest","downloadAttachmentsRequest","getAttachmentValidationRequest"],"mappings":"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M,cAQAC,K,uBAAAA,E,uBAAAA,E,oBAAAA,E,sBAAAA,E,kBAAAA,E,kBAAAA,E,iCAAAA,E,oBAAAA,E,uBAAAA,E,wBAAAA,E,WAAAA,M,cAcAC,K,uBAAAA,E,qBAAAA,E,qBAAAA,E,sBAAAA,E,eAAAA,M,cASAC,O,yBAAAA,I,2BAAAA,I,4BAAAA,M,cAMAC,O,2BAAAA,I,oBAAAA,M,cAKAC,O,qCAAAA,I,mDAAAA,I,uCAAAA,I,qDAAAA,I,mEAAAA,I,mEAAAA,I,sDAAAA,M,cAUAC,K,kBAAAA,E,kBAAAA,E,YAAAA,E,mBAAAA,E,uBAAAA,M,cAQAC,O,aAAAA,I,qBAAAA,I,uBAAAA,I,mBAAAA,I,uBAAAA,I,mCAAAA,I,6BAAAA,I,yEAAAA,I,mDAAAA,I,sEAAAA,I,sDAAAA,I,gEAAAA,I,oCAAAA,I,wDAAAA,I,0DAAAA,I,oDAAAA,I,oBAAAA,I,0BAAAA,I,oCAAAA,I,wCAAAA,I,8CAAAA,I,4CAAAA,I,wCAAAA,I,sCAAAA,I,sEAAAA,I,2CAAAA,M,cA6BAC,O,6BAAAA,I,2BAAAA,I,mCAAAA,I,mCAAAA,I,0BAAAA,M,cAQAC,O,qBAAAA,I,uBAAAA,I,qBAAAA,I,mBAAAA,I,wBAAAA,M,cAQAC,K,UAAAA,E,mBAAAA,M,cAKAC,O,mDAAAA,I,yDAAAA,I,wFAAAA,M,cAMAC,O,eAAAA,I,uCAAAA,I,6BAAAA,I,yBAAAA,I,uCAAAA,I,sCAAAA,I,gDAAAA,I,sBAAAA,I,qCAAAA,I,2BAAAA,I,kBAAAA,M,cAcAC,O,+BAAAA,I,aAAAA,I,2BAAAA,I,sBAAAA,M,cAOAC,O,+CAAAA,I,uCAAAA,I,kDAAAA,M,cAMAC,O,uCAAAA,I,iDAAAA,I,mCAAAA,I,wDAAAA,I,sDAAAA,I,sCAAAA,I,yCAAAA,M,cAUAC,K,kCAAAA,E,kCAAAA,E,yCAAAA,M,cAMAC,O,6CAAAA,I,kCAAAA,I,oDAAAA,I,+CAAAA,I,mBAAAA,I,0BAAAA,I,wBAAAA,I,0BAAAA,I,8BAAAA,I,cAAAA,I,+BAAAA,I,+CAAAA,I,iCAAAA,I,0BAAAA,I,2CAAAA,I,yCAAAA,I,0CAAAA,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","file":"static/js/main.f8729516.chunk.js","sourcesContent":["export const ADMINISTRATION_ENDPOINT = \"administration\";\nexport const APPLICATION_ENDPOINT = \"applications\";\nexport const BILLING_ENDPOINT = \"billing\";\nexport const MEDIA_ENDPOINT = \"media\";\nexport const TTM_ENDPOINT = \"ttm\";\n\nexport type Endpoint =\n | typeof ADMINISTRATION_ENDPOINT\n | typeof APPLICATION_ENDPOINT\n | typeof BILLING_ENDPOINT\n | typeof MEDIA_ENDPOINT\n | typeof TTM_ENDPOINT;\n","import React from \"react\";\n\nconst Spacer = () => {\n return
;\n};\n\nexport default Spacer;\n","import {\n LOAD_BILLPAYERS_SUMMARY_REQUEST,\n LOAD_BILLPAYERS_SUMMARY_SUCCESS,\n LOAD_BILLPAYERS_SUMMARY_FAILURE,\n RESET_BILLPAYERS_SUMMARY,\n BillPayersSummaryReceivedPayload,\n LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA,\n BillPayersSummaryFilter\n} from \"./types\";\n\nexport const loadBillPayersSummaryRequest = (\n payload: BillPayersSummaryFilter\n) => ({\n type: LOAD_BILLPAYERS_SUMMARY_REQUEST,\n billPayersSummaryOptions: payload\n});\n\nexport const loadBillPayersSummaryRequestExtra = (\n payload: BillPayersSummaryFilter\n) => ({\n type: LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA,\n billPayersSummaryOptions: payload\n});\n\nexport const loadBillPayersSummarySuccess = (\n payload: BillPayersSummaryReceivedPayload\n) => ({\n type: LOAD_BILLPAYERS_SUMMARY_SUCCESS,\n receivedData: payload.receivedData,\n totalCount: payload.totalCount\n});\n\nexport const loadBillPayersSummaryFailure = (errorMessage: string) => ({\n type: LOAD_BILLPAYERS_SUMMARY_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetBillPayersSummary = () => ({\n type: RESET_BILLPAYERS_SUMMARY\n});\n","import {\n LOAD_INVOICES_SUMMARY_REQUEST,\n InvoicesSummaryOptions,\n InvoicesSummarySuccessPayload,\n LOAD_INVOICES_SUMMARY_SUCCESS,\n LOAD_INVOICES_SUMMARY_FAILURE,\n RESET_INVOICES_SUMMARY,\n LOAD_INVOICES_SUMMARY_REQUEST_EXTRA\n} from \"./types\";\n\nexport const loadInvoicesSummaryRequest = (\n payload: InvoicesSummaryOptions\n) => ({\n type: LOAD_INVOICES_SUMMARY_REQUEST,\n invoicesSummaryOptions: payload\n});\n\nexport const loadInvoicesSummaryRequestExtra = (\n payload: InvoicesSummaryOptions\n) => ({\n type: LOAD_INVOICES_SUMMARY_REQUEST_EXTRA,\n invoicesSummaryOptions: payload\n});\n\nexport const loadInvoicesSummarySuccess = (\n payload: InvoicesSummarySuccessPayload\n) => ({\n type: LOAD_INVOICES_SUMMARY_SUCCESS,\n receivedData: payload.receivedData,\n totalCount: payload.totalCount\n});\n\nexport const loadInvoicesSummaryFailure = (errorMessage: string) => ({\n type: LOAD_INVOICES_SUMMARY_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetInvoicesSummary = () => ({\n type: RESET_INVOICES_SUMMARY\n});\n","import {\n RESET_INVOICE_DETAIL,\n LOAD_INVOICE_DETAIL_REQUEST,\n InvoiceDetailOptions,\n InvoiceDetailSuccessPayload,\n LOAD_INVOICE_DETAIL_SUCCESS,\n LOAD_INVOICE_DETAIL_FAILURE\n} from \"./types\";\n\nexport const resetInvoiceDetail = () => ({\n type: RESET_INVOICE_DETAIL\n});\n\nexport const loadInvoiceDetailRequest = (options: InvoiceDetailOptions) => ({\n type: LOAD_INVOICE_DETAIL_REQUEST,\n invoiceDetailOptions: options\n});\n\nexport const loadInvoiceDetailSuccess = (\n payload: InvoiceDetailSuccessPayload\n) => ({\n type: LOAD_INVOICE_DETAIL_SUCCESS,\n invoiceHeaderData: payload.invoiceHeaderData,\n receivedBillingItems: payload.receivedBillingItems,\n totalCount: payload.totalCount\n});\n\nexport const loadInvoiceDetailFailure = (errorMessage: string) => ({\n type: LOAD_INVOICE_DETAIL_FAILURE,\n errorMessage: errorMessage\n});\n","import {\n ENQUEUE_SNACKBAR,\n REMOVE_SNACKBAR,\n NotistackNotification,\n REMOVE_ALL_SNACKBAR,\n DELETE_SNACKBAR\n} from \"./types\";\n\nexport const enqueueSnackbar = (notification: NotistackNotification) => {\n return {\n type: ENQUEUE_SNACKBAR,\n notification: notification\n };\n};\n\nexport const removeSnackbar = (key: string) => ({\n type: REMOVE_SNACKBAR,\n key: key\n});\n\nexport const deleteSnackbar = (key: string) => ({\n type: DELETE_SNACKBAR,\n key: key\n});\n\nexport const removeAllSnackbar = () => ({\n type: REMOVE_ALL_SNACKBAR\n});\n","import {\n Tooltip,\n TooltipProps,\n makeStyles,\n Theme,\n createStyles\n} from \"@material-ui/core\";\nimport React from \"react\";\n\ntype SubmiticaTooltipProps = TooltipProps & SubmiticaTooltipStyleProps;\n\ntype SubmiticaTooltipStyleProps = {\n fontSize?: string;\n isCapitalised?: boolean;\n};\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n tooltipRoot: {\n fontSize: (props: SubmiticaTooltipStyleProps) =>\n props.fontSize ?? \"0.8rem\",\n textTransform: (props: SubmiticaTooltipStyleProps) =>\n props.isCapitalised ? \"capitalize\" : \"none\"\n }\n })\n);\n\nconst SubmiticaTooltip = (props: SubmiticaTooltipProps) => {\n const classes = useStyles({\n fontSize: props.fontSize,\n isCapitalised: props.isCapitalised\n });\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default SubmiticaTooltip;\n","import React from \"react\";\nimport SubmiticaLogo from \"assets/img/submitica-s.png\";\nimport styled from \"styled-components\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport {\n Theme,\n makeStyles,\n createStyles,\n useTheme\n} from \"@material-ui/core/styles\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { SubmiticaGreen } from \"styles/colours\";\n\nconst Logo = styled.img`\n height: 75px;\n margin-left: 45px;\n margin-top: 45px;\n`;\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonProgress: {\n color: SubmiticaGreen,\n position: \"absolute\"\n }\n })\n);\n\ntype LoaderProps = {\n isPartial?: boolean;\n};\n\nconst Loader = (props: LoaderProps) => {\n const classes = useStyles();\n\n const isScreenSmall = useMediaQuery(useTheme().breakpoints.down(\"sm\"));\n\n return (\n \n \n \n \n );\n};\n\nexport default Loader;\n","import { NotistackNotification } from \"store/notistack/types\";\nimport { VariantType } from \"notistack\";\n\nexport const addNotification = (\n key: string,\n message: string,\n enqueueNotification: (notification: NotistackNotification) => void,\n variant: VariantType\n) => {\n enqueueNotification(createNotification(key, message, variant));\n};\n\nexport const createNotification = (\n key: string,\n message: string,\n variant: VariantType\n) => {\n const notification: NotistackNotification = {\n message: message,\n dismissed: false,\n options: {\n key: key,\n variant: variant,\n autoHideDuration: 5000\n }\n };\n return notification;\n};\n","import { ApplicationType } from \"./enums\";\n\nexport function GetValueFromEnum(enumObject: T, searchStr: string): string {\n const filtered = Object.entries(enumObject).filter(t => t[0] === searchStr);\n return filtered.length === 0 ? null : filtered[0][1];\n}\n\nexport function GetApplicationTypeString(\n applicationType: ApplicationType\n): string {\n switch (applicationType) {\n case ApplicationType.Excavation:\n return \"Excavation\";\n case ApplicationType.NonExcavation:\n return \"Non-Excavation\";\n case ApplicationType.Preliminary:\n return \"Preliminary\";\n case ApplicationType.Event:\n return \"Event\";\n case ApplicationType.Retrospective:\n return \"Emergency\";\n }\n}\n","export const RESET_ERROR_MESSAGE = \"RESET_ERROR_MESSAGE\";\n\nexport type ErrorState = Map;\n\nexport type ErrorPayload = {\n errorMessage: string;\n};\n","import { Lookup, Feature } from \"store/types\";\nimport { Action } from \"redux\";\n\nexport const LOAD_TTM_SITES_REQUEST = \"LOAD_TTM_SITES_REQUEST\";\nexport const LOAD_TTM_SITES_SUCCESS = \"LOAD_TTM_SITES_SUCCESS\";\nexport const LOAD_TTM_SITES_FAILURE = \"LOAD_TTM_SITES_FAILURE\";\nexport const SET_TTM_SITE_STORE_DATA = \"SET_TTM_SITE_STORE_DATA\";\nexport const SET_TTM_DETOUR_STORE_DATA = \"SET_TTM_DETOUR_STORE_DATA\";\nexport const SET_TTM_CLOSURE_STORE_DATA = \"SET_TTM_CLOSURE_STORE_DATA\";\nexport const DELETE_TTM_SITE_STORE = \"DELETE_TTM_SITE_STORE\";\nexport const DELETE_TTM_DETOUR_STORE = \"DELETE_TTM_DETOUR_STORE\";\nexport const DELETE_TTM_CLOSURE_STORE = \"DELETE_TTM_CLOSURE_STORE\";\n// Save to database\nexport const SET_TTM_SITE_DB_REQUEST = \"SET_TTM_SITE_DB_REQUEST\";\nexport const SET_TTM_SITE_DB_SUCCESS = \"SET_TTM_SITE_DB_SUCCESS\";\nexport const SET_TTM_SITE_DB_FAILURE = \"SET_TTM_SITE_DB_FAILURE\";\n\nexport const SET_TTM_DETOUR_DB_REQUEST = \"SET_TTM_DETOUR_DB_REQUEST\";\nexport const SET_TTM_DETOUR_DB_SUCCESS = \"SET_TTM_DETOUR_DB_SUCCESS\";\nexport const SET_TTM_DETOUR_DB_FAILURE = \"SET_TTM_DETOUR_DB_FAILURE\";\n\nexport const SET_TTM_CLOSURE_DB_REQUEST = \"SET_TTM_CLOSURE_DB_REQUEST\";\nexport const SET_TTM_CLOSURE_DB_SUCCESS = \"SET_TTM_CLOSURE_DB_SUCCESS\";\nexport const SET_TTM_CLOSURE_DB_FAILURE = \"SET_TTM_CLOSURE_DB_FAILURE\";\n\nexport const DELETE_TTM_SITE_DB_REQUEST = \"DELETE_TTM_SITE_DB_REQUEST\";\nexport const DELETE_TTM_SITE_DB_SUCCESS = \"DELETE_TTM_SITE_DB_SUCCESS\";\nexport const DELETE_TTM_SITE_DB_FAILURE = \"DELETE_TTM_SITE_DB_FAILURE\";\nexport const DELETE_TTM_DETOUR_DB_REQUEST = \"DELETE_TTM_DETOUR_DB_REQUEST\";\nexport const DELETE_TTM_DETOUR_DB_SUCCESS = \"DELETE_TTM_DETOUR_DB_SUCCESS\";\nexport const DELETE_TTM_DETOUR_DB_FAILURE = \"DELETE_TTM_DETOUR_DB_FAILURE\";\nexport const DELETE_TTM_CLOSURE_DB_REQUEST = \"DELETE_TTM_CLOSURE_DB_REQUEST\";\nexport const DELETE_TTM_CLOSURE_DB_SUCCESS = \"DELETE_TTM_CLOSURE_DB_SUCCESS\";\nexport const DELETE_TTM_CLOSURE_DB_FAILURE = \"DELETE_TTM_CLOSURE_DB_FAILURE\";\n\nexport const DUPLICATE_TTM = \"DUPLICATE_TTM\";\nexport const RESET_TTM = \"RESET_TTM\";\nexport const RESET_ADDED_SITE_ID = \"RESET_ADDED_SITE_ID\";\n\nexport type TTMState = {\n TTMSites: TTMSite[];\n addedSiteId?: number;\n};\n\nexport type LoadTTMSitesRequestAction = Action<\n typeof LOAD_TTM_SITES_REQUEST\n> & {\n applicationId?: number;\n guid?: string;\n};\n\nexport type SetTTMSiteDbRequestAction = Action<\n typeof SET_TTM_SITE_DB_REQUEST\n> & {\n newSite: TTMSite;\n isEditing: boolean;\n applicationId: number;\n};\n\ntype SetTTMSiteDbSuccessAction = Action & {\n newSite: TTMSite;\n isEditing: boolean;\n};\n\nexport type SetTTMDetourDbRequestAction = Action<\n typeof SET_TTM_DETOUR_DB_REQUEST\n> & {\n newDetour: TTMDetour;\n isEditing: boolean;\n};\n\ntype SetTTMDetourDbSuccessAction = Action & {\n newDetour: TTMDetour;\n isEditing: boolean;\n};\n\nexport type SetTTMClosureDbRequestAction = Action<\n typeof SET_TTM_CLOSURE_DB_REQUEST\n> & {\n newClosure: TTMClosure;\n isEditing: boolean;\n};\n\ntype SetTTMClosureDbSuccessAction = Action<\n typeof SET_TTM_CLOSURE_DB_SUCCESS\n> & {\n newClosure: TTMClosure;\n isEditing: boolean;\n};\n\ntype SetTTMSiteDataAction = Action & {\n newSite: TTMSite;\n isEditing: boolean;\n};\n\ntype SetTTMDetourDataAction = Action & {\n newDetour: TTMDetour;\n isEditing: boolean;\n};\n\ntype SetTTMClosureDataAction = Action & {\n newClosure: TTMClosure;\n isEditing: boolean;\n};\n\ntype LoadTTMSitesSuccessAction = Action & {\n sites: TTMSite[];\n};\n\ntype DeleteTTMSiteStoreAction = Action & {\n siteId: number;\n};\n\nexport type DeleteTTMSiteDbRequestAction = Action<\n typeof DELETE_TTM_SITE_DB_REQUEST\n> & {\n siteId: number;\n};\n\ntype DeleteTTMSiteDbSuccessAction = Action<\n typeof DELETE_TTM_SITE_DB_SUCCESS\n> & { siteId: number };\n\ntype DeleteTTMDetourStoreAction = Action & {\n siteId: number;\n detourId: number;\n};\n\nexport type DeleteTTMDetourDbRequestAction = Action<\n typeof DELETE_TTM_DETOUR_DB_REQUEST\n> & {\n siteId: number;\n detourId: number;\n};\n\ntype DeleteTTMDetourDbSuccessAction = Action<\n typeof DELETE_TTM_DETOUR_DB_SUCCESS\n> & { siteId: number; detourId: number };\n\ntype DeleteTTMClosureStoreAction = Action & {\n siteId: number;\n closureId: number;\n};\n\nexport type DeleteTTMClosureDbRequestAction = Action<\n typeof DELETE_TTM_CLOSURE_DB_REQUEST\n> & {\n siteId: number;\n closureId: number;\n};\n\ntype DeleteTTMClosureDbSuccessAction = Action<\n typeof DELETE_TTM_CLOSURE_DB_SUCCESS\n> & { siteId: number; closureId: number };\n\ntype DuplicateTTMAction = Action & {\n ttmSites: TTMSite[];\n};\n\ntype ResetTTMAction = Action;\n\ntype ResetAddedSiteIdAction = Action;\n\nexport type TTMStateActionTypes =\n | LoadTTMSitesSuccessAction\n | SetTTMSiteDataAction\n | SetTTMDetourDataAction\n | SetTTMClosureDataAction\n | SetTTMSiteDbSuccessAction\n | SetTTMDetourDbSuccessAction\n | SetTTMClosureDbSuccessAction\n | DeleteTTMSiteStoreAction\n | DeleteTTMSiteDbSuccessAction\n | DeleteTTMDetourStoreAction\n | DeleteTTMDetourDbSuccessAction\n | DeleteTTMClosureStoreAction\n | DeleteTTMClosureDbSuccessAction\n | DuplicateTTMAction\n | ResetTTMAction\n | ResetAddedSiteIdAction;\n\nexport type TTMSite = {\n siteId: number;\n detours: TTMDetour[];\n closures: TTMClosure[];\n status: string;\n fromStreetNumber: string;\n toStreetNumber: string;\n streetAddress: string;\n roadClass: Lookup;\n roadLevel: Lookup;\n ttmType: Lookup;\n ttmTypeExplanation?: string;\n ttmImpact: Lookup;\n ttmImpactExplanation: string;\n workActivity: Lookup;\n workActivityExplanation: string;\n speedLimit: Lookup;\n affectedAccess: Lookup[];\n location: string;\n affectedAreaDescription: string;\n isTrafficDelayLikely: boolean;\n isPublicNotificationRequired: boolean;\n notes?: string;\n shapes?: string;\n features: Feature[];\n};\n\nexport type TTMDetour = {\n detourId: number;\n siteId: number;\n description: string;\n notes?: string;\n shapes?: string;\n features: Feature[];\n};\n\nexport type TTMClosure = {\n closureId: number;\n siteId: number;\n proposedStart?: Date;\n proposedEnd?: Date;\n actualStart?: Date;\n actualEnd?: Date;\n notes?: string;\n};\n","import {\n UserDetail,\n SET_NEW_ORGANISATION_REQUEST,\n RESET_CREATE_APPLICATION_NEW_USER_DATA,\n LOAD_USER_LINKS_REQUEST,\n UserAccount,\n LOAD_USER_LINKS_SUCCESS,\n RESET_ACCOUNT_MANAGEMENT,\n UserLinkButtonActionTypes,\n UserLinkDetail,\n LOAD_USER_DETAIL_REQUEST,\n LOAD_USER_DETAIL_SUCCESS,\n LOAD_DUPLICATE_ACCOUNT_FAILURE,\n DuplicateAccountModel,\n LOAD_DUPLICATE_ACCOUNT_SUCCESS,\n SET_LINK_DUPLICATES_REQUEST,\n SET_LINK_DUPLICATES_FAILURE,\n SET_LINK_DUPLICATES_SUCCESS,\n LOAD_DUPLICATE_ACCOUNT_REQUEST,\n RESET_SUCCESS_NOTIFICATION,\n SET_GST_NUMBER_REQUEST,\n SET_GST_NUMBER_FAILURE,\n SET_GST_NUMBER_SUCCESS,\n LOAD_USER_DETAIL_FAILURE,\n LOAD_USER_LINKS_FAILURE,\n LOAD_NEW_ORGANISATIONS_REQUEST,\n LOAD_NEW_ORGANISATIONS_SUCCESS,\n RegisteredOrganisationModel,\n LOAD_NEW_ORGANISATIONS_FAILURE,\n RESET_NEW_ORGANISATIONS,\n SET_NEW_ORGANISATION_SUCCESS,\n SET_NEW_ORGANISATION_FAILURE,\n SET_USER_DETAIL_REQUEST,\n SET_USER_DETAIL_SUCCESS,\n SET_USER_DETAIL_FAILURE,\n NotificationSettings,\n SET_NOTIFICATION_SETTINGS_REQUEST,\n SET_NOTIFICATION_SETTINGS_SUCCESS,\n SET_NOTIFICATION_SETTINGS_FAILURE,\n UserRegion,\n SET_USER_REGIONS_REQUEST,\n SET_USER_REGIONS_SUCCESS,\n SET_USER_REGIONS_FAILURE,\n SET_USER_LINK_REQUEST,\n SET_USER_LINK_FAILURE,\n SET_USER_LINK_SUCCESS,\n DELETE_USER_LINK_REQUEST,\n DELETE_USER_LINK_SUCCESS,\n DELETE_USER_LINK_FAILURE,\n LOAD_PERMISSION_TO_VIEW_USER_REQUEST,\n LOAD_PERMISSION_TO_VIEW_USER_FAILURE,\n LOAD_PERMISSION_TO_VIEW_USER_SUCCESS,\n LOAD_USER_NOTIFICATIONS_SUCCESS,\n LOAD_USER_NOTIFICATIONS_REQUEST,\n LOAD_USER_NOTIFICATIONS_FAILURE,\n UserNotifications,\n RESET_USER_NOTIFICATIONS,\n LOAD_USER_NOTIFICATIONS_COUNT_REQUEST,\n LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS,\n LOAD_USER_NOTIFICATIONS_COUNT_FAILURE,\n SET_USER_NOTIFICATIONS_INACTIVE_REQUEST,\n SET_USER_NOTIFICATIONS_INACTIVE_FAILURE,\n SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS,\n HideNotificationRequest,\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST,\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_FAILURE,\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS,\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST,\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS,\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_FAILURE,\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET,\n LOAD_USER_REGIONS_SUCCESS,\n LOAD_USER_REGIONS_REQUEST,\n LOAD_USER_REGIONS_FAILURE,\n LOAD_PARTICIPANT_ORGANISATION_REQUEST,\n LOAD_PARTICIPANT_ORGANISATION_SUCCESS,\n LOAD_PARTICIPANT_ORGANISATION_FAILURE,\n RESET_AUTOFILL_ORGANISATION,\n CONFIRM_USER_LINK_REQUEST,\n CONFIRM_USER_LINK_FAILURE,\n DECLINE_USER_LINK_REQUEST,\n USER_LINK_SUCCESS,\n RESET_USER_LINK_PROCESSED,\n UserNotificationPaginationResponse\n} from \"./types\";\nimport { Lookup, SearchModel } from \"store/types\";\nimport { Endpoint } from \"common/endpoints\";\nimport { UserLinkType, UserNotificationActionTypes } from \"common/enums\";\n\nexport const setNewOrganisationRequest = (\n newOrganisation: RegisteredOrganisationModel,\n parentId: string\n) => ({\n type: SET_NEW_ORGANISATION_REQUEST,\n newOrganisation: newOrganisation,\n parentId: parentId\n});\n\nexport const setNewOrganisationSuccess = (\n newOrg: Lookup,\n parentId: string\n) => ({\n type: SET_NEW_ORGANISATION_SUCCESS,\n newOrg: newOrg,\n parentId: parentId\n});\n\nexport const setNewOrganisationFailure = (errorMessage: string) => ({\n type: SET_NEW_ORGANISATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetCreateApplicationNewUserData = () => ({\n type: RESET_CREATE_APPLICATION_NEW_USER_DATA\n});\n\nexport const setUserDetailRequest = (\n parentId: string,\n newUserFormModel: UserDetail,\n isEditingUserAccount: boolean\n) => ({\n type: SET_USER_DETAIL_REQUEST,\n parentId: parentId,\n newUserFormModel: newUserFormModel,\n isEditingUserAccount: isEditingUserAccount\n});\n\nexport const setUserDetailFailure = (errorMessage: string) => ({\n type: SET_USER_DETAIL_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setUserDetailSuccess = (\n parentId: string,\n newUser: Lookup,\n isEditingUserAccount: boolean,\n userDetail?: UserDetail\n) => ({\n type: SET_USER_DETAIL_SUCCESS,\n newUser: newUser,\n parentId: parentId,\n isEditingUserAccount: isEditingUserAccount,\n userDetail: userDetail\n});\n\nexport const setGstNumberRequest = (gstNumber: string) => ({\n type: SET_GST_NUMBER_REQUEST,\n gstNumber: gstNumber\n});\n\nexport const setGstNumberFailure = (errorMessage: string) => ({\n type: SET_GST_NUMBER_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setGstNumberSuccess = (gstNumber: string) => ({\n type: SET_GST_NUMBER_SUCCESS,\n gstNumber: gstNumber\n});\n\nexport const loadAccountManagementRequest = (userId: number) => ({\n type: LOAD_USER_LINKS_REQUEST,\n userId: userId\n});\n\nexport const loadAccountManagementFailure = (errorMessage: string) => ({\n type: LOAD_USER_LINKS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadAccountManagementSuccess = (payload: UserAccount) => ({\n type: LOAD_USER_LINKS_SUCCESS,\n receivedData: payload\n});\n\nexport const resetAccountManagement = () => ({\n type: RESET_ACCOUNT_MANAGEMENT\n});\n\nexport const setUserLinkRequest = (\n user: Lookup,\n actionType: UserLinkButtonActionTypes,\n userLinkType: UserLinkType\n) => ({\n type: SET_USER_LINK_REQUEST,\n user: user,\n actionType: actionType,\n userLinkType: userLinkType\n});\n\nexport const setUserLinkFailure = (errorMessage: string) => ({\n type: SET_USER_LINK_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setUserLinkSuccess = (\n userLink: UserLinkDetail,\n actionType: UserLinkButtonActionTypes\n) => ({\n type: SET_USER_LINK_SUCCESS,\n userLink: userLink,\n actionType: actionType\n});\n\nexport const deleteUserLinkRequest = (userLinkId: number) => ({\n type: DELETE_USER_LINK_REQUEST,\n userLinkId: userLinkId\n});\n\nexport const deleteUserLinkSuccess = (userLinkId: number) => ({\n type: DELETE_USER_LINK_SUCCESS,\n userLinkId: userLinkId\n});\n\nexport const deleteUserLinkFailure = (errorMessage: string) => ({\n type: DELETE_USER_LINK_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadUserDetailRequest = (userId: number) => ({\n type: LOAD_USER_DETAIL_REQUEST,\n userId: userId\n});\n\nexport const loadUserDetailFailure = (errorMessage: string) => ({\n type: LOAD_USER_DETAIL_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadUserDetailSuccess = (userDetail: UserDetail) => ({\n type: LOAD_USER_DETAIL_SUCCESS,\n userDetail: userDetail\n});\n\nexport const loadDuplicateAccountRequest = () => ({\n type: LOAD_DUPLICATE_ACCOUNT_REQUEST\n});\n\nexport const loadDuplicateAccountFailure = (errorMessage: string) => ({\n type: LOAD_DUPLICATE_ACCOUNT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadDuplicateAccountSuccess = (\n duplicateAccounts: DuplicateAccountModel[]\n) => ({\n type: LOAD_DUPLICATE_ACCOUNT_SUCCESS,\n duplicateAccounts: duplicateAccounts\n});\n\nexport const setLinkDuplicatesRequest = (\n selectedIds?: number[],\n emailToLink?: string\n) => ({\n type: SET_LINK_DUPLICATES_REQUEST,\n selectedIds: selectedIds,\n emailToLink: emailToLink\n});\n\nexport const setLinkDuplicatesFailure = (errorMessage: string) => ({\n type: SET_LINK_DUPLICATES_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setLinkDuplicatesSuccess = (\n selectedIds?: number[],\n emailToLink?: string\n) => ({\n type: SET_LINK_DUPLICATES_SUCCESS,\n selectedIds: selectedIds,\n emailToLink: emailToLink\n});\n\nexport const resetSuccessNotification = (key: string) => ({\n type: RESET_SUCCESS_NOTIFICATION,\n key: key\n});\n\nexport const loadNewOrganisationsRequest = (\n endpoint?: Endpoint,\n route?: string,\n args?: string[] | SearchModel\n) => ({\n type: LOAD_NEW_ORGANISATIONS_REQUEST,\n endpoint: endpoint,\n route: route,\n args: args\n});\n\nexport const loadNewOrganisationSuccess = (\n route: string,\n data: RegisteredOrganisationModel[]\n) => ({\n type: LOAD_NEW_ORGANISATIONS_SUCCESS,\n route: route,\n data: data\n});\n\nexport const loadNewOrganisationsFailure = (errorMessage: string) => ({\n type: LOAD_NEW_ORGANISATIONS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetNewOrganisationsData = () => ({\n type: RESET_NEW_ORGANISATIONS\n});\n\nexport const setNotificationSettingsRequest = (\n notificationSettings: NotificationSettings\n) => ({\n type: SET_NOTIFICATION_SETTINGS_REQUEST,\n notificationSettings: notificationSettings\n});\n\nexport const setNotificationSettingsSuccess = (\n notificationSettings: NotificationSettings\n) => ({\n type: SET_NOTIFICATION_SETTINGS_SUCCESS,\n notificationSettings: notificationSettings\n});\n\nexport const setNotificationSettingsFailure = (errorMessage: string) => ({\n type: SET_NOTIFICATION_SETTINGS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setUserRegionsRequest = (userRegions: UserRegion[]) => ({\n type: SET_USER_REGIONS_REQUEST,\n userRegions: userRegions\n});\n\nexport const setUserRegionsSuccess = (userRegions: UserRegion[]) => ({\n type: SET_USER_REGIONS_SUCCESS,\n userRegions: userRegions\n});\n\nexport const setUserRegionsFailure = (errorMessage: string) => ({\n type: SET_USER_REGIONS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadPermissionToViewUserRequest = (userId: number) => ({\n type: LOAD_PERMISSION_TO_VIEW_USER_REQUEST,\n userId: userId\n});\n\nexport const loadPermissionToViewUserSuccess = (hasPermission: boolean) => ({\n type: LOAD_PERMISSION_TO_VIEW_USER_SUCCESS,\n hasPermission: hasPermission\n});\n\nexport const loadPermissionToViewUserFailure = (errorMessage: string) => ({\n type: LOAD_PERMISSION_TO_VIEW_USER_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadUserNotificationsRequest = (\n pageIndex: number\n) => ({\n type: LOAD_USER_NOTIFICATIONS_REQUEST,\n pageIndex: pageIndex\n});\n\nexport const loadUserNotificationsSuccess = (\n userNotificationPagination: UserNotificationPaginationResponse\n) => ({\n type: LOAD_USER_NOTIFICATIONS_SUCCESS,\n userNotificationPagination: userNotificationPagination\n});\n\nexport const loadUserNotificationsFailure = (errorMessage: string) => ({\n type: LOAD_USER_NOTIFICATIONS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetUserNotifications = () => ({\n type: RESET_USER_NOTIFICATIONS\n});\n\nexport const loadUserNotificationsCountRequest = () => ({\n type: LOAD_USER_NOTIFICATIONS_COUNT_REQUEST\n});\n\nexport const loadUserNotificationsCountSuccess = (\n notificationCount: number\n) => ({\n type: LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS,\n notificationCount: notificationCount\n});\n\nexport const loadUserNotificationsCountFailure = (errorMessage: string) => ({\n type: LOAD_USER_NOTIFICATIONS_COUNT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setUserNotificationInactiveRequest = (\n request: HideNotificationRequest\n) => ({\n type: SET_USER_NOTIFICATIONS_INACTIVE_REQUEST,\n request: request\n});\n\nexport const setUserNotificationInactiveFailure = (errorMessage: string) => ({\n type: SET_USER_NOTIFICATIONS_INACTIVE_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setUserNotificationInactiveSuccess = (\n request: HideNotificationRequest\n) => ({\n type: SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS,\n request: request\n});\n\nexport const setUserNotificationConfirmDeclineRequest = (\n notificationId: string,\n notificationActionType: UserNotificationActionTypes\n) => ({\n type: SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST,\n notificationId: notificationId,\n notificationActionType: notificationActionType\n});\n\nexport const setUserNotificationConfirmDeclineSuccess = (\n notificationId: string\n) => ({\n type: SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS,\n notificationId: notificationId\n});\n\nexport const setUserNotificationConfirmDeclineFailure = (\n errorMessage: string\n) => ({\n type: SET_USER_NOTIFICATION_CONFIRM_DECLINE_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadScaleOfWorkQuestionnaireRequest = (rcaId: number) => ({\n type: LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST,\n rcaId: rcaId\n});\n\nexport const loadScaleOfWorkQuestionnaireSuccess = (questions: string[]) => ({\n type: LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS,\n questions: questions\n});\n\nexport const loadScaleOfWorkQuestionnaireFailure = (errorMessage: string) => ({\n type: LOAD_SCALE_OF_WORK_QUESTIONNAIRE_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadScaleOfWorkQuestionnaireReset = () => ({\n type: LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET\n});\n\nexport const loadUserRegionsRequest = () => ({\n type: LOAD_USER_REGIONS_REQUEST\n});\n\nexport const loadUserRegionsSuccess = (userRegions: UserRegion[]) => ({\n type: LOAD_USER_REGIONS_SUCCESS,\n userRegions: userRegions\n});\n\nexport const loadUserRegionsFailure = (errorMessage: string) => ({\n type: LOAD_USER_REGIONS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadParticipantOrganisationRequest = (userId: number) => ({\n type: LOAD_PARTICIPANT_ORGANISATION_REQUEST,\n userId: userId\n});\n\nexport const loadParticipantOrganisationSuccess = (organisation: Lookup) => ({\n type: LOAD_PARTICIPANT_ORGANISATION_SUCCESS,\n organisation: organisation\n});\n\nexport const loadParticipantOrganisationFailure = (errorMessage: string) => ({\n type: LOAD_PARTICIPANT_ORGANISATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetAutofillOrganisation = () => ({\n type: RESET_AUTOFILL_ORGANISATION\n});\n\nexport const confirmUserLinkRequest = (code: string) => ({\n type: CONFIRM_USER_LINK_REQUEST,\n code: code\n});\n\nexport const userLinkSuccess = (userLinkAction: string) => ({\n type: USER_LINK_SUCCESS,\n userLinkAction: userLinkAction\n});\n\nexport const confirmUserLinkFailure = (errorMessage: string) => ({\n type: CONFIRM_USER_LINK_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const declineUserLinkRequest = (code: string) => ({\n type: DECLINE_USER_LINK_REQUEST,\n code: code\n});\n\nexport const declineUserLinkFailure = (errorMessage: string) => ({\n type: DELETE_USER_LINK_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetUserLinkProcessed = () => ({\n type: RESET_USER_LINK_PROCESSED\n});\n","export enum ApplicationType {\n Excavation = 1,\n Event = 2,\n NonExcavation = 3,\n Retrospective = 4,\n Preliminary = 5\n}\n\nexport enum ApplicantRoleEnum {\n UtilityOperator = 1,\n Consultant = 2,\n Contractor = 3,\n Others = 4,\n TrafficManager = 5\n}\n\nexport enum ParticipantRoleEnum {\n ApplicantPrimaryContact = 1,\n ApplicantAlternativeContact = 2,\n RCACorridorManager = 3,\n RCAFieldAuditor = 4,\n UtilityOperatorRepresentative = 5,\n UtilitySiteManager = 6,\n UtilityOperatorOffice = 7,\n BillPayer = 8,\n UtilityOperatorPrimaryContact = 9,\n CivilContractorSiteManager = 10,\n CivilContractorRepresentative = 11,\n CivilContractorProjectManager = 12,\n CivilContractorOfficeManager = 13,\n CivilContractorBillPayer = 14,\n CivilContractorPrimaryContact = 15,\n SiteTrafficManagementSupervisor = 16,\n TrafficManagementPlanDesigner = 17,\n TrafficManagementConsultant = 18,\n TrafficManagementCompanyRepresentative = 19,\n TrafficManagementCompanyOfficeManager = 20,\n TrafficManagementBillPayer = 21,\n TrafficManagementPrimaryContact = 22,\n OtherPartyConsultant = 23,\n OtherPartyAuthorisedAccess = 24,\n OtherPartyContact = 25,\n PrincipalPrimaryContact = 26,\n PrincipalAlternativeContact = 27,\n UtilityOperatorAlternativeContact = 28,\n OtherPartyNonConformanceNotices = 29\n}\n\nexport enum ParticipantCategoryEnum {\n RoadControllingAuthority = 1,\n Applicant = 2,\n UtilityOperator = 3,\n CivilContractor = 4,\n TrafficManagement = 5,\n OtherParty = 6,\n BillPayer = 7,\n Principal = 8\n}\n\nexport enum ContainerNamesEnum {\n ApplicationDetail = \"applicationDetail\",\n CreateApplication = \"createApplication\",\n HeaderContainer = \"header\",\n ManageAccount = \"manageAccount\",\n PlanningMap = \"planningMap\",\n ViewApplications = \"viewApplications\",\n BillPayerDetail = \"billPayerDetail\",\n ViewBillPayers = \"viewBillPayers\",\n ViewInvoices = \"viewInvoices\",\n InvoiceDetail = \"invoiceDetail\",\n Support = \"support\"\n}\n\nexport enum SectionNamesEnum {\n AttachmentSection = \"attachmentSection\",\n FeesSection = \"feesSection\",\n DatesSection = \"datesSection\",\n LinkedApplicationSection = \"linkedApplicationSection\",\n LocationSection = \"locationSection\",\n NotesSection = \"notesSection\",\n ParticipantsSection = \"participantsSection\",\n RcaSection = \"rcaSection\",\n TtmSection = \"ttmSection\",\n WorkInformationSection = \"workInformationSection\",\n AccountModal = \"AccountModal\",\n WhoAddNewOrganisationModal = \"whoAddNewOrganisationModal\",\n AddParticipantToApplicationModal = \"addParticipantToApplicationModal\",\n SetupApplicationType = \"setupApplicationType\",\n TrafficClosureForm = \"trafficClosureForm\",\n SetupConflict = \"setupConflict\",\n CreateApplicationHeader = \"createApplicationHeader\",\n TrafficDetoursForm = \"trafficDetoursForm\",\n ExtraDetailSection = \"extraDetailSection\",\n PreviewReviewSection = \"previewReviewSection\",\n TrafficCancelForm = \"trafficCancelForm\",\n TrafficSection = \"trafficSection\",\n TrafficClosureDialogForm = \"trafficClosureDialogForm\",\n TrafficDetourDialogForm = \"trafficDetourDialogForm\",\n TrafficTtmForm = \"trafficTtmForm\",\n TrafficSiteDialogForm = \"trafficSiteDialogForm\",\n TrafficTtmSites = \"trafficTtmSites\",\n TrafficTtmSubTables = \"trafficTtmSubTables\",\n WhatDetailSection = \"whatDetailSection\",\n WhenDetailSection = \"whenDetailSection\",\n WhereMapSection = \"whereMapSection\",\n WhereAddressSection = \"whereAddressSection\",\n WhoParticipantInvolvedSection = \"whoParticipantInvolvedSection\",\n WhoBillPayerSection = \"whoBillPayerSection\",\n WhoAdditionalParticipantSection = \"whoAdditionalParticipantSection\",\n WhoOtherParticipants = \"whoOtherParticipants\",\n WhoPrincipalContactSection = \"whoPrincipalContactSection\",\n TopMenu = \"topMenu\",\n SideMenu = \"sideMenu\",\n AccountsDataPanel = \"accountsDataPanel\",\n ProfileTile = \"profileTile\",\n UserAccessModal = \"userAccessModal\",\n PlanningMapSection = \"planningMapSection\",\n SelectApplication = \"selectApplication\",\n FilterMenu = \"filterMenu\",\n ViewApplicationMainSection = \"viewApplicationMainSection\",\n ManageDuplicateAccountsModal = \"manageDuplicateAccountsModal\",\n ViewApplicationsToolbar = \"viewApplicationToolbar\",\n ViewApplicationsSpeedDial = \"viewApplicationSpeedDial\",\n Header = \"header\",\n SetupDocumentationSection = \"setupDocumentationSection\",\n MaintainGstNumberModal = \"maintainGstNumberModal\",\n TemporaryAttachmentList = \"TemporaryAttachmentList\",\n AddExtraAttachmentModal = \"AddExtraAttachmentModal\",\n LargeApplicationsTable = \"LargeApplicationsTable\",\n SetupPanel = \"SetupPanel\",\n WherePanel = \"WherePanel\",\n WhenPanel = \"WhenPanel\",\n WhoPanel = \"WhoPanel\",\n WhatPanel = \"WhatPanel\",\n TrafficPanel = \"TrafficPanel\",\n ExtraPanel = \"ExtraPanel\",\n PreviewPanel = \"PreviewPanel\",\n SubmissionPanel = \"SubmissionPanel\",\n ApplicationDetailPanel = \"ApplicationDetailPanel\",\n MaintainBillPayer = \"MaintainBillPayer\",\n BillPayersTable = \"billPayersTable\",\n ViewBillPayersMainSection = \"viewBillPayersMainSection\",\n BillPayersDetailedTable = \"billPayersDetailedTable\",\n UserRegionForm = \"UserRegionForm\",\n NotificationSettingsModal = \"notificationSettingsModal\",\n NotificationsList = \"notificationsList\",\n Grid = \"grid\",\n EditNotes = \"editNotes\",\n SelectedAttachmentModal = \"selectedAttachmentModal\",\n EditWorkInformation = \"editWorkInformation\",\n NotifyWorkStatus = \"notifyWorkStatus\",\n GiveFeedback = \"giveFeedback\",\n EditLocation = \"editLocation\",\n NotifyMaintenanceCompletion = \"notifyMaintenanceCompletion\",\n ImportShapes = \"importShapes\",\n MajorProcessingHistorySection = \"MajorProcessingHistorySection\"\n}\n\nexport enum CreateApplicationStep {\n SetupPanel = 0,\n WherePanel = 1,\n WhenPanel = 2,\n WhoPanel = 3,\n WhatPanel = 4,\n TrafficPanel = 5,\n ExtraPanel = 6,\n PreviewPanel = 7,\n SubmissionPanel = 8\n}\n\nexport enum AttachmentTypeEnum {\n TrafficManagementPlan = 9\n}\n\nexport enum WorkType {\n Project = 1,\n Major = 2,\n Minor = 3,\n Emergency = 4,\n NotApplicable = 5\n}\n\nexport enum CarDetailLabel {\n carNumber = \"CAR Number\",\n carStatus = \"CAR Status\",\n activity = \"Activity\",\n applicant = \"Applicant\",\n contact = \"Contact\",\n utility = \"Utility\",\n utilityContact = \"Utility contact\",\n duration = \"Duration\",\n startDate = \"Start Date\",\n endDate = \"Complete Date\",\n rca = \"RCA\"\n}\n\nexport enum DispatchLabel {\n assetType = \"Asset Type\",\n status = \"Call Status\",\n callType = \"Call Type\",\n contractId = \"Contract\",\n fault = \"Fault\"\n // priority = \"Priority\" // Leave this one here, we may add it back\n}\n\nexport enum UserLinkType {\n Duplicate = 1,\n Supervisor = 2,\n Authorised = 3\n}\n\nexport enum CalloutType {\n Inspection = 1,\n Defect = 2\n}\n\nexport enum UserNotificationTypes {\n UserLinkRequest = 3,\n ParticipantLinkRequest = 4,\n UserLinkResponse = 5,\n ParticipantLinkResponse = 6,\n ParticipantLinkReplaceResponse = 7,\n ParticipantLinkDeclineResponse = 8,\n UserLinkDeclineResponse = 9\n}\n\nexport enum UserNotificationActionTypes {\n Confirm = \"confirm\",\n Decline = \"decline\",\n Hide = \"hide\",\n HideAll = \"hide all\",\n Duplicate = \"duplicate\"\n}\n\nexport enum ApplicationStatus {\n New = 1,\n Pending = 2,\n Declined = 3,\n OnHold = 4,\n Approved = 5,\n WorkInProgress = 6,\n WorkOverdue = 7,\n WorkCompletionNotificationOverdue = 8,\n WorkCompletionNotified = 9,\n WorkCompletionInspectionOverdue = 10,\n WorkCompletionInspected = 11,\n WorkCompletionSignoffOverdue = 12,\n WorkInWarranty = 13,\n WarrantyRepairInProgress = 14,\n WarrantyInspectionOverdue = 15,\n WarrantyInspectionDone = 16,\n Closed = 17,\n Cancelled = 18,\n TmpOutstanding = 19,\n ReadyForApproval = 20,\n ApprovedInPrinciple = 21,\n CompletionNotified = 22,\n WarrantyExpiring = 23,\n WarrantyExpired = 24,\n CompletionOfMaintenanceNotified = 25,\n DefectOutstanding = 26\n}\n\nexport enum ApplicationStep {\n CarApproval = 1,\n AuditWorks = 2,\n WorkCompletion = 3,\n WarrantyPeriod = 4,\n CarClosed = 5\n}\n\nexport enum WorkDateStatus {\n Unknown = 1,\n Proposed = 2,\n Revised = 3,\n Actual = 4,\n Extended = 5\n}\n\nexport enum ParticipantActionType {\n Add = \"add\",\n Replace = \"replace\"\n}\n\nexport enum RcaCustomisationTypes {\n MajorWorkQuestionnaire = 1,\n TTMRoadLevelNotApplicable = 2,\n TTMImpactLookupLoadOrganisationOwnedOnly = 3\n}\n\nexport enum SubmiticaPermission {\n None = 0,\n ViewApplications = 1,\n ViewDetails = 2,\n AttachTmp = 4,\n AttachOtherFiles = 8,\n NotifyWorkStart = 16,\n NotifyWorkCompletion = 32,\n EditCar = 64,\n AddParticipant = 128,\n CancelCar = 256,\n Full = 511\n}\n\nexport enum BottomNavigationType {\n Applications = 0,\n Map = 1,\n BillPayers = 2,\n Account = 3\n}\n\nexport enum WhoPanelSections {\n ParticipantsInvolved = 0,\n BillPayerDetails = 1,\n AdditionaParticipants = 2\n}\n\nexport enum EmailNotificationTypes {\n WorkStartOverdue = 1,\n WorkCompletionOverdue = 2,\n TmpOutstanding = 6,\n ConfirmWorkStartReminder = 17,\n ConfirmWorkStartWarning = 18,\n WarrantyExpired = 20,\n BillPayerMissing = 25\n}\n\nexport enum LinkActionResponse {\n ConfirmUserLink = \"CONFIRMUSERLINK\",\n DeclineUserLink = \"DECLINEUSERLINK\",\n DeclineParticipant = \"DECLINEPARTICIPANT\"\n}\n\nexport enum MaxInputLenghts {\n NormalWorkingHours = 120,\n ConsentNumber = 50,\n UtilityReferenceNumber = 50,\n PurchaseOrderNumber = 100,\n Email = 100,\n FirstName = 50,\n LastName = 50,\n WorkPhone = 50,\n mobilePhone = 50,\n Fax = 50,\n JobPosition = 100,\n CertificationNumber = 100,\n PlaceOfIssue = 250,\n GSTNumber = 20,\n RCACustomerNumber = 100,\n OrganisationName = 255,\n StreetNumberStart = 50,\n StreetNumberEnd = 50\n}\n\nexport enum GuidesGridAction {\n CreateApplication = \"CreateApplication\",\n Ttm = \"Ttm\",\n SubmiticaAccountOverview = \"SubmiticaAccountOverview\",\n SubmiticaAccountDetails = \"SubmiticaAccountDetails\",\n AdditionalInfo = \"AdditionalInfo\"\n}\n","import {\n LOAD_SINGLE_APPLICATION_REQUEST,\n ApplicationDetail,\n LOAD_SINGLE_APPLICATION_SUCCESS,\n LOAD_SINGLE_APPLICATION_FAILURE,\n RESET_SINGLE_APPLICATION,\n UPLOAD_DETAIL_FILE_REQUEST,\n UPLOAD_DETAIL_FILE_SUCCESS,\n UPLOAD_DETAIL_FILE_FAILURE,\n NewAttachment,\n Attachment,\n SET_APPLICATION_NOTES_REQUEST,\n SET_APPLICATION_NOTES_SUCCESS,\n SET_APPLICATION_NOTES_FAILURE,\n SET_WORK_INFORMATION_REQUEST,\n SET_WORK_INFORMATION_SUCCESS,\n SET_WORK_INFORMATION_FAILURE,\n DOWNLOAD_CALLOUT_REPORT_REQUEST,\n DOWNLOAD_CALLOUT_REPORT_FAILURE,\n Inspection,\n DOWNLOAD_INSPECTION_REPORT_SUCCESS,\n Defect,\n DOWNLOAD_DEFECT_REPORT_SUCCESS,\n SET_PARTICIPANT_REQUEST,\n Participant,\n SET_PARTICIPANT_SUCCESS,\n SET_PARTICIPANT_FAILURE,\n SET_NOTIFY_WORK_STATUS_REQUEST,\n SET_NOTIFY_WORK_START_SUCCESS,\n SET_NOTIFY_WORK_STATUS_FAILURE,\n NotifyWorkStartResponse,\n SET_APPLICATION_FEEDBACK_REQUEST,\n SET_APPLICATION_FEEDBACK_SUCCESS,\n SET_APPLICATION_FEEDBACK_FAILURE,\n LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST,\n LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS,\n LOAD_EXISTING_APPLICATION_FEEDBACK_FAILURE,\n ApplicationFeedback,\n REPLACE_PARTICIPANT_REQUEST,\n REPLACE_PARTICIPANT_SUCCESS,\n REPLACE_PARTICIPANT_FAILURE,\n ReplaceParticipant,\n LOAD_AUDIT_LOGS_REQUEST,\n LOAD_AUDIT_LOGS_FAILURE,\n AuditHistoryResponse,\n LOAD_AUDIT_LOGS_SUCCESS,\n RESET_AUDIT_LOGS,\n SET_NOTIFY_WORK_COMPLETION_SUCCESS,\n NotifyWorkCompletionResponse,\n REMOVE_PARTICIPANT_REQUEST,\n REMOVE_PARTICIPANT_SUCCESS,\n REMOVE_PARTICIPANT_FAILURE,\n SET_LOCATION_REQUEST,\n SET_LOCATION_SUCCESS,\n SET_LOCATION_FAILURE,\n DELETE_ATTACHMENT_REQUEST,\n DELETE_ATTACHMENT_FAILURE,\n DELETE_ATTACHMENT_SUCCESS,\n LocationInformationModel,\n CANCEL_APPLICATION_REQUEST,\n CANCEL_APPLICATION_FAILURE,\n CANCEL_APPLICATION_SUCCESS,\n MaintenanceCompletionRequest,\n SET_MAINTENANCE_COMPLETION_REQUEST,\n SET_MAINTENANCE_COMPLETION_SUCCESS,\n SET_MAINTENANCE_COMPLETION_FAILURE,\n MaintenanceCompletionResponse,\n ReplaceParticipantResponse,\n DECLINE_APPLICATION_PARTICIPANT_REQUEST,\n DECLINE_APPLICATION_PARTICIPANT_FAILURE,\n DECLINE_APPLICATION_PARTICIPANT_SUCCESS\n} from \"./types\";\nimport { WorkInformationModel } from \"containers/ApplicationDetail/EditWorkInformationModal\";\nimport { CalloutType } from \"common/enums\";\nimport { AddParticipant } from \"store/types\";\n\nexport const loadSingleApplicationRequest = (\n carId?: number,\n guid?: string\n) => ({\n type: LOAD_SINGLE_APPLICATION_REQUEST,\n carId: carId,\n guid: guid\n});\n\nexport const loadSingleApplicationSuccess = (payload: ApplicationDetail) => ({\n type: LOAD_SINGLE_APPLICATION_SUCCESS,\n applicationDetailData: payload\n});\n\nexport const loadSingleApplicationFailure = (errorMessage: string) => ({\n type: LOAD_SINGLE_APPLICATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetSingleApplication = () => ({\n type: RESET_SINGLE_APPLICATION\n});\n\nexport const uploadFileRequest = (\n applicationId: number,\n carStepId: number,\n attachments: NewAttachment[],\n permissionValue: number,\n childApplicationIds: number[],\n reference?: string\n) => ({\n type: UPLOAD_DETAIL_FILE_REQUEST,\n applicationId: applicationId,\n attachments: attachments,\n carStepId: carStepId,\n permissionValue: permissionValue,\n childApplicationIds: childApplicationIds,\n reference\n});\n\nexport const uploadFileSuccess = (attachments: Attachment[]) => ({\n type: UPLOAD_DETAIL_FILE_SUCCESS,\n attachments: attachments\n});\n\nexport const uploadFileFailure = (errorMessage: string) => ({\n type: UPLOAD_DETAIL_FILE_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setApplicationNotesRequest = (\n notes: string,\n applicationId: number\n) => ({\n type: SET_APPLICATION_NOTES_REQUEST,\n notes: notes,\n applicationId: applicationId\n});\n\nexport const setApplicationNotesSuccess = (notes: string) => ({\n type: SET_APPLICATION_NOTES_SUCCESS,\n notes: notes\n});\n\nexport const setApplicationNotesFailure = (errorMessage: string) => ({\n type: SET_APPLICATION_NOTES_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setWorkInformationRequest = (\n workInfo: WorkInformationModel,\n applicationId: number\n) => ({\n type: SET_WORK_INFORMATION_REQUEST,\n workInfo: workInfo,\n applicationId: applicationId\n});\n\nexport const setWorkInformationSuccess = (workInfo: WorkInformationModel) => ({\n type: SET_WORK_INFORMATION_SUCCESS,\n workInfo: workInfo\n});\n\nexport const setWorkInformationFailure = (errorMessage: string) => ({\n type: SET_WORK_INFORMATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setApplicationFeedbackRequest = (\n applicationId: number,\n rating: number,\n notes: string\n) => ({\n type: SET_APPLICATION_FEEDBACK_REQUEST,\n applicationId: applicationId,\n rating: rating,\n notes: notes\n});\n\nexport const setApplicationFeedbackSuccess = (\n feedback: ApplicationFeedback\n) => ({\n type: SET_APPLICATION_FEEDBACK_SUCCESS,\n feedback: feedback\n});\n\nexport const setApplicationFeedbackFailure = (errorMessage: string) => ({\n type: SET_APPLICATION_FEEDBACK_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadExistingApplicationFeedbackRequest = (\n applicationId: number\n) => ({\n type: LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST,\n applicationId: applicationId\n});\n\nexport const loadExistingApplicationFeedbackSuccess = (\n feedback: ApplicationFeedback\n) => ({\n type: LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS,\n feedback: feedback\n});\n\nexport const loadExistingApplicationFeedbackFailure = (\n errorMessage: string\n) => ({\n type: LOAD_EXISTING_APPLICATION_FEEDBACK_FAILURE,\n errorMessage: errorMessage\n});\nexport const downloadCalloutReportRequest = (\n calloutId: number,\n calloutType: CalloutType\n) => ({\n type: DOWNLOAD_CALLOUT_REPORT_REQUEST,\n calloutId: calloutId,\n calloutType: calloutType\n});\n\nexport const downloadInspectionReportSuccess = (inspection: Inspection) => ({\n type: DOWNLOAD_INSPECTION_REPORT_SUCCESS,\n inspection: inspection\n});\n\nexport const downloadDefectReportSuccess = (defect: Defect) => ({\n type: DOWNLOAD_DEFECT_REPORT_SUCCESS,\n defect: defect\n});\n\nexport const downloadCalloutReportFailure = (errorMessage: string) => ({\n type: DOWNLOAD_CALLOUT_REPORT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setParticipantRequest = (\n participant: AddParticipant,\n carId: number,\n rcaId: number,\n reference?: string\n) => ({\n type: SET_PARTICIPANT_REQUEST,\n participant: participant,\n carId: carId,\n rcaId: rcaId,\n reference: reference\n});\n\nexport const setParticipantSuccess = (participant: Participant) => ({\n type: SET_PARTICIPANT_SUCCESS,\n participant: participant\n});\n\nexport const setParticipantFailure = (errorMessage: string) => ({\n type: SET_PARTICIPANT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setNotifyWorkStatusRequest = (\n applicationId: number,\n newDate: Date,\n isStart: boolean,\n reference?: string,\n offset?: number\n) => ({\n type: SET_NOTIFY_WORK_STATUS_REQUEST,\n applicationId: applicationId,\n newDate: newDate,\n isStart: isStart,\n reference: reference,\n offset: offset\n});\n\nexport const setNotifyWorkStartSuccess = (\n updatedInfo: NotifyWorkStartResponse\n) => ({\n type: SET_NOTIFY_WORK_START_SUCCESS,\n updatedInfo: updatedInfo\n});\n\nexport const setNotifyWorkCompletionSuccess = (\n updatedInfo: NotifyWorkCompletionResponse\n) => ({\n type: SET_NOTIFY_WORK_COMPLETION_SUCCESS,\n updatedInfo: updatedInfo\n});\n\nexport const setNotifyWorkStatusFailure = (errorMessage: string) => ({\n type: SET_NOTIFY_WORK_STATUS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const replaceParticipantRequest = (\n participant: ReplaceParticipant,\n carId: number,\n rcaId: number\n) => ({\n type: REPLACE_PARTICIPANT_REQUEST,\n participant: participant,\n carId: carId,\n rcaId: rcaId\n});\n\nexport const replaceParticipantSuccess = (\n participantResponse: ReplaceParticipantResponse\n) => ({\n type: REPLACE_PARTICIPANT_SUCCESS,\n participantResponse: participantResponse\n});\n\nexport const replaceParticipantFailure = (errorMessage: string) => ({\n type: REPLACE_PARTICIPANT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadAuditLogsRequest = (\n applicationId: number,\n sourceField: string\n) => ({\n type: LOAD_AUDIT_LOGS_REQUEST,\n applicationId: applicationId,\n sourceField: sourceField\n});\n\nexport const loadAuditLogsSuccess = (auditLog: AuditHistoryResponse) => ({\n type: LOAD_AUDIT_LOGS_SUCCESS,\n auditLog: auditLog\n});\n\nexport const loadAuditLogsFailure = (errorMessage: string) => ({\n type: LOAD_AUDIT_LOGS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetAuditLogs = () => ({ type: RESET_AUDIT_LOGS });\n\nexport const removeParticipantRequest = (participantLinkId: number) => ({\n type: REMOVE_PARTICIPANT_REQUEST,\n participantLinkId: participantLinkId\n});\n\nexport const removeParticipantSuccess = (participantLinkId: number) => ({\n type: REMOVE_PARTICIPANT_SUCCESS,\n participantLinkId: participantLinkId\n});\n\nexport const removeParticipantFailure = (errorMessage: string) => ({\n type: REMOVE_PARTICIPANT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setLocationRequest = (\n locationInfo: LocationInformationModel,\n applicationId: number\n) => ({\n type: SET_LOCATION_REQUEST,\n locationInfo: locationInfo,\n applicationId: applicationId\n});\n\nexport const setLocationSuccess = (locationInfo: LocationInformationModel) => ({\n type: SET_LOCATION_SUCCESS,\n locationInfo: locationInfo\n});\n\nexport const setLocationFailure = (errorMessage: string) => ({\n type: SET_LOCATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const deleteAttachmentRequest = (attachmentReference: string) => ({\n type: DELETE_ATTACHMENT_REQUEST,\n attachmentReference: attachmentReference\n});\n\nexport const deleteAttachmentSuccess = (attachmentReference: string) => ({\n type: DELETE_ATTACHMENT_SUCCESS,\n attachmentReference: attachmentReference\n});\n\nexport const deleteAttachmentFailure = (errorMessage: string) => ({\n type: DELETE_ATTACHMENT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const cancelApplicationRequest = (applicationId: number) => ({\n type: CANCEL_APPLICATION_REQUEST,\n applicationId: applicationId\n});\n\nexport const cancelApplicationSuccess = () => ({\n type: CANCEL_APPLICATION_SUCCESS\n});\n\nexport const cancelApplicationFailure = (errorMessage: string) => ({\n type: CANCEL_APPLICATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setMaintenanceCompletionRequest = (\n model: MaintenanceCompletionRequest\n) => ({\n type: SET_MAINTENANCE_COMPLETION_REQUEST,\n model: model\n});\n\nexport const setMaintenanceCompletionSuccess = (\n model: MaintenanceCompletionResponse\n) => ({\n type: SET_MAINTENANCE_COMPLETION_SUCCESS,\n model: model\n});\n\nexport const setMaintenanceCompletionFailure = (errorMessage: string) => ({\n type: SET_MAINTENANCE_COMPLETION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const declineApplicationParticipantRequest = (code: string) => ({\n type: DECLINE_APPLICATION_PARTICIPANT_REQUEST,\n code: code\n});\n\nexport const declineApplicationParticipantSuccess = (\n participantDeclined: boolean\n) => ({\n type: DECLINE_APPLICATION_PARTICIPANT_SUCCESS,\n participantDeclined: participantDeclined\n});\n\nexport const declineApplicationParticipantFailure = (errorMessage: string) => ({\n type: DECLINE_APPLICATION_PARTICIPANT_FAILURE,\n errorMessage: errorMessage\n});\n","import React, { ComponentType } from \"react\";\nimport { Route, Redirect, RouteProps } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { AppState } from \"store/types\";\n\ntype TAuthenticationProps = {\n isAuthenticated: boolean;\n};\n\nconst ProtectedRoute = ({\n component: Comp,\n isAuthenticated,\n ...rest\n}: RouteProps & TAuthenticationProps & { component: ComponentType }) => (\n \n isAuthenticated ? : \n }\n />\n);\n\nconst mapStateToProps = (state: AppState): TAuthenticationProps => {\n return { isAuthenticated: state.auth.isLoggedIn };\n};\n\nexport default connect(mapStateToProps)(ProtectedRoute);\n","import {\n createStyles,\n Grid,\n makeStyles,\n Theme,\n Typography,\n useMediaQuery,\n useTheme\n} from \"@material-ui/core\";\nimport React from \"react\";\nimport { SubmiticaGreen } from \"styles/colours\";\n\ntype SubmiticaOutageProps = {\n outageMessage: string;\n};\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n outageContainer: {\n backgroundColor: SubmiticaGreen,\n height: \"100vh\"\n },\n outageDiv: {\n padding: \"30px\",\n alignItems: \"center\",\n display: \"flex\"\n }\n })\n);\n\nconst SubmiticaOutage = (props: SubmiticaOutageProps) => {\n const isScreenSmall = useMediaQuery(useTheme().breakpoints.down(\"sm\"));\n\n const classes = useStyles();\n\n return (\n \n \n \n \n Sorry\n \n \n {props.outageMessage}\n \n \n \n \n );\n};\n\nexport default SubmiticaOutage;\n","import React, { Suspense } from \"react\";\nimport { Router } from \"react-router-dom\";\nimport * as history from \"history\";\nimport ProtectedRoute from \"components/ProtectedRoute\";\nimport Loader from \"components/Loader\";\nimport authentication from \"components/react-azure-b2c\";\nimport { AppState, OutageModel } from \"store/types\";\nimport { Dispatch } from \"redux\";\nimport { connect } from \"react-redux\";\nimport SubmiticaOutage from \"containers/OutagePage\";\n\nconst Application = React.lazy(() => import(\"containers/Application\"));\n\ntype RoutesProps = ReturnType &\n ReturnType & {\n outageModel?: OutageModel;\n };\n\nconst ApplicationLoader = () => (\n }>\n \n \n);\n\nconst Routes = (props: RoutesProps) => {\n const allowBypass =\n window.location.pathname.toLowerCase().indexOf(\"response\") > -1;\n\n return (\n <>\n {props.outageModel && props.outageModel!.isSubmiticaOffline && (\n \n )}\n\n {!props.outageModel && (\n \n \n \n )}\n \n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n isLoggedIn: state.auth.isAuthenticated\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch) => {\n return {};\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Routes);\n","import { Provider } from \"react-redux\";\nimport React from \"react\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport store from \"store\";\n\ntype ProviderWrapperProps = {\n children: JSX.Element;\n store: typeof store;\n};\n\nconst ProviderWrapper = (props: ProviderWrapperProps) => (\n \n \n {props.children}\n \n);\n\nexport default ProviderWrapper;\n","export default __webpack_public_path__ + \"static/media/apple_share_icon.15c3839a.png\";","import React, { useState } from \"react\";\nimport moment from \"moment\";\nimport {\n Dialog,\n DialogTitle,\n IconButton,\n Typography,\n DialogContent\n} from \"@material-ui/core\";\nimport SubmiticaTooltip from \"./SubmiticaTooltip\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SubmiticaLogo from \"assets/img/submitica-s.png\";\nimport AppleShareIcon from \"assets/img/apple_share_icon.png\";\nimport Spacer from \"./Spacer\";\n\nconst isIos = () => {\n const userAgent = window.navigator.userAgent.toLowerCase();\n return /iphone|ipad|ipod/.test(userAgent);\n};\n\nconst isInStandaloneMode = () => {\n return window.matchMedia(\"(display-mode: standalone)\").matches;\n};\n\nconst hasVisitedPreviously = () => {\n return localStorage.getItem(\"lastVisit\") !== null;\n};\n\nconst showModalBasedOnDate = () => {\n if (hasVisitedPreviously()) {\n // get last visit\n const prevVisit = localStorage.getItem(\"lastVisit\");\n // set now as last visit\n localStorage.setItem(\"lastVisit\", moment().toISOString());\n //compare if it is now a day later to last visit\n return moment().isAfter(moment(prevVisit!), \"day\");\n } else {\n localStorage.setItem(\"lastVisit\", moment().toISOString());\n return true;\n }\n};\n\nconst AddToHomescreen = () => {\n const [isOpen, setIsOpen] = useState(\n isIos() && !isInStandaloneMode() && showModalBasedOnDate()\n ); // put logic for viewing in here\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n return (\n \n \n
\n \n
\n
\n \n \n \n \n \n
\n \n \n Install Submitica\n \n
\n \n \n Install this application on your home screen for quick and easy acess\n on mobile\n \n\n \n\n \n Tap{\" \"}\n {\" \"}\n then 'Add to Home Screen' to get started.\n \n \n
\n );\n};\n\nexport default AddToHomescreen;\n","import React from \"react\";\nimport Routes from \"./routes\";\nimport store from \"store\";\nimport ProviderWrapper from \"./ProviderWrapper\";\nimport AddToHomescreen from \"components/AddToHomescreen\";\nimport { OutageModel } from \"store/types\";\n\ntype AppProps = {\n outageModel?: OutageModel;\n};\n\nconst App = (props: AppProps) => {\n return (\n \n <>\n \n \n \n \n );\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport b2cauth from \"components/react-azure-b2c\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { ADMINISTRATION_ENDPOINT } from \"common/endpoints\";\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.register();\n\naxios.get(`${API_ROUTE}${ADMINISTRATION_ENDPOINT}/getPreAuth`).then(x => {\n const data = x.data.adB2CInformation;\n const isSubmiticaDown = x.data.isSubmiticaDown;\n\n if (!isSubmiticaDown) {\n b2cauth.initialize({\n instance: data.instance,\n tenant: data.domain,\n signInPolicy: data.signUpSignInPolicyId,\n resetPolicy: data.resetPasswordPolicyId,\n clientId: data.clientId,\n cacheLocation: \"localStorage\",\n scopes: [\n `https://${data.domain}/api/read`,\n `https://${data.domain}/api/write`\n ],\n postLogoutRedirectUri: window.location.origin,\n redirectUri: window.location.origin,\n tenantName: data.tenant\n });\n }\n\n ReactDOM.render(\n isSubmiticaDown ? (\n \n ) : (\n \n ),\n document.getElementById(\"root\")\n );\n});\n","import { Action } from \"redux\";\nimport { ErrorPayload } from \"store/error/types\";\nimport { SummariesViewMode } from \"store/preferences/types\";\nimport {\n FilterPreferences,\n Feature,\n BoundingBox,\n SortModel\n} from \"store/types\";\n\n/* saga action names start */\nexport const LOAD_APPLICATIONS_SUMMARY_REQUEST =\n \"LOAD_APPLICATIONS_SUMMARY_REQUEST\";\nexport const LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA =\n \"LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA\";\nexport const LOAD_APPLICATIONS_SUMMARY_SUCCESS =\n \"LOAD_APPLICATIONS_SUMMARY_SUCCESS\";\nexport const LOAD_APPLICATIONS_SUMMARY_FAILURE =\n \"LOAD_APPLICATIONS_SUMMARY_FAILURE\";\n\nexport const LOAD_MAP_APPLICATIONS_SUMMARY_REQUEST =\n \"LOAD_MAP_APPLICATIONS_SUMMARY_REQUEST\";\nexport const LOAD_MAP_APPLICATIONS_SUMMARY_SUCCESS =\n \"LOAD_MAP_APPLICATIONS_SUMMARY_SUCCESS\";\n\nexport const LOAD_RCA_LOGOS_REQUEST = \"LOAD_RCA_LOGOS_REQUEST\";\nexport const LOAD_RCA_LOGOS_SUCCESS = \"LOAD_RCA_LOGOS_SUCCESS\";\n\nexport const LOAD_RCA_BOUNDARIES_REQUEST = \"LOAD_RCA_BOUDARIES_REQUEST\";\nexport const LOAD_RCA_BOUNDARIES_SUCCESS = \"LOAD_RCA_BOUNDARIES_SUCCESS\";\n\nexport const RESET_APPLICATIONS_SUMMARY = \"RESET_APPLICATIONS_SUMMARY\";\n\nexport const LOAD_APPLICATION_EXPORT_COLUMNS_REQUEST =\n \"LOAD_APPLICATION_EXPORT_COLUMNS_REQUEST\";\nexport const LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS =\n \"LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS\";\nexport const LOAD_APPLICATION_EXPORT_COLUMNS_FAILURE =\n \"LOAD_APPLICATION_EXPORT_COLUMNS_FAILURE\";\n\nexport const GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST =\n \"GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST\";\nexport const GENERATE_APPLICATION_GRID_LIST_EXPORT_SUCCESS =\n \"GENERATE_APPLICATION_GRID_LIST_EXPORT_SUCCESS\";\nexport const GENERATE_APPLICATION_GRID_LIST_EXPORT_FAILURE =\n \"GENERATE_APPLICATION_GRID_LIST_EXPORT_FAILURE\";\n/* saga action names end */\n\n/* redux action names start */\n/* redux action names end */\n\nexport type ApplicationsSummaryFilter = {\n filterPreferences?: FilterPreferences;\n skip: number;\n bounds?: BoundingBox;\n sorting?: SortModel[];\n loadCount?: boolean;\n viewMode: SummariesViewMode;\n};\n\nexport type LoadApplicationsSummaryRequestAction = Action<\n typeof LOAD_APPLICATIONS_SUMMARY_REQUEST\n> & {\n applicationsSummaryOptions: ApplicationsSummaryFilter;\n};\n\nexport type LoadApplicationsSummaryRequestExtraAction = Action<\n typeof LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA\n> & {\n applicationsSummaryOptions: ApplicationsSummaryFilter;\n};\n\ntype LoadApplicationsSummarySuccessAction = Action<\n typeof LOAD_APPLICATIONS_SUMMARY_SUCCESS\n> & {\n receivedData: ApplicationSummary[];\n totalCount: number;\n isMapView: boolean;\n};\n\ntype LoadApplicationsSummaryFailureAction = Action<\n typeof LOAD_APPLICATIONS_SUMMARY_FAILURE\n> &\n ErrorPayload;\n\nexport type LoadMapApplicationsSummaryRequestAction = Action<\n typeof LOAD_MAP_APPLICATIONS_SUMMARY_REQUEST\n> & {\n applicationsSummaryOptions: ApplicationsSummaryFilter;\n //bounds will go here\n};\n\ntype LoadMapApplicationsSummarySuccessAction = Action<\n typeof LOAD_MAP_APPLICATIONS_SUMMARY_SUCCESS\n> & {\n receivedData: ApplicationSummary[];\n totalCount: number;\n};\n\ntype ResetApplicationsSummaryAction = Action;\n\nexport type LoadRcaLogosRequest = Action & {\n rcaIds: number[];\n};\n\ntype LoadRcaLogosSuccess = Action & {\n rcaLogos: RcaLogo[];\n};\n\nexport type LoadRcaBoundariesRequestAction = Action<\n typeof LOAD_RCA_BOUNDARIES_REQUEST\n> & {\n rcaIds: number[];\n};\n\ntype LoadRcaBoundariesSuccessAction = Action<\n typeof LOAD_RCA_BOUNDARIES_SUCCESS\n> & {\n rcaBoundaries: RcaBoundary[];\n};\n\ntype LoadApplicationExportColumnsSuccessAction = Action<\n typeof LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS\n> & {\n applicationExportColumns: ApplicationExportColumn[];\n};\n\nexport type GenerateApplicationGridListExportRequestAction = Action<\n typeof GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST\n> & {\n filters: ApplicationsSummaryFilter;\n applicationExportColumns: ApplicationExportColumn[];\n};\n\nexport type ApplicationsSummaryActionTypes =\n | LoadApplicationsSummaryRequestAction\n | LoadApplicationsSummarySuccessAction\n | LoadApplicationsSummaryFailureAction\n | LoadApplicationsSummaryRequestExtraAction\n | LoadMapApplicationsSummaryRequestAction\n | LoadMapApplicationsSummarySuccessAction\n | ResetApplicationsSummaryAction\n | LoadRcaLogosSuccess\n | LoadRcaBoundariesSuccessAction\n | LoadApplicationExportColumnsSuccessAction;\n\nexport type ApplicationSummary = {\n carId: number;\n carNumber: string;\n carType: string;\n streetNumber?: string;\n streetName: string;\n suburb: string;\n townCity: string;\n postcode: string;\n\n dateSubmitted: Date;\n estimatedCompletionDate: Date;\n estimatedStartDate: Date;\n\n applicantPrimaryContact: string;\n principalPrimaryContact: string;\n\n workType: string;\n applicantRole: string;\n activities: string;\n isRoadClosureRequired: boolean;\n\n carStatus: string;\n\n utilityOperator: string;\n utilityRefNumber: string;\n\n shapes: string;\n features: Feature[];\n isOverdueOrExpired: boolean;\n\n rcaOrganisationId: number;\n};\n\nexport type ApplicationsSummaryState = {\n applicationsSummaryData: ApplicationSummary[];\n totalSummaries: number;\n rcaLogos: RcaLogo[];\n rcaBoundaries: RcaBoundary[];\n applicationExportColumns: ApplicationExportColumn[];\n};\n\nexport type ApplicationsSummaryReceivedPayload = {\n receivedData: ApplicationSummary[];\n totalCount: number;\n isMapView: boolean;\n};\n\nexport type RcaLogo = {\n rcaOrganisationId: number;\n imageBlob?: string;\n};\n\nexport type RcaBoundary = {\n rcaOrganisationId: number;\n rcaBoundaryFeatures: Feature[];\n rcaBoundaryShape: string;\n};\n\nexport type ApplicationExportColumn = {\n isChecked: boolean;\n columnName: string;\n description: string;\n};\n\nexport type ApplicationsFilterRequest = {\n searchTerm?: string;\n rcaIds?: number[];\n dateFrom?: Date;\n dateTo?: Date;\n carStepIds?: number[];\n carStatusIds?: number[];\n carTypeIds?: number[];\n applicantRoleIds?: number[];\n userIds?: number[];\n bounds?: BoundingBox;\n quickFilterId?: number;\n skip: number;\n take: number;\n sorting?: SortModel[];\n loadCount: boolean;\n viewMode: SummariesViewMode;\n};\n","import {\n NewApplication,\n RESET_CREATE_APPLICATION,\n SET_CREATE_APPLICATION_NEXT_STEP,\n SET_CREATE_APPLICATION_WHAT_DATA,\n SET_CREATE_APPLICATION_WHEN_DATA,\n SET_CREATE_APPLICATION_WHERE_DATA,\n SET_CREATE_APPLICATION_TRAFFIC_DATA,\n WhereData,\n WhatData,\n TrafficData,\n SET_CREATE_APPLICATION_WHO_DATA,\n WhoData,\n WhenData,\n SET_CREATE_APPLICATION_EXTRA_DATA,\n ExtraData,\n SET_CREATE_APPLICATION_SETUP_DATA,\n SetupData,\n UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS,\n UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE,\n TemporaryAttachment,\n DELETE_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE,\n DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS,\n DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n RESET_APPLICATION_TYPE_DEPENDENT_DATA,\n SUBMIT_APPLICATION_REQUEST,\n SUBMIT_APPLICATION_SUCCESS,\n SUBMIT_APPLICATION_FAILURE,\n LOAD_APPLICATION_SETTINGS_DATA_REQUEST,\n LOAD_APPLICATION_SETTINGS_DATA_FAILURE,\n ApplicationSettingsData,\n LOAD_APPLICATION_SETTINGS_DATA_SUCCESS,\n LOAD_BILLING_ITEMS_PREVIEW_REQUEST,\n BillingPreviewRequestModel,\n RcaBillableItemGroupingModel,\n LOAD_BILLING_ITEMS_PREVIEW_SUCCESS,\n LOAD_BILLING_ITEMS_PREVIEW_FAILURE,\n LOAD_RCA_IDS_FROM_SHAPES_REQUEST,\n LOAD_RCA_IDS_FROM_SHAPES_SUCCESS,\n LOAD_RCA_IDS_FROM_SHAPES_FAILURE,\n RcaApplicationModel,\n RESET_STORE_FORCE_RCA_SELECTION,\n LOAD_RCA_OPTION_FROM_ID_REQUEST,\n LOAD_RCA_OPTION_FROM_ID_SUCCESS,\n LOAD_RCA_OPTION_FROM_ID_FAILURE,\n LOAD_PRIMARY_APPLICANT_INFO_REQUEST,\n LOAD_PRIMARY_APPLICANT_INFO_SUCCESS,\n LOAD_PRIMARY_APPLICANT_INFO_FAILURE,\n DUPLICATE_APPLICATION,\n RESET_DUPLICATING_STATUS,\n SET_TEMPORARY_SAVED_APPLICATION_REQUEST,\n CHECK_REGISTERED_ORGANISATION_REQUEST,\n CHECK_REGISTERED_ORGANISATION_SUCCESS,\n CHECK_REGISTERED_ORGANISATION_FAILURE,\n LOAD_SAVED_APPLICATION_LIST_REQUEST,\n LOAD_SAVED_APPLICATION_LIST_SUCCESS,\n LOAD_SAVED_APPLICATION_LIST_FAILURE,\n DELETE_SAVED_APPLICATION_REQUEST,\n DELETE_SAVED_APPLICATION_SUCCESS,\n DELETE_SAVED_APPLICATION_FAILURE,\n LOAD_SAVED_APPLICATION_REQUEST,\n LOAD_SAVED_APPLICATION_SUCCESS,\n LOAD_SAVED_APPLICATION_FAILURE,\n TemporaryDisplaySavedApplication,\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS,\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST,\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_FAILURE,\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET,\n RESET_HAS_REQUEST_FAILURE,\n ApplicationList,\n OrganisationRegisters,\n GET_DEFAULT_BILLPAYER_REQUEST,\n GET_DEFAULT_BILLPAYER_SUCCESS\n} from \"./types\";\nimport { Lookup, Feature } from \"store/types\";\nimport { Guid } from \"guid-typescript\";\nimport { TTMSite } from \"store/trafficManagement/types\";\nimport { ApplicationDetail } from \"store/applicationDetail/types\";\n\nexport const submitApplicationRequest = (\n newApplication: NewApplication,\n ttmSites: TTMSite[]\n) => ({\n type: SUBMIT_APPLICATION_REQUEST,\n newApplication: newApplication,\n ttmSites: ttmSites\n});\n\nexport const submitApplicationSuccess = (\n applicationList: ApplicationList[],\n hasRequestFailure: boolean\n) => ({\n type: SUBMIT_APPLICATION_SUCCESS,\n applicationList: applicationList,\n hasRequestFailure: hasRequestFailure\n});\n\nexport const submitApplicationFailure = (errorMessage: string) => ({\n type: SUBMIT_APPLICATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const uploadTemporaryFileRequest = (\n applicationId: Guid,\n attachments: TemporaryAttachment[]\n) => ({\n type: UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n applicationId: applicationId,\n attachments: attachments\n});\n\nexport const uploadTemporaryFileSuccess = (fileIdentifiers: Guid[]) => ({\n type: UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS,\n fileIdentifiers: fileIdentifiers\n});\n\nexport const uploadTemporaryFileFailure = (errorMessage: string) => ({\n type: UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const deleteTemporaryFileRequest = (\n applicationId: Guid,\n attachmentDetails: TemporaryAttachment\n) => ({\n type: DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n applicationId: applicationId,\n attachmentDetails: attachmentDetails\n});\n\nexport const deleteTemporaryFileSuccess = (fileIdentifier: Guid) => ({\n type: DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS,\n fileIdentifier: fileIdentifier\n});\n\nexport const deleteTemporaryFileFailure = (errorMessage: string) => ({\n type: DELETE_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetCreateApplication = () => ({\n type: RESET_CREATE_APPLICATION\n});\n\nexport const setCreateApplicationMaxStep = () => ({\n type: SET_CREATE_APPLICATION_NEXT_STEP\n});\n\nexport const setCreateApplicationSetupData = (setupData: SetupData) => ({\n type: SET_CREATE_APPLICATION_SETUP_DATA,\n setupData: setupData\n});\n\nexport const setCreateApplicationWhatData = (whatData: WhatData) => ({\n type: SET_CREATE_APPLICATION_WHAT_DATA,\n whatData: whatData\n});\n\nexport const setCreateApplicationWhereData = (whereData: WhereData) => ({\n type: SET_CREATE_APPLICATION_WHERE_DATA,\n whereData: whereData\n});\n\nexport const setCreateApplicationTrafficData = (trafficData: TrafficData) => ({\n type: SET_CREATE_APPLICATION_TRAFFIC_DATA,\n trafficData: trafficData\n});\n\nexport const setCreateApplicationWhenData = (whenData: WhenData) => ({\n type: SET_CREATE_APPLICATION_WHEN_DATA,\n whenData: whenData\n});\n\nexport const setCreateApplicationWhoData = (whoData: WhoData) => ({\n type: SET_CREATE_APPLICATION_WHO_DATA,\n whoData: whoData\n});\n\nexport const setCreateApplicationExtraData = (extraData: ExtraData) => ({\n type: SET_CREATE_APPLICATION_EXTRA_DATA,\n extraData: extraData\n});\n\nexport const resetApplicationDependentData = () => ({\n type: RESET_APPLICATION_TYPE_DEPENDENT_DATA\n});\n\nexport const loadApplicationSettingsDataRequest = (rcaIds: number[]) => ({\n type: LOAD_APPLICATION_SETTINGS_DATA_REQUEST,\n rcaIds: rcaIds\n});\n\nexport const loadApplicationSettingsDataFailure = (errorMessage: string) => ({\n type: LOAD_APPLICATION_SETTINGS_DATA_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadApplicationSettingsDataSuccess = (\n applicationSettings: ApplicationSettingsData\n) => ({\n type: LOAD_APPLICATION_SETTINGS_DATA_SUCCESS,\n applicationSettings: applicationSettings\n});\n\nexport const loadSiblingApplicationSettingsRequest = (rcaIds: number[]) => ({\n type: LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST,\n rcaIds: rcaIds\n});\n\nexport const loadSiblingApplicationSettingsFailure = (\n errorMessage: string\n) => ({\n type: LOAD_SIBLING_APPLICATION_SETTINGS_DATA_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadSiblingApplicationSettingsDataSuccess = (\n siblingApplicationSettings: ApplicationSettingsData\n) => ({\n type: LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS,\n siblingApplicationSettings: siblingApplicationSettings\n});\n\nexport const loadSiblingApplicationSettingsDataReset = () => ({\n type: LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET\n});\n\nexport const loadBillingItemPreviewRequest = (\n billingPreviewRequestModel: BillingPreviewRequestModel\n) => ({\n type: LOAD_BILLING_ITEMS_PREVIEW_REQUEST,\n billingPreviewRequest: billingPreviewRequestModel\n});\n\nexport const loadBillingItemPreviewSuccess = (\n data: RcaBillableItemGroupingModel[]\n) => ({\n type: LOAD_BILLING_ITEMS_PREVIEW_SUCCESS,\n data: data\n});\n\nexport const loadBillingItemPreviewFailure = (errorMessage: string) => ({\n type: LOAD_BILLING_ITEMS_PREVIEW_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadRcaIdsFromShapesRequest = (shapes: Feature[]) => ({\n type: LOAD_RCA_IDS_FROM_SHAPES_REQUEST,\n shapes: shapes\n});\n\nexport const loadRcaIdsFromShapesSuccess = (\n rcaOptions: RcaApplicationModel[]\n) => ({\n type: LOAD_RCA_IDS_FROM_SHAPES_SUCCESS,\n rcaOptions: rcaOptions\n});\n\nexport const loadRcaIdsFromShapesFailure = (errorMessage: string) => ({\n type: LOAD_RCA_IDS_FROM_SHAPES_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetForceRcaSelection = () => ({\n type: RESET_STORE_FORCE_RCA_SELECTION\n});\n\nexport const loadRcaOptionFromIdRequest = (rcaId: number) => ({\n type: LOAD_RCA_OPTION_FROM_ID_REQUEST,\n rcaId: rcaId\n});\n\nexport const loadRcaOptionsFromIdSuccess = (\n rcaOption: RcaApplicationModel\n) => ({\n type: LOAD_RCA_OPTION_FROM_ID_SUCCESS,\n rcaOption: rcaOption\n});\n\nexport const loadRcaOptionsFromIdFailure = (errorMessage: string) => ({\n type: LOAD_RCA_OPTION_FROM_ID_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadPrimaryApplicantInfoRequest = (\n userId: number,\n rcaIds?: number[]\n) => ({\n type: LOAD_PRIMARY_APPLICANT_INFO_REQUEST,\n userId: userId,\n rcaIds: rcaIds\n});\n\nexport const loadPrimaryApplicantInfoSuccess = (\n billPayer: Lookup,\n organisation: Lookup\n) => ({\n type: LOAD_PRIMARY_APPLICANT_INFO_SUCCESS,\n billPayer: billPayer,\n organisation: organisation\n});\n\nexport const loadPrimaryApplicantInfoFailure = (errorMessage: string) => ({\n type: LOAD_PRIMARY_APPLICANT_INFO_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const duplicateApplication = (applicationData: ApplicationDetail) => ({\n type: DUPLICATE_APPLICATION,\n applicationData: applicationData\n});\n\nexport const resetDuplicatingStatusAction = () => ({\n type: RESET_DUPLICATING_STATUS\n});\n\nexport const setTemporarySavedApplicationRequest = (\n newApplication: NewApplication,\n ttmSites: TTMSite[]\n) => ({\n type: SET_TEMPORARY_SAVED_APPLICATION_REQUEST,\n newApplication: newApplication,\n ttmSites: ttmSites\n});\n\nexport const checkRegisteredOrganisationRequest = (\n organisationId: number,\n rcaIds: number[]\n) => ({\n type: CHECK_REGISTERED_ORGANISATION_REQUEST,\n organisationId: organisationId,\n rcaIds: rcaIds\n});\n\nexport const checkRegisteredOrganisationSuccess = (\n organisationRegisters: OrganisationRegisters\n) => ({\n type: CHECK_REGISTERED_ORGANISATION_SUCCESS,\n organisationRegisters: organisationRegisters\n});\n\nexport const checkRegisteredOrganisationFailure = (errorMessage: string) => ({\n type: CHECK_REGISTERED_ORGANISATION_FAILURE,\n errorMessage: errorMessage\n});\nexport const loadSavedApplicationsRequest = () => ({\n type: LOAD_SAVED_APPLICATION_LIST_REQUEST\n});\n\nexport const loadSavedApplicationsSuccess = (\n savedApplications: TemporaryDisplaySavedApplication[]\n) => ({\n type: LOAD_SAVED_APPLICATION_LIST_SUCCESS,\n savedApplications: savedApplications\n});\n\nexport const loadSavedApplicationsFailure = (errorMessage: string) => ({\n type: LOAD_SAVED_APPLICATION_LIST_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const deleteSavedApplicationRequest = (id: Guid) => ({\n type: DELETE_SAVED_APPLICATION_REQUEST,\n id: id\n});\n\nexport const deleteSavedApplicationSuccess = (id: Guid) => ({\n type: DELETE_SAVED_APPLICATION_SUCCESS,\n id: id\n});\n\nexport const deleteSavedApplicationFailure = (errorMessage: string) => ({\n type: DELETE_SAVED_APPLICATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadSavedApplicationRequest = (id: Guid) => ({\n type: LOAD_SAVED_APPLICATION_REQUEST,\n id: id\n});\n\nexport const loadSavedApplicationSuccess = (\n newApplication: NewApplication\n) => ({\n type: LOAD_SAVED_APPLICATION_SUCCESS,\n newApplication: newApplication\n});\n\nexport const loadSavedApplicationFailure = (errorMessage: string) => ({\n type: LOAD_SAVED_APPLICATION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetHasRequestFailure = () => ({\n type: RESET_HAS_REQUEST_FAILURE\n});\n\nexport const getDefaultBillPayerRequest = (organisationId: number, rcaIds?: number[], userId?: number | null) => ({\n type: GET_DEFAULT_BILLPAYER_REQUEST,\n organisationId: organisationId,\n rcaIds: rcaIds,\n userId: userId\n});\n\nexport const getDefaultBillPayerSuccess = (billPayer: Lookup) => ({\n type: GET_DEFAULT_BILLPAYER_SUCCESS,\n billPayer: billPayer\n});\n","import { Action } from \"redux\";\nimport { DARK, LIGHT } from \"styles/themes/types\";\nimport { FilterPreferences, SortModel } from \"store/types\";\n\nexport const SETDARKTHEME = \"SETDARKTHEME\";\nexport const SETLIGHTTHEME = \"SETLIGHTTHEME\";\nexport const SETPREFERENCES = \"SETPREFERENCES\";\nexport const RESETTHEME = \"RESETTHEME\";\nexport const LOADPREFERENCES = \"LOADPREFERENCES\";\nexport const MAP_VIEW = \"MAP_VIEW\";\nexport const TABLE_VIEW = \"TABLE_VIEW\";\nexport const DETAILED_VIEW = \"DETAILED_VIEW\";\nexport const TILE_VIEW = \"TILE_VIEW\";\nexport const CHANGE_VIEW_MODE = \"CHANGE_VIEW_MODE\";\nexport const SET_COLUMN_SORTING = \"SET_COLUMN_SORTING\";\n\n// SAGA Constants START\nexport const GET_FILTER_PREFERENCE_REQUEST = \"GET_FILTER_PREFERENCE_REQUEST\";\nexport const GET_FILTER_PREFERENCE_SUCCESS = \"GET_FILTER_PREFERENCE_SUCCESS\";\nexport const GET_FILTER_PREFERENCE_FAILURE = \"GET_FILTER_PREFERENCE_FAILURE\";\n\nexport const SET_FILTER_PREFERENCE_REQUEST = \"SET_FILTER_PREFERENCE_REQUEST\";\nexport const SET_FILTER_PREFERENCE_SUCCESS = \"SET_FILTER_PREFERENCE_SUCCESS\";\nexport const SET_FILTER_PREFERENCE_FAILURE = \"SET_FILTER_PREFERENCE_FAILURE\";\n\n// SAGA Constants END\n\nexport type PreferencesState = {\n isLoading: boolean;\n theme: typeof LIGHT | typeof DARK;\n applicationsViewMode: SummariesViewMode;\n filterPreferences: FilterPreferences;\n columnSorting: SortModel[];\n};\n\ntype SetPreferencesActionType = Action & {\n preferences: PreferencesState;\n};\n\ntype ChangeViewModeActionType = Action & {\n viewMode: SummariesViewMode;\n};\n\ntype SetColumnSortingActionType = Action & {\n columnSorting: SortModel[];\n};\n\nexport type GetFilterPreferenceRequestAction = Action<\n typeof GET_FILTER_PREFERENCE_REQUEST\n> & {\n loggedInUserId: number;\n};\n\ntype GetFilterPreferenceSuccessAction = Action<\n typeof GET_FILTER_PREFERENCE_SUCCESS\n> & {\n filterPreference: FilterPreferences;\n loggedInUserId: number;\n};\n\nexport type SetFilterPreferenceRequestAction = Action<\n typeof SET_FILTER_PREFERENCE_REQUEST\n> & {\n filterPreference: FilterPreferences;\n};\n\ntype SetFilterPreferenceSuccessAction = Action<\n typeof SET_FILTER_PREFERENCE_SUCCESS\n> & {\n filterPreference: FilterPreferences;\n};\n\nexport type SummariesViewMode =\n | typeof MAP_VIEW\n | typeof TABLE_VIEW\n | typeof DETAILED_VIEW\n | typeof TILE_VIEW;\n\nexport type PreferencesStateActionTypes =\n | Action\n | Action\n | Action\n | Action\n | SetPreferencesActionType\n | ChangeViewModeActionType\n | SetColumnSortingActionType\n | GetFilterPreferenceSuccessAction\n | SetFilterPreferenceSuccessAction;\n","import { Action } from \"redux\";\nimport { Lookup, SearchModel } from \"store/types\";\nimport { ErrorPayload } from \"store/error/types\";\nimport { Endpoint } from \"common/endpoints\";\nimport { UserLinkType, UserNotificationActionTypes } from \"common/enums\";\n\n// Constants\nexport const GRANT_USER_ACCESS = \"grantUserAccess\";\nexport const REQUEST_SUPERVISOR_ACCESS = \"requestSupervisorAccess\";\nexport const REQUEST_ACCESS_TO_APPLICATION = \"requestAccessToApplication\";\n\n// for existing accounts\nexport const LOAD_USER_DETAIL_REQUEST = \"LOAD_USER_DETAIL_REQUEST\";\nexport const LOAD_USER_DETAIL_FAILURE = \"LOAD_USER_DETAIL_FAILURE\";\nexport const LOAD_USER_DETAIL_SUCCESS = \"LOAD_USER_DETAIL_SUCCESS\";\nexport const LOAD_USER_LINKS_REQUEST = \"LOAD_USER_LINKS_REQUEST\";\nexport const LOAD_USER_LINKS_FAILURE = \"LOAD_USER_LINKS_FAILURE\";\nexport const LOAD_USER_LINKS_SUCCESS = \"LOAD_USER_LINKS_SUCCESS\";\nexport const RESET_ACCOUNT_MANAGEMENT = \"RESET_ACCOUNT_MANAGEMENT\";\n\n// for user application access\nexport const SET_USER_LINK_REQUEST = \"SET_USER_LINK_REQUEST\";\nexport const SET_USER_LINK_SUCCESS = \"SET_USER_LINK_SUCCESS\";\nexport const SET_USER_LINK_FAILURE = \"SET_USER_LINK_FAILURE\";\nexport const DELETE_USER_LINK_REQUEST = \"DELETE_USER_LINK_REQUEST\";\nexport const DELETE_USER_LINK_SUCCESS = \"DELETE_USER_LINK_SUCCESS\";\nexport const DELETE_USER_LINK_FAILURE = \"DELETE_USER_LINK_FAILURE\";\n\nexport const RESET_CREATE_APPLICATION_NEW_USER_DATA =\n \"RESET_CREATE_APPLICATION_NEW_USER_DATA\";\n\n// new account\nexport const SET_USER_DETAIL_REQUEST = \"SET_USER_DETAIL_REQUEST\";\nexport const SET_USER_DETAIL_SUCCESS = \"SET_USER_DETAIL_SUCCESS\";\nexport const SET_USER_DETAIL_FAILURE = \"SET_USER_DETAIL_FAILURE\";\n\n// duplicate account management\nexport const LOAD_DUPLICATE_ACCOUNT_REQUEST = \"LOAD_DUPLICATE_ACCOUNT_REQUEST\";\nexport const LOAD_DUPLICATE_ACCOUNT_FAILURE = \"LOAD_DUPLICATE_ACCOUNT_FAILURE\";\nexport const LOAD_DUPLICATE_ACCOUNT_SUCCESS = \"LOAD_DUPLICATE_ACCOUNT_SUCCESS\";\nexport const SET_LINK_DUPLICATES_REQUEST = \"SET_LINK_DUPLICATES_REQUEST\";\nexport const SET_LINK_DUPLICATES_FAILURE = \"SET_LINK_DUPLICATES_FAILURE\";\nexport const SET_LINK_DUPLICATES_SUCCESS = \"SET_LINK_DUPLICATES_SUCCESS\";\n\n// maintaining gst\nexport const SET_GST_NUMBER_REQUEST = \"SET_GST_NUMBER_REQUEST\";\nexport const SET_GST_NUMBER_FAILURE = \"SET_GST_NUMBER_FAILURE\";\nexport const SET_GST_NUMBER_SUCCESS = \"SET_GST_NUMBER_SUCCESS\";\n\n//new organisations\nexport const LOAD_NEW_ORGANISATIONS_LOOKUP = \"neworganisations\";\nexport const LOAD_NEW_ORGANISATIONS_REQUEST = \"LOAD_NEW_ORGANISATIONS_REQUEST\";\nexport const LOAD_NEW_ORGANISATIONS_SUCCESS = \"LOAD_NEW_ORGANISATIONS_SUCCESS\";\nexport const LOAD_NEW_ORGANISATIONS_FAILURE = \"LOAD_NEW_ORGANISATIONS_FAILURE\";\nexport const RESET_NEW_ORGANISATIONS = \"RESET_NEW_ORGANISATIONS\";\nexport const RESET_AUTOFILL_ORGANISATION = \"RESET_AUTOFILL_ORGANISATION\";\n\nexport const SET_NEW_ORGANISATION_REQUEST = \"SET_NEW_ORGANISATION_REQUEST\";\nexport const SET_NEW_ORGANISATION_SUCCESS = \"SET_NEW_ORGANISATION_SUCCESS\";\nexport const SET_NEW_ORGANISATION_FAILURE = \"SET_NEW_ORGANISATION_FAILURE\";\n\nexport const LOAD_PARTICIPANT_ORGANISATION_REQUEST =\n \"LOAD_PARTICIPANT_ORGANISATION_REQUEST\";\nexport const LOAD_PARTICIPANT_ORGANISATION_SUCCESS =\n \"LOAD_PARTICIPANT_ORGANISATION_SUCCESS\";\nexport const LOAD_PARTICIPANT_ORGANISATION_FAILURE =\n \"LOAD_PARTICIPANT_ORGANISATION_FAILURE\";\n\n//notification settings\nexport const SET_NOTIFICATION_SETTINGS_REQUEST =\n \"SET_NOTIFICATION_SETTINGS_REQUEST\";\nexport const SET_NOTIFICATION_SETTINGS_SUCCESS =\n \"SET_NOTIFICATION_SETTINGS_SUCCESS\";\nexport const SET_NOTIFICATION_SETTINGS_FAILURE =\n \"SET_NOTIFICATION_SETTINGS_FAILURE\";\n\n//user notifications\nexport const LOAD_USER_NOTIFICATIONS_REQUEST =\n \"LOAD_USER_NOTIFICATIONS_REQUEST\";\nexport const LOAD_USER_NOTIFICATIONS_FAILURE =\n \"LOAD_USER_NOTIFICATIONS_FAILURE\";\nexport const LOAD_USER_NOTIFICATIONS_SUCCESS =\n \"LOAD_USER_NOTIFICATIONS_SUCCESS\";\nexport const RESET_USER_NOTIFICATIONS = \"RESET_USER_NOTIFICATIONS\";\nexport const LOAD_USER_NOTIFICATIONS_COUNT_REQUEST =\n \"LOAD_USER_NOTIFICATIONS_COUNT_REQUEST\";\nexport const LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS =\n \"LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS\";\nexport const LOAD_USER_NOTIFICATIONS_COUNT_FAILURE =\n \"LOAD_USER_NOTIFICATIONS_COUNT_FAILURE\";\nexport const SET_USER_NOTIFICATIONS_INACTIVE_REQUEST =\n \"SET_USER_NOTIFICATIONS_INACTIVE_REQUEST\";\nexport const SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS =\n \"SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS\";\nexport const SET_USER_NOTIFICATIONS_INACTIVE_FAILURE =\n \"SET_USER_NOTIFICATIONS_INACTIVE_FAILURE\";\nexport const SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST =\n \"SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST\";\nexport const SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS =\n \"SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS\";\nexport const SET_USER_NOTIFICATION_CONFIRM_DECLINE_FAILURE =\n \"SET_USER_NOTIFICATION_CONFIRM_DECLINE_FAILURE\";\n\n//user regions\nexport const SET_USER_REGIONS_REQUEST = \"SET_USER_REGIONS_REQUEST\";\nexport const SET_USER_REGIONS_SUCCESS = \"SET_USER_REGIONS_SUCCESS\";\nexport const SET_USER_REGIONS_FAILURE = \"SET_USER_REGIONS_FAILURE\";\nexport const LOAD_USER_REGIONS_REQUEST = \"LOAD_USER_REGIONS_REQUEST\";\nexport const LOAD_USER_REGIONS_SUCCESS = \"LOAD_USER_REGIONS_SUCCESS\";\nexport const LOAD_USER_REGIONS_FAILURE = \"LOAD_USER_REGIONS_FAILURE\";\n\nexport const LOAD_PERMISSION_TO_VIEW_USER_REQUEST =\n \"LOAD_PERMISSION_TO_VIEW_USER_REQUEST\";\nexport const LOAD_PERMISSION_TO_VIEW_USER_SUCCESS =\n \"LOAD_PERMISSION_TO_VIEW_USER_SUCCESS\";\nexport const LOAD_PERMISSION_TO_VIEW_USER_FAILURE =\n \"LOAD_PERMISSION_TO_VIEW_USER_FAILURE\";\n\nexport const LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST =\n \"LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST\";\nexport const LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS =\n \"LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS\";\nexport const LOAD_SCALE_OF_WORK_QUESTIONNAIRE_FAILURE =\n \"LOAD_SCALE_OF_WORK_QUESTIONNAIRE_FAILURE\";\nexport const LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET =\n \"LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET\";\n\nexport const CONFIRM_USER_LINK_REQUEST = \"CONFIRM_USER_LINK_REQUEST\";\nexport const CONFIRM_USER_LINK_FAILURE = \"CONFIRM_USER_LINK_FAILURE\";\nexport const DECLINE_USER_LINK_REQUEST = \"DECLINE_USER_LINK_REQUEST\";\nexport const DECLINE_USER_LINK_FAILURE = \"DECLINE_USER_LINK_FAILURE\";\nexport const USER_LINK_SUCCESS = \"USER_LINK_SUCCESS\";\nexport const RESET_USER_LINK_PROCESSED = \"RESET_USER_LINK_PROCESSED\";\n\n// success notification\nexport const RESET_SUCCESS_NOTIFICATION = \"RESET_SUCCESS_NOTIFICATION\";\n\n// for existing accounts\n// start {\nexport type LoadUserDetailRequestAction = Action<\n typeof LOAD_USER_DETAIL_REQUEST\n> & {\n userId: number;\n};\n\ntype LoadUserDetailFailureAction = Action &\n ErrorPayload;\n\ntype LoadUserDetailSuccessAction = Action & {\n userDetail: UserDetail;\n};\n\nexport type LoadUserLinksRequestAction = Action<\n typeof LOAD_USER_LINKS_REQUEST\n> & {\n userId: number;\n};\n\ntype LoadUserLinksFailureAction = Action &\n ErrorPayload;\n\ntype LoadUserLinksSuccessAction = Action & {\n receivedData: UserAccount;\n};\n\nexport type SetNotificationSettingsRequestAction = Action<\n typeof SET_NOTIFICATION_SETTINGS_REQUEST\n> & {\n notificationSettings: NotificationSettings;\n};\n\ntype SetNotificationSettingsSuccessAction = Action<\n typeof SET_NOTIFICATION_SETTINGS_SUCCESS\n> & {\n notificationSettings: NotificationSettings;\n};\n\ntype SetNotificationSettingsFailureAction = Action<\n typeof SET_NOTIFICATION_SETTINGS_FAILURE\n> &\n ErrorPayload;\n\nexport type LoadNotificationsRequestAction = Action<\n typeof LOAD_USER_NOTIFICATIONS_REQUEST\n> & {\n pageIndex: number;\n};\n\ntype ResetAccountManagementAction = Action;\n// } end\n\n// user application access\n// start {\nexport type SetUserLinkRequestAction = Action & {\n user: Lookup;\n actionType: UserLinkButtonActionTypes;\n userLinkType: UserLinkType;\n};\n\ntype SetUserLinkSuccessAction = Action & {\n userLink: UserLinkDetail;\n actionType: UserLinkButtonActionTypes;\n};\n\ntype SetUserLinkFailureAction = Action &\n ErrorPayload;\n\nexport type DeleteUserLinkRequestAction = Action<\n typeof DELETE_USER_LINK_REQUEST\n> & {\n userLinkId: number;\n};\n\ntype DeleteUserLinkFailureAction = Action &\n ErrorPayload;\n\ntype DeleteUserLinkSuccessAction = Action & {\n userLinkId: number;\n};\n\nexport type UserLinkButtonActionTypes =\n | typeof GRANT_USER_ACCESS\n | typeof REQUEST_SUPERVISOR_ACCESS\n | typeof REQUEST_ACCESS_TO_APPLICATION;\n\n// } end\n\n// creating new user/organisation records\n// start {\nexport type SetUserDetailRequestAction = Action<\n typeof SET_USER_DETAIL_REQUEST\n> & {\n newUserFormModel: UserDetail;\n parentId: string;\n isEditingUserAccount: boolean;\n};\n\ntype SetUserDetailFailureAction = Action &\n ErrorPayload;\n\nexport type SetUserDetailSuccessAction = Action<\n typeof SET_USER_DETAIL_SUCCESS\n> & {\n newUser: Lookup;\n parentId: string;\n isEditingUserAccount: boolean;\n userDetail?: UserDetail;\n};\n\nexport type SetNewOrganisationRequestAction = Action<\n typeof SET_NEW_ORGANISATION_REQUEST\n> & {\n newOrganisation: RegisteredOrganisationModel;\n parentId: string;\n};\n\ntype SetNewOrganisationSuccessAction = Action<\n typeof SET_NEW_ORGANISATION_SUCCESS\n> & {\n newOrg: Lookup;\n parentId: string;\n};\n\ntype SetNewOrganisationFailureAction = Action<\n typeof SET_NEW_ORGANISATION_FAILURE\n> &\n ErrorPayload;\n\ntype ResetCreateApplicationNewUserDataAction = Action<\n typeof RESET_CREATE_APPLICATION_NEW_USER_DATA\n>;\n\n// maintain gst\nexport type SetGstNumberRequestAction = Action<\n typeof SET_GST_NUMBER_REQUEST\n> & {\n gstNumber: string;\n};\n\ntype SetGstNumberFailureAction = Action &\n ErrorPayload;\n\ntype SetGstNumberSuccessAction = Action & {\n gstNumber: string;\n};\n\n// maintain user regions\nexport type SetUserRegionsRequestAction = Action<\n typeof SET_USER_REGIONS_REQUEST\n> & {\n userRegions: UserRegion[];\n};\n\ntype SetUserRegionsSuccessAction = Action & {\n userRegions: UserRegion[];\n};\n\ntype LoadUserRegionsSuccessAction = Action & {\n userRegions: UserRegion[];\n};\n\n// duplicate account management\n// start {\nexport type LoadDuplicateAccountRequestAction = Action<\n typeof LOAD_DUPLICATE_ACCOUNT_REQUEST\n>;\n\ntype LoadDuplicateAccountFailureAction = Action<\n typeof LOAD_DUPLICATE_ACCOUNT_FAILURE\n> &\n ErrorPayload;\n\ntype LoadDuplicateAccountSuccessAction = Action<\n typeof LOAD_DUPLICATE_ACCOUNT_SUCCESS\n> & { duplicateAccounts: DuplicateAccountModel[] };\n\nexport type SetLinkDuplicatesRequestAction = Action<\n typeof SET_LINK_DUPLICATES_REQUEST\n> & { selectedIds?: number[]; emailToLink?: string };\n\ntype SetLinkDuplicatesFailureAction = Action<\n typeof SET_LINK_DUPLICATES_FAILURE\n> &\n ErrorPayload;\n\ntype SetLinkDuplicatesSuccessAction = Action<\n typeof SET_LINK_DUPLICATES_SUCCESS\n> & { selectedIds?: number[]; emailToLink?: string };\n// } end\n\ntype ResetSuccessNotificationAction = Action<\n typeof RESET_SUCCESS_NOTIFICATION\n> & { key: string };\n\n// new organisations\n\nexport type LoadNewOrganisationsRequestAction = Action<\n typeof LOAD_NEW_ORGANISATIONS_REQUEST\n> & {\n endpoint: Endpoint;\n route: string;\n args?: string[] | SearchModel;\n};\n\ntype LoadNewOrganisationsSuccessAction = Action<\n typeof LOAD_NEW_ORGANISATIONS_SUCCESS\n> & {\n route: string;\n data: RegisteredOrganisationModel[];\n};\n\ntype LoadNewOrganisationsFailureAction = Action<\n typeof LOAD_NEW_ORGANISATIONS_FAILURE\n> &\n ErrorPayload;\n\nexport type LoadPermissionToViewUserRequestAction = Action<\n typeof LOAD_PERMISSION_TO_VIEW_USER_REQUEST\n> & { userId: number };\n\ntype LoadPermissionToViewUserSuccessAction = Action<\n typeof LOAD_PERMISSION_TO_VIEW_USER_SUCCESS\n> & { hasPermission: boolean };\n\ntype LoadPermissionToViewUserFailureAction = Action<\n typeof LOAD_PERMISSION_TO_VIEW_USER_FAILURE\n> &\n ErrorPayload;\n\ntype ResetNewOrganisationsAction = Action;\n\ntype ResetAutofillOrganisation = Action;\n\nexport type LoadUserOrganisationRequestAction = Action<\n typeof LOAD_PARTICIPANT_ORGANISATION_REQUEST\n> & {\n userId: number;\n};\n\ntype LoadUserOrganisationSuccessAction = Action<\n typeof LOAD_PARTICIPANT_ORGANISATION_SUCCESS\n> & {\n organisation: Lookup;\n};\n\n// user notifications\nexport type LoadUserNotificationsSuccessAction = Action<\n typeof LOAD_USER_NOTIFICATIONS_SUCCESS\n> & {\n userNotificationPagination: UserNotificationPaginationResponse;\n};\n\nexport type ResetUserNotificationsAction = Action<\n typeof RESET_USER_NOTIFICATIONS\n>;\n\ntype LoadUserNotificationsCountSuccessAction = Action<\n typeof LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS\n> & {\n notificationCount: number;\n};\n\nexport type SetUserNotificationInactiveRequestAction = Action<\n typeof SET_USER_NOTIFICATIONS_INACTIVE_REQUEST\n> & {\n request: HideNotificationRequest;\n};\n\ntype SetUserNotificationInactiveSuccessAction = Action<\n typeof SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS\n> & {\n request: HideNotificationRequest;\n};\n\nexport type SetUserNotificationConfirmRequestAction = Action<\n typeof SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST\n> & {\n notificationId: string;\n notificationActionType: UserNotificationActionTypes;\n};\n\ntype SetUserNotificationConfirmDeclineSuccessAction = Action<\n typeof SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS\n> & {\n notificationId: string;\n};\n\nexport type LoadScaleOfWorkQuestionnaireRequestAction = Action<\n typeof LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST\n> & {\n rcaId: number;\n};\n\ntype LoadScaleOfWorkQuestionnaireSuccessAction = Action<\n typeof LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS\n> & {\n questions: string[];\n};\n\ntype LoadScaleOfWorkQuestionnaireResetAction = Action<\n typeof LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET\n>;\n\nexport type ConfirmUserLinkRequestAction = Action<\n typeof CONFIRM_USER_LINK_REQUEST\n> & {\n code: string;\n};\n\nexport type DeclineUserLinkRequestAction = Action<\n typeof DECLINE_USER_LINK_REQUEST\n> & {\n code: string;\n};\n\ntype UserLinkSuccessAction = Action & {\n userLinkAction: string;\n};\n\ntype ResetUserLinkProcessedAction = Action;\n\nexport type AdministrationStateActionTypes =\n | LoadUserDetailRequestAction\n | LoadUserDetailFailureAction\n | LoadUserDetailSuccessAction\n | LoadUserLinksRequestAction\n | LoadUserLinksFailureAction\n | LoadUserLinksSuccessAction\n | ResetAccountManagementAction\n | SetUserLinkRequestAction\n | SetUserLinkSuccessAction\n | SetUserLinkFailureAction\n | SetNewOrganisationRequestAction\n | SetNewOrganisationSuccessAction\n | SetNewOrganisationFailureAction\n | ResetCreateApplicationNewUserDataAction\n | LoadDuplicateAccountRequestAction\n | LoadDuplicateAccountFailureAction\n | LoadDuplicateAccountSuccessAction\n | SetLinkDuplicatesRequestAction\n | SetLinkDuplicatesFailureAction\n | SetLinkDuplicatesSuccessAction\n | ResetSuccessNotificationAction\n | SetGstNumberRequestAction\n | SetGstNumberFailureAction\n | SetGstNumberSuccessAction\n | LoadNewOrganisationsSuccessAction\n | LoadNewOrganisationsRequestAction\n | LoadNewOrganisationsFailureAction\n | ResetNewOrganisationsAction\n | SetUserDetailRequestAction\n | SetUserDetailSuccessAction\n | SetUserDetailFailureAction\n | SetNotificationSettingsRequestAction\n | SetNotificationSettingsSuccessAction\n | SetNotificationSettingsFailureAction\n | LoadNotificationsRequestAction\n | SetUserRegionsRequestAction\n | SetUserRegionsSuccessAction\n | DeleteUserLinkRequestAction\n | DeleteUserLinkSuccessAction\n | DeleteUserLinkFailureAction\n | LoadPermissionToViewUserRequestAction\n | LoadPermissionToViewUserSuccessAction\n | LoadPermissionToViewUserFailureAction\n | LoadUserNotificationsSuccessAction\n | ResetUserNotificationsAction\n | LoadUserNotificationsCountSuccessAction\n | SetUserNotificationInactiveSuccessAction\n | SetUserNotificationConfirmDeclineSuccessAction\n | LoadScaleOfWorkQuestionnaireSuccessAction\n | LoadScaleOfWorkQuestionnaireResetAction\n | LoadUserRegionsSuccessAction\n | LoadUserOrganisationSuccessAction\n | ResetAutofillOrganisation\n | UserLinkSuccessAction\n | ResetUserLinkProcessedAction;\n\nexport type UserAccount = {\n supervisors: UserLinkDetail[];\n authorisedParents: UserLinkDetail[];\n supervisorOf: UserLinkDetail[];\n authorisedChildren: UserLinkDetail[];\n userDetail: UserDetail;\n};\n\nexport type UserLinkDetail = {\n userLinkId: number;\n linkedUserId: number;\n userName: string;\n organisationName: string;\n isConfirmed: boolean;\n userLinkTypeId: number;\n};\n\nexport type UserDetail = User & {\n userId?: number;\n mobilePhone: string;\n workPhone: string;\n fax: string;\n jobPosition: string;\n address: Lookup;\n isTrafficManagementCoordinator: boolean;\n participantCertificateType?: Lookup;\n certificationNumber?: string;\n placeOfIssue?: string;\n dateOfIssue?: Date;\n dateOfExpiry?: Date;\n userRegions?: UserRegion[];\n notificationSettings?: NotificationSettings;\n gstNumber?: string;\n profileUpdateRequired?: boolean;\n privateOrganisation?: Lookup;\n isOrganisationManager?: boolean;\n};\n\nexport type User = {\n firstName: string;\n lastName: string;\n organisation: Lookup;\n email: string;\n};\n\nexport type DuplicateAccountModel = {\n userId: number;\n displayName: string;\n email: string;\n addedOn: Date;\n addedBy: string;\n};\n\nexport type RegisteredOrganisationModel = {\n organisationTypeId?: number;\n gstNumber: string;\n state: string;\n\n nzbn: string;\n companyId: string;\n companyType: string;\n companyStatus: string;\n companyFormerName: string;\n\n organisationId: number;\n name: string;\n categoryId?: number;\n};\n\nexport type NewEntity = {\n data: Lookup;\n parentControl: string;\n};\n\nexport type UserRegion = {\n userAreaLinkId?: number;\n isDefault: boolean;\n region: Lookup;\n area: Lookup;\n};\n\nexport type NotificationSettings = {\n sendNotificationEmails: boolean;\n sendDowntimeEmails: boolean;\n notificationSummaryType: Lookup;\n organisationWhitelist: Lookup[];\n};\n\nexport type UserNotificationItem = {\n notificationId: string;\n description: string;\n canDecline: boolean;\n notificationTypeId: number;\n showDeclineButton?: boolean;\n showConfirmButton?: boolean;\n};\n\nexport type UserNotificationPaginationResponse = {\n hasPrevious: boolean;\n hasNext: boolean;\n notifications: UserNotifications[];\n}\n\nexport type UserNotifications = {\n date: Date;\n notificationItems: UserNotificationItem[];\n};\n\nexport type HideNotificationRequest = {\n notificationIds: string[];\n date: Date;\n};\n\n//This part was modified for S1 confirm/decline link backwards compatibility. commitID: 3a282eca3764b0c04ace9d3d89041299038b9cd0\nexport type AdministrationState = {\n newUserData: UserDetail;\n newOrganisations: RegisteredOrganisationModel[];\n userAccount: UserAccount;\n duplicateAccountData: DuplicateAccountModel[];\n selectedDuplicateIds: number[];\n lastAddedEntity?: NewEntity;\n hasPermissionToViewUser: boolean;\n notifications: UserNotifications[];\n notificationCount: number;\n scaleOfWorkQuestionnaire: string[];\n participantOrganisation: Lookup;\n userLinkActionResponse?: string;\n hasNext: boolean;\n hasPrevious: boolean;\n};\n","import { LatLng } from \"leaflet\";\nimport { Action } from \"redux\";\nimport { ErrorPayload } from \"store/error/types\";\nimport { BoundingBox, Feature, Lookup } from \"store/types\";\n\n/* saga action names start */\nexport const LOAD_SHAPES_REQUEST = \"LOAD_SHAPES_REQUEST\";\nexport const LOAD_SHAPES_SUCCESS = \"LOAD_SHAPES_SUCCESS\";\nexport const LOAD_SHAPES_FAILURE = \"LOAD_SHAPES_FAILURE\";\nexport const RESET_SHAPES = \"RESET_SHAPES\";\n\nexport const LOAD_APPLICATION_CLASH_REQUEST = \"LOAD_APPLICATION_CLASH_REQUEST\";\nexport const LOAD_APPLICATION_CLASH_SUCCESS = \"LOAD_APPLICATION_CLASH_SUCCESS\";\nexport const LOAD_APPLICATION_CLASH_FAILURE = \"LOAD_APPLICATION_CLASH_FAILURE\";\n\nexport const LOAD_DISPATCHES_REQUEST = \"LOAD_DISPATCHES_REQUEST\";\nexport const LOAD_DISPATCHES_SUCCESS = \"LOAD_DISPATCHES_SUCCESS\";\nexport const LOAD_DISPATCHES_FAILURE = \"LOAD_DISPATCHES_FAILURE\";\nexport const RESET_DISPATCHES_SHAPES = \"RESET_DISPATCHES_SHAPES\";\n\nexport const SET_MAP_INPUT_REQUEST = \"SET_MAP_INPUT_REQUEST\";\n/* saga action names end */\n\nexport type LoadShapesRequestAction = Action & {\n request: LoadShapesRequest;\n};\n\ntype LoadShapesSuccessAction = Action & {\n shapeDetails: ShapeDetail[];\n};\n\ntype LoadShapesFailureAction = Action &\n ErrorPayload;\n\ntype ResetShapesAction = Action;\n\nexport type LoadApplicationClashRequestAction = Action<\n typeof LOAD_APPLICATION_CLASH_REQUEST\n> & {\n applicationClashRequest: ApplicationClashRequest;\n};\n\ntype LoadApplicationClashSuccessAction = Action<\n typeof LOAD_APPLICATION_CLASH_SUCCESS\n> & {\n applicationClash: ApplicationClash;\n};\n\nexport type LoadDispatchesRequestAction = Action<\n typeof LOAD_DISPATCHES_REQUEST\n> & {\n request: LoadDispatchesRequest;\n};\n\nexport type SetMapInputRequestAction = Action & {\n mapInputData: MapInputData;\n};\n\ntype LoadDispatchesSuccessAction = Action & {\n dispatchDetails: string[];\n};\n\ntype ResetDispatchShapesAction = Action;\n\nexport type MapActionTypes =\n | LoadShapesRequestAction\n | LoadShapesSuccessAction\n | LoadShapesFailureAction\n | ResetShapesAction\n | LoadApplicationClashSuccessAction\n | LoadDispatchesSuccessAction\n | ResetDispatchShapesAction\n | SetMapInputRequestAction;\n\nexport type MapDetail = {\n carShapes: Feature[];\n dispatches?: Feature[];\n};\n\nexport type MapState = {\n mapData: MapDetail;\n hasClash?: boolean;\n mapInputData?: MapInputData;\n};\n\nexport type LoadShapesRequest = {\n startDate: Date;\n endDate: Date;\n boundingBox: BoundingBox;\n includeGlobalCars: boolean;\n};\n\nexport type LoadDispatchesRequest = {\n startDate: Date;\n endDate: Date;\n startOffset: number;\n endOffset: number;\n boundingBox: BoundingBox;\n};\n\nexport type CarInformation = {\n carShape: string;\n carNumber: string;\n carStatus: string;\n activity: string;\n applicant: string;\n workStartedDescription: string;\n workCompleteDescription: string;\n duration: number;\n estimatedStartDate: Date;\n estimatedCompletionDate: Date;\n workStart?: Date;\n workComplete?: Date;\n rcaOrganisationName: string;\n contact: string;\n utility: string;\n utilityContact: string;\n applicationType: Lookup;\n};\n\nexport type DispatchInformation = {\n id: number;\n contractId: string;\n assetType: string;\n fault: string;\n priority: string;\n status: string;\n callType: string;\n};\n\nexport type ShapeDetail = {\n carShape: string;\n carDetail: CarInformation;\n};\n\nexport type PopupDisplay = {\n carNumber: string;\n carStatus: string;\n activity: string;\n applicant: string;\n contact: string;\n utility: string;\n utilityContact: string;\n duration: string;\n startDate: string | null;\n endDate: string | null;\n rca: string;\n};\n\nexport type ApplicationClashRequest = {\n applicationShape: string;\n estimatedStartDate?: Date;\n estimatedCompletionDate?: Date;\n includeGlobalCars: boolean;\n};\n\nexport type ApplicationClash = {\n applicationShape: string;\n shapeDetails: ShapeDetail[];\n};\n\nexport type MapInputData = {\n startDate: Date;\n endDate: Date;\n includeGlobalCars: boolean;\n recentValidZoomValue: number;\n mapCenter?: LatLng;\n};\n","import { Action } from \"redux\";\n\nexport const LOGIN_USER_REQUEST = \"LOGIN_USER_REQUEST\";\nexport const LOGIN_USER_SUCCESS = \"LOGIN_USER_SUCCESS\";\nexport const LOGIN_USER_FAILURE = \"LOGIN_USER_FAILURE\";\n\nexport const LOAD_DEFAULT_REGION_REQUEST = \"LOAD_DEFAULT_REGION_REQUEST\";\nexport const LOAD_DEFAULT_REGION_SUCCESS = \"LOAD_DEFAULT_REGION_SUCCESS\";\nexport const LOAD_DEFAULT_REGION_FAILURE = \"LOAD_DEFAULT_REGION_FAILURE\";\n\nexport const LOAD_SEARCHABLE_REGION_REQUEST = \"LOAD_SEARCHABLE_REGION_REQUEST\";\nexport const LOAD_SEARCHABLE_REGION_SUCCESS = \"LOAD_SEARCHABLE_REGION_SUCCESS\";\nexport const LOAD_SEARCHABLE_REGION_FAILURE = \"LOAD_SEARCHABLE_REGION_FAILURE\";\n\nexport const LOAD_CAN_VIEW_INVOICE_REQUEST = \"LOAD_CAN_VIEW_INVOICE_REQUEST\";\nexport const LOAD_CAN_VIEW_INVOICE_SUCCESS = \"LOAD_CAN_VIEW_INVOICE_SUCCESS\";\nexport const LOAD_CAN_VIEW_INVOICE_FAILURE = \"LOAD_CAN_VIEW_INVOICE_FAILURE\";\n\nexport const UPDATE_STORE_DEFAULT_REGION = \"UPDATE_STORE_DEFAULT_REGION\";\n\nexport const RESET_STORE_SEARCHABLE_REGION = \"RESET_STORE_SEARCHABLE_REGION\";\n\nexport const SETUSER = \"SETUSER\";\nexport const REFRESHTOKEN = \"REFRESHTOKEN\";\nexport const LOGIN = \"LOGIN\";\nexport const LOGOUT = \"LOGOUT\";\n\ntype RefreshTokenAction = Action & {\n jwt: Jwt;\n};\n\nexport type LoginUserRequestAction = Action;\n\nexport type LoginUserSuccessAction = Action & {\n loginSuccessData: LoginSuccessData;\n};\n\ntype LoadDefaultRegionSuccessAction = Action<\n typeof LOAD_DEFAULT_REGION_SUCCESS\n> & {\n defaultRegion: string;\n};\n\ntype UpdateStoreDefualtRegionAction = Action<\n typeof UPDATE_STORE_DEFAULT_REGION\n> & {\n defaultRegion: string;\n};\n\ntype LoadSearchableRegionSuccessAction = Action<\n typeof LOAD_SEARCHABLE_REGION_SUCCESS\n> & {\n searchableRegion: string;\n};\n\ntype ResetStoreSearchableRegionAction = Action<\n typeof RESET_STORE_SEARCHABLE_REGION\n>;\n\ntype LoadCanViewInvoiceSuccessAction = Action<\n typeof LOAD_CAN_VIEW_INVOICE_SUCCESS\n> & {\n canViewInvoice: boolean;\n};\n\nexport type AuthStateActionTypes =\n | Action\n | RefreshTokenAction\n | LoginUserSuccessAction\n | LoadDefaultRegionSuccessAction\n | UpdateStoreDefualtRegionAction\n | LoadSearchableRegionSuccessAction\n | ResetStoreSearchableRegionAction\n | LoadCanViewInvoiceSuccessAction;\n\nexport type AuthState = {\n isLoggedIn: boolean;\n isAuthenticated: boolean;\n isLoading: boolean;\n firstName: string;\n lastName: string;\n userId: number;\n organisationId: number;\n organisationName: string;\n isOrganisationManager: boolean;\n defaultRegion?: string;\n searchableRegion?: string;\n profileUpdateRequired: boolean;\n canViewInvoice?: boolean;\n};\n\nexport type User = {\n id: number;\n username: string;\n firstName: string;\n lastName: string;\n jobTitle: string;\n};\n\nexport type Role = {\n id: number;\n description: string;\n};\n\nexport type Jwt = {\n token: string;\n expires: Date;\n isValid: boolean;\n};\n\nexport type LoginSuccessData = {\n userId: number;\n firstName: string;\n lastName: string;\n organisationId: number;\n organisationName: string;\n isOrganisationManager: boolean;\n profileUpdateRequired: boolean;\n isAuthenticated: boolean;\n};\n","/* eslint-disable @typescript-eslint/consistent-type-assertions */\nimport { DispatchDetail, Feature, JsonGeometry } from \"store/types\";\nimport { LatLngExpression, LatLngTuple } from \"leaflet\";\nimport { Guid } from \"guid-typescript\";\nimport { CarInformation } from \"store/map/types\";\n\nexport const wktToFeatures = (\n wicket: any,\n wktString: string,\n carDetail?: CarInformation\n) => {\n const features: Feature[] = [];\n\n if (wktString.startsWith(\"GEOMETRYCOLLECTION\")) {\n // GEOMETRY COLLECTIONS\n\n wktString = wktString.replace(/^(GEOMETRYCOLLECTION\\s*\\()/, \"\"); //remove \"GEOMETRYCOLLECTION(\"\n wktString = wktString.slice(0, -1); //remove ending \")\"\n\n const singleShapes = wktString.split(\"),\");\n\n singleShapes.forEach(shape => {\n // add ) if it was split off\n if (!shape.endsWith(\")\")) {\n shape = shape + \")\";\n }\n\n const feature: Feature = getSingleFeatureFromWkt(\n wicket,\n shape,\n carDetail\n );\n\n features.push(feature);\n });\n\n return features;\n } else if (wktString.startsWith(\"MULTI\")) {\n // MULTI POLYGONS/LINESTRINGS\n wicket.read(wktString);\n const geom: JsonGeometry = wicket.toJson();\n const type = geom.type.replace(/^Multi/, \"\");\n (geom.coordinates as LatLngExpression[][]).forEach(coords => {\n let geometry: JsonGeometry = {\n type: type,\n coordinates: coords\n };\n\n geometry = flipCoordinates(geometry);\n\n const newFeature: Feature = {\n type: \"Feature\",\n geometry: geometry,\n id: Guid.create(),\n carDetail: carDetail\n };\n\n features.push(newFeature);\n });\n return features;\n } else {\n // POLYGON/LINESTRING/POINT\n return [getSingleFeatureFromWkt(wicket, wktString, carDetail)];\n }\n};\n\nconst getSingleFeatureFromWkt = (\n wicket: any,\n wktString: string,\n carDetail: CarInformation | undefined\n) => {\n wicket.read(wktString);\n let geom: JsonGeometry = wicket.toJson();\n\n geom = flipCoordinates(geom);\n\n const feature: Feature = {\n type: \"Feature\",\n geometry: geom,\n id: Guid.create(),\n carDetail: carDetail\n };\n\n return feature;\n};\n\nexport const flipCoordinates = (shape: JsonGeometry) => {\n shape.coordinatesArray = (shape.coordinates).slice();\n\n if (shape.type === \"Polygon\") {\n shape.coordinates = (shape.coordinates).map(x => {\n return x.map(y => {\n return getLatLngTuple(y as LatLngTuple);\n });\n });\n } else if (shape.type === \"Point\") {\n shape.coordinates = (\n getLatLngTuple(shape.coordinates as LatLngTuple)\n );\n } else if (shape.type === \"LineString\") {\n shape.coordinates = (shape.coordinates).map(x => {\n return getLatLngTuple(x as LatLngTuple);\n });\n }\n return shape;\n};\n\nexport const getLatLngTuple = (latLng: LatLngTuple) => {\n return [latLng[1], latLng[0]];\n};\n\nexport const getDispatchFeature = (dispatch: DispatchDetail) => {\n const geometries: JsonGeometry[] = [];\n if (dispatch.geometry.type.toUpperCase().startsWith(\"MULTI\")) {\n if (dispatch.geometry.type !== \"MultiPolygon\") {\n return null;\n }\n\n (dispatch.geometry.coordinates as LatLngExpression[][]).forEach(coords => {\n const geometry: JsonGeometry = {\n type: \"Polygon\",\n coordinates: coords\n };\n geometries.push(flipCoordinates(geometry));\n });\n } else {\n const geometry: JsonGeometry = {\n type: dispatch.geometry.type,\n coordinates: dispatch.geometry.coordinates\n };\n geometries.push(flipCoordinates(geometry));\n }\n const features: Feature[] = [];\n geometries.forEach(geometry => {\n const item: Feature = {\n id: dispatch.properties.id,\n geometry: geometry,\n dispatchDetail: {\n id: dispatch.properties.dispatch_id,\n assetType: dispatch.properties.asset_type,\n status: dispatch.properties.call_status,\n callType: dispatch.properties.call_type,\n contractId: dispatch.properties.contract_id,\n fault: dispatch.properties.fault,\n priority: dispatch.properties.priority\n },\n type: dispatch.type\n };\n features.push(item);\n });\n\n return features;\n};\n\nexport default wktToFeatures;\n","import {\n LOAD_TTM_SITES_REQUEST,\n LOAD_TTM_SITES_SUCCESS,\n TTMSite,\n LOAD_TTM_SITES_FAILURE,\n SET_TTM_SITE_STORE_DATA,\n TTMDetour,\n SET_TTM_DETOUR_STORE_DATA,\n TTMClosure,\n SET_TTM_CLOSURE_STORE_DATA,\n SET_TTM_SITE_DB_REQUEST,\n SET_TTM_SITE_DB_SUCCESS,\n SET_TTM_SITE_DB_FAILURE,\n SET_TTM_DETOUR_DB_REQUEST,\n SET_TTM_DETOUR_DB_SUCCESS,\n SET_TTM_DETOUR_DB_FAILURE,\n SET_TTM_CLOSURE_DB_REQUEST,\n SET_TTM_CLOSURE_DB_SUCCESS,\n SET_TTM_CLOSURE_DB_FAILURE,\n DELETE_TTM_SITE_STORE,\n DELETE_TTM_SITE_DB_REQUEST,\n DELETE_TTM_SITE_DB_SUCCESS,\n DELETE_TTM_SITE_DB_FAILURE,\n DELETE_TTM_DETOUR_DB_FAILURE,\n DELETE_TTM_DETOUR_DB_SUCCESS,\n DELETE_TTM_DETOUR_DB_REQUEST,\n DELETE_TTM_DETOUR_STORE,\n DELETE_TTM_CLOSURE_STORE,\n DELETE_TTM_CLOSURE_DB_REQUEST,\n DELETE_TTM_CLOSURE_DB_SUCCESS,\n DELETE_TTM_CLOSURE_DB_FAILURE,\n DUPLICATE_TTM,\n RESET_TTM,\n RESET_ADDED_SITE_ID\n} from \"./types\";\n\nexport const loadTTMSitesRequest = (applicationId?: number, guid?: string) => ({\n type: LOAD_TTM_SITES_REQUEST,\n applicationId: applicationId,\n guid: guid\n});\n\nexport const loadTTMSitesSuccess = (payload: TTMSite[]) => ({\n type: LOAD_TTM_SITES_SUCCESS,\n sites: payload\n});\n\nexport const loadTTMSitesFailure = (errorMessage: string) => ({\n type: LOAD_TTM_SITES_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setTTMSiteStoreData = (newSite: TTMSite, isEditing: boolean) => ({\n type: SET_TTM_SITE_STORE_DATA,\n newSite: newSite,\n isEditing: isEditing\n});\n\nexport const setTTMDetourStoreData = (\n newDetour: TTMDetour,\n isEditing: boolean\n) => ({\n type: SET_TTM_DETOUR_STORE_DATA,\n newDetour: newDetour,\n isEditing: isEditing\n});\n\nexport const setTTMClosureStoreData = (\n newClosure: TTMClosure,\n isEditing: boolean\n) => ({\n type: SET_TTM_CLOSURE_STORE_DATA,\n newClosure: newClosure,\n isEditing: isEditing\n});\n\nexport const setTTMSiteDbRequest = (\n newSite: TTMSite,\n isEditing: boolean,\n applicationId: number\n) => ({\n type: SET_TTM_SITE_DB_REQUEST,\n newSite: newSite,\n isEditing: isEditing,\n applicationId: applicationId\n});\n\nexport const setTTMSiteDbSuccess = (newSite: TTMSite, isEditing: boolean) => ({\n type: SET_TTM_SITE_DB_SUCCESS,\n newSite: newSite,\n isEditing: isEditing\n});\n\nexport const setTTMSiteDbFailure = (errorMessage: string) => ({\n type: SET_TTM_SITE_DB_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setTTMDetourDbRequest = (\n newDetour: TTMDetour,\n isEditing: boolean\n) => ({\n type: SET_TTM_DETOUR_DB_REQUEST,\n newDetour: newDetour,\n isEditing: isEditing\n});\n\nexport const setTTMDetourDbSuccess = (\n newDetour: TTMDetour,\n isEditing: boolean\n) => ({\n type: SET_TTM_DETOUR_DB_SUCCESS,\n newDetour: newDetour,\n isEditing: isEditing\n});\n\nexport const setTTMDetourDbFailure = (errorMessage: string) => ({\n type: SET_TTM_DETOUR_DB_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setTTMClosureDbRequest = (\n newClosure: TTMClosure,\n isEditing: boolean\n) => ({\n type: SET_TTM_CLOSURE_DB_REQUEST,\n newClosure: newClosure,\n isEditing: isEditing\n});\n\nexport const setTTMClosureDbSuccess = (\n newClosure: TTMClosure,\n isEditing: boolean\n) => ({\n type: SET_TTM_CLOSURE_DB_SUCCESS,\n newClosure: newClosure,\n isEditing: isEditing\n});\n\nexport const setTTMClosureDbFailure = (errorMessage: string) => ({\n type: SET_TTM_CLOSURE_DB_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const deleteTTMSiteStore = (siteId: number) => ({\n type: DELETE_TTM_SITE_STORE,\n siteId: siteId\n});\n\nexport const deleteTTMSiteDbRequest = (siteId: number) => ({\n type: DELETE_TTM_SITE_DB_REQUEST,\n siteId: siteId\n});\n\nexport const deleteTTMSiteDbSuccess = (siteId: number) => ({\n type: DELETE_TTM_SITE_DB_SUCCESS,\n siteId: siteId\n});\n\nexport const deleteTTMSiteDbFailure = (errorMessage: string) => ({\n type: DELETE_TTM_SITE_DB_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const deleteTTMDetourStore = (siteId: number, detourId: number) => ({\n type: DELETE_TTM_DETOUR_STORE,\n siteId: siteId,\n detourId: detourId\n});\n\nexport const deleteTTMDetourDbRequest = (siteId: number, detourId: number) => ({\n type: DELETE_TTM_DETOUR_DB_REQUEST,\n siteId: siteId,\n detourId: detourId\n});\n\nexport const deleteTTMDetourDbSuccess = (siteId: number, detourId: number) => ({\n type: DELETE_TTM_DETOUR_DB_SUCCESS,\n siteId: siteId,\n detourId: detourId\n});\n\nexport const deleteTTMDetourDbFailure = (errorMessage: string) => ({\n type: DELETE_TTM_DETOUR_DB_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const deleteTTMClosureStore = (siteId: number, closureId: number) => ({\n type: DELETE_TTM_CLOSURE_STORE,\n siteId: siteId,\n closureId: closureId\n});\n\nexport const deleteTTMClosureDbRequest = (\n siteId: number,\n closureId: number\n) => ({\n type: DELETE_TTM_CLOSURE_DB_REQUEST,\n siteId: siteId,\n closureId: closureId\n});\n\nexport const deleteTTMClosureDbSuccess = (\n siteId: number,\n closureId: number\n) => ({\n type: DELETE_TTM_CLOSURE_DB_SUCCESS,\n siteId: siteId,\n closureId: closureId\n});\n\nexport const deleteTTMClosureDbFailure = (errorMessage: string) => ({\n type: DELETE_TTM_CLOSURE_DB_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const duplicateTTM = (ttmSites: TTMSite[]) => ({\n type: DUPLICATE_TTM,\n ttmSites: ttmSites\n});\n\nexport const resetTTM = () => ({\n type: RESET_TTM\n});\n\nexport const resetAddedSiteId = () => ({\n type: RESET_ADDED_SITE_ID\n});\n","import { Action } from \"redux\";\nimport { ErrorPayload } from \"store/error/types\";\n\nexport const LOAD_BILL_PAYER_REQUEST = \"LOAD_BILL_PAYER_REQUEST\";\nexport const LOAD_BILL_PAYER_SUCCESS = \"LOAD_BILL_PAYER_SUCCESS\";\nexport const LOAD_BILL_PAYER_FAILURE = \"LOAD_BILL_PAYER_FAILURE\";\n\nexport const ADD_BILL_PAYER_REQUEST = \"ADD_BILL_PAYER_REQUEST\";\nexport const ADD_BILL_PAYER_SUCCESS = \"ADD_BILL_PAYER_SUCCESS\";\nexport const ADD_BILL_PAYER_FAILURE = \"ADD_BILL_PAYER_FAILURE\";\n\nexport const CLEAR_BILL_PAYER_DETAIL = \"CLEAR_BILL_PAYER_DETAIL\";\n\nexport type ClearBillPayerDetailAction = Action;\n\nexport type LoadBillPayerRequestAction = Action<\n typeof LOAD_BILL_PAYER_REQUEST\n> & {\n id: number;\n};\n\nexport type LoadBillPayerSuccessAction = Action<\n typeof LOAD_BILL_PAYER_SUCCESS\n> & {\n billPayer: BillPayer;\n};\n\nexport type LoadBillPayerFailureAction = Action<\n typeof LOAD_BILL_PAYER_FAILURE\n> &\n ErrorPayload;\n\nexport type AddBillPayerRequestAction = Action<\n typeof ADD_BILL_PAYER_REQUEST\n> & {\n billPayer: AddBillPayerModel;\n};\n\nexport type AddBillPayerSuccessAction = Action<\n typeof ADD_BILL_PAYER_SUCCESS\n> & {\n billPayer: BillPayer;\n};\n\nexport type AddBillPayerFailureAction = Action &\n ErrorPayload;\n\nexport type BillPayerDetailActionTypes =\n | ClearBillPayerDetailAction\n | LoadBillPayerRequestAction\n | LoadBillPayerSuccessAction\n | LoadBillPayerFailureAction\n | AddBillPayerRequestAction\n | AddBillPayerSuccessAction\n | AddBillPayerFailureAction;\n\nexport type BillPayer = {\n id: number;\n userId: number;\n rcaName: string;\n rcaId: number;\n rcaCustomerNumber: string;\n organisationName: string;\n organisationId: number;\n name: string;\n email: string;\n workPhone: string;\n mobilePhone: string;\n faxPhone: string;\n jobPosition: string;\n address: string;\n};\n\nexport type AddBillPayerModel = {\n userId: number;\n rcaOrganisationIds: number[];\n rcaCustomerNumber: string;\n};\n\nexport type BillPayerDetailState = {\n billPayerDetailData: BillPayer | undefined;\n};\n","import { Feature } from \"store/types\";\n\nexport const featureToWkt = (wicket: any, feature: Feature) => {\n const str = JSON.stringify({\n type: feature.geometry.type,\n coordinates: feature.geometry.coordinatesArray\n });\n wicket.read(str);\n return wicket.write();\n};\n\nconst featuresToWkt = (wicket: any, features: Feature[]) => {\n if (features.length === 0) {\n return null;\n }\n\n if (features.length > 1) {\n //loop through making a geometry collection\n const shapeWkts: string[] = [];\n features.forEach(shape => {\n shapeWkts.push(featureToWkt(wicket, shape));\n });\n const str = shapeWkts.join(\", \");\n return `GEOMETRYCOLLECTION(${str})`;\n } else {\n return featureToWkt(wicket, features[0]);\n }\n};\n\nexport default featuresToWkt;\n","import { Action } from \"redux\";\n\nexport const DOWNLOAD_ATTACHMENT_REQUEST = \"DOWNLOAD_ATTACHMENT_REQUEST\";\nexport const DOWNLOAD_ATTACHMENT_FAILURE = \"DOWNLOAD_ATTACHMENT_FAILURE\";\nexport const DOWNLOAD_ATTACHMENTS_REQUEST = \"DOWNLOAD_ATTACHMENTS_REQUEST\";\nexport const DOWNLOAD_ATTACHMENTS_FAILURE = \"DOWNLOAD_ATTACHMENTS_Failure\";\nexport const GET_ATTACHMENT_VALIDATION_REQUEST =\n \"GET_ATTACHMENT_VALIDATION_REQUEST\";\nexport const GET_ATTACHMENT_VALIDATION_SUCCESS =\n \"GET_ATTACHMENT_VALIDATION_SUCCESS\";\n\ntype getAttachmentValidationSuccessAction = Action<\n typeof GET_ATTACHMENT_VALIDATION_SUCCESS\n> & {\n attachmentValidation: AttachmentValidation;\n};\n\nexport type MediaActionTypes = getAttachmentValidationSuccessAction;\nexport type DownloadAttachmentRequestAction = Action<\n typeof DOWNLOAD_ATTACHMENT_REQUEST\n> & {\n applicationId: number;\n attachmentReference: string;\n filename: string;\n isMasterAttachment: boolean;\n};\n\nexport type DownloadAttachmentsRequestAction = Action<\n typeof DOWNLOAD_ATTACHMENTS_REQUEST\n> & {\n applicationId: number;\n attachments: AttachmentModel[];\n applicationNumber: string;\n};\n\nexport type AttachmentModel = {\n attachmentReference: string;\n filename: string;\n};\n\nexport type AttachmentValidation = {\n whiteList: string[];\n maxFileSize?: number;\n};\n\nexport type MediaState = {\n attachmentValidation?: AttachmentValidation;\n};\n","import { Action } from \"redux\";\nimport { Lookup, SearchModel } from \"store/types\";\nimport { ErrorPayload } from \"store/error/types\";\nimport { Endpoint } from \"common/endpoints\";\n\nexport type LookupState = Map;\n\nexport const ROAD_LEVELS_LOOKUP = \"roadlevels\";\nexport const SCALE_OF_WORK_LOOKUP = \"scaleofwork\";\nexport const MAJOR_ACTIVITIES_LOOKUP = \"majoractivities\";\nexport const APPLICATION_STATUSES_LOOKUP = \"applicationstatuses\";\nexport const APPLICATION_STEPS_LOOKUP = \"applicationsteps\";\nexport const APPLICATION_TYPES_LOOKUP = \"applicationtypes\";\nexport const RCAS_LOOKUP = \"rcas\";\nexport const PARTICIPANT_CATEGORIES_LOOKUP = \"participantcategories\";\nexport const PARTICIPANT_ROLES_LOOKUP = \"participantroles\";\nexport const PRINCIPAL_ORGANISATIONS_LOOKUP = \"principalorganisations\";\nexport const PRINCIPAL_CONTACTS_LOOKUP = \"principalcontacts\";\nexport const PARTICIPANT_CERTIFICATION_TYPES_LOOKUP =\n \"participantcertificatetypes\";\nexport const ACTIVITIES_LOOKUP = \"activities\";\nexport const ROAD_CLASS_LOOKUP = \"roadclass\";\nexport const TTM_TYPES_LOOKUP = \"ttmtypes\";\nexport const TTM_IMPACT_LOOKUP = \"ttmimpacts\";\nexport const WORK_ACTIVITY_LOOKUP = \"workactivities\";\nexport const SPEED_LIMITS_LOOKUP = \"speedlimits\";\nexport const AFFECTED_ACCESS_LOOKUP = \"affectedareas\";\nexport const PRIMARY_APPLICANTS_LOOKUP = \"primaryapplicants\";\nexport const PRIMARY_APPLICANT_ROLES_LOOKUP = \"primaryapplicantroles\";\nexport const SEARCH_ORGANISATIONS_LOOKUP = \"organisations\";\nexport const SEARCH_USERS_LOOKUP = \"users\";\nexport const LOCATIONS_IN_ROAD_LOOKUP = \"locationsinroad\";\nexport const ATTACHMENT_TYPE_LOOKUP = \"attachmenttypes\";\nexport const REGION_LOOKUP = \"regions\";\nexport const AREA_LOOKUP = \"areas\";\nexport const NOTIFICATION_SUMMARY_TYPE_LOOKUP = \"notificationsummarytypes\";\nexport const FEEDBACK_LEVELS_LOOKUP = \"feedbacklevels\";\nexport const FILTER_USERS_LOOKUP = \"filterusers\";\nexport const COUNTRIES_LOOKUP = \"countries\";\nexport const RCA_MATCH_LOOKUP = \"rcamatch\";\nexport const ADDRESS_SEARCH_LOOKUP = \"address\";\nexport const QUICK_FILTER_LOOKUP = \"quickfilters\";\n\nexport const LOAD_LOOKUP_REQUEST = \"LOAD_LOOKUP_REQUEST\";\nexport const LOAD_LOOKUP_SUCCESS = \"LOAD_LOOKUP_SUCCESS\";\nexport const LOAD_LOOKUP_FAILURE = \"LOAD_LOOKUP_FAILURE\";\nexport const RESET_LOOKUP_DATA = \"RESET_LOOKUP_DATA\";\n\nexport type LoadLookupRequestAction = Action & {\n endpoint: Endpoint;\n route: string;\n args?: string[] | SearchModel;\n};\n\nexport type LoadLookupSuccessAction = Action & {\n route: string;\n data: Lookup[];\n};\n\nexport type LoadLookupFailureAction = Action &\n ErrorPayload;\n\nexport type ResetLookupDataAction = Action & {\n route: string;\n};\n\nexport type LookupActionTypes =\n | LoadLookupRequestAction\n | LoadLookupSuccessAction\n | LoadLookupFailureAction\n | ResetLookupDataAction;\n","import moment from \"moment\";\n\nexport const ToStartOfDay = (date: Date | undefined) => {\n const output: Date = date\n ? moment(date)\n .startOf(\"day\")\n .toDate()\n : moment()\n .startOf(\"day\")\n .toDate();\n return output;\n};\n\nexport const ToEndOfDay = (date: Date) => {\n return moment(date)\n .endOf(\"day\")\n .toDate();\n};\n\nexport const GetOffsetUtc = () => moment().utcOffset() + 60;\n\nexport const GetOffset = (date: Date) => moment(date).utcOffset();\n","import { Action } from \"redux\";\nimport { ErrorPayload } from \"store/error/types\";\nimport { Lookup, Feature } from \"store/types\";\nimport { WorkInformationModel } from \"containers/ApplicationDetail/EditWorkInformationModal\";\nimport { CalloutType } from \"common/enums\";\nimport { AddParticipant } from \"store/types\";\n\n/* saga action names start */\nexport const LOAD_SINGLE_APPLICATION_REQUEST =\n \"LOAD_SINGLE_APPLICATION_REQUEST\";\nexport const LOAD_SINGLE_APPLICATION_SUCCESS =\n \"LOAD_SINGLE_APPLICATION_SUCCESS\";\nexport const LOAD_SINGLE_APPLICATION_FAILURE =\n \"LOAD_SINGLE_APPLICATION_FAILURE\";\nexport const UPLOAD_DETAIL_FILE_REQUEST = \"UPLOAD_DETAIL_FILE_REQUEST\";\nexport const UPLOAD_DETAIL_FILE_SUCCESS = \"UPLOAD_DETAIL_FILE_SUCCESS\";\nexport const UPLOAD_DETAIL_FILE_FAILURE = \"UPLOAD_DETAIL_FILE_FAILURE\";\n\nexport const SET_WORK_INFORMATION_REQUEST = \"SET_WORK_INFORMATION_REQUEST\";\nexport const SET_WORK_INFORMATION_SUCCESS = \"SET_WORK_INFORMATION_SUCCESS\";\nexport const SET_WORK_INFORMATION_FAILURE = \"SET_WORK_INFORMATION_FAILURE\";\n\nexport const SET_APPLICATION_NOTES_REQUEST = \"SET_APPLICATION_NOTES_REQUEST\";\nexport const SET_APPLICATION_NOTES_SUCCESS = \"SET_APPLICATION_NOTES_SUCCESS\";\nexport const SET_APPLICATION_NOTES_FAILURE = \"SET_APPLICATION_NOTES_FAILURE\";\n\nexport const CANCEL_APPLICATION_REQUEST = \"CANCEL_APPLICATION_REQUEST\";\nexport const CANCEL_APPLICATION_SUCCESS = \"CANCEL_APPLICATION_SUCCESS\";\nexport const CANCEL_APPLICATION_FAILURE = \"CANCEL_APPLICATION_FAILURE\";\n\nexport const SET_NOTIFY_WORK_STATUS_REQUEST = \"SET_NOTIFY_WORK_STATUS_REQUEST\";\nexport const SET_NOTIFY_WORK_START_SUCCESS = \"SET_NOTIFY_WORK_START_SUCCESS\";\nexport const SET_NOTIFY_WORK_COMPLETION_SUCCESS =\n \"SET_NOTIFY_WORK_COMPLETION_SUCCESS\";\nexport const SET_NOTIFY_WORK_STATUS_FAILURE = \"SET_NOTIFY_WORK_STATUS_FAILURE\";\n\nexport const SET_APPLICATION_FEEDBACK_REQUEST =\n \"SET_APPLICATION_FEEDBACK_REQUEST\";\nexport const SET_APPLICATION_FEEDBACK_SUCCESS =\n \"SET_APPLICATION_FEEDBACK_SUCCESS\";\nexport const SET_APPLICATION_FEEDBACK_FAILURE =\n \"SET_APPLICATION_FEEDBACK_FAILURE\";\n\nexport const LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST =\n \"LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST\";\nexport const LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS =\n \"LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS\";\nexport const LOAD_EXISTING_APPLICATION_FEEDBACK_FAILURE =\n \"LOAD_EXISTING_APPLICATION_FEEDBACK_FAILURE\";\n\nexport const DOWNLOAD_CALLOUT_REPORT_REQUEST =\n \"DOWNLOAD_CALLOUT_REPORT_REQUEST\";\nexport const DOWNLOAD_INSPECTION_REPORT_SUCCESS =\n \"DOWNLOAD_INSPECTION_REPORT_SUCCESS\";\nexport const DOWNLOAD_DEFECT_REPORT_SUCCESS = \"DOWNLOAD_DEFECT_REPORT_SUCCESS\";\nexport const DOWNLOAD_CALLOUT_REPORT_FAILURE =\n \"DOWNLOAD_CALLOUT_REPORT_FAILURE\";\n\nexport const LOAD_AUDIT_LOGS_REQUEST = \"LOAD_AUDIT_LOGS_REQUEST\";\nexport const LOAD_AUDIT_LOGS_SUCCESS = \"LOAD_AUDIT_LOGS_SUCCESS\";\nexport const LOAD_AUDIT_LOGS_FAILURE = \"LOAD_AUDIT_LOGS_FAILURE\";\n\nexport const RESET_AUDIT_LOGS = \"RESET_AUDIT_LOGS\";\nexport const SET_PARTICIPANT_REQUEST = \"SET_PARTICIPANT_REQUEST\";\nexport const SET_PARTICIPANT_SUCCESS = \"SET_PARTICIPANT_SUCCESS\";\nexport const SET_PARTICIPANT_FAILURE = \"SET_PARTICIPANT_FAILURE\";\nexport const REPLACE_PARTICIPANT_REQUEST = \"REPLACE_PARTICIPANT_REQUEST\";\nexport const REPLACE_PARTICIPANT_SUCCESS = \"REPLACE_PARTICIPANT_SUCCESS\";\nexport const REPLACE_PARTICIPANT_FAILURE = \"REPLACE_PARTICIPANT_FAILURE\";\nexport const REMOVE_PARTICIPANT_REQUEST = \"REMOVE_PARTICIPANT_REQUEST\";\nexport const REMOVE_PARTICIPANT_SUCCESS = \"REMOVE_PARTICIPANT_SUCCESS\";\nexport const REMOVE_PARTICIPANT_FAILURE = \"REMOVE_PARTICIPANT_FAILURE\";\n\nexport const SET_LOCATION_REQUEST = \"SET_LOCATION_REQUEST\";\nexport const SET_LOCATION_SUCCESS = \"SET_LOCATION_SUCCESS\";\nexport const SET_LOCATION_FAILURE = \"SET_LOCATION_FAILURE\";\nexport const DELETE_ATTACHMENT_REQUEST = \"DELETE_ATTACHMENT_REQUEST\";\nexport const DELETE_ATTACHMENT_SUCCESS = \"DELETE_ATTACHMENT_SUCCESS\";\nexport const DELETE_ATTACHMENT_FAILURE = \"DELETE_ATTACHMENT_FAILURE\";\n\nexport const SET_MAINTENANCE_COMPLETION_REQUEST =\n \"SET_MAINTENANCE_COMPLETION_REQUEST\";\nexport const SET_MAINTENANCE_COMPLETION_SUCCESS =\n \"SET_MAINTENANCE_COMPLETION_SUCCESS\";\nexport const SET_MAINTENANCE_COMPLETION_FAILURE =\n \"SET_MAINTENANCE_COMPLETION_FAILURE\";\n\nexport const DECLINE_APPLICATION_PARTICIPANT_REQUEST =\n \"DECLINE_APPLICATION_PARTICIPANT_REQUEST\";\nexport const DECLINE_APPLICATION_PARTICIPANT_SUCCESS =\n \"DECLINE_APPLICATION_PARTICIPANT_SUCCESS\";\nexport const DECLINE_APPLICATION_PARTICIPANT_FAILURE =\n \"DECLINE_APPLICATION_PARTICIPANT_FAILURE\";\n/* saga action names end */\n\n/* redux action names start */\nexport const RESET_SINGLE_APPLICATION = \"RESET_SINGLE_APPLICATION\";\n/* redux action names end */\n\nexport type LoadSingleApplicationRequestAction = Action<\n typeof LOAD_SINGLE_APPLICATION_REQUEST\n> & {\n carId?: number;\n guid?: string;\n};\n\ntype LoadSingleApplicationSuccessAction = Action<\n typeof LOAD_SINGLE_APPLICATION_SUCCESS\n> & {\n applicationDetailData: ApplicationDetail;\n};\n\ntype LoadSingleApplicationFailureAction = Action<\n typeof LOAD_SINGLE_APPLICATION_FAILURE\n> &\n ErrorPayload;\n\ntype ResetSingleApplicationAction = Action;\n\nexport type UploadFileRequestAction = Action<\n typeof UPLOAD_DETAIL_FILE_REQUEST\n> & {\n applicationId: number;\n attachments: NewAttachment[];\n carStepId: number;\n permissionValue: number;\n childApplicationIds: number[];\n reference?: string;\n};\n\ntype UploadFileSuccessAction = Action & {\n attachments: Attachment[];\n};\n\ntype UploadFileFailureAction = Action &\n ErrorPayload;\n\nexport type SetApplicationNotesRequestAction = Action<\n typeof SET_APPLICATION_NOTES_REQUEST\n> & {\n notes: string;\n applicationId: number;\n};\n\ntype SetApplicationNotesSuccessAction = Action<\n typeof SET_APPLICATION_NOTES_SUCCESS\n> & {\n notes: string;\n};\n\nexport type SetWorkInformationRequestAction = Action<\n typeof SET_WORK_INFORMATION_REQUEST\n> & {\n workInfo: WorkInformationModel;\n applicationId: number;\n};\n\ntype SetWorkInformationSuccessAction = Action<\n typeof SET_WORK_INFORMATION_SUCCESS\n> & {\n workInfo: WorkInformationModel;\n};\n\nexport type SetApplicationFeedbackRequestAction = Action<\n typeof SET_APPLICATION_FEEDBACK_REQUEST\n> & {\n applicationId: number;\n rating: number;\n notes: string;\n};\n\ntype SetApplicationFeedbackSuccessAction = Action<\n typeof SET_APPLICATION_FEEDBACK_SUCCESS\n> & {\n feedback: ApplicationFeedback;\n};\n\nexport type LoadExistingApplicationFeedbackRequestAction = Action<\n typeof LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST\n> & {\n applicationId: number;\n};\n\ntype LoadExistingApplicationFeedbackSuccessAction = Action<\n typeof LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS\n> & {\n feedback: ApplicationFeedback;\n};\nexport type DownloadCalloutReportRequestAction = Action<\n typeof DOWNLOAD_CALLOUT_REPORT_REQUEST\n> & {\n calloutId: number;\n calloutType: CalloutType;\n};\n\ntype DownloadInspectionReportSuccessAction = Action<\n typeof DOWNLOAD_INSPECTION_REPORT_SUCCESS\n> & {\n inspection: Inspection;\n};\n\ntype DownloadDefectReportSuccessAction = Action<\n typeof DOWNLOAD_DEFECT_REPORT_SUCCESS\n> & {\n defect: Defect;\n};\n\nexport type SetParticiantRequestAction = Action<\n typeof SET_PARTICIPANT_REQUEST\n> & {\n carId: number;\n rcaId: number;\n participant: AddParticipant;\n reference?: string;\n};\n\ntype SetParticipantSuccessAction = Action & {\n participant: Participant;\n};\n\nexport type ReplaceParticipantRequestAction = Action<\n typeof REPLACE_PARTICIPANT_REQUEST\n> & {\n carId: number;\n rcaId: number;\n participant: ReplaceParticipant;\n};\n\ntype ReplaceParticipantSuccessAction = Action<\n typeof REPLACE_PARTICIPANT_SUCCESS\n> & {\n participantResponse: ReplaceParticipantResponse;\n};\n\nexport type SetNotifyWorkStatusRequestAction = Action<\n typeof SET_NOTIFY_WORK_STATUS_REQUEST\n> & {\n applicationId: number;\n newDate: Date;\n isStart: boolean;\n reference?: string;\n offset?: number;\n};\n\ntype SetNotifyWorkStartSuccessAction = Action<\n typeof SET_NOTIFY_WORK_START_SUCCESS\n> & {\n updatedInfo: NotifyWorkStartResponse;\n};\n\nexport type LoadAuditLogsRequestAction = Action<\n typeof LOAD_AUDIT_LOGS_REQUEST\n> & {\n applicationId: number;\n sourceField: string;\n};\n\ntype LoadAuditLogSuccessAction = Action & {\n auditLog: AuditHistoryResponse;\n};\n\ntype ResetAuditLogsAction = Action;\n\ntype SetNotifyWorkCompletionSuccessAction = Action<\n typeof SET_NOTIFY_WORK_COMPLETION_SUCCESS\n> & {\n updatedInfo: NotifyWorkCompletionResponse;\n};\n\nexport type RemoveParticipantRequestAction = Action<\n typeof REMOVE_PARTICIPANT_REQUEST\n> & {\n participantLinkId: number;\n};\n\ntype RemoveParticipantSuccessAction = Action<\n typeof REMOVE_PARTICIPANT_SUCCESS\n> & {\n participantLinkId: number;\n};\n\nexport type SetLocationRequestAction = Action & {\n locationInfo: LocationInformationModel;\n applicationId: number;\n};\n\ntype SetLocationSuccessAction = Action & {\n locationInfo: LocationInformationModel;\n};\n\nexport type DeleteAttachmentRequestAction = Action<\n typeof DELETE_ATTACHMENT_REQUEST\n> & {\n attachmentReference: string;\n};\n\ntype DeleteAttachmentSuccessAction = Action<\n typeof DELETE_ATTACHMENT_SUCCESS\n> & {\n attachmentReference: string;\n};\n\nexport type CancelApplicationRequestAction = Action<\n typeof CANCEL_APPLICATION_REQUEST\n> & {\n applicationId: number;\n};\n\ntype CancelApplicationSuccessAction = Action;\n\nexport type SetMaintenanceCompletionRequestAction = Action<\n typeof SET_MAINTENANCE_COMPLETION_REQUEST\n> & {\n model: MaintenanceCompletionRequest;\n};\n\ntype SetMaintenanceCompletionSuccessAction = Action<\n typeof SET_MAINTENANCE_COMPLETION_SUCCESS\n> & {\n model: MaintenanceCompletionResponse;\n};\n\nexport type DeclineApplicationParticipantRequestAction = Action<\n typeof DECLINE_APPLICATION_PARTICIPANT_REQUEST\n> & {\n code: string;\n};\n\ntype DeclineApplicationParticipantSuccessAction = Action<\n typeof DECLINE_APPLICATION_PARTICIPANT_SUCCESS\n> & {\n participantDeclined: boolean;\n};\n\nexport type SingleApplicationActionTypes =\n | LoadSingleApplicationSuccessAction\n | ResetSingleApplicationAction\n | UploadFileSuccessAction\n | SetApplicationNotesSuccessAction\n | SetWorkInformationSuccessAction\n | SetApplicationFeedbackSuccessAction\n | LoadExistingApplicationFeedbackSuccessAction\n | DownloadInspectionReportSuccessAction\n | DownloadDefectReportSuccessAction\n | SetNotifyWorkStartSuccessAction\n | LoadAuditLogSuccessAction\n | ResetAuditLogsAction\n | SetParticipantSuccessAction\n | ReplaceParticipantRequestAction\n | ReplaceParticipantSuccessAction\n | SetNotifyWorkCompletionSuccessAction\n | RemoveParticipantSuccessAction\n | SetLocationSuccessAction\n | DeleteAttachmentSuccessAction\n | CancelApplicationSuccessAction\n | SetMaintenanceCompletionSuccessAction\n | DeclineApplicationParticipantSuccessAction;\n\nexport type ApplicationDetail = {\n // info for editing\n permissionValue: number;\n canCancelApplication: boolean;\n isApplicationCancelled: boolean;\n isPONumberRequired: boolean;\n minDaysBeforeWorkStart: number;\n isRcaFeedbackEnabled: boolean;\n isActive: boolean;\n isWcnCheckEnabled: boolean;\n wcnDocuments: WorkCompletionDocument[];\n canDuplicateApplication: boolean;\n\n // header\n carId: number;\n carNumber: string;\n carType: Lookup;\n carStep: Lookup;\n carStatus: Lookup;\n // rcaLogoUrl?: string;\n\n // work information\n workType: Lookup;\n applicantRole: Lookup | null;\n activities: Lookup[];\n majorActivities: Lookup[];\n roadLevel: Lookup | null;\n globalCar: boolean;\n isRoadClosureRequired: boolean;\n estimatedDuration: number;\n estimatedStartDate: Date;\n estimatedCompletionDate: Date;\n utilityRefNumber?: string;\n consentNumber?: string;\n purchaseOrderNumber?: string;\n hoursOfWork?: string;\n description?: string;\n\n // notes\n notes: string;\n\n //location\n streetNumber: string;\n streetName: string;\n suburb: string;\n townCity: string;\n postcode: string;\n addressNotes?: string;\n shapes: string;\n features: Feature[];\n locationsInRoad: Lookup[];\n\n //road controlling authority\n rcaOrganisation: Lookup;\n rcaWebsite?: string;\n rcaCustomisations: number[];\n applicationSourceName: string;\n rcaBoundaries: string;\n rcaBoundaryFeatures: Feature[];\n\n //participants/people\n participants?: Participant[];\n\n //dates\n dateSubmitted?: Date;\n dateTmpLodged?: Date;\n dateReceived: Date;\n dateApproved?: Date;\n dateWorkSignedOff?: Date;\n dateWarrantyStarted?: Date;\n dateWarrantyCompletionNotified?: Date;\n dateWarrantyEnded?: Date;\n dateClosed?: Date;\n dateWorkStartedStatus: Lookup;\n dateWorkStarted?: Date;\n dateWorkCompletedStatus: Lookup;\n dateWorkCompleted?: Date;\n\n attachments?: Attachment[];\n masterAttachments?: AttachmentMasterGroup[];\n applicationFees?: ApplicationFee[];\n linkedApplications?: LinkedApplication[];\n inspectionsAndDefects?: Callout[];\n dateAuditLog?: AuditHistoryResponse | null;\n emailNotificationTypeId?: number;\n feedbackUrl?: string;\n auditHistory?: AuditHistory[];\n};\n\nexport type AuditHistory = {\n auditLogID?: number;\n historyMessage: string;\n happenedOn: Date;\n}\n\nexport type AttachmentMasterGroup = {\n attachmentMasterPurposeDescription: string;\n attachments: Attachment[];\n};\n\nexport type Participant = {\n participantLinkId?: number;\n participantRole: Lookup;\n participantOrganisation?: Lookup;\n participantCategoryId?: number;\n user: Lookup;\n email?: string;\n mobileNumber?: string;\n workNumber?: string;\n address?: string;\n canDelete?: boolean;\n isActive?: boolean;\n hintText?: string;\n certificateDetails?: CertificateDetails;\n firstName?: string;\n feedbackUrl?: string;\n};\n\nexport type ReplaceParticipantResponse = {\n participant: Participant;\n permissionValue: number;\n};\n\nexport type TrafficManagementSite = {\n siteId: number;\n site: string;\n siteStatus: string;\n};\n\nexport type ApplicationFee = {\n applicationFeeId: number;\n description: string;\n amount: number;\n status: Lookup;\n quantity: number;\n rate: number;\n unit: string;\n dateAdded: Date;\n isInvoiced: boolean;\n};\n\nexport type LinkedApplication = {\n applicationId: number;\n carNumber: string;\n rca: Lookup;\n carStatus: Lookup;\n notes: string;\n};\n\nexport type NewAttachment = {\n filename: string;\n attachmentType: Lookup;\n file?: File;\n};\n\nexport type Attachment = NewAttachment & {\n attachmentReference: string;\n attachmentStatus: string;\n canDelete?: boolean;\n};\n\nexport type NewAttachmentReturnType = {\n filename: string;\n attachmentTypeId: number;\n attachmentReference: string;\n canDelete?: boolean;\n attachmentStatus: string;\n};\n\nexport type ApplicationDetailState = {\n applicationDetailData?: ApplicationDetail;\n feedback?: ApplicationFeedback;\n participantDeclined?: boolean;\n};\n\n//Inspection/Defect\nexport type Callout = {\n id: number;\n addedOn: Date;\n calloutType: CalloutType;\n};\n\nexport type ApplicationFeedback = {\n applicationId?: number;\n rating: number | null;\n notes: string;\n};\n\nexport type Inspection = {\n carNumber: string;\n inspectionId: number;\n date?: Date;\n auditor: string;\n type: string;\n category: string;\n rating: string;\n notes: string;\n remedialWorkRequired: string;\n};\n\nexport type Defect = {\n defectId: number;\n carNumber: string;\n dateFound?: string;\n source: string;\n status: string;\n description: string;\n explanation: string;\n dateFixed?: Date;\n resolutionNote: string;\n rating: string;\n};\n\nexport type NotifyWorkStartResponse = {\n carStatus: Lookup;\n duration: number;\n dateWorkStartedStatus: Lookup;\n dateWorkStarted?: Date;\n dateWorkCompleted?: Date;\n};\n\nexport type ReplaceParticipant = AddParticipant & {\n participantLinkId: number;\n};\n\nexport type AuditHistoryResponse = {\n firstName: string;\n lastName: string;\n addedOn: Date;\n};\n\nexport type NotifyWorkCompletionResponse = {\n carStatus: Lookup;\n dateWorkCompleted: Date;\n carStep: Lookup;\n dateWorkCompletedStatus: Lookup;\n notes: string;\n};\n\nexport type WorkCompletionDocument = {\n carEventId: number;\n attachmentType: Lookup;\n};\n\nexport type LocationInformationModel = {\n features: Feature[];\n streetNumber: string;\n streetName: string;\n suburb: string;\n townCity: string;\n postCode: string;\n addressNotes?: string;\n locationsInRoad: Lookup[];\n shapeArea?: number;\n shapeLength?: number;\n};\n\nexport type MaintenanceCompletionRequest = {\n carId: number;\n isSiteInspected: boolean;\n siteInspection?: SiteInspectionModel;\n reference?: string;\n offset: number;\n};\n\nexport type SiteInspectionModel = {\n auditorName: string;\n auditorCompany: string;\n auditDate: Date;\n};\n\nexport type MaintenanceCompletionResponse = {\n dateWarrantyCompletionNotified: Date;\n carStatus: Lookup;\n notes: string;\n};\n\nexport type CertificateDetails = {\n userId: number;\n certificationType: string;\n certificateNumber: string;\n certificateExpiry?: Date;\n};\n\nexport type EmailNotificationResponse = {\n applicationId: number;\n emailNotificationTypeId: number;\n};\n","import { Action } from \"redux\";\nimport { ErrorPayload } from \"store/error/types\";\n\n/* saga action names start */\nexport const LOAD_BILLPAYERS_SUMMARY_REQUEST =\n \"LOAD_BILLPAYERS_SUMMARY_REQUEST\";\nexport const LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA =\n \"LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA\";\nexport const LOAD_BILLPAYERS_SUMMARY_SUCCESS =\n \"LOAD_BILLPAYERS_SUMMARY_SUCCESS\";\nexport const LOAD_BILLPAYERS_SUMMARY_FAILURE =\n \"LOAD_BILLPAYERS_SUMMARY_FAILURE\";\n\nexport const RESET_BILLPAYERS_SUMMARY = \"RESET_BILLPAYERS_SUMMARY\";\n/* saga action names end */\n\nexport type BillPayersSummaryFilter = {\n skip: number;\n};\n\nexport type LoadBillPayersSummaryRequestAction = Action<\n typeof LOAD_BILLPAYERS_SUMMARY_REQUEST\n> & {\n billPayersSummaryOptions: BillPayersSummaryFilter;\n};\n\nexport type LoadBillPayersSummaryRequestExtraAction = Action<\n typeof LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA\n> & {\n billPayersSummaryOptions: BillPayersSummaryFilter;\n};\n\ntype LoadBillPayersSummarySuccessAction = Action<\n typeof LOAD_BILLPAYERS_SUMMARY_SUCCESS\n> & {\n receivedData: BillPayerSummary[];\n totalCount: number;\n};\n\ntype LoadBillPayersSummaryFailureAction = Action<\n typeof LOAD_BILLPAYERS_SUMMARY_FAILURE\n> &\n ErrorPayload;\n\ntype ResetBillPayersSummaryAction = Action;\n\nexport type BillPayersSummaryActionTypes =\n | LoadBillPayersSummaryRequestAction\n | LoadBillPayersSummarySuccessAction\n | LoadBillPayersSummaryFailureAction\n | LoadBillPayersSummaryRequestExtraAction\n | ResetBillPayersSummaryAction;\n\nexport type BillPayerSummary = {\n billPayerId: number;\n organisation: string;\n rca: string;\n billPayer: string;\n rcaCustomerNumber?: string;\n email: string;\n workPhone: string;\n mobilePhone: string;\n fax: string;\n address: string;\n rcaLogo?: string;\n};\n\nexport type BillPayersSummaryState = {\n billPayersSummaryData: BillPayerSummary[];\n totalSummaries: number;\n};\n\nexport type BillPayersSummaryReceivedPayload = {\n receivedData: BillPayerSummary[];\n totalCount: number;\n};\n","import { Action } from \"redux\";\nimport { ErrorPayload } from \"store/error/types\";\n\nexport const LOAD_INVOICES_SUMMARY_REQUEST = \"LOAD_INVOICES_SUMMARY_REQUEST\";\nexport const LOAD_INVOICES_SUMMARY_SUCCESS = \"LOAD_INVOICES_SUMMARY_SUCCESS\";\nexport const LOAD_INVOICES_SUMMARY_FAILURE = \"LOAD_INVOICES_SUMMARY_FAILURE\";\nexport const LOAD_INVOICES_SUMMARY_REQUEST_EXTRA =\n \"LOAD_INVOICES_SUMMARY_REQUEST_EXTRA\";\n\nexport const RESET_INVOICES_SUMMARY = \"RESET_INVOICES_SUMMARY\";\n\nexport type InvoicesSummaryOptions = {\n skip: number;\n};\n\nexport type LoadInvoicesSummaryRequestAction = Action<\n typeof LOAD_INVOICES_SUMMARY_REQUEST\n> & {\n invoicesSummaryOptions: InvoicesSummaryOptions;\n};\n\nexport type LoadInvoicesSummaryRequestExtraAction = Action<\n typeof LOAD_INVOICES_SUMMARY_REQUEST_EXTRA\n> & {\n invoicesSummaryOptions: InvoicesSummaryOptions;\n};\n\ntype LoadInvoicesSummarySuccessAction = Action<\n typeof LOAD_INVOICES_SUMMARY_SUCCESS\n> &\n InvoicesSummarySuccessPayload;\n\ntype LoadInvoicesSummaryFailureAction = Action<\n typeof LOAD_INVOICES_SUMMARY_FAILURE\n> &\n ErrorPayload;\n\ntype ResetBillPayersSummaryAction = Action;\n\nexport type InvoicesSummaryActionTypes =\n | LoadInvoicesSummaryRequestAction\n | LoadInvoicesSummaryRequestExtraAction\n | LoadInvoicesSummarySuccessAction\n | LoadInvoicesSummaryFailureAction\n | ResetBillPayersSummaryAction;\n\nexport type InvoiceSummaryState = {\n invoiceSummaryData: InvoiceSummary[];\n totalInvoices: number;\n};\n\nexport type InvoicesSummarySuccessPayload = {\n receivedData: InvoiceSummary[];\n totalCount: number;\n};\n\nexport type InvoiceSummary = {\n invoiceId: number;\n organisation: string;\n rcaName: string;\n totalAmount: number;\n description: string;\n};\n","export const LIGHT = \"light\";\nexport const DARK = \"dark\";\n","import { Action } from \"redux\";\nimport { ErrorPayload } from \"store/error/types\";\n\nexport const LOAD_INVOICE_DETAIL_REQUEST = \"LOAD_INVOICE_DETAIL_REQUEST\";\nexport const LOAD_INVOICE_DETAIL_SUCCESS = \"LOAD_INVOICE_DETAIL_SUCCESS\";\nexport const LOAD_INVOICE_DETAIL_FAILURE = \"LOAD_INVOICE_DETAIL_FAILURE\";\nexport const RESET_INVOICE_DETAIL = \"RESET_INVOICE_DETAIL\";\n\nexport type InvoiceDetailOptions = {\n invoiceId: number;\n};\n\nexport type LoadInvoiceDetailRequestAction = Action<\n typeof LOAD_INVOICE_DETAIL_REQUEST\n> & {\n invoiceDetailOptions: InvoiceDetailOptions;\n};\n\nexport type LoadInvoiceDetailSuccessAction = Action<\n typeof LOAD_INVOICE_DETAIL_SUCCESS\n> &\n InvoiceDetailSuccessPayload;\n\ntype LoadInvoiceDetailFailureAction = Action<\n typeof LOAD_INVOICE_DETAIL_FAILURE\n> &\n ErrorPayload;\n\ntype ResetInvoiceDetailAction = Action;\n\nexport type InvoiceDetailActionTypes =\n | LoadInvoiceDetailRequestAction\n | LoadInvoiceDetailSuccessAction\n | LoadInvoiceDetailFailureAction\n | ResetInvoiceDetailAction;\n\nexport type InvoiceDetailSuccessPayload = {\n invoiceHeaderData: InvoiceHeaderData;\n receivedBillingItems: InvoiceBillingItem[];\n totalCount: number;\n};\n\nexport type InvoiceHeaderData = {\n description: string;\n notes: string;\n organisationName: string;\n rcaName: string;\n addedOn: Date;\n totalAmount: number;\n};\n\nexport type InvoiceBillingItem = {\n applicationId: number;\n applicationNumber: string;\n itemNumber: string;\n description: string;\n purchaseOrder: string;\n unit: string;\n quantity: number;\n rate: number;\n amount: number;\n rebatedItem: boolean;\n};\n\nexport type ExportInvoiceItem = {\n rcaName?: string;\n applicationNumber: string;\n itemNumber: string;\n description: string;\n purchaseOrder: string;\n unit: string;\n quantity: number;\n rate: number;\n amount: number;\n rebatedItem: string;\n};\n\nexport type InvoiceDetailState = {\n invoiceBillingItems: InvoiceBillingItem[];\n totalBillingItems: number;\n invoiceDetailData?: InvoiceHeaderData;\n};\n","import { Action } from \"redux\";\nimport { OptionsObject } from \"notistack\";\n\nexport const ENQUEUE_SNACKBAR = \"ENQUEUE_SNACKERBAR\";\nexport const REMOVE_SNACKBAR = \"REMOVE_SNACKBAR\";\nexport const REMOVE_ALL_SNACKBAR = \"REMOVE_ALL_SNACKBAR\";\nexport const DELETE_SNACKBAR = \"DELETE_SNACKBAR\";\n\ntype EnqueueSnackbarAction = Action & {\n notification: NotistackNotification;\n};\n\ntype RemoveSnackbarAction = Action & {\n key: string;\n};\n\ntype DeleteSnackbarAction = Action & {\n key: string;\n};\n\ntype RemoveAllSnackbarAction = Action & {\n key: string;\n};\n\nexport type NotificationActionTypes =\n | EnqueueSnackbarAction\n | RemoveSnackbarAction\n | RemoveAllSnackbarAction\n | DeleteSnackbarAction;\n\nexport type NotistackNotification = {\n message: string;\n options: OptionsObject;\n dismissed: boolean;\n};\n\nexport type NotistackState = {\n notifications: Map;\n};\n","import {\n LOAD_APPLICATIONS_SUMMARY_REQUEST,\n LOAD_APPLICATIONS_SUMMARY_SUCCESS,\n LOAD_APPLICATIONS_SUMMARY_FAILURE,\n RESET_APPLICATIONS_SUMMARY,\n ApplicationsSummaryFilter,\n ApplicationsSummaryReceivedPayload,\n LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA,\n LOAD_MAP_APPLICATIONS_SUMMARY_REQUEST,\n LOAD_MAP_APPLICATIONS_SUMMARY_SUCCESS,\n LOAD_RCA_LOGOS_REQUEST,\n RcaLogo,\n LOAD_RCA_LOGOS_SUCCESS,\n RcaBoundary,\n LOAD_RCA_BOUNDARIES_REQUEST,\n LOAD_RCA_BOUNDARIES_SUCCESS,\n LOAD_APPLICATION_EXPORT_COLUMNS_REQUEST,\n ApplicationExportColumn,\n LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS,\n LOAD_APPLICATION_EXPORT_COLUMNS_FAILURE,\n GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST,\n GENERATE_APPLICATION_GRID_LIST_EXPORT_FAILURE,\n GENERATE_APPLICATION_GRID_LIST_EXPORT_SUCCESS\n} from \"./types\";\n\nexport const loadApplicationsSummaryRequest = (\n payload: ApplicationsSummaryFilter\n) => ({\n type: LOAD_APPLICATIONS_SUMMARY_REQUEST,\n applicationsSummaryOptions: payload\n});\n\nexport const loadApplicationsSummaryRequestExtra = (\n payload: ApplicationsSummaryFilter\n) => ({\n type: LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA,\n applicationsSummaryOptions: payload\n});\n\nexport const loadApplicationsSummarySuccess = (\n payload: ApplicationsSummaryReceivedPayload\n) => ({\n type: LOAD_APPLICATIONS_SUMMARY_SUCCESS,\n receivedData: payload.receivedData,\n totalCount: payload.totalCount,\n isMapView: payload.isMapView\n});\n\nexport const loadApplicationsSummaryFailure = (errorMessage: string) => ({\n type: LOAD_APPLICATIONS_SUMMARY_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadMapApplicationsSummaryRequest = (\n payload: ApplicationsSummaryFilter\n) => ({\n type: LOAD_MAP_APPLICATIONS_SUMMARY_REQUEST,\n applicationsSummaryOptions: payload\n});\n\nexport const loadMapApplicationsSummarySuccess = (\n payload: ApplicationsSummaryReceivedPayload\n) => ({\n type: LOAD_MAP_APPLICATIONS_SUMMARY_SUCCESS,\n receivedData: payload.receivedData,\n totalCount: payload.totalCount\n});\n\nexport const resetApplicationsSummary = () => ({\n type: RESET_APPLICATIONS_SUMMARY\n});\n\nexport const loadRcaLogosRequest = (rcaIds: number[]) => ({\n type: LOAD_RCA_LOGOS_REQUEST,\n rcaIds: rcaIds\n});\n\nexport const loadRcaLogosSuccess = (rcaLogos: RcaLogo[]) => ({\n type: LOAD_RCA_LOGOS_SUCCESS,\n rcaLogos: rcaLogos\n});\n\nexport const loadRcaBoundariesRequest = (rcaIds: number[]) => ({\n type: LOAD_RCA_BOUNDARIES_REQUEST,\n rcaIds: rcaIds\n});\n\nexport const loadRcaBoundariesSuccess = (rcaBoundaries: RcaBoundary[]) => ({\n type: LOAD_RCA_BOUNDARIES_SUCCESS,\n rcaBoundaries: rcaBoundaries\n});\n\nexport const loadApplicationExportColumnsRequest = () => ({\n type: LOAD_APPLICATION_EXPORT_COLUMNS_REQUEST\n});\n\nexport const loadApplicationExportColumnsSuccess = (\n applicationExportColumns: ApplicationExportColumn[]\n) => ({\n type: LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS,\n applicationExportColumns: applicationExportColumns\n});\n\nexport const loadApplicationExportColumnsFailure = (errorMessage: string) => ({\n type: LOAD_APPLICATION_EXPORT_COLUMNS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const generateApplicationGridListExportRequest = (\n filters: ApplicationsSummaryFilter,\n applicationExportColumns: ApplicationExportColumn[]\n) => ({\n type: GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST,\n filters: filters,\n applicationExportColumns: applicationExportColumns\n});\n\nexport const generateApplicationGridListExportSuccess = () => ({\n type: GENERATE_APPLICATION_GRID_LIST_EXPORT_SUCCESS\n});\n\nexport const generateApplicationGridListExportFailure = (\n errorMessage: string\n) => ({\n type: GENERATE_APPLICATION_GRID_LIST_EXPORT_FAILURE,\n errorMessage: errorMessage\n});\n","import {\n LOGIN_USER_REQUEST,\n LOAD_DEFAULT_REGION_REQUEST,\n LOAD_DEFAULT_REGION_SUCCESS,\n LOAD_DEFAULT_REGION_FAILURE,\n UPDATE_STORE_DEFAULT_REGION,\n LOAD_SEARCHABLE_REGION_REQUEST,\n LOAD_SEARCHABLE_REGION_SUCCESS,\n LOAD_SEARCHABLE_REGION_FAILURE,\n RESET_STORE_SEARCHABLE_REGION,\n LOGIN_USER_SUCCESS,\n LoginSuccessData,\n LOAD_CAN_VIEW_INVOICE_FAILURE,\n LOAD_CAN_VIEW_INVOICE_REQUEST,\n LOAD_CAN_VIEW_INVOICE_SUCCESS\n} from \"./types\";\n\nexport const loginUserRequest = () => ({\n type: LOGIN_USER_REQUEST\n});\n\nexport const loginUserSuccess = (loginSuccessData: LoginSuccessData) => ({\n type: LOGIN_USER_SUCCESS,\n loginSuccessData: loginSuccessData\n});\n\nexport const loadDefaultRegionRequest = () => ({\n type: LOAD_DEFAULT_REGION_REQUEST\n});\n\nexport const loadDefaultRegionSuccess = (defaultRegion: string) => ({\n type: LOAD_DEFAULT_REGION_SUCCESS,\n defaultRegion: defaultRegion\n});\n\nexport const loadDefaultRegionFailure = (errorMessage: string) => ({\n type: LOAD_DEFAULT_REGION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const updateStoreDefaultRegion = (defaultRegion: string) => ({\n type: UPDATE_STORE_DEFAULT_REGION,\n defaultRegion: defaultRegion\n});\n\nexport const loadSearchableRegionRequest = () => ({\n type: LOAD_SEARCHABLE_REGION_REQUEST\n});\n\nexport const loadSearchableRegionSuccess = (searchableRegion: string) => ({\n type: LOAD_SEARCHABLE_REGION_SUCCESS,\n searchableRegion: searchableRegion\n});\n\nexport const loadSearchableRegionFailure = (errorMessage: string) => ({\n type: LOAD_SEARCHABLE_REGION_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetStoreSearchableRegion = () => ({\n type: RESET_STORE_SEARCHABLE_REGION\n});\n\nexport const loadCanViewInvoiceRequest = () => ({\n type: LOAD_CAN_VIEW_INVOICE_REQUEST\n});\n\nexport const loadCanViewInvoiceSuccess = (canViewInvoice: boolean) => ({\n type: LOAD_CAN_VIEW_INVOICE_SUCCESS,\n canViewInvoice: canViewInvoice\n});\n\nexport const loadCanViewInvoiceFailure = (errorMessage: string) => ({\n type: LOAD_CAN_VIEW_INVOICE_FAILURE,\n errorMessage: errorMessage\n});\n","import {\n LOAD_SHAPES_REQUEST,\n LOAD_SHAPES_SUCCESS,\n LOAD_SHAPES_FAILURE,\n RESET_SHAPES,\n LoadShapesRequest,\n ShapeDetail,\n LOAD_APPLICATION_CLASH_REQUEST,\n ApplicationClash,\n LOAD_APPLICATION_CLASH_SUCCESS,\n LOAD_APPLICATION_CLASH_FAILURE,\n ApplicationClashRequest,\n LOAD_DISPATCHES_REQUEST,\n LOAD_DISPATCHES_SUCCESS,\n LOAD_DISPATCHES_FAILURE,\n RESET_DISPATCHES_SHAPES,\n LoadDispatchesRequest,\n MapInputData,\n SET_MAP_INPUT_REQUEST\n} from \"./types\";\n\nexport const loadShapesRequest = (request: LoadShapesRequest) => ({\n type: LOAD_SHAPES_REQUEST,\n request: request\n});\n\nexport const loadShapesSuccess = (payload: ShapeDetail[]) => ({\n type: LOAD_SHAPES_SUCCESS,\n shapeDetails: payload\n});\n\nexport const loadShapesFailure = (errorMessage: string) => ({\n type: LOAD_SHAPES_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetShapes = () => ({\n type: RESET_SHAPES\n});\n\nexport const loadApplicationClashRequest = (\n applicationClashRequest: ApplicationClashRequest\n) => ({\n type: LOAD_APPLICATION_CLASH_REQUEST,\n applicationClashRequest: applicationClashRequest\n});\n\nexport const loadApplicationClashSuccess = (\n applicationClash: ApplicationClash\n) => ({\n type: LOAD_APPLICATION_CLASH_SUCCESS,\n applicationClash: applicationClash\n});\n\nexport const loadApplicationClashFailure = (errorMessage: string) => ({\n type: LOAD_APPLICATION_CLASH_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const loadDispatchesRequest = (request: LoadDispatchesRequest) => ({\n type: LOAD_DISPATCHES_REQUEST,\n request: request\n});\n\nexport const loadDispatchesSuccess = (payload: string[]) => ({\n type: LOAD_DISPATCHES_SUCCESS,\n dispatchDetails: payload\n});\n\nexport const loadDispatchesFailure = (errorMessage: string) => ({\n type: LOAD_DISPATCHES_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetDispatchesShapes = () => ({\n type: RESET_DISPATCHES_SHAPES\n});\n\nexport const setMapInputData = (mapInputData: MapInputData | null) => ({\n type: SET_MAP_INPUT_REQUEST,\n mapInputData: mapInputData\n});\n","import { Action } from \"redux\";\nimport { Lookup, Feature, AdditionalParticipant } from \"store/types\";\nimport { ErrorPayload } from \"store/error/types\";\nimport { Guid } from \"guid-typescript\";\nimport { ApplicationType } from \"common/enums\";\nimport { TTMSite } from \"store/trafficManagement/types\";\nimport { ApplicationDetail } from \"store/applicationDetail/types\";\n\n/* saga action names start */\nexport const UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST =\n \"UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST\";\nexport const UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS =\n \"UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS\";\nexport const UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE =\n \"UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE\";\nexport const DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST =\n \"DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST\";\nexport const DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS =\n \"DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS\";\nexport const DELETE_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE =\n \"DELETE_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE\";\nexport const SUBMIT_APPLICATION_REQUEST = \"SUBMIT_APPLICATION_REQUEST\";\nexport const SUBMIT_APPLICATION_SUCCESS = \"SUBMIT_APPLICATION_SUCCESS\";\nexport const SUBMIT_APPLICATION_FAILURE = \"SUBMIT_APPLICATION_FAILURE\";\n\nexport const LOAD_BILLING_ITEMS_PREVIEW_REQUEST =\n \"LOAD_BILLING_ITEMS_PREVIEW_REQUEST\";\nexport const LOAD_BILLING_ITEMS_PREVIEW_SUCCESS =\n \"LOAD_BILLING_ITEMS_PREVIEW_SUCCESS\";\nexport const LOAD_BILLING_ITEMS_PREVIEW_FAILURE =\n \"LOAD_BILLING_ITEMS_PREVIEW_FAILURE\";\n\nexport const LOAD_RCA_IDS_FROM_SHAPES_REQUEST =\n \"LOAD_RCA_IDS_FROM_SHAPES_REQUEST\";\nexport const LOAD_RCA_IDS_FROM_SHAPES_SUCCESS =\n \"LOAD_RCA_IDS_FROM_SHAPES_SUCCESS\";\nexport const LOAD_RCA_IDS_FROM_SHAPES_FAILURE =\n \"LOAD_RCA_IDS_FROM_SHAPES_FAILURE\";\n\nexport const LOAD_RCA_OPTION_FROM_ID_REQUEST =\n \"LOAD_RCA_OPTION_FROM_ID_REQUEST\";\nexport const LOAD_RCA_OPTION_FROM_ID_SUCCESS =\n \"LOAD_RCA_OPTION_FROM_ID_SUCCESS\";\nexport const LOAD_RCA_OPTION_FROM_ID_FAILURE =\n \"LOAD_RCA_OPTION_FROM_ID_FAILURE\";\n\nexport const LOAD_PRIMARY_APPLICANT_INFO_REQUEST =\n \"LOAD_PRIMARY_APPLICANT_INFO_REQUEST\";\nexport const LOAD_PRIMARY_APPLICANT_INFO_SUCCESS =\n \"LOAD_PRIMARY_APPLICANT_INFO_SUCCESS\";\nexport const LOAD_PRIMARY_APPLICANT_INFO_FAILURE =\n \"LOAD_PRIMARY_APPLICANT_INFO_FAILURE\";\n\nexport const SET_TEMPORARY_SAVED_APPLICATION_REQUEST =\n \"SET_TEMPORARY_SAVED_APPLICATION_REQUEST\";\n\nexport const CHECK_REGISTERED_ORGANISATION_REQUEST =\n \"CHECK_REGISTERED_ORGANISATION_REQUEST\";\nexport const CHECK_REGISTERED_ORGANISATION_SUCCESS =\n \"CHECK_REGISTERED_ORGANISATION_SUCCESS\";\nexport const CHECK_REGISTERED_ORGANISATION_FAILURE =\n \"CHECK_REGISTERED_ORGANISATION_FAILURE\";\nexport const LOAD_SAVED_APPLICATION_LIST_REQUEST =\n \"LOAD_SAVED_APPLICATION_LIST_REQUEST\";\nexport const LOAD_SAVED_APPLICATION_LIST_SUCCESS =\n \"LOAD_SAVED_APPLICATION_LIST_SUCCESS\";\nexport const LOAD_SAVED_APPLICATION_LIST_FAILURE =\n \"LOAD_SAVED_APPLICATION_LIST_FAILURE\";\n\nexport const DELETE_SAVED_APPLICATION_REQUEST =\n \"DELETE_SAVED_APPLICATION_REQUEST\";\nexport const DELETE_SAVED_APPLICATION_SUCCESS =\n \"DELETE_SAVED_APPLICATION_SUCCESS\";\nexport const DELETE_SAVED_APPLICATION_FAILURE =\n \"DELETE_SAVED_APPLICATION_FAILURE\";\n\nexport const LOAD_SAVED_APPLICATION_REQUEST = \"LOAD_SAVED_APPLICATION_REQUEST\";\nexport const LOAD_SAVED_APPLICATION_SUCCESS = \"LOAD_SAVED_APPLICATION_SUCCESS\";\nexport const LOAD_SAVED_APPLICATION_FAILURE = \"LOAD_SAVED_APPLICATION_FAILURE\";\n\nexport const RESET_HAS_REQUEST_FAILURE = \"RESET_HAS_REQUEST_FAILURE\";\n/* saga action names end */\n\n/* redux action names start */\nexport const RESET_CREATE_APPLICATION = \"RESET_CREATE_APPLICATION\";\nexport const SET_CREATE_APPLICATION_NEXT_STEP =\n \"SET_CREATE_APPLICATION_NEXT_STEP\";\nexport const SET_CREATE_APPLICATION_SETUP_DATA =\n \"SET_CREATE_APPLICATION_SETUP_DATA\";\nexport const SET_CREATE_APPLICATION_WHAT_DATA =\n \"SET_CREATE_APPLICATION_WHAT_DATA\";\nexport const SET_CREATE_APPLICATION_WHERE_DATA =\n \"SET_CREATE_APPLICATION_WHERE_DATA\";\nexport const SET_CREATE_APPLICATION_TRAFFIC_DATA =\n \"SET_CREATE_APPLICATION_TRAFFIC_DATA\";\nexport const SET_CREATE_APPLICATION_WHEN_DATA =\n \"SET_CREATE_APPLICATION_WHEN_DATA\";\nexport const SET_CREATE_APPLICATION_WHO_DATA =\n \"SET_CREATE_APPLICATION_WHO_DATA\";\nexport const SET_CREATE_APPLICATION_EXTRA_DATA =\n \"SET_CREATE_APPLICATION_EXTRA_DATA\";\nexport const RESET_APPLICATION_TYPE_DEPENDENT_DATA =\n \"RESET_APPLICATION_TYPE_DEPENDENT_DATA\";\nexport const LOAD_APPLICATION_SETTINGS_DATA_REQUEST =\n \"LOAD_APPLICATION_SETTINGS_DATA_REQUEST\";\nexport const LOAD_APPLICATION_SETTINGS_DATA_SUCCESS =\n \"LOAD_APPLICATION_SETTINGS_DATA_SUCCESS\";\nexport const LOAD_APPLICATION_SETTINGS_DATA_FAILURE =\n \"LOAD_APPLICATION_SETTINGS_DATA_FAILURE\";\nexport const LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST =\n \"LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST\";\nexport const LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS =\n \"LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS\";\nexport const LOAD_SIBLING_APPLICATION_SETTINGS_DATA_FAILURE =\n \"LOAD_SIBLING_APPLICATION_SETTINGS_DATA_FAILURE\";\nexport const LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET =\n \"LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET\";\n\nexport const RESET_STORE_FORCE_RCA_SELECTION =\n \"RESET_STORE_FORCE_RCA_SELECTION\";\n\nexport const DUPLICATE_APPLICATION = \"DUPLICATE_APPLICATION\";\n\nexport const RESET_DUPLICATING_STATUS = \"RESET_DUPLICATING_STATUS\";\nexport const GET_DEFAULT_BILLPAYER_REQUEST = \"GET_DEFAULT_BILLPAYER_REQUEST\";\nexport const GET_DEFAULT_BILLPAYER_SUCCESS = \"GET_DEFAULT_BILLPAYER_SUCCESS\";\n/* redux action names end */\n\nexport type SubmitApplicationRequestAction = Action<\n typeof SUBMIT_APPLICATION_REQUEST\n> & {\n newApplication: NewApplication;\n ttmSites: TTMSite[];\n};\n\ntype SubmitApplicationSuccessAction = Action<\n typeof SUBMIT_APPLICATION_SUCCESS\n> & { applicationList: ApplicationList[]; hasRequestFailure: boolean };\n\ntype SubmitApplicationFailureAction = Action<\n typeof SUBMIT_APPLICATION_FAILURE\n> &\n ErrorPayload;\n\nexport type UploadTemporaryFileRequestAction = Action<\n typeof UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST\n> & {\n applicationId: Guid;\n attachments: TemporaryAttachment[];\n};\n\ntype UploadTemporaryFileSuccessAction = Action<\n typeof UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS\n> & {\n fileIdentifiers: Guid[];\n};\n\ntype UploadTemporaryFileFailureAction = Action<\n typeof UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE\n> &\n ErrorPayload;\n\nexport type DeleteTemporaryFileRequestAction = Action<\n typeof DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST\n> & {\n applicationId: Guid;\n attachmentDetails: TemporaryAttachment;\n};\n\ntype DeleteTemporaryFileSuccessAction = Action<\n typeof DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS\n> & {\n fileIdentifier: Guid;\n};\n\ntype DeleteTemporaryFileFailureAction = Action<\n typeof DELETE_CREATE_APPLICATION_TEMPORARY_FILE_FAILURE\n> &\n ErrorPayload;\n\ntype ResetCreateApplicationAction = Action;\n\ntype SetCreateApplicationNextStepAction = Action<\n typeof SET_CREATE_APPLICATION_NEXT_STEP\n>;\n\ntype SetCreateApplicationSetupaDataAction = Action<\n typeof SET_CREATE_APPLICATION_SETUP_DATA\n> & {\n setupData: SetupData;\n};\n\ntype SetCreateApplicationWhatDataAction = Action<\n typeof SET_CREATE_APPLICATION_WHAT_DATA\n> & {\n whatData: WhatData;\n};\n\ntype SetCreateApplicationWhereDataAction = Action<\n typeof SET_CREATE_APPLICATION_WHERE_DATA\n> & {\n whereData: WhereData;\n};\n\ntype SetCreateApplicationTrafficDataAction = Action<\n typeof SET_CREATE_APPLICATION_TRAFFIC_DATA\n> & {\n trafficData: TrafficData;\n};\n\ntype SetCreateApplicationWhenDataAction = Action<\n typeof SET_CREATE_APPLICATION_WHEN_DATA\n> & {\n whenData: WhenData;\n};\n\ntype SetCreateApplicationWhoDataAction = Action<\n typeof SET_CREATE_APPLICATION_WHO_DATA\n> & {\n whoData: WhoData;\n};\n\ntype SetCreateApplicationExtraDataAction = Action<\n typeof SET_CREATE_APPLICATION_EXTRA_DATA\n> & {\n extraData: ExtraData;\n};\n\ntype ResetApplicationTypeDependentDataAction = Action<\n typeof RESET_APPLICATION_TYPE_DEPENDENT_DATA\n>;\n\nexport type LoadApplicationSettingsDataRequestAction = Action<\n typeof LOAD_APPLICATION_SETTINGS_DATA_REQUEST\n> & { rcaIds: number[] };\n\ntype LoadApplicationSettingsSuccessAction = Action<\n typeof LOAD_APPLICATION_SETTINGS_DATA_SUCCESS\n> & { applicationSettings: ApplicationSettingsData };\n\nexport type LoadSiblingApplicationSettingsRequestAction = Action<\n typeof LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST\n> & { rcaIds: number[] };\n\ntype LoadSiblingApplicationSettingsSuccessAction = Action<\n typeof LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS\n> & { siblingApplicationSettings: ApplicationSettingsData };\n\ntype LoadSiblingApplicationSettingsResetAction = Action<\n typeof LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET\n>;\n\nexport type LoadBillingItemsPreviewRequestAction = Action<\n typeof LOAD_BILLING_ITEMS_PREVIEW_REQUEST\n> & {\n billingPreviewRequest: BillingPreviewRequestModel;\n};\n\ntype LoadBillingItemsPreviewSuccessAction = Action<\n typeof LOAD_BILLING_ITEMS_PREVIEW_SUCCESS\n> & {\n data: RcaBillableItemGroupingModel[];\n};\n\ntype LoadBillingItemsPreviewFailureAction = Action<\n typeof LOAD_BILLING_ITEMS_PREVIEW_FAILURE\n> &\n ErrorPayload;\n\nexport type LoadRcaIdsFromShapesRequestAction = Action<\n typeof LOAD_RCA_IDS_FROM_SHAPES_REQUEST\n> & {\n shapes: Feature[];\n};\n\ntype LoadRcaIdsFromShapesSuccessAction = Action<\n typeof LOAD_RCA_IDS_FROM_SHAPES_SUCCESS\n> & {\n rcaOptions: RcaApplicationModel[];\n};\n\ntype LoadRcaIdsFromShapesFailureAction = Action<\n typeof LOAD_RCA_IDS_FROM_SHAPES_FAILURE\n> &\n ErrorPayload;\n\ntype ResetForceRcaSelectionAction = Action<\n typeof RESET_STORE_FORCE_RCA_SELECTION\n>;\n\nexport type LoadRcaOptionFromIdRequestAction = Action<\n typeof LOAD_RCA_OPTION_FROM_ID_REQUEST\n> & {\n rcaId: number;\n};\n\ntype LoadRcaOptionFromIdSuccessAction = Action<\n typeof LOAD_RCA_OPTION_FROM_ID_SUCCESS\n> & {\n rcaOption: RcaApplicationModel;\n};\n\nexport type LoadPrimaryApplicantInfoRequestAction = Action<\n typeof LOAD_PRIMARY_APPLICANT_INFO_REQUEST\n> & {\n userId: number;\n rcaIds?: number[];\n};\n\ntype LoadPrimaryApplicantInfoSuccessAction = Action<\n typeof LOAD_PRIMARY_APPLICANT_INFO_SUCCESS\n> & {\n billPayer: Lookup;\n organisation: Lookup;\n};\n\ntype DuplicateApplicationAction = Action & {\n applicationData: ApplicationDetail;\n};\n\ntype ResetDuplicatingStatusAction = Action;\n\nexport type SetTemporarySavedApplicationRequestAction = Action<\n typeof SET_TEMPORARY_SAVED_APPLICATION_REQUEST\n> & {\n newApplication: NewApplication;\n ttmSites: TTMSite[];\n};\n\nexport type CheckRegisteredOrganisationRequestAction = Action<\n typeof CHECK_REGISTERED_ORGANISATION_REQUEST\n> & {\n organisationId: number;\n rcaIds: number[];\n};\n\ntype CheckRegisteredOrganisationSuccessAction = Action<\n typeof CHECK_REGISTERED_ORGANISATION_SUCCESS\n> & {\n organisationRegisters: OrganisationRegisters;\n};\n\nexport type LoadSavedApplicationsListRequestAction = Action<\n typeof LOAD_SAVED_APPLICATION_LIST_REQUEST\n>;\n\ntype LoadSavedApplicationsListSuccessAction = Action<\n typeof LOAD_SAVED_APPLICATION_LIST_SUCCESS\n> & {\n savedApplications: TemporaryDisplaySavedApplication[];\n};\n\nexport type DeleteSavedApplicationRequestAction = Action<\n typeof DELETE_SAVED_APPLICATION_REQUEST\n> & {\n id: Guid;\n};\n\ntype DeleteSavedApplicationSuccessAction = Action<\n typeof DELETE_SAVED_APPLICATION_SUCCESS\n> & {\n id: Guid;\n};\n\nexport type LoadSavedApplicationRequestAction = Action<\n typeof LOAD_SAVED_APPLICATION_REQUEST\n> & {\n id: Guid;\n};\n\ntype LoadSavedApplicationSuccessAction = Action<\n typeof LOAD_SAVED_APPLICATION_SUCCESS\n> & {\n newApplication: NewApplication;\n};\n\ntype ResetHasRequestFailureAction = Action;\n\nexport type GetDefaultBillPayerRequestAction = Action<\n typeof GET_DEFAULT_BILLPAYER_REQUEST\n> & {\n organisationId: number;\n rcaIds?: number[];\n userId?: number | null;\n};\n\ntype GetDefaultBillPayerSuccessAction = Action<\n typeof GET_DEFAULT_BILLPAYER_SUCCESS\n> & {\n billPayer: Lookup\n};\n\nexport type CreateApplicationActionTypes =\n | ResetCreateApplicationAction\n | SetCreateApplicationNextStepAction\n | SetCreateApplicationSetupaDataAction\n | SetCreateApplicationWhatDataAction\n | SetCreateApplicationWhereDataAction\n | SetCreateApplicationWhenDataAction\n | SetCreateApplicationTrafficDataAction\n | SetCreateApplicationWhoDataAction\n | SetCreateApplicationExtraDataAction\n | UploadTemporaryFileRequestAction\n | UploadTemporaryFileSuccessAction\n | UploadTemporaryFileFailureAction\n | DeleteTemporaryFileRequestAction\n | DeleteTemporaryFileSuccessAction\n | DeleteTemporaryFileFailureAction\n | ResetApplicationTypeDependentDataAction\n | SubmitApplicationRequestAction\n | SubmitApplicationSuccessAction\n | SubmitApplicationFailureAction\n | LoadApplicationSettingsDataRequestAction\n | LoadApplicationSettingsSuccessAction\n | LoadBillingItemsPreviewRequestAction\n | LoadBillingItemsPreviewSuccessAction\n | LoadBillingItemsPreviewFailureAction\n | LoadRcaIdsFromShapesRequestAction\n | LoadRcaIdsFromShapesSuccessAction\n | LoadRcaIdsFromShapesFailureAction\n | ResetForceRcaSelectionAction\n | LoadRcaOptionFromIdSuccessAction\n | LoadPrimaryApplicantInfoSuccessAction\n | DuplicateApplicationAction\n | ResetDuplicatingStatusAction\n | CheckRegisteredOrganisationSuccessAction\n | LoadSavedApplicationsListSuccessAction\n | DeleteSavedApplicationSuccessAction\n | LoadSavedApplicationSuccessAction\n | LoadSiblingApplicationSettingsSuccessAction\n | LoadSiblingApplicationSettingsResetAction\n | ResetHasRequestFailureAction\n | GetDefaultBillPayerSuccessAction;\n\nexport type NewApplication = {\n id: Guid;\n currentMaxStep: number;\n rcaOptions: RcaApplicationModel[];\n billingPreview: RcaBillableItemGroupingModel[];\n setupData: SetupData;\n whereData: WhereData;\n whatData: WhatData;\n trafficData: TrafficData;\n whenData: WhenData;\n whoData: WhoData;\n extraData: ExtraData;\n organisationRegisters?: OrganisationRegisters;\n};\n\nexport type RcaBillableItemModel = {\n rcaId: number;\n rcaName: string;\n rcaWebsite: string;\n carId: number;\n templateId: number;\n quantity: number;\n rate: number;\n unitId: number;\n rebatedItemId?: number;\n description: string;\n amount: number;\n};\n\nexport type RcaBillableItemGroupingModel = {\n rcaName: string;\n billableItems: RcaBillableItemModel[];\n};\n\nexport type BillingPreviewRequestModel = {\n rcaOrganisationIds: number[];\n shapeArea: number;\n shapeLength: number;\n applicationTypeId: number;\n estimatedDuration: number;\n roadClosureRequired?: boolean;\n roadLevelId?: number;\n workTypeId: number;\n tmpCount: number;\n estimatedCompletionDate?: Date;\n locationInRoadIds: number[];\n speedLimitIds: number[];\n};\n\nexport type SetupData = {\n hasNoConflicts: boolean;\n applicationType?: ApplicationType;\n hasTMPForUpload: boolean;\n hasServicePlans: boolean;\n isDuplicating: boolean;\n};\n\nexport type WhatData = {\n description: string;\n isGlobalCar: boolean;\n activities: Lookup[];\n};\n\nexport type WhereData = {\n streetNumber: string;\n streetName: string;\n suburb: string;\n townCity: string;\n postCode: string;\n locationsInRoad: Lookup[];\n addressNotes?: string;\n shapes: Feature[];\n forceRcaSelection: boolean;\n};\n\nexport type WhenData = {\n workType: Lookup;\n majorActivities: Lookup[];\n duration?: string;\n startDate?: Date;\n endDate?: Date;\n normalWorkingHours: string;\n};\n\nexport type WhoData = {\n primaryApplicant: Lookup;\n primaryApplicantOrganisation: Lookup;\n principalRole: Lookup | null;\n isOnBehalfOfUtilityOperator: boolean;\n isPrincipal: boolean;\n isPrincipalAnOrganisation: boolean;\n principalOrganisation: Lookup;\n principalContactPerson: Lookup;\n billPayerOrganisation: Lookup;\n billPayer: Lookup;\n utilityOperatorOrganisation: Lookup;\n utilityOperatorContact: Lookup;\n additionalParticipants: AdditionalParticipant[];\n showUtilityOperatorOption?: boolean;\n showPrincipalFillOutForm?: boolean;\n};\n\nexport type CreateApplicationState = {\n newApplication: NewApplication;\n savedApplications: TemporaryDisplaySavedApplication[];\n newApplicationList?: ApplicationList[];\n applicationSettingsData?: ApplicationSettingsData;\n siblingApplicationSettings?: ApplicationSettingsData;\n hasRequestFailure: boolean;\n};\n\nexport type TrafficData = {\n roadLevel: Lookup | null;\n isFullRoadClosureRequired: boolean;\n tmp?: TemporaryAttachment[];\n};\n\nexport type TemporaryAttachment = {\n filename: string;\n identifier: Guid;\n attachmentType: Lookup;\n isUploaded: boolean;\n file?: File;\n};\n\nexport type ExtraData = {\n consentNumber: string;\n utilityReferenceNumber: string;\n purchaseOrderNumber: string;\n extraInformation: string;\n extraAttachments?: TemporaryAttachment[];\n};\n\nexport type ApplicationSettingsData = {\n organisationId: number;\n isBillPayerRequired: boolean;\n isUoRegisterEnabled: boolean;\n isTtmRegisterEnabled: boolean;\n isBillPayerRegisterEnabled: boolean;\n workingDaysToSubmitMajorExcavation: number;\n workingDaysToSubmitMinorExcavation: number;\n workingDaysToSubmitPreliminary: number;\n workingDaysToSubmitEvent: number;\n workingDaysToSubmitNonExcavation: number;\n enforceTtmUpload: boolean;\n enforcePoNumber: boolean;\n isBillingModuleEnabled: boolean;\n rcaNames: string;\n rcaWithEnforcedPdfAttachment: string;\n enableMajorProcessingHistory: boolean;\n};\n\nexport type RcaApplicationModel = {\n rcaId: number;\n rcaCustomisationTypeIds: number[];\n rcaName: string;\n rcaWebsite: string;\n isActive: boolean;\n isSubmiticaEnabled: boolean;\n};\n\nexport type TemporarySavedApplication = {\n applicationDetail: string;\n ttmDetail: string;\n};\n\nexport type TemporaryDisplaySavedApplication = {\n id: Guid;\n description: string;\n};\n\nexport const BILL_PAYER = \"billPayer\";\nexport const PRINCIPAL_CONTACT_PERSON = \"principalContactPerson\";\n\nexport type ApplicationList = {\n carId: number;\n rcaId: number;\n carNumber: string;\n};\n\nexport type OrganisationRegisters = {\n isRegisteredUtilityOperator: boolean;\n isRegisteredTrafficManager: boolean;\n};\n","// note on window.msal usage. There is little point holding the object constructed by new Msal.UserAgentApplication\n// as the constructor for this class will make callbacks to the acquireToken function and these occur before\n// any local assignment can take place. Not nice but its how it works.\nimport * as Msal from \"msal\";\nimport React from \"react\";\nimport jwt_decode from \"jwt-decode\";\nimport axios from \"axios\";\nimport store from \"store\";\n\nconst LOCAL_STORAGE = \"localStorage\";\nconst SESSION_STORAGE = \"sessionStorage\";\nconst AUTHORIZATION_KEY = \"Authorization\";\n\nconst state = {\n stopLoopingRedirect: false,\n launchApp: null,\n accessToken: null,\n scopes: [],\n cacheLocation: null,\n resetUrl: null,\n policy: null,\n auth: null,\n timeOutHandle: null,\n msalConfig: {\n auth: {\n clientId: null,\n authority: null,\n validateAuthority: false,\n redirectUri: null,\n postLogoutRedirectUri: null\n },\n cache: {\n cacheLocation: \"localStorage\",\n storeAuthStateInCookie: false\n }\n },\n apiConfig: {\n b2cScopes: [],\n webApi: null\n },\n b2cPolicies: {\n names: {\n signUpSignIn: null,\n forgotPassword: null\n },\n authorities: {\n signUpSignIn: {\n authority: null\n },\n forgotPassword: {\n authority: null\n }\n }\n },\n loginRequest: {\n scopes: [\"openid\", \"profile\"],\n forceRefresh: true\n }\n};\n\nfunction authCallback(error) {\n if (error && error.errorMessage.indexOf(\"AADB2C90118\") > -1) {\n window.msal.loginRedirect(state.b2cPolicies.authorities.forgotPassword);\n } else if (\n error &&\n (error.errorMessage.indexOf(\"AADB2C90091\") > -1 ||\n error.errorMessage.indexOf(\"AADB2C90075\") > -1)\n ) {\n acquireToken();\n } else if (error) {\n state.stopLoopingRedirect = true;\n } else {\n acquireToken();\n }\n}\n\nconst cleanUpStorage = cacheLocation => {\n if (cacheLocation === LOCAL_STORAGE) {\n window.localStorage.removeItem(AUTHORIZATION_KEY);\n } else if (cacheLocation === SESSION_STORAGE) {\n window.sessionStorage.removeItem(AUTHORIZATION_KEY);\n }\n};\n\naxios.interceptors.response.use(\n function (response) {\n return response;\n },\n async function (error) {\n const originalRequest = error.config;\n if (\n originalRequest &&\n error.response.status === 401 &&\n !originalRequest._retry\n ) {\n originalRequest._retry = true;\n\n return new Promise(function (resolve, reject) {\n acquireToken(() => {\n originalRequest.headers[\"Authorization\"] = state.auth;\n resolve(axios(originalRequest));\n });\n });\n }\n return Promise.reject(error);\n }\n);\n\nfunction applyToken(jwt) {\n state.auth = `Bearer ${jwt}`;\n axios.defaults.headers.common[\"Authorization\"] = state.auth;\n\n const decoded = jwt_decode(jwt);\n const authorization = getAuthorization(decoded);\n store.dispatch(authorization);\n\n clearTimeout(state.timeOutHandle);\n\n state.timeOutHandle = setTimeout(() => {\n acquireToken();\n }, new Date(decoded.exp * 1000).getTime() - new Date().getTime() + 3000);\n}\n\nfunction getAuthorization(decoded) {\n return {\n type: \"LOGIN_USER_SUCCESS\",\n loginSuccessData: {\n userId: decoded.submiticaUserId,\n firstName: decoded.submiticaFirstName,\n lastName: decoded.submiticaLastName,\n organisationId: decoded.submiticaOrganisationId,\n organisationName: decoded.submiticaOrganisationName,\n isOrganisationManager: decoded.isOrganisationManager,\n profileUpdateRequired: decoded.profileUpdateRequired,\n isAuthenticated: true\n }\n };\n}\n\nfunction acquireToken(successCallback) {\n window.msal.acquireTokenSilent(state).then(\n result => {\n if (state.cacheLocation === LOCAL_STORAGE) {\n window.localStorage.setItem(\n AUTHORIZATION_KEY,\n \"Bearer \" + result.accessToken\n );\n } else {\n window.sessionStorage.setItem(\n AUTHORIZATION_KEY,\n \"Bearer \" + result.accessToken\n );\n }\n\n state.accessToken = result.accessToken;\n\n applyToken(result.accessToken);\n\n if (successCallback) {\n successCallback();\n }\n },\n error => {\n if (error) {\n window.msal.loginRedirect(state.scopes);\n }\n }\n );\n}\n\nconst authentication = {\n initialize: config => {\n cleanUpStorage(config.cacheLocation);\n state.b2cPolicies = {\n names: {\n signUpSignIn: config.signInPolicy,\n forgotPassword: config.resetPolicy\n },\n authorities: {\n signUpSignIn: {\n authority: `https://${config.tenantName}.b2clogin.com/${config.tenant}/${config.signInPolicy}`\n },\n forgotPassword: {\n authority: `https://${config.tenantName}.b2clogin.com/${config.tenant}/${config.resetPolicy}`\n }\n }\n };\n state.apiConfig = {\n b2cScopes: config.scopes,\n webApi: `https://${config.tenant}/api`\n };\n state.msalConfig = {\n auth: {\n clientId: config.clientId,\n authority: state.b2cPolicies.authorities.signUpSignIn.authority,\n validateAuthority: false,\n redirectUri: config.redirectUri,\n postLogoutRedirectUri: config.postLogoutRedirectUri\n },\n cache: {\n cacheLocation: config.cacheLocation,\n storeAuthStateInCookie: false\n }\n };\n state.scopes = config.scopes;\n state.cacheLocation = config.cacheLocation;\n new Msal.UserAgentApplication(state.msalConfig);\n window.msal.handleRedirectCallback(authCallback);\n },\n run: launchApp => {\n state.launchApp = launchApp;\n if (\n !window.msal.isCallback(window.location.hash) &&\n window.parent === window\n ) {\n if (!state.stopLoopingRedirect) {\n acquireToken();\n }\n }\n },\n required: (WrappedComponent, renderLoading) => {\n // eslint-disable-next-line react/display-name\n return class extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n signedIn: false\n };\n }\n\n componentDidMount() {\n if (state.accessToken) {\n if (!state.signedIn) {\n this.setState({\n signedIn: true\n });\n }\n } else {\n acquireToken(() => {\n this.setState({\n signedIn: true\n });\n });\n }\n }\n\n render() {\n if (this.state.signedIn) {\n return ;\n }\n return typeof renderLoading === \"function\" ? renderLoading() : null;\n }\n };\n },\n signOut: () => window.msal.logout(),\n getAccessToken: () => state.accessToken,\n forceRefresh: () => {\n window.localStorage.clear();\n window.msal.loginRedirect(state.scopes);\n }\n};\n\nexport default authentication;\n","import {\n SETDARKTHEME,\n SETLIGHTTHEME,\n SETPREFERENCES,\n PreferencesState,\n LOADPREFERENCES,\n SummariesViewMode,\n CHANGE_VIEW_MODE,\n SET_COLUMN_SORTING,\n GET_FILTER_PREFERENCE_REQUEST,\n GET_FILTER_PREFERENCE_FAILURE,\n SET_FILTER_PREFERENCE_REQUEST,\n SET_FILTER_PREFERENCE_FAILURE,\n SET_FILTER_PREFERENCE_SUCCESS,\n GET_FILTER_PREFERENCE_SUCCESS\n} from \"./types\";\nimport { FilterPreferences, SortModel } from \"store/types\";\n\nexport const setDarkTheme = () => {\n return { type: SETDARKTHEME };\n};\n\nexport const setLightTheme = () => {\n return { type: SETLIGHTTHEME };\n};\n\nexport const loadPreferences = () => {\n return { type: LOADPREFERENCES };\n};\n\nexport const setPreferences = (preferences: PreferencesState) => {\n return { type: SETPREFERENCES, preferences: preferences };\n};\n\nexport const changeViewMode = (view: SummariesViewMode) => {\n return { type: CHANGE_VIEW_MODE, viewMode: view };\n};\n\nexport const setColumnSorting = (columnSorting: SortModel[]) => {\n return { type: SET_COLUMN_SORTING, columnSorting: columnSorting };\n};\n\nexport const getFilterPreferenceRequest = (loggedInUserId: number) => ({\n type: GET_FILTER_PREFERENCE_REQUEST,\n loggedInUserId: loggedInUserId\n});\n\nexport const getFilterPreferenceSuccess = (\n filterPreference: FilterPreferences,\n loggedInUserId: number\n) => ({\n type: GET_FILTER_PREFERENCE_SUCCESS,\n filterPreference: filterPreference,\n loggedInUserId: loggedInUserId\n});\n\nexport const getFilterPreferenceFailure = (errorMessage: string) => ({\n type: GET_FILTER_PREFERENCE_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const setFilterPreferenceRequest = (\n filterPreference: FilterPreferences\n) => ({\n type: SET_FILTER_PREFERENCE_REQUEST,\n filterPreference: filterPreference\n});\n\nexport const setFilterPreferenceSuccess = (\n filterPreference: FilterPreferences\n) => ({\n type: SET_FILTER_PREFERENCE_SUCCESS,\n filterPreference: filterPreference\n});\n\nexport const setFilterPreferenceFailure = (errorMessage: string) => ({\n type: SET_FILTER_PREFERENCE_FAILURE,\n errorMessage: errorMessage\n});\n","import {\n LOAD_BILL_PAYER_REQUEST,\n BillPayer,\n LOAD_BILL_PAYER_SUCCESS,\n LOAD_BILL_PAYER_FAILURE,\n ADD_BILL_PAYER_REQUEST,\n AddBillPayerModel,\n ADD_BILL_PAYER_SUCCESS,\n ADD_BILL_PAYER_FAILURE,\n CLEAR_BILL_PAYER_DETAIL\n} from \"./types\";\n\nexport const clearBillPayerDetail = () => ({\n type: CLEAR_BILL_PAYER_DETAIL\n});\n\nexport const loadBillPayerRequest = (id: number) => ({\n type: LOAD_BILL_PAYER_REQUEST,\n id: id\n});\n\nexport const loadBillPayerSuccess = (billPayer: BillPayer) => ({\n type: LOAD_BILL_PAYER_SUCCESS,\n billPayer: billPayer\n});\n\nexport const loadBillPayerFailure = (errorMessage: string) => ({\n type: LOAD_BILL_PAYER_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const addBillPayerRequest = (billPayer: AddBillPayerModel) => ({\n type: ADD_BILL_PAYER_REQUEST,\n billPayer: billPayer\n});\n\nexport const addBillPayerSuccess = (billPayer: BillPayer) => ({\n type: ADD_BILL_PAYER_SUCCESS,\n billPayer: billPayer\n});\n\nexport const addBillPayerFailure = (errorMessage: string) => ({\n type: ADD_BILL_PAYER_FAILURE,\n errorMesage: errorMessage\n});\n","//map colours\nexport const EventBorderColour = \"#0a7707\";\nexport const EventFillColour = \"#24ac20\";\nexport const ExcavationBorderColour = \"#015782\";\nexport const ExcavationFillColour = \"#0078B4\";\nexport const NonExcavationBorderColour = \"#7A037C\";\nexport const NonExcavationFillColour = \"#F50AF9\";\nexport const PreliminaryBorderColour = \"#4B4B4B\";\nexport const PreliminaryFillColour = \"#8C8885\";\nexport const RetrospectiveBorderColour = \"#d0aa15\";\nexport const RetrospectiveFillColour = \"#ffd326\";\nexport const DispatchBorderColour = \"#800000\";\nexport const DispatchFillColour = \"#BF0000\";\n\n//base theme colours\nexport const SubmiticaGreen = \"#96d100\"; // this is the original submitica colour\nexport const SubmiticaDarkGreen = \"hsl(77, 100%, 36%)\"; // this is the colours for icons and text\nexport const SubmiticaGrey = \"#2e3841\";\nexport const SubmiticaLightGrey = \"hsl(0, 0%, 99%)\";\nexport const SubmiticaWhite = \"#fff\";\nexport const SubmiticaBlack = \"#000\";\nexport const SubmiticaWhiteOffset = \"#f2f2f2\";\nexport const SubmiticaGreenOffset = \"rgba(150, 209, 0, 0.08)\";\nexport const SubmiticaYellow = \"#ffa000\";\nexport const SubmiticaOrange = \"#ff7600\";\n\n//light theme colours\nexport const LightSubmiticaLabel = \"rgba(0, 0, 0, 0.6)\";\nexport const LightSubmiticaRed = \"#cc0000\";\n\n//dark theme colours\nexport const DarkSubmiticaWhite = \"#e6e6e6\";\nexport const DarkSubmiticaLabel = \"rgba(255, 255, 255, 0.6)\";\nexport const DarkSubmiticaRed = \"#ff0000\";\n","import {\n LOAD_LOOKUP_REQUEST,\n LOAD_LOOKUP_SUCCESS,\n LOAD_LOOKUP_FAILURE,\n RESET_LOOKUP_DATA\n} from \"./types\";\nimport { Lookup, SearchModel } from \"store/types\";\nimport { Endpoint } from \"common/endpoints\";\n\nexport const loadLookupRequest = (\n endpoint?: Endpoint,\n route?: string, //< This route is indicative of which lookup set is being requested and can be found as one of the constants in the ./types.ts file\n args?: string[] | SearchModel\n) => ({\n type: LOAD_LOOKUP_REQUEST,\n endpoint: endpoint,\n route: route,\n args: args\n});\n\nexport const loadLookupSuccess = (route: string, data: Lookup[]) => ({\n type: LOAD_LOOKUP_SUCCESS,\n route: route,\n data: data\n});\n\nexport const loadLookupFailure = (errorMessage: string) => ({\n type: LOAD_LOOKUP_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const resetLookupData = (route: string) => ({\n type: RESET_LOOKUP_DATA,\n route: route\n});\n","export const APPLICANT_PRIMARY_CONTACT = \"Applicant Primary Contact\";\nexport const PRINCIPAL_PRIMARY_CONTACT = \"Principal Primary Contact\";\nexport const BILL_PAYER = \"Bill Payer\";\n\nexport const API_ROUTE = \"/api/\";\n\n// Confirmation messages\nexport const MESSAGE_UNSAVED_CHANGES =\n \"You have unsaved changes. Navigating away will cause those changes to be lost. Press OK to discard your changes or CLOSE to keep them.\";\nexport const MESSAGE_LEAVE_APPLICATION_PROCESS =\n \"Your application is not yet complete. If you change pages, your application will be saved for you to work on later. Click OK to continue\";\nexport const MESSAGE_DELETE_TEMPORARY_ATTACHMENT =\n \"Are you sure you want to remove this attachment?\";\nexport const MESSAGE_FILTER_UNAPPLIED =\n \"Navigating away from this panel will not apply the filter. Press OK to discard your filter changes. Press CLOSE to return to the filter.​\";\nexport const MESSAGE_REMOVE_FILTER =\n \"Are you sure you want to remove the currently applied filter?\";\n\nexport const TTM_SITES_HELP_MODAL_TITLE = \"Traffic Management Sites\";\nexport const TTM_DETOURS_HELP_MODAL_TITLE = \"Traffic Management Detours\";\nexport const TTM_CLOSURES_HELP_MODAL_TITLE = \"Traffic Management Closure Times\";\n\nexport const REGEX_NAME_PATTERN = /^[a-zA-Z]+((['. -][a-zA-Z ])?[a-zA-Z]*)*\\.?$/;\n\n// For upload attachment error messages\nexport const INVALID_FILE_TYPE_MESSAGE =\n \"only allows PDF attachments to be uploaded.\";\nexport const FILE_LIMIT_EXCEEDED_MESSAGE =\n \"$FILE_NAME exceeds the maximum file size limit of $FILE_SIZE MB\";\nexport const FILE_NAME = \"$FILE_NAME\";\nexport const FILE_SIZE = \"$FILE_SIZE\";\n\nexport const INITIAL_ZOOM_VALUE = 13;\n\nexport const MAX_FILE_NUMBER_EXCEEDED_MESSAGE =\n \"You can only upload a maximum of $MAX_FILES files\";\nexport const MAX_FILES = \"$MAX_FILES\";\n","import {\n AuthState,\n AuthStateActionTypes,\n LOGIN_USER_SUCCESS,\n LOAD_DEFAULT_REGION_SUCCESS,\n UPDATE_STORE_DEFAULT_REGION,\n LOAD_SEARCHABLE_REGION_SUCCESS,\n RESET_STORE_SEARCHABLE_REGION,\n LOAD_CAN_VIEW_INVOICE_SUCCESS\n} from \"./types\";\nimport produce from \"immer\";\n\nconst initialState: AuthState = {\n isLoggedIn: true,\n isLoading: true,\n isAuthenticated: false,\n firstName: \"\",\n lastName: \"\",\n userId: 0,\n organisationName: \"\",\n organisationId: 0,\n isOrganisationManager: false,\n profileUpdateRequired: false\n};\n\nconst authReducer = produce(\n (draft: AuthState, action: AuthStateActionTypes) => {\n switch (action.type) {\n case LOGIN_USER_SUCCESS: {\n draft.userId = action.loginSuccessData.userId;\n draft.firstName = action.loginSuccessData.firstName;\n draft.lastName = action.loginSuccessData.lastName;\n draft.organisationName = action.loginSuccessData.organisationName;\n draft.organisationId = action.loginSuccessData.organisationId;\n draft.isOrganisationManager =\n action.loginSuccessData.isOrganisationManager;\n draft.profileUpdateRequired =\n action.loginSuccessData.profileUpdateRequired;\n draft.isAuthenticated = action.loginSuccessData.isAuthenticated;\n draft.isLoading = false;\n return;\n }\n case UPDATE_STORE_DEFAULT_REGION:\n case LOAD_DEFAULT_REGION_SUCCESS: {\n draft.defaultRegion = action.defaultRegion;\n return;\n }\n case LOAD_SEARCHABLE_REGION_SUCCESS: {\n draft.searchableRegion = action.searchableRegion;\n return;\n }\n case RESET_STORE_SEARCHABLE_REGION: {\n draft.searchableRegion = undefined;\n return;\n }\n case LOAD_CAN_VIEW_INVOICE_SUCCESS: {\n draft.canViewInvoice = action.canViewInvoice;\n return;\n }\n }\n },\n initialState\n);\n\nexport default authReducer;\n","import {\n PreferencesState,\n PreferencesStateActionTypes,\n SETLIGHTTHEME,\n SETDARKTHEME,\n SETPREFERENCES,\n LOADPREFERENCES,\n CHANGE_VIEW_MODE,\n TABLE_VIEW,\n SET_COLUMN_SORTING,\n GET_FILTER_PREFERENCE_SUCCESS,\n SET_FILTER_PREFERENCE_SUCCESS\n} from \"./types\";\nimport produce from \"immer\";\nimport { LIGHT, DARK } from \"styles/themes/types\";\nimport { FilterPreferences } from \"store/types\";\n\nconst getThemeFromStorage = () => {\n const themeFromStorage = localStorage.getItem(\"theme\");\n\n switch (themeFromStorage) {\n case LIGHT: {\n return LIGHT;\n }\n case DARK: {\n return DARK;\n }\n default: {\n return LIGHT;\n }\n }\n};\n\nconst initialState: PreferencesState = {\n theme: getThemeFromStorage(),\n isLoading: false,\n applicationsViewMode: TABLE_VIEW,\n filterPreferences: {\n searchValue: \"\",\n rcaSelection: [],\n statusSelection: [],\n stepSelection: [],\n typeSelection: [],\n roleSelection: [],\n peopleSelection: [],\n endDate: undefined,\n startDate: undefined,\n quickFilterSelection: undefined\n },\n columnSorting: []\n};\n\nconst preferencesReducer = produce(\n (draft: PreferencesState, action: PreferencesStateActionTypes) => {\n switch (action.type) {\n case SETLIGHTTHEME:\n localStorage.setItem(\"theme\", LIGHT);\n draft.theme = LIGHT;\n return;\n case LOADPREFERENCES:\n draft.isLoading = true;\n return;\n case SETDARKTHEME:\n localStorage.setItem(\"theme\", DARK);\n draft.theme = DARK;\n return;\n case SETPREFERENCES:\n draft.isLoading = false;\n draft = action.preferences;\n return;\n case CHANGE_VIEW_MODE:\n draft.applicationsViewMode = action.viewMode;\n return;\n case SET_COLUMN_SORTING: {\n draft.columnSorting = action.columnSorting;\n return;\n }\n case GET_FILTER_PREFERENCE_SUCCESS: {\n if (action.filterPreference) {\n // Assigning \"undefined\" value for those that were saved as null into the database for comparing changes later on\n draft.filterPreferences = Object.keys(action.filterPreference).reduce(\n (acc, current) => {\n const currentData =\n action.filterPreference[\n `${current}` as keyof FilterPreferences\n ];\n\n if (current.toUpperCase().match(/DATE/g)) {\n acc = {\n ...acc,\n [current]:\n currentData === null\n ? undefined\n : new Date(currentData as string)\n };\n } else {\n acc = {\n ...acc,\n [current]: currentData === null ? undefined : currentData\n };\n }\n\n return acc;\n },\n {} as FilterPreferences\n );\n } else {\n draft.filterPreferences = {\n ...initialState.filterPreferences,\n peopleSelection: [{ id: action.loggedInUserId, description: \"Me\" }]\n };\n }\n\n return;\n }\n case SET_FILTER_PREFERENCE_SUCCESS: {\n draft.filterPreferences = action.filterPreference;\n return;\n }\n }\n },\n initialState\n);\n\nexport default preferencesReducer;\n","import produce from \"immer\";\nimport {\n ApplicationsSummaryActionTypes,\n ApplicationsSummaryState,\n LOAD_APPLICATIONS_SUMMARY_SUCCESS,\n LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS,\n LOAD_RCA_BOUNDARIES_SUCCESS,\n LOAD_RCA_LOGOS_SUCCESS,\n RcaBoundary,\n RESET_APPLICATIONS_SUMMARY\n} from \"./types\";\nimport Wkt from \"wicket\";\nimport wktToFeatures from \"common/wktToFeatures\";\n\nconst initialState: ApplicationsSummaryState = {\n applicationsSummaryData: [],\n totalSummaries: 0,\n rcaLogos: [],\n rcaBoundaries: [],\n applicationExportColumns: []\n};\n\nconst applicationsSummaryReducer = produce(\n (draft: ApplicationsSummaryState, action: ApplicationsSummaryActionTypes) => {\n switch (action.type) {\n case LOAD_APPLICATIONS_SUMMARY_SUCCESS: {\n const wicket = new Wkt.Wkt();\n action.receivedData = action.receivedData.map(x => {\n return {\n ...x,\n [\"dateSubmitted\"]: new Date(x.dateSubmitted),\n [\"estimatedStartDate\"]: new Date(x.estimatedStartDate),\n [\"estimatedCompletionDate\"]: new Date(x.estimatedCompletionDate),\n [\"features\"]: x.shapes ? wktToFeatures(wicket, x.shapes) : []\n };\n });\n\n if (action.isMapView) {\n draft.applicationsSummaryData = action.receivedData;\n } else {\n draft.applicationsSummaryData.push(...action.receivedData);\n }\n\n if (action.totalCount >= 0) {\n draft.totalSummaries = action.totalCount;\n }\n\n return;\n }\n case RESET_APPLICATIONS_SUMMARY: {\n draft.applicationsSummaryData = [];\n return;\n }\n case LOAD_RCA_LOGOS_SUCCESS: {\n draft.rcaLogos.push(...action.rcaLogos);\n return;\n }\n case LOAD_RCA_BOUNDARIES_SUCCESS: {\n if (action.rcaBoundaries) {\n const wkt = new Wkt.Wkt();\n\n const newBoundaries: RcaBoundary[] = action.rcaBoundaries.map(x => {\n const singleItem: RcaBoundary = {\n rcaBoundaryFeatures: wktToFeatures(wkt, x.rcaBoundaryShape),\n rcaBoundaryShape: x.rcaBoundaryShape,\n rcaOrganisationId: x.rcaOrganisationId\n };\n return singleItem;\n });\n\n draft.rcaBoundaries.push(...newBoundaries);\n return;\n }\n return;\n }\n case LOAD_APPLICATION_EXPORT_COLUMNS_SUCCESS: {\n draft.applicationExportColumns = action.applicationExportColumns;\n return;\n }\n }\n },\n initialState\n);\n\nexport default applicationsSummaryReducer;\n","import produce from \"immer\";\nimport {\n SingleApplicationActionTypes,\n ApplicationDetailState,\n LOAD_SINGLE_APPLICATION_SUCCESS,\n RESET_SINGLE_APPLICATION,\n UPLOAD_DETAIL_FILE_SUCCESS,\n SET_APPLICATION_NOTES_SUCCESS,\n SET_WORK_INFORMATION_SUCCESS,\n SET_APPLICATION_FEEDBACK_SUCCESS,\n LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS,\n DOWNLOAD_INSPECTION_REPORT_SUCCESS,\n DOWNLOAD_DEFECT_REPORT_SUCCESS,\n LOAD_AUDIT_LOGS_SUCCESS,\n RESET_AUDIT_LOGS,\n SET_PARTICIPANT_SUCCESS,\n SET_NOTIFY_WORK_START_SUCCESS,\n REPLACE_PARTICIPANT_SUCCESS,\n SET_NOTIFY_WORK_COMPLETION_SUCCESS,\n REMOVE_PARTICIPANT_SUCCESS,\n SET_LOCATION_SUCCESS,\n DELETE_ATTACHMENT_SUCCESS,\n CANCEL_APPLICATION_SUCCESS,\n SET_MAINTENANCE_COMPLETION_SUCCESS,\n DECLINE_APPLICATION_PARTICIPANT_SUCCESS\n} from \"./types\";\nimport Wkt from \"wicket\";\nimport wktToFeatures from \"common/wktToFeatures\";\nimport jsPDF from \"jspdf\";\nimport autoTable from \"jspdf-autotable\";\n\nconst initialState: ApplicationDetailState = {\n applicationDetailData: undefined\n};\n\nconst applicationDetailReducer = produce(\n (draft: ApplicationDetailState, action: SingleApplicationActionTypes) => {\n switch (action.type) {\n case LOAD_SINGLE_APPLICATION_SUCCESS: {\n draft.applicationDetailData = action.applicationDetailData;\n\n draft.applicationDetailData.isApplicationCancelled = false;\n\n if (action.applicationDetailData.shapes) {\n const wicket = new Wkt.Wkt();\n const features = wktToFeatures(\n wicket,\n action.applicationDetailData.shapes\n );\n\n draft.applicationDetailData.features = features;\n }\n\n if (action.applicationDetailData.rcaBoundaries) {\n const wicket = new Wkt.Wkt();\n const features = wktToFeatures(\n wicket,\n action.applicationDetailData.rcaBoundaries\n );\n draft.applicationDetailData.rcaBoundaryFeatures = features;\n }\n\n draft.applicationDetailData.dateSubmitted = draft.applicationDetailData\n .dateSubmitted\n ? new Date(draft.applicationDetailData.dateSubmitted)\n : undefined;\n\n draft.applicationDetailData.estimatedStartDate = new Date(\n draft.applicationDetailData.estimatedStartDate\n );\n\n draft.applicationDetailData.estimatedCompletionDate = new Date(\n draft.applicationDetailData.estimatedCompletionDate\n );\n\n draft.applicationDetailData.dateTmpLodged = draft.applicationDetailData\n .dateTmpLodged\n ? new Date(draft.applicationDetailData.dateTmpLodged)\n : undefined;\n\n draft.applicationDetailData.dateReceived = new Date(\n draft.applicationDetailData.dateReceived\n );\n\n draft.applicationDetailData.dateApproved = draft.applicationDetailData\n .dateApproved\n ? new Date(draft.applicationDetailData.dateApproved)\n : undefined;\n\n draft.applicationDetailData.dateWorkSignedOff = draft\n .applicationDetailData.dateWorkSignedOff\n ? new Date(draft.applicationDetailData.dateWorkSignedOff)\n : undefined;\n\n draft.applicationDetailData.dateWarrantyStarted = draft\n .applicationDetailData.dateWarrantyStarted\n ? new Date(draft.applicationDetailData.dateWarrantyStarted)\n : undefined;\n\n draft.applicationDetailData.dateWarrantyCompletionNotified = draft\n .applicationDetailData.dateWarrantyCompletionNotified\n ? new Date(draft.applicationDetailData.dateWarrantyCompletionNotified)\n : undefined;\n\n draft.applicationDetailData.dateWarrantyEnded = draft\n .applicationDetailData.dateWarrantyEnded\n ? new Date(draft.applicationDetailData.dateWarrantyEnded)\n : undefined;\n\n draft.applicationDetailData.dateClosed = draft.applicationDetailData\n .dateClosed\n ? new Date(draft.applicationDetailData.dateClosed)\n : undefined;\n\n draft.applicationDetailData.dateWorkStarted = draft\n .applicationDetailData.dateWorkStarted\n ? new Date(draft.applicationDetailData.dateWorkStarted)\n : undefined;\n\n draft.applicationDetailData.dateWorkCompleted = draft\n .applicationDetailData.dateWorkCompleted\n ? new Date(draft.applicationDetailData.dateWorkCompleted)\n : undefined;\n\n draft.applicationDetailData.inspectionsAndDefects = draft.applicationDetailData.inspectionsAndDefects?.map(\n x => {\n return { ...x, addedOn: new Date(x.addedOn) };\n }\n );\n\n draft.applicationDetailData.applicationFees = draft.applicationDetailData.applicationFees?.map(\n x => {\n return { ...x, dateAdded: new Date(x.dateAdded) };\n }\n );\n\n draft.applicationDetailData.participants = draft.applicationDetailData.participants?.map(\n x => {\n return x.certificateDetails\n ? {\n ...x,\n certificateDetails: {\n ...x.certificateDetails,\n certificateExpiry: x.certificateDetails.certificateExpiry\n ? new Date(x.certificateDetails.certificateExpiry)\n : undefined\n }\n }\n : x;\n }\n );\n\n return;\n }\n case RESET_SINGLE_APPLICATION: {\n draft.applicationDetailData = initialState.applicationDetailData;\n return;\n }\n case UPLOAD_DETAIL_FILE_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.attachments = action.attachments.concat(\n draft.applicationDetailData.attachments ?? []\n );\n }\n return;\n }\n case SET_APPLICATION_NOTES_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.notes = action.notes;\n }\n return;\n }\n case SET_WORK_INFORMATION_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.applicantRole =\n action.workInfo.applicantRole;\n draft.applicationDetailData.activities = action.workInfo.activities;\n draft.applicationDetailData.majorActivities =\n action.workInfo.majorActivities;\n draft.applicationDetailData.roadLevel = action.workInfo.roadLevel;\n draft.applicationDetailData.globalCar = action.workInfo.isGlobalCar;\n draft.applicationDetailData.isRoadClosureRequired =\n action.workInfo.isRoadClosureRequired;\n draft.applicationDetailData.estimatedDuration = Number(\n action.workInfo.estimatedDuration\n );\n draft.applicationDetailData.estimatedStartDate = action.workInfo.estimatedStartDate!;\n draft.applicationDetailData.estimatedCompletionDate = action.workInfo.estimatedCompletionDate!;\n draft.applicationDetailData.description = action.workInfo.description;\n draft.applicationDetailData.hoursOfWork = action.workInfo.hoursOfWork;\n draft.applicationDetailData.utilityRefNumber =\n action.workInfo.utilityRefNumber;\n draft.applicationDetailData.consentNumber =\n action.workInfo.consentNumber;\n draft.applicationDetailData.purchaseOrderNumber =\n action.workInfo.purchaseOrderNumber;\n }\n return;\n }\n case SET_APPLICATION_FEEDBACK_SUCCESS: {\n draft.feedback = action.feedback;\n return;\n }\n case LOAD_EXISTING_APPLICATION_FEEDBACK_SUCCESS: {\n if (!action.feedback) {\n draft.feedback = undefined;\n } else {\n draft.feedback = action.feedback;\n }\n return;\n }\n case DOWNLOAD_INSPECTION_REPORT_SUCCESS: {\n const data = action.inspection;\n const doc = new jsPDF();\n doc.text(\"INSPECTION\", 90, 10);\n autoTable(doc, {\n body: [\n [{ content: \"CAR Number\" }, { content: data.carNumber }],\n [{ content: \"Inspection Id\" }, { content: data.inspectionId }],\n [\n { content: \"Date\" },\n {\n content: data.date\n ? new Date(data.date).toLocaleDateString(\"en-GB\")\n : \"\"\n }\n ],\n [{ content: \"Auditor\" }, { content: data.auditor }],\n [{ content: \"Type\" }, { content: data.type }],\n [{ content: \"Category\" }, { content: data.category }],\n [{ content: \"Rating\" }, { content: data.rating }],\n [{ content: \"Notes\" }, { content: data.notes }],\n [\n { content: \"Remedial work required\" },\n { content: data.remedialWorkRequired }\n ]\n ],\n columnStyles: {\n 0: { cellWidth: 50 },\n 1: { cellWidth: 132 }\n },\n tableWidth: 182,\n theme: \"grid\"\n });\n\n const newDate = new Date();\n const month = newDate.toLocaleString(\"default\", { month: \"long\" });\n const dateString = `${newDate.getDate()} ${month} ${newDate.getFullYear()} ${newDate.getHours()}-${newDate.getMinutes()}-${newDate.getSeconds()}`;\n\n doc.save(`Inspection Report generated on ${dateString}.pdf`);\n return;\n }\n case DOWNLOAD_DEFECT_REPORT_SUCCESS: {\n const data = action.defect;\n const doc = new jsPDF();\n doc.text(\"DEFECT\", 90, 10);\n autoTable(doc, {\n body: [\n [{ content: \"CAR Number\" }, { content: data.carNumber }],\n [{ content: \"Defect Id\" }, { content: data.defectId }],\n [\n { content: \"Date Found\" },\n {\n content: data.dateFound\n ? new Date(data.dateFound).toLocaleDateString(\"en-GB\")\n : \"\"\n }\n ],\n [{ content: \"Source\" }, { content: data.source }],\n [{ content: \"Status\" }, { content: data.status }],\n [{ content: \"Description\" }, { content: data.description }],\n [{ content: \"Explanation\" }, { content: data.explanation }],\n [\n { content: \"Date Fixed\" },\n {\n content: data.dateFixed\n ? new Date(data.dateFixed).toLocaleDateString(\"en-GB\")\n : \"\"\n }\n ],\n [{ content: \"Resolution\" }, { content: data.resolutionNote }],\n [{ content: \"Rating\" }, { content: data.rating }]\n ],\n columnStyles: {\n 0: { cellWidth: 50 },\n 1: { cellWidth: 132 }\n },\n tableWidth: 182,\n theme: \"grid\"\n });\n\n const newDate = new Date();\n const month = newDate.toLocaleString(\"default\", { month: \"long\" });\n const dateString = `${newDate.getDate()} ${month} ${newDate.getFullYear()} ${newDate.getHours()}-${newDate.getMinutes()}-${newDate.getSeconds()}`;\n\n doc.save(`Defect Report generated on ${dateString}.pdf`);\n return;\n }\n case SET_PARTICIPANT_SUCCESS: {\n if (\n action.participant.certificateDetails &&\n action.participant.certificateDetails.certificateExpiry\n ) {\n action.participant.certificateDetails.certificateExpiry = new Date(\n action.participant.certificateDetails.certificateExpiry\n );\n }\n\n draft.applicationDetailData!.participants = [\n ...draft.applicationDetailData!.participants!,\n action.participant\n ];\n return;\n }\n case REPLACE_PARTICIPANT_SUCCESS: {\n if (\n action.participantResponse.participant.certificateDetails &&\n action.participantResponse.participant.certificateDetails\n .certificateExpiry\n ) {\n action.participantResponse.participant.certificateDetails.certificateExpiry = new Date(\n action.participantResponse.participant.certificateDetails.certificateExpiry\n );\n }\n\n draft.applicationDetailData!.participants = draft.applicationDetailData!.participants!.map(\n x => {\n if (\n x.participantLinkId ===\n action.participantResponse.participant.participantLinkId\n ) {\n return action.participantResponse.participant;\n }\n\n return x;\n }\n );\n draft.applicationDetailData!.permissionValue =\n action.participantResponse.permissionValue;\n return;\n }\n case SET_NOTIFY_WORK_START_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.dateWorkStarted = action.updatedInfo\n .dateWorkStarted\n ? new Date(action.updatedInfo.dateWorkStarted)\n : undefined;\n\n draft.applicationDetailData.dateWorkCompleted = action.updatedInfo\n .dateWorkCompleted\n ? new Date(action.updatedInfo.dateWorkCompleted)\n : undefined;\n\n draft.applicationDetailData.estimatedDuration =\n action.updatedInfo.duration;\n\n draft.applicationDetailData.carStatus = action.updatedInfo.carStatus;\n\n draft.applicationDetailData.dateWorkStartedStatus =\n action.updatedInfo.dateWorkStartedStatus;\n }\n return;\n }\n case LOAD_AUDIT_LOGS_SUCCESS: {\n if (draft.applicationDetailData) {\n if (!action.auditLog) {\n draft.applicationDetailData.dateAuditLog = null;\n } else {\n draft.applicationDetailData.dateAuditLog = {\n ...action.auditLog,\n addedOn: new Date(action.auditLog.addedOn)\n };\n }\n }\n return;\n }\n case RESET_AUDIT_LOGS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.dateAuditLog = undefined;\n }\n return;\n }\n case SET_NOTIFY_WORK_COMPLETION_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.dateWorkCompleted = action.updatedInfo\n .dateWorkCompleted\n ? new Date(action.updatedInfo.dateWorkCompleted)\n : undefined;\n\n draft.applicationDetailData.dateWorkCompletedStatus =\n action.updatedInfo.dateWorkCompletedStatus;\n\n draft.applicationDetailData.notes = action.updatedInfo.notes;\n draft.applicationDetailData.carStep = action.updatedInfo.carStep;\n draft.applicationDetailData.carStatus = action.updatedInfo.carStatus;\n }\n return;\n }\n case REMOVE_PARTICIPANT_SUCCESS: {\n draft.applicationDetailData!.participants = draft.applicationDetailData!.participants!.filter(\n x => x.participantLinkId !== action.participantLinkId\n );\n return;\n }\n case SET_LOCATION_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData = {\n ...draft.applicationDetailData,\n features: action.locationInfo.features,\n streetName: action.locationInfo.streetName,\n streetNumber: action.locationInfo.streetNumber,\n suburb: action.locationInfo.suburb,\n townCity: action.locationInfo.townCity,\n postcode: action.locationInfo.postCode,\n addressNotes: action.locationInfo.addressNotes,\n locationsInRoad: action.locationInfo.locationsInRoad\n };\n }\n return;\n }\n case DELETE_ATTACHMENT_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.attachments = draft.applicationDetailData.attachments?.filter(\n x => x.attachmentReference !== action.attachmentReference\n );\n }\n return;\n }\n case CANCEL_APPLICATION_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.isApplicationCancelled = true;\n }\n return;\n }\n case SET_MAINTENANCE_COMPLETION_SUCCESS: {\n if (draft.applicationDetailData) {\n draft.applicationDetailData.dateWarrantyCompletionNotified = action\n .model.dateWarrantyCompletionNotified\n ? new Date(action.model.dateWarrantyCompletionNotified)\n : undefined;\n draft.applicationDetailData.carStatus = action.model.carStatus;\n draft.applicationDetailData.notes = action.model.notes;\n }\n return;\n }\n case DECLINE_APPLICATION_PARTICIPANT_SUCCESS: {\n draft.participantDeclined = true;\n return;\n }\n }\n },\n initialState\n);\n\nexport default applicationDetailReducer;\n","import produce from \"immer\";\nimport {\n CreateApplicationState,\n CreateApplicationActionTypes,\n RESET_CREATE_APPLICATION,\n SET_CREATE_APPLICATION_NEXT_STEP,\n SET_CREATE_APPLICATION_WHAT_DATA,\n SET_CREATE_APPLICATION_WHERE_DATA,\n SET_CREATE_APPLICATION_TRAFFIC_DATA,\n SET_CREATE_APPLICATION_WHEN_DATA,\n SET_CREATE_APPLICATION_EXTRA_DATA,\n SET_CREATE_APPLICATION_SETUP_DATA,\n SET_CREATE_APPLICATION_WHO_DATA,\n RESET_APPLICATION_TYPE_DEPENDENT_DATA,\n UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS,\n DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS,\n SUBMIT_APPLICATION_SUCCESS,\n LOAD_APPLICATION_SETTINGS_DATA_SUCCESS,\n LOAD_BILLING_ITEMS_PREVIEW_SUCCESS,\n LOAD_RCA_IDS_FROM_SHAPES_SUCCESS,\n RESET_STORE_FORCE_RCA_SELECTION,\n LOAD_RCA_OPTION_FROM_ID_SUCCESS,\n LOAD_PRIMARY_APPLICANT_INFO_SUCCESS,\n DUPLICATE_APPLICATION,\n RESET_DUPLICATING_STATUS,\n CHECK_REGISTERED_ORGANISATION_SUCCESS,\n LOAD_SAVED_APPLICATION_LIST_SUCCESS,\n DELETE_SAVED_APPLICATION_SUCCESS,\n LOAD_SAVED_APPLICATION_SUCCESS,\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS,\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET,\n RESET_HAS_REQUEST_FAILURE,\n GET_DEFAULT_BILLPAYER_SUCCESS\n} from \"./types\";\nimport { Guid } from \"guid-typescript\";\nimport { ApplicationType, ParticipantRoleEnum } from \"common/enums\";\nimport { AdditionalParticipant } from \"store/types\";\n\nconst initialState: CreateApplicationState = {\n newApplicationList: undefined,\n savedApplications: [],\n hasRequestFailure: false,\n newApplication: {\n id: Guid.create(),\n currentMaxStep: 0,\n rcaOptions: [],\n billingPreview: [],\n setupData: {\n hasNoConflicts: false,\n hasTMPForUpload: false,\n hasServicePlans: false,\n isDuplicating: false\n },\n whatData: {\n isGlobalCar: false,\n description: \"\",\n activities: []\n },\n whereData: {\n streetNumber: \"\",\n streetName: \"\",\n suburb: \"\",\n townCity: \"\",\n postCode: \"\",\n locationsInRoad: [],\n addressNotes: \"\",\n shapes: [],\n forceRcaSelection: false\n },\n trafficData: {\n roadLevel: null,\n isFullRoadClosureRequired: false\n },\n whenData: {\n workType: { id: 0, description: \"\" },\n majorActivities: [],\n duration: \"0\",\n startDate: undefined,\n endDate: undefined,\n normalWorkingHours: \"\"\n },\n whoData: {\n isPrincipal: true,\n isPrincipalAnOrganisation: true,\n billPayer: { id: 0, description: \"\" },\n billPayerOrganisation: { id: 0, description: \"\" },\n isOnBehalfOfUtilityOperator: true,\n primaryApplicant: { id: 0, description: \"\" },\n primaryApplicantOrganisation: { id: 0, description: \"\" },\n principalContactPerson: { id: 0, description: \"\" },\n principalOrganisation: { id: 0, description: \"\" },\n utilityOperatorContact: { id: 0, description: \"\" },\n utilityOperatorOrganisation: { id: 0, description: \"\" },\n principalRole: null,\n additionalParticipants: []\n },\n extraData: {\n consentNumber: \"\",\n utilityReferenceNumber: \"\",\n purchaseOrderNumber: \"\",\n extraInformation: \"\"\n }\n }\n};\n\nconst createApplicationReducer = produce(\n (draft: CreateApplicationState, action: CreateApplicationActionTypes) => {\n switch (action.type) {\n case RESET_CREATE_APPLICATION: {\n draft.newApplicationList = undefined;\n draft.newApplication = {\n ...initialState.newApplication,\n id: Guid.create()\n };\n draft.savedApplications = [];\n draft.hasRequestFailure = false;\n return;\n }\n case SET_CREATE_APPLICATION_NEXT_STEP: {\n draft.newApplication.currentMaxStep++;\n return;\n }\n case SET_CREATE_APPLICATION_SETUP_DATA: {\n draft.newApplication.setupData = action.setupData;\n switch (action.setupData.applicationType) {\n case ApplicationType.Excavation:\n case ApplicationType.Preliminary:\n case ApplicationType.Retrospective:\n draft.newApplication.whoData.showUtilityOperatorOption = true;\n draft.newApplication.whoData.showPrincipalFillOutForm = false;\n return;\n case ApplicationType.Event:\n case ApplicationType.NonExcavation:\n draft.newApplication.whoData.showUtilityOperatorOption = false;\n draft.newApplication.whoData.showPrincipalFillOutForm = true;\n return;\n }\n return;\n }\n case SET_CREATE_APPLICATION_WHAT_DATA: {\n draft.newApplication.whatData = action.whatData;\n return;\n }\n case SET_CREATE_APPLICATION_WHERE_DATA: {\n draft.newApplication.whereData = action.whereData;\n return;\n }\n case SET_CREATE_APPLICATION_TRAFFIC_DATA: {\n draft.newApplication.trafficData = action.trafficData;\n return;\n }\n case SET_CREATE_APPLICATION_WHEN_DATA: {\n draft.newApplication.whenData = action.whenData;\n return;\n }\n case SET_CREATE_APPLICATION_WHO_DATA: {\n draft.newApplication.whoData = action.whoData;\n return;\n }\n case SET_CREATE_APPLICATION_EXTRA_DATA: {\n draft.newApplication.extraData = action.extraData;\n return;\n }\n case UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS: {\n draft.newApplication.trafficData.tmp = draft.newApplication.trafficData.tmp?.map(\n file => {\n if (action.fileIdentifiers.includes(file.identifier)) {\n file.isUploaded = true;\n }\n return file;\n }\n );\n draft.newApplication.extraData.extraAttachments = draft.newApplication.extraData.extraAttachments?.map(\n file => {\n if (action.fileIdentifiers.includes(file.identifier)) {\n file.isUploaded = true;\n }\n return file;\n }\n );\n return;\n }\n case DELETE_CREATE_APPLICATION_TEMPORARY_FILE_SUCCESS: {\n draft.newApplication.trafficData.tmp = draft.newApplication.trafficData.tmp?.filter(\n x => x.identifier !== action.fileIdentifier\n );\n draft.newApplication.extraData.extraAttachments = draft.newApplication.extraData.extraAttachments?.filter(\n x => x.identifier !== action.fileIdentifier\n );\n return;\n }\n case SUBMIT_APPLICATION_SUCCESS: {\n if (action.hasRequestFailure) {\n draft.hasRequestFailure = action.hasRequestFailure;\n return;\n }\n\n draft.newApplicationList = action.applicationList;\n return;\n }\n case RESET_APPLICATION_TYPE_DEPENDENT_DATA: {\n if (!draft.newApplication.setupData.isDuplicating) {\n draft.newApplication.whereData.locationsInRoad = [];\n draft.newApplication.whenData.workType = { id: 0, description: \"\" };\n draft.newApplication.whenData.majorActivities = [];\n draft.newApplication.whoData.isOnBehalfOfUtilityOperator = true;\n draft.newApplication.whoData.principalRole = null;\n draft.newApplication.trafficData.isFullRoadClosureRequired = false;\n draft.newApplication.whatData.activities = [];\n draft.newApplication.whoData.utilityOperatorContact = {\n id: 0,\n description: \"\"\n };\n draft.newApplication.whoData.utilityOperatorOrganisation = {\n id: 0,\n description: \"\"\n };\n draft.newApplication.organisationRegisters = undefined;\n draft.newApplication.whenData.startDate = undefined;\n draft.newApplication.whenData.endDate = undefined;\n draft.newApplication.whenData.duration = \"\";\n }\n return;\n }\n case LOAD_APPLICATION_SETTINGS_DATA_SUCCESS: {\n draft.applicationSettingsData = action.applicationSettings;\n return;\n }\n case LOAD_BILLING_ITEMS_PREVIEW_SUCCESS: {\n draft.newApplication.billingPreview = action.data;\n return;\n }\n case LOAD_RCA_IDS_FROM_SHAPES_SUCCESS: {\n if (\n action.rcaOptions.length === 0 &&\n draft.newApplication.whereData.shapes &&\n draft.newApplication.whereData.shapes.length > 0\n ) {\n draft.newApplication.whereData.forceRcaSelection = true;\n } else {\n draft.newApplication.rcaOptions = action.rcaOptions;\n }\n return;\n }\n case RESET_STORE_FORCE_RCA_SELECTION: {\n draft.newApplication.whereData.forceRcaSelection = false;\n return;\n }\n case LOAD_RCA_OPTION_FROM_ID_SUCCESS: {\n draft.newApplication.rcaOptions = [action.rcaOption];\n return;\n }\n case LOAD_PRIMARY_APPLICANT_INFO_SUCCESS: {\n if (action.billPayer) {\n draft.newApplication.whoData.billPayer = action.billPayer;\n }\n if (\n draft.newApplication.whoData.billPayer &&\n draft.newApplication.whoData.billPayer.id !== 0\n ) {\n draft.newApplication.whoData.billPayerOrganisation =\n action.organisation;\n }\n\n draft.newApplication.whoData.primaryApplicantOrganisation =\n action.organisation;\n return;\n }\n case GET_DEFAULT_BILLPAYER_SUCCESS: {\n draft.newApplication.whoData.billPayer = action.billPayer;\n return;\n }\n case DUPLICATE_APPLICATION: {\n if (action.applicationData) {\n const { applicationData: data } = action;\n\n draft.newApplication.setupData.isDuplicating = true;\n\n if (data.participants) {\n const principal = data.participants.find(x => {\n return (\n x.participantRole.id ==\n ParticipantRoleEnum.PrincipalPrimaryContact\n );\n });\n if (principal) {\n draft.newApplication.whoData.principalOrganisation = principal.participantOrganisation ?? {\n id: 0,\n description: \"\"\n };\n draft.newApplication.whoData.principalContactPerson =\n principal.user;\n }\n\n const billPayer = data.participants.find(x => {\n return x.participantRole.id == ParticipantRoleEnum.BillPayer;\n });\n if (billPayer) {\n draft.newApplication.whoData.billPayerOrganisation = billPayer.participantOrganisation ?? {\n id: 0,\n description: \"\"\n };\n draft.newApplication.whoData.billPayer = billPayer.user;\n }\n\n const utilityOperator = data.participants.find(x => {\n return (\n x.participantRole.id ==\n ParticipantRoleEnum.UtilityOperatorPrimaryContact\n );\n });\n if (utilityOperator) {\n draft.newApplication.whoData.utilityOperatorOrganisation = utilityOperator.participantOrganisation ?? {\n id: 0,\n description: \"\"\n };\n draft.newApplication.whoData.utilityOperatorContact =\n utilityOperator.user;\n } else {\n draft.newApplication.whoData.isOnBehalfOfUtilityOperator = false;\n }\n\n const applicant = data.participants.find(x => {\n return (\n x.participantRole.id ==\n ParticipantRoleEnum.ApplicantPrimaryContact\n );\n });\n if (applicant) {\n draft.newApplication.whoData.primaryApplicantOrganisation = applicant.participantOrganisation ?? {\n id: 0,\n description: \"\"\n };\n draft.newApplication.whoData.primaryApplicant = applicant.user;\n }\n\n const additionalParticipants = data.participants.filter(x => {\n return (\n x.participantRole.id !==\n ParticipantRoleEnum.PrincipalPrimaryContact &&\n x.participantRole.id !== ParticipantRoleEnum.BillPayer &&\n x.participantRole.id !==\n ParticipantRoleEnum.UtilityOperatorPrimaryContact &&\n x.participantRole.id !==\n ParticipantRoleEnum.ApplicantPrimaryContact\n );\n });\n\n draft.newApplication.whoData.additionalParticipants = additionalParticipants.map(\n x => {\n {\n return {\n participantCategory: {\n id: x.participantCategoryId,\n description: \"\"\n },\n participantRole: x.participantRole,\n participantOrganisation: x.participantOrganisation,\n participantContact: x.user\n } as AdditionalParticipant;\n }\n }\n );\n\n draft.newApplication.whoData.principalRole = data.applicantRole;\n }\n\n draft.newApplication.whereData.shapes = data.features;\n draft.newApplication.setupData.applicationType = data.carType.id;\n\n draft.newApplication.whereData.streetName = data.streetName;\n draft.newApplication.whereData.streetNumber = data.streetNumber;\n draft.newApplication.whereData.suburb = data.suburb;\n draft.newApplication.whereData.townCity = data.townCity;\n draft.newApplication.whereData.postCode = data.postcode;\n draft.newApplication.whereData.locationsInRoad = data.locationsInRoad;\n draft.newApplication.whereData.addressNotes = data.addressNotes;\n\n draft.newApplication.whenData.normalWorkingHours =\n data.hoursOfWork ?? \"\";\n draft.newApplication.whenData.workType = data.workType;\n draft.newApplication.whenData.majorActivities = data.majorActivities;\n\n draft.newApplication.whatData.description = data.description ?? \"\";\n draft.newApplication.whatData.activities = data.activities;\n draft.newApplication.whatData.isGlobalCar = data.globalCar;\n\n draft.newApplication.trafficData.roadLevel = data.roadLevel;\n draft.newApplication.trafficData.isFullRoadClosureRequired =\n data.isRoadClosureRequired;\n\n draft.newApplication.extraData.consentNumber =\n data.consentNumber ?? \"\";\n draft.newApplication.extraData.utilityReferenceNumber =\n data.utilityRefNumber ?? \"\";\n draft.newApplication.extraData.purchaseOrderNumber =\n data.purchaseOrderNumber ?? \"\";\n draft.newApplication.extraData.extraInformation = data.notes;\n }\n return;\n }\n case RESET_DUPLICATING_STATUS: {\n draft.newApplication.setupData.isDuplicating = false;\n return;\n }\n case CHECK_REGISTERED_ORGANISATION_SUCCESS: {\n draft.newApplication.organisationRegisters =\n action.organisationRegisters;\n return;\n }\n case LOAD_SAVED_APPLICATION_LIST_SUCCESS: {\n draft.savedApplications = action.savedApplications;\n return;\n }\n case DELETE_SAVED_APPLICATION_SUCCESS: {\n draft.savedApplications = draft.savedApplications.filter(\n x => x.id !== action.id\n );\n return;\n }\n case LOAD_SAVED_APPLICATION_SUCCESS: {\n draft.newApplication.setupData.isDuplicating = true;\n draft.newApplication = action.newApplication;\n return;\n }\n case LOAD_SIBLING_APPLICATION_SETTINGS_DATA_SUCCESS: {\n draft.siblingApplicationSettings = action.siblingApplicationSettings;\n return;\n }\n case LOAD_SIBLING_APPLICATION_SETTINGS_DATA_RESET: {\n draft.siblingApplicationSettings = undefined;\n return;\n }\n case RESET_HAS_REQUEST_FAILURE: {\n draft.hasRequestFailure = false;\n return;\n }\n }\n },\n initialState\n);\n\nexport default createApplicationReducer;\n","import {\n AdministrationStateActionTypes,\n RESET_CREATE_APPLICATION_NEW_USER_DATA,\n AdministrationState,\n SET_USER_DETAIL_SUCCESS,\n RESET_ACCOUNT_MANAGEMENT,\n LOAD_USER_LINKS_SUCCESS,\n LOAD_USER_DETAIL_SUCCESS,\n LOAD_DUPLICATE_ACCOUNT_SUCCESS,\n SET_LINK_DUPLICATES_SUCCESS,\n SET_GST_NUMBER_SUCCESS,\n LOAD_NEW_ORGANISATIONS_SUCCESS,\n RESET_NEW_ORGANISATIONS,\n SET_NEW_ORGANISATION_SUCCESS,\n UserDetail,\n SET_NOTIFICATION_SETTINGS_SUCCESS,\n SET_USER_REGIONS_SUCCESS,\n SET_USER_LINK_SUCCESS,\n GRANT_USER_ACCESS,\n REQUEST_SUPERVISOR_ACCESS,\n REQUEST_ACCESS_TO_APPLICATION,\n DELETE_USER_LINK_SUCCESS,\n LOAD_PERMISSION_TO_VIEW_USER_SUCCESS,\n LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS,\n LOAD_USER_NOTIFICATIONS_SUCCESS,\n RESET_USER_NOTIFICATIONS,\n SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS,\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS,\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS,\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET,\n LOAD_USER_REGIONS_SUCCESS,\n LOAD_PARTICIPANT_ORGANISATION_SUCCESS,\n RESET_AUTOFILL_ORGANISATION,\n USER_LINK_SUCCESS,\n RESET_USER_LINK_PROCESSED\n} from \"./types\";\nimport produce from \"immer\";\nimport { UserNotificationTypes } from \"common/enums\";\nimport b2cauth from \"components/react-azure-b2c\";\n\nconst initialUserData: UserDetail = {\n email: \"\",\n firstName: \"\",\n lastName: \"\",\n address: { id: 0, description: \"\" },\n mobilePhone: \"\",\n workPhone: \"\",\n fax: \"\",\n jobPosition: \"\",\n organisation: { id: 0, description: \"\" },\n isTrafficManagementCoordinator: false,\n participantCertificateType: { id: 0, description: \"\" },\n certificationNumber: undefined,\n dateOfExpiry: undefined,\n dateOfIssue: undefined,\n placeOfIssue: undefined,\n notificationSettings: {\n sendDowntimeEmails: false,\n sendNotificationEmails: false,\n notificationSummaryType: { id: 0, description: \"\" },\n organisationWhitelist: []\n },\n gstNumber: undefined\n};\n\nconst initialState: AdministrationState = {\n newUserData: initialUserData,\n newOrganisations: [],\n userAccount: {\n supervisors: [],\n authorisedParents: [],\n supervisorOf: [],\n authorisedChildren: [],\n userDetail: initialUserData\n },\n duplicateAccountData: [],\n selectedDuplicateIds: [],\n hasPermissionToViewUser: false,\n notifications: [],\n notificationCount: 0,\n scaleOfWorkQuestionnaire: [],\n participantOrganisation: { id: 0, description: \"\" },\n hasNext: false,\n hasPrevious: false\n};\n\nconst newUserReducer = produce(\n (draft: AdministrationState, action: AdministrationStateActionTypes) => {\n switch (action.type) {\n case LOAD_USER_LINKS_SUCCESS:\n draft.userAccount.supervisors = action.receivedData.supervisors;\n draft.userAccount.supervisorOf = action.receivedData.supervisorOf;\n draft.userAccount.authorisedChildren =\n action.receivedData.authorisedChildren;\n draft.userAccount.authorisedParents =\n action.receivedData.authorisedParents;\n return;\n case RESET_CREATE_APPLICATION_NEW_USER_DATA:\n draft.newUserData = initialUserData;\n return;\n case RESET_NEW_ORGANISATIONS:\n draft.newOrganisations = [];\n return;\n case RESET_AUTOFILL_ORGANISATION:\n draft.participantOrganisation = { id: 0, description: \"\" };\n return;\n case LOAD_NEW_ORGANISATIONS_SUCCESS:\n draft.newOrganisations = action.data;\n return;\n case RESET_ACCOUNT_MANAGEMENT:\n draft.userAccount = {\n supervisors: [],\n authorisedParents: [],\n supervisorOf: [],\n authorisedChildren: [],\n userDetail: initialUserData\n };\n return;\n case SET_USER_DETAIL_SUCCESS:\n if (action.isEditingUserAccount) {\n if (action.userDetail) {\n action.userDetail.notificationSettings =\n draft.userAccount.userDetail.notificationSettings;\n action.userDetail.userRegions =\n draft.userAccount.userDetail.userRegions;\n action.userDetail.gstNumber =\n draft.userAccount.userDetail.gstNumber;\n draft.userAccount.userDetail = action.userDetail;\n }\n if (action.userDetail && action.userDetail.profileUpdateRequired) {\n b2cauth.forceRefresh();\n }\n } else {\n draft.lastAddedEntity = {\n data: action.newUser,\n parentControl: action.parentId\n };\n }\n return;\n case SET_USER_LINK_SUCCESS: {\n switch (action.actionType) {\n case GRANT_USER_ACCESS: {\n draft.userAccount.authorisedParents = [\n ...draft.userAccount.authorisedParents,\n action.userLink\n ];\n break;\n }\n case REQUEST_SUPERVISOR_ACCESS: {\n draft.userAccount.supervisorOf = [\n ...draft.userAccount.supervisorOf,\n action.userLink\n ];\n break;\n }\n case REQUEST_ACCESS_TO_APPLICATION: {\n draft.userAccount.authorisedChildren = [\n ...draft.userAccount.authorisedChildren,\n action.userLink\n ];\n break;\n }\n }\n return;\n }\n case LOAD_USER_DETAIL_SUCCESS:\n draft.userAccount.userDetail = action.userDetail;\n\n draft.userAccount.userDetail.dateOfExpiry = draft.userAccount.userDetail\n .dateOfExpiry\n ? new Date(draft.userAccount.userDetail.dateOfExpiry)\n : undefined;\n\n draft.userAccount.userDetail.dateOfIssue = draft.userAccount.userDetail\n .dateOfIssue\n ? new Date(draft.userAccount.userDetail.dateOfIssue)\n : undefined;\n\n return;\n case LOAD_DUPLICATE_ACCOUNT_SUCCESS:\n draft.duplicateAccountData = action.duplicateAccounts;\n return;\n case SET_LINK_DUPLICATES_SUCCESS:\n draft.duplicateAccountData = draft.duplicateAccountData.filter(\n obj => !action.selectedIds?.includes(obj.userId)\n );\n return;\n case SET_GST_NUMBER_SUCCESS:\n draft.userAccount.userDetail.gstNumber = action.gstNumber;\n return;\n case SET_NEW_ORGANISATION_SUCCESS:\n draft.lastAddedEntity = {\n data: action.newOrg,\n parentControl: action.parentId\n };\n return;\n case SET_NOTIFICATION_SETTINGS_SUCCESS: {\n draft.userAccount.userDetail.notificationSettings =\n action.notificationSettings;\n return;\n }\n case SET_USER_REGIONS_SUCCESS: {\n draft.userAccount.userDetail.userRegions = action.userRegions;\n return;\n }\n case DELETE_USER_LINK_SUCCESS: {\n draft.userAccount.authorisedChildren = draft.userAccount.authorisedChildren.filter(\n x => x.userLinkId != action.userLinkId\n );\n draft.userAccount.authorisedParents = draft.userAccount.authorisedParents.filter(\n x => x.userLinkId != action.userLinkId\n );\n draft.userAccount.supervisorOf = draft.userAccount.supervisorOf.filter(\n x => x.userLinkId != action.userLinkId\n );\n return;\n }\n case LOAD_PERMISSION_TO_VIEW_USER_SUCCESS: {\n draft.hasPermissionToViewUser = action.hasPermission;\n return;\n }\n case LOAD_USER_NOTIFICATIONS_COUNT_SUCCESS: {\n draft.notificationCount = action.notificationCount;\n return;\n }\n case RESET_USER_NOTIFICATIONS: {\n draft.notifications = [];\n return;\n }\n case LOAD_USER_NOTIFICATIONS_SUCCESS: {\n draft.hasNext = action.userNotificationPagination.hasNext;\n draft.hasPrevious = action.userNotificationPagination.hasPrevious;\n draft.notifications = action.userNotificationPagination.notifications;\n\n draft.notifications.map(x => {\n x.date = new Date(x.date);\n x.notificationItems.map(y => {\n y.showConfirmButton =\n y.notificationTypeId === UserNotificationTypes.UserLinkRequest ||\n y.notificationTypeId ===\n UserNotificationTypes.ParticipantLinkRequest;\n\n y.showDeclineButton =\n y.notificationTypeId === UserNotificationTypes.UserLinkRequest ||\n y.notificationTypeId ===\n UserNotificationTypes.ParticipantLinkRequest ||\n ((y.notificationTypeId ===\n UserNotificationTypes.ParticipantLinkResponse ||\n y.notificationTypeId ===\n UserNotificationTypes.ParticipantLinkReplaceResponse ||\n y.notificationTypeId ===\n UserNotificationTypes.ParticipantLinkDeclineResponse) &&\n y.canDecline);\n });\n });\n return;\n }\n case SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS: {\n const updatedGuidList = action.request.notificationIds;\n const index = draft.notifications.findIndex(\n x => x.date === action.request.date\n );\n\n draft.notificationCount =\n draft.notificationCount - updatedGuidList.length;\n\n updatedGuidList.map(x => {\n draft.notifications[index].notificationItems = draft.notifications[\n index\n ].notificationItems.filter(y => y.notificationId !== x);\n });\n\n if (draft.notifications[index].notificationItems.length === 0) {\n draft.notifications = draft.notifications.filter(\n x => x.date !== action.request.date\n );\n }\n\n return;\n }\n case SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS: {\n draft.notificationCount--;\n draft.notifications = draft.notifications.filter(x => {\n if (x.notificationItems.length > 1) {\n return (x.notificationItems = x.notificationItems.filter(\n y => y.notificationId !== action.notificationId\n ));\n } else {\n return !x.notificationItems.some(\n y => y.notificationId == action.notificationId\n );\n }\n });\n return;\n }\n case LOAD_SCALE_OF_WORK_QUESTIONNAIRE_SUCCESS: {\n draft.scaleOfWorkQuestionnaire = action.questions;\n return;\n }\n case LOAD_SCALE_OF_WORK_QUESTIONNAIRE_RESET: {\n draft.scaleOfWorkQuestionnaire = [];\n return;\n }\n case LOAD_USER_REGIONS_SUCCESS: {\n draft.userAccount.userDetail.userRegions = action.userRegions;\n return;\n }\n case LOAD_PARTICIPANT_ORGANISATION_SUCCESS: {\n draft.participantOrganisation = action.organisation;\n return;\n }\n case USER_LINK_SUCCESS: {\n draft.userLinkActionResponse = action.userLinkAction;\n return;\n }\n case RESET_USER_LINK_PROCESSED: {\n draft.userLinkActionResponse = undefined;\n return;\n }\n }\n },\n initialState\n);\n\nexport default newUserReducer;\n","import produce from \"immer\";\nimport { Action } from \"redux\";\nimport { LoadingState } from \"./types\";\n\nconst initialState: LoadingState = new Set();\n\nconst loadingReducer = produce(\n (draft: LoadingState, action: Action) => {\n const matches = /.*_(REQUEST|SUCCESS|FAILURE)/.exec(action.type);\n\n if (!matches) {\n return draft;\n }\n\n const requestName = action.type.replace(/_(SUCCESS|FAILURE)/, \"_REQUEST\");\n const [, requestState] = matches;\n\n requestState === \"REQUEST\"\n ? draft.add(requestName)\n : draft.delete(requestName);\n },\n initialState\n);\n\nexport default loadingReducer;\n","import produce from \"immer\";\nimport {\n LookupState,\n LookupActionTypes,\n LOAD_LOOKUP_SUCCESS,\n RESET_LOOKUP_DATA\n} from \"./types\";\n\nconst initialState: LookupState = new Map();\n\nconst lookupReducer = produce(\n (draft: LookupState, action: LookupActionTypes) => {\n switch (action.type) {\n case LOAD_LOOKUP_SUCCESS: {\n draft.set(action.route, action.data);\n return;\n }\n case RESET_LOOKUP_DATA: {\n draft.delete(action.route);\n return;\n }\n }\n },\n initialState\n);\n\nexport default lookupReducer;\n","import {\n TTMState,\n TTMStateActionTypes,\n LOAD_TTM_SITES_SUCCESS,\n SET_TTM_SITE_STORE_DATA,\n SET_TTM_DETOUR_STORE_DATA,\n SET_TTM_CLOSURE_STORE_DATA,\n SET_TTM_SITE_DB_SUCCESS,\n SET_TTM_DETOUR_DB_SUCCESS,\n SET_TTM_CLOSURE_DB_SUCCESS,\n DELETE_TTM_SITE_STORE,\n DELETE_TTM_SITE_DB_SUCCESS,\n DELETE_TTM_DETOUR_STORE,\n DELETE_TTM_DETOUR_DB_SUCCESS,\n DELETE_TTM_CLOSURE_STORE,\n DELETE_TTM_CLOSURE_DB_SUCCESS,\n DUPLICATE_TTM,\n RESET_TTM,\n RESET_ADDED_SITE_ID\n} from \"./types\";\nimport produce from \"immer\";\nimport wktToFeatures from \"common/wktToFeatures\";\nimport Wkt from \"wicket\";\n\nconst initialState: TTMState = {\n TTMSites: []\n};\n\nconst ttmReducer = produce((draft: TTMState, action: TTMStateActionTypes) => {\n switch (action.type) {\n case SET_TTM_SITE_STORE_DATA:\n case SET_TTM_SITE_DB_SUCCESS: {\n if (action.isEditing) {\n draft.TTMSites = draft.TTMSites.map(site => {\n return action.newSite.siteId !== site.siteId ? site : action.newSite;\n });\n return;\n }\n draft.TTMSites.push(action.newSite);\n draft.addedSiteId = action.newSite.siteId;\n return;\n }\n case SET_TTM_DETOUR_STORE_DATA:\n case SET_TTM_DETOUR_DB_SUCCESS: {\n const index = draft.TTMSites.findIndex(\n x => x.siteId === action.newDetour.siteId\n );\n\n if (action.isEditing) {\n draft.TTMSites[index].detours = draft.TTMSites[index]?.detours.map(\n detour => {\n return action.newDetour.detourId !== detour.detourId\n ? detour\n : action.newDetour;\n }\n );\n return;\n }\n\n draft.TTMSites[index].detours.push(action.newDetour);\n return;\n }\n case SET_TTM_CLOSURE_STORE_DATA:\n case SET_TTM_CLOSURE_DB_SUCCESS: {\n const index = draft.TTMSites.findIndex(\n x => x.siteId === action.newClosure.siteId\n );\n if (action.isEditing) {\n draft.TTMSites[index].closures = draft.TTMSites[index].closures.map(\n closure => {\n return action.newClosure.closureId !== closure.closureId\n ? closure\n : action.newClosure;\n }\n );\n return;\n }\n draft.TTMSites[index].closures.push(action.newClosure);\n return;\n }\n case LOAD_TTM_SITES_SUCCESS: {\n const wicket = new Wkt.Wkt();\n action.sites = action.sites.map(x => {\n return {\n ...x,\n features: x.shapes ? wktToFeatures(wicket, x.shapes) : [],\n detours: x.detours.map(y => {\n return {\n ...y,\n features: y.shapes ? wktToFeatures(wicket, y.shapes) : []\n };\n }),\n closures: x.closures.map(y => {\n return {\n ...y,\n proposedStart: y.proposedStart\n ? new Date(y.proposedStart)\n : y.proposedStart,\n proposedEnd: y.proposedEnd\n ? new Date(y.proposedEnd)\n : y.proposedEnd\n };\n })\n };\n });\n\n draft.TTMSites = action.sites;\n return;\n }\n case DELETE_TTM_SITE_STORE:\n case DELETE_TTM_SITE_DB_SUCCESS: {\n draft.TTMSites = draft.TTMSites.filter(x => x.siteId !== action.siteId);\n return;\n }\n case DELETE_TTM_DETOUR_STORE:\n case DELETE_TTM_DETOUR_DB_SUCCESS: {\n const index = draft.TTMSites.findIndex(x => x.siteId === action.siteId);\n draft.TTMSites[index].detours = draft.TTMSites[index].detours.filter(\n x => x.detourId !== action.detourId\n );\n return;\n }\n case DELETE_TTM_CLOSURE_STORE:\n case DELETE_TTM_CLOSURE_DB_SUCCESS: {\n const index = draft.TTMSites.findIndex(x => x.siteId === action.siteId);\n draft.TTMSites[index].closures = draft.TTMSites[index].closures.filter(\n x => x.closureId !== action.closureId\n );\n return;\n }\n case DUPLICATE_TTM: {\n draft.TTMSites = action.ttmSites;\n return;\n }\n case RESET_TTM: {\n draft.TTMSites = [];\n return;\n }\n case RESET_ADDED_SITE_ID: {\n draft.addedSiteId = undefined;\n return;\n }\n }\n}, initialState);\n\nexport default ttmReducer;\n","import produce from \"immer\";\nimport { Action } from \"redux\";\nimport { ErrorState, ErrorPayload, RESET_ERROR_MESSAGE } from \"./types\";\n\nconst initialState: ErrorState = new Map();\n\nconst errorReducer = produce(\n (draft: ErrorState, action: Action & ErrorPayload) => {\n const matches = /.*_(REQUEST|FAILURE)/.exec(action.type);\n\n if (matches) {\n const requestName = action.type.replace(/_FAILURE/, \"_REQUEST\");\n const [, requestState] = matches;\n\n requestState === \"FAILURE\"\n ? draft.set(requestName, action.errorMessage)\n : draft.delete(requestName);\n } else if (action.type === RESET_ERROR_MESSAGE) {\n draft.clear();\n } else {\n return draft;\n }\n },\n initialState\n);\n\nexport default errorReducer;\n","import produce from \"immer\";\nimport {\n NotificationActionTypes,\n ENQUEUE_SNACKBAR,\n NotistackState,\n REMOVE_SNACKBAR,\n REMOVE_ALL_SNACKBAR,\n DELETE_SNACKBAR\n} from \"./types\";\n\nconst initialState: NotistackState = {\n notifications: new Map()\n};\n\nconst notistackReducer = produce(\n (state: NotistackState, action: NotificationActionTypes) => {\n switch (action.type) {\n case ENQUEUE_SNACKBAR: {\n state.notifications.set(\n action.notification.options.key as string,\n action.notification\n );\n return;\n }\n case REMOVE_SNACKBAR: {\n state.notifications.set(action.key, {\n dismissed: true,\n message: \"\",\n options: { key: action.key }\n });\n return;\n }\n case REMOVE_ALL_SNACKBAR: {\n state.notifications.clear();\n return;\n }\n case DELETE_SNACKBAR: {\n state.notifications.delete(action.key);\n return;\n }\n }\n },\n initialState\n);\n\nexport default notistackReducer;\n","import produce from \"immer\";\nimport {\n MapActionTypes,\n LOAD_SHAPES_SUCCESS,\n RESET_SHAPES,\n MapState,\n ShapeDetail,\n LOAD_APPLICATION_CLASH_SUCCESS,\n LOAD_DISPATCHES_SUCCESS,\n RESET_DISPATCHES_SHAPES,\n SET_MAP_INPUT_REQUEST\n} from \"./types\";\nimport Wkt from \"wicket\";\nimport { wktToFeatures, getDispatchFeature } from \"common/wktToFeatures\";\nimport { Feature, DispatchDetails } from \"store/types\";\n\nconst initialState: MapState = {\n mapData: { carShapes: [] }\n};\n\nconst getShapes = (shapes: Feature[][]) => {\n const features: Feature[] = [];\n shapes.map(x => {\n features.push(...x);\n });\n\n return features;\n};\n\nconst getDispatches = (details: string[]) => {\n let features: Feature[] = [];\n if (!details || details.length === 0) {\n return features;\n }\n\n details.forEach(x => {\n const dispatches: DispatchDetails = JSON.parse(x);\n dispatches.features.forEach(dispatch => {\n const dispatchFeatures: Feature[] | null = getDispatchFeature(dispatch);\n if (!dispatchFeatures) {\n return true;\n }\n features = features.concat(dispatchFeatures);\n });\n });\n return features;\n};\n\nconst mapReducer = produce((draft: MapState, action: MapActionTypes) => {\n switch (action.type) {\n case LOAD_SHAPES_SUCCESS: {\n const wicket = new Wkt.Wkt();\n const shapes: Feature[][] = action.shapeDetails.map((x: ShapeDetail) => {\n return wktToFeatures(wicket, x.carShape, x.carDetail);\n });\n draft.mapData.carShapes = getShapes(shapes);\n return;\n }\n case RESET_SHAPES: {\n draft.mapData.carShapes = [];\n draft.hasClash = undefined;\n return;\n }\n case RESET_DISPATCHES_SHAPES: {\n draft.mapData.dispatches = [];\n return;\n }\n case LOAD_APPLICATION_CLASH_SUCCESS: {\n const wicket = new Wkt.Wkt();\n let shapes: Feature[][] = [];\n draft.hasClash = false;\n\n if (action.applicationClash.applicationShape) {\n if (\n action.applicationClash.shapeDetails &&\n action.applicationClash.shapeDetails.length > 0\n ) {\n shapes = action.applicationClash.shapeDetails.map(\n (x: ShapeDetail) => {\n return wktToFeatures(wicket, x.carShape, x.carDetail);\n }\n );\n draft.hasClash = true;\n }\n\n shapes.push(\n wktToFeatures(wicket, action.applicationClash.applicationShape)\n );\n }\n\n draft.mapData.carShapes = getShapes(shapes);\n return;\n }\n case LOAD_DISPATCHES_SUCCESS: {\n draft.mapData.dispatches = getDispatches(action.dispatchDetails);\n return;\n }\n case SET_MAP_INPUT_REQUEST: {\n draft.mapInputData = action.mapInputData;\n return;\n }\n }\n}, initialState);\n\nexport default mapReducer;\n","import {\n BillPayerDetailState,\n BillPayerDetailActionTypes,\n LOAD_BILL_PAYER_SUCCESS,\n ADD_BILL_PAYER_SUCCESS,\n CLEAR_BILL_PAYER_DETAIL\n} from \"./types\";\nimport produce from \"immer\";\n\nconst initialState: BillPayerDetailState = {\n billPayerDetailData: undefined\n};\n\nconst billPayerDetailReducer = produce(\n (draft: BillPayerDetailState, action: BillPayerDetailActionTypes) => {\n switch (action.type) {\n case CLEAR_BILL_PAYER_DETAIL:\n draft.billPayerDetailData = undefined;\n return;\n case ADD_BILL_PAYER_SUCCESS:\n case LOAD_BILL_PAYER_SUCCESS:\n draft.billPayerDetailData = action.billPayer;\n return;\n }\n },\n initialState\n);\n\nexport default billPayerDetailReducer;\n","import produce from \"immer\";\nimport {\n BillPayersSummaryActionTypes,\n BillPayersSummaryState,\n LOAD_BILLPAYERS_SUMMARY_SUCCESS,\n RESET_BILLPAYERS_SUMMARY\n} from \"./types\";\n\nconst initialState: BillPayersSummaryState = {\n billPayersSummaryData: [],\n totalSummaries: 0\n};\n\nconst billPayersSummaryReducer = produce(\n (draft: BillPayersSummaryState, action: BillPayersSummaryActionTypes) => {\n switch (action.type) {\n case LOAD_BILLPAYERS_SUMMARY_SUCCESS: {\n draft.billPayersSummaryData.push(...action.receivedData);\n draft.totalSummaries = action.totalCount;\n return;\n }\n case RESET_BILLPAYERS_SUMMARY: {\n draft.billPayersSummaryData = [];\n return;\n }\n }\n },\n initialState\n);\n\nexport default billPayersSummaryReducer;\n","import {\n InvoiceSummaryState,\n InvoicesSummaryActionTypes,\n LOAD_INVOICES_SUMMARY_SUCCESS,\n RESET_INVOICES_SUMMARY\n} from \"./types\";\nimport produce from \"immer\";\n\nconst initialState: InvoiceSummaryState = {\n invoiceSummaryData: [],\n totalInvoices: 0\n};\n\nconst invoicesSummaryReducer = produce(\n (draft: InvoiceSummaryState, action: InvoicesSummaryActionTypes) => {\n switch (action.type) {\n case LOAD_INVOICES_SUMMARY_SUCCESS: {\n draft.invoiceSummaryData.push(...action.receivedData);\n draft.totalInvoices = action.totalCount;\n return;\n }\n case RESET_INVOICES_SUMMARY: {\n draft.invoiceSummaryData = [];\n return;\n }\n }\n },\n initialState\n);\n\nexport default invoicesSummaryReducer;\n","import {\n InvoiceDetailState,\n InvoiceDetailActionTypes,\n LOAD_INVOICE_DETAIL_SUCCESS,\n RESET_INVOICE_DETAIL\n} from \"./types\";\nimport produce from \"immer\";\n\nconst initialState: InvoiceDetailState = {\n invoiceBillingItems: [],\n totalBillingItems: 0,\n invoiceDetailData: undefined\n};\n\nconst invoiceDetailReducer = produce(\n (draft: InvoiceDetailState, action: InvoiceDetailActionTypes) => {\n switch (action.type) {\n case LOAD_INVOICE_DETAIL_SUCCESS:\n draft.invoiceDetailData = action.invoiceHeaderData;\n draft.totalBillingItems = action.totalCount;\n draft.invoiceBillingItems = action.receivedBillingItems;\n return;\n case RESET_INVOICE_DETAIL:\n draft = initialState;\n return;\n }\n },\n initialState\n);\n\nexport default invoiceDetailReducer;\n","import produce from \"immer\";\nimport {\n GET_ATTACHMENT_VALIDATION_SUCCESS,\n MediaActionTypes,\n MediaState\n} from \"./types\";\n\nconst initialState: MediaState = {\n attachmentValidation: { maxFileSize: undefined, whiteList: [] }\n};\n\nconst mediaReducer = produce((draft: MediaState, action: MediaActionTypes) => {\n switch (action.type) {\n case GET_ATTACHMENT_VALIDATION_SUCCESS:\n draft.attachmentValidation = action.attachmentValidation;\n return;\n }\n}, initialState);\n\nexport default mediaReducer;\n","import { combineReducers } from \"redux\";\nimport authReducer from \"./auth/reducer\";\nimport preferencesReducer from \"./preferences/reducer\";\nimport applicationsSummaryReducer from \"./applicationsSummary/reducer\";\nimport applicationDetailReducer from \"./applicationDetail/reducer\";\nimport createApplicationReducer from \"./createApplication/reducers\";\nimport administrationReducer from \"./administration/reducer\";\nimport loadingReducer from \"./loading/reducer\";\nimport lookupReducer from \"./lookup/reducer\";\nimport ttmReducer from \"./trafficManagement/reducer\";\nimport errorReducer from \"./error/reducer\";\nimport notistackReducer from \"./notistack/reducers\";\nimport mapReducer from \"./map/reducer\";\nimport billPayerDetailReducer from \"./billPayerDetail/reducer\";\nimport billPayersSummaryReducer from \"./billPayersSummary/reducer\";\nimport invoicesSummaryReducer from \"./invoiceSummary/reducer\";\nimport invoiceDetailReducer from \"./invoiceDetail/reducer\";\nimport mediaReducer from \"./media/reducer\";\nimport { enableMapSet } from \"immer\";\n\nenableMapSet();\n\nconst rootReducer = combineReducers({\n auth: authReducer,\n preferences: preferencesReducer,\n applicationsSummary: applicationsSummaryReducer,\n applicationDetail: applicationDetailReducer,\n createApplication: createApplicationReducer,\n administration: administrationReducer,\n lookup: lookupReducer,\n trafficManagement: ttmReducer,\n loading: loadingReducer,\n error: errorReducer,\n notistack: notistackReducer,\n map: mapReducer,\n billPayerDetail: billPayerDetailReducer,\n billPayersSummary: billPayersSummaryReducer,\n invoicesSummary: invoicesSummaryReducer,\n invoiceDetail: invoiceDetailReducer,\n media: mediaReducer\n});\n\nexport default rootReducer;\n","import {\n LOAD_SINGLE_APPLICATION_REQUEST,\n LoadSingleApplicationRequestAction,\n ApplicationDetail,\n UPLOAD_DETAIL_FILE_REQUEST,\n UploadFileRequestAction,\n Attachment,\n NewAttachmentReturnType,\n SetApplicationNotesRequestAction,\n SET_APPLICATION_NOTES_REQUEST,\n SET_APPLICATION_NOTES_SUCCESS,\n SET_WORK_INFORMATION_REQUEST,\n SetWorkInformationRequestAction,\n SET_WORK_INFORMATION_SUCCESS,\n SET_APPLICATION_FEEDBACK_REQUEST,\n SetApplicationFeedbackRequestAction,\n ApplicationFeedback,\n SET_APPLICATION_FEEDBACK_SUCCESS,\n LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST,\n DOWNLOAD_CALLOUT_REPORT_REQUEST,\n DownloadCalloutReportRequestAction,\n Inspection,\n Defect,\n SET_WORK_INFORMATION_FAILURE,\n SET_PARTICIPANT_REQUEST,\n SetParticiantRequestAction,\n Participant,\n SET_NOTIFY_WORK_STATUS_REQUEST,\n SetNotifyWorkStatusRequestAction,\n SET_NOTIFY_WORK_STATUS_FAILURE,\n SET_NOTIFY_WORK_START_SUCCESS,\n NotifyWorkStartResponse,\n SET_APPLICATION_FEEDBACK_FAILURE,\n LoadAuditLogsRequestAction,\n LOAD_AUDIT_LOGS_REQUEST,\n AuditHistoryResponse,\n SET_PARTICIPANT_SUCCESS,\n SET_PARTICIPANT_FAILURE,\n REPLACE_PARTICIPANT_REQUEST,\n ReplaceParticipantRequestAction,\n REPLACE_PARTICIPANT_SUCCESS,\n REPLACE_PARTICIPANT_FAILURE,\n SET_NOTIFY_WORK_COMPLETION_SUCCESS,\n NotifyWorkCompletionResponse,\n REMOVE_PARTICIPANT_REQUEST,\n RemoveParticipantRequestAction,\n REMOVE_PARTICIPANT_SUCCESS,\n REMOVE_PARTICIPANT_FAILURE,\n SetLocationRequestAction,\n SET_LOCATION_SUCCESS,\n SET_LOCATION_FAILURE,\n SET_LOCATION_REQUEST,\n DELETE_ATTACHMENT_REQUEST,\n DeleteAttachmentRequestAction,\n DELETE_ATTACHMENT_SUCCESS,\n DELETE_ATTACHMENT_FAILURE,\n LocationInformationModel,\n SET_APPLICATION_NOTES_FAILURE,\n CANCEL_APPLICATION_REQUEST,\n CANCEL_APPLICATION_FAILURE,\n CANCEL_APPLICATION_SUCCESS,\n CancelApplicationRequestAction,\n MaintenanceCompletionRequest,\n SetMaintenanceCompletionRequestAction,\n SET_MAINTENANCE_COMPLETION_REQUEST,\n SET_MAINTENANCE_COMPLETION_SUCCESS,\n SET_MAINTENANCE_COMPLETION_FAILURE,\n MaintenanceCompletionResponse,\n ReplaceParticipantResponse,\n DECLINE_APPLICATION_PARTICIPANT_REQUEST,\n DeclineApplicationParticipantRequestAction,\n DECLINE_APPLICATION_PARTICIPANT_FAILURE\n} from \"./types\";\nimport { put, takeLatest, call } from \"redux-saga/effects\";\nimport {\n loadSingleApplicationFailure,\n loadSingleApplicationSuccess,\n uploadFileFailure,\n uploadFileSuccess,\n setApplicationNotesSuccess,\n setApplicationNotesFailure,\n setWorkInformationSuccess,\n setWorkInformationFailure,\n setApplicationFeedbackSuccess,\n setApplicationFeedbackFailure,\n loadExistingApplicationFeedbackSuccess,\n downloadCalloutReportFailure,\n downloadInspectionReportSuccess,\n downloadDefectReportSuccess,\n setNotifyWorkStartSuccess,\n loadAuditLogsSuccess,\n loadAuditLogsFailure,\n setParticipantSuccess,\n setNotifyWorkStatusFailure,\n setParticipantFailure,\n replaceParticipantSuccess,\n replaceParticipantFailure,\n setNotifyWorkCompletionSuccess,\n removeParticipantSuccess,\n removeParticipantFailure,\n setLocationSuccess,\n setLocationFailure,\n deleteAttachmentSuccess,\n deleteAttachmentFailure,\n cancelApplicationFailure,\n cancelApplicationSuccess,\n setMaintenanceCompletionSuccess,\n declineApplicationParticipantFailure,\n declineApplicationParticipantSuccess\n} from \"./actions\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { APPLICATION_ENDPOINT, MEDIA_ENDPOINT } from \"common/endpoints\";\nimport { Lookup } from \"store/types\";\nimport { createNotification } from \"common/addNotification\";\nimport { enqueueSnackbar } from \"store/notistack/actions\";\nimport { WorkInformationModel } from \"containers/ApplicationDetail/EditWorkInformationModal\";\nimport { CalloutType } from \"common/enums\";\nimport { AddParticipant } from \"store/types\";\nimport featuresToWkt from \"common/featuresToWkt\";\nimport Wkt from \"wicket\";\nimport { GetOffsetUtc } from \"common/dateHelper\";\n\nconst getSingleApplication = (carId: number) => {\n return axios.get(`${API_ROUTE}${APPLICATION_ENDPOINT}/${carId}`);\n};\n\nexport function* loadSingleApplicationRequest(\n action: LoadSingleApplicationRequestAction\n) {\n try {\n let applicationDetail: ApplicationDetail | null = null;\n\n if (action.guid) {\n const { data }: { data: ApplicationDetail } = yield call(\n readOnlyApplicationDetailApi,\n action.guid\n );\n applicationDetail = data;\n } else {\n const { data }: { data: ApplicationDetail } = yield call(\n getSingleApplication,\n action.carId!\n );\n applicationDetail = data;\n }\n\n if (applicationDetail) {\n yield put(loadSingleApplicationSuccess(applicationDetail));\n } else {\n yield put(\n loadSingleApplicationFailure(\n `No data was found for CAR ID: ${action.carId}`\n )\n );\n }\n } catch (e) {\n const message = e.response.data;\n yield put(\n loadSingleApplicationFailure(\n message.Message ??\n \"Something went wrong when trying to fetch the application detail data.\"\n )\n );\n }\n}\n\nexport default function* watchLoadSingleApplicationRequest() {\n yield takeLatest(\n LOAD_SINGLE_APPLICATION_REQUEST,\n loadSingleApplicationRequest\n );\n}\n\nconst uploadFile = (formData: FormData, reference?: string) => {\n const uri = reference\n ? `${API_ROUTE}media/attachment`\n : `${API_ROUTE}${MEDIA_ENDPOINT}/attachments/attachment`;\n return axios.post(uri, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n });\n};\n\nfunction* uploadFileRequest(action: UploadFileRequestAction) {\n try {\n const formData = new FormData();\n const attachmentTypes: Lookup[] = [];\n\n formData.append(\n \"childApplicationIds\",\n action.childApplicationIds ? action.childApplicationIds.toString() : \"\"\n );\n formData.append(\"reference\", action.reference ?? \"\");\n formData.append(\"permissionValue\", action.permissionValue.toString());\n action.attachments.forEach(file => {\n const filedetails = `${action.applicationId\n }/${file.attachmentType.id.toString()}/${action.carStepId}`;\n\n formData.append(filedetails, file.file!);\n attachmentTypes.push(file.attachmentType);\n });\n const { data }: { data: NewAttachmentReturnType[] } = yield call(\n uploadFile,\n formData,\n action.reference\n );\n\n const result = data.map((x: NewAttachmentReturnType) => {\n return {\n attachmentType: attachmentTypes.find(y => y.id === x.attachmentTypeId),\n attachmentReference: x.attachmentReference,\n filename: x.filename,\n canDelete: x.canDelete,\n attachmentStatus: x.attachmentStatus\n } as Attachment;\n });\n\n yield put(\n enqueueSnackbar(\n createNotification(\n \"addAttachment\",\n \"Successfully uploaded file(s)\",\n \"success\"\n )\n )\n );\n\n yield put(uploadFileSuccess(result));\n } catch (e) {\n yield put(uploadFileFailure(\"Failed to upload the file.\"));\n }\n}\n\nexport function* watchFileUploadRequest() {\n yield takeLatest(UPLOAD_DETAIL_FILE_REQUEST, uploadFileRequest);\n}\n\nconst setApplicationNotesApi = (notes: string, applicationId: number) => {\n const notesModel = {\n notes: notes,\n applicationId: applicationId\n };\n return axios.post(`${API_ROUTE}${APPLICATION_ENDPOINT}/notes`, notesModel);\n};\n\nfunction* setApplicationNotes(action: SetApplicationNotesRequestAction) {\n try {\n yield call(setApplicationNotesApi, action.notes, action.applicationId);\n\n yield put(setApplicationNotesSuccess(action.notes));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_APPLICATION_NOTES_SUCCESS,\n \"Application Notes updated successfully\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n SET_APPLICATION_NOTES_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n } else {\n yield put(\n setApplicationNotesFailure(\n \"Something went wrong when trying to update Application Notes\"\n )\n );\n }\n }\n}\n\nexport function* watchSetApplicationNotesRequest() {\n yield takeLatest(SET_APPLICATION_NOTES_REQUEST, setApplicationNotes);\n}\n\nconst setWorkInformationApi = (\n workInfo: WorkInformationModel,\n applicationId: number\n) => {\n const workInfoModel = {\n workInfo: { ...workInfo, estimatedDuration: +workInfo.estimatedDuration },\n applicationId: applicationId\n };\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/workinformation`,\n workInfoModel\n );\n};\n\nfunction* setWorkInformation(action: SetWorkInformationRequestAction) {\n try {\n yield call(setWorkInformationApi, action.workInfo, action.applicationId);\n\n yield put(setWorkInformationSuccess(action.workInfo));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_WORK_INFORMATION_SUCCESS,\n \"Work Information updated successfully\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n SET_WORK_INFORMATION_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n } else {\n yield put(\n setWorkInformationFailure(\n \"Something went wrong when trying to update Work Information\"\n )\n );\n }\n }\n}\n\nexport function* watchSetWorkInformationRequest() {\n yield takeLatest(SET_WORK_INFORMATION_REQUEST, setWorkInformation);\n}\n\nconst setApplicationFeedbackApi = (\n applicationId: number,\n rating: number,\n notes: string\n) => {\n const applicationFeedbackModel = {\n applicationId: applicationId,\n rating: rating,\n notes: notes\n };\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/applications/applicationfeedback`,\n applicationFeedbackModel\n );\n};\n\nfunction* setApplicationFeedback(action: SetApplicationFeedbackRequestAction) {\n try {\n yield call(\n setApplicationFeedbackApi,\n action.applicationId,\n action.rating,\n action.notes\n );\n\n const feedback: ApplicationFeedback = {\n applicationId: action.applicationId,\n rating: action.rating,\n notes: action.notes\n };\n\n yield put(setApplicationFeedbackSuccess(feedback));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_APPLICATION_FEEDBACK_SUCCESS,\n \"Application Feedback updated successfully\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n SET_APPLICATION_FEEDBACK_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n } else {\n yield put(\n setApplicationFeedbackFailure(\n \"Something went wrong when trying to update Application Feedback\"\n )\n );\n }\n }\n}\n\nexport function* watchSetApplicationFeedbackRequest() {\n yield takeLatest(SET_APPLICATION_FEEDBACK_REQUEST, setApplicationFeedback);\n}\n\nconst loadExistingApplicationFeedbackApi = (applicationId: number) => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/applications/applicationfeedback/${applicationId}`\n );\n};\n\nfunction* loadExistingApplicationFeedback(\n action: SetApplicationFeedbackRequestAction\n) {\n try {\n const { data }: { data: ApplicationFeedback } = yield call(\n loadExistingApplicationFeedbackApi,\n action.applicationId\n );\n\n yield put(loadExistingApplicationFeedbackSuccess(data));\n } catch (e) {\n yield put(\n setApplicationFeedbackFailure(\n \"Something went wrong when trying to load Application Feedback\"\n )\n );\n }\n}\n\nexport function* watchLoadExistingApplicationFeedbackRequest() {\n yield takeLatest(\n LOAD_EXISTING_APPLICATION_FEEDBACK_REQUEST,\n loadExistingApplicationFeedback\n );\n}\n\nconst downloadInspectionReport = (inspectionId: number) => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/callout/report/inspection/${inspectionId}`\n );\n};\n\nconst downloadDefectReport = (defectId: number) => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/callout/report/defect/${defectId}`\n );\n};\n\nfunction* downloadCalloutReport(action: DownloadCalloutReportRequestAction) {\n try {\n if (action.calloutType === CalloutType.Inspection) {\n const { data }: { data: Inspection } = yield call(\n downloadInspectionReport,\n action.calloutId\n );\n yield put(downloadInspectionReportSuccess(data));\n } else {\n const { data }: { data: Defect } = yield call(\n downloadDefectReport,\n action.calloutId\n );\n yield put(downloadDefectReportSuccess(data));\n }\n } catch (e) {\n yield put(\n downloadCalloutReportFailure(\n \"Something went wrong when trying to download the report\"\n )\n );\n }\n}\n\nexport function* watchDownloadCalloutReportRequest() {\n yield takeLatest(DOWNLOAD_CALLOUT_REPORT_REQUEST, downloadCalloutReport);\n}\n\nconst addParticipantApi = (\n carId: number,\n participant: AddParticipant,\n rcaId: number,\n reference?: string\n) => {\n const participantRequest = {\n carId: carId,\n participant: participant,\n rcaId: rcaId,\n reference: reference,\n offset: GetOffsetUtc()\n };\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/addparticipant`,\n participantRequest\n );\n};\n\nexport function* setParticipant(action: SetParticiantRequestAction) {\n try {\n const { data }: { data: Participant } = yield call(\n addParticipantApi,\n action.carId,\n action.participant,\n action.rcaId,\n action.reference\n );\n\n if (data) {\n yield put(setParticipantSuccess(data));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_PARTICIPANT_SUCCESS,\n \"Participant added successfully\",\n \"success\"\n )\n )\n );\n }\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_PARTICIPANT_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setParticipantFailure(\n \"Something went wrong when trying to add participants into the application\"\n )\n );\n }\n }\n}\n\nexport function* watchSetParticipantRequest() {\n yield takeLatest(SET_PARTICIPANT_REQUEST, setParticipant);\n}\n\nconst replaceParticipantApi = (\n carId: number,\n participant: AddParticipant,\n rcaId: number\n) => {\n const participantRequest = {\n carId: carId,\n participant: participant,\n rcaId: rcaId,\n offset: GetOffsetUtc()\n };\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/replaceparticipant`,\n participantRequest\n );\n};\n\nfunction* replaceParticipant(action: ReplaceParticipantRequestAction) {\n try {\n const { data }: { data: ReplaceParticipantResponse } = yield call(\n replaceParticipantApi,\n action.carId,\n action.participant,\n action.rcaId\n );\n\n if (data) {\n yield put(\n enqueueSnackbar(\n createNotification(\n REPLACE_PARTICIPANT_SUCCESS,\n \"Participant successfully replaced\",\n \"success\"\n )\n )\n );\n yield put(replaceParticipantSuccess(data));\n }\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n REPLACE_PARTICIPANT_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n replaceParticipantFailure(\n \"Something went wrong while trying to replace participant\"\n );\n }\n }\n}\n\nexport function* watchReplaceParticipantRequest() {\n yield takeLatest(REPLACE_PARTICIPANT_REQUEST, replaceParticipant);\n}\n\nconst setNotifyWorkStartApi = (\n applicationId: number,\n newDate: Date,\n reference?: string,\n offset?: number\n) => {\n return axios.post(`${API_ROUTE}${APPLICATION_ENDPOINT}/notifyworkstart`, {\n applicationId: applicationId,\n newDate: newDate,\n reference: reference,\n offset: offset\n });\n};\n\nconst setNotifyWorkCompletionApi = (\n applicationId: number,\n newDate: Date,\n reference?: string,\n offset?: number\n) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/notifyworkcompletion`,\n {\n applicationId: applicationId,\n newDate: newDate,\n reference: reference,\n offset: offset\n }\n );\n};\n\nfunction* setNotifyWorkStatus(action: SetNotifyWorkStatusRequestAction) {\n try {\n if (action.isStart) {\n const { data }: { data: NotifyWorkStartResponse } = yield call(\n setNotifyWorkStartApi,\n action.applicationId,\n action.newDate,\n action.reference,\n action.offset\n );\n yield put(setNotifyWorkStartSuccess(data));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_NOTIFY_WORK_START_SUCCESS,\n \"Notified Work Start date successfully\",\n \"success\"\n )\n )\n );\n } else {\n const { data }: { data: NotifyWorkCompletionResponse } = yield call(\n setNotifyWorkCompletionApi,\n action.applicationId,\n action.newDate,\n action.reference,\n action.offset\n );\n yield put(setNotifyWorkCompletionSuccess(data));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_NOTIFY_WORK_COMPLETION_SUCCESS,\n \"Notified Work Completion date successfully\",\n \"success\"\n )\n )\n );\n }\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n SET_NOTIFY_WORK_STATUS_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n } else {\n yield put(\n setNotifyWorkStatusFailure(\n `Something went wrong when trying to Notify Work ${action.isStart ? \"Start\" : \"Completion\"\n }`\n )\n );\n }\n }\n}\n\nexport function* watchSetNotifyWorkStatusRequest() {\n yield takeLatest(SET_NOTIFY_WORK_STATUS_REQUEST, setNotifyWorkStatus);\n}\n\nconst loadAuditLogsApi = (applicationId: number, sourceField: string) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/applications/dateauditlogs`,\n {\n applicationId: applicationId,\n sourceField: sourceField\n }\n );\n};\n\nfunction* loadAuditLogs(action: LoadAuditLogsRequestAction) {\n try {\n const { data }: { data: AuditHistoryResponse } = yield call(\n loadAuditLogsApi,\n action.applicationId,\n action.sourceField\n );\n yield put(loadAuditLogsSuccess(data));\n } catch (e) {\n yield put(\n loadAuditLogsFailure(\n \"Something went wrong when trying to load audit logs\"\n )\n );\n }\n}\n\nexport function* watchLoadAuditLogsRequest() {\n yield takeLatest(LOAD_AUDIT_LOGS_REQUEST, loadAuditLogs);\n}\n\nconst removeParticipantApi = (participantLinkId: number) => {\n return axios.delete(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/removeparticipant/${participantLinkId}`\n );\n};\n\nfunction* removeParticipant(action: RemoveParticipantRequestAction) {\n try {\n yield call(removeParticipantApi, action.participantLinkId);\n\n yield put(\n enqueueSnackbar(\n createNotification(\n REMOVE_PARTICIPANT_SUCCESS,\n \"Participant successfully removed\",\n \"success\"\n )\n )\n );\n yield put(removeParticipantSuccess(action.participantLinkId));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n REMOVE_PARTICIPANT_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n removeParticipantFailure(\n \"Something went wrong when trying to remove participant\"\n )\n );\n }\n }\n}\n\nexport function* watchRemoveParticipantRequest() {\n yield takeLatest(REMOVE_PARTICIPANT_REQUEST, removeParticipant);\n}\n\nconst setLocationApi = (\n locationInfo: LocationInformationModel,\n applicationId: number\n) => {\n const wicket = new Wkt.Wkt();\n\n const locationModel = {\n ...locationInfo,\n features: featuresToWkt(wicket, locationInfo.features)\n };\n\n const model = {\n ...locationModel,\n applicationId: applicationId\n };\n return axios.post(`${API_ROUTE}${APPLICATION_ENDPOINT}/location`, model);\n};\n\nfunction* setLocation(action: SetLocationRequestAction) {\n try {\n yield call(setLocationApi, action.locationInfo, action.applicationId);\n\n yield put(setLocationSuccess(action.locationInfo));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_LOCATION_SUCCESS,\n \"Location details updated successfully\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_LOCATION_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setLocationFailure(\n \"Something went wrong when trying to update Location details\"\n )\n );\n }\n }\n}\n\nexport function* watchSetLocationRequest() {\n yield takeLatest(SET_LOCATION_REQUEST, setLocation);\n}\n\nconst deleteAttachmentApi = (attachmentReference: string) => {\n return axios.delete(\n `${API_ROUTE}${MEDIA_ENDPOINT}/attachments/attachment/${attachmentReference}`\n );\n};\n\nfunction* deleteAttachment(action: DeleteAttachmentRequestAction) {\n try {\n yield call(deleteAttachmentApi, action.attachmentReference);\n\n yield put(\n enqueueSnackbar(\n createNotification(\n DELETE_ATTACHMENT_SUCCESS,\n \"Successfully deleted the attachment\",\n \"success\"\n )\n )\n );\n yield put(deleteAttachmentSuccess(action.attachmentReference));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n DELETE_ATTACHMENT_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n deleteAttachmentFailure(\n \"Something went wrong when trying to delete the attachment\"\n )\n );\n }\n }\n}\n\nexport function* watchDeleteAttachmentRequest() {\n yield takeLatest(DELETE_ATTACHMENT_REQUEST, deleteAttachment);\n}\n\nconst cancelApplicationApi = (applicationId: number) => {\n return axios.delete(`${API_ROUTE}${APPLICATION_ENDPOINT}/${applicationId}`);\n};\n\nfunction* cancelApplication(action: CancelApplicationRequestAction) {\n try {\n yield call(cancelApplicationApi, action.applicationId);\n\n yield put(\n enqueueSnackbar(\n createNotification(\n CANCEL_APPLICATION_SUCCESS,\n \"Successfully cancelled the application\",\n \"success\"\n )\n )\n );\n\n yield put(cancelApplicationSuccess());\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n CANCEL_APPLICATION_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n cancelApplicationFailure(\n \"Something went wrong when trying cancel the application\"\n )\n );\n }\n }\n}\n\nexport function* watchCancelApplicationRequest() {\n yield takeLatest(CANCEL_APPLICATION_REQUEST, cancelApplication);\n}\n\nconst setMaintenanceCompletionApi = (model: MaintenanceCompletionRequest) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/notifymaintenancecompletion`,\n model\n );\n};\n\nfunction* setMaintenanceCompletion(\n action: SetMaintenanceCompletionRequestAction\n) {\n try {\n const { data }: { data: MaintenanceCompletionResponse } = yield call(\n setMaintenanceCompletionApi,\n action.model\n );\n\n yield put(setMaintenanceCompletionSuccess(data));\n\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_MAINTENANCE_COMPLETION_SUCCESS,\n \"Completion of Maintenance has been notified\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_MAINTENANCE_COMPLETION_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n cancelApplicationFailure(\n \"Something went wrong when trying to notify completion of maintenance\"\n )\n );\n }\n }\n}\n\nexport function* watchSetMaintenanceCompletionRequest() {\n yield takeLatest(\n SET_MAINTENANCE_COMPLETION_REQUEST,\n setMaintenanceCompletion\n );\n}\n\nconst declineApplicationParticipantApi = (code: string) => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/declineparticipantrequest/${code}`\n );\n};\n\nfunction* declineApplicationParticipant(\n action: DeclineApplicationParticipantRequestAction\n) {\n try {\n yield call(declineApplicationParticipantApi, action.code);\n yield put(declineApplicationParticipantSuccess(true));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n DECLINE_APPLICATION_PARTICIPANT_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n declineApplicationParticipantFailure(\n \"Something went wrong when declining the participant request\"\n )\n );\n }\n }\n}\n\nexport function* watchDeclineApplicationParticipantRequest() {\n yield takeLatest(\n DECLINE_APPLICATION_PARTICIPANT_REQUEST,\n declineApplicationParticipant\n );\n}\n\nconst readOnlyApplicationDetailApi = (guid: string) => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/readonlyapplication/${guid}`\n );\n};\n","export const USERS_CONTROLLER = \"users\";\nexport const ORGANISATIONS_CONTROLLER = \"organisations\";\nexport const ATTACHMENTS_CONTROLLER = \"attachments\";\nexport const MAP_CONTROLLER = \"map\";\nexport const APPLICATIONS_CONTROLLER = \"applications\";\nexport const TEMPORARY_CONTROLLER = \"applications/temporary\";\nexport const RCA_ORGANISATIONS_CONTROLLER = \"rcaorganisations\";\nexport const IMAGES_CONTROLLER = \"images\";\nexport const NEW_ORGANIATIONS_CONTROLLER = \"Neworganisations\";\nexport const ADD_ORGANIATIONS_CONTROLLER = \"AddNewOrganisation\";\nexport const ADD_CARUSER_CONTROLLER = \"AddNewCarUser\";\nexport const GET_PARTICIPANT_ORGANISATION_CONTROLLER = \"GetParticipantOrganisation\";\n","import {\n LOAD_APPLICATIONS_SUMMARY_REQUEST,\n LoadApplicationsSummaryRequestAction,\n LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA,\n ApplicationsSummaryReceivedPayload,\n ApplicationsSummaryFilter,\n LOAD_RCA_LOGOS_REQUEST,\n LoadRcaLogosRequest,\n RcaLogo,\n LOAD_RCA_BOUNDARIES_REQUEST,\n LoadRcaBoundariesRequestAction,\n RcaBoundary,\n ApplicationExportColumn,\n LOAD_APPLICATION_EXPORT_COLUMNS_REQUEST,\n GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST,\n GenerateApplicationGridListExportRequestAction,\n ApplicationsFilterRequest\n} from \"./types\";\nimport { put, takeLatest, call } from \"redux-saga/effects\";\nimport {\n generateApplicationGridListExportFailure,\n generateApplicationGridListExportSuccess,\n loadApplicationExportColumnsSuccess,\n loadApplicationsSummaryFailure,\n loadApplicationsSummarySuccess,\n loadRcaBoundariesSuccess,\n loadRcaLogosSuccess\n} from \"./actions\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { APPLICATION_ENDPOINT, MEDIA_ENDPOINT } from \"common/endpoints\";\nimport {\n APPLICATIONS_CONTROLLER,\n IMAGES_CONTROLLER\n} from \"common/controllerConstants\";\nimport { GetOffsetUtc } from \"common/dateHelper\";\nimport moment from \"moment\";\n\nconst mapFilterModel = (\n filters: ApplicationsSummaryFilter\n): ApplicationsFilterRequest => ({\n searchTerm: filters.filterPreferences?.searchValue,\n rcaIds: filters.filterPreferences?.rcaSelection.map(x => x.id),\n dateFrom: filters.filterPreferences?.startDate,\n dateTo: filters.filterPreferences?.endDate,\n carStepIds: filters.filterPreferences?.stepSelection.map(x => x.id),\n carStatusIds: filters.filterPreferences?.statusSelection.map(x => x.id),\n carTypeIds: filters.filterPreferences?.typeSelection.map(x => x.id),\n applicantRoleIds: filters.filterPreferences?.roleSelection.map(x => x.id),\n userIds: filters.filterPreferences?.peopleSelection.map(x => x.id),\n bounds: filters.bounds,\n quickFilterId:\n (filters.filterPreferences?.stepSelection &&\n filters.filterPreferences?.stepSelection.length > 0) ||\n (filters.filterPreferences?.roleSelection &&\n filters.filterPreferences?.roleSelection.length > 0) ||\n (filters.filterPreferences?.statusSelection &&\n filters.filterPreferences?.statusSelection.length > 0)\n ? 0\n : filters.filterPreferences?.quickFilterSelection?.id,\n skip: filters.skip,\n take: 50,\n sorting: filters.sorting,\n loadCount: !!filters.loadCount,\n viewMode: filters.viewMode\n});\n\nconst getApplications = (filters: ApplicationsSummaryFilter) => {\n const applicationFilter: ApplicationsFilterRequest = mapFilterModel(filters);\n\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${APPLICATIONS_CONTROLLER}/summary`,\n {\n applicationsFilter: applicationFilter\n }\n );\n};\n\nexport function* loadApplicationsSummaryRequest(\n action: LoadApplicationsSummaryRequestAction\n) {\n try {\n const { data }: { data: ApplicationsSummaryReceivedPayload } = yield call(\n getApplications,\n action.applicationsSummaryOptions\n );\n\n if (data) {\n yield put(\n loadApplicationsSummarySuccess({\n receivedData: data.receivedData,\n totalCount: data.totalCount,\n isMapView: action.applicationsSummaryOptions.bounds !== undefined\n })\n );\n } else {\n yield put(\n loadApplicationsSummaryFailure(\n \"Unable to load the application summary data\"\n )\n );\n }\n } catch (e) {\n yield put(\n loadApplicationsSummaryFailure(\n \"Something went wrong when trying to fetch the car summary data\"\n )\n );\n throw e;\n }\n}\n\nexport function* watchLoadApplicationsSummaryRequestExtra() {\n yield takeLatest(\n LOAD_APPLICATIONS_SUMMARY_REQUEST_EXTRA,\n loadApplicationsSummaryRequest\n );\n}\n\nexport default function* watchLoadApplicationsSummaryRequest() {\n yield takeLatest(\n LOAD_APPLICATIONS_SUMMARY_REQUEST,\n loadApplicationsSummaryRequest\n );\n}\n\nconst loadRcaLogosApi = (rcaIds: number[]) => {\n return axios.post(\n `${API_ROUTE}${MEDIA_ENDPOINT}/${IMAGES_CONTROLLER}/rcaLogos`,\n {\n rcaOrganisationIds: rcaIds\n }\n );\n};\n\nexport function* loadRcaLogos(action: LoadRcaLogosRequest) {\n try {\n const { data }: { data: RcaLogo[] } = yield call(\n loadRcaLogosApi,\n action.rcaIds\n );\n\n const rcaLogos: RcaLogo[] = [];\n\n for (const rca of action.rcaIds) {\n if (!data.some(x => x.rcaOrganisationId === rca)) {\n rcaLogos.push({ rcaOrganisationId: rca });\n } else {\n const logo = data.find(x => x.rcaOrganisationId === rca);\n if (logo) {\n rcaLogos.push(logo);\n }\n }\n }\n\n if (rcaLogos) {\n yield put(loadRcaLogosSuccess(rcaLogos));\n }\n } catch (e) {\n throw e;\n }\n}\n\nexport function* watchLoadRcaLogosRequest() {\n yield takeLatest(LOAD_RCA_LOGOS_REQUEST, loadRcaLogos);\n}\n\nconst rcaBoundariesApi = (rcaIds: number[]) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${APPLICATIONS_CONTROLLER}/rcaBoundaries`,\n {\n rcaOrganisationIds: rcaIds\n }\n );\n};\n\nfunction* loadRcaBoundaries(action: LoadRcaBoundariesRequestAction) {\n try {\n const { data }: { data: RcaBoundary[] } = yield call(\n rcaBoundariesApi,\n action.rcaIds\n );\n\n yield put(loadRcaBoundariesSuccess(data));\n } catch (e) {\n throw e;\n }\n}\n\nexport function* watchLoadRcaBoundariesRequest() {\n yield takeLatest(LOAD_RCA_BOUNDARIES_REQUEST, loadRcaBoundaries);\n}\n\nconst applicationExportColumnsApi = () => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${APPLICATIONS_CONTROLLER}/exportcolumns`\n );\n};\n\nfunction* loadApplicationExportColumns() {\n try {\n const { data }: { data: ApplicationExportColumn[] } = yield call(\n applicationExportColumnsApi\n );\n\n yield put(loadApplicationExportColumnsSuccess(data));\n } catch (e) {\n throw e;\n }\n}\n\nexport function* watchLoadApplicationExportColumnsRequest() {\n yield takeLatest(\n LOAD_APPLICATION_EXPORT_COLUMNS_REQUEST,\n loadApplicationExportColumns\n );\n}\n\nconst applicationGridListExportApi = (\n filters: ApplicationsFilterRequest,\n applicationExportColumns: ApplicationExportColumn[],\n fileName: string\n) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${APPLICATIONS_CONTROLLER}/exportapplicationlist`,\n {\n filters: filters,\n applicationExportColumns: applicationExportColumns,\n fileName: fileName,\n offset: GetOffsetUtc()\n }\n );\n};\n\nfunction* generateApplicationGridListExport(\n action: GenerateApplicationGridListExportRequestAction\n) {\n try {\n const fileName = `Generated Export on ${moment().format(\n \"DD MMM YYYY HH_mm_ss\"\n )}.csv`;\n\n const { data }: { data: any } = yield call(\n applicationGridListExportApi,\n mapFilterModel(action.filters),\n action.applicationExportColumns,\n fileName\n );\n\n if (data) {\n download(data, fileName);\n yield put(generateApplicationGridListExportSuccess());\n } else {\n yield put(generateApplicationGridListExportFailure(\"error\"));\n }\n } catch (e) {\n yield put(generateApplicationGridListExportFailure(e));\n }\n}\n\nexport function* watchGenerateApplicationGridListExportRequest() {\n yield takeLatest(\n GENERATE_APPLICATION_GRID_LIST_EXPORT_REQUEST,\n generateApplicationGridListExport\n );\n}\n\nconst download = (data: any, name: string) => {\n const url = window.URL.createObjectURL(new Blob([data]));\n\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n};\n","import {\n LOAD_LOOKUP_REQUEST,\n LoadLookupRequestAction,\n LOAD_LOOKUP_SUCCESS\n} from \"./types\";\nimport { loadLookupFailure, loadLookupSuccess } from \"./actions\";\nimport {\n put,\n fork,\n take,\n cancel,\n ActionPattern,\n call\n} from \"redux-saga/effects\";\nimport { Lookup, SearchModel } from \"store/types\";\nimport { Task } from \"redux-saga\";\nimport axios from \"axios\";\nimport { Endpoint } from \"common/endpoints\";\nimport { API_ROUTE } from \"common/constants\";\n\nconst getLookupData = (\n endpoint: Endpoint,\n route: string,\n args: string[] = []\n) => {\n const finalArgs = args.join(\"/\");\n const uri = endpoint\n ? `${API_ROUTE}${endpoint}/${route}/lookups/${finalArgs}`\n : `${API_ROUTE}${route}/lookups/${finalArgs}`;\n return axios.get(uri);\n};\n\nconst postLookupData = (\n route: string,\n args: SearchModel,\n endpoint?: Endpoint\n) => {\n const uri = endpoint\n ? `${API_ROUTE}${endpoint}/${route}/lookups/`\n : `${API_ROUTE}${route}/lookups/`;\n return axios.post(uri, args);\n};\n\nexport function* loadLookupRequest(\n action: LoadLookupRequestAction,\n cleanupTasks: () => void\n) {\n try {\n yield put({ type: action.route + LOAD_LOOKUP_REQUEST });\n\n const { data }: { data: Lookup[] } =\n !action.args || action.args instanceof Array\n ? yield call(getLookupData, action.endpoint, action.route, action.args)\n : yield call(\n postLookupData,\n action.route,\n action.args,\n action.endpoint\n );\n\n if (data) {\n yield put(loadLookupSuccess(action.route, data));\n yield put({ type: action.route + LOAD_LOOKUP_SUCCESS });\n } else {\n yield put(\n loadLookupFailure(\n `Unable to load data for this lookup: ${action.route}.`\n )\n );\n }\n } catch (e) {\n yield put(\n loadLookupFailure(\"Something went wrong when trying to fetch lookup data\")\n );\n } finally {\n cleanupTasks();\n }\n}\n\nexport default function* watchLoadLookupRequest() {\n yield takeLatestByKey(LOAD_LOOKUP_REQUEST, loadLookupRequest);\n}\n\n/* this function is used to simulate the takeLatest function but uses a common action\n and a key(string) to check if a previous request needs to be cancelled */\nconst takeLatestByKey = <\n T extends ActionPattern,\n Fn extends (...args: any[]) => any\n>(\n pattern: T,\n saga: Fn,\n ...args: any\n) =>\n fork(function*() {\n const tasks: Map = new Map();\n while (true) {\n const action = yield take(pattern);\n if (tasks.has(action.route)) {\n yield cancel(tasks.get(action.route)!);\n }\n\n tasks.set(\n action.route,\n yield fork(\n saga,\n ...args.concat(action, () => {\n tasks.delete(action.route);\n })\n )\n );\n }\n });\n","import {\n LOAD_TTM_SITES_REQUEST,\n LoadTTMSitesRequestAction,\n SET_TTM_SITE_DB_REQUEST,\n SetTTMSiteDbRequestAction,\n TTMSite,\n SET_TTM_DETOUR_DB_REQUEST,\n SetTTMDetourDbRequestAction,\n TTMDetour,\n TTMClosure,\n SET_TTM_CLOSURE_DB_REQUEST,\n SetTTMClosureDbRequestAction,\n DELETE_TTM_SITE_DB_REQUEST,\n DeleteTTMSiteDbRequestAction,\n DELETE_TTM_SITE_DB_SUCCESS,\n DeleteTTMDetourDbRequestAction,\n DELETE_TTM_DETOUR_DB_SUCCESS,\n DELETE_TTM_DETOUR_DB_REQUEST,\n DELETE_TTM_CLOSURE_DB_REQUEST,\n DELETE_TTM_CLOSURE_DB_SUCCESS,\n DeleteTTMClosureDbRequestAction\n} from \"./types\";\nimport {\n loadTTMSitesSuccess,\n loadTTMSitesFailure,\n setTTMSiteDbSuccess,\n setTTMSiteDbFailure,\n setTTMDetourDbFailure,\n setTTMDetourDbSuccess,\n setTTMClosureDbSuccess,\n setTTMClosureDbFailure,\n deleteTTMSiteDbFailure,\n deleteTTMSiteDbSuccess,\n deleteTTMDetourDbFailure,\n deleteTTMDetourDbSuccess,\n deleteTTMClosureDbFailure,\n deleteTTMClosureDbSuccess\n} from \"./actions\";\nimport { put, takeLatest, call } from \"redux-saga/effects\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { TTM_ENDPOINT, APPLICATION_ENDPOINT } from \"common/endpoints\";\nimport { enqueueSnackbar } from \"store/notistack/actions\";\nimport { createNotification } from \"common/addNotification\";\nimport featuresToWkt from \"common/featuresToWkt\";\nimport Wkt from \"wicket\";\n\nconst getTTMSites = (applicationId: number) => {\n return axios.get(\n `${API_ROUTE}${TTM_ENDPOINT}/sites/application/${applicationId}`\n );\n};\n\nfunction* loadTTMSitesRequest(action: LoadTTMSitesRequestAction) {\n try {\n let ttmSiteDetails: TTMSite[] | null = null;\n\n if (action.guid) {\n const { data }: { data: TTMSite[] } = yield call(\n readOnlyTtmDetailsApi,\n action.guid\n );\n ttmSiteDetails = data;\n } else {\n const { data }: { data: TTMSite[] } = yield call(\n getTTMSites,\n action.applicationId!\n );\n ttmSiteDetails = data;\n }\n\n if (ttmSiteDetails) {\n yield put(loadTTMSitesSuccess(ttmSiteDetails));\n } else {\n yield put(\n loadTTMSitesFailure(\n `No TTM Sites were found for CAR ID: ${action.applicationId}`\n )\n );\n }\n } catch (e) {\n yield put(\n loadTTMSitesFailure(\"Something went wrong when trying to fetch TTM data\")\n );\n }\n}\n\nexport default function* watchLoadTTMSitesRequest() {\n yield takeLatest(LOAD_TTM_SITES_REQUEST, loadTTMSitesRequest);\n}\n\nconst setTTMSiteApiCall = (\n newSite: TTMSite,\n applicationId: number,\n isEditing: boolean\n) => {\n const wicket = new Wkt.Wkt();\n\n const model = {\n applicationId: applicationId,\n isEditing: isEditing,\n site: {\n siteId: newSite.siteId,\n fromStreetNumber: newSite.fromStreetNumber,\n toStreetNumber: newSite.toStreetNumber,\n streetAddress: newSite.streetAddress,\n roadClassId: newSite.roadClass.id,\n roadLevelId: newSite.roadLevel.id,\n ttmTypeId: newSite.ttmType.id,\n ttmTypeExplanation: newSite.ttmTypeExplanation,\n ttmImpactId: newSite.ttmImpact.id,\n ttmImpactExplanation: newSite.ttmImpactExplanation,\n workActivityId: newSite.workActivity.id,\n workActivityExplanation: newSite.workActivityExplanation,\n speedLimitId: newSite.speedLimit.id === 0 ? null : newSite.speedLimit.id,\n affectedAccessIds: newSite.affectedAccess.map(y => y.id),\n location: newSite.location,\n affectedAreaDescription: newSite.affectedAreaDescription,\n isTrafficDelayLikely: newSite.isTrafficDelayLikely,\n isPublicNotificationRequired: newSite.isPublicNotificationRequired,\n notes: newSite.notes,\n shapes: featuresToWkt(wicket, newSite.features),\n detours: newSite.detours.map(y => {\n return { description: y.description, notes: y.notes };\n }),\n closures: newSite.closures.map(y => {\n return {\n proposedStart: y.proposedStart,\n proposedEnd: y.proposedEnd,\n actualStart: y.actualStart,\n actualEnd: y.actualEnd,\n notes: y.notes\n };\n })\n }\n };\n\n return axios.post(`${API_ROUTE}${APPLICATION_ENDPOINT}/site/add`, model);\n};\n\nfunction* setTTMSiteRequest(action: SetTTMSiteDbRequestAction) {\n try {\n const { data }: { data: number } = yield setTTMSiteApiCall(\n action.newSite,\n action.applicationId,\n action.isEditing\n );\n\n action.newSite.siteId = data;\n\n yield put(\n enqueueSnackbar(\n createNotification(\n action.isEditing ? \"editSite\" : \"addSite\",\n `Successfully ${\n action.isEditing ? \"edited the\" : \"added a new\"\n } Traffic Management Site`,\n \"success\"\n )\n )\n );\n\n yield put(setTTMSiteDbSuccess(action.newSite, action.isEditing));\n } catch (e) {\n yield put(\n setTTMSiteDbFailure(\n \"Something went wrong when trying to save the Traffic Management Site\"\n )\n );\n }\n}\n\nexport function* watchSetTTMSiteDbRequest() {\n yield takeLatest(SET_TTM_SITE_DB_REQUEST, setTTMSiteRequest);\n}\n\nconst setTTMDetourApiCall = (newDetour: TTMDetour, isEditing: boolean) => {\n const wicket = new Wkt.Wkt();\n\n const model = {\n siteId: newDetour.siteId,\n isEditing: isEditing,\n detour: {\n detourId: newDetour.detourId,\n description: newDetour.description,\n notes: newDetour.notes,\n shapes: featuresToWkt(wicket, newDetour.features)\n }\n };\n\n return axios.post(`${API_ROUTE}${TTM_ENDPOINT}/detours/add`, model);\n};\n\nfunction* setTTMDetourRequest(action: SetTTMDetourDbRequestAction) {\n try {\n const { data }: { data: number } = yield setTTMDetourApiCall(\n action.newDetour,\n action.isEditing\n );\n\n action.newDetour.detourId = data;\n\n yield put(\n enqueueSnackbar(\n createNotification(\n action.isEditing ? \"editDetour\" : \"addDetour\",\n `Successfully ${\n action.isEditing ? \"edited the\" : \"added a new\"\n } Traffic Management Detour`,\n \"success\"\n )\n )\n );\n\n yield put(setTTMDetourDbSuccess(action.newDetour, action.isEditing));\n } catch (e) {\n yield put(\n setTTMDetourDbFailure(\n \"Something went wrong when trying to save the Traffic Management Detour\"\n )\n );\n }\n}\n\nexport function* watchSetTTMDetourDbRequest() {\n yield takeLatest(SET_TTM_DETOUR_DB_REQUEST, setTTMDetourRequest);\n}\n\nconst setTTMClosureApiCall = (newClosure: TTMClosure, isEditing: boolean) => {\n const model = {\n siteId: newClosure.siteId,\n isEditing: isEditing,\n closure: {\n closureId: newClosure.closureId,\n proposedStart: newClosure.proposedStart,\n proposedEnd: newClosure.proposedEnd,\n actualStart: newClosure.actualStart,\n actualEnd: newClosure.actualEnd,\n notes: newClosure.notes\n }\n };\n\n return axios.post(`${API_ROUTE}${TTM_ENDPOINT}/closures/add`, model);\n};\n\nfunction* setTTMClosureRequest(action: SetTTMClosureDbRequestAction) {\n try {\n const { data }: { data: number } = yield setTTMClosureApiCall(\n action.newClosure,\n action.isEditing\n );\n\n action.newClosure.closureId = data;\n\n yield put(\n enqueueSnackbar(\n createNotification(\n action.isEditing ? \"editClosure\" : \"addClosure\",\n `Successfully ${\n action.isEditing ? \"edited the\" : \"added a new\"\n } Traffic Management Closure`,\n \"success\"\n )\n )\n );\n\n yield put(setTTMClosureDbSuccess(action.newClosure, action.isEditing));\n } catch (e) {\n yield put(\n setTTMClosureDbFailure(\n \"Something went wrong when trying to save the Traffic Management Closure\"\n )\n );\n }\n}\n\nexport function* watchSetTTMClosureDbRequest() {\n yield takeLatest(SET_TTM_CLOSURE_DB_REQUEST, setTTMClosureRequest);\n}\n\nconst deleteTTMSiteApi = (siteId: number) => {\n return axios.delete(`${API_ROUTE}${TTM_ENDPOINT}/sites/${siteId}`);\n};\n\nfunction* deleteTTMSite(action: DeleteTTMSiteDbRequestAction) {\n try {\n yield call(deleteTTMSiteApi, action.siteId);\n\n yield put(deleteTTMSiteDbSuccess(action.siteId));\n yield put(\n enqueueSnackbar(\n createNotification(\n DELETE_TTM_SITE_DB_SUCCESS,\n \"Successfully deleted the TTM Site\",\n \"success\"\n )\n )\n );\n } catch (e) {\n yield put(\n deleteTTMSiteDbFailure(\n \"Something went wrong when trying to delete the Traffic Management Site\"\n )\n );\n }\n}\n\nexport function* watchDeleteTTMSiteDbRequest() {\n yield takeLatest(DELETE_TTM_SITE_DB_REQUEST, deleteTTMSite);\n}\n\nconst deleteTTMDetourApi = (detourId: number) => {\n return axios.delete(`${API_ROUTE}${TTM_ENDPOINT}/detours/${detourId}`);\n};\n\nfunction* deleteTTMDetour(action: DeleteTTMDetourDbRequestAction) {\n try {\n yield call(deleteTTMDetourApi, action.detourId);\n\n yield put(deleteTTMDetourDbSuccess(action.siteId, action.detourId));\n yield put(\n enqueueSnackbar(\n createNotification(\n DELETE_TTM_DETOUR_DB_SUCCESS,\n \"Successfully deleted the TTM Detour\",\n \"success\"\n )\n )\n );\n } catch (e) {\n yield put(\n deleteTTMDetourDbFailure(\n \"Something went wrong when trying to delete the Traffic Management Detour\"\n )\n );\n }\n}\n\nexport function* watchDeleteTTMDetourDbRequest() {\n yield takeLatest(DELETE_TTM_DETOUR_DB_REQUEST, deleteTTMDetour);\n}\n\nconst deleteTTMClosureApi = (closureId: number) => {\n return axios.delete(`${API_ROUTE}${TTM_ENDPOINT}/closures/${closureId}`);\n};\n\nfunction* deleteTTMClosure(action: DeleteTTMClosureDbRequestAction) {\n try {\n yield call(deleteTTMClosureApi, action.closureId);\n\n yield put(deleteTTMClosureDbSuccess(action.siteId, action.closureId));\n yield put(\n enqueueSnackbar(\n createNotification(\n DELETE_TTM_CLOSURE_DB_SUCCESS,\n \"Successfully deleted the TTM Closure\",\n \"success\"\n )\n )\n );\n } catch (e) {\n yield put(\n deleteTTMClosureDbFailure(\n \"Something went wrong when trying to delete the Traffic Management Closure\"\n )\n );\n }\n}\n\nexport function* watchDeleteTTMClosureDbRequest() {\n yield takeLatest(DELETE_TTM_CLOSURE_DB_REQUEST, deleteTTMClosure);\n}\n\nconst readOnlyTtmDetailsApi = (guid: string) => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/readonlyttmdetails/${guid}`\n );\n};\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n UserDetail,\n GRANT_USER_ACCESS,\n LOAD_USER_LINKS_REQUEST,\n LOAD_USER_DETAIL_REQUEST,\n SetLinkDuplicatesRequestAction,\n LOAD_DUPLICATE_ACCOUNT_REQUEST,\n SET_LINK_DUPLICATES_REQUEST,\n SET_GST_NUMBER_REQUEST,\n SetGstNumberRequestAction,\n LOAD_NEW_ORGANISATIONS_REQUEST,\n LoadNewOrganisationsRequestAction,\n RegisteredOrganisationModel,\n SET_NEW_ORGANISATION_REQUEST,\n SetNewOrganisationRequestAction,\n SET_NEW_ORGANISATION_SUCCESS,\n SET_NEW_ORGANISATION_FAILURE,\n LOAD_DUPLICATE_ACCOUNT_FAILURE,\n DuplicateAccountModel,\n UserAccount,\n LoadUserDetailRequestAction,\n SET_LINK_DUPLICATES_FAILURE,\n SetUserDetailRequestAction,\n SET_USER_DETAIL_FAILURE,\n SET_USER_DETAIL_REQUEST,\n SET_GST_NUMBER_FAILURE,\n SET_GST_NUMBER_SUCCESS,\n SET_LINK_DUPLICATES_SUCCESS,\n SET_NOTIFICATION_SETTINGS_REQUEST,\n SetNotificationSettingsRequestAction,\n NotificationSettings,\n SET_USER_REGIONS_REQUEST,\n UserRegion,\n SetUserRegionsRequestAction,\n SET_USER_REGIONS_FAILURE,\n SET_NOTIFICATION_SETTINGS_SUCCESS,\n SET_NOTIFICATION_SETTINGS_FAILURE,\n SET_USER_REGIONS_SUCCESS,\n SET_USER_LINK_REQUEST,\n SetUserLinkRequestAction,\n UserLinkDetail,\n SET_USER_LINK_SUCCESS,\n UserLinkButtonActionTypes,\n SET_USER_LINK_FAILURE,\n DELETE_USER_LINK_REQUEST,\n DeleteUserLinkRequestAction,\n DELETE_USER_LINK_SUCCESS,\n DELETE_USER_LINK_FAILURE,\n LoadUserLinksRequestAction,\n LOAD_PERMISSION_TO_VIEW_USER_REQUEST,\n LOAD_USER_NOTIFICATIONS_COUNT_REQUEST,\n LOAD_USER_NOTIFICATIONS_REQUEST,\n UserNotifications,\n LOAD_USER_NOTIFICATIONS_COUNT_FAILURE,\n LOAD_USER_NOTIFICATIONS_FAILURE,\n SET_USER_NOTIFICATIONS_INACTIVE_REQUEST,\n SetUserNotificationInactiveRequestAction,\n SET_USER_NOTIFICATIONS_INACTIVE_FAILURE,\n SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS,\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST,\n SetUserNotificationConfirmRequestAction,\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS,\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_FAILURE,\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST,\n LoadScaleOfWorkQuestionnaireRequestAction,\n LOAD_USER_REGIONS_REQUEST,\n LOAD_PARTICIPANT_ORGANISATION_REQUEST,\n LoadUserOrganisationRequestAction,\n LOAD_PARTICIPANT_ORGANISATION_FAILURE,\n DECLINE_USER_LINK_REQUEST,\n ConfirmUserLinkRequestAction,\n CONFIRM_USER_LINK_REQUEST,\n DeclineUserLinkRequestAction,\n USER_LINK_SUCCESS,\n DECLINE_USER_LINK_FAILURE,\n CONFIRM_USER_LINK_FAILURE,\n LoadNotificationsRequestAction,\n UserNotificationPaginationResponse\n} from \"./types\";\nimport {\n loadAccountManagementSuccess,\n loadUserDetailSuccess,\n loadDuplicateAccountSuccess,\n setLinkDuplicatesSuccess,\n setLinkDuplicatesFailure,\n loadDuplicateAccountFailure,\n setGstNumberSuccess,\n loadAccountManagementFailure,\n loadUserDetailFailure,\n setGstNumberFailure,\n loadNewOrganisationsFailure,\n loadNewOrganisationSuccess,\n setNewOrganisationFailure,\n setNewOrganisationSuccess,\n setUserDetailSuccess,\n setUserDetailFailure,\n setNotificationSettingsSuccess,\n setUserRegionsSuccess,\n setNotificationSettingsFailure,\n setUserRegionsFailure,\n setUserLinkFailure,\n setUserLinkSuccess,\n deleteUserLinkSuccess,\n deleteUserLinkFailure,\n loadPermissionToViewUserSuccess,\n loadPermissionToViewUserFailure,\n loadUserNotificationsCountSuccess,\n loadUserNotificationsSuccess,\n loadUserNotificationsCountFailure,\n loadUserNotificationsFailure,\n setUserNotificationInactiveFailure,\n setUserNotificationInactiveSuccess,\n setUserNotificationConfirmDeclineSuccess,\n setUserNotificationConfirmDeclineFailure,\n loadScaleOfWorkQuestionnaireSuccess,\n loadScaleOfWorkQuestionnaireFailure,\n loadUserRegionsSuccess,\n loadParticipantOrganisationSuccess,\n loadParticipantOrganisationFailure,\n declineUserLinkFailure,\n confirmUserLinkFailure,\n userLinkSuccess\n} from \"./actions\";\nimport { Lookup, SearchModel } from \"store/types\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { ADMINISTRATION_ENDPOINT, Endpoint } from \"common/endpoints\";\nimport {\n USERS_CONTROLLER,\n ORGANISATIONS_CONTROLLER,\n RCA_ORGANISATIONS_CONTROLLER,\n NEW_ORGANIATIONS_CONTROLLER,\n ADD_ORGANIATIONS_CONTROLLER,\n ADD_CARUSER_CONTROLLER,\n GET_PARTICIPANT_ORGANISATION_CONTROLLER\n} from \"common/controllerConstants\";\nimport { enqueueSnackbar } from \"store/notistack/actions\";\nimport { createNotification } from \"common/addNotification\";\nimport { UserLinkType, UserNotificationActionTypes } from \"common/enums\";\nimport { GetOffsetUtc } from \"common/dateHelper\";\n\nconst setUserDetailApi = (\n userModel: UserDetail,\n isEditingUserAccount: boolean\n) => {\n const addUser = {\n isEditingUserAccount: isEditingUserAccount,\n email: userModel.email,\n firstName: userModel.firstName,\n lastName: userModel.lastName,\n address: userModel.address.description,\n mobilePhone: userModel.mobilePhone,\n workPhone: userModel.workPhone,\n fax: userModel.fax,\n jobPosition: userModel.jobPosition,\n organisationId: userModel.organisation.id,\n isTrafficManagementCoordinator: userModel.isTrafficManagementCoordinator,\n profileUpdateRequired: userModel.profileUpdateRequired,\n participantCertificationTypeLink: {\n participantCertificateTypeId: userModel.participantCertificateType?.id,\n certificationNumber: userModel.certificationNumber,\n dateOfExpiry: userModel.dateOfExpiry,\n dateOfIssue: userModel.dateOfIssue,\n placeOfIssue: userModel.placeOfIssue\n }\n };\n if (axios.defaults.headers.common[\"Authorization\"] === undefined){\n return axios.post(\n `${API_ROUTE}${ADD_CARUSER_CONTROLLER}/lookups`,\n addUser\n );\n }\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/createnewcaruser`,\n addUser\n );\n};\n\nfunction* setUserDetail(action: SetUserDetailRequestAction) {\n try {\n const { data }: { data: Lookup } = yield call(\n setUserDetailApi,\n action.newUserFormModel,\n action.isEditingUserAccount\n );\n\n yield put(\n setUserDetailSuccess(\n action.parentId,\n data,\n action.isEditingUserAccount,\n action.newUserFormModel\n )\n );\n\n yield put(\n enqueueSnackbar(\n createNotification(\n action.isEditingUserAccount ? \"editedUserAccount\" : \"addedNewAccount\",\n action.isEditingUserAccount\n ? \"Successfully updated your account details\"\n : \"New Account added\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_DETAIL_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setUserDetailFailure(\n \"Something went wrong while trying to save new user\"\n )\n );\n }\n }\n}\n\nexport default function* watchSetUserDetailRequest() {\n yield takeLatest(SET_USER_DETAIL_REQUEST, setUserDetail);\n}\n\nconst loadDuplicateAccountsApi = () => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/duplicateusers`\n );\n};\n\nfunction* loadDuplicateAccounts() {\n try {\n const { data }: { data: DuplicateAccountModel[] } = yield call(\n loadDuplicateAccountsApi\n );\n\n if (data) {\n yield put(loadDuplicateAccountSuccess(data));\n } else {\n yield put(\n loadDuplicateAccountFailure(\"Failed to load duplicate accounts\")\n );\n }\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_DUPLICATE_ACCOUNT_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n loadDuplicateAccountFailure(\n \"Something went wrong when trying to fetch duplicate accounts data\"\n )\n );\n }\n }\n}\n\nexport function* watchLoadDuplicateAccountsRequest() {\n yield takeLatest(LOAD_DUPLICATE_ACCOUNT_REQUEST, loadDuplicateAccounts);\n}\n\nconst setLinkSelectedDuplicatesApi = (\n selectedIds?: number[],\n emailToLink?: string\n) => {\n const request = {\n email: emailToLink ?? null,\n UserIds: selectedIds ?? null\n };\n\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/linkduplicates`,\n request\n );\n};\n\nexport function* setLinkSelectedDuplicates(\n action: SetLinkDuplicatesRequestAction\n) {\n try {\n if (action.selectedIds || action.emailToLink) {\n const data = yield call(\n setLinkSelectedDuplicatesApi,\n action.selectedIds,\n action.emailToLink\n );\n\n if (data) {\n yield put(\n setLinkDuplicatesSuccess(action.selectedIds, action.emailToLink)\n );\n\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_LINK_DUPLICATES_SUCCESS,\n \"An email has been sent with instructions on how to confirm to link.\",\n \"success\"\n )\n )\n );\n }\n }\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_LINK_DUPLICATES_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setLinkDuplicatesFailure(\n \"Something went wrong when trying to link duplcate account\"\n )\n );\n }\n }\n}\n\nexport function* watchSetLinkSelectedDuplicatesRequest() {\n yield takeLatest(SET_LINK_DUPLICATES_REQUEST, setLinkSelectedDuplicates);\n}\n\nconst setUserLinkApi = (\n user: Lookup,\n userLinkType: UserLinkType,\n actionType: UserLinkButtonActionTypes\n) => {\n const model = {\n userId: user.id,\n userLinkTypeId: userLinkType,\n isBaseUser: actionType !== GRANT_USER_ACCESS\n };\n\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/userlinks`,\n model\n );\n};\n\nfunction* setUserLink(action: SetUserLinkRequestAction) {\n try {\n const { data }: { data: UserLinkDetail } = yield call(\n setUserLinkApi,\n action.user,\n action.userLinkType,\n action.actionType\n );\n\n yield put(setUserLinkSuccess(data, action.actionType));\n\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_LINK_SUCCESS,\n \"Successfully linked the user\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_LINK_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setUserLinkFailure(\"Something went wrong when trying to link users\")\n );\n }\n }\n}\n\nexport function* watchSetUserLinkRequest() {\n yield takeLatest(SET_USER_LINK_REQUEST, setUserLink);\n}\n\nconst deleteUserLinkApi = (userLinkId: number) => {\n return axios.delete(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/userlinks/${userLinkId}`\n );\n};\n\nfunction* deleteUserLink(action: DeleteUserLinkRequestAction) {\n try {\n yield call(deleteUserLinkApi, action.userLinkId);\n\n yield put(deleteUserLinkSuccess(action.userLinkId));\n\n yield put(\n enqueueSnackbar(\n createNotification(\n DELETE_USER_LINK_SUCCESS,\n \"Successfully deleted the linked user\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n DELETE_USER_LINK_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n deleteUserLinkFailure(\n \"Something went wrong when trying to delete the linked user\"\n )\n );\n }\n }\n}\n\nexport function* watchDeleteUserLinkRequest() {\n yield takeLatest(DELETE_USER_LINK_REQUEST, deleteUserLink);\n}\n\nconst loadUserLinksApi = (userId: number) => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/users/userlinks/${userId}`\n );\n};\n\nexport function* loadUserLinks(action: LoadUserLinksRequestAction) {\n try {\n const { data }: { data: UserAccount } = yield call(\n loadUserLinksApi,\n action.userId\n );\n\n yield put(loadAccountManagementSuccess(data));\n } catch (e) {\n yield put(\n loadAccountManagementFailure(\n \"Something went wong while fetching account data\"\n )\n );\n }\n}\n\nexport function* watchLoadUserLinksRequest() {\n yield takeLatest(LOAD_USER_LINKS_REQUEST, loadUserLinks);\n}\n\nconst loadPermissionToViewUserApi = (userId: number) => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/users/userpermission/${userId}`\n );\n};\n\nexport function* loadPermissionToViewUser(action: LoadUserDetailRequestAction) {\n try {\n const { data }: { data: boolean } = yield call(\n loadPermissionToViewUserApi,\n action.userId\n );\n\n if (data) {\n yield put(loadPermissionToViewUserSuccess(data));\n } else {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_PERMISSION_TO_VIEW_USER_REQUEST,\n \"You do not have permission to view this user\",\n \"error\"\n )\n )\n );\n }\n } catch (e) {\n yield put(\n loadPermissionToViewUserFailure(\n \"Something went wrong while fetching permissions\"\n )\n );\n }\n}\n\nexport function* watchLoadPermissionToViewUserRequest() {\n yield takeLatest(\n LOAD_PERMISSION_TO_VIEW_USER_REQUEST,\n loadPermissionToViewUser\n );\n}\n\nconst loadUserDetailApi = (userId: number) => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/users/user/${userId}`\n );\n};\n\nexport function* loadUserDetail(action: LoadUserDetailRequestAction) {\n try {\n const { data }: { data: UserDetail } = yield call(\n loadUserDetailApi,\n action.userId\n );\n\n if (data) {\n yield put(loadUserDetailSuccess(data));\n }\n } catch (e) {\n yield put(\n loadUserDetailFailure(\"Something went wrong while fetching account data\")\n );\n }\n}\n\nexport function* watchLoadUserDetailRequest() {\n yield takeLatest(LOAD_USER_DETAIL_REQUEST, loadUserDetail);\n}\n\nconst setGstNumberApi = (gstNumber: string) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${ORGANISATIONS_CONTROLLER}/gstnumber`,\n { gstNumber: gstNumber }\n );\n};\n\nfunction* setGstNumber(action: SetGstNumberRequestAction) {\n try {\n const response = yield call(setGstNumberApi, action.gstNumber);\n\n if (response) {\n yield put(setGstNumberSuccess(action.gstNumber));\n\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_GST_NUMBER_SUCCESS,\n \"GST number updated\",\n \"success\"\n )\n )\n );\n }\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_GST_NUMBER_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setGstNumberFailure(\n \"Something went wrong while updating the GST number\"\n )\n );\n }\n }\n}\n\nexport function* watchSetGstNumberRequest() {\n yield takeLatest(SET_GST_NUMBER_REQUEST, setGstNumber);\n}\n\nconst getNewOrganisations = (\n endpoint: Endpoint,\n route: string,\n args: SearchModel | string[]\n) => {\n if (axios.defaults.headers.common[\"Authorization\"] === undefined){\n return axios.post(\n `${API_ROUTE}${NEW_ORGANIATIONS_CONTROLLER}/lookups`,\n args\n );\n }\n return axios.post(\n `${API_ROUTE}${endpoint}/${ORGANISATIONS_CONTROLLER}/${route}`,\n args\n );\n};\n\nfunction* loadNewOrganisationsRequest(\n action: LoadNewOrganisationsRequestAction\n) {\n try {\n if (action.args) {\n const { data }: { data: RegisteredOrganisationModel[] } = yield call(\n getNewOrganisations,\n action.endpoint,\n action.route,\n action.args!\n );\n\n if (data) {\n yield put(loadNewOrganisationSuccess(action.route, data));\n } else {\n yield put(\n loadNewOrganisationsFailure(\n `Unable to load data for: ${action.route}`\n )\n );\n }\n }\n } catch (e) {\n yield put(\n loadNewOrganisationsFailure(\n \"Something went wrong when trying to fetch lookup data\"\n )\n );\n }\n}\n\nexport function* watchLoadNewOrganisationsRequest() {\n yield takeLatest(LOAD_NEW_ORGANISATIONS_REQUEST, loadNewOrganisationsRequest);\n}\n\nconst addNewOrganisation = (\n newOrganisation: RegisteredOrganisationModel\n) => {\n if (axios.defaults.headers.common[\"Authorization\"] === undefined){\n return axios.post(\n `${API_ROUTE}${ADD_ORGANIATIONS_CONTROLLER}/lookups`,\n newOrganisation\n );\n }\n return axios.post(`${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${ORGANISATIONS_CONTROLLER}/neworganisation`, newOrganisation);\n};\n\nfunction* setNewOrganisationsRequest(action: SetNewOrganisationRequestAction) {\n try {\n const { data }: { data: Lookup } = yield call(\n addNewOrganisation,\n action.newOrganisation\n );\n\n yield put(setNewOrganisationSuccess(data, action.parentId));\n\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_NEW_ORGANISATION_SUCCESS,\n \"New Organisation added successfully\",\n \"success\"\n )\n )\n );\n\n // TODO: data (the id of the new organisation) may be used. Waiting on advice\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n SET_NEW_ORGANISATION_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n } else {\n yield put(\n setNewOrganisationFailure(\n \"Something went wrong when trying to add this organisation\"\n )\n );\n }\n }\n}\n\nexport function* watchSetNewOrganisationRequest() {\n yield takeLatest(SET_NEW_ORGANISATION_REQUEST, setNewOrganisationsRequest);\n}\n\nconst setNotificationSettingsApi = (\n notificationSettings: NotificationSettings\n) => {\n const model = {\n notificationSummaryTypeId: notificationSettings.notificationSummaryType.id,\n sendDowntimeEmails: notificationSettings.sendDowntimeEmails,\n sendNotificationEmails: notificationSettings.sendNotificationEmails,\n organisationIds: notificationSettings.organisationWhitelist.map(x => x.id)\n };\n\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/notificationsettings`,\n model\n );\n};\n\nfunction* setNotificationSettings(\n action: SetNotificationSettingsRequestAction\n) {\n try {\n yield call(setNotificationSettingsApi, action.notificationSettings);\n\n yield put(setNotificationSettingsSuccess(action.notificationSettings));\n\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_NOTIFICATION_SETTINGS_SUCCESS,\n \"Successfully updated Notification Settings\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_NOTIFICATION_SETTINGS_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setNotificationSettingsFailure(\n \"Something went wrong while trying to update Notification Settings\"\n )\n );\n }\n }\n}\n\nexport function* watchSetNotificationSettingsRequest() {\n yield takeLatest(SET_NOTIFICATION_SETTINGS_REQUEST, setNotificationSettings);\n}\n\nconst setUserRegionsApi = (userRegions: UserRegion[]) => {\n const model = {\n userRegions: userRegions\n };\n\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/userregions`,\n model\n );\n};\n\nfunction* setUserRegions(action: SetUserRegionsRequestAction) {\n try {\n yield call(setUserRegionsApi, action.userRegions);\n\n yield put(setUserRegionsSuccess(action.userRegions));\n\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_REGIONS_SUCCESS,\n \"Successfully updated User Regions\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_REGIONS_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setUserRegionsFailure(\n \"Something went wrong while trying to update User Regions\"\n )\n );\n }\n }\n}\n\nexport function* watchSetUserRegionsRequest() {\n yield takeLatest(SET_USER_REGIONS_REQUEST, setUserRegions);\n}\n\nconst loadUserNotificationsApi = (pageIndex: number) => {\n const request = {\n offset: GetOffsetUtc(),\n pageIndex: pageIndex,\n pageSize: 100\n };\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/notifications`,\n request\n );\n};\n\nexport function* loadUserNotifications(action: LoadNotificationsRequestAction) {\n try {\n const { data }: { data: UserNotificationPaginationResponse } = yield call(\n loadUserNotificationsApi, action.pageIndex\n );\n\n yield put(loadUserNotificationsSuccess(data));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_USER_NOTIFICATIONS_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n loadUserNotificationsFailure(\n \"Something went wrong when trying to fetch notifications\"\n )\n );\n }\n }\n}\n\nexport function* watchLoadUserNotificationsRequest() {\n yield takeLatest(LOAD_USER_NOTIFICATIONS_REQUEST, loadUserNotifications);\n}\n\nconst loadUserNotificationsCountApi = () => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/notificationcount`\n );\n};\n\nexport function* loadUserNotificationsCount() {\n try {\n const { data }: { data: number } = yield call(\n loadUserNotificationsCountApi\n );\n yield put(loadUserNotificationsCountSuccess(data));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_USER_NOTIFICATIONS_COUNT_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n loadUserNotificationsCountFailure(\n \"Something went wrong when trying to fetch notification count\"\n )\n );\n }\n }\n}\n\nexport function* watchLoadUserNotificationCountRequest() {\n yield takeLatest(\n LOAD_USER_NOTIFICATIONS_COUNT_REQUEST,\n loadUserNotificationsCount\n );\n}\n\nconst setUserNotificationInactiveApi = (notificationIds: string[]) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/hidenotification`,\n { notificationIds: notificationIds }\n );\n};\n\nexport function* setUserNotificationInactive(\n action: SetUserNotificationInactiveRequestAction\n) {\n try {\n yield call(setUserNotificationInactiveApi, action.request.notificationIds);\n yield put(setUserNotificationInactiveSuccess(action.request));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_NOTIFICATIONS_INACTIVE_SUCCESS,\n \"Notification is now hidden\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_NOTIFICATIONS_INACTIVE_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setUserNotificationInactiveFailure(\n \"Something went wrong when trying to set the notification to inactive\"\n )\n );\n }\n }\n}\n\nexport function* watchSetUserNotificationInactiveRequest() {\n yield takeLatest(\n SET_USER_NOTIFICATIONS_INACTIVE_REQUEST,\n setUserNotificationInactive\n );\n}\n\nconst setUserNotificationConfirmApi = (notificationId: string) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/confirmnotification`,\n { notificationId: notificationId }\n );\n};\n\nconst setUserNotificationDeclineApi = (notificationId: string) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/declinenotification`,\n { notificationId: notificationId }\n );\n};\n\nexport function* setUserNotificationConfirmDecline(\n action: SetUserNotificationConfirmRequestAction\n) {\n try {\n let actionDone;\n switch (action.notificationActionType) {\n case UserNotificationActionTypes.Confirm: {\n yield call(setUserNotificationConfirmApi, action.notificationId);\n actionDone = \"confirmed\";\n break;\n }\n case UserNotificationActionTypes.Decline: {\n yield call(setUserNotificationDeclineApi, action.notificationId);\n actionDone = \"declined\";\n break;\n }\n }\n\n yield put(setUserNotificationConfirmDeclineSuccess(action.notificationId));\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_SUCCESS,\n `Successfully ${actionDone} notification`,\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n setUserNotificationConfirmDeclineFailure(\n `Something went wrong when trying to ${action.notificationActionType} your notification`\n )\n );\n }\n }\n}\n\nexport function* watchSetUserNotificationConfirmDeclineRequest() {\n yield takeLatest(\n SET_USER_NOTIFICATION_CONFIRM_DECLINE_REQUEST,\n setUserNotificationConfirmDecline\n );\n}\n\nconst loadScaleOfWorkQuestionnaireApi = (rcaId: number) => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${RCA_ORGANISATIONS_CONTROLLER}/scaleofworkquestionnaire/${rcaId}`\n );\n};\n\nfunction* loadScaleOfWorkQuestionnaire(\n action: LoadScaleOfWorkQuestionnaireRequestAction\n) {\n try {\n const { data }: { data: string[] } = yield call(\n loadScaleOfWorkQuestionnaireApi,\n action.rcaId\n );\n\n yield put(loadScaleOfWorkQuestionnaireSuccess(data));\n } catch (e) {\n yield put(\n loadScaleOfWorkQuestionnaireFailure(\n \"Something went wrong while fetching custom Scale Of Work questionnaires\"\n )\n );\n }\n}\n\nexport function* watchLoadScaleOfWorkQuestionnaireRequest() {\n yield takeLatest(\n LOAD_SCALE_OF_WORK_QUESTIONNAIRE_REQUEST,\n loadScaleOfWorkQuestionnaire\n );\n}\n\nconst loadUserRegionsApi = () => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/userregions`\n );\n};\n\nfunction* loadUserRegions() {\n const { data }: { data: UserRegion[] } = yield call(loadUserRegionsApi);\n\n yield put(loadUserRegionsSuccess(data));\n}\n\nexport function* watchLoadUserRegionsRequest() {\n yield takeLatest(LOAD_USER_REGIONS_REQUEST, loadUserRegions);\n}\n\nconst loadParticipantOrganisationApi = (userId: number) => {\n if (axios.defaults.headers.common[\"Authorization\"] === undefined){\n return axios.get(`${API_ROUTE}${GET_PARTICIPANT_ORGANISATION_CONTROLLER}/lookups?${userId}`);\n }\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/participantorganisation/${userId}`\n );\n};\n\nfunction* loadParticipantOrganisation(\n action: LoadUserOrganisationRequestAction\n) {\n try {\n const { data }: { data: Lookup } = yield call(\n loadParticipantOrganisationApi,\n action.userId\n );\n\n yield put(loadParticipantOrganisationSuccess(data));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_PARTICIPANT_ORGANISATION_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n loadParticipantOrganisationFailure(\n \"Something went wrong when fetching participant organisation\"\n )\n );\n }\n }\n}\n\nexport function* watchLoadParticipantOrganisationRequest() {\n yield takeLatest(\n LOAD_PARTICIPANT_ORGANISATION_REQUEST,\n loadParticipantOrganisation\n );\n}\n\nconst confirmUserLinkApi = (code: string) => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/confirmuserlink/${code}`\n );\n};\n\nfunction* confirmUserLink(action: ConfirmUserLinkRequestAction) {\n try {\n const { data }: { data: string } = yield call(\n confirmUserLinkApi,\n action.code\n );\n yield put(\n enqueueSnackbar(\n createNotification(\n USER_LINK_SUCCESS,\n \"Linking users completed\",\n \"success\"\n )\n )\n );\n yield put(userLinkSuccess(data));\n } catch (e) {\n const message = e.response.data;\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n CONFIRM_USER_LINK_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n confirmUserLinkFailure(\"Somethine went wrong when confirming user link\")\n );\n }\n }\n}\n\nexport function* watchConfirmUserLinkRequest() {\n yield takeLatest(CONFIRM_USER_LINK_REQUEST, confirmUserLink);\n}\n\nconst declineUserLinkApi = (code: string) => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/declineuserlink/${code}`\n );\n};\n\nfunction* declineUserLink(action: DeclineUserLinkRequestAction) {\n try {\n yield call(declineUserLinkApi, action.code);\n yield put(\n enqueueSnackbar(\n createNotification(\n USER_LINK_SUCCESS,\n \"You have declined linking users\",\n \"success\"\n )\n )\n );\n yield put(userLinkSuccess(\"decline\"));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n DECLINE_USER_LINK_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n declineUserLinkFailure(\"Something went wrong when declining user link\")\n );\n }\n }\n}\n\nexport function* watchDeclineUserLinkRequest() {\n yield takeLatest(DECLINE_USER_LINK_REQUEST, declineUserLink);\n}\n","import { takeLatest, put, call } from \"redux-saga/effects\";\nimport { ToStartOfDay } from \"common/dateHelper\";\nimport {\n UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n UploadTemporaryFileRequestAction,\n DeleteTemporaryFileRequestAction,\n DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n SUBMIT_APPLICATION_REQUEST,\n SubmitApplicationRequestAction,\n NewApplication,\n LOAD_APPLICATION_SETTINGS_DATA_REQUEST,\n LoadApplicationSettingsDataRequestAction,\n LOAD_BILLING_ITEMS_PREVIEW_REQUEST,\n LoadBillingItemsPreviewRequestAction,\n RcaBillableItemGroupingModel,\n BillingPreviewRequestModel,\n LOAD_RCA_IDS_FROM_SHAPES_REQUEST,\n LoadRcaIdsFromShapesRequestAction,\n LOAD_RCA_IDS_FROM_SHAPES_FAILURE,\n SUBMIT_APPLICATION_FAILURE,\n RcaApplicationModel,\n LoadRcaOptionFromIdRequestAction,\n LOAD_RCA_OPTION_FROM_ID_FAILURE,\n LOAD_RCA_OPTION_FROM_ID_REQUEST,\n LOAD_PRIMARY_APPLICANT_INFO_REQUEST,\n LOAD_PRIMARY_APPLICANT_INFO_FAILURE,\n LoadPrimaryApplicantInfoRequestAction,\n SetTemporarySavedApplicationRequestAction,\n SET_TEMPORARY_SAVED_APPLICATION_REQUEST,\n CHECK_REGISTERED_ORGANISATION_REQUEST,\n CheckRegisteredOrganisationRequestAction,\n CHECK_REGISTERED_ORGANISATION_FAILURE,\n LOAD_SAVED_APPLICATION_LIST_FAILURE,\n LOAD_SAVED_APPLICATION_LIST_REQUEST,\n DeleteSavedApplicationRequestAction,\n DELETE_SAVED_APPLICATION_FAILURE,\n DELETE_SAVED_APPLICATION_REQUEST,\n LoadSavedApplicationRequestAction,\n LOAD_SAVED_APPLICATION_REQUEST,\n TemporarySavedApplication,\n LOAD_SAVED_APPLICATION_FAILURE,\n TemporaryDisplaySavedApplication,\n TemporaryAttachment,\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST,\n LoadSiblingApplicationSettingsRequestAction,\n ApplicationSettingsData,\n ApplicationList,\n OrganisationRegisters,\n GET_DEFAULT_BILLPAYER_REQUEST,\n GetDefaultBillPayerRequestAction\n} from \"./types\";\nimport {\n uploadTemporaryFileFailure,\n uploadTemporaryFileSuccess,\n deleteTemporaryFileSuccess,\n deleteTemporaryFileFailure,\n submitApplicationSuccess,\n submitApplicationFailure,\n loadApplicationSettingsDataSuccess,\n loadApplicationSettingsDataFailure,\n loadBillingItemPreviewFailure,\n loadBillingItemPreviewSuccess,\n loadRcaIdsFromShapesFailure,\n loadRcaIdsFromShapesSuccess,\n loadRcaOptionsFromIdFailure,\n loadRcaOptionsFromIdSuccess,\n loadPrimaryApplicantInfoFailure,\n loadPrimaryApplicantInfoSuccess,\n checkRegisteredOrganisationSuccess,\n checkRegisteredOrganisationFailure,\n loadSavedApplicationsSuccess,\n loadSavedApplicationsFailure,\n deleteSavedApplicationSuccess,\n loadSavedApplicationSuccess,\n loadSavedApplicationFailure,\n loadSiblingApplicationSettingsDataSuccess,\n loadSiblingApplicationSettingsFailure,\n getDefaultBillPayerSuccess\n} from \"./actions\";\nimport axios from \"axios\";\nimport { ParticipantRoleEnum, ApplicantRoleEnum } from \"common/enums\";\nimport {\n APPLICATION_ENDPOINT,\n MEDIA_ENDPOINT,\n ADMINISTRATION_ENDPOINT,\n BILLING_ENDPOINT\n} from \"common/endpoints\";\nimport { API_ROUTE } from \"common/constants\";\nimport { TTMSite, TTMDetour, TTMClosure } from \"store/trafficManagement/types\";\nimport {\n ORGANISATIONS_CONTROLLER,\n ATTACHMENTS_CONTROLLER,\n TEMPORARY_CONTROLLER\n} from \"common/controllerConstants\";\nimport Wkt from \"wicket\";\nimport featuresToWkt, { featureToWkt } from \"common/featuresToWkt\";\nimport { Guid } from \"guid-typescript\";\nimport { createNotification } from \"common/addNotification\";\nimport { enqueueSnackbar } from \"store/notistack/actions\";\nimport { AddParticipant, Lookup } from \"store/types\";\nimport { GetApplicationTypeString } from \"common/EnumUtils\";\nimport moment from \"moment\";\nimport { duplicateTTM } from \"store/trafficManagement/actions\";\nimport wktToFeatures from \"common/wktToFeatures\";\nimport { GetOffsetUtc } from \"common/dateHelper\";\nimport { ApplicationType } from \"common/enums\";\n\nconst uploadTemporaryFile = (formData: FormData) => {\n return axios.post(\n `${API_ROUTE}${MEDIA_ENDPOINT}/${ATTACHMENTS_CONTROLLER}/temporaryattachment`,\n formData,\n {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n }\n );\n};\n\nconst deleteTemporaryFile = (filepath: string) => {\n return axios.delete(\n `${API_ROUTE}${MEDIA_ENDPOINT}/${ATTACHMENTS_CONTROLLER}/temporaryattachment/${filepath}`\n );\n};\n\nfunction* uploadTemporaryFileRequest(action: UploadTemporaryFileRequestAction) {\n try {\n const formData = new FormData();\n const ids: Guid[] = [];\n action.attachments.forEach(file => {\n const filepath = `${action.applicationId}/${file.attachmentType.id}/${file.identifier}_${file.filename}`;\n formData.append(filepath, file.file!);\n\n ids.push(file.identifier);\n });\n\n yield call(uploadTemporaryFile, formData);\n\n yield put(\n enqueueSnackbar(\n createNotification(\n \"addTemporaryAttachment\",\n \"Successfully uploaded file(s)\",\n \"success\"\n )\n )\n );\n\n yield put(uploadTemporaryFileSuccess(ids));\n } catch (e) {\n yield put(uploadTemporaryFileFailure(\"Failed to upload the file.\"));\n }\n}\n\nfunction* deleteTemporaryFileRequest(action: DeleteTemporaryFileRequestAction) {\n try {\n const filepath = `${action.applicationId}/${action.attachmentDetails.attachmentType.id}/${action.attachmentDetails.identifier}_${action.attachmentDetails.filename}`;\n\n yield call(deleteTemporaryFile, filepath);\n\n yield put(deleteTemporaryFileSuccess(action.attachmentDetails.identifier));\n } catch (e) {\n yield put(deleteTemporaryFileFailure(\"Failed to delete the file.\"));\n }\n}\n\nconst submitApplication = (app: NewApplication, ttmSites: TTMSite[]) => {\n let participants: AddParticipant[] = [\n {\n //Primary Applicant\n userId: app.whoData.primaryApplicant.id,\n participantRole: {\n id: ParticipantRoleEnum.ApplicantPrimaryContact,\n description: \"Applicant Primary Contact\"\n }\n }\n ];\n\n if (app.whoData.billPayer && app.whoData.billPayer.id !== 0) {\n participants.push({\n // Bill payer\n userId: app.whoData.billPayer.id,\n participantRole: {\n id: ParticipantRoleEnum.BillPayer,\n description: \"Bill Payer\"\n }\n });\n }\n\n if (\n app.whoData.utilityOperatorContact &&\n app.whoData.utilityOperatorContact.id !== 0\n ) {\n participants.push({\n // Bill payer\n userId: app.whoData.utilityOperatorContact.id,\n participantRole: {\n id: ParticipantRoleEnum.UtilityOperatorPrimaryContact,\n description: \"Utility Operator Primary Contact\"\n }\n });\n if (\n app.whoData.principalRole &&\n app.whoData.principalRole.id !== ApplicantRoleEnum.UtilityOperator\n ) {\n participants.push({\n //Other\n userId: app.whoData.isPrincipal\n ? app.whoData.primaryApplicant.id\n : app.whoData.principalContactPerson.id,\n participantRole: {\n id: ParticipantRoleEnum.OtherPartyConsultant,\n description: \"Other Party Consultant\"\n }\n });\n }\n } else {\n participants.push({\n //Principal\n userId: app.whoData.isPrincipal\n ? app.whoData.primaryApplicant.id\n : app.whoData.principalContactPerson.id,\n participantRole: {\n id: ParticipantRoleEnum.PrincipalPrimaryContact,\n description: \"Principal Primary Contact\"\n }\n });\n }\n\n participants = participants.concat(\n app.whoData.additionalParticipants.map(x => {\n return {\n participantRole: x.participantRole,\n userId: x.participantContact.id\n };\n })\n );\n\n const wicket = new Wkt.Wkt();\n\n const sites = ttmSites.map(x => {\n return {\n fromStreetNumber: x.fromStreetNumber,\n toStreetNumber: x.toStreetNumber,\n streetAddress: x.streetAddress,\n roadClassId: x.roadClass.id,\n roadLevelId: x.roadLevel.id,\n ttmTypeId: x.ttmType.id,\n ttmTypeExplanation: x.ttmTypeExplanation,\n ttmImpactId: x.ttmImpact.id,\n ttmImpactExplanation: x.ttmImpactExplanation,\n workActivityId: x.workActivity.id,\n workActivityExplanation: x.workActivityExplanation,\n speedLimitId: x.speedLimit.id === 0 ? null : x.speedLimit.id,\n affectedAccessIds: x.affectedAccess.map(y => y.id),\n location: x.location,\n affectedAreaDescription: x.affectedAreaDescription,\n isTrafficDelayLikely: x.isTrafficDelayLikely,\n isPublicNotificationRequired: x.isPublicNotificationRequired,\n notes: x.notes,\n shapes: featuresToWkt(wicket, x.features),\n detours: x.detours.map(y => {\n return {\n description: y.description,\n notes: y.notes,\n shapes: featuresToWkt(wicket, y.features)\n };\n }),\n closures: x.closures.map(y => {\n return {\n proposedStart: y.proposedStart,\n proposedEnd: y.proposedEnd,\n actualStart: y.actualStart,\n actualEnd: y.actualEnd,\n notes: y.notes\n };\n })\n };\n });\n\n const applicationDetail = {\n //setup\n applicationId: app.id.toString(),\n applicationTypeId: app.setupData.applicationType,\n //where\n streetNumber: app.whereData.streetNumber,\n streetName: app.whereData.streetName,\n suburb: app.whereData.suburb,\n townCity: app.whereData.townCity,\n postCode: app.whereData.postCode,\n addressNotes: app.whereData.addressNotes,\n locationsInRoad: app.whereData.locationsInRoad.map(x => x.id),\n rcaIdList: app.rcaOptions\n .filter(x => x.isSubmiticaEnabled && x.isActive)\n .map(x => x.rcaId),\n shapes: featuresToWkt(wicket, app.whereData.shapes),\n //when\n workTypeId: app.whenData.workType.id,\n majorActivityIds: app.whenData.majorActivities.map(x => x.id),\n duration: app.whenData.duration,\n startDate: ToStartOfDay(app.whenData.startDate),\n endDate: ToStartOfDay(app.whenData.endDate),\n normalWorkingHours: app.whenData.normalWorkingHours,\n //who\n principalRoleId: app.whoData.principalRole?.id,\n participants: participants,\n //what\n description: app.whatData.description,\n isGlobalCar: app.whatData.isGlobalCar,\n activityIds: app.whatData.activities.map(x => x.id),\n //traffic\n roadLevelId: app.trafficData.roadLevel?.id,\n isRoadClosureRequired: app.trafficData.isFullRoadClosureRequired,\n //extra\n consentNumber: app.extraData.consentNumber,\n utilityReferenceNumber: app.extraData.utilityReferenceNumber,\n purchaseOrderNumber: app.extraData.purchaseOrderNumber,\n extraInformation: app.extraData.extraInformation,\n billingPreview: app.billingPreview,\n noTMP: (app.setupData.applicationType === ApplicationType.Preliminary && (!app.trafficData.tmp || app.trafficData.tmp?.length === 0)) ? true : false\n };\n\n const attachments = app.trafficData.tmp?.map(x => {\n return {\n identifier: x.identifier.toString(),\n fileName: x.filename,\n attachmentTypeId: x.attachmentType.id\n };\n });\n\n if (app.extraData.extraAttachments) {\n attachments?.push(\n ...app.extraData.extraAttachments.map(x => {\n return {\n identifier: x.identifier.toString(),\n fileName: x.filename,\n attachmentTypeId: x.attachmentType.id\n };\n })\n );\n }\n\n return axios.post(`${API_ROUTE}${APPLICATION_ENDPOINT}/add`, {\n applicationDetail: applicationDetail,\n attachments: attachments,\n sites: sites,\n offset: GetOffsetUtc()\n });\n};\n\nfunction* submitApplicationRequest(action: SubmitApplicationRequestAction) {\n try {\n const { data }: { data: ApplicationList[] } = yield call(\n submitApplication,\n action.newApplication,\n action.ttmSites\n );\n\n yield put(submitApplicationSuccess(data, false));\n } catch (e) {\n const message = e.response ? e.response.data : e.message;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n SUBMIT_APPLICATION_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n\n yield put(submitApplicationSuccess([], true));\n } else {\n yield put(submitApplicationFailure(\"Failed to submit the application\"));\n }\n }\n}\n\nconst getApplicationSettings = (rcaIds: number[]) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/applicationsettings`,\n { organisationIds: rcaIds }\n );\n};\n\nfunction* applicationSettingsDataRequest(\n action: LoadApplicationSettingsDataRequestAction\n) {\n try {\n const { data }: { data: ApplicationSettingsData } = yield call(\n getApplicationSettings,\n action.rcaIds\n );\n yield put(loadApplicationSettingsDataSuccess(data));\n } catch (e) {\n yield put(\n loadApplicationSettingsDataFailure(\"Failed to fetch application settings\")\n );\n }\n}\n\nexport function* watchApplicationSettingsDataRequest() {\n yield takeLatest(\n LOAD_APPLICATION_SETTINGS_DATA_REQUEST,\n applicationSettingsDataRequest\n );\n}\n\nfunction* childApplicationSettingsDataRequest(\n action: LoadSiblingApplicationSettingsRequestAction\n) {\n try {\n const { data }: { data: ApplicationSettingsData } = yield call(\n getApplicationSettings,\n action.rcaIds\n );\n\n yield put(loadSiblingApplicationSettingsDataSuccess(data));\n } catch (e) {\n yield put(\n loadSiblingApplicationSettingsFailure(\n \"Failed to fetch child application settings\"\n )\n );\n }\n}\n\nexport function* watchChildApplicationSettingsDataRequest() {\n yield takeLatest(\n LOAD_SIBLING_APPLICATION_SETTINGS_DATA_REQUEST,\n childApplicationSettingsDataRequest\n );\n}\n\nconst loadBillingPreview = (\n billingPreviewRequestModel: BillingPreviewRequestModel\n) => {\n return axios.post(\n `${API_ROUTE}${BILLING_ENDPOINT}/billingpreview`,\n billingPreviewRequestModel\n );\n};\n\nfunction* loadBillingItemPreviewRequest(\n action: LoadBillingItemsPreviewRequestAction\n) {\n try {\n const { data }: { data: RcaBillableItemGroupingModel[] } = yield call(\n loadBillingPreview,\n action.billingPreviewRequest\n );\n\n yield put(loadBillingItemPreviewSuccess(data));\n } catch (e) {\n yield put(\n loadBillingItemPreviewFailure(\n \"Failed to fetch Billing Items for this application\"\n )\n );\n }\n}\n\nconst loadRcaIdsFromShapes = (shapes: string[]) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/rcaorganisations/getRcaIdsFromShapes`,\n {\n wktShapes: shapes\n }\n );\n};\n\nfunction* loadRcaIdsFromShapesRequest(\n action: LoadRcaIdsFromShapesRequestAction\n) {\n try {\n if (action.shapes.length > 0) {\n const wicket = new Wkt.Wkt();\n\n const wktStrings = action.shapes.map(shape => {\n return featureToWkt(wicket, shape);\n });\n\n const { data }: { data: RcaApplicationModel[] } = yield call(\n loadRcaIdsFromShapes,\n wktStrings\n );\n\n yield put(loadRcaIdsFromShapesSuccess(data));\n } else {\n yield put(loadRcaIdsFromShapesSuccess([]));\n }\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_RCA_IDS_FROM_SHAPES_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n loadRcaIdsFromShapesFailure(\n \"Failed to load RCA matches for the drawn shapes\"\n )\n );\n }\n }\n}\n\nconst loadRcaOptionsFromIdApi = (rcaId: number) => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/rcaorganisations/getRcaOptionFromId/${rcaId}`\n );\n};\n\nfunction* loadRcaOptionFromId(action: LoadRcaOptionFromIdRequestAction) {\n try {\n const { data }: { data: RcaApplicationModel } = yield call(\n loadRcaOptionsFromIdApi,\n action.rcaId\n );\n\n yield put(loadRcaOptionsFromIdSuccess(data));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_RCA_OPTION_FROM_ID_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(loadRcaOptionsFromIdFailure(\"Failed to load an RCA match\"));\n }\n }\n}\n\nexport function* watchLoadRcaOptionsFromIdRequest() {\n yield takeLatest(LOAD_RCA_OPTION_FROM_ID_REQUEST, loadRcaOptionFromId);\n}\n\nexport function* watchTemporaryFileUploadRequest() {\n yield takeLatest(\n UPLOAD_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n uploadTemporaryFileRequest\n );\n}\n\nexport function* watchTemporaryFileDeleteRequest() {\n yield takeLatest(\n DELETE_CREATE_APPLICATION_TEMPORARY_FILE_REQUEST,\n deleteTemporaryFileRequest\n );\n}\n\nexport function* watchSubmitApplicationRequest() {\n yield takeLatest(SUBMIT_APPLICATION_REQUEST, submitApplicationRequest);\n}\n\nexport function* watchLoadBillingItemPreviewRequest() {\n yield takeLatest(\n LOAD_BILLING_ITEMS_PREVIEW_REQUEST,\n loadBillingItemPreviewRequest\n );\n}\n\nexport function* watchLoadRcaIdsFromShapesRequest() {\n yield takeLatest(\n LOAD_RCA_IDS_FROM_SHAPES_REQUEST,\n loadRcaIdsFromShapesRequest\n );\n}\n\nconst loadPrimaryApplicantInfoApi = (userId: number, rcaIds?: number[]) => {\n return axios.post(`${API_ROUTE}${BILLING_ENDPOINT}/primaryApplicantInfo`, {\n rcaIds: rcaIds,\n userId: userId\n });\n};\n\nexport function* loadPrimaryApplicantInfo(\n action: LoadPrimaryApplicantInfoRequestAction\n) {\n try {\n const {\n data\n }: { data: { billPayer: Lookup; organisation: Lookup } } = yield call(\n loadPrimaryApplicantInfoApi,\n action.userId,\n action.rcaIds\n );\n\n yield put(\n loadPrimaryApplicantInfoSuccess(data.billPayer, data.organisation)\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n LOAD_PRIMARY_APPLICANT_INFO_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n }\n yield put(\n loadPrimaryApplicantInfoFailure(\n \"Something went wrong when trying to load the primary applicant information\"\n )\n );\n }\n}\n\nexport function* watchLoadPrimaryApplicantInfoRequest() {\n yield takeLatest(\n LOAD_PRIMARY_APPLICANT_INFO_REQUEST,\n loadPrimaryApplicantInfo\n );\n}\n\nconst setTemporarySavedApplicationApi = (\n newApplication: NewApplication,\n ttmSites: TTMSite[]\n) => {\n const wicket = new Wkt.Wkt();\n\n const temporaryCarModel = {\n storageId: newApplication.id.toString(),\n description: `${GetApplicationTypeString(\n newApplication.setupData.applicationType!\n )} application saved on ${moment().format(\"Do MMMM YYYY, h:mm:ss a\")}`,\n applicationDetail: JSON.stringify({\n ...newApplication,\n whereData: {\n ...newApplication.whereData,\n shapes: featuresToWkt(wicket, newApplication.whereData.shapes)\n }\n }),\n ttmDetail: JSON.stringify(\n ttmSites.map(site => ({\n ...site,\n features: featuresToWkt(wicket, site.features),\n detours: site.detours.map(detour => ({\n ...detour,\n features: featuresToWkt(wicket, detour.features)\n }))\n }))\n )\n };\n\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${TEMPORARY_CONTROLLER}`,\n temporaryCarModel\n );\n};\n\nexport function* setTemporarySavedApplication(\n action: SetTemporarySavedApplicationRequestAction\n) {\n try {\n yield call(\n setTemporarySavedApplicationApi,\n action.newApplication,\n action.ttmSites\n );\n // TODO potentially coming in a future PR\n } catch (e) {\n // TODO as above\n }\n}\n\nexport function* watchSetTemporarySavedApplicationRequest() {\n yield takeLatest(\n SET_TEMPORARY_SAVED_APPLICATION_REQUEST,\n setTemporarySavedApplication\n );\n}\n\nconst registeredOrganisationApi = (\n organisationId: number,\n rcaIds: number[]\n) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${ORGANISATIONS_CONTROLLER}/registeredorganisation`,\n {\n organisationId: organisationId,\n rcaIds: rcaIds\n }\n );\n};\n\nexport function* checkRegisteredOrganisation(\n action: CheckRegisteredOrganisationRequestAction\n) {\n try {\n const { data }: { data: OrganisationRegisters } = yield call(\n registeredOrganisationApi,\n action.organisationId,\n action.rcaIds\n );\n\n yield put(checkRegisteredOrganisationSuccess(data));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n CHECK_REGISTERED_ORGANISATION_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n }\n yield put(\n checkRegisteredOrganisationFailure(\n \"Something went wrong when trying to check if current organisation is a registered utility operator\"\n )\n );\n }\n}\n\nexport function* watchCheckRegisteredOrganisationRequest() {\n yield takeLatest(\n CHECK_REGISTERED_ORGANISATION_REQUEST,\n checkRegisteredOrganisation\n );\n}\n\nconst loadSavedApplicationsApi = () => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${TEMPORARY_CONTROLLER}`\n );\n};\n\nexport function* loadSavedApplications() {\n try {\n const { data }: { data: TemporaryDisplaySavedApplication[] } = yield call(\n loadSavedApplicationsApi\n );\n\n yield put(loadSavedApplicationsSuccess(data));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n LOAD_SAVED_APPLICATION_LIST_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n }\n yield put(\n loadSavedApplicationsFailure(\n \"Something went wrong when trying to load the list of saved applications\"\n )\n );\n }\n}\n\nexport function* watchLoadSavedApplicationsRequest() {\n yield takeLatest(LOAD_SAVED_APPLICATION_LIST_REQUEST, loadSavedApplications);\n}\n\nconst deleteSavedApplicationApi = (id: Guid) => {\n return axios.delete(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${TEMPORARY_CONTROLLER}/${id}`\n );\n};\n\nexport function* deleteSavedApplication(\n action: DeleteSavedApplicationRequestAction\n) {\n try {\n yield call(deleteSavedApplicationApi, action.id);\n\n yield put(deleteSavedApplicationSuccess(action.id));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n DELETE_SAVED_APPLICATION_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n }\n yield put(\n loadSavedApplicationsFailure(\n \"Something went wrong when trying to delete the saved application\"\n )\n );\n }\n}\n\nexport function* watchDeleteSavedApplicationRequest() {\n yield takeLatest(DELETE_SAVED_APPLICATION_REQUEST, deleteSavedApplication);\n}\n\nconst loadSavedApplicationApi = (id: Guid) => {\n return axios.get(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${TEMPORARY_CONTROLLER}/${id}`\n );\n};\n\nexport function* loadSavedApplication(\n action: LoadSavedApplicationRequestAction\n) {\n try {\n const wicket = new Wkt.Wkt();\n\n const { data }: { data: TemporarySavedApplication } = yield call(\n loadSavedApplicationApi,\n action.id\n );\n\n // manipulate data into correct format\n\n let application = JSON.parse(data.applicationDetail);\n\n application = {\n ...application,\n currentMaxStep: application.currentMaxStep,\n id: Guid.parse(application.id.value),\n whereData: {\n ...application.whereData,\n shapes: wktToFeatures(wicket, application.whereData.shapes)\n },\n whenData: {\n ...application.whenData,\n startDate: application.whenData.startDate\n ? new Date(application.whenData.startDate)\n : undefined,\n endDate: application.whenData.endDate\n ? new Date(application.whenData.endDate)\n : undefined\n },\n trafficData: {\n ...application.trafficData,\n tmp: application.trafficData.tmp\n ? application.trafficData.tmp.map((tmp: TemporaryAttachment) => ({\n ...tmp,\n identifier: Guid.parse((tmp.identifier as any).value)\n }))\n : undefined\n },\n extraData: {\n ...application.extraData,\n extraAttachments: application.extraData.extraAttachments\n ? application.extraData.extraAttachments.map(\n (attachment: TemporaryAttachment) => ({\n ...attachment,\n identifier: Guid.parse((attachment.identifier as any).value)\n })\n )\n : undefined\n }\n };\n\n let ttm = JSON.parse(data.ttmDetail);\n\n ttm = ttm.map((site: TTMSite) => ({\n ...site,\n features: site.features\n ? wktToFeatures(wicket, site.features as any)\n : [],\n detours:\n site && site.detours\n ? site.detours.map((detour: TTMDetour) => ({\n ...detour,\n features: wktToFeatures(wicket, detour.features as any)\n }))\n : undefined,\n closures:\n site && site.closures\n ? site.closures.map((closure: TTMClosure) => ({\n ...closure,\n proposedStart: closure.proposedStart\n ? new Date(closure.proposedStart)\n : undefined,\n proposedEnd: closure.proposedEnd\n ? new Date(closure.proposedEnd)\n : undefined,\n actualStart: closure.actualStart\n ? new Date(closure.actualStart)\n : undefined,\n actualEnd: closure.actualEnd\n ? new Date(closure.actualEnd)\n : undefined\n }))\n : undefined\n }));\n\n // send data off\n yield put(loadSavedApplicationSuccess(application));\n yield put(duplicateTTM(ttm));\n } catch (e) {\n if (e.response) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n LOAD_SAVED_APPLICATION_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n }\n } else {\n yield put(\n loadSavedApplicationFailure(\n \"Something went wrong when trying to load the saved application\"\n )\n );\n }\n }\n}\n\nexport function* watchLoadSavedApplicationRequest() {\n yield takeLatest(LOAD_SAVED_APPLICATION_REQUEST, loadSavedApplication);\n}\n\nconst getDefaultBillPayerApi = (organisationId: number, rcaIds?: number[], userId?: number | null) => {\n return axios.post(`${API_ROUTE}${BILLING_ENDPOINT}/getDefaultBillPayer`, {\n rcaIds: rcaIds,\n organisationId: organisationId,\n userId: userId\n });\n};\n\nexport function* getDefaultBillPayer(\n action: GetDefaultBillPayerRequestAction\n) {\n try {\n const {\n data\n }: { data: Lookup } = yield call(\n getDefaultBillPayerApi,\n action.organisationId,\n action.rcaIds,\n action.userId\n );\n\n yield put(\n getDefaultBillPayerSuccess(data)\n );\n } catch (e) {\n }\n}\n\nexport function* watchGetDefaultBillPayerRequest() {\n yield takeLatest(\n GET_DEFAULT_BILLPAYER_REQUEST,\n getDefaultBillPayer\n );\n}","import {\n LOAD_SHAPES_REQUEST,\n LoadShapesRequestAction,\n LoadShapesRequest,\n ShapeDetail,\n LOAD_APPLICATION_CLASH_REQUEST,\n LoadApplicationClashRequestAction,\n ApplicationClash,\n LOAD_APPLICATION_CLASH_FAILURE,\n ApplicationClashRequest,\n LOAD_DISPATCHES_REQUEST,\n LoadDispatchesRequestAction,\n LoadDispatchesRequest\n} from \"./types\";\nimport { put, takeLatest, call } from \"redux-saga/effects\";\nimport {\n loadApplicationClashFailure,\n loadApplicationClashSuccess,\n loadDispatchesSuccess,\n loadDispatchesFailure,\n loadShapesFailure,\n loadShapesSuccess\n} from \"./actions\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { APPLICATION_ENDPOINT } from \"common/endpoints\";\nimport { MAP_CONTROLLER } from \"common/controllerConstants\";\nimport { enqueueSnackbar } from \"store/notistack/actions\";\nimport { createNotification } from \"common/addNotification\";\n\nconst getShapes = (request: LoadShapesRequest) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${MAP_CONTROLLER}/planningmap/carshapes`,\n request\n );\n};\n\nfunction* loadShapeRequest(action: LoadShapesRequestAction) {\n try {\n const { data }: { data: ShapeDetail[] } = yield call(\n getShapes,\n action.request\n );\n\n yield put(loadShapesSuccess(data));\n } catch (e) {\n yield put(loadShapesFailure(\"Failed to load car shapes.\"));\n }\n}\n\nexport default function* watchLoadShapesRequest() {\n yield takeLatest(LOAD_SHAPES_REQUEST, loadShapeRequest);\n}\n\nconst applicationClashApi = (request: ApplicationClashRequest) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${MAP_CONTROLLER}/applicationclashes`,\n request\n );\n};\n\nfunction* loadApplicationClash(action: LoadApplicationClashRequestAction) {\n try {\n const { data }: { data: ApplicationClash } = yield call(\n applicationClashApi,\n action.applicationClashRequest\n );\n\n yield put(loadApplicationClashSuccess(data));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n yield put(\n enqueueSnackbar(\n createNotification(\n LOAD_APPLICATION_CLASH_FAILURE,\n message.Message,\n message.MessageType\n )\n )\n );\n } else {\n yield put(\n loadApplicationClashFailure(\n \"Something went wrong when fetching application clashes\"\n )\n );\n }\n }\n}\n\nexport function* watchLoadApplicationClash() {\n yield takeLatest(LOAD_APPLICATION_CLASH_REQUEST, loadApplicationClash);\n}\n\nconst getDispatches = (request: LoadDispatchesRequest) => {\n return axios.post(\n `${API_ROUTE}${APPLICATION_ENDPOINT}/${MAP_CONTROLLER}/planningmap/getDispatch`,\n request\n );\n};\n\nfunction* loadDispatchRequest(action: LoadDispatchesRequestAction) {\n try {\n const { data }: { data: string[] } = yield call(\n getDispatches,\n action.request\n );\n yield put(loadDispatchesSuccess(data));\n } catch (e) {\n yield put(loadDispatchesFailure(\"Failed to load dispatches.\"));\n }\n}\n\nexport function* watchLoadDispatchRequest() {\n yield takeLatest(LOAD_DISPATCHES_REQUEST, loadDispatchRequest);\n}\n","import {\n LoadBillPayerRequestAction,\n LOAD_BILL_PAYER_REQUEST,\n BillPayer,\n ADD_BILL_PAYER_REQUEST,\n AddBillPayerRequestAction,\n AddBillPayerModel,\n ADD_BILL_PAYER_SUCCESS,\n ADD_BILL_PAYER_FAILURE\n} from \"./types\";\nimport { takeLatest, call, put } from \"redux-saga/effects\";\nimport { API_ROUTE } from \"common/constants\";\nimport { BILLING_ENDPOINT } from \"common/endpoints\";\nimport axios from \"axios\";\nimport {\n loadBillPayerFailure,\n loadBillPayerSuccess,\n addBillPayerFailure,\n addBillPayerSuccess\n} from \"./actions\";\nimport { enqueueSnackbar } from \"store/notistack/actions\";\nimport { createNotification } from \"common/addNotification\";\n\nconst loadBillPayerApi = (id: number) => {\n return axios.get(`${API_ROUTE}${BILLING_ENDPOINT}/billPayer/${id}`);\n};\n\nexport function* loadBillPayer(action: LoadBillPayerRequestAction) {\n try {\n const { data }: { data: BillPayer } = yield call(\n loadBillPayerApi,\n action.id\n );\n\n yield put(loadBillPayerSuccess(data));\n } catch (e) {\n const message = e.response.data;\n yield put(\n loadBillPayerFailure(\n message.Message ??\n \"Something went wrong when trying to fetch the Bill Payer\"\n )\n );\n }\n}\n\nconst addBillPayerApi = (billPayer: AddBillPayerModel) => {\n return axios.post(`${API_ROUTE}${BILLING_ENDPOINT}/billpayer`, billPayer);\n};\n\nexport function* addBillPayer(action: AddBillPayerRequestAction) {\n try {\n const { data }: { data: BillPayer } = yield call(\n addBillPayerApi,\n action.billPayer\n );\n\n yield put(addBillPayerSuccess(data));\n yield put(\n enqueueSnackbar(\n createNotification(\n ADD_BILL_PAYER_SUCCESS,\n \"Bill Payer Added Successfully\",\n \"success\"\n )\n )\n );\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n ADD_BILL_PAYER_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n }\n yield put(\n addBillPayerFailure(\n \"Something went wrong when trying to add the Bill Payer\"\n )\n );\n }\n}\n\nexport function* watchLoadBillPayerRequest() {\n yield takeLatest(LOAD_BILL_PAYER_REQUEST, loadBillPayer);\n}\n\nexport function* watchAddBillPayerRequest() {\n yield takeLatest(ADD_BILL_PAYER_REQUEST, addBillPayer);\n}\n","import {\n LOAD_BILLPAYERS_SUMMARY_REQUEST,\n LoadBillPayersSummaryRequestAction,\n LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA,\n BillPayersSummaryReceivedPayload,\n BillPayersSummaryFilter\n} from \"./types\";\nimport { put, takeLatest, call } from \"redux-saga/effects\";\nimport {\n loadBillPayersSummaryFailure,\n loadBillPayersSummarySuccess\n} from \"./actions\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { BILLING_ENDPOINT } from \"common/endpoints\";\n\nconst getBillPayers = (filters: BillPayersSummaryFilter) => {\n const skip = filters.skip;\n const take = 50;\n return axios.post(`${API_ROUTE}${BILLING_ENDPOINT}/billpayers`, {\n skip,\n take\n });\n};\n\nexport function* loadBillPayersSummaryRequest(\n action: LoadBillPayersSummaryRequestAction\n) {\n try {\n const { data }: { data: BillPayersSummaryReceivedPayload } = yield call(\n getBillPayers,\n action.billPayersSummaryOptions\n );\n\n yield put(\n loadBillPayersSummarySuccess({\n receivedData: data.receivedData,\n totalCount: data.totalCount\n })\n );\n } catch (e) {\n const message = e.response.data;\n\n yield put(\n loadBillPayersSummaryFailure(\n message.Message ??\n \"Something went wrong when trying to fetch the Bill Payers\"\n )\n );\n }\n}\n\nexport function* watchLoadBillPayersSummaryRequestExtra() {\n yield takeLatest(\n LOAD_BILLPAYERS_SUMMARY_REQUEST_EXTRA,\n loadBillPayersSummaryRequest\n );\n}\n\nexport default function* watchLoadBillPayersSummaryRequest() {\n yield takeLatest(\n LOAD_BILLPAYERS_SUMMARY_REQUEST,\n loadBillPayersSummaryRequest\n );\n}\n","import {\n InvoicesSummaryOptions,\n LoadInvoicesSummaryRequestAction,\n InvoicesSummarySuccessPayload,\n LOAD_INVOICES_SUMMARY_REQUEST,\n LOAD_INVOICES_SUMMARY_REQUEST_EXTRA\n} from \"./types\";\nimport { API_ROUTE } from \"common/constants\";\nimport { BILLING_ENDPOINT } from \"common/endpoints\";\nimport axios from \"axios\";\nimport {\n loadInvoicesSummarySuccess,\n loadInvoicesSummaryFailure\n} from \"./actions\";\nimport { put, call, takeLatest } from \"redux-saga/effects\";\n\nconst loadInvoicesApi = (options: InvoicesSummaryOptions) => {\n const skip = options.skip;\n const take = 50;\n return axios.post(`${API_ROUTE}${BILLING_ENDPOINT}/invoices`, {\n skip,\n take\n });\n};\n\nexport function* loadInvoices(action: LoadInvoicesSummaryRequestAction) {\n try {\n const { data }: { data: InvoicesSummarySuccessPayload } = yield call(\n loadInvoicesApi,\n action.invoicesSummaryOptions\n );\n\n yield put(\n loadInvoicesSummarySuccess({\n receivedData: data ? data.receivedData : [],\n totalCount: data ? data.totalCount : 0\n })\n );\n } catch (e) {\n const message = e.response.data;\n yield put(\n loadInvoicesSummaryFailure(\n message.Message ?? \"Something went wrong when trying to fetch Invoices\"\n )\n );\n }\n}\n\nexport function* watchLoadInvoicesSummaryRequest() {\n yield takeLatest(LOAD_INVOICES_SUMMARY_REQUEST, loadInvoices);\n}\n\nexport function* watchLoadInvoicesSummaryRequestExtra() {\n yield takeLatest(LOAD_INVOICES_SUMMARY_REQUEST_EXTRA, loadInvoices);\n}\n","import {\n InvoiceDetailOptions,\n LOAD_INVOICE_DETAIL_REQUEST,\n LoadInvoiceDetailRequestAction,\n InvoiceDetailSuccessPayload\n} from \"./types\";\nimport { API_ROUTE } from \"common/constants\";\nimport { BILLING_ENDPOINT } from \"common/endpoints\";\nimport axios from \"axios\";\nimport { put, call, takeLatest } from \"redux-saga/effects\";\nimport { loadInvoiceDetailFailure, loadInvoiceDetailSuccess } from \"./actions\";\n\nconst loadInvoiceApi = (options: InvoiceDetailOptions) => {\n const invoiceId = options.invoiceId;\n return axios.post(`${API_ROUTE}${BILLING_ENDPOINT}/invoice`, {\n invoiceId\n });\n};\n\nexport function* loadInvoice(action: LoadInvoiceDetailRequestAction) {\n try {\n const { data }: { data: InvoiceDetailSuccessPayload } = yield call(\n loadInvoiceApi,\n action.invoiceDetailOptions\n );\n\n yield put(\n loadInvoiceDetailSuccess({\n receivedBillingItems: data.receivedBillingItems,\n totalCount: data.totalCount,\n invoiceHeaderData: data.invoiceHeaderData\n })\n );\n } catch (e) {\n const message = e.response.data;\n\n yield put(\n loadInvoiceDetailFailure(\n message.Message ??\n \"Something went wrong when trying to fetch that Invoice\"\n )\n );\n }\n}\n\nexport function* watchLoadInvoiceDetailRequest() {\n yield takeLatest(LOAD_INVOICE_DETAIL_REQUEST, loadInvoice);\n}\n","import {\n DownloadAttachmentRequestAction,\n DOWNLOAD_ATTACHMENT_REQUEST,\n DOWNLOAD_ATTACHMENTS_REQUEST,\n DownloadAttachmentsRequestAction,\n AttachmentModel,\n AttachmentValidation,\n GET_ATTACHMENT_VALIDATION_REQUEST\n} from \"./types\";\nimport { API_ROUTE } from \"common/constants\";\nimport { MEDIA_ENDPOINT } from \"common/endpoints\";\nimport { put, takeLatest, call } from \"redux-saga/effects\";\nimport {\n downloadAttachmentFailure,\n downloadAttachmentsFailure,\n getAttachmentValidationSuccess\n} from \"./actions\";\nimport axios from \"axios\";\n\nconst downloadAttachmentApi = (\n applicationId: number,\n attachmentReference: string,\n isMasterAttachment: boolean,\n filename: string\n) => {\n return axios.get(\n `${API_ROUTE}${MEDIA_ENDPOINT}/attachments/attachment/${applicationId}/${attachmentReference}/${isMasterAttachment}/${filename}`,\n { responseType: \"arraybuffer\" }\n );\n};\n\nfunction* downloadAttachment(action: DownloadAttachmentRequestAction) {\n try {\n const { data }: { data: any } = yield call(\n downloadAttachmentApi,\n action.applicationId,\n action.attachmentReference,\n action.isMasterAttachment,\n action.filename\n );\n\n download(data, action.filename);\n } catch (e) {\n yield put(downloadAttachmentFailure(\"Failed to download the attachment.\"));\n }\n}\n\nexport function* watchDownloadAttachmentRequest() {\n yield takeLatest(DOWNLOAD_ATTACHMENT_REQUEST, downloadAttachment);\n}\n\nconst downloadAttachmentsApi = (\n applicationId: number,\n attachments: AttachmentModel[]\n) => {\n return axios.post(\n `${API_ROUTE}${MEDIA_ENDPOINT}/attachments/attachments`,\n {\n attachments: attachments,\n applicationId: applicationId\n },\n {\n responseType: \"blob\"\n }\n );\n};\n\nfunction* downloadAttachments(action: DownloadAttachmentsRequestAction) {\n try {\n const { data }: { data: any } = yield call(\n downloadAttachmentsApi,\n action.applicationId,\n action.attachments\n );\n\n const newDate = new Date();\n const dateString = `${newDate.getFullYear()}-${newDate.getMonth() +\n 1}-${newDate.getDate()}_${newDate.getHours()}-${newDate.getMinutes()}-${newDate.getSeconds()}`;\n\n download(data, `${action.applicationNumber}_${dateString}.zip`);\n } catch (e) {\n yield put(\n downloadAttachmentsFailure(\"Failed to download the attachments.\")\n );\n }\n}\n\nconst download = (data: any, name: string) => {\n const url = window.URL.createObjectURL(new Blob([data]));\n\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", name);\n document.body.appendChild(link);\n link.click();\n link.remove();\n};\n\nexport function* watchDownloadAttachmentsRequest() {\n yield takeLatest(DOWNLOAD_ATTACHMENTS_REQUEST, downloadAttachments);\n}\n\nconst attachmentValidationApi = () => {\n return axios.get(`${API_ROUTE}${MEDIA_ENDPOINT}/attachmentvalidation`);\n};\n\nfunction* attachmentValidation() {\n const { data }: { data: AttachmentValidation } = yield call(\n attachmentValidationApi\n );\n yield put(getAttachmentValidationSuccess(data));\n}\n\nexport function* watchGetAttachmentValidation() {\n yield takeLatest(GET_ATTACHMENT_VALIDATION_REQUEST, attachmentValidation);\n}\n","import { put, takeLatest, call } from \"redux-saga/effects\";\nimport axios from \"axios\";\nimport {\n LOAD_CAN_VIEW_INVOICE_REQUEST,\n LOAD_DEFAULT_REGION_REQUEST,\n LOAD_SEARCHABLE_REGION_REQUEST\n} from \"./types\";\nimport {\n loadDefaultRegionSuccess,\n loadDefaultRegionFailure,\n loadSearchableRegionSuccess,\n loadSearchableRegionFailure,\n loadCanViewInvoiceSuccess,\n loadCanViewInvoiceFailure\n} from \"./actions\";\nimport { API_ROUTE } from \"common/constants\";\nimport { ADMINISTRATION_ENDPOINT } from \"common/endpoints\";\nimport { USERS_CONTROLLER } from \"common/controllerConstants\";\n\nconst loadDefaultRegionApi = () => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/defaultregion`\n );\n};\n\nfunction* loadDefaultRegion() {\n try {\n const { data }: { data: string } = yield call(loadDefaultRegionApi);\n\n yield put(loadDefaultRegionSuccess(data));\n } catch (e) {\n yield put(\n loadDefaultRegionFailure(\n \"Something went wrong when trying load the default user region\"\n )\n );\n }\n}\n\nexport function* watchLoadDefaultRegionRequest() {\n yield takeLatest(LOAD_DEFAULT_REGION_REQUEST, loadDefaultRegion);\n}\n\nconst loadSearchableRegionApi = () => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/searchableregion`\n );\n};\n\nfunction* loadSearchableRegion() {\n try {\n const { data }: { data: string } = yield call(loadSearchableRegionApi);\n\n yield put(loadSearchableRegionSuccess(data));\n } catch (e) {\n yield put(\n loadSearchableRegionFailure(\n \"Something went wrong when trying load the permitted searchable region\"\n )\n );\n }\n}\n\nexport function* watchLoadSearchableRegionRequest() {\n yield takeLatest(LOAD_SEARCHABLE_REGION_REQUEST, loadSearchableRegion);\n}\n\nconst loadCanViewInvoiceApi = () => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/canviewinvoice`\n );\n};\n\nfunction* loadCanViewInvoice() {\n try {\n const { data }: { data: boolean } = yield call(loadCanViewInvoiceApi);\n\n yield put(loadCanViewInvoiceSuccess(data));\n } catch (e) {\n yield put(\n loadCanViewInvoiceFailure(\n \"Something went wrong when trying to load permission to view invoices\"\n )\n );\n }\n}\n\nexport function* watchLoadCanViewInvoiceRequest() {\n yield takeLatest(LOAD_CAN_VIEW_INVOICE_REQUEST, loadCanViewInvoice);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n GET_FILTER_PREFERENCE_REQUEST,\n GET_FILTER_PREFERENCE_FAILURE,\n SET_FILTER_PREFERENCE_REQUEST,\n SetFilterPreferenceRequestAction,\n SET_FILTER_PREFERENCE_FAILURE,\n GetFilterPreferenceRequestAction\n} from \"./types\";\nimport axios from \"axios\";\nimport { API_ROUTE } from \"common/constants\";\nimport { ADMINISTRATION_ENDPOINT } from \"common/endpoints\";\nimport { USERS_CONTROLLER } from \"common/controllerConstants\";\nimport {\n getFilterPreferenceSuccess,\n setFilterPreferenceSuccess,\n getFilterPreferenceFailure,\n setFilterPreferenceFailure\n} from \"./actions\";\nimport { enqueueSnackbar } from \"store/notistack/actions\";\nimport { createNotification } from \"common/addNotification\";\nimport { FilterPreferences } from \"store/types\";\n\nconst setFilterPreferenceApi = (filterPreference: string) => {\n return axios.post(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/userfilterpreference`,\n { filterPreference: filterPreference }\n );\n};\n\nfunction* setFilterPreference(action: SetFilterPreferenceRequestAction) {\n try {\n const saveFilter = JSON.stringify(action.filterPreference, (key, value) =>\n typeof value === \"undefined\" ? null : value\n );\n yield call(setFilterPreferenceApi, saveFilter);\n yield put(setFilterPreferenceSuccess(action.filterPreference));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n SET_FILTER_PREFERENCE_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n } else {\n yield put(\n setFilterPreferenceFailure(\n \"Something went wrong while saving your filter preferences\"\n )\n );\n }\n }\n}\n\nexport function* watchSetFilterPreferenceRequest() {\n yield takeLatest(SET_FILTER_PREFERENCE_REQUEST, setFilterPreference);\n}\n\nconst getFilterPreferenceApi = () => {\n return axios.get(\n `${API_ROUTE}${ADMINISTRATION_ENDPOINT}/${USERS_CONTROLLER}/userfilterpreference`\n );\n};\n\nfunction* getFilterPreference(action: GetFilterPreferenceRequestAction) {\n try {\n const { data }: { data: FilterPreferences } = yield call(\n getFilterPreferenceApi\n );\n\n yield put(getFilterPreferenceSuccess(data, action.loggedInUserId));\n } catch (e) {\n const message = e.response.data;\n\n if (message.Message) {\n enqueueSnackbar(\n createNotification(\n GET_FILTER_PREFERENCE_FAILURE,\n message.Message,\n message.MessageType\n )\n );\n } else {\n yield put(\n getFilterPreferenceFailure(\n \"Something went wrong while trying to get your filter preference\"\n )\n );\n }\n }\n}\n\nexport function* watchGetFilterPreferenceRequest() {\n yield takeLatest(GET_FILTER_PREFERENCE_REQUEST, getFilterPreference);\n}\n","import { all } from \"redux-saga/effects\";\nimport watchLoadSingleApplicationRequest, {\n watchFileUploadRequest,\n watchSetApplicationNotesRequest,\n watchSetWorkInformationRequest,\n watchDownloadCalloutReportRequest,\n watchSetParticipantRequest,\n watchSetNotifyWorkStatusRequest,\n watchSetApplicationFeedbackRequest,\n watchLoadExistingApplicationFeedbackRequest,\n watchReplaceParticipantRequest,\n watchLoadAuditLogsRequest,\n watchRemoveParticipantRequest,\n watchSetLocationRequest,\n watchDeleteAttachmentRequest,\n watchCancelApplicationRequest,\n watchSetMaintenanceCompletionRequest,\n watchDeclineApplicationParticipantRequest\n} from \"./applicationDetail/sagas\";\nimport watchLoadApplicationsSummaryRequest, {\n watchGenerateApplicationGridListExportRequest,\n watchLoadApplicationExportColumnsRequest,\n watchLoadApplicationsSummaryRequestExtra,\n watchLoadRcaBoundariesRequest,\n watchLoadRcaLogosRequest\n} from \"./applicationsSummary/sagas\";\nimport watchLoadLookupRequest from \"./lookup/sagas\";\nimport watchLoadTTMSitesRequest, {\n watchSetTTMSiteDbRequest,\n watchSetTTMDetourDbRequest,\n watchSetTTMClosureDbRequest,\n watchDeleteTTMSiteDbRequest,\n watchDeleteTTMDetourDbRequest,\n watchDeleteTTMClosureDbRequest\n} from \"./trafficManagement/sagas\";\nimport watchSetUserDetailRequest, {\n watchLoadUserLinksRequest,\n watchSetUserLinkRequest,\n watchLoadUserDetailRequest,\n watchLoadDuplicateAccountsRequest,\n watchSetLinkSelectedDuplicatesRequest,\n watchSetGstNumberRequest,\n watchLoadNewOrganisationsRequest,\n watchSetNewOrganisationRequest,\n watchSetNotificationSettingsRequest,\n watchSetUserRegionsRequest,\n watchDeleteUserLinkRequest,\n watchLoadPermissionToViewUserRequest,\n watchLoadUserNotificationCountRequest,\n watchLoadUserNotificationsRequest,\n watchSetUserNotificationInactiveRequest,\n watchSetUserNotificationConfirmDeclineRequest,\n watchLoadScaleOfWorkQuestionnaireRequest,\n watchLoadUserRegionsRequest,\n watchLoadParticipantOrganisationRequest,\n watchConfirmUserLinkRequest,\n watchDeclineUserLinkRequest\n} from \"./administration/sagas\";\nimport {\n watchTemporaryFileUploadRequest,\n watchTemporaryFileDeleteRequest,\n watchSubmitApplicationRequest,\n watchApplicationSettingsDataRequest,\n watchLoadBillingItemPreviewRequest,\n watchLoadRcaIdsFromShapesRequest,\n watchLoadRcaOptionsFromIdRequest,\n watchLoadPrimaryApplicantInfoRequest,\n watchSetTemporarySavedApplicationRequest,\n watchCheckRegisteredOrganisationRequest,\n watchLoadSavedApplicationsRequest,\n watchDeleteSavedApplicationRequest,\n watchLoadSavedApplicationRequest,\n watchChildApplicationSettingsDataRequest,\n watchGetDefaultBillPayerRequest\n} from \"./createApplication/sagas\";\nimport watchLoadShapesRequest, {\n watchLoadApplicationClash,\n watchLoadDispatchRequest\n} from \"./map/sagas\";\nimport {\n watchLoadBillPayerRequest,\n watchAddBillPayerRequest\n} from \"./billPayerDetail/sagas\";\nimport watchLoadBillPayersSummaryRequest, {\n watchLoadBillPayersSummaryRequestExtra\n} from \"./billPayersSummary/sagas\";\nimport {\n watchLoadInvoicesSummaryRequest,\n watchLoadInvoicesSummaryRequestExtra\n} from \"./invoiceSummary/sagas\";\nimport { watchLoadInvoiceDetailRequest } from \"./invoiceDetail/sagas\";\nimport {\n watchDownloadAttachmentRequest,\n watchDownloadAttachmentsRequest,\n watchGetAttachmentValidation\n} from \"./media/sagas\";\nimport {\n watchLoadCanViewInvoiceRequest,\n watchLoadDefaultRegionRequest,\n watchLoadSearchableRegionRequest\n} from \"./auth/sagas\";\nimport {\n watchSetFilterPreferenceRequest,\n watchGetFilterPreferenceRequest\n} from \"./preferences/sagas\";\n\nexport default function* rootSaga() {\n yield all([\n watchLoadApplicationsSummaryRequest(),\n watchLoadApplicationsSummaryRequestExtra(),\n watchLoadSingleApplicationRequest(),\n watchLoadUserLinksRequest(),\n watchLoadLookupRequest(),\n watchLoadTTMSitesRequest(),\n watchSetUserDetailRequest(),\n watchSetUserLinkRequest(),\n watchSetTTMSiteDbRequest(),\n watchSetTTMDetourDbRequest(),\n watchSetTTMClosureDbRequest(),\n watchSetGstNumberRequest(),\n watchLoadUserDetailRequest(),\n watchLoadDuplicateAccountsRequest(),\n watchSetLinkSelectedDuplicatesRequest(),\n watchTemporaryFileUploadRequest(),\n watchTemporaryFileDeleteRequest(),\n watchSubmitApplicationRequest(),\n watchApplicationSettingsDataRequest(),\n watchFileUploadRequest(),\n watchLoadBillingItemPreviewRequest(),\n watchLoadNewOrganisationsRequest(),\n watchSetNewOrganisationRequest(),\n watchLoadShapesRequest(),\n watchLoadRcaIdsFromShapesRequest(),\n watchLoadBillPayerRequest(),\n watchAddBillPayerRequest(),\n watchLoadBillPayersSummaryRequest(),\n watchLoadBillPayersSummaryRequestExtra(),\n watchSetNotificationSettingsRequest(),\n watchSetUserRegionsRequest(),\n watchDeleteUserLinkRequest(),\n watchLoadPermissionToViewUserRequest(),\n watchLoadInvoicesSummaryRequest(),\n watchLoadInvoicesSummaryRequestExtra(),\n watchLoadInvoiceDetailRequest(),\n watchLoadUserNotificationCountRequest(),\n watchLoadUserNotificationsRequest(),\n watchSetApplicationNotesRequest(),\n watchDeleteTTMSiteDbRequest(),\n watchDeleteTTMDetourDbRequest(),\n watchDeleteTTMClosureDbRequest(),\n watchSetUserNotificationInactiveRequest(),\n watchSetWorkInformationRequest(),\n watchDownloadAttachmentRequest(),\n watchDownloadAttachmentsRequest(),\n watchDownloadCalloutReportRequest(),\n watchSetNotifyWorkStatusRequest(),\n watchSetUserNotificationConfirmDeclineRequest(),\n watchSetApplicationFeedbackRequest(),\n watchLoadExistingApplicationFeedbackRequest(),\n watchSetParticipantRequest(),\n watchReplaceParticipantRequest(),\n watchLoadAuditLogsRequest(),\n watchRemoveParticipantRequest(),\n watchSetLocationRequest(),\n watchDeleteAttachmentRequest(),\n watchCancelApplicationRequest(),\n watchSetMaintenanceCompletionRequest(),\n watchLoadScaleOfWorkQuestionnaireRequest(),\n watchLoadSearchableRegionRequest(),\n watchLoadUserRegionsRequest(),\n watchLoadDefaultRegionRequest(),\n watchLoadRcaOptionsFromIdRequest(),\n watchLoadPrimaryApplicantInfoRequest(),\n watchLoadParticipantOrganisationRequest(),\n watchSetTemporarySavedApplicationRequest(),\n watchCheckRegisteredOrganisationRequest(),\n watchLoadSavedApplicationsRequest(),\n watchDeleteSavedApplicationRequest(),\n watchLoadSavedApplicationRequest(),\n watchConfirmUserLinkRequest(),\n watchDeclineUserLinkRequest(),\n watchGetFilterPreferenceRequest(),\n watchSetFilterPreferenceRequest(),\n watchDeclineApplicationParticipantRequest(),\n watchLoadApplicationClash(),\n watchLoadRcaLogosRequest(),\n watchLoadCanViewInvoiceRequest(),\n watchLoadRcaBoundariesRequest(),\n watchLoadApplicationExportColumnsRequest(),\n watchGenerateApplicationGridListExportRequest(),\n watchChildApplicationSettingsDataRequest(),\n watchGetAttachmentValidation(),\n watchLoadDispatchRequest(),\n watchGetDefaultBillPayerRequest()\n ]);\n}\n","import { createStore, applyMiddleware } from \"redux\";\nimport rootReducer from \"./rootReducer\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\nimport createSagaMiddleware from \"redux-saga\";\nimport rootSaga from \"./rootSagas\";\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst middleware = [sagaMiddleware];\n\nconst store = createStore(\n rootReducer,\n composeWithDevTools(applyMiddleware(...middleware))\n);\n\nsagaMiddleware.run(rootSaga);\n\nexport default store;\n","export default \"data:image/png;base64,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\"","import {\n DOWNLOAD_ATTACHMENT_REQUEST,\n DOWNLOAD_ATTACHMENT_FAILURE,\n DOWNLOAD_ATTACHMENTS_REQUEST,\n DOWNLOAD_ATTACHMENTS_FAILURE,\n AttachmentModel,\n GET_ATTACHMENT_VALIDATION_REQUEST,\n GET_ATTACHMENT_VALIDATION_SUCCESS,\n AttachmentValidation\n} from \"./types\";\n\nexport const downloadAttachmentRequest = (\n applicationId: number,\n attachmentReference: string,\n filename: string,\n isMasterAttachment: boolean\n) => ({\n type: DOWNLOAD_ATTACHMENT_REQUEST,\n applicationId: applicationId,\n attachmentReference: attachmentReference,\n filename: filename,\n isMasterAttachment: isMasterAttachment\n});\n\nexport const downloadAttachmentFailure = (errorMessage: string) => ({\n type: DOWNLOAD_ATTACHMENT_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const downloadAttachmentsRequest = (\n applicationId: number,\n attachments: AttachmentModel[],\n applicationNumber: string\n) => ({\n type: DOWNLOAD_ATTACHMENTS_REQUEST,\n applicationId: applicationId,\n attachments: attachments,\n applicationNumber: applicationNumber\n});\n\nexport const downloadAttachmentsFailure = (errorMessage: string) => ({\n type: DOWNLOAD_ATTACHMENTS_FAILURE,\n errorMessage: errorMessage\n});\n\nexport const getAttachmentValidationRequest = () => ({\n type: GET_ATTACHMENT_VALIDATION_REQUEST\n});\n\nexport const getAttachmentValidationSuccess = (\n attachmentValidation: AttachmentValidation\n) => ({\n type: GET_ATTACHMENT_VALIDATION_SUCCESS,\n attachmentValidation: attachmentValidation\n});\n"],"sourceRoot":""}