{"version":3,"sources":["enums/loginmessages.ts","actionTypes/loginActionTypes.ts","Constants/apiConstants.tsx","utils/authUtil.ts","utils/UseAuthorization.ts","action/loginAction.ts","enums/usermessages.ts","components/login/Login.styles.ts","core/styles/styles.ts","components/pageheader/PageHeader.tsx","components/login/Login.tsx","components/login/Callback.tsx","actionTypes/welcomeActionTypes.ts","action/welcomeAction.ts","components/welcome/SubscriptionInformation.tsx","components/welcome/Welcome.tsx","actionTypes/manageUserActionTypes.ts","actionTypes/toastActionTypes.ts","action/toastAction.ts","action/manageUserAction.ts","components/dialogs/confirmDialog.tsx","components/manageuser/ManageUser.tsx","components/AddUser/AddUser.styles.tsx","components/AddUser/AddUser.tsx","utils/shared/Toasts.tsx","PrivateRoute.tsx","components/AddUser/EditUser.tsx","components/pageheader/HelpPageHeader.tsx","components/help/forgot-password-reminder.tsx","components/help/service-history-link.tsx","components/help/logging-in.tsx","components/help/generating-a-report.tsx","components/help/service-history-link-report.tsx","components/help/cpo-interpretation.tsx","components/help/managing-your-subscription.tsx","components/help/adding-users.tsx","components/pagefooter/PageFooter.tsx","App.tsx","reportWebVitals.ts","reducers/loginReducer.ts","reducers/manageUserReducer.ts","reducers/welcomeReducer.ts","reducers/toastReducer.ts","reducers/rootReducer.ts","store/configStore.ts","index.tsx"],"names":["LoginResponseMessages","LoginHelperText","LOGIN_ACTION","LOGIN_ACTION_SUCCESS","LOGIN_ACTION_CANCELLED","LOGIN_ACTION_FAILED","GET_ORGANIZATION_SUCCESS","GET_USERDETAILS_SUCCESS","USER_CREDENTIALS","identityServerEndPoints","login","process","redirect","postLogoutRedirect","dealerPortalEndPoints","getOrganizationKey","getOrganization","getUserDetails","addUserDetails","deleteUserDetails","getSubscriptions","getVehicleHistoryReport","getSubscriptionStatus","sessionInfo","userManagerConfig","authority","client_id","redirect_uri","response_type","scope","post_logout_redirect_uri","userManager","createUserManager","UseAuthorization","authToken","sessionData","sessionStorage","getItem","parsedData","JSON","parse","access_token","headers","Authorization","UserMessages","signin","dealerNum","userName","orgKey","password","signinRedirect","extraQueryParams","prompt","loginType","toLowerCase","serverDatastores","user","loginFailed","message","type","payload","DEFAULT_MESSAGE","loginCancelled","logoutUser","dispatch","a","localStorage","axios","delete","then","_response","token","removeItem","clear","clearStaleState","removeUser","catch","reason","console","error","signoutRedirect","id_token_hint","log","LoginStyles","makeStyles","theme","panelBody","background","padding","width","justifyContent","marginLeft","loginFooter","color","textAlign","marginTop","fieldContainer","display","margin","errorMessage","backgroundColor","black35","hdOrange","deepHDOrange","b1Blue","errorRed","focusBlue","disabledGray","jeanBlue","hddsStyles","root","pagePaper","marginBottom","spacing","flexDirection","pageHeader","headerDivider","height","toolbar","toolbarIcon","alignItems","mixins","title","flexGrow","text","fontSize","sectionDivider","drawerBottom","position","bottom","left","right","appBarSpacer","card","contentWorkspace","overflow","container","paddingBottom","containerLarge","paper","fixedHeight","breadCrumbs","breadCrumbsText","italicMessage","fontStyle","confirmationButton","marginRight","textTransform","cursor","fontWeight","border","borderRadius","float","cancelButton","normalButton","buttonSpacer","dialogButton","dialogPadding","paddingTop","menuButton","menuButtonHidden","pageTitleText","fontVariant","pageSectionText","pageSectionTitle","loginFooterText","textField","transform","helpMenu","normalFormField","borderBottomColor","borderColor","errorFormField","requiredFormField","disabledFormField","comboBoxFormControl","minWidth","checkboxControl","gridCheckbox","gridRadio","radioButtonControl","fieldSetControl","normalFieldSet","requiredFieldSet","errorFieldSet","disabledFieldSet","headerDividerStyle","verticalAlignMiddle","fullWidthForm","formHelperTextError","formGridRequired","formGridRequiredError","formHelperTextFormLabel","checkBoxLabel","panelDefault","minHeight","panel","tableControls","buttonProgress","footer","kGridWithEdit","borderBottom","borderRight","kGridWithDelete","disabledInfoText","spinnerSecondary","zIndex","drawer","backdrop","outerWrapper","innerWrapper","warningDialogTitle","centeredText","logo","loginErrorText","subscriptionMessage","titleGrid","HtmlTooltip","withStyles","tooltip","maxWidth","typography","pxToRem","Tooltip","globalStyle","PageHeader","props","userDetails","showUser","globalClasses","history","useHistory","useDispatch","id_token","React","useState","anchorEl","setAnchorEl","open","Boolean","helperPageNavigate","page","push","newwindow","window","opener","AppBar","Toolbar","className","src","onClick","Typography","style","IconButton","event","currentTarget","Menu","id","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","onClose","MenuItem","disabled","edge","useStyles","Login","classes","useSelector","state","loginerror","loading","login_in_process","dealerNumber","setUserDetails","showPassword","setShowPassword","existingUser","username","userExists","isUserLoggedIn","userkey","dealernum","isSubscriptionActive","get","response","data","userCredentials","organization","setItem","stringify","isLoggedIn","confirm","_","loginUser","handleChange","e","target","name","value","useEffect","CssBaseline","Container","Grid","item","xs","Divider","onSubmit","preventDefault","Paper","TextField","label","clsx","variant","onChange","fullWidth","autoFocus","InputProps","endAdornment","InputAdornment","light","Button","CircularProgress","size","Callback","status","setStatus","successCallback","errorCallback","toString","split","trim","USER_LAST_ATTEMPT","LOCK_WARNING_TEXT","USER_LOCKED","USER_IS_LOCKING","USER_LOCKED_TEXT","handleErrorMessage","to","GET_REPORT_ACTION_FAILED","GET_REPORT_ACTION_SUCCESS","GENERATE_REPORT_IN_PROGRESS","GET_SUBSCRIPTION_DETAILS_SUCCESS","localStorageData","length","employee","userDisplay","getUserDetailsSuccess","getSubscriptionDetails","getSubscriptionDetailsSuccess","getVehicleHistoryReportFailed","getVehicleHistoryReportFailed_DueToNetworkIssue","SubscriptionInformation","tableData","reportLimitMet","subscriptionExpired","showErrorColor","isRed","field","cell","GridCellProps","date","dataItem","subscriptionRenewalDate","moment","format","reportsRun","Welcome","vin","details","setDetails","setSubscriptionExpired","setReportLimitMet","welcome","today","Date","zoneDate","parseZone","toISOString","local","subscriptionDetails","reportsAllowed","validateVin","re","RegExp","match","manageUserNavigate","getReport","userKey","callbackFunc","sessionKey","meta","responseType","pdf","Blob","reportURL","URL","createObjectURL","location","href","document","getElementById","focus","Backdrop","userDealerMappings","find","dealer","toUpperCase","orgDisplay","renderOrgTitle","inputProps","maxLength","onKeyUp","keyCode","FormHelperText","errormsg","SUB_EXPIRED","renderSubExpired","REPORT_LIMIT_MET","renderReportLimitMessage","isSHLAdmin","GenerateReportLoading","FETCH_USER","FETCH_USER_SUCCESS","FETCH_USER_FAILED","FETCH_SUBSCRIPTIONS_SUCCESS","SELECT_USER","ADD_USER","ADD_USER_SUCCESS","ADD_USER_FAILED","DELETE_USER","DELETE_USER_SUCCESS","DELETE_USER_FAILED","FETCH_ORGANIZATION_SUCCESS","SHOW_TOAST_MESSAGE","HIDE_TOAST_MESSAGE","showToastMessage","types","parseUserDetails","admin","defaultStore","userLocked","userIsLocked","getSubscriptionsSuccess","subscriptions","getOrgSuccess","getUserSuccess","users","addUserSuccess","updateSelectedUser","callback","ConfirmDialog","setOpen","onConfirm","Dialog","DialogTitle","DialogContent","DialogActions","ManageUser","deleteUser","setDeleteUser","deleteUserDialog","setDeleteUserDialog","gridData","setGridData","logic","filters","filter","setFilter","dir","sorter","setSorter","managedUsers","setGridStringValues","orderBy","filterBy","orgName","userList","map","dealers","sub","store","dealerName","subscription","subscriptionDescription","subscriptionUsers","subscriptionUsersTotal","noOfUsersAssigned","subscriptionUsersCurrentlyAssigned","forEach","isAdmin","renderAdminValue","DELETE_SUCCESS","DELETE_FAIL","justify","sortable","filterable","reorderable","onFilterChange","sort","onSortChange","orderIndex","resizable","adminCount","x","ADMIN_REQ","handleDeleteUser","Box","AddUserStyles","customField","listContainer","paddingLeft","AddUser","isEdit","dealerOrg","setDealerOrg","selectedUser","add_user_in_process","userStores","setUserStores","gridErrorText","setGridErrorText","subscriptionInfo","userOrgs","y","isSelectedStore","isDefaultOrg","storename","storeSubscriptionDescription","err","values","initialValues","confirmPassword","passwordList","validationSchema","yup","shape","min","max","matches","required","test","passwordValidation","when","is","schema","splitVals","undefined","i","includes","indexOf","oneOf","valid","handlePasswordVisibility","formik","useFormik","enableReinitialize","validateOnBlur","validateOnChange","resetForm","admins","selectedStores","DEALER_REQ","DEFUALT_STORE","storeSubscription","isUpdateUser","resetFormCallBack","put","UPDATE_SUCCESS","UPDATE_FAIL","USER_EXISTS","post","CREATE_SUCCESS","CREATE_FAIL","addUser","selected","default","handleSubmit","md","paddingRight","touched","errors","readOnly","FormControlLabel","control","Checkbox","checked","List","listStyleType","rowData","org","handleStoreSelectCheck","Radio","handleDefaultSelect","top","component","Toast","toasts","toastsReducer","isOpen","handleClose","DialogContentText","PrivateRoute","Component","authed","rest","render","pathname","from","EditUser","userId","params","enableEdit","setEnableEdit","Promise","all","HelpPageHeader","MenuList","ForgotPasswordReminder","_props","borderStyle","borderWidth","ServiceHistoryLink","lineHeight","LoggingIn","GeneratingReport","ServiceHistoryLinkReport","captionSide","borderCollapse","verticalAlign","class","CPOInterpretation","ManagingYourSubscription","AddingUsers","PageFooter","align","getFullYear","Link","App","useReducer","forceUpdate","useLocation","createBrowserHistory","forceRefresh","addEventListener","key","startsWith","oldValue","newValue","exact","path","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","INITIAL_STATE","user_loading","delete_user_in_process","toastsInitialState","combineReducers","action","USER_FOUND","uuidv4","profile","user_key","store_alias","oidc","oidcreducer","configureStore","createStore","composeWithDevTools","applyMiddleware","thunk","createMuiTheme","overrides","MuiTypography","body1","h6","MuiButton","loadUser","ReactDOM","ThemeProvider"],"mappings":"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","file":"static/js/main.c216479f.chunk.js","sourcesContent":["export enum LoginResponseMessages {\r\n USER_LOCKED = \"user is locked.\",\r\n USER_IS_LOCKING = \"user failed authentication. login attempts remaining = 0.\",\r\n USER_LAST_ATTEMPT = \"user failed authentication. login attempts remaining = 1.\",\r\n}\r\n\r\nexport enum LoginHelperText {\r\n LOCK_WARNING_TEXT = \"Your account is at risk of being locked.\",\r\n USER_LOCKED_TEXT = \"Your account has been locked. Please see your dealership security administrator.\",\r\n DEFAULT_MESSAGE = \"Valid Dealer Number, Username, Password, and Subscription are required\",\r\n}\r\n","export const LOGIN_ACTION = \"LOGIN_ACTION\";\r\nexport const LOGIN_ACTION_SUCCESS = \"LOGIN_ACTION_SUCCESS\";\r\nexport const LOGIN_ACTION_CANCELLED = \"LOGIN_ACTION_CANCELLED\";\r\nexport const LOGIN_ACTION_FAILED = \"LOGIN_ACTION_FAILED\";\r\nexport const GET_ORGANIZATION_SUCCESS = \"GET_ORGANIZATION_SUCCESS\";\r\nexport const GET_USERDETAILS_SUCCESS = \"GET_USERDETAILS_SUCCESS\";\r\nexport const USER_CREDENTIALS = \"USER_CREDENTIALS\";\r\n","export const identityServerEndPoints = {\r\n login: `${process.env.REACT_APP_IDDS_IDENTITY_SERVER_URL}/`,\r\n redirect: `${process.env.REACT_APP_IDDS_IDENTITY_SERVER_REDIRECT_URL}/Callback`,\r\n postLogoutRedirect: `${process.env.REACT_APP_IDDS_IDENTITY_SERVER_REDIRECT_URL}`,\r\n};\r\n\r\nexport const dealerPortalEndPoints = {\r\n getOrganizationKey: `${process.env.REACT_APP_IDDS_ADMIN_API_URL}/shl/dp/orgid/`,\r\n getOrganization: `${process.env.REACT_APP_IDDS_ADMIN_API_URL}/shl/dp/organization/`,\r\n getUserDetails: `${process.env.REACT_APP_IDDS_ADMIN_API_URL}/shl/dp/user/`,\r\n addUserDetails: `${process.env.REACT_APP_IDDS_ADMIN_API_URL}/shl/dp/user/`,\r\n deleteUserDetails: `${process.env.REACT_APP_IDDS_ADMIN_API_URL}/shl/dp/user/`,\r\n getSubscriptions: `${process.env.REACT_APP_IDDS_ADMIN_API_URL}/shl/dp/organization/`,\r\n getVehicleHistoryReport: `${process.env.REACT_APP_IDDS_INTEGRATION_API_URL}/shl/dp/report/`,\r\n getSubscriptionStatus: `${process.env.REACT_APP_IDDS_INTEGRATION_API_URL}/shl/dp/subscription/`,\r\n sessionInfo: `${process.env.REACT_APP_IDDS_ADMIN_API_URL}/shl/dp/usersession/`,\r\n};\r\n","//will hold the code related to token\r\n\r\nimport { createUserManager } from \"redux-oidc\";\r\nimport { identityServerEndPoints } from \"../Constants/apiConstants\";\r\n\r\nconst userManagerConfig = {\r\n authority: identityServerEndPoints.login,\r\n client_id: \"external-dealer-portal\",\r\n redirect_uri: identityServerEndPoints.redirect,\r\n response_type: \"id_token token\",\r\n scope: \"openid idds-api-administration\",\r\n post_logout_redirect_uri: identityServerEndPoints.postLogoutRedirect,\r\n};\r\n\r\nconst userManager = createUserManager(userManagerConfig);\r\n\r\nexport default userManager;\r\n","export function UseAuthorization(config = null) {\r\n let authToken;\r\n const sessionData = sessionStorage.getItem(\r\n `oidc.user:${process.env.REACT_APP_IDDS_IDENTITY_SERVER_URL}/:external-dealer-portal`\r\n );\r\n\r\n if (sessionData) {\r\n const parsedData = JSON.parse(sessionData);\r\n authToken = parsedData.access_token;\r\n }\r\n\r\n return {\r\n headers: !authToken ? {} : { Authorization: `Bearer ${authToken}` },\r\n };\r\n}\r\n","import {\r\n LOGIN_ACTION_FAILED,\r\n LOGIN_ACTION_CANCELLED,\r\n LOGIN_ACTION,\r\n} from \"./../actionTypes/loginActionTypes\";\r\nimport axios from \"axios\";\r\nimport userManager from \"../utils/authUtil\";\r\nimport {\r\n dealerPortalEndPoints,\r\n identityServerEndPoints,\r\n} from \"../Constants/apiConstants\";\r\nimport { LoginHelperText } from \"../enums/loginmessages\";\r\nimport { UseAuthorization } from \"../utils/UseAuthorization\";\r\n\r\nexport const loginUser = (userkey, password, dealernum, setUserDetails) => {\r\n return async (dispatch) => {\r\n localStorage.removeItem(\"dp_userDetails\");\r\n localStorage.removeItem(\"dp_user_id_token\");\r\n localStorage.removeItem(\"session_key\");\r\n localStorage.removeItem(\"session_key_stored\");\r\n let orgKey = \"\";\r\n let isSubscriptionActive = false;\r\n\r\n dispatch({ type: LOGIN_ACTION });\r\n await axios\r\n .get(`${dealerPortalEndPoints.getSubscriptionStatus}${dealernum}`)\r\n .then((response) => {\r\n isSubscriptionActive = response.data.isSubscriptionActive;\r\n if (!isSubscriptionActive) {\r\n dispatch(loginFailed());\r\n }\r\n })\r\n .catch(() => {\r\n dispatch(loginFailed());\r\n });\r\n\r\n if (isSubscriptionActive) {\r\n await axios\r\n .get(`${dealerPortalEndPoints.getOrganizationKey}${dealernum}?mode=0`)\r\n .then((response) => {\r\n const userCredentials = {\r\n userName: userkey,\r\n dealerNumber: dealernum,\r\n organization: response.data,\r\n };\r\n localStorage.setItem(\r\n \"dp_userDetails\",\r\n JSON.stringify(userCredentials)\r\n );\r\n orgKey = response.data;\r\n });\r\n\r\n await axios\r\n .get(\r\n `${\r\n dealerPortalEndPoints.sessionInfo\r\n }${userkey}@${orgKey.toLowerCase()}`\r\n )\r\n .then((response) => {\r\n if (response.data.isLoggedIn === false) {\r\n signin(dealernum, userkey, orgKey, password);\r\n } else {\r\n if (\r\n window.confirm(\r\n \"Username already logged in. Click OK to exit other session and log in here.\"\r\n )\r\n ) {\r\n axios\r\n .delete(\r\n `${\r\n dealerPortalEndPoints.sessionInfo\r\n }${userkey}@${orgKey.toLowerCase()}`\r\n )\r\n .then((_) => {\r\n signin(dealernum, userkey, orgKey, password);\r\n });\r\n } else {\r\n localStorage.removeItem(\"dp_userDetails\");\r\n localStorage.removeItem(\"dp_user_id_token\");\r\n localStorage.removeItem(\"session_key\");\r\n localStorage.removeItem(\"session_key_stored\");\r\n setUserDetails({ userName: \"\", password: \"\", dealerNumber: \"\" });\r\n dispatch(loginCancelled());\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(\"get here3?\");\r\n localStorage.removeItem(\"dp_userDetails\");\r\n localStorage.removeItem(\"dp_user_id_token\");\r\n localStorage.removeItem(\"session_key\");\r\n localStorage.removeItem(\"session_key_stored\");\r\n if (!error.response) {\r\n dispatch(loginFailed(LoginHelperText.DEFAULT_MESSAGE));\r\n } else {\r\n dispatch(loginFailed());\r\n }\r\n });\r\n }\r\n };\r\n};\r\n\r\nexport const signin = (\r\n dealerNum: string,\r\n userName: string,\r\n orgKey: string,\r\n password: string\r\n) => {\r\n userManager.signinRedirect({\r\n extraQueryParams: {\r\n prompt: \"login\",\r\n loginType: \"externalQuickLogin\",\r\n orgKey: orgKey.toLowerCase(),\r\n serverDatastores: [],\r\n user: `{UserKey: '${userName}@${orgKey.toLowerCase()}', Password: '${password}', DealerNum: '${dealerNum}', StoreAlias: 'SHL'}`,\r\n },\r\n });\r\n};\r\n\r\nexport const loginFailed = (message?: string) => {\r\n return {\r\n type: LOGIN_ACTION_FAILED,\r\n payload: message ? message : LoginHelperText.DEFAULT_MESSAGE,\r\n };\r\n};\r\n\r\nexport const loginCancelled = () => {\r\n return {\r\n type: LOGIN_ACTION_CANCELLED,\r\n };\r\n};\r\n\r\nexport const isUserLoggedIn = () => {\r\n const user = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n if (user != null) {\r\n user[\"userExists\"] = true;\r\n return {\r\n type: {},\r\n payload: user,\r\n };\r\n } else {\r\n return {\r\n type: {},\r\n payload: {\r\n username: \"\",\r\n password: \"\",\r\n dealerNumber: \"\",\r\n userExists: false,\r\n },\r\n };\r\n }\r\n};\r\n\r\nexport const logoutUser = () => {\r\n return async (dispatch) => {\r\n const user = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n axios\r\n .delete(\r\n `${dealerPortalEndPoints.sessionInfo}${user[\"userName\"]}@${user[\r\n \"organization\"\r\n ].toLowerCase()}`,\r\n UseAuthorization()\r\n )\r\n .then((_response) => {\r\n const token = localStorage.getItem(\"dp_user_id_token\");\r\n localStorage.removeItem(\"dp_userDetails\");\r\n localStorage.removeItem(\"dp_user_id_token\");\r\n localStorage.removeItem(\"session_key\");\r\n localStorage.removeItem(\"session_key_stored\");\r\n sessionStorage.clear();\r\n userManager.clearStaleState();\r\n userManager.removeUser().catch((reason) => {\r\n console.error(reason);\r\n });\r\n userManager\r\n .signoutRedirect({\r\n id_token_hint: token,\r\n post_logout_redirect_uri:\r\n identityServerEndPoints.postLogoutRedirect,\r\n })\r\n .catch((error) => console.log(error));\r\n });\r\n };\r\n};\r\n","export enum UserMessages {\r\n DEFUALT_STORE = \"Please select one default store\",\r\n ADMIN_REQ = \"At least one admin user is required. You must set another user as admin first.\",\r\n DEALER_REQ = \"Select at least one dealer\",\r\n DELETE_USER = \"Are you sure you want to delete the selected user\",\r\n UPDATE_FAIL = \"Failed to Update User\",\r\n UPDATE_SUCCESS = \"User Updated Successfully\",\r\n CREATE_FAIL = \"Failed to Create User\",\r\n CREATE_SUCCESS = \"User Created Successfully\",\r\n USER_EXISTS = \"User Already Exists\",\r\n DELETE_FAIL = \"Failed to Delete User\",\r\n DELETE_SUCCESS = \"User Deleted Successfully\",\r\n REPORT_LIMIT_MET = \"Your dealership has reached your allowed report limit for your subscription. Please contact HDDS for resolution. 800-428-5090 (Option 1)\",\r\n SUB_EXPIRED = \"Your dealership's subscription has expired. Please contact HDDS for resolution. 800-428-5090 (Option 1)\",\r\n}\r\n","import { makeStyles } from \"@material-ui/core\";\r\n\r\nexport const LoginStyles = makeStyles((theme) => ({\r\n panelBody: {\r\n background: \"transparent\",\r\n padding: \"24px 15px 14px 0px\",\r\n width: \"550px\",\r\n justifyContent: \"center\",\r\n \"@media (max-width: 600px)\": {\r\n marginLeft: 0,\r\n },\r\n },\r\n loginFooter: {\r\n color: \"black\",\r\n textAlign: \"center\",\r\n marginTop: \"10px\",\r\n \"@media (max-width: 600px)\": {\r\n marginLeft: 0,\r\n },\r\n },\r\n fieldContainer: {\r\n display: \"inline-flex\",\r\n margin: \"5px 0 5px -5px\",\r\n width: \"100%\",\r\n },\r\n\r\n errorMessage: {\r\n color: \"red\",\r\n marginLeft: \"40px\",\r\n },\r\n}));\r\n","import { makeStyles, withStyles, Tooltip } from \"@material-ui/core\";\r\n\r\n/* HD TEMPLATE COLORS */\r\nconst backgroundColor = \"#fff\";\r\nconst softGray = \"#eee\";\r\nconst black35 = \"#353535\";\r\nconst acidWashGray = \"#e0e4eb\";\r\nconst hdOrange = \"#f96302\";\r\nconst deepHDOrange = \"#E05A01\";\r\nconst b1Blue = \"#b1bace\";\r\nconst deepB1Blue = \"#9fa7b9\";\r\nconst errorRed = \"#cf2a27\";\r\nconst focusBlue = \"#9fc5f8\";\r\nconst disabledGray = \"#696969\";\r\nconst jeanBlue = \"#556689\";\r\nconst deepJeanBlue = \"#4C5B7B\"; /*one shade darker than jeanBlue*/\r\nconst gridDataTextColor = \"#000\";\r\n\r\nexport const hddsStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n },\r\n pagePaper: {\r\n width: \"100%\",\r\n marginBottom: theme.spacing(2),\r\n padding: \"16px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n pageHeader: {\r\n padding: \"10px 0\",\r\n },\r\n headerDivider: {\r\n marginBottom: \"10px\",\r\n height: \" 3px\",\r\n backgroundColor: \"#f96302\",\r\n },\r\n toolbar: {\r\n background: jeanBlue,\r\n },\r\n toolbarIcon: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n padding: \"0 8px\",\r\n ...theme.mixins.toolbar,\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n text: {\r\n color: black35,\r\n fontSize: \"1rem\",\r\n margin: \"8px\",\r\n },\r\n sectionDivider: {\r\n marginBottom: \"8px\",\r\n },\r\n drawerBottom: {\r\n position: \"absolute\",\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n },\r\n appBarSpacer: theme.mixins.toolbar,\r\n card: {\r\n marginTop: \"64px\",\r\n padding: \"10px\",\r\n },\r\n contentWorkspace: {\r\n flexGrow: 1,\r\n height: \"100vh\",\r\n overflow: \"auto\",\r\n background: acidWashGray,\r\n },\r\n container: {\r\n padding: \"24px\",\r\n paddingBottom: theme.spacing(4),\r\n margin: \"auto\",\r\n \"@media (min-width: 1024px)\": {\r\n width: \"1024px\",\r\n },\r\n },\r\n containerLarge: {\r\n padding: \"24px\",\r\n paddingBottom: theme.spacing(4),\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n display: \"flex\",\r\n overflow: \"auto\",\r\n flexDirection: \"column\",\r\n background: backgroundColor,\r\n },\r\n fixedHeight: {\r\n height: 240,\r\n },\r\n breadCrumbs: {\r\n padding: \"10px\",\r\n background: softGray,\r\n fontSize: \"0.75rem\",\r\n },\r\n breadCrumbsText: {\r\n fontSize: \"0.75rem\",\r\n },\r\n italicMessage: {\r\n fontSize: \"12px\",\r\n color: \"#f44336\",\r\n fontStyle: \"italic\",\r\n textAlign: \"right\",\r\n marginBottom: \".5em\",\r\n },\r\n confirmationButton: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n textTransform: \"capitalize\",\r\n backgroundColor: hdOrange,\r\n cursor: \"pointer\",\r\n color: \"#fff\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"bold\",\r\n border: \"1px \" + black35 + \" solid\",\r\n borderRadius: \"4px\",\r\n padding: \"0 5px\",\r\n float: \"right\",\r\n \"&:hover\": {\r\n backgroundColor: deepHDOrange,\r\n },\r\n \"&:disabled\": {\r\n backgroundColor: deepHDOrange,\r\n },\r\n \"&:focus\": {\r\n border: \"1.5px \" + focusBlue + \" solid\",\r\n },\r\n \"& .MuiTouchRipple-root\": {\r\n display: \"none\",\r\n },\r\n },\r\n cancelButton: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n textTransform: \"capitalize\",\r\n backgroundColor: jeanBlue,\r\n cursor: \"pointer\",\r\n color: \"#fff\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"bold\",\r\n border: \"1px \" + black35 + \" solid\",\r\n borderRadius: \"4px\",\r\n padding: \"0 5px\",\r\n float: \"right\",\r\n \"&:hover\": {\r\n backgroundColor: deepJeanBlue,\r\n },\r\n \"& .MuiTouchRipple-root\": {\r\n display: \"none\",\r\n },\r\n \"&:focus\": {\r\n border: \"1.5px \" + focusBlue + \" solid\",\r\n },\r\n },\r\n normalButton: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n textTransform: \"capitalize\",\r\n backgroundColor: b1Blue,\r\n cursor: \"pointer\",\r\n color: black35,\r\n fontSize: \"1rem\",\r\n fontWeight: \"bold\",\r\n border: \"1px \" + black35 + \" solid\",\r\n borderRadius: \"4px\",\r\n padding: \"0 5px\",\r\n \"&:hover\": {\r\n backgroundColor: deepB1Blue,\r\n },\r\n \"& .MuiTouchRipple-root\": {\r\n display: \"none\",\r\n },\r\n \"&:focus\": {\r\n border: \"1.5px \" + focusBlue + \" solid\",\r\n },\r\n },\r\n\r\n buttonSpacer: {\r\n width: \"16px\",\r\n height: \"auto\",\r\n display: \"inline-block\",\r\n },\r\n\r\n dialogButton: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n\r\n dialogPadding: {\r\n paddingTop: \"1.5rem\",\r\n },\r\n\r\n menuButton: {\r\n marginRight: 36,\r\n },\r\n menuButtonHidden: {\r\n display: \"none\",\r\n },\r\n pageTitleText: {\r\n fontSize: \"2rem\",\r\n fontVariant: \"small-caps\",\r\n color: black35,\r\n marginTop: \"-14px\",\r\n },\r\n pageSectionText: {\r\n fontSize: \"1rem\",\r\n color: black35,\r\n },\r\n pageSectionTitle: {\r\n fontSize: \"1.5rem\",\r\n color: black35,\r\n },\r\n loginFooterText: {\r\n color: black35,\r\n fontSize: \".9rem\",\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n \"& label.MuiInputLabel-outlined.MuiInputLabel-shrink\": {\r\n transform: \"translate(14px, -6px) scale(0.75)\",\r\n },\r\n \"& label.MuiInputLabel-outlined\": {\r\n transform: \"translate(10px, 10px) scale(1)\",\r\n },\r\n \"& input.MuiOutlinedInput-input\": {\r\n padding: \"7px 7px 7px 7px\",\r\n },\r\n },\r\n\r\n helpMenu: {\r\n \"& .MuiListItem-button:hover\": {\r\n backgroundColor: b1Blue,\r\n },\r\n \"& .Mui-selected\": {\r\n backgroundColor: focusBlue,\r\n },\r\n },\r\n\r\n normalFormField: {\r\n \"& label.Mui-focused\": {\r\n color: black35,\r\n },\r\n \"& .MuiInput-underline:after\": {\r\n borderBottomColor: black35,\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: black35,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: black35,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: focusBlue,\r\n },\r\n },\r\n },\r\n\r\n errorFormField: {\r\n \"& label.Mui-focused\": {\r\n color: black35,\r\n },\r\n \"& .MuiInput-underline:after\": {\r\n borderBottomColor: errorRed,\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: errorRed,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: errorRed,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: focusBlue,\r\n },\r\n },\r\n \"& .MuiFormHelperText-root\": {\r\n color: errorRed,\r\n },\r\n },\r\n\r\n requiredFormField: {\r\n \"& label.Mui-focused\": {\r\n color: black35,\r\n },\r\n \"& .MuiInput-underline:after\": {\r\n borderBottomColor: hdOrange,\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n color: black35,\r\n borderColor: hdOrange,\r\n },\r\n \"&:hover fieldset\": {\r\n color: black35,\r\n borderColor: hdOrange,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n color: black35,\r\n borderColor: focusBlue,\r\n },\r\n },\r\n },\r\n\r\n disabledFormField: {\r\n \"& label.Mui-focused\": {\r\n color: disabledGray,\r\n },\r\n \"& .MuiInput-underline:after\": {\r\n borderBottomColor: disabledGray,\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: disabledGray,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: disabledGray,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: disabledGray,\r\n },\r\n },\r\n },\r\n comboBoxFormControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n \"& label.MuiInputLabel-outlined.MuiInputLabel-shrink\": {\r\n transform: \"translate(14px, -6px) scale(0.75)\",\r\n },\r\n \"& label.MuiInputLabel-outlined\": {\r\n transform: \"translate(10px, 10px) scale(1)\",\r\n },\r\n \"& select.MuiOutlinedInput-input\": {\r\n padding: \"7px 7px 7px 7px\",\r\n },\r\n \"& div.MuiOutlinedInput-input\": {\r\n padding: \"7px 7px 7px 7px\",\r\n },\r\n },\r\n\r\n checkboxControl: {\r\n marginLeft: \"0px\",\r\n marginBottom: \"8px;\",\r\n \"& span.MuiButtonBase-root\": {\r\n padding: \"0px\",\r\n },\r\n \"& span.MuiCheckbox-colorSecondary.Mui-checked\": {\r\n color: \"#556689\",\r\n },\r\n \"& .MuiTypography-body1 \": {\r\n fontSize: \".9rem\",\r\n marginLeft: \"1rem\",\r\n color: black35,\r\n },\r\n },\r\n gridCheckbox: {\r\n margin: \"0 auto\",\r\n \"& span.MuiButtonBase-root\": {\r\n padding: \"0px\",\r\n },\r\n \"& span.MuiIconButton-label, MuiCheckbox-colorSecondary.Mui-checked\": {\r\n color: \"#556689\",\r\n },\r\n },\r\n gridRadio: {\r\n \"& span.MuiIconButton-label\": {\r\n marginLeft: \"12px\",\r\n },\r\n \"& span.MuiIconButton-label, MuiRadio-colorSecondary.Mui-checked\": {\r\n color: \"#556689\",\r\n },\r\n },\r\n radioButtonControl: {\r\n \"& label.MuiFormControlLabel-root\": {\r\n marginLeft: \"0px\",\r\n marginBottom: \"8px;\",\r\n },\r\n \"& span.MuiButtonBase-root\": {\r\n padding: \"0px\",\r\n },\r\n \"& span.MuiRadio-colorSecondary.Mui-checked\": {\r\n color: \"#556689\",\r\n },\r\n },\r\n\r\n fieldSetControl: {\r\n padding: \"10px\",\r\n },\r\n\r\n normalFieldSet: {\r\n border: \"1px solid \" + black35,\r\n borderRadius: \"4px\",\r\n margin: \"8px\",\r\n },\r\n requiredFieldSet: {\r\n border: \"1px solid \" + hdOrange,\r\n borderRadius: \"4px\",\r\n margin: \"8px\",\r\n },\r\n errorFieldSet: {\r\n border: \"1px solid \" + errorRed,\r\n borderRadius: \"4px\",\r\n margin: \"8px\",\r\n },\r\n disabledFieldSet: {\r\n border: \"1px solid \" + disabledGray,\r\n borderRadius: \"4px\",\r\n margin: \"8px\",\r\n },\r\n headerDividerStyle: {\r\n border: \"1px \" + hdOrange + \" solid\",\r\n },\r\n verticalAlignMiddle: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n },\r\n fullWidthForm: {\r\n width: \"100%\",\r\n },\r\n formHelperTextError: {\r\n color: errorRed,\r\n marginLeft: \"1em\",\r\n marginBottom: \"8px\",\r\n },\r\n formGridRequired: {\r\n borderColor: hdOrange,\r\n },\r\n formGridRequiredError: {\r\n borderColor: errorRed,\r\n },\r\n formHelperTextFormLabel: {\r\n margin: \".5em 0 0 1em;\",\r\n },\r\n checkBoxLabel: {\r\n fontSize: \".9rem\",\r\n },\r\n panelDefault: {\r\n backgroundColor: \"#556689\",\r\n color: \"red\",\r\n minHeight: \"100px\",\r\n marginTop: \"5%\",\r\n borderRadius: \"29px\",\r\n border: \"2px solid\",\r\n padding: \"12px\",\r\n textAlign: \"center\",\r\n },\r\n panel: {\r\n \"& .MuiContainer-root\": {\r\n padding: 0,\r\n \"& .MuiGrid-item\": {\r\n justifyContent: \"center\",\r\n },\r\n \"& .MuiCard-root\": {\r\n width: \"500px\",\r\n },\r\n },\r\n },\r\n tableControls: {\r\n fontSize: \"1em\",\r\n \"& .MuiTablePagination-caption\": {\r\n fontSize: \"1em\",\r\n },\r\n \"& .MuiTableCell-root\": {\r\n fontSize: \"1em\",\r\n },\r\n },\r\n buttonProgress: {\r\n color: \"white\",\r\n position: \"absolute\",\r\n },\r\n footer: {\r\n marginTop: \"auto\",\r\n height: \"2rem\",\r\n paddingBottom: \"2rem\",\r\n },\r\n kGridWithEdit: {\r\n \"& .k-grid-table tr > td:first-child\": {\r\n color: gridDataTextColor,\r\n fontWeight: \"bold\",\r\n backgroundColor: b1Blue,\r\n borderBottom: \"1px\" + \"solid\" + backgroundColor,\r\n borderRight: \"1px\" + \"solid\" + backgroundColor,\r\n textAlign: \"center\",\r\n },\r\n },\r\n kGridWithDelete: {\r\n \"& .k-grid-table tr > td:last-Child\": {\r\n color: black35,\r\n fontWeight: \"bold\",\r\n backgroundColor: b1Blue,\r\n borderBottom: \"1px\" + \"solid\" + backgroundColor,\r\n borderRight: \"1px\" + \"solid\" + backgroundColor,\r\n },\r\n },\r\n disabledInfoText: {\r\n color: disabledGray,\r\n },\r\n spinnerSecondary: {\r\n color: deepHDOrange,\r\n zIndex: theme.zIndex.drawer + 2100,\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 2000,\r\n color: \"#fff\",\r\n },\r\n outerWrapper: {\r\n position: \"relative\",\r\n minHeight: \"100vh\",\r\n },\r\n innerWrapper: {\r\n paddingBottom: \"2rem\",\r\n },\r\n warningDialogTitle: {\r\n paddingBottom: 0,\r\n color: black35,\r\n \"& .MuiTypography-h6\": {\r\n fontSize: \"1.5rem\",\r\n },\r\n },\r\n centeredText: {\r\n textAlign: \"center\",\r\n },\r\n logo: {\r\n width: \"120px\",\r\n height: \"60px\",\r\n cursor: \"pointer\",\r\n },\r\n loginErrorText: {\r\n color: errorRed,\r\n fontSize: \"18px\",\r\n },\r\n subscriptionMessage: {\r\n color: errorRed,\r\n fontSize: \".9rem\",\r\n marginTop: \"8px\",\r\n marginLeft: \"8px\",\r\n },\r\n titleGrid: {\r\n paddingBottom: 0,\r\n },\r\n}));\r\nexport const HtmlTooltip = withStyles((theme) => ({\r\n tooltip: {\r\n backgroundColor: \"#f5f5f9\",\r\n color: \"rgba(0, 0, 0, 0.87)\",\r\n maxWidth: 220,\r\n fontSize: theme.typography.pxToRem(12),\r\n border: \"1px solid #dadde9\",\r\n },\r\n}))(Tooltip);\r\n","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { hddsStyles, HtmlTooltip } from \"../../core/styles/styles\";\r\nimport {\r\n Typography,\r\n AppBar,\r\n IconButton,\r\n Menu,\r\n MenuItem,\r\n Toolbar,\r\n} from \"@material-ui/core\";\r\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\r\nimport AccountCircleOutlinedIcon from \"@material-ui/icons/AccountCircleOutlined\";\r\nimport { IUserDetails } from \"../../models/IUserDetails\";\r\nimport { logoutUser } from \"../../action/loginAction\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\ntype PageHeaderProps = {\r\n userDetails?: IUserDetails;\r\n showUser: boolean;\r\n page: string;\r\n};\r\n\r\nconst PageHeader = (props: PageHeaderProps) => {\r\n const { userDetails, showUser } = props;\r\n const globalClasses = globalStyle();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const id_token = localStorage.getItem(\"dp_user_id_token\");\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleMenu = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const faqLink =\r\n \"https://www.hdds.com/media/documents/service%20history-link%20portal/Service%20History-Link%20Portal%20Help.pdf\";\r\n\r\n const helperPageNavigate = async () => {\r\n if (id_token) {\r\n switch (props.page) {\r\n case \"welcome\":\r\n history.push(\"/help/Generating_a_Report\");\r\n break;\r\n case \"manage_user\":\r\n history.push(\"/help/Managing_Your_Subscription\");\r\n break;\r\n case \"add_user\":\r\n case \"edit_user\":\r\n history.push(\"/help/Adding_Users\");\r\n break;\r\n default:\r\n history.push(\"/help\");\r\n break;\r\n }\r\n } else {\r\n const newwindow = window.open(faqLink, \"_blank\", \"noopener, noreferrer\");\r\n if (newwindow) {\r\n newwindow.opener = null;\r\n }\r\n }\r\n };\r\n\r\n const logOut = () => {\r\n dispatch(logoutUser());\r\n };\r\n\r\n const handleImageClick = () => {\r\n if (showUser) history.push(\"/welcome\");\r\n return;\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Service History-Link\r\n \r\n {showUser && (\r\n
\r\n

{userDetails?.userName}

\r\n \r\n \r\n \r\n \r\n {userDetails?.userName}\r\n Log Out\r\n \r\n
\r\n )}\r\n {\"help\"}}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PageHeader;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { loginUser, isUserLoggedIn } from \"../../action/loginAction\";\r\nimport {\r\n CircularProgress,\r\n InputAdornment,\r\n IconButton,\r\n Button,\r\n Divider,\r\n Paper,\r\n CssBaseline,\r\n} from \"@material-ui/core\";\r\nimport { TextField, Grid, Container, Typography } from \"@material-ui/core\";\r\nimport { LoginStyles } from \"./Login.styles\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport clsx from \"clsx\";\r\nimport PageHeader from \"../pageheader/PageHeader\";\r\n\r\nconst useStyles = LoginStyles;\r\nconst globalStyle = hddsStyles;\r\n\r\nconst Login = (props) => {\r\n const classes = useStyles();\r\n const globalClasses = globalStyle();\r\n const dispatch = useDispatch();\r\n\r\n const { message, loading } = useSelector((state) => {\r\n return {\r\n error: state.login.loginerror,\r\n message: state.login.message,\r\n loading: state.login.login_in_process,\r\n };\r\n });\r\n\r\n const [userDetails, setUserDetails] = useState({\r\n userName: \"\",\r\n password: \"\",\r\n dealerNumber: \"\",\r\n });\r\n\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const existingUser = () => {\r\n const user = dispatch(isUserLoggedIn());\r\n setUserDetails({\r\n userName: user.payload.userName,\r\n password: \"\",\r\n dealerNumber: user.payload.dealerNumber,\r\n });\r\n };\r\n\r\n const login = () => {\r\n dispatch(\r\n loginUser(\r\n userDetails.userName,\r\n userDetails.password,\r\n userDetails.dealerNumber,\r\n setUserDetails\r\n )\r\n );\r\n };\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n setUserDetails({ ...userDetails, [name]: value });\r\n };\r\n\r\n const handleClickShowPassword = () => setShowPassword(!showPassword);\r\n\r\n useEffect(() => {\r\n existingUser();\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Log In\r\n \r\n \r\n
event.preventDefault()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showPassword ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Forgot Username or Password?{\" \"}\r\n
\r\n
\r\n Please see your dealership security administrator with\r\n authority to manage these credentials.\r\n
\r\n
\r\n \r\n
\r\n {!loading ? (\r\n login()}\r\n >\r\n Log In\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Login;\r\n","import React from \"react\";\r\nimport { CallbackComponent } from \"redux-oidc\";\r\nimport userManager from \"../../utils/authUtil\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { loginFailed } from \"../../action/loginAction\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport {\r\n LoginResponseMessages,\r\n LoginHelperText,\r\n} from \"../../enums/loginmessages\";\r\nimport PageHeader from \"../pageheader/PageHeader\";\r\nimport { CssBaseline, Typography } from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst Callback = () => {\r\n const dispatch = useDispatch();\r\n const globalClasses = globalStyle();\r\n\r\n const [status, setStatus] = React.useState(0);\r\n\r\n const handleErrorMessage = (error: string) => {\r\n const errorMessage = error.toString().split(\":\")[1].trim().toLowerCase();\r\n\r\n switch (errorMessage) {\r\n case LoginResponseMessages.USER_LAST_ATTEMPT:\r\n return {LoginHelperText.LOCK_WARNING_TEXT};\r\n case LoginResponseMessages.USER_LOCKED:\r\n case LoginResponseMessages.USER_IS_LOCKING:\r\n return (\r\n \r\n {LoginHelperText.USER_LOCKED_TEXT}\r\n \r\n );\r\n default:\r\n return (\r\n \r\n {LoginHelperText.DEFAULT_MESSAGE}\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n setStatus(1)}\r\n errorCallback={(error) => {\r\n localStorage.removeItem(\"dp_userDetails\");\r\n localStorage.removeItem(\"dp_user_id_token\");\r\n setStatus(2);\r\n dispatch(loginFailed(handleErrorMessage(error)));\r\n }}\r\n >\r\n {status === 0 ? (\r\n
Redirecting...
\r\n ) : status === 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Callback;\r\n","export const GET_REPORT_ACTION_FAILED = \"GET_REPORT_ACTION_FAILED\";\r\nexport const GET_REPORT_ACTION_SUCCESS = \"GET_REPORT_ACTION_SUCCESS\";\r\nexport const GENERATE_REPORT_IN_PROGRESS = \"GENERATE_REPORT_IN_PROGRESS\";\r\nexport const GET_SUBSCRIPTION_DETAILS_SUCCESS =\r\n \"GET_SUBSCRIPTION_DETAILS_SUCCESS\";\r\n","import {\r\n GET_REPORT_ACTION_FAILED,\r\n GET_REPORT_ACTION_SUCCESS,\r\n} from \"./../actionTypes/welcomeActionTypes\";\r\nimport axios from \"axios\";\r\nimport { dealerPortalEndPoints } from \"../Constants/apiConstants\";\r\nimport { GET_USERDETAILS_SUCCESS } from \"./../actionTypes/loginActionTypes\";\r\nimport {\r\n GENERATE_REPORT_IN_PROGRESS,\r\n GET_SUBSCRIPTION_DETAILS_SUCCESS,\r\n} from \"./../actionTypes/welcomeActionTypes\";\r\nimport { UseAuthorization } from \"../utils/UseAuthorization\";\r\nimport { logoutUser } from \"./loginAction\";\r\n\r\nexport const getUserDetails = () => {\r\n const localStorageData = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n return async (dispatch) => {\r\n return await axios\r\n .get(\r\n `${dealerPortalEndPoints.getUserDetails}${\r\n localStorageData.userName + \"@\" + localStorageData.organization\r\n }`,\r\n UseAuthorization()\r\n )\r\n .then(async (response) => {\r\n if (response.data && response.data.length > 0) {\r\n response.data[0].employee = `${response.data[0].userDisplay}`;\r\n }\r\n await dispatch(\r\n getUserDetailsSuccess(\r\n response.data.length > 0 ? response.data[0] : []\r\n )\r\n );\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const getSubscriptionDetails = () => {\r\n const localStorageData = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n return async (dispatch) => {\r\n return await axios\r\n .get(\r\n `${dealerPortalEndPoints.getSubscriptionStatus}${localStorageData.dealerNumber}`,\r\n UseAuthorization()\r\n )\r\n .then(async (response) => {\r\n await dispatch(getSubscriptionDetailsSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const getSubscriptionDetailsSuccess = (response) => {\r\n return (dispatch) => {\r\n dispatch({ type: GET_SUBSCRIPTION_DETAILS_SUCCESS, payload: response });\r\n };\r\n};\r\n\r\nexport const getUserDetailsSuccess = (response) => {\r\n return (dispatch) => {\r\n dispatch({ type: GET_USERDETAILS_SUCCESS, payload: response });\r\n };\r\n};\r\n\r\nexport const getVehicleHistoryReport = (\r\n callbackFunc,\r\n dealerNumber,\r\n vin,\r\n userKey\r\n) => {\r\n return async (dispatch) => {\r\n dispatch({ type: GENERATE_REPORT_IN_PROGRESS });\r\n const meta = UseAuthorization();\r\n meta.headers[\"Content-Type\"] = \"application/json\";\r\n meta.headers[\"Accept\"] = \"application/pdf\";\r\n meta.responseType = \"blob\";\r\n await axios\r\n .get(\r\n `${dealerPortalEndPoints.getVehicleHistoryReport}${dealerNumber}/${vin}/${userKey}`,\r\n meta\r\n )\r\n .then((response) => {\r\n const pdf = new Blob([response.data], { type: \"application/pdf\" });\r\n const reportURL = URL.createObjectURL(pdf);\r\n const newWindow = window.open();\r\n newWindow.location.href = reportURL;\r\n callbackFunc();\r\n dispatch(getSubscriptionDetails());\r\n dispatch({ type: GET_REPORT_ACTION_SUCCESS });\r\n })\r\n .catch((error) => {\r\n callbackFunc();\r\n if (!error.response) {\r\n dispatch(getVehicleHistoryReportFailed_DueToNetworkIssue());\r\n } else {\r\n dispatch(getVehicleHistoryReportFailed());\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const getVehicleHistoryReportFailed = () => {\r\n return (dispatch) => {\r\n dispatch({\r\n type: GET_REPORT_ACTION_FAILED,\r\n payload: \"VIN not available at this time\",\r\n });\r\n };\r\n};\r\n\r\nexport const getVehicleHistoryReportFailed_DueToNetworkIssue = () => {\r\n return (dispatch) => {\r\n dispatch({\r\n type: GET_REPORT_ACTION_FAILED,\r\n payload: \"Communication Failed\",\r\n });\r\n };\r\n};\r\n","import React from \"react\";\r\nimport {\r\n Grid as KendoGrid,\r\n GridColumn as Column,\r\n} from \"@progress/kendo-react-grid\";\r\nimport moment from \"moment\";\r\n\r\ninterface ISubscriptionInformation {\r\n tableData: any;\r\n reportLimitMet: boolean;\r\n subscriptionExpired: boolean;\r\n}\r\n\r\nconst SubscriptionInformation = (props: ISubscriptionInformation) => {\r\n const { tableData, reportLimitMet, subscriptionExpired } = props;\r\n\r\n const dateFormat = (date) => {\r\n const renewalDate = moment(date).format(\"M/D/YYYY\");\r\n return renewalDate;\r\n };\r\n\r\n const showErrorColor = (isRed) => {\r\n return isRed ? \"#cf2a27\" : null;\r\n };\r\n\r\n return (\r\n <>\r\n {tableData === null ? null : (\r\n \r\n {\r\n return (\r\n \r\n {dateFormat(GridCellProps.dataItem.subscriptionRenewalDate)}\r\n \r\n );\r\n }}\r\n />\r\n \r\n {\r\n return (\r\n \r\n {GridCellProps.dataItem.reportsRun}\r\n \r\n );\r\n }}\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SubscriptionInformation;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport PageHeader from \"../pageheader/PageHeader\";\r\nimport {\r\n Container,\r\n Grid,\r\n TextField,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n FormHelperText,\r\n Paper,\r\n CircularProgress,\r\n Backdrop,\r\n Button,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport {\r\n getVehicleHistoryReport,\r\n getUserDetails,\r\n getSubscriptionDetails,\r\n} from \"../../action/welcomeAction\";\r\nimport SubscriptionInformation from \"./SubscriptionInformation\";\r\nimport clsx from \"clsx\";\r\nimport { UserMessages } from \"../../enums/usermessages\";\r\nimport moment from \"moment\";\r\nimport axios from \"axios\";\r\nimport { dealerPortalEndPoints } from \"../../Constants/apiConstants\";\r\nimport { UseAuthorization } from \"../../utils/UseAuthorization\";\r\nimport { logoutUser } from \"../../action/loginAction\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst Welcome = (props) => {\r\n const globalClasses = globalStyle();\r\n const dispatch = useDispatch();\r\n const [details, setDetails] = useState({\r\n vin: \"\",\r\n });\r\n const [subscriptionExpired, setSubscriptionExpired] =\r\n useState(false);\r\n const [reportLimitMet, setReportLimitMet] = useState(false);\r\n const welcome = useSelector((state) => state.welcome);\r\n const today = new Date();\r\n const zoneDate = moment.parseZone(today.toISOString()).local().format();\r\n\r\n useEffect(() => {\r\n dispatch(getUserDetails());\r\n dispatch(getSubscriptionDetails());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (welcome.subscriptionDetails.subscriptionRenewalDate <= zoneDate)\r\n setSubscriptionExpired(true);\r\n\r\n if (\r\n welcome.subscriptionDetails.reportsRun >=\r\n welcome.subscriptionDetails.reportsAllowed\r\n )\r\n setReportLimitMet(true);\r\n }, [welcome]);\r\n\r\n const validateVin = (vin) => {\r\n const re = new RegExp(\"^[A-Z\\\\d]{12,17}$\");\r\n return vin.match(re);\r\n };\r\n\r\n const localStorageData = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n const { userDetails } = useSelector((state) => {\r\n return {\r\n userDetails: state.login.userDetails,\r\n };\r\n });\r\n\r\n const manageUserNavigate = async () => {\r\n props.history.push(\"/manageuser\");\r\n };\r\n\r\n const getReport = () => {\r\n if (validateVin(details.vin)) {\r\n axios\r\n .get(\r\n `${dealerPortalEndPoints.sessionInfo}${userDetails.userKey}`,\r\n UseAuthorization()\r\n )\r\n .then((response) => {\r\n if (\r\n response.data.sessionKey === localStorage.getItem(\"session_key\")\r\n ) {\r\n dispatch(\r\n getVehicleHistoryReport(\r\n () => {\r\n setDetails({ vin: \"\" });\r\n },\r\n localStorageData?.dealerNumber,\r\n details.vin,\r\n userDetails.userKey\r\n )\r\n );\r\n } else if (\r\n window.confirm(\r\n \"Username already logged in. Click OK to exit other session and log in here.\"\r\n )\r\n ) {\r\n axios\r\n .delete(\r\n `${dealerPortalEndPoints.sessionInfo}${userDetails.userKey}`,\r\n UseAuthorization()\r\n )\r\n .then((_response) => {\r\n dispatch(logoutUser());\r\n });\r\n }\r\n });\r\n }\r\n document.getElementById(\"vinField\").focus();\r\n };\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setDetails({ ...details, [name]: value.toUpperCase() });\r\n };\r\n\r\n const renderOrgTitle = () => {\r\n return userDetails?.userDealerMappings.find(\r\n (dealer) => dealer.orgKey === localStorageData?.dealerNumber.toUpperCase()\r\n )?.orgDisplay;\r\n };\r\n\r\n const renderReportLimitMessage = () => {\r\n if (reportLimitMet) {\r\n return (\r\n \r\n {UserMessages.REPORT_LIMIT_MET}\r\n \r\n );\r\n }\r\n };\r\n\r\n const renderSubExpired = () => {\r\n if (subscriptionExpired) {\r\n return (\r\n \r\n {UserMessages.SUB_EXPIRED}\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n {\r\n \r\n \r\n \r\n }\r\n {!userDetails?.userDealerMappings ? null : (\r\n \r\n
\r\n \r\n \r\n \r\n Welcome - {renderOrgTitle()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Report\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n event.keyCode == 13 && getReport();\r\n }}\r\n fullWidth\r\n id=\"vinField\"\r\n />\r\n {welcome.error && (\r\n \r\n {`*${welcome.errormsg}`}\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n Subscription Information\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {renderSubExpired()}\r\n {renderReportLimitMessage()}\r\n \r\n
\r\n
\r\n \r\n {userDetails?.isSHLAdmin && (\r\n \r\n Manage Users\r\n \r\n )}\r\n \r\n \r\n \r\n {!welcome.GenerateReportLoading ? (\r\n getReport()}\r\n >\r\n Generate Report\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Welcome;\r\n","export const UPDATE_USER = \"UPDATE_USER\";\r\nexport const UPDATE_USER_SUCCESS = \"UPDATE_USER_SUCCESS\";\r\nexport const UPDATE_USER_FAILED = \"UPDATE_USER_FAILED\";\r\n\r\nexport const UPDATE_SUBSCRIPTION = \"UPDATE_SUBSCRIPTION\";\r\nexport const UPDATE_SUBSCRIPTION_SUCCESS = \"UPDATE_SUBSCRIPTION_SUCCESS\";\r\nexport const UPDATE_SUBSCRIPTION_FAILED = \"UPDATE_SUBSCRIPTION_FAILED\";\r\n\r\nexport const FETCH_USER = \"FETCH_USER\";\r\nexport const FETCH_USER_SUCCESS = \"FETCH_USER_SUCCESS\";\r\nexport const FETCH_USER_FAILED = \"FETCH_USER_FAILED\";\r\n\r\nexport const FETCH_SUBSCRIPTIONS = \"FETCH_SUBSCRIPTION\";\r\nexport const FETCH_SUBSCRIPTIONS_SUCCESS = \"FETCH_SUBSCRIPTIONS_SUCCESS\";\r\nexport const FETCH_SUBSCRIPTIONS_FAILED = \"FETCH_SUBSCRIPTIONS_FAILED\";\r\n\r\nexport const SELECT_USER = \"SELECT_USER\";\r\n\r\nexport const ADD_USER = \"ADD_USER\";\r\nexport const ADD_USER_SUCCESS = \"ADD_USER_SUCCESS\";\r\nexport const ADD_USER_FAILED = \"ADD_USER_FAILED\";\r\n\r\nexport const DELETE_USER = \"DELETE_USER\";\r\nexport const DELETE_USER_SUCCESS = \"DELETE_USER_SUCCESS\";\r\nexport const DELETE_USER_FAILED = \"DELETE_USER_FAILED\";\r\n\r\nexport const FETCH_ORGANIZATION_SUCCESS = \"FETCH_ORGANIZATION_SUCCESS\";\r\n","export const SHOW_TOAST_MESSAGE = \"SHOW_TOAST_MESSAGE\";\r\nexport const HIDE_TOAST_MESSAGE = \"HIDE_TOAST_MESSAGE\";\r\n","import * as types from \"../actionTypes/toastActionTypes\";\r\n\r\nexport const showToastMessage = (data) => {\r\n return (dispatch) => {\r\n dispatch({ type: types.SHOW_TOAST_MESSAGE, payload: data });\r\n };\r\n};\r\n\r\nexport const hideToastMessage = () => {\r\n return (dispatch) => {\r\n dispatch({ type: types.HIDE_TOAST_MESSAGE });\r\n };\r\n};\r\n","import {\r\n FETCH_USER_SUCCESS,\r\n FETCH_SUBSCRIPTIONS_SUCCESS,\r\n SELECT_USER,\r\n ADD_USER_SUCCESS,\r\n ADD_USER_FAILED,\r\n FETCH_ORGANIZATION_SUCCESS,\r\n FETCH_USER,\r\n FETCH_USER_FAILED,\r\n DELETE_USER_FAILED,\r\n DELETE_USER_SUCCESS,\r\n DELETE_USER,\r\n} from \"./../actionTypes/manageUserActionTypes\";\r\nimport axios from \"axios\";\r\nimport { dealerPortalEndPoints } from \"../Constants/apiConstants\";\r\nimport {\r\n UPDATE_USER_SUCCESS,\r\n UPDATE_SUBSCRIPTION_SUCCESS,\r\n} from \"../actionTypes/manageUserActionTypes\";\r\nimport { showToastMessage } from \"./toastAction\";\r\nimport { UseAuthorization } from \"../utils/UseAuthorization\";\r\nimport { logoutUser } from \"./loginAction\";\r\nimport { UserMessages } from \"../enums/usermessages\";\r\n\r\nexport const getOrganization = (dealerNumber) => {\r\n return async (dispatch) => {\r\n dispatch({ type: FETCH_USER });\r\n await axios\r\n .get(\r\n `${dealerPortalEndPoints.getOrganization}${dealerNumber}?byDealer=true`,\r\n UseAuthorization()\r\n )\r\n .then(async (response) => {\r\n const organization = {\r\n name: response.data?.orgName,\r\n };\r\n const userList = ((response.data.users as any) || []).map((user) => {\r\n return parseUserDetails(user);\r\n });\r\n const subscriptions = ((response.data.dealers as any) || []).map(\r\n (sub) => {\r\n return {\r\n store: sub.dealerName,\r\n subscription: sub.subscriptionDescription,\r\n subscriptionUsers: sub.subscriptionUsersTotal,\r\n noOfUsersAssigned: sub.subscriptionUsersCurrentlyAssigned,\r\n };\r\n }\r\n );\r\n await dispatch(getOrgSuccess(organization));\r\n await dispatch(getSubscriptionsSuccess(subscriptions));\r\n await dispatch(getUserSuccess(userList));\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n dispatch({ type: FETCH_USER_FAILED });\r\n });\r\n };\r\n};\r\n\r\nexport const getUsers = (userkey, dealerNumber, organization) => {\r\n return async (dispatch) => {\r\n await axios\r\n .get(\r\n `${dealerPortalEndPoints.getUserDetails}${userkey}@${organization}?getAllInOrg=true`,\r\n UseAuthorization()\r\n )\r\n .then(async (response) => {\r\n const userList = ((response.data as any) || []).map((user) => {\r\n return parseUserDetails(user);\r\n });\r\n await dispatch(getSubscriptions(dealerNumber));\r\n await dispatch(getUserSuccess(userList));\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n });\r\n };\r\n};\r\n\r\nconst parseUserDetails = (user) => {\r\n return {\r\n userKey: user.userKey,\r\n employee: user.userDisplay,\r\n userDisplay: user.userDisplay,\r\n username: user.userName,\r\n admin: user.isSHLAdmin,\r\n defaultStore: user.defaultStore,\r\n userDealerMappings: user.userDealerMappings,\r\n userLocked: user.userIsLocked,\r\n };\r\n};\r\n\r\nexport const getUser = (userkey, organization) => {\r\n return async (dispatch) => {\r\n return await axios\r\n .get(\r\n `${dealerPortalEndPoints.getUserDetails}${userkey}@${organization}`,\r\n UseAuthorization()\r\n )\r\n .then(async (user) => {\r\n if (user.data && user.data.length > 0) {\r\n user.data[0].username = user.data[0].userName;\r\n dispatch(updateSelectedUser(user.data[0], () => {}));\r\n return user.data;\r\n }\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const getSubscriptions = (dealerNumber) => {\r\n return async (dispatch) => {\r\n await axios\r\n .get(\r\n `${dealerPortalEndPoints.getSubscriptions}${dealerNumber}?byDealer=true`,\r\n UseAuthorization()\r\n )\r\n .then((response) => {\r\n const subscriptions = ((response.data.dealers as any) || []).map(\r\n (sub) => {\r\n return {\r\n store: sub.dealerName,\r\n subscription: sub.subscriptionDescription,\r\n subscriptionUsers: sub.subscriptionUsersTotal,\r\n noOfUsersAssigned: sub.subscriptionUsersCurrentlyAssigned,\r\n };\r\n }\r\n );\r\n dispatch(getSubscriptionsSuccess(subscriptions));\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const getSubscriptionsSuccess = (subscriptions) => {\r\n return (dispatch) => {\r\n dispatch({ type: FETCH_SUBSCRIPTIONS_SUCCESS, payload: subscriptions });\r\n };\r\n};\r\n\r\nexport const getOrgSuccess = (organization) => {\r\n return (dispatch) => {\r\n dispatch({ type: FETCH_ORGANIZATION_SUCCESS, payload: organization });\r\n };\r\n};\r\n\r\nexport const getUserSuccess = (users) => {\r\n return (dispatch) => {\r\n dispatch({ type: FETCH_USER_SUCCESS, payload: users });\r\n };\r\n};\r\n\r\nexport const addUser = (userDetails, resetFormCallBack, isUpdateUser) => {\r\n if (!isUpdateUser) {\r\n return async (dispatch) => {\r\n const userExist = await axios\r\n .get(\r\n `${dealerPortalEndPoints.getUserDetails}${userDetails.userKey}`,\r\n UseAuthorization()\r\n )\r\n .then((response) => {\r\n return response.data && response.data.length > 0 ? true : false;\r\n });\r\n if (userExist) {\r\n dispatch(\r\n showToastMessage({\r\n message: UserMessages.USER_EXISTS,\r\n status: \"Warning\",\r\n })\r\n );\r\n dispatch({ type: ADD_USER_FAILED });\r\n return;\r\n }\r\n\r\n await axios\r\n .post(\r\n dealerPortalEndPoints.addUserDetails,\r\n userDetails,\r\n UseAuthorization()\r\n )\r\n .then(async (response) => {\r\n resetFormCallBack();\r\n await dispatch(\r\n showToastMessage({\r\n message: UserMessages.CREATE_SUCCESS,\r\n status: \"Success\",\r\n })\r\n );\r\n await dispatch(addUserSuccess());\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n dispatch(\r\n showToastMessage({\r\n message: error?.response?.data\r\n ? error.response.data\r\n : UserMessages.CREATE_FAIL,\r\n status: \"Error\",\r\n })\r\n );\r\n dispatch({ type: ADD_USER_FAILED });\r\n });\r\n };\r\n } else {\r\n return async (dispatch) => {\r\n await axios\r\n .put(\r\n dealerPortalEndPoints.addUserDetails,\r\n userDetails,\r\n UseAuthorization()\r\n )\r\n .then(async (response) => {\r\n resetFormCallBack();\r\n await dispatch(\r\n showToastMessage({\r\n message: UserMessages.UPDATE_SUCCESS,\r\n status: \"Success\",\r\n })\r\n );\r\n await dispatch(addUserSuccess());\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 401) {\r\n dispatch(logoutUser());\r\n }\r\n const message =\r\n error?.response?.status === 400 && error.response.data\r\n ? error.response.data\r\n : UserMessages.UPDATE_FAIL;\r\n dispatch({ type: ADD_USER_FAILED });\r\n dispatch(\r\n showToastMessage({\r\n message: message,\r\n status: \"Error\",\r\n })\r\n );\r\n });\r\n };\r\n }\r\n};\r\n\r\nexport const addUserSuccess = () => {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_USER_SUCCESS });\r\n };\r\n};\r\n\r\nexport const addUserFailed = () => {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_USER_FAILED });\r\n };\r\n};\r\n\r\nexport const updateUser = (userDetails) => {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_USER_SUCCESS, payload: userDetails });\r\n };\r\n};\r\n\r\nexport const updateSubscription = (subscriptions) => {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_SUBSCRIPTION_SUCCESS, payload: subscriptions });\r\n };\r\n};\r\n\r\nexport const updateSelectedUser = (user, callback) => {\r\n return (dispatch) => {\r\n dispatch({ type: SELECT_USER, payload: user });\r\n if (callback && typeof callback == \"function\") callback();\r\n };\r\n};\r\n\r\nexport const deleteUserDetails = ({ userKey }) => {\r\n if (!userKey) {\r\n return;\r\n }\r\n return async (dispatch) => {\r\n dispatch({ type: DELETE_USER });\r\n await axios\r\n .delete(\r\n `${dealerPortalEndPoints.deleteUserDetails}${userKey}`,\r\n UseAuthorization()\r\n )\r\n .then(async (response) => {\r\n dispatch(\r\n await showToastMessage({\r\n message: UserMessages.DELETE_SUCCESS,\r\n status: \"Success\",\r\n })\r\n );\r\n dispatch({ type: DELETE_USER_SUCCESS });\r\n })\r\n .catch((error) => {\r\n const message =\r\n error?.response?.status === 400 && error.response.data\r\n ? error.response.data\r\n : UserMessages.DELETE_FAIL;\r\n dispatch(\r\n showToastMessage({\r\n message: message,\r\n status: \"Error\",\r\n })\r\n );\r\n dispatch({ type: DELETE_USER_FAILED });\r\n });\r\n };\r\n};\r\n","import * as React from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Divider,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nexport interface IDialog {\r\n open: boolean;\r\n title: string;\r\n message: any;\r\n setOpen: (result: boolean) => void;\r\n onConfirm: () => void;\r\n}\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nexport function ConfirmDialog(props: IDialog): JSX.Element {\r\n const globalClasses = globalStyle();\r\n const { open, title, message, setOpen, onConfirm } = props;\r\n\r\n return (\r\n setOpen(false)} fullWidth maxWidth=\"xs\">\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n
\r\n \r\n
\r\n {\r\n setOpen(false);\r\n onConfirm();\r\n }}\r\n autoFocus\r\n >\r\n Yes\r\n \r\n setOpen(false)}\r\n >\r\n Cancel\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport {\r\n Grid,\r\n Box,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n IconButton,\r\n Backdrop,\r\n CircularProgress,\r\n Button,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles, HtmlTooltip } from \"../../core/styles/styles\";\r\nimport PageHeader from \"../pageheader/PageHeader\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n updateSelectedUser,\r\n getOrganization,\r\n deleteUserDetails,\r\n} from \"../../action/manageUserAction\";\r\nimport { showToastMessage } from \"../../action/toastAction\";\r\nimport { getUserDetails } from \"../../action/welcomeAction\";\r\nimport {\r\n Grid as KendoGrid,\r\n GridColumn as Column,\r\n} from \"@progress/kendo-react-grid\";\r\nimport {\r\n CompositeFilterDescriptor,\r\n SortDescriptor,\r\n orderBy,\r\n filterBy,\r\n} from \"@progress/kendo-data-query\";\r\nimport clsx from \"clsx\";\r\nimport EditOutlinedIcon from \"@material-ui/icons/EditOutlined\";\r\nimport DeleteOutlinedIcon from \"@material-ui/icons/DeleteOutlined\";\r\nimport { ConfirmDialog } from \"../dialogs/confirmDialog\";\r\nimport { UserMessages } from \"../../enums/usermessages\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nexport default function ManageUser(props) {\r\n const globalClasses = globalStyle();\r\n const [deleteUser, setDeleteUser] = React.useState(null);\r\n const [deleteUserDialog, setDeleteUserDialog] = React.useState(false);\r\n const [gridData, setGridData] = React.useState([]);\r\n const [filter, setFilter] = React.useState({\r\n logic: \"and\",\r\n filters: [],\r\n });\r\n const [sorter, setSorter] = React.useState([\r\n { field: \"employee\", dir: \"asc\" },\r\n ]);\r\n\r\n const localStorageData = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n const dispatch = useDispatch();\r\n\r\n const { users, subscriptions } = useSelector((state) => state.managedUsers);\r\n\r\n const { userDetails } = useSelector((state) => {\r\n return {\r\n userDetails: state.login.userDetails,\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n dispatch(getUserDetails());\r\n setGridStringValues();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (users) {\r\n setGridData(orderBy(filterBy(users, filter), sorter));\r\n }\r\n }, [filter, sorter]);\r\n\r\n useEffect(() => {\r\n if (!users) {\r\n dispatch(getOrganization(localStorageData.dealerNumber));\r\n }\r\n setGridStringValues();\r\n }, [users]);\r\n\r\n const setGridStringValues = () => {\r\n users?.forEach((user) => {\r\n user.isAdmin = renderAdminValue(user.admin);\r\n });\r\n setGridData(users);\r\n };\r\n\r\n const handleEditUser = (user) => {\r\n dispatch(\r\n updateSelectedUser(user, () => {\r\n props.history.push(`/edituser/${user.username}`);\r\n })\r\n );\r\n };\r\n\r\n const handleAddUserClick = () => {\r\n dispatch(\r\n updateSelectedUser(null, () => {\r\n props.history.push(`/adduser`);\r\n })\r\n );\r\n };\r\n\r\n const handleDeleteUser = (user) => {\r\n const adminCount = users.filter((x) => x.admin).length;\r\n if (user?.admin && adminCount === 1) {\r\n dispatch(\r\n showToastMessage({\r\n message: UserMessages.ADMIN_REQ,\r\n status: \"warning\",\r\n })\r\n );\r\n return;\r\n }\r\n setDeleteUser(user);\r\n setDeleteUserDialog(true);\r\n };\r\n\r\n const completeDeleteUser = () => {\r\n dispatch(deleteUserDetails(deleteUser));\r\n setDeleteUser(null);\r\n };\r\n\r\n const renderAdminValue = (isAdmin) => {\r\n return isAdmin ? \"Y\" : null;\r\n };\r\n\r\n return (\r\n
\r\n {\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Manage Users\r\n \r\n \r\n \r\n {!subscriptions && !users ? null : (\r\n <>\r\n \r\n \r\n \r\n \r\n Subscriptions\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {!subscriptions ? null : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Users\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {!users ? null : (\r\n {\r\n setFilter(e.filter);\r\n }}\r\n sort={sorter}\r\n onSortChange={(e) => {\r\n setSorter(e.sort);\r\n }}\r\n className={clsx(\r\n \"condensedKendoGrid\",\r\n globalClasses.kGridWithEdit,\r\n globalClasses.kGridWithDelete\r\n )}\r\n >\r\n {\r\n return (\r\n \r\n Edit User}>\r\n \r\n handleEditUser(GridCellProps.dataItem)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n \r\n \r\n {\r\n return (\r\n \r\n {GridCellProps.dataItem.isAdmin}\r\n \r\n );\r\n }}\r\n />\r\n \r\n {\r\n return (\r\n \r\n Delete User}>\r\n \r\n handleDeleteUser(GridCellProps.dataItem)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n {!users && !subscriptions ? null : (\r\n \r\n \r\n Add User\r\n \r\n {\r\n props.history.push(\"/welcome\");\r\n }}\r\n >\r\n Exit\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import { makeStyles } from \"@material-ui/core\";\r\n\r\nexport const AddUserStyles = makeStyles((theme) => ({\r\n customField: {\r\n margin: \"8px 8px\",\r\n width: \"96%\",\r\n },\r\n listContainer: {\r\n backgroundColor: \"lightgrey\",\r\n borderRadius: \"4px\",\r\n fontSize: \"1em\",\r\n float: \"left\",\r\n padding: theme.spacing(1),\r\n paddingLeft: theme.spacing(3),\r\n width: \"96%\",\r\n marginLeft: \"8px\",\r\n },\r\n}));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { AddUserStyles } from \"./AddUser.styles\";\r\nimport PageHeader from \"../pageheader/PageHeader\";\r\nimport {\r\n Grid,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n Typography,\r\n Divider,\r\n Paper,\r\n List,\r\n CircularProgress,\r\n CssBaseline,\r\n Container,\r\n Radio,\r\n FormHelperText,\r\n Box,\r\n Button,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\nimport * as yup from \"yup\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport { InputAdornment } from \"@material-ui/core\";\r\nimport { useFormik } from \"formik\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport { addUser } from \"../../action/manageUserAction\";\r\nimport { dealerPortalEndPoints } from \"../../Constants/apiConstants\";\r\nimport { ADD_USER } from \"../../actionTypes/manageUserActionTypes\";\r\nimport { UseAuthorization } from \"../../utils/UseAuthorization\";\r\nimport clsx from \"clsx\";\r\nimport {\r\n Grid as KendoGrid,\r\n GridColumn as Column,\r\n} from \"@progress/kendo-react-grid\";\r\nimport {\r\n CompositeFilterDescriptor,\r\n SortDescriptor,\r\n orderBy,\r\n filterBy,\r\n} from \"@progress/kendo-data-query\";\r\nimport { UserMessages } from \"../../enums/usermessages\";\r\n\r\nconst useStyles = AddUserStyles;\r\nconst globalStyle = hddsStyles;\r\n\r\nconst AddUser = (props) => {\r\n const classes = useStyles();\r\n const { isEdit } = props;\r\n const { users } = useSelector((state) => state.managedUsers);\r\n\r\n let { userDetails } = useSelector((state) => {\r\n return {\r\n userDetails: state.login.userDetails,\r\n };\r\n });\r\n\r\n const globalClasses = globalStyle();\r\n const alphaNumeric = /^[a-zA-Z0-9.]+$/gi;\r\n const charsAndSpaces = /^[a-zA-Z ]+$/gi;\r\n const [dealerOrg, setDealerOrg] = useState(null);\r\n const dispatch = useDispatch();\r\n const { selectedUser, add_user_in_process } = useSelector(\r\n (state) => state.managedUsers\r\n );\r\n const localStorageData = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [gridData, setGridData] = React.useState([]);\r\n const [filter, setFilter] = React.useState({\r\n logic: \"and\",\r\n filters: [],\r\n });\r\n const [sorter, setSorter] = React.useState([\r\n { field: \"employee\", dir: \"asc\" },\r\n ]);\r\n const [userStores, setUserStores] = useState([]);\r\n const [gridErrorText, setGridErrorText] = useState(\"\");\r\n\r\n const selectStores = () => {\r\n axios\r\n .get(\r\n `${dealerPortalEndPoints.getSubscriptions}${localStorageData.dealerNumber}?byDealer=true`,\r\n UseAuthorization()\r\n )\r\n .then((response) => {\r\n const data = (response.data?.dealers || []).map((item) => {\r\n return {\r\n userKey: \"\",\r\n storename: item.dealerName,\r\n subscription: item.subscriptionDescription,\r\n orgKey: item.dealerNumber,\r\n orgDisplay: item.dealerName,\r\n storeSubscriptionDescription: item.subscriptionDescription,\r\n isSelectedStore: false,\r\n isDefaultOrg: false,\r\n };\r\n });\r\n setDealerOrg(data || []);\r\n subscriptionInfo(data);\r\n })\r\n .catch((err) => console.log(err));\r\n };\r\n\r\n const subscriptionInfo = (data: any) => {\r\n const userOrgs = [];\r\n\r\n if (selectedUser && selectedUser?.userDealerMappings) {\r\n data.forEach((x) => {\r\n if (selectedUser.userDealerMappings.length >= 1) {\r\n selectedUser?.userDealerMappings.forEach((y) => {\r\n if (y.orgKey === x.orgKey) {\r\n x.isSelectedStore = true;\r\n x.isDefaultOrg = y.isDefaultOrg;\r\n }\r\n });\r\n }\r\n userOrgs.push(x);\r\n });\r\n } else {\r\n data.forEach((x) => userOrgs.push(x));\r\n }\r\n\r\n setUserStores(userOrgs);\r\n setGridData(userOrgs);\r\n };\r\n\r\n useEffect(() => {\r\n selectStores();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (dealerOrg) {\r\n setGridData(orderBy(filterBy([...userStores], filter), sorter));\r\n }\r\n }, [filter, sorter]);\r\n\r\n const handleStoreSelectCheck = (rowData) => {\r\n for (const org of userStores) {\r\n if (org.orgKey === rowData.orgKey) {\r\n if (org.isDefaultOrg) return;\r\n if (userStores.filter((x) => x.isDefaultOrg).length === 0) {\r\n org.isDefaultOrg = true;\r\n }\r\n org.isSelectedStore = !org.isSelectedStore;\r\n break;\r\n }\r\n }\r\n setGridErrorText(\"\");\r\n setGridData([...userStores]);\r\n };\r\n\r\n const handleDefaultSelect = (rowData) => {\r\n for (const org of userStores) {\r\n if (org.orgKey === rowData.orgKey) {\r\n org.isDefaultOrg = true;\r\n org.isSelectedStore = true;\r\n } else org.isDefaultOrg = false;\r\n }\r\n setGridErrorText(\"\");\r\n setGridData([...userStores]);\r\n };\r\n\r\n const initialValues = {\r\n password: \"\",\r\n confirmPassword: \"\",\r\n userDisplay: selectedUser ? selectedUser.userDisplay : \"\",\r\n username: selectedUser ? selectedUser.username : \"\",\r\n admin: selectedUser ? selectedUser.admin : false,\r\n userLocked: selectedUser ? selectedUser.userLocked : false,\r\n };\r\n\r\n const listItems = [\r\n \"Minimum of 7 characters\",\r\n \"Contains one upper case letter\",\r\n \"Contains one lower case letter\",\r\n \"Contains one numeric character\",\r\n \"Contains one symbol [!,*,@,#,$,%,^,&,+,=]\",\r\n \"Cannot include Username, or any part of Full Name\",\r\n \"Cannot be one of your 4 previous passwords\",\r\n ];\r\n\r\n const listItemsAdd = [\r\n \"Minimum of 7 characters\",\r\n \"Contains one upper case letter\",\r\n \"Contains one lower case letter\",\r\n \"Contains one numeric character\",\r\n \"Contains one symbol [!,*,@,#,$,%,^,&,+,=]\",\r\n \"Cannot include Username, or any part of Full Name\",\r\n ];\r\n\r\n const passwordList = isEdit ? listItems : listItemsAdd;\r\n\r\n const validationSchema = yup.object().shape({\r\n userDisplay: yup\r\n .string()\r\n .min(2, \"Too Short!\")\r\n .max(55, \"Too Long!\")\r\n .matches(charsAndSpaces, \"Name can take only characters\")\r\n .required(\"Name is required\"),\r\n username: yup\r\n .string()\r\n .min(4, \"Too Short!\")\r\n .max(30, \"Too Long!\")\r\n .matches(\r\n alphaNumeric,\r\n \"Username must be 4-30 letters and or numbers no spaces\"\r\n )\r\n .required(\"Username is required\"),\r\n password: yup\r\n .string()\r\n .min(7, \"Too Short!\")\r\n .max(40, \"Too Long!\")\r\n //.required(\"Password is required\")\r\n .test(\"test-password\", \"Please provide a valid Password\", (value) => {\r\n if (selectedUser && !value) return true;\r\n return Boolean(value) && passwordValidation(value);\r\n })\r\n .when([\"userDisplay\"], {\r\n is: (userDisplay) => Boolean(userDisplay),\r\n then: yup.string().when(\"userDisplay\", (userDisplay, schema) => {\r\n return schema.test({\r\n test: (password) => {\r\n const splitVals = userDisplay.split(\" \");\r\n if (selectedUser && password === undefined) return true; // if manage users window didn't change the PW\r\n for (let i = 0; i < splitVals.length; i++) {\r\n const value = splitVals[i].toString().toLowerCase();\r\n if (password?.toLowerCase().includes(value)) return false;\r\n }\r\n return true; // getting here means no name tokens appeared, so we're OK\r\n },\r\n message: \"Password should not include parts of full name\",\r\n });\r\n }),\r\n })\r\n .when([\"username\"], {\r\n is: (username) => Boolean(username),\r\n then: yup.string().when(\"username\", (username, schema) => {\r\n return schema.test({\r\n test: (password) => {\r\n if (selectedUser && password === undefined) return true;\r\n return (\r\n password &&\r\n password?.toLowerCase().indexOf(username.toLowerCase()) === -1\r\n );\r\n },\r\n message: \"Password should not include username\",\r\n });\r\n }),\r\n }),\r\n confirmPassword: yup\r\n .string()\r\n .min(7, \"Too Short!\")\r\n .test(\r\n \"test-confirmPassword\",\r\n \"Please provide a valid Password\",\r\n (value) => {\r\n if (selectedUser) return true;\r\n return Boolean(value) && passwordValidation(value);\r\n }\r\n )\r\n .when([\"password\"], {\r\n is: (password) => Boolean(password),\r\n then: yup\r\n .string()\r\n .oneOf([yup.ref(\"password\")], \"Password does not match\"),\r\n }),\r\n });\r\n\r\n const passwordValidation = (password) => {\r\n let valid = true;\r\n valid =\r\n valid &&\r\n Boolean(\r\n password.match(\r\n /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!*@#$%^&+=])([a-zA-Z\\d!*@#$%^&+=]+){7,}$/\r\n )\r\n );\r\n return valid;\r\n };\r\n\r\n const renderErrorMessage = () => {\r\n return (\r\n <>\r\n {gridErrorText === \"\" ? null : (\r\n \r\n {gridErrorText}\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const handleSubmit = (values, { resetForm }) => {\r\n if (isEdit) {\r\n const admins = users.filter((user) => user.admin);\r\n if (\r\n admins?.length < 1 &&\r\n admins[0]?.userKey === selectedUser?.userKey &&\r\n !values?.admin\r\n ) {\r\n setGridErrorText(UserMessages.ADMIN_REQ);\r\n return;\r\n }\r\n }\r\n if (!userDetails) {\r\n userDetails = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n userDetails.orgKey = userDetails.orgKey\r\n ? userDetails.orgKey\r\n : userDetails.organization;\r\n }\r\n\r\n const selectedStores = userStores?.filter((item) => item.isSelectedStore);\r\n\r\n if (!userStores || selectedStores.length < 1) {\r\n setGridErrorText(UserMessages.DEALER_REQ);\r\n return;\r\n }\r\n\r\n const defaultStore = selectedStores.filter((item) => item.isDefaultOrg);\r\n if (defaultStore.length < 1) {\r\n setGridErrorText(UserMessages.DEFUALT_STORE);\r\n return;\r\n }\r\n\r\n const payload = {\r\n userKey: `${values.username}@${userDetails?.orgKey}`,\r\n orgKey: userDetails?.orgKey,\r\n userName: values.username,\r\n userDisplay: values.userDisplay,\r\n password: values.password,\r\n isSHLAdmin: values.admin,\r\n userIsLocked: values.userLocked ? true : false,\r\n userDealerMappings: selectedStores.map((item) => {\r\n return {\r\n isDefaultOrg: item.isDefaultOrg,\r\n orgDisplay: item.orgDisplay,\r\n orgKey: item.orgKey,\r\n storeSubscription: item.storeSubscriptionDescription,\r\n userKey: `${values.username}@${userDetails?.orgKey}`,\r\n };\r\n }),\r\n };\r\n\r\n const formCleanUp = () => {\r\n resetForm();\r\n (dealerOrg || []).forEach((item) => {\r\n item.selected = false;\r\n item.default = false;\r\n });\r\n props.history.push(\"/manageuser\");\r\n };\r\n const isUpdateUser = selectedUser ? true : false;\r\n if (isUpdateUser && payload.password === \"\") {\r\n delete payload.password;\r\n }\r\n dispatch({ type: ADD_USER }); //For loading icon on Save\r\n dispatch(addUser(payload, formCleanUp, isUpdateUser));\r\n };\r\n\r\n const handlePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues,\r\n validationSchema,\r\n validateOnBlur: true,\r\n validateOnChange: true,\r\n onSubmit: handleSubmit,\r\n });\r\n\r\n const isSaveEnabled = (values) => {\r\n if (isEdit && (!values.userDisplay || !values.username)) return true;\r\n if (\r\n !isEdit &&\r\n (!values.userDisplay ||\r\n !values.username ||\r\n !values.password ||\r\n !values.confirmPassword)\r\n )\r\n return true;\r\n return false;\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {isEdit ? \"User Profile\" : \"Add User\"}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {formik.touched.userDisplay &&\r\n Boolean(formik.errors.userDisplay) &&\r\n formik.touched.userDisplay &&\r\n formik.errors.userDisplay}\r\n \r\n \r\n \r\n \r\n Login Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {formik.touched.username &&\r\n Boolean(formik.errors.username) &&\r\n formik.touched.username &&\r\n formik.errors.username}\r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"User is allowed to add users and change passwords for other users.\"\r\n >\r\n {selectedUser && (\r\n \r\n }\r\n label=\"Account Locked\"\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showPassword ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ),\r\n }}\r\n />\r\n \r\n {formik.touched.password &&\r\n Boolean(formik.errors.password) &&\r\n formik.touched.password &&\r\n formik.errors.password}\r\n \r\n \r\n \r\n \r\n {showPassword ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ),\r\n }}\r\n />\r\n \r\n {formik.touched.confirmPassword &&\r\n Boolean(formik.errors.confirmPassword) &&\r\n formik.touched.confirmPassword &&\r\n formik.errors.confirmPassword}\r\n \r\n \r\n \r\n \r\n {passwordList.map((item) => (\r\n
  • {item}
  • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Select User Subscriptions\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {renderErrorMessage()}\r\n \r\n \r\n {!dealerOrg ? (\r\n
    \r\n \r\n \r\n \r\n \r\n Loading\r\n \r\n \r\n \r\n
    \r\n ) : (\r\n {\r\n setFilter(e.filter);\r\n }}\r\n sort={sorter}\r\n onSortChange={(e) => {\r\n setSorter(e.sort);\r\n }}\r\n className={\"condensedKendoGrid\"}\r\n >\r\n {\r\n return (\r\n \r\n \r\n handleStoreSelectCheck(\r\n GridCellProps.dataItem\r\n )\r\n }\r\n />\r\n \r\n );\r\n }}\r\n />\r\n \r\n {\r\n return (\r\n \r\n \r\n handleDefaultSelect(GridCellProps.dataItem)\r\n }\r\n />\r\n \r\n );\r\n }}\r\n />\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {!add_user_in_process ? (\r\n \r\n Save\r\n \r\n ) : (\r\n \r\n )}\r\n {\r\n props.history.push(\"/manageuser\");\r\n }}\r\n >\r\n Cancel\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AddUser;\r\n","import React from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n DialogContentText,\r\n DialogActions,\r\n Divider,\r\n} from \"@material-ui/core\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { hideToastMessage } from \"../../action/toastAction\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst Toast = (props) => {\r\n const globalClasses = globalStyle();\r\n const dispatch = useDispatch();\r\n const toasts = useSelector((state) => {\r\n return state.toastsReducer;\r\n });\r\n const [open, setOpen] = React.useState(toasts.isOpen);\r\n\r\n const handleClose = (event, reason) => {\r\n setOpen(!open);\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n dispatch(hideToastMessage());\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n {toasts.type}\r\n \r\n \r\n \r\n \r\n {toasts.message}\r\n \r\n \r\n \r\n \r\n Ok\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Toast;\r\n","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\n\r\nfunction PrivateRoute({ component: Component, authed, ...rest }) {\r\n return (\r\n \r\n authed === true ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n}\r\n\r\nexport default PrivateRoute;\r\n","import React from \"react\";\r\nimport AddUser from \"./AddUser\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { getUser } from \"../../action/manageUserAction\";\r\nimport { getUserDetails } from \"../../action/welcomeAction\";\r\n\r\nconst EditUser = (props) => {\r\n const userId = props.match.params.id;\r\n const { selectedUser } = useSelector((state) => state.managedUsers);\r\n const { userDetails } = useSelector((state) => {\r\n return {\r\n userDetails: state.login.userDetails,\r\n };\r\n });\r\n const [enableEdit, setEnableEdit] = useState(false);\r\n const localStorageData = JSON.parse(localStorage.getItem(\"dp_userDetails\"));\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (!selectedUser) {\r\n Promise.all([\r\n dispatch(getUserDetails()),\r\n dispatch(getUser(userId, localStorageData.organization)),\r\n ]).then((response) => {\r\n if (\r\n response[0] &&\r\n response[0].length > 0 &&\r\n response[1] &&\r\n response[1].length > 0\r\n ) {\r\n setEnableEdit(true);\r\n }\r\n });\r\n } else {\r\n setEnableEdit(true);\r\n }\r\n }, []);\r\n\r\n return enableEdit && ;\r\n};\r\n\r\nexport default EditUser;\r\n","import React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\nimport {\r\n Typography,\r\n AppBar,\r\n Toolbar,\r\n Menu,\r\n MenuItem,\r\n IconButton,\r\n MenuList,\r\n} from \"@material-ui/core\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst HelpPageHeader = (props) => {\r\n const globalClasses = globalStyle();\r\n const history = useHistory();\r\n\r\n const handleImageClick = () => {\r\n history.push(\"/welcome\");\r\n };\r\n const handleTitleClick = () => {\r\n history.push(\"/help/Service_History-Link\");\r\n };\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n SHL Help\r\n \r\n \r\n setAnchorEl(e.currentTarget)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n SHL Report\r\n \r\n history.push(\"/help/Generating_a_Report\")}\r\n selected={props.page === \"gen_report\"}\r\n >\r\n Generating a Report\r\n \r\n \r\n history.push(\"/help/Service_History-Link_Report\")\r\n }\r\n selected={props.page === \"shl_report\"}\r\n >\r\n Service History-Link Report\r\n \r\n history.push(\"/help/CPO_Interpretation\")}\r\n selected={props.page === \"cpo_inter\"}\r\n >\r\n CPO Interpretation\r\n \r\n \r\n \r\n \r\n SHL Subscription\r\n \r\n history.push(\"/help/Logging_In\")}\r\n selected={props.page === \"logging_in\"}\r\n >\r\n Logging In\r\n \r\n history.push(\"/help/Managing_Your_Subscription\")}\r\n selected={props.page === \"manage_sub\"}\r\n >\r\n Managing Your Subscription\r\n \r\n history.push(\"/help/Adding_Users\")}\r\n selected={props.page === \"add_user\"}\r\n >\r\n Adding and Editing Users\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default HelpPageHeader;\r\n","import React from \"react\";\r\nimport { Grid } from \"@material-ui/core\";\r\n\r\nconst ForgotPasswordReminder = (_props) => {\r\n return (\r\n \r\n \r\n If you forgot your username or password, check with your system\r\n administrator or call{\" \"}\r\n HDDS Business Development 1-800-428-5090 Opt. 1.\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ForgotPasswordReminder;\r\n","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport PageHeader from \"../pageheader/HelpPageHeader\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\nimport ForgotPasswordReminder from \"./forgot-password-reminder\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst ServiceHistoryLink = (_props) => {\r\n const globalClasses = globalStyle();\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Service History-Link\r\n \r\n \r\n \r\n \r\n \r\n \r\n For help using the Service History-Link report and managing your\r\n subscriptions, select a topic below.\r\n \r\n \r\n \r\n Contents\r\n \r\n \r\n
  • \r\n Logging In\r\n
  • \r\n
  • \r\n Generating a Report\r\n
  • \r\n
  • \r\n \r\n Service History-Link Report\r\n \r\n
  • \r\n
  • \r\n CPO Interpretation\r\n
  • \r\n
  • \r\n \r\n Managing Your Subscription\r\n \r\n
  • \r\n
  • \r\n Adding and Editing Users\r\n
  • \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ServiceHistoryLink;\r\n","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport PageHeader from \"../pageheader/HelpPageHeader\";\r\nimport ForgotPasswordReminder from \"./forgot-password-reminder\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst LoggingIn = (_props) => {\r\n const globalClasses = globalStyle();\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Logging In\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Logging In\r\n \r\n \r\n \r\n To access the Service History-Link report you will need to log\r\n in using the credentials provided by your system administrator.\r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
    1. Enter your Dealer Number.
    2. \r\n
    3. Enter your Username.
    4. \r\n
    5. Enter your Password.
    6. \r\n
    7. \r\n Select Log In.\r\n
    8. \r\n
    \r\n
    \r\n \r\n All fields are required and must be associated with a valid\r\n subscription.\r\n \r\n \r\n
    \r\n \r\n \r\n Logging Out\r\n \r\n \r\n \r\n If you are finished running SHL reports, you can exit your\r\n session by selecting Log Out. If you do not log out, your\r\n session will remain active, even if you close your browser. It\r\n is recommended that if you use a shared workstation, that you\r\n log out after each session.\r\n \r\n \r\n
      \r\n
    1. \r\n Select the user icon in the upper right of the screen\r\n
      \r\n \r\n
    2. \r\n
    3. \r\n Select logout from the menu\r\n
      \r\n \r\n
    4. \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default LoggingIn;\r\n","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport PageHeader from \"../pageheader/HelpPageHeader\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst GeneratingReport = (_props) => {\r\n const globalClasses = globalStyle();\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Generating a Report\r\n \r\n \r\n \r\n \r\n \r\n \r\n

    \r\n To Generate a Service History-Link report, follow these steps:\r\n

    \r\n \r\n
      \r\n
    1. Enter or copy and paste a valid VIN.
    2. \r\n
    3. \r\n Select Generate Report (only enabled if the VIN\r\n entered is 12-17 characters).\r\n
    4. \r\n
    5. A PDF of the report will open in your browser.
    6. \r\n
    \r\n Note:\r\n
      \r\n
    • VIN's must be between 12-17 alpha-numeric characters.
    • \r\n
    • \r\n If the number is not found, \"VIN not available at this time\"\r\n will display.\r\n
    • \r\n
    • \r\n If there was an error processing the request, \"Communication\r\n Failed\" will display.\r\n
    • \r\n
    \r\n
    \r\n \r\n \r\n Subscription Information\r\n \r\n

    \r\n Before running a report, you can easily view your current\r\n subscription details for the store that you are logged in\r\n under.\r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default GeneratingReport;\r\n","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport PageHeader from \"../pageheader/HelpPageHeader\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst ServiceHistoryLinkReport = (_props) => {\r\n const globalClasses = globalStyle();\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Service History-Link Report\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n

    \r\n Service History data displays in report format, with the\r\n most recent service work at the top. Data comes from\r\n certified Harley-Davidson service centers who participate in\r\n the program. It displays service history data from 2012\r\n forward for a valid VIN. The data represented will show work\r\n orders for up to the previous day. It will not show\r\n today's data. The report may be saved or printed as\r\n desired.\r\n

    \r\n \r\n The Service History-Link report is meant for Dealership use,\r\n it is not intended to be consumed by the customer.\r\n
    \r\n

    A sample of the report is below:

    \r\n

    \r\n \r\n

    \r\n

    \r\n Events display the participating dealer's actual work\r\n order event/job number, unless the work order only has a\r\n charge (no events are found- such as storage/shop\r\n supplies/towing/etc.); in that case, one event will be\r\n displayed that says ‘Service chargeable event'.\r\n Non-participating dealers will only display the number of\r\n events found. Not all valid TALONes events are sent to HDMC\r\n (when no labor, parts, or non-inventory is on the event).\r\n

    \r\n

    Report Header

    \r\n

    \r\n The top of the report contains the date and time the report\r\n was run and the vehicle information. \r\n

    \r\n

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n Description\r\n \r\n \r\n \r\n Results Date\r\n \r\n Date the report was retrieved\r\n \r\n \r\n \r\n Results Time\r\n \r\n \r\n Time results were retrieved (Central Standard Time)\r\n \r\n \r\n \r\n \r\n VIN\r\n \r\n Vehicle Identification Number entered\r\n \r\n \r\n \r\n Make / Model / Year\r\n \r\n \r\n Vehicle manufacturer / vehicle model code / year\r\n (Note: it is possible for information to be missing if\r\n not found in the data)\r\n \r\n \r\n \r\n \r\n Color\r\n \r\n \r\n Vehicle color(s) (Note: it is possible for information\r\n to be missing if not found in the data)\r\n \r\n \r\n \r\n \r\n

    Service Entry

    \r\n

    \r\n Each service entry is denoted with a light orange header\r\n with the date of service, vehicle mileage in, Dealer and\r\n work order number. Below that that each service event,\r\n description and parts (if applicable) is listed.\r\n

    \r\n

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n Description\r\n \r\n \r\n \r\n Date\r\n \r\n The invoice date of the work order\r\n \r\n \r\n \r\n Mileage\r\n \r\n Work order / repair order mileage in\r\n \r\n \r\n \r\n Dealer\r\n \r\n \r\n Dealer number and name (if a participating\r\n Harley-Davidson authorized service center). For\r\n non-participating dealers it will display\r\n 'Non-Participating Service History-Link\r\n Dealer'\r\n \r\n \r\n \r\n \r\n Work Order\r\n \r\n Work order number / repair order number\r\n \r\n \r\n \r\n Event/Job\r\n \r\n \r\n This number is assigned by the Dealer Management\r\n System.\r\n

    \r\n Events display the participating dealer's actual\r\n work order event/job number, unlessthe work order\r\n only has a charge (no events are found- such as\r\n storage/shop supplies/towing/etc.); in that case,\r\n one event will be displayed that says ‘Service\r\n chargeable event'. Non-participating dealers\r\n will only display the number of events found. Not\r\n all valid TALONes events are sent to HDMC (when no\r\n labor, parts, or non-inventory is on the event).\r\n

    \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n Work order event description\r\n \r\n \r\n \r\n Pay\r\n \r\n \r\n

    \r\n Cust = if the customer paid for the event when the\r\n work order was closed\r\n
    \r\n Other = service work paid by someone other than the\r\n customer (Warranty, ESP, PPM, Policy, etc.)\r\n
    \r\n (Note: Internal work orders / repair orders will\r\n always be 'Other' since the work\r\n
    \r\n is billed to the Vehicle department.)\r\n

    \r\n \r\n \r\n \r\n \r\n Item #\r\n \r\n \r\n Harley-Davidson part number (displays 'n/a'\r\n for non-Harley-Davidson parts)\r\n \r\n \r\n \r\n \r\n Item Description\r\n \r\n \r\n

    \r\n Part description (if the description is not\r\n available, the report will display blank).\r\n

    \r\n

    For non-HD parts:

    \r\n
      \r\n
    • \r\n The description will display 'n/a' for\r\n work orders completed before March 8, 2021.\r\n
      \r\n \r\n
    • \r\n
    • \r\n The part description will display for work orders\r\n completed March 8, 2021 or later.\r\n
      \r\n \r\n
    • \r\n
    \r\n \r\n \r\n \r\n \r\n Vendor\r\n \r\n \r\n Vendor code ('HD') (displays 'n/a' for\r\n non-Harley-Davidson parts)\r\n \r\n \r\n \r\n \r\n Qty\r\n \r\n Amount of items used\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ServiceHistoryLinkReport;\r\n","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport PageHeader from \"../pageheader/HelpPageHeader\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst CPOInterpretation = (_props) => {\r\n const globalClasses = globalStyle();\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n CPO Interpretation\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n

    \r\n The Service History Report can be used help the service\r\n department determine bike eligibility in the HD-Certified™\r\n program. The SHL report offers insight into required bike\r\n maintenance and potential mechanical problems and help the\r\n dealership complete the checklist provided by the motor\r\n company.\r\n

    \r\n

    \r\n Below are samples from Service History Reports that help\r\n illustrate how the report can help with vehicle eligibility.  \r\n

    \r\n

    Service Intervals

    \r\n
    \r\n \r\n
    H-D Certified™ checklist example.
    \r\n
    \r\n

    \r\n The SHL report will contain the mileage and service performed\r\n (if by a authorized and participating H-D dealer) on the bike.\r\n Based on the mileage for each service entry, you can determine\r\n if regular service was performed at the recommended intervals\r\n (5K, 10K, 15K, etc.).\r\n

    \r\n

    \r\n For example, the following service record shows that the bike\r\n received its 10K service.\r\n

    \r\n

    \r\n \r\n

    \r\n

    \r\n Conversely, this bike does not have any record of a 10K\r\n service, and would not qualify (unless the vehicle mileage is\r\n within the recommended time frame allowing the dealership to\r\n perform the service before certifying).\r\n

    \r\n

    \r\n \r\n

    \r\n

    Maintenance Issues

    \r\n

    \r\n The example vehicle below shows the proper service interval,\r\n but also extensive repairs. The vehicle would need to be\r\n carefully examined to ensure that the vehicle meets the H-D\r\n Certified standards.\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CPOInterpretation;\r\n","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport PageHeader from \"../pageheader/HelpPageHeader\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst ManagingYourSubscription = (_props) => {\r\n const globalClasses = globalStyle();\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Managing Your Subscription\r\n \r\n \r\n \r\n \r\n \r\n \r\n

    Manage Users

    \r\n

    \r\n The top grid contains a list of all users of the SHL\r\n subscription. From here you can edit or add users to your\r\n organization.\r\n

    \r\n

    \r\n \r\n

    \r\n

    \r\n To edit a user, select the edit icon\r\n next the user. To\r\n remove a user, select the delete icon\r\n and confirm in the\r\n pop-up box.\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n Description\r\n \r\n \r\n \r\n Edit Icon\r\n \r\n \r\n Select the icon to edit user details, set subscription\r\n access, or change a password.\r\n \r\n \r\n \r\n \r\n Delete Icon\r\n \r\n Select the icon to remove the user.\r\n \r\n \r\n \r\n Employee\r\n \r\n Employee's full name\r\n \r\n \r\n \r\n Username\r\n \r\n Username for logging in\r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n "Y" indicates user is set as an admin and can\r\n modify other employees.\r\n \r\n \r\n \r\n \r\n Default Store\r\n \r\n The users default store.\r\n \r\n \r\n \r\n

    Subscription Details

    \r\n

    \r\n The bottom grid contains a list of the organization\r\n subscriptions with details for each the subscription for each\r\n store.\r\n

    \r\n

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n Description\r\n \r\n \r\n \r\n Store\r\n \r\n A store in an organization.\r\n \r\n \r\n \r\n Subscription\r\n \r\n Subscription level.\r\n \r\n \r\n \r\n Max # of Users Allowed\r\n \r\n \r\n Maximum users permitted under the stores subscription\r\n teir.\r\n \r\n \r\n \r\n \r\n # of Users Assigned\r\n \r\n \r\n The number of users currently assigned to that\r\n store's subscription.\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ManagingYourSubscription;\r\n","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport PageHeader from \"../pageheader/HelpPageHeader\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Divider,\r\n CssBaseline,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { hddsStyles } from \"../../core/styles/styles\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst AddingUsers = (_props) => {\r\n const globalClasses = globalStyle();\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n Adding and Editing Users\r\n \r\n \r\n \r\n \r\n \r\n \r\n

    \r\n There are two ways to manage specific users. First, by\r\n selecting \r\n \r\n  on the Manage User screen or, second, selecting the \r\n \r\n  icon next to the employee name on the Manage User screen.\r\n

    \r\n

    \r\n From this screen, you add a new user or edit an existing user\r\n by completing the form.\r\n

    \r\n

    \r\n \r\n

    \r\n \r\n \r\n *Required field\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n Description\r\n \r\n \r\n \r\n First Name*\r\n \r\n \r\n \r\n \r\n \r\n Last Name*\r\n \r\n \r\n \r\n \r\n \r\n Password*\r\n \r\n \r\n

    \r\n User passwords must be at least 7 characters and\r\n contain at least one uppercase letter, one lowercase\r\n letter, one number, and one special character (!, *,\r\n @, #, $, %, ^, &, +, =).\r\n

    \r\n

    \r\n Retype the password in the Confirm Password box to\r\n continue.\r\n

    \r\n \r\n \r\n \r\n \r\n Login Name*\r\n
    \r\n (Username)\r\n \r\n \r\n

    \r\n Username used to log into SHL. Must be between 4 and\r\n 30 characters, letters and numbers only.\r\n

    \r\n \r\n The username cannot be edited after the initial record\r\n is created. Ensure the name is correct when adding a\r\n new user.\r\n

    \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n

    \r\n Admin box\r\n

    \r\n

    \r\n Select this option to give the user admin privileges\r\n (add users and change passwords).  \r\n

    \r\n

    \r\n It is recommended that you have at least two admins in\r\n your organization to assist users with passwords.\r\n

    \r\n

    \r\n \r\n

    \r\n

    \r\n Locked box\r\n

    \r\n

    \r\n If a user enters their password incorrectly too many\r\n times, their account will be locked. Admin's can\r\n clear this box, allowing the user to try again (only\r\n visible on the edit user page).\r\n

    \r\n

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n Store Access Grid\r\n \r\n \r\n

    \r\n A listing of all valid subscriptions available to the\r\n organization. Select the box next to the dealership\r\n name to grant the user access that store's\r\n subscription. \r\n

    \r\n
      \r\n
    • \r\n Subscription bo\r\n x: select to give the user access\r\n to this store's subscription.\r\n
    • \r\n
    • \r\n Store Name: the dealership in the\r\n organization with a valid subscription.\r\n
    • \r\n
    • \r\n Default box: select to mark this\r\n store as the user's default store.\r\n
    • \r\n
    • \r\n Subscription: the subscription name\r\n (type) that the dealership has enrolled in.\r\n
    • \r\n
    \r\n \r\n The row with each dealership will be disabled when the\r\n maximum number of users has been reached for that\r\n store's subscription level. \r\n

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

    \r\n \r\n You can add users and not assign them a store. However, they\r\n will not be able to login to the SHL site.\r\n

    \r\n

    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default AddingUsers;\r\n","import React from \"react\";\r\nimport { Link, Typography } from \"@material-ui/core\";\r\n\r\nconst PageFooter = (props) => {\r\n return (\r\n \r\n {`Copyright © ${new Date().getFullYear()} - `}\r\n \r\n TALON Powersports Solutions\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PageFooter;\r\n","import React, { useEffect, useReducer } from \"react\";\r\nimport \"primereact/resources/themes/nova-light/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { Switch, Route, Redirect, useLocation } from \"react-router-dom\";\r\nimport Login from \"./components/login/Login\";\r\nimport Callback from \"./components/login/Callback\";\r\nimport Welcome from \"./components/welcome/Welcome\";\r\nimport ManageUser from \"./components/manageuser/ManageUser\";\r\nimport AddUser from \"./components/AddUser/AddUser\";\r\nimport Toast from \"./utils/shared/Toasts\";\r\nimport PrivateRoute from \"./PrivateRoute\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport EditUser from \"./components/AddUser/EditUser\";\r\nimport ServiceHistoryLink from \"./components/help/service-history-link\";\r\nimport LoggingIn from \"./components/help/logging-in\";\r\nimport GeneratingReport from \"./components/help/generating-a-report\";\r\nimport ServiceHistoryLinkReport from \"./components/help/service-history-link-report\";\r\nimport CPOInterpretation from \"./components/help/cpo-interpretation\";\r\nimport ManagingYourSubscription from \"./components/help/managing-your-subscription\";\r\nimport AddingUsers from \"./components/help/adding-users\";\r\nimport { hddsStyles } from \"./core/styles/styles\";\r\nimport \"../src/core/styles/kendo-overrides.scss\";\r\nimport PageFooter from \"../src/components/pagefooter/PageFooter\";\r\n\r\nconst globalStyle = hddsStyles;\r\n\r\nconst App: React.FC = () => {\r\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\r\n\r\n const id_token = localStorage.getItem(\"dp_user_id_token\");\r\n\r\n const location = useLocation();\r\n\r\n const history = createBrowserHistory({ forceRefresh: true });\r\n\r\n const globalClasses = globalStyle();\r\n\r\n useEffect(() => {\r\n localStorage.setItem(\"dp_path\", history.location.pathname);\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"storage\", (e) => {\r\n if (\r\n e.key &&\r\n (e.key === \"dp_user_id_token\" ||\r\n e.key === \"dp_userDetails\" ||\r\n e.key.startsWith(\"oidc.\"))\r\n ) {\r\n if (e.oldValue !== e.newValue) {\r\n forceUpdate();\r\n }\r\n if (e.key && e.key === \"dp_user_id_token\" && e.newValue == null) {\r\n sessionStorage.clear();\r\n }\r\n } else if (e.key && e.key === \"dp_path\") {\r\n if (\r\n e.oldValue != \"/Callback\" &&\r\n e.newValue != \"/Callback\" &&\r\n e.oldValue !== e.newValue\r\n ) {\r\n history.push(e.newValue);\r\n }\r\n }\r\n });\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n !id_token ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default App;\r\n","import { ReportHandler } from \"web-vitals\";\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import axios from \"axios\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport {\r\n LOGIN_ACTION_SUCCESS,\r\n LOGIN_ACTION_CANCELLED,\r\n LOGIN_ACTION_FAILED,\r\n GET_ORGANIZATION_SUCCESS,\r\n GET_USERDETAILS_SUCCESS,\r\n USER_CREDENTIALS,\r\n LOGIN_ACTION,\r\n} from \"./../actionTypes/loginActionTypes\";\r\nimport { USER_FOUND } from \"redux-oidc\";\r\nimport { dealerPortalEndPoints } from \"../Constants/apiConstants\";\r\nimport { UseAuthorization } from \"../utils/UseAuthorization\";\r\n\r\nconst INITIAL_STATE = {\r\n token: \"\",\r\n access_token: \"\",\r\n username: \"\",\r\n orgName: \"\",\r\n loginerror: false,\r\n errormsg: \"\",\r\n organization: \"\",\r\n userDetails: null,\r\n userCredentials: null,\r\n login_in_process: false,\r\n};\r\n\r\nexport default (state = INITIAL_STATE, action) => {\r\n switch (action.type) {\r\n case LOGIN_ACTION:\r\n return { ...state, login_in_process: true };\r\n case LOGIN_ACTION_FAILED:\r\n return {\r\n ...state,\r\n loginerror: true,\r\n message: action.payload,\r\n login_in_process: false,\r\n };\r\n case LOGIN_ACTION_CANCELLED:\r\n case LOGIN_ACTION_SUCCESS:\r\n return { ...state, login_in_process: false };\r\n case USER_FOUND:\r\n if (localStorage.getItem(\"session_key_stored\") !== \"true\") {\r\n const sessionKey = uuidv4();\r\n localStorage.setItem(\"session_key\", sessionKey);\r\n axios.put(\r\n dealerPortalEndPoints.sessionInfo,\r\n {\r\n userKey: action.payload.profile?.user_key,\r\n sessionKey: sessionKey,\r\n },\r\n UseAuthorization()\r\n );\r\n localStorage.setItem(\"session_key_stored\", \"true\");\r\n }\r\n localStorage.setItem(\"dp_user_id_token\", action.payload.id_token);\r\n return {\r\n ...state,\r\n token: action.payload.id_token,\r\n access_token: action.payload.access_token,\r\n username: action.payload.profile?.user_key,\r\n orgName: action.payload.profile?.store_alias,\r\n };\r\n case GET_ORGANIZATION_SUCCESS:\r\n return { ...state, organization: action.payload };\r\n case GET_USERDETAILS_SUCCESS:\r\n return { ...state, userDetails: action.payload };\r\n case USER_CREDENTIALS:\r\n return { ...state, userCredentials: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n FETCH_USER,\r\n ADD_USER,\r\n ADD_USER_FAILED,\r\n DELETE_USER_SUCCESS,\r\n DELETE_USER_FAILED,\r\n DELETE_USER,\r\n} from \"./../actionTypes/manageUserActionTypes\";\r\nimport {\r\n FETCH_USER_FAILED,\r\n FETCH_USER_SUCCESS,\r\n FETCH_SUBSCRIPTIONS_SUCCESS,\r\n SELECT_USER,\r\n ADD_USER_SUCCESS,\r\n FETCH_ORGANIZATION_SUCCESS,\r\n} from \"../actionTypes/manageUserActionTypes\";\r\n\r\nconst INITIAL_STATE = {\r\n users: null,\r\n selectedUser: null,\r\n error: null,\r\n subscriptions: null,\r\n organization: null,\r\n user_loading: false,\r\n add_user_in_process: false,\r\n delete_user_in_process: false,\r\n};\r\n\r\nexport default (state = INITIAL_STATE, action) => {\r\n switch (action.type) {\r\n case SELECT_USER:\r\n return { ...state, selectedUser: action.payload };\r\n case FETCH_USER:\r\n return { ...state, user_loading: true };\r\n case FETCH_USER_SUCCESS:\r\n return { ...state, users: action.payload, user_loading: false };\r\n case FETCH_USER_FAILED:\r\n return { ...state, error: action.payload, user_loading: false };\r\n case FETCH_SUBSCRIPTIONS_SUCCESS:\r\n return {\r\n ...state,\r\n subscriptions: action.payload,\r\n };\r\n case ADD_USER:\r\n return { ...state, add_user_in_process: true };\r\n case ADD_USER_SUCCESS:\r\n return {\r\n ...state,\r\n subscriptions: null,\r\n users: null,\r\n add_user_in_process: false,\r\n };\r\n case ADD_USER_FAILED:\r\n return {\r\n ...state,\r\n add_user_in_process: false,\r\n };\r\n case DELETE_USER:\r\n return {\r\n ...state,\r\n delete_user_in_process: true,\r\n };\r\n case DELETE_USER_SUCCESS:\r\n return {\r\n ...state,\r\n users: null,\r\n delete_user_in_process: false,\r\n };\r\n case DELETE_USER_FAILED:\r\n return {\r\n ...state,\r\n delete_user_in_process: false,\r\n };\r\n case FETCH_ORGANIZATION_SUCCESS:\r\n return { ...state, organization: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n GET_REPORT_ACTION_FAILED,\r\n GET_REPORT_ACTION_SUCCESS,\r\n GENERATE_REPORT_IN_PROGRESS,\r\n GET_SUBSCRIPTION_DETAILS_SUCCESS,\r\n} from \"../actionTypes/welcomeActionTypes\";\r\n\r\nconst INITIAL_STATE = {\r\n error: false,\r\n errormsg: \"\",\r\n GenerateReportLoading: false,\r\n subscriptionDetails: {},\r\n};\r\n\r\nexport default (state = INITIAL_STATE, action) => {\r\n switch (action.type) {\r\n case GENERATE_REPORT_IN_PROGRESS:\r\n return { ...state, GenerateReportLoading: true };\r\n case GET_REPORT_ACTION_FAILED:\r\n return {\r\n ...state,\r\n error: true,\r\n errormsg: action.payload,\r\n GenerateReportLoading: false,\r\n };\r\n case GET_REPORT_ACTION_SUCCESS:\r\n return {\r\n ...state,\r\n error: false,\r\n errormsg: \"\",\r\n GenerateReportLoading: false,\r\n };\r\n case GET_SUBSCRIPTION_DETAILS_SUCCESS:\r\n return {\r\n ...state,\r\n subscriptionDetails: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import * as types from \"../actionTypes/toastActionTypes\";\r\n\r\nconst toastsInitialState = {\r\n isOpen: false,\r\n message: \"\",\r\n type: \"\",\r\n};\r\n\r\nexport default (state = toastsInitialState, action) => {\r\n switch (action.type) {\r\n case types.SHOW_TOAST_MESSAGE:\r\n return {\r\n ...state,\r\n message: action.payload?.message,\r\n type: action.payload?.status,\r\n isOpen: true,\r\n };\r\n case types.HIDE_TOAST_MESSAGE:\r\n return { ...state, isOpen: false, message: \"\", type: \"\" };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from \"redux\";\r\nimport loginReducer from \"./loginReducer\";\r\nimport manageUser from \"./manageUserReducer\";\r\nimport welcomeReducer from \"./welcomeReducer\";\r\nimport toastReducer from \"./toastReducer\";\r\nimport { reducer as oidcreducer } from \"redux-oidc\";\r\n\r\nconst root = combineReducers({\r\n login: loginReducer,\r\n oidc: oidcreducer,\r\n managedUsers: manageUser,\r\n toastsReducer: toastReducer,\r\n welcome: welcomeReducer,\r\n});\r\nexport default root;\r\n","import { createStore, applyMiddleware } from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport root from \"../reducers/rootReducer\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\n\r\nconst configureStore = () => {\r\n return createStore(root, composeWithDevTools(applyMiddleware(thunk)));\r\n};\r\n\r\nexport default configureStore;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.scss\";\r\nimport App from \"./App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport { Provider } from \"react-redux\";\r\nimport configureStore from \"./store/configStore\";\r\nimport { OidcProvider } from \"redux-oidc\";\r\nimport userManager from \"./utils/authUtil\";\r\nimport { loadUser } from \"redux-oidc\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core\";\r\nconst store = configureStore();\r\nconst theme = createMuiTheme();\r\n\r\ntheme.overrides = {\r\n MuiTypography: {\r\n body1: {\r\n fontSize: \"1.6rem\",\r\n },\r\n h6: {\r\n fontSize: \"2rem\",\r\n },\r\n },\r\n MuiButton: {\r\n text: {\r\n fontSize: \"1.4rem\",\r\n },\r\n },\r\n};\r\n\r\nloadUser(store, userManager);\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}