{"version":3,"sources":["components/CustomBlock.js","assets/svg/logo.svg","assets/svg/icon.svg","components/LogoBlock.js","constants/constants.js","components/HeaderBlock.js","components/Overlay.js","components/Image.js","components/Drawer.js","components/ListContainer.js","components/ListItem.js","components/Button.js","helpers/helper.js","components/PrivateRoute.js","components/FormBlock.js","components/InputBlock.js","components/Section.js","components/ContentBlock.js","components/LoadingScreen.js","helpers/validators/User/UserLoginValidator.js","helpers/Alert.js","services/interceptor/axiosInterceptor.js","services/api.service.js","services/user.service.js","pages/LoginPage.js","components/TextHeader.js","components/ContentHeader.js","pages/ForgotPasswordPage.js","components/ActionStrip.js","components/BottomSheet.js","components/CheckboxBlock.js","pages/DashboardPage.js","components/MediaBlock.js","components/FileUploadBlock.js","components/ActionBlock.js","helpers/validators/product-management/CompanyCreateValidator.js","helpers/validators/product-management/CompanyBonusLevelValidator.js","services/company.service.js","services/companybonuslevel.service.js","pages/user-management/CreateNewClientPage.js","components/SelectBlock.js","helpers/validators/User/UserSaveValidator.js","pages/user-management/UserManagePage.js","helpers/validators/product-management/MediaTypeCreateValidator.js","services/mediatype.service.js","pages/product-management/CreateNewMediaTypePage.js","components/TextAreaBlock.js","services/category.service.js","helpers/validators/product-management/CategoryCreateValidator.js","pages/product-management/CreateNewCategoryPage.js","helpers/validators/product-management/ProductCreateValidator.js","services/product.service.js","pages/product-management/CreateNewProductPage.js","components/TextEditorBlock.js","services/salestool.service.js","helpers/validators/sales-management/SalesToolCreateValidator.js","pages/sales-management/CreateNewSalesToolPage.js","pages/sales-management/SalesToolDetailsPage.js","components/ContentModal.js","services/quote.service.js","helpers/validators/sales-management/QuoteCreateValidator.js","pages/sales-management/QuoteSelectedCategoryPage.js","pages/listing-management/QuoteListingPage.js","pages/listing-management/MediaTypeListingPage.js","pages/listing-management/CategoryListingPage.js","pages/listing-management/ProductListingPage.js","pages/listing-management/SalesToolListingPage.js","pages/user-management/CompanyListingPage.js","pages/user-management/UserListingPage.js","pages/user-management/ClientListManagePage.js","pages/samples/FormSamplePage.js","pages/sales-management/QuoteManagePage.js","components/SmallCard.js","pages/sales-management/CampaignSummaryPage.js","Routes.js","App.js","reportWebVitals.js","index.js"],"names":["CustomBlock","props","className","style","children","LogoBlock","containerStyle","imageClassName","src","type","LogoIcon","Logo","height","constants","API_URL","process","REQUIRE_INTERCEPTORS","requestHandlerEnabled","responseHandlerEnabled","STORAGE_URL","HeaderBlock","backgroundColor","toLeft","to","onClick","onClickLeft","companyLogo","justifyContent","title","noDrawer","toRight","onClickRight","iconRight","size","color","Overlay","AnimatedLink","animated","Link","animateShow","useSpring","opacity","from","overlayDarkness","normal","dark","Image","onPress","roundCorners","source","Drawer","open","closeOnMaskPress","position","left","right","ListContainer","orderedList","ListItem","iconLeft","icon","Button","sizes","lg","md","sm","xs","uppercaseText","disabled","loading","text","target","GetJsonFromLocalStorage","key","JSON","parse","localStorage","getItem","IsUserLoggedIn","loggedInUser","jwt_decode","token","Role","ex","LoggedInUserRole","decoded","LoggedInCompanyId","CompanyId","ConvertJsonToFormData","json","form_data","FormData","Array","isArray","forEach","item","append","includes","innerKey","SetOptionModel","name","value","undefined","label","FormatToUSDate","date","momentDate","moment","isValid","format","GetMonthOptionsForDuration","duration","dates","startOfCurrentMonth","Date","getUTCFullYear","getUTCMonth","push","toLocaleString","month","i","nextMonth","setMonth","PrivateRoute","Component","component","rest","useState","drawerOpen","setDrawerOpen","body","document","querySelector","menuItems","id","navigation","toggleDrawer","setTimeout","enableBodyScroll","disableBodyScroll","render","helper","map","menu","index","removeItem","FormBlock","onSubmit","InputBlock","inputStates","error","warning","success","inputLabel","inputState","top","leftIconOnClick","bordered","autoFocus","paddingLeft","rightIconOnClick","clearAction","clearActionOnClick","errorMessage","warningMessage","successMessage","Section","removeContainer","fullWidth","rowClassName","rowStyle","ContentBlock","cols","12","11","10","9","8","7","6","5","4","3","2","columnStyle","LoadingScreen","Yup","shape","username","required","password","Alert","model","toast","message","POSITION","TOP_RIGHT","isEnabled","config","property","hasOwnProperty","requestHandler","request","a","headers","axiosInstance","axios","create","baseURL","interceptors","use","response","data","successHandler","err","console","log","Promise","resolve","then","res","status","window","location","origin","Message","Error","errorHandler","endpointOrigin","Authenticate","post","ForgotPassword","GetAll","companyId","get","Get","Check","Save","SubmitUserClientList","GetUserClientList","RemoveUserClientList","GetUsersClientList","userId","UpdateUsersClientList","clients","GetUserClientListAudits","userClientListId","UpdatePassword","LoginPage","setLoading","AuthenticateUser","values","setSubmitting","setItem","stringify","history","catch","formik","useFormik","initialValues","validationSchema","UserLoginValidator","handleSubmit","getFieldProps","touched","errors","autoCapitalize","tabIndex","isSubmitting","TextHeader","textSize","mdlg","centered","iconLeftClassName","subtitle","subtitleClassName","ContentHeader","headerSize","primaryButtonText","primaryButtonIconLeft","primaryButtonTo","primaryButtonOnClick","primaryButtonBackgroundColor","buttonSize","uppercaseButtonText","primaryButtonLoading","secondaryButtonText","secondaryButtonTo","secondaryButtonOnClick","secondaryButtonBackgroundColor","secondaryButtonLoading","headerIcon","headerIconContainerClass","headerIconTo","headerIconOnClick","ForgotPasswordPage","ForgotPasswordSubmit","ActionStrip","iconBgColor","BottomSheet","rounded","full","half","previewHeight","transform","iconContainerClass","iconContainerStyle","CheckboxBlock","labelClassName","for","DashboardPage","role","Helper","marginTop","MediaBlock","media","videoUrl","containerBackground","clearSources","iconBackground","closeActionBackground","url","controls","width","imagePath","registerPlugin","FilePondPluginImageExifOrientation","FilePondPluginImagePreview","FileUploadBlock","method","setMethod","path","setMedia","setVideoUrl","containerClassName","allowMultiple","labelIdle","sort","b","sortOrder","hasCheckbox","checked","isIncludedInSummaryReport","tempArr","checkboxAction","marginLeft","setVideoPath","onChange","e","ActionBlock","fullAction","toggleIconPosition","toggleIconBackground","toggleIconTo","toggleIconOnClick","toggleIcon","actionsPosition","primaryActionText","primaryActionBackground","primaryActionTo","primaryActionOnClick","secondaryActionText","secondaryActionBackground","secondaryActionTo","secondaryActionOnClick","businessName","initialUser","confirmPassword","oneOf","breakpoint","fileHandler","DeleteCompanyImage","Toggle","Delete","timeoutId","CreateNewClientPage","urlId","pathname","split","pop","parseInt","initialState","contactName","contactEmail","contactPhone","logoFile","isActive","canAccessSalesTools","firstName","lastName","phoneNumber","email","isAdmin","isSalesCoach","bonusLevelId","setBonusLevelId","bonusLevelInitialState","reward","isChecking","setIsChecking","isCheckingBonusLevel","setIsCheckingBonusLevel","isUsed","setIsUsed","company","setCompany","bonusLevels","setBonusLevels","bonusLevel","setBonusLevel","setLogoFile","logoPath","setLogoPath","useEffect","CompanyService","LoadBonusLevels","CompanyBonusLevelService","enableReinitialize","CompanyCreateValidator","file","setFieldValue","UserService","CreateCompany","bonusFormik","CompanyBonusLevelValidator","SaveBonusLevel","paddingBottom","marginBottom","onKeyUp","clearTimeout","setFieldTouched","mask","defaultChecked","isMonthsRequired","onupdatefiles","level","SelectBlock","placeholder","multiSelect","classNamePrefix","isDisabled","UserManagePage","setUserId","isPasswordModalOpen","setIsPasswordModalOpen","isLocked","setPassword","password2","setPassword2","companies","setCompanies","selectedCompany","setSelectedCompany","user","setUser","LoadCompanies","handlePasswordModalOnClose","defaultCompanyId","companySaved","find","x","UserSaveValidator","SaveUser","options","onBlur","option","Modal","show","onHide","Header","closeButton","Title","Body","Footer","alert","min","CreateNewMediaTypePage","mediaTypeId","submissionType","setSubmissionType","mediaType","setMediaType","MediaTypeService","MediaTypeCreateValidator","CreateMediaType","TextAreBlock","onFocus","showAll","GetSelectedForQuote","quoteId","DeleteCategoryImage","categoryId","DeleteCategoryVideo","nullable","CreateNewCategoryPage","setCategoryId","description","imageFile","videoFile","videoLink","mediaTypes","setMediaTypes","selectedMediaType","setSelectedMediaType","category","setCategory","setImageFile","setImagePath","setVideoFile","videoPath","CategoryService","SetDataFromCategory","LoadMediaTypes","mediaTypeSaved","CategoryCreateValidator","CreateCategory","TextAreaBlock","price","audienceSize","GetAllForCategory","DeleteProductImage","productImageId","DeleteProductVideo","productId","SetProductImageIncludeInSummary","shouldInclude","SortSampleImages","sortOrders","CreateNewProductPage","isSortModalOpen","setIsSortModalOpen","sortList","setSortList","bestUsedFor","imageFiles","sampleVideoFile","salesVideoFile","canBeBonus","hasServiceDuration","usesFreeInput","categories","setCategories","selectedCategory","setSelectedCategory","product","setProduct","primaryImageFile","setPrimaryImageFile","primaryImagePath","setPrimaryImagePath","setImageFiles","imageFilePaths","setImageFilePaths","setSampleVideoFile","sampleVideoPath","setSampleVideoPath","setSalesVideoFile","salesVideoPath","setSalesVideoPath","GetProductById","ProductService","SetDataFromProduct","LoadCategories","_","productImage","isPrimary","filter","categorySaved","ProductCreateValidator","CreateProduct","finally","length","alignItems","display","flexDirection","Desc","onDragEnd","result","destination","list","startIndex","endIndex","splice","removed","droppableId","droppableProvided","ref","innerRef","draggableId","draggableProvided","draggableProps","dragHandleProps","TextEditorBlock","state","editorState","EditorState","createWithContent","ContentState","createFromBlockArray","convertFromHTML","toolbar","defaultEditorState","onEditorStateChange","changeText","draftToHtml","convertToRaw","getCurrentContent","replace","wrapperClassName","editorClassName","toolbarClassName","DeleteSalesToolVideo","salestoolId","availableOn","CreateNewSalesToolPage","emailBody","setEmailBody","weeklySalesTalkingPoints","setWeeklySalesTalkingPoints","salesToolId","setSalesToolId","availableUntil","emailSubject","salesTool","setSalesTool","SalesToolService","SalesToolValidator","CreateSalesTool","dateFormat","SalesToolDetailsPage","triggerOnce","direction","delay","whiteSpace","navigator","clipboard","writeText","r","createRange","selectNode","getElementById","getSelection","removeAllRanges","addRange","execCommand","ContentModal","contentHeader","contentDescription","additionalDetails","additionalDetailsHeader","primaryVideoUrl","primaryVideoHeader","secondaryVideoUrl","secondaryVideoHeader","primaryImageUrl","primaryImageHeader","secondaryImageUrl","secondaryImageHeader","multipleImageList","multipleImageListHeader","items","original","thumbnail","SaveClient","client","SaveNote","note","SaveProduct","SetQuoteProductMonths","DeleteQuote","SubmitQuote","GetQuoteProducts","GetBonusBuyNumbers","DeleteQuoteProduct","quoteProductId","GetQuoteSummaryData","hashId","SaveQuoteLevelMonths","months","SendQuoteSummaryEmail","emails","DuplicateQuote","IsMonthsRequired","QuoteSelectedCategoryPage","setShow","quoteCategory","QuoteCreateValidator","QuoteService","SubmitCategoriesForQuote","isSearchable","remove","Set","QuoteListingPage","setData","loggedInUserName","LoadQuotes","columns","print","download","customBodyRenderLite","dataIndex","confirm","swal","buttons","dangerMode","willDelete","createdOn","filterList","isSubmitted","selectableRows","searchOpen","searchAlwaysOpen","MediaTypeListingPage","CategoryListingPage","enableNestedDataAccess","ProductListingPage","LoadProducts","SalesToolListingPage","IsSalesCoach","CompanyListingPage","UserListingPage","LoadUsers","minWidth","ClientListManagePage","saving","setSaving","setClient","setType","setClients","audits","setAudits","showAudit","setShowAudit","userClientList","reorderedItem","provided","droppableProps","toFixed","Dialog","aria-labelledby","aria-describedby","DialogTitle","DialogContent","audit","change","changeDate","DialogActions","FormSamplePage","propNameVisible","setPropNameVisible","isDefault","setIsDefault","QuoteManagePage","initialQuoteState","quoteProduct","bottomSheetOpen","setBottomSheetOpen","quote","setQuote","products","setProducts","allCategories","setAllCategories","quoteItems","setQuoteItems","setNote","currentTotal","currentTotalBonus","currentRemainingBonus","amountUntilNextBonus","nextBonusAmount","bonusData","setBonusData","showNote","setShowNote","showCategorySelect","setShowCategorySelect","showCategorySample","setShowCategorySample","showProductSample","setShowProductSample","setIsMonthsRequired","selectedCategoryIndex","setSelectedCategoryIndex","durationOptions","setErrorMessage","hash","LoadQuoteCategories","LoadQuoteItems","LoadCategorySampleModal","SaveQuoteProduct","newQuoteItems","filteredQuoteItems","isBonus","errList","quantity","AlertBox","defaultValue","disalbed","variant","onClose","dismissible","Heading","FormControl","Chip","isMulti","join","toString","DialogContentText","paddingRight","fullScreen","padding","drop","SmallCard","textPosition","contentPosition","CampaignSummaryPage","loggedIn","levelMonths","setLevelMonths","levelSpending","setLevelSpending","showSend","setShowSend","setEmail","sending","setSending","monthlySpendData","setMonthlySpendData","UpdateLevelMonthsAndSpending","handleMonthlySpendData","monthPriceMap","entry","trimmedMonth","trim","Object","keys","obj","findResult","bonusBuyOptions","companyBonusLevelData","amount","percentage","mediaLabels","mediaUsageData","mediaDistribution","distribution","spendingDistribution","spent","totalSpending","sampleImages","productImages","normalBuys","bonusBuys","search","normalColumns","bonusColumns","textToCopy","textarea","createElement","appendChild","select","removeChild","copyToClipboard","fontSize","totalAudienceSize","cpm","whyChoseThisTactic","concat","theme","VictoryTheme","material","y","labels","datum","orientation","itemsPerRow","gutter","domainPadding","tickFormat","tickLabels","angle","axisLabelComponent","dy","dependentAxis","overflow","Table","striped","hover","showPlayButton","Routes","exact","FormExamplePage","App","autoClose","hideProgressBar","newestOnTop","closeOnClick","rtl","pauseOnFocusLoss","draggable","pauseOnHover","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.97469485.chunk.js","sourcesContent":["// DEPENDENCIES\r\nimport React from 'react';\r\n\r\nconst CustomBlock = (props) => {\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport default CustomBlock;","export default __webpack_public_path__ + \"static/media/logo.86bc0d44.svg\";","export default __webpack_public_path__ + \"static/media/icon.62b2588b.svg\";","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n// ASSETS\r\nimport Logo from '../assets/svg/logo.svg';\r\nimport LogoIcon from '../assets/svg/icon.svg';\r\n\r\nconst LogoBlock = (props) => {\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default LogoBlock;\r\n","const constants = {\r\n API_URL: process.env.REACT_APP_ENVIRONMENT === \"production\" ? process.env.REACT_APP_LIVE_API_URL : process.env.REACT_APP_DEV_API_URL,\r\n REQUIRE_INTERCEPTORS: {\r\n requestHandlerEnabled: true,\r\n responseHandlerEnabled: true\r\n },\r\n STORAGE_URL: \"https://quickquotedev.s3.us-east-2.amazonaws.com/\"\r\n};\r\n\r\nexport default constants;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// ICONS\r\nimport { HiMenuAlt2 } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport LogoBlock from './LogoBlock';\r\n// ASSETS\r\nimport LogoIcon from '../assets/svg/icon.svg';\r\n// SERVICES AND HELPERS\r\nimport constants from '../constants/constants';\r\n\r\nconst HeaderBlock = (props) => {\r\n\r\n return (\r\n \r\n {\r\n props.toLeft == \"\" ?
:\r\n { }}\r\n className=\"header-left\"\r\n >\r\n \r\n \r\n }\r\n\r\n \r\n {\r\n props.companyLogo ?\r\n :\r\n

\r\n {props.title}\r\n

\r\n }\r\n \r\n \r\n {\r\n !props.noDrawer &&\r\n { }}\r\n className=\"header-right\"\r\n >\r\n {\r\n props.iconRight ? props.iconRight : \r\n }\r\n \r\n }\r\n\r\n \r\n );\r\n}\r\n\r\nexport default HeaderBlock;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { useSpring, animated, styled } from 'react-spring';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Overlay = (props) => {\r\n\r\n const AnimatedLink = animated(Link);\r\n const animateShow = useSpring({ opacity: 1, from: { opacity: 0 } })\r\n const overlayDarknessOptions = {\r\n normal: \"normal\",\r\n dark: \"dark\"\r\n }\r\n\r\n return (\r\n { }}\r\n >\r\n \r\n );\r\n}\r\n\r\nexport default Overlay;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\n\r\nconst Image = (props) => {\r\n\r\n return (\r\n <>\r\n {\r\n props.to || props.onPress ?\r\n \r\n \r\n \r\n :\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default Image;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// ICONS\r\nimport { IoClose } from \"react-icons/io5\";\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Overlay from './Overlay';\r\nimport Image from \"./Image\";\r\n// ASSETS\r\nimport Logo from '../assets/svg/logo.svg'\r\n\r\nconst Drawer = (props) => {\r\n\r\n const drawerPosition = {\r\n left: \"left\",\r\n right: \"right\",\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n props.open ?\r\n { }}\r\n overlayDarkness=\"dark\"\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 {props.children}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Drawer;","// DEPENDECIES\r\nimport React from 'react';\r\n\r\nconst ListContainer = (props) => {\r\n\r\n return (\r\n <>\r\n {\r\n props.orderedList ?\r\n
    \r\n {props.children}\r\n
\r\n :\r\n
    \r\n {props.children}\r\n
\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ListContainer;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENT\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst ListItem = (props) => {\r\n\r\n return (\r\n <>\r\n
  • \r\n {props.iconLeft}\r\n {\r\n props.title ?\r\n { }}\r\n >\r\n {props.title}\r\n : <>\r\n }\r\n\r\n {props.iconRight}\r\n\r\n {\r\n props.icon ?\r\n { }}\r\n >\r\n {props.icon}\r\n : <>\r\n }\r\n
  • \r\n \r\n );\r\n}\r\n\r\nexport default ListItem;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// ICONS\r\nimport { CgSpinner } from 'react-icons/cg';\r\n\r\nconst Button = (props) => {\r\n\r\n const sizes = {\r\n lg: \"--lg\",\r\n md: \"--md\",\r\n sm: \"--sm\",\r\n xs: \"--xs\"\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n props.type ?\r\n { }}\r\n className={`button${props.size ? sizes[props.size] : \"\"} ${props.className ? props.className : \"\"} ${props.uppercaseText ? \"uppercase\" : \"\"}`}\r\n style={props.style}\r\n disabled={props.disabled}\r\n type={props.type}\r\n >\r\n {\r\n props.iconLeft ? props.iconLeft : <>\r\n }\r\n {\r\n props.loading ?\r\n : props.text\r\n }\r\n \r\n :\r\n { }}\r\n className={`button${props.size ? sizes[props.size] : \"\"} ${props.className ? props.className : \"\"} ${props.uppercaseText ? \"uppercase\" : \"\"}`}\r\n style={props.style}\r\n disabled={props.disabled}\r\n >\r\n {\r\n props.iconLeft ? props.iconLeft : <>\r\n }\r\n {\r\n props.loading ?\r\n : props.text\r\n }\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default Button;","import jwt_decode from \"jwt-decode\";\r\nimport moment from 'moment';\r\n\r\nconst GetJsonFromLocalStorage = (key) => JSON.parse(localStorage.getItem(key));\r\n\r\nconst GetLoggedInUserToken = () => GetJsonFromLocalStorage('user').token;\r\n\r\nconst SaveItemInLocalStorage = (key, value) => localStorage.setItem(key, JSON.stringify(value));\r\n\r\nconst IsUserLoggedIn = () => {\r\n let loggedInUser = GetJsonFromLocalStorage('user');\r\n if (loggedInUser === null)\r\n return false;\r\n try {\r\n var decoded = jwt_decode(loggedInUser.token);\r\n\r\n return decoded.Role;\r\n } catch (ex) {\r\n return false;\r\n }\r\n\r\n}\r\n\r\nconst LoggedInUserRole = () => {\r\n let loggedInUser = GetJsonFromLocalStorage('user');\r\n if (loggedInUser === null)\r\n return false;\r\n try {\r\n var decoded = jwt_decode(loggedInUser.token);\r\n\r\n return decoded.Role == \"\" ? -1 : decoded.Role;\r\n } catch (ex) {\r\n return false;\r\n }\r\n}\r\n\r\nconst LoggedInUserId = () => {\r\n let loggedInUser = GetJsonFromLocalStorage('user');\r\n if (loggedInUser === null)\r\n return false;\r\n try {\r\n var decoded = jwt_decode(loggedInUser.token);\r\n\r\n return decoded.UserId;\r\n } catch (ex) {\r\n return false;\r\n }\r\n}\r\n\r\nconst LoggedInCompanyId = () => {\r\n let loggedInUser = GetJsonFromLocalStorage('user');\r\n if (loggedInUser === null)\r\n return false;\r\n try {\r\n var decoded = jwt_decode(loggedInUser.token);\r\n\r\n return decoded.CompanyId;\r\n } catch (ex) {\r\n return false;\r\n }\r\n}\r\n\r\nconst IsLoggedInUserSalesCoach = () => {\r\n let loggedInUser = GetJsonFromLocalStorage('user');\r\n if (loggedInUser === null)\r\n return false;\r\n try {\r\n var decoded = jwt_decode(loggedInUser.token);\r\n\r\n return decoded.IsSalesCoach;\r\n } catch (ex) {\r\n return false;\r\n }\r\n}\r\n\r\nconst ConvertJsonToFormData = (json) => {\r\n var form_data = new FormData();\r\n for (var key in json) {\r\n if (Array.isArray(json[key]))\r\n json[key].forEach(item => form_data.append(key, item));\r\n else if (typeof json[key] == 'object' && !key.includes('File')) {\r\n for (var innerKey in json[key])\r\n form_data.append(`${key}[0][${innerKey}]`, json[key][innerKey]);\r\n }\r\n else\r\n form_data.append(key, (json[key] === null) ? \"\" : json[key]);\r\n }\r\n\r\n return form_data;\r\n}\r\n\r\nconst SetOptionModel = (name, value = null) => {\r\n return name == undefined ? null : { label: name, value: value ? value : name };\r\n}\r\n\r\nconst FormatToUSDate = (date) => {\r\n var momentDate = moment(date);\r\n\r\n return (momentDate.isValid()) ? momentDate.format(\"MM/DD/yyyy\") : null;\r\n}\r\n\r\nconst GetMonthOptionsForDuration = (duration) => {\r\n var dates = [];\r\n var startOfCurrentMonth = new Date(new Date().getUTCFullYear(), new Date().getUTCMonth(), 1);\r\n dates.push(startOfCurrentMonth.toLocaleString('default', { month: 'long' }) + ' ' + startOfCurrentMonth.getUTCFullYear());\r\n for (var i = 1; i <= duration; i++) {\r\n var nextMonth = new Date(startOfCurrentMonth.setMonth(startOfCurrentMonth.getUTCMonth() + 1));\r\n dates.push(nextMonth.toLocaleString('default', { month: 'long' }) + ' ' + nextMonth.getUTCFullYear());\r\n }\r\n\r\n return dates;\r\n}\r\n\r\nconst ReOrderDnd = (list, startIndex, endIndex) => {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n return result.map((x, i) => ({ ...x, sortOrder: i }));\r\n};\r\n\r\nexport {\r\n GetJsonFromLocalStorage,\r\n GetLoggedInUserToken,\r\n SaveItemInLocalStorage,\r\n IsUserLoggedIn,\r\n LoggedInUserRole,\r\n LoggedInUserId,\r\n LoggedInCompanyId,\r\n ConvertJsonToFormData,\r\n SetOptionModel,\r\n FormatToUSDate,\r\n IsLoggedInUserSalesCoach,\r\n GetMonthOptionsForDuration,\r\n ReOrderDnd\r\n}","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\r\n// COMPONENTS\r\nimport { Route, Redirect } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport HeaderBlock from '../components/HeaderBlock';\r\nimport Drawer from '../components/Drawer';\r\nimport ListContainer from '../components/ListContainer';\r\nimport ListItem from './ListItem';\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../helpers/helper'\r\n\r\nexport const PrivateRoute = ({ component: Component, ...rest }) => {\r\n\r\n const [drawerOpen, setDrawerOpen] = useState(false);\r\n const body = document.querySelector('body');\r\n\r\n const menuItems = [\r\n { id: 1, name: \"Dashboard\", navigation: \"/dashboard\" },\r\n { id: 2, name: \"Start New Campaign\", navigation: \"/new-campaign\" },\r\n // { id: 3, name: \"Campaign Summary\", navigation: \"/campaign-summary\" },\r\n // { id: 3, name: \"View All Quotes\", navigation: \"/quotes\" },\r\n // { id: 4, name: \"View Media Types\", navigation: \"/media-types\" },\r\n // { id: 5, name: \"View Categories\", navigation: \"/categories\" },\r\n // { id: 6, name: \"View Products\", navigation: \"/products\" },\r\n // { id: 7, name: \"View Companies\", navigation: \"/companies\" },\r\n // { id: 8, name: \"View Users\", navigation: \"/users\" },\r\n // { id: 8, name: \"View Sales Tools\", navigation: \"/sales-tools\" },\r\n ]\r\n\r\n const closeDrawer = () => {\r\n setTimeout(() => {\r\n setDrawerOpen(false);\r\n enableBodyScroll(body);\r\n }, 250)\r\n }\r\n\r\n const toggleDrawer = () => {\r\n setDrawerOpen(!drawerOpen);\r\n if (!drawerOpen) {\r\n disableBodyScroll(body);\r\n } else {\r\n setTimeout(() => {\r\n enableBodyScroll(body);\r\n }, 500);\r\n }\r\n }\r\n\r\n return (\r\n {\r\n const isAuthenticated = helper.IsUserLoggedIn();\r\n\r\n if (isAuthenticated) {\r\n return (\r\n <>\r\n toggleDrawer()}\r\n />\r\n \r\n toggleDrawer()}\r\n closeOnMaskPress\r\n >\r\n \r\n {\r\n menuItems.map((menu, index) =>\r\n closeDrawer()}\r\n />\r\n )\r\n }\r\n \r\n\r\n \r\n localStorage.removeItem('user')}\r\n />\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return \r\n }} />\r\n );\r\n}","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n\r\nconst FormBlock = (props) => {\r\n return (\r\n <>\r\n
    \r\n {props.children}\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default FormBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport { useSpring, animated } from 'react-spring';\r\nimport \"flatpickr/dist/themes/material_green.css\";\r\nimport Flatpickr from \"react-flatpickr\";\r\n// COMPONENTS\r\nimport InputMask from 'react-input-mask';\r\nimport { Link } from 'react-router-dom';\r\n// ICONS\r\nimport { AiOutlineLoading, AiOutlineBarcode } from 'react-icons/ai';\r\nimport { GoSearch } from 'react-icons/go';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst InputBlock = (props) => {\r\n const errorMessageSuffix = \"is Required\";\r\n const inputStates = {\r\n error: \"error\",\r\n warning: \"warning\",\r\n success: \"success\",\r\n disabled: \"disabled\"\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {\r\n props.inputLabel ?\r\n \r\n {props.inputLabel}\r\n : <>\r\n }\r\n \r\n \r\n {\r\n { }}\r\n >\r\n {props.iconLeft}\r\n \r\n }\r\n \r\n\r\n {\r\n props.type == 'date' ?\r\n :\r\n \r\n }\r\n\r\n \r\n {\r\n props.loading ?\r\n \r\n :\r\n { }}\r\n >\r\n {props.iconRight}\r\n \r\n }\r\n {\r\n props.clearAction ?\r\n { }}\r\n >\r\n \r\n : <>\r\n }\r\n\r\n \r\n \r\n {\r\n props.inputState === 'error' ?\r\n \r\n {props.errorMessage ? props.errorMessage : props.inputLabel ? (props.inputLabel + \" \" + errorMessageSuffix) : \"Error message undefined\"}\r\n : <>\r\n }\r\n {\r\n props.inputState === 'warning' ?\r\n \r\n {props.warningMessage}\r\n : <>\r\n }\r\n {\r\n props.inputState === 'success' ?\r\n \r\n {props.successMessage}\r\n : <>\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default InputBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\n\r\nconst Section = (props) => {\r\n\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Section;","// DEPENDENCIES\r\nimport React from 'react';\r\n\r\nconst ContentBlock = (props) => {\r\n\r\n const columnSizes = {\r\n 12: \"col-lg-12 col-md-12\",\r\n 11: \"col-lg-11 col-md-11\",\r\n 10: \"col-lg-10 col-md-10\",\r\n 9: \"col-lg-9 col-md-9\",\r\n 8: \"col-lg-8 col-md-8\",\r\n 7: \"col-lg-7 col-md-7\",\r\n 6: \"col-lg-6 col-md-6\",\r\n 5: \"col-lg-5 col-md-5\",\r\n 4: \"col-lg-4 col-md-4\",\r\n 3: \"col-lg-3 col-md-3\",\r\n 2: \"col-lg-2 col-md-2\",\r\n }\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport default ContentBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS \r\nimport { Fade } from 'react-awesome-reveal';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai'\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport LogoBlock from './LogoBlock';\r\n\r\n\r\nconst LoadingScreen = (props) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default LoadingScreen;","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n username: Yup.string().required(\"Please enter your username\"),\r\n password: Yup.string().required(\"Please enter your password\")\r\n});","import { toast } from 'react-toastify';\r\n\r\nconst Alert = (model) => {\r\n model.success ? toast.success(model.message, { position: toast.POSITION.TOP_RIGHT}) : toast.error(model.message, { position: toast.POSITION.TOP_RIGHT})\r\n} \r\n\r\nexport { Alert };","import { GetLoggedInUserToken } from '../../helpers/helper';\r\nimport { Alert } from \"../../helpers/Alert\";\r\n\r\nconst isEnabled = (config, property) => config.hasOwnProperty(property) && config[property];\r\n\r\n//handles requests going from app to server\r\nconst requestHandler = async (request) => {\r\n if (isEnabled(request, 'requestHandlerEnabled')) {\r\n request.headers['Authorization'] = 'Bearer ' + GetLoggedInUserToken();\r\n }\r\n\r\n request.headers['Content-Type'] = !isEnabled(request, 'fileHandler') ? 'application/json' : 'multipart/form-data';\r\n request.headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS';\r\n return request;\r\n}\r\n\r\n//handles responses coming from server to app\r\nconst successHandler = (response) => {\r\n if (isEnabled(response.config, 'responseHandlerEnabled')) {\r\n return response.data;\r\n }\r\n\r\n return response;\r\n}\r\n\r\nconst errorHandler = (response) => {\r\n console.log(response);\r\n if (isEnabled(response.config, 'responseHandlerEnabled')) {\r\n // console.log(\"I am handling error responses\");\r\n }\r\n\r\n Promise.resolve(response.response).then(res => {\r\n if (typeof (res) === \"undefined\") {\r\n Alert({ success: false, message: \"Oops! Something went wrong on the server. Please try again\" });\r\n return;\r\n }\r\n\r\n //if 401 redirect to login page\r\n if (res.status === 401) {\r\n localStorage.removeItem('user');\r\n window.location = window.origin + '/';\r\n }\r\n //if not authorized redirect to dashboard\r\n if (res.status === 403) {\r\n window.location = window.origin + '/';\r\n }\r\n Alert({ success: false, message: res.data.Message });\r\n });\r\n\r\n throw Error(\"Error\");\r\n}\r\n\r\nexport {\r\n requestHandler,\r\n successHandler,\r\n errorHandler\r\n}","import axios from 'axios';\r\nimport { requestHandler, successHandler, errorHandler } from './interceptor/axiosInterceptor';\r\nimport constants from \"../constants/constants\";\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: constants.API_URL + 'api/'\r\n})\r\n\r\naxiosInstance.interceptors.request.use(\r\n request => requestHandler(request)\r\n)\r\n\r\naxiosInstance.interceptors.response.use(\r\n response => successHandler(response),\r\n err => errorHandler(err)\r\n)\r\n\r\nexport default axiosInstance;","import constants from '../constants/constants';\r\nimport axiosInstance from './api.service'\r\n\r\nconst endpointOrigin = \"User/\";\r\n\r\nconst Authenticate = async (model) => await axiosInstance.post(endpointOrigin + 'Authenticate', model, {\r\n requestHandlerEnabled: false,\r\n responseHandlerEnabled: true\r\n})\r\n\r\nconst ForgotPassword = async (username) => await axiosInstance.post(endpointOrigin + `ForgotPassword?username=${username}`, {}, {\r\n requestHandlerEnabled: false,\r\n responseHandlerEnabled: true\r\n})\r\n\r\nconst GetAll = async (companyId) => await axiosInstance.get(endpointOrigin + `GetAll?companyId=${companyId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + `?id=${id}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Check = async (username) => await axiosInstance.get(endpointOrigin + `Check?username=${username}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SubmitUserClientList = async (model) => await axiosInstance.post(endpointOrigin + 'SubmitUserClientList', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetUserClientList = async (id) => await axiosInstance.get(endpointOrigin + `GetUserClientList?id=${id}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst RemoveUserClientList = async (id) => await axiosInstance.get(endpointOrigin + `RemoveUserClientList?id=${id}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetUsersClientList = async (userId) => await axiosInstance.get(endpointOrigin + `GetUsersClientList?userId=${userId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst UpdateUsersClientList = async (clients) => await axiosInstance.post(endpointOrigin + 'UpdateUsersClientList', clients, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetUserClientListAudits = async (userClientListId) => await axiosInstance.get(endpointOrigin + `GetUserClientListAudits?userClientListId=${userClientListId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst UpdatePassword = async (userId, password) => await axiosInstance.get(endpointOrigin + `UpdatePassword?id=${userId}&password=${password}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n Authenticate,\r\n ForgotPassword,\r\n GetAll,\r\n Get,\r\n Check,\r\n Save,\r\n GetUserClientList,\r\n SubmitUserClientList,\r\n RemoveUserClientList,\r\n GetUsersClientList,\r\n UpdateUsersClientList,\r\n GetUserClientListAudits,\r\n UpdatePassword\r\n}","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n\r\n// ICONS\r\nimport { BsFillLightningFill, BsLightningFill, BsTagFill } from 'react-icons/bs';\r\nimport { FaClipboardList, FaBoxOpen } from 'react-icons/fa';\r\nimport { IoPersonAddSharp } from 'react-icons/io5';\r\nimport { HiMenuAlt2 } from 'react-icons/hi';\r\n\r\n// CUSTOM COMPONENTS\r\nimport FormBlock from '../components/FormBlock';\r\nimport InputBlock from '../components/InputBlock';\r\nimport Section from '../components/Section';\r\nimport ContentBlock from '../components/ContentBlock';\r\nimport CustomBlock from '../components/CustomBlock';\r\nimport LogoBlock from '../components/LogoBlock';\r\nimport Button from '../components/Button';\r\nimport LoadingScreen from '../components/LoadingScreen';\r\nimport UserLoginValidator from '../helpers/validators/User/UserLoginValidator';\r\n\r\n// ASSETS\r\nimport { Authenticate } from '../services/user.service';\r\nimport { IsUserLoggedIn, SaveItemInLocalStorage } from '../helpers/helper';\r\nimport { useFormik } from 'formik';\r\n\r\nconst LoginPage = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const AuthenticateUser = (values, setSubmitting) => {\r\n setLoading(true);\r\n Authenticate(values).then(res => {\r\n SaveItemInLocalStorage(\"user\", res);\r\n setSubmitting(false);\r\n props.history.push(IsUserLoggedIn() === \"Admin\" ? \"/dashboard\" : \"/dashboard\");\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n console.log(ex);\r\n })\r\n }\r\n\r\n\r\n const formik = useFormik({\r\n initialValues: { username: \"\", password: \"\" },\r\n validationSchema: UserLoginValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n AuthenticateUser(values, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {/* \r\n Forgot Password?\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 LoginPage;","// DEPENDENCIES\r\nimport React from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst TextHeader = (props) => {\r\n\r\n const textSize = {\r\n lg: \"--lg\",\r\n md: \"--md\",\r\n mdlg: \"--mdlg\",\r\n sm: \"--sm\",\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

    \r\n {\r\n props.iconLeft &&\r\n \r\n {props.iconLeft}\r\n \r\n }\r\n {props.title}\r\n

    \r\n {\r\n props.subtitle ?

    {props.subtitle}

    : <>\r\n }\r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default TextHeader;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// ICONS\r\nimport { IoClose } from 'react-icons/io5';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport TextHeader from './TextHeader';\r\nimport Button from './Button';\r\n\r\nconst ContentHeader = (props) => {\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n props.primaryButtonText ?\r\n { }}\r\n text={props.primaryButtonText}\r\n className={props.primaryButtonBackgroundColor ? props.primaryButtonBackgroundColor : \"primary--bg\"}\r\n size={props.buttonSize}\r\n uppercaseText={props.uppercaseButtonText}\r\n loading={props.primaryButtonLoading}\r\n /> : <>\r\n }\r\n {\r\n props.secondaryButtonText ?\r\n { }}\r\n text={props.secondaryButtonText}\r\n className={props.secondaryButtonBackgroundColor ? props.secondaryButtonBackgroundColor : \"secondary--bg\"}\r\n size={props.buttonSize}\r\n uppercaseText={props.uppercaseButtonText}\r\n loading={props.secondaryButtonLoading}\r\n /> : <>\r\n }\r\n \r\n {\r\n props.headerIcon ?\r\n \r\n { }}\r\n >\r\n {props.headerIcon}\r\n \r\n : <>\r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentHeader;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { useFormik } from 'formik';\r\n\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../components/LoadingScreen';\r\nimport FormBlock from '../components/FormBlock';\r\nimport Section from '../components/Section';\r\nimport ContentBlock from '../components/ContentBlock';\r\nimport CustomBlock from '../components/CustomBlock';\r\nimport ContentHeader from '../components/ContentHeader';\r\nimport TextHeader from '../components/TextHeader';\r\nimport InputBlock from '../components/InputBlock';\r\nimport Button from '../components/Button';\r\nimport LogoBlock from '../components/LogoBlock';\r\nimport UserLoginValidator from '../helpers/validators/User/UserLoginValidator';\r\n\r\n// ASSETS\r\nimport { ForgotPassword } from '../services/user.service';\r\nimport { Alert } from '../helpers/Alert';\r\n\r\nconst ForgotPasswordPage = (props) => {\r\n const ForgotPasswordSubmit = (values, setSubmitting) => {\r\n setLoading(true);\r\n ForgotPassword(values.username).then(res => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"Email sent for password reset\" });\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n })\r\n }\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const formik = useFormik({\r\n initialValues: { username: \"\" },\r\n onSubmit: (values, { setSubmitting }) => {\r\n ForgotPasswordSubmit(values, setSubmitting);\r\n }\r\n })\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\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 ForgotPasswordPage;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst ActionStrip = (props) => {\r\n\r\n return (\r\n {}}\r\n className={`action-strip-container ${props.className ? props.className : \"\"}`}\r\n style={props.style}\r\n >\r\n
    \r\n

    \r\n {props.title}\r\n

    \r\n
    \r\n\r\n
    \r\n {props.icon}\r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default ActionStrip;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// ICONS\r\nimport { IoClose } from \"react-icons/io5\";\r\n// CUSTOM COMPONENT\r\nimport CustomBlock from './CustomBlock';\r\nimport Overlay from './Overlay';\r\n\r\nconst BottomSheet = (props) => {\r\n\r\n const bottomSheetHeight = {\r\n full: \"full\",\r\n half: \"half\",\r\n normal: \"normal\"\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n props.open ?\r\n { }} /> : <>\r\n }\r\n \r\n { }}>\r\n \r\n

    \r\n {props.title}\r\n

    \r\n\r\n { }}\r\n style={props.iconContainerStyle}\r\n >\r\n {\r\n props.icon ? props.icon : \r\n }\r\n \r\n
    \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default BottomSheet; ","// DEPENDENCIES\r\nimport React from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst CheckboxBlock = (props) => {\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n \r\n {props.label}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CheckboxBlock;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// ICONS\r\nimport { BsTagFill } from 'react-icons/bs';\r\nimport { FaBoxOpen, FaFileInvoiceDollar, FaFileInvoice, FaAward } from 'react-icons/fa';\r\nimport { IoRibbonOutline } from 'react-icons/io5';\r\nimport { VscFileMedia } from 'react-icons/vsc';\r\nimport { IoIosImages } from 'react-icons/io';\r\nimport { BiBuildings } from 'react-icons/bi';\r\nimport { HiUsers } from 'react-icons/hi';\r\nimport { AiFillStar } from 'react-icons/ai';\r\nimport { WiStars } from 'react-icons/wi'\r\n// CUSTOM COMPONENTS;\r\nimport Section from '../components/Section';\r\nimport ContentBlock from '../components/ContentBlock';\r\nimport CustomBlock from '../components/CustomBlock';\r\nimport ActionStrip from '../components/ActionStrip';\r\nimport BottomSheet from '../components/BottomSheet';\r\nimport CheckboxBlock from '../components/CheckboxBlock';\r\n\r\nimport * as Helper from '../helpers/helper';\r\n\r\nconst DashboardPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const companyId = Helper.LoggedInCompanyId();\r\n\r\n return (\r\n <>\r\n \r\n {/* */}\r\n
    \r\n \r\n \r\n }\r\n iconBgColor=\"secondary--bg\"\r\n style={{ marginTop: '5%' }}\r\n />\r\n \r\n
    \r\n {/* */}\r\n\r\n
    \r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"info--bg\"\r\n />\r\n {/* */}\r\n \r\n\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"primary--bg\"\r\n />\r\n {/* */}\r\n \r\n\r\n\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"warning--bg\"\r\n />\r\n {/* */}\r\n \r\n\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"danger--bg\"\r\n />\r\n {/* */}\r\n \r\n\r\n {\r\n role == 'SuperAdmin' ?\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"success--bg\"\r\n />\r\n {/* */}\r\n\r\n :\r\n <>\r\n {\r\n role == 'User' ? <> :\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"success--bg\"\r\n />\r\n {/* */}\r\n \r\n }\r\n \r\n }\r\n {\r\n role != 'User' ?\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"grey--bg\"\r\n />\r\n {/* */}\r\n : <>\r\n }\r\n\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"dark-grey--bg\"\r\n />\r\n {/* */}\r\n\r\n \r\n\r\n \r\n {/* */}\r\n \r\n }\r\n iconBgColor=\"warning--bg\"\r\n />\r\n {/* */}\r\n\r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default DashboardPage;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\nimport ReactPlayer from 'react-player';\r\nimport { Link } from 'react-router-dom';\r\n// ICONS\r\nimport { IoClose } from 'react-icons/io5';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Image from './Image';\r\n// SERVICES AND HELPERS\r\nimport constants from '../constants/constants';\r\nimport CheckboxBlock from './CheckboxBlock';\r\n\r\nconst MediaBlock = (props) => {\r\n\r\n const [media, setMedia] = useState(props.source);\r\n const [videoUrl, setVideoUrl] = useState(props.videoUrl);\r\n\r\n return (\r\n \r\n {\r\n props.source || props.videoUrl ?\r\n <>\r\n {\r\n props.clearAction &&\r\n \r\n {\r\n props.clearSources();\r\n if (props.onClick) {\r\n console.log(media);\r\n props.onClick(media ? ((typeof media) == 'string' ? media : media.id) : videoUrl)\r\n }\r\n }}\r\n className={`icon ${props.iconBackground ? props.iconBackground : \"danger--bg\"}`}\r\n >\r\n {\r\n props.icon ? props.icon :\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n {\r\n props.videoUrl ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n :\r\n
    No Media Available
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default MediaBlock;\r\n","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport \"filepond/dist/filepond.min.css\";\r\nimport FilePondPluginImageExifOrientation from \"filepond-plugin-image-exif-orientation\";\r\nimport FilePondPluginImagePreview from \"filepond-plugin-image-preview\";\r\nimport \"filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css\";\r\nimport _ from 'lodash';\r\n// COMPONENTS\r\nimport { FilePond, registerPlugin } from \"react-filepond\";\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport MediaBlock from './MediaBlock';\r\nimport ContentBlock from './ContentBlock';\r\n// SERVICES AND HELPERS\r\nimport Section from './Section';\r\nimport Button from './Button';\r\nimport InputBlock from './InputBlock';\r\nimport CheckboxBlock from './CheckboxBlock';\r\n\r\nregisterPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);\r\n\r\nconst FileUploadBlock = (props) => {\r\n\r\n const [method, setMethod] = useState('upload');\r\n\r\n const [media, setMedia] = useState(props.path);\r\n const [videoUrl, setVideoUrl] = useState(props.videoUrl);\r\n\r\n const clearSources = () => {\r\n setMedia(null);\r\n setVideoUrl(null);\r\n }\r\n\r\n return (\r\n \r\n {\r\n media || videoUrl ?\r\n props.allowMultiple ?\r\n <>\r\n Browse'}\r\n />\r\n
    \r\n {\r\n media.sort((a, b) => a.sortOrder - b.sortOrder).map((item, index) =>\r\n item &&\r\n \r\n {\r\n media[index] = null;\r\n props.onClick(item.id);\r\n }}\r\n clearSources={() => {\r\n\r\n }}\r\n />\r\n\r\n {\r\n props.hasCheckbox && (\r\n {\r\n const tempArr = [...media];\r\n tempArr[index].isIncludedInSummaryReport = !target.checked;\r\n setMedia(tempArr);\r\n props.checkboxAction(tempArr[index].id, !target.checked);\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 props.type == 'video' ?\r\n <>\r\n {\r\n setMethod(method == 'upload' ? 'link' : 'upload');\r\n props.setVideoPath && props.setVideoPath(null);\r\n }}\r\n />\r\n {\r\n method == 'upload' ?\r\n Browse'}\r\n /> :\r\n {\r\n console.log(e.target.value);\r\n props.setVideoPath && props.setVideoPath(e.target.value);\r\n }}\r\n />\r\n }\r\n :\r\n Browse'}\r\n />\r\n }\r\n \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default FileUploadBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst ActionBlock = (props) => {\r\n\r\n return (\r\n <>\r\n {\r\n props.fullAction ?\r\n { }}\r\n >\r\n\r\n \r\n :\r\n \r\n {\r\n props.toggleIconPosition == 'left' &&\r\n \r\n { }}\r\n >\r\n {props.toggleIcon}\r\n \r\n \r\n }\r\n\r\n {\r\n props.actionsPosition == 'left' &&\r\n \r\n {\r\n props.primaryActionText && props.primaryActionBackground &&\r\n { }}\r\n size=\"xs\"\r\n />\r\n }\r\n\r\n {\r\n props.secondaryActionText && props.secondaryActionBackground &&\r\n { }}\r\n size=\"xs\"\r\n />\r\n }\r\n \r\n }\r\n\r\n \r\n

    \r\n {props.title}\r\n

    \r\n
    \r\n\r\n {\r\n props.toggleIconPosition == 'right' &&\r\n \r\n { }}\r\n >\r\n {props.toggleIcon}\r\n \r\n \r\n }\r\n\r\n {\r\n props.actionsPosition == 'right' &&\r\n \r\n {\r\n props.primaryActionText && props.primaryActionBackground &&\r\n { }}\r\n size=\"xs\"\r\n />\r\n }\r\n\r\n {\r\n props.secondaryActionText && props.secondaryActionBackground &&\r\n { }}\r\n size=\"xs\"\r\n />\r\n }\r\n \r\n }\r\n
    \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default ActionBlock;","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n businessName: Yup.string().required(\"Please enter a Company name\"),\r\n initialUser: Yup.object().shape({\r\n password: Yup.string(),\r\n confirmPassword: Yup.string().oneOf([Yup.ref('password'), null], \"Passwords much match\")\r\n })\r\n});","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n breakpoint: Yup.string().required(\"Please enter a breakpoint\")\r\n});","import axiosInstance from './api.service'\r\nimport constants from '../constants/constants'\r\n\r\nconst endpointOrigin = \"Company/\";\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, {\r\n ...constants.REQUIRE_INTERCEPTORS,\r\n fileHandler: true\r\n})\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + '?id=' + id, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetAll = async () => await axiosInstance.get(endpointOrigin + 'GetAll', constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Check = async (name) => await axiosInstance.get(endpointOrigin + 'Check?name=' + name, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteCompanyImage = async (companyId, path) => await axiosInstance.get(endpointOrigin + `DeleteCompanyImage?companyId=${companyId}&path=${path}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n Save,\r\n GetAll,\r\n Get,\r\n Check,\r\n DeleteCompanyImage\r\n}","import axiosInstance from './api.service'\r\nimport constants from '../constants/constants'\r\n\r\nconst endpointOrigin = \"CompanyBonusLevel/\";\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + `?id=${id}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetAll = async (companyId) => await axiosInstance.get(endpointOrigin + `GetAll?companyId=${companyId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Check = async (breakpoint, companyId) => await axiosInstance.get(endpointOrigin + `Check?breakpoint=${breakpoint}&companyId=${companyId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Toggle = async (id) => await axiosInstance.get(endpointOrigin + `Toggle?id=${id}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Delete = async (id) => await axiosInstance.get(endpointOrigin + `Delete?id=${id}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n Save,\r\n GetAll,\r\n Get,\r\n Check,\r\n Toggle,\r\n Delete\r\n}","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// ICONS\r\nimport { FaDollarSign, FaCheck } from 'react-icons/fa';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport FileUploadBlock from '../../components/FileUploadBlock';\r\nimport CheckboxBlock from '../../components/CheckboxBlock';\r\nimport Button from '../../components/Button';\r\nimport ActionBlock from '../../components/ActionBlock';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\n\r\n// SERVICES AND HELPERS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport CompanyCreateValidator from '../../helpers/validators/product-management/CompanyCreateValidator';\r\nimport CompanyBonusLevelValidator from '../../helpers/validators/product-management/CompanyBonusLevelValidator';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as CompanyBonusLevelService from '../../services/companybonuslevel.service';\r\nimport * as UserService from '../../services/user.service';\r\n\r\nvar timeoutId = 0;\r\n\r\nconst CreateNewClientPage = (props) => {\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [companyId, setCompanyId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n const initialState = {\r\n id: companyId,\r\n businessName: \"\",\r\n contactName: \"\",\r\n contactEmail: \"\",\r\n contactPhone: \"\",\r\n logoFile: [],\r\n isActive: true,\r\n canAccessSalesTools: false,\r\n initialUser: {\r\n firstName: \"\",\r\n lastName: \"\",\r\n username: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n phoneNumber: \"\",\r\n email: \"\",\r\n isAdmin: true,\r\n isSalesCoach: false,\r\n companyId: companyId\r\n }\r\n }\r\n\r\n const [bonusLevelId, setBonusLevelId] = useState(0);\r\n const bonusLevelInitialState = {\r\n id: bonusLevelId,\r\n breakpoint: 0,\r\n reward: 0,\r\n isActive: true,\r\n companyId: companyId\r\n }\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isChecking, setIsChecking] = useState(false);\r\n const [isCheckingBonusLevel, setIsCheckingBonusLevel] = useState(false);\r\n const [isUsed, setIsUsed] = useState(false);\r\n\r\n const [company, setCompany] = useState(initialState);\r\n const [bonusLevels, setBonusLevels] = useState([]);\r\n const [bonusLevel, setBonusLevel] = useState(bonusLevelInitialState);\r\n\r\n const [logoFile, setLogoFile] = useState(null);\r\n const [logoPath, setLogoPath] = useState(null);\r\n\r\n useEffect(() => {\r\n if (companyId > 0) {\r\n setLoading(true);\r\n CompanyService.Get(companyId).then(res => {\r\n setCompany(res);\r\n setLogoPath(res.logoPath);\r\n LoadBonusLevels();\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n }, [])\r\n\r\n const DeleteCompanyImage = (path) => {\r\n CompanyService.DeleteCompanyImage(companyId, path)\r\n .then(res => {\r\n Alert({ success: true, message: 'Image has been removed!' });\r\n }).catch(ex => { });\r\n }\r\n\r\n const checkName = (e) => {\r\n clearTimeout(timeoutId);\r\n setIsChecking(true);\r\n timeoutId = setTimeout(() => {\r\n formik.setFieldTouched('businessName');\r\n if (e != undefined && e.target.value == company.businessName) {\r\n setIsUsed(false);\r\n setIsChecking(false);\r\n }\r\n else\r\n CompanyService.Check(e == undefined ? formik.values.businessName : e.target.value).then(res => {\r\n setIsUsed(res);\r\n setIsChecking(false);\r\n });\r\n }, 300);\r\n }\r\n\r\n const checkBonusLevel = (e) => {\r\n clearTimeout(timeoutId);\r\n setIsCheckingBonusLevel(true);\r\n timeoutId = setTimeout(() => {\r\n bonusFormik.setFieldTouched('breakpoint');\r\n if (e != undefined && e.target.value == bonusLevel.breakpoint) {\r\n setIsUsed(false);\r\n setIsCheckingBonusLevel(false);\r\n }\r\n else\r\n CompanyBonusLevelService.Check(e == undefined ? bonusFormik.values.breakpoint : e.target.value, companyId).then(res => {\r\n setIsUsed(res);\r\n setIsCheckingBonusLevel(false);\r\n });\r\n }, 300);\r\n }\r\n\r\n const LoadBonusLevels = () => {\r\n CompanyBonusLevelService.GetAll(companyId).then(res => {\r\n setLoading(false);\r\n setBonusLevels(res);\r\n });\r\n }\r\n\r\n const CreateCompany = (values, setSubmitting) => {\r\n if (isUsed)\r\n return;\r\n setLoading(true);\r\n CompanyService.Save(Helper.ConvertJsonToFormData({\r\n ...values,\r\n logoFile: logoFile ? logoFile[0].file : null\r\n })).then(res => {\r\n setCompany(res);\r\n setLogoPath(res.logoPath);\r\n if (companyId == 0) {\r\n formik.setFieldValue(\"initialUser.companyId\", res.id);\r\n if (formik.values.initialUser.username != \"\") {\r\n UserService.Save(values.initialUser).then(res => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"Company and User have been saved!\" });\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n });\r\n }\r\n else {\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"Company has been saved!\" });\r\n }\r\n }\r\n else {\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"Company has been saved!\" });\r\n }\r\n\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const SaveBonusLevel = (values, setSubmitting) => {\r\n if (isUsed)\r\n return;\r\n setLoading(true);\r\n CompanyBonusLevelService.Save(values)\r\n .then(res => {\r\n setBonusLevelId(0);\r\n setBonusLevel(null);\r\n setBonusLevel({ id: 0, breakpoint: 0, reward: 0, isActive: true, companyId: companyId });\r\n setSubmitting(false);\r\n Alert({ success: true, message: \"Bonus Level has been saved!\" });\r\n CompanyBonusLevelService.GetAll(companyId).then(res => {\r\n setLoading(false);\r\n setBonusLevels(res);\r\n });\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: company,\r\n enableReinitialize: true,\r\n validationSchema: CompanyCreateValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n CreateCompany(values, setSubmitting);\r\n }\r\n })\r\n\r\n const bonusFormik = useFormik({\r\n initialValues: bonusLevel,\r\n enableReinitialize: true,\r\n validationSchema: CompanyBonusLevelValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n SaveBonusLevel(values, setSubmitting);\r\n }\r\n })\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n 0 ? \"Update\" : \"Add New\") + \" Company\"}\r\n headerSize=\"sm\"\r\n />\r\n \r\n
    0 ? \"\" : \"border-bottom\"}>\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 companyId > 0 ? <> :\r\n
    \r\n \r\n
    {/* this is just for formatting */}\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\n {\r\n companyId > 0 ?\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 bonusLevels.map((level, index) =>\r\n {\r\n CompanyBonusLevelService.Get(level.id).then(res => {\r\n setBonusLevel(res);\r\n });\r\n }}\r\n secondaryActionText=\"Remove\"\r\n secondaryActionBackground=\"danger--bg\"\r\n secondaryActionOnClick={() => {\r\n CompanyBonusLevelService.Delete(level.id).then(res => {\r\n LoadBonusLevels();\r\n });\r\n }}\r\n toggleIconPosition=\"right\"\r\n toggleIcon={\r\n \r\n }\r\n toggleIconBackground={level.isActive ? \"lighter-green--bg\" : \"lighter-grey--bg\"}\r\n toggleIconOnClick={() => {\r\n level.isActive = !level.isActive;\r\n CompanyBonusLevelService.Toggle(level.id).then(res => { })\r\n .catch(ex => CompanyService.GetAll(companyId).then(res => setBonusLevels(res)));\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 CreateNewClientPage;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport { useSpring, animated } from 'react-spring';\r\n// COMPONENTS\r\nimport Select from 'react-select';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst SelectBlock = (props) => {\r\n\r\n const errorMessageSuffix = \"is Required\";\r\n const inputStates = {\r\n error: \"error\",\r\n warning: \"warning\",\r\n success: \"success\",\r\n disabled: \"disabled\"\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {\r\n props.inputLabel ?\r\n \r\n {props.inputLabel}\r\n : <>\r\n }\r\n \r\n {\r\n props.inputState === 'error' ?\r\n \r\n {props.errorMessage ? props.errorMessage : props.inputLabel ? (props.inputLabel + \" \" + errorMessageSuffix) : \"Error message undefined\"}\r\n : <>\r\n }\r\n {\r\n props.inputState === 'warning' ?\r\n \r\n {props.warningMessage}\r\n : <>\r\n }\r\n {\r\n props.inputState === 'success' ?\r\n \r\n {props.successMessage}\r\n : <>\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SelectBlock;","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n username: Yup.string().required(\"Please enter a Username\"),\r\n email: Yup.string().required(\"Please enter an Email\")\r\n});","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport Modal from 'react-bootstrap/Modal';\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport CheckboxBlock from '../../components/CheckboxBlock';\r\nimport Button from '../../components/Button';\r\n//ASSETS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as UserService from '../../services/user.service';\r\nimport UserSaveValidator from '../../helpers/validators/User/UserSaveValidator';\r\n\r\nvar timeoutId = 0;\r\n\r\nconst UserManagePage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const companyId = Helper.LoggedInCompanyId();\r\n\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [userId, setUserId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n const [isPasswordModalOpen, setIsPasswordModalOpen] = useState(false);\r\n const initialState = {\r\n id: userId,\r\n companyId: companyId,\r\n firstName: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n email: \"\",\r\n username: \"\",\r\n password: \"\",\r\n isAdmin: false,\r\n isSalesCoach: false,\r\n isLocked: false\r\n };\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isChecking, setIsChecking] = useState(false);\r\n const [isUsed, setIsUsed] = useState(false);\r\n const [password, setPassword] = useState('');\r\n const [password2, setPassword2] = useState('');\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(companyId);\r\n\r\n const [user, setUser] = useState(initialState);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n if (userId > 0) {\r\n UserService.Get(userId).then(res => {\r\n setUser(res);\r\n LoadCompanies(res.companyId);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadCompanies(selectedCompany);\r\n }, []);\r\n\r\n const handlePasswordModalOnClose = () => {\r\n setPassword('');\r\n setPassword2('');\r\n setIsPasswordModalOpen(false);\r\n };\r\n\r\n const UpdatePassword = () => {\r\n if (password !== password2) {\r\n alert('Password does not match. Please match the password');\r\n return;\r\n }\r\n setLoading(true);\r\n UserService.UpdatePassword(userId, password).then(res => {\r\n setLoading(false);\r\n handlePasswordModalOnClose();\r\n Alert({ success: true, message: \"Password has been updated!\" });\r\n }).catch(ex => {\r\n setLoading(false);\r\n })\r\n };\r\n\r\n const LoadCompanies = (defaultCompanyId) => {\r\n if (role == \"SuperAdmin\") {\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n let companySaved = res.find(x => x.id == defaultCompanyId);\r\n setSelectedCompany(Helper.SetOptionModel(companySaved.businessName, companySaved.id));\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n const checkUsername = (e) => {\r\n clearTimeout(timeoutId);\r\n setIsChecking(true);\r\n timeoutId = setTimeout(() => {\r\n formik.setFieldTouched('username');\r\n if (e != undefined && e.target.value == user.username) {\r\n setIsUsed(false);\r\n setIsChecking(false);\r\n }\r\n else\r\n UserService.Check(e == undefined ? formik.values.username : e.target.value, selectedCompany >= 0 ? selectedCompany : selectedCompany.value).then(res => {\r\n setIsUsed(res);\r\n setIsChecking(false);\r\n });\r\n }, 300);\r\n }\r\n\r\n const SaveUser = (values, setSubmitting) => {\r\n if (isUsed)\r\n return;\r\n setLoading(true);\r\n setSubmitting(true);\r\n UserService.Save(values).then(res => {\r\n setUserId(res);\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"User has been saved!\" });\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: user,\r\n enableReinitialize: true,\r\n validationSchema: UserSaveValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n SaveUser(values, setSubmitting);\r\n }\r\n })\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n 0 ? \"Update\" : \"Add New\") + \" User\"}\r\n headerSize=\"sm\"\r\n />\r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onBlur={() => formik.setFieldTouched(\"companyId\")}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n formik.setFieldValue(\"companyId\", option.value);\r\n setSelectedCompany(option);\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 userId > 0 ?\r\n \r\n \r\n {\r\n setIsPasswordModalOpen(true);\r\n }}\r\n loading={loading}\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 role == 'User' || formik.values.companyId == null ? <> :\r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n handlePasswordModalOnClose()}>\r\n \r\n Update Password\r\n \r\n \r\n {\r\n setPassword(target.value)\r\n }}\r\n />\r\n {\r\n setPassword2(target.value)\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 UserManagePage;","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n name: Yup.string().required(\"Please enter a Media Type name\"),\r\n companyId: Yup.number().min(1, \"Please select a Company\").required()\r\n});","import axiosInstance from './api.service'\r\nimport constants from '../constants/constants'\r\n\r\nconst endpointOrigin = \"MediaType/\";\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetAll = async (companyId) => await axiosInstance.get(endpointOrigin + 'GetAll?companyId=' + companyId, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + '?id=' + id, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Check = async (name, companyId) => await axiosInstance.get(endpointOrigin + 'Check?name=' + name + '&companyId=' + companyId, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n Save,\r\n GetAll,\r\n Get,\r\n Check\r\n}","// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport CheckboxBlock from '../../components/CheckboxBlock';\r\nimport Button from '../../components/Button';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\n// SERVICES AND HELPERS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport MediaTypeCreateValidator from '../../helpers/validators/product-management/MediaTypeCreateValidator';\r\nimport * as MediaTypeService from '../../services/mediatype.service';\r\nimport * as CompanyService from '../../services/company.service';\r\n\r\nvar timeoutId = 0\r\n\r\nconst CreateNewMediaTypePage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const companyId = Helper.LoggedInCompanyId();\r\n\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [mediaTypeId, setMediaTypeId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n const initialState = { id: mediaTypeId, name: \"\", isActive: true, companyId: companyId }\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isChecking, setIsChecking] = useState(false);\r\n const [isUsed, setIsUsed] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(role == 'User');\r\n const [submissionType, setSubmissionType] = useState(0);\r\n\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(companyId);\r\n\r\n const [mediaType, setMediaType] = useState(initialState);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n if (mediaTypeId > 0)\r\n MediaTypeService.Get(mediaTypeId).then(res => {\r\n setMediaType(res);\r\n LoadCompanies(res.companyId);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n else\r\n LoadCompanies(selectedCompany);\r\n }, [])\r\n\r\n const LoadCompanies = (defaultCompanyId) => {\r\n if (role == \"SuperAdmin\") {\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n let companySaved = res.find(x => x.id == defaultCompanyId);\r\n setSelectedCompany(Helper.SetOptionModel(companySaved.businessName, companySaved.id));\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n setLoading(false);\r\n }\r\n\r\n const checkName = (e) => {\r\n clearTimeout(timeoutId);\r\n setIsChecking(true);\r\n timeoutId = setTimeout(() => {\r\n formik.setFieldTouched('name');\r\n if (e != undefined && e.target.value == mediaType.name) {\r\n setIsUsed(false);\r\n setIsChecking(false);\r\n }\r\n else\r\n MediaTypeService.Check(e == undefined ? formik.values.name : e.target.value, selectedCompany >= 0 ? selectedCompany : selectedCompany.value).then(res => {\r\n setIsUsed(res);\r\n setIsChecking(false)\r\n });\r\n }, 300);\r\n }\r\n\r\n const CreateMediaType = (values, setSubmitting) => {\r\n if (isUsed)\r\n return;\r\n setLoading(true);\r\n MediaTypeService.Save(values).then(res => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"Media Type has been saved!\" });\r\n if (submissionType == 1)\r\n {\r\n setMediaType({ id: 0, name: \"\", isActive: true, companyId: companyId });\r\n formik.setFieldValue(\"name\", \"\");\r\n }\r\n else\r\n props.history.push(\"/media-types\");\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: mediaType,\r\n enableReinitialize: true,\r\n validationSchema: MediaTypeCreateValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n CreateMediaType(values, setSubmitting);\r\n }\r\n })\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n 0 ? \"Update\" : \"Add New\") + \" Media Type\"}\r\n headerSize=\"sm\"\r\n />\r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onBlur={() => formik.setFieldTouched(\"companyId\")}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCompany(option);\r\n formik.setFieldValue(\"companyId\", option.value);\r\n }}\r\n inputState={\r\n formik.touched.companyId && formik.errors.companyId\r\n ? \"error\"\r\n : formik.touched.companyId && formik.errors.companyId == null\r\n ? \"success\"\r\n : \"\"\r\n }\r\n errorMessage={formik.errors.companyId}\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 role == 'User' ? <> :\r\n <>\r\n {\r\n mediaTypeId > 0 ?\r\n :\r\n <>\r\n setSubmissionType(1)}\r\n />\r\n setSubmissionType(2)}\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 CreateNewMediaTypePage;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport { useSpring, animated } from 'react-spring';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst TextAreBlock = (props) => {\r\n\r\n const errorMessageSuffix = \"is Required\";\r\n const inputStates = {\r\n error: \"error\",\r\n warning: \"warning\",\r\n success: \"success\",\r\n disabled: \"disabled\"\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {\r\n props.inputLabel ?\r\n \r\n {props.inputLabel}\r\n : <>\r\n }\r\n { }}\r\n onChange={props.onChange ? props.onChange : () => { }}\r\n onFocus={props.onFocus ? props.onFocus : () => { }}\r\n onBlur={props.onBlur ? props.onBlur : () => { }}\r\n id={props.id}\r\n />\r\n {\r\n props.inputState === 'error' ?\r\n \r\n {props.errorMessage ? props.errorMessage : props.inputLabel ? (props.inputLabel + \" \" + errorMessageSuffix) : \"Error message undefined\"}\r\n : <>\r\n }\r\n {\r\n props.inputState === 'warning' ?\r\n \r\n {props.warningMessage}\r\n : <>\r\n }\r\n {\r\n props.inputState === 'success' ?\r\n \r\n {props.successMessage}\r\n : <>\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default TextAreBlock;","import axiosInstance from './api.service'\r\nimport constants from '../constants/constants'\r\n\r\nconst endpointOrigin = \"Category/\";\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, {\r\n ...constants.REQUIRE_INTERCEPTORS,\r\n fileHandler: true\r\n})\r\n\r\nconst GetAll = async (companyId, showAll) => await axiosInstance.get(endpointOrigin + `GetAll?companyId=${companyId}&showAll=${showAll}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetSelectedForQuote = async (quoteId) => await axiosInstance.get(endpointOrigin + `GetSelectedForQuote?quoteId=${quoteId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + '?id=' + id, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Check = async (name, companyId) => await axiosInstance.get(endpointOrigin + `Check?name=${name}&companyId=${companyId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteCategoryImage = async (categoryId, path) => await axiosInstance.get(endpointOrigin + `DeleteCategoryImage?categoryId=${categoryId}&path=${path}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteCategoryVideo = async (categoryId, key) => await axiosInstance.get(endpointOrigin + `DeleteCategoryVideo?categoryId=${categoryId}&key=${key}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n Save,\r\n GetAll,\r\n GetSelectedForQuote,\r\n Get,\r\n Check,\r\n DeleteCategoryImage,\r\n DeleteCategoryVideo\r\n}","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n name: Yup.string().required(\"Please enter a Category name\"),\r\n mediaTypeId: Yup.number().nullable().required(\"Media Type is required\")\r\n});","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useFormik } from 'formik';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport TextAreaBlock from '../../components/TextAreaBlock';\r\nimport FileUploadBlock from '../../components/FileUploadBlock';\r\nimport CheckboxBlock from '../../components/CheckboxBlock';\r\nimport Button from '../../components/Button';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\n// SERVICES AND HELPERS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as MediaTypeService from '../../services/mediatype.service';\r\nimport * as CategoryService from '../../services/category.service';\r\nimport CategoryCreateValidator from '../../helpers/validators/product-management/CategoryCreateValidator';\r\n\r\nvar timeoutId = 0;\r\nvar mediaTypeId = 0;\r\n\r\nconst CreateNewCategoryPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const companyId = Helper.LoggedInCompanyId();\r\n\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [categoryId, setCategoryId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n const initialState = {\r\n id: categoryId,\r\n name: \"\",\r\n mediaTypeId: null,\r\n description: \"\",\r\n logoFile: [],\r\n imageFile: [],\r\n videoFile: [],\r\n videoLink: \"\",\r\n isActive: true,\r\n companyId: companyId\r\n }\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isChecking, setIsChecking] = useState(false);\r\n const [isUsed, setIsUsed] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(role == 'User');\r\n\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(companyId);\r\n\r\n const [mediaTypes, setMediaTypes] = useState([]);\r\n const [selectedMediaType, setSelectedMediaType] = useState(null);\r\n\r\n const [category, setCategory] = useState(initialState);\r\n\r\n const [logoFile, setLogoFile] = useState(null);\r\n const [logoPath, setLogoPath] = useState(null);\r\n const [imageFile, setImageFile] = useState(null);\r\n const [imagePath, setImagePath] = useState(null);\r\n const [videoFile, setVideoFile] = useState(null);\r\n const [videoPath, setVideoPath] = useState(null);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n if (categoryId > 0) {\r\n CategoryService.Get(categoryId).then(res => {\r\n // need to figure out CORs before we return to this\r\n // setLogoFile([{\r\n // source: res.logoPath,\r\n // options: {\r\n // type: 'local'\r\n // }\r\n // }]);\r\n SetDataFromCategory(res);\r\n LoadCompanies(res.companyId);\r\n LoadMediaTypes(res.companyId);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadCompanies(selectedCompany);\r\n }, [])\r\n\r\n const LoadCompanies = (defaultCompanyId) => {\r\n if (role == \"SuperAdmin\") {\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n let companySaved = res.find(x => x.id == defaultCompanyId);\r\n setSelectedCompany(Helper.SetOptionModel(companySaved.businessName, companySaved.id));\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadMediaTypes(companyId);\r\n }\r\n\r\n const LoadMediaTypes = (companyId) => {\r\n setLoading(true);\r\n setSelectedMediaType(null);\r\n MediaTypeService.GetAll(companyId).then(res => {\r\n setMediaTypes(res);\r\n if (mediaTypeId > 0) {\r\n let mediaTypeSaved = res.find(x => x.id == mediaTypeId);\r\n setSelectedMediaType(Helper.SetOptionModel(mediaTypeSaved.name, mediaTypeSaved.id))\r\n }\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const SetDataFromCategory = (category) => {\r\n setLogoPath(category.logoPath);\r\n setImagePath(category.imagePath);\r\n setVideoPath(category.videoPath);\r\n mediaTypeId = category.mediaTypeId;\r\n setCategory(category);\r\n setCategoryId(category.id);\r\n }\r\n\r\n const DeleteCategoryImage = (path) => {\r\n CategoryService.DeleteCategoryImage(categoryId, path)\r\n .then(res => {\r\n Alert({success: true, message: 'Image has been removed!'});\r\n }).catch(ex => {});\r\n }\r\n\r\n const DeleteCategoryVideo = (key) => {\r\n CategoryService.DeleteCategoryVideo(categoryId, key)\r\n .then(res => {\r\n Alert({success: true, message: 'Video has been removed!'});\r\n }).catch(ex => {});\r\n }\r\n\r\n const checkName = (e) => {\r\n clearTimeout(timeoutId);\r\n setIsChecking(true);\r\n timeoutId = setTimeout(() => {\r\n formik.setFieldTouched('name');\r\n if (e != undefined && e.target.value == category.name) {\r\n setIsUsed(false);\r\n setIsChecking(false);\r\n }\r\n else\r\n CategoryService.Check(e == undefined ? formik.values.name : e.target.value, selectedCompany >= 0 ? selectedCompany : selectedCompany.value).then(res => {\r\n setIsUsed(res);\r\n setIsChecking(false);\r\n });\r\n }, 300);\r\n }\r\n\r\n const CreateCategory = (values, setSubmitting) => {\r\n if (isUsed)\r\n return;\r\n setLoading(true);\r\n setSubmitting(true);\r\n CategoryService.Save(Helper.ConvertJsonToFormData({\r\n ...values,\r\n videoPath: videoPath,\r\n logoFile: logoFile ? logoFile[0].file : null,\r\n imageFile: imageFile ? imageFile[0].file : null,\r\n videoFile: videoFile ? videoFile[0].file : null,\r\n })).then(res => {\r\n SetDataFromCategory(res);\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"Category has been saved!\" });\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: category,\r\n enableReinitialize: true,\r\n validationSchema: CategoryCreateValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n CreateCategory(values, setSubmitting);\r\n }\r\n })\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onBlur={() => formik.setFieldTouched(\"companyId\")}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n formik.setFieldValue(\"companyId\", option.value);\r\n setSelectedCompany(option);\r\n LoadMediaTypes(option.value);\r\n }}\r\n inputState={\r\n formik.touched.companyId && formik.errors.companyId\r\n ? \"error\"\r\n : formik.touched.companyId && formik.errors.companyId == null\r\n ? \"success\"\r\n : \"\"\r\n }\r\n errorMessage={formik.errors.companyId}\r\n />\r\n : <>\r\n }\r\n \r\n \r\n \r\n \r\n Helper.SetOptionModel(x.name, x.id))}\r\n value={selectedMediaType}\r\n bordered\r\n onBlur={() => formik.setFieldTouched('mediaTypeId')}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedMediaType(option);\r\n formik.setFieldValue(\"mediaTypeId\", option.value);\r\n }}\r\n inputState={selectedCompany == 0 ? \"disabled\" : formik.touched.mediaTypeId && formik.errors.mediaTypeId ? \"error\" : formik.touched.mediaTypeId && formik.errors.mediaTypeId == null ? \"success\" : \"\"}\r\n errorMessage={formik.errors.mediaTypeId}\r\n disabled={isDisabled}\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 role == 'User' ? <> :\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 CreateNewCategoryPage;","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n name: Yup.string().required(\"Please enter a Product name\"),\r\n categoryId: Yup.number().min(1, \"Please select a Category\").required(),\r\n price: Yup.number().required(\"Please enter a Price\"),\r\n audienceSize: Yup.number().required(\"Please enter Audience Size\"),\r\n companyId: Yup.number().min(1, \"Please select a Company\").required()\r\n});","import axiosInstance from './api.service'\r\nimport constants from '../constants/constants'\r\n\r\nconst endpointOrigin = \"Product/\";\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, {\r\n ...constants.REQUIRE_INTERCEPTORS,\r\n fileHandler: true\r\n})\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + `?id=${id}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetAll = async (companyId) => await axiosInstance.get(endpointOrigin + `GetAll?companyId=${companyId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetAllForCategory = async (categoryId) => await axiosInstance.get(endpointOrigin + `GetAllForCategory?categoryId=${categoryId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Check = async (name, companyId) => await axiosInstance.get(endpointOrigin + `Check?name=${name}&companyId=${companyId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteProductImage = async (productImageId) => axiosInstance.get(endpointOrigin + `DeleteProductImage?productImageId=${productImageId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteProductVideo = async (productId, key) => axiosInstance.post(endpointOrigin + 'DeleteProductVideo', { productId: productId, key: key }, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SetProductImageIncludeInSummary = async (productImageId, shouldInclude) => await axiosInstance.get(endpointOrigin + `SetProductImageIncludeInSummary?productImageId=${productImageId}&shouldInclude=${shouldInclude}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SortSampleImages = async (sortOrders) => axiosInstance.post(`${endpointOrigin}SortSampleImages`, sortOrders, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n Save,\r\n GetAll,\r\n GetAllForCategory,\r\n Get,\r\n Check,\r\n DeleteProductImage,\r\n DeleteProductVideo,\r\n SetProductImageIncludeInSummary,\r\n SortSampleImages,\r\n}","// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useFormik } from 'formik';\r\nimport _ from 'lodash';\r\n// COMPONENTS\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\nimport Modal from 'react-bootstrap/Modal';\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport TextAreaBlock from '../../components/TextAreaBlock';\r\nimport FileUploadBlock from '../../components/FileUploadBlock';\r\nimport CheckboxBlock from '../../components/CheckboxBlock';\r\nimport Button from '../../components/Button';\r\nimport Image from '../../components/Image';\r\n// SERVICES AND HELPERS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport ProductCreateValidator from '../../helpers/validators/product-management/ProductCreateValidator';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as CategoryService from '../../services/category.service';\r\nimport * as ProductService from '../../services/product.service';\r\nimport constants from '../../constants/constants';\r\n\r\nvar timeoutId = 0;\r\nvar categoryId = 0;\r\n\r\nconst CreateNewProductPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const companyId = Helper.LoggedInCompanyId();\r\n\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [productId, setProductId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [sortList, setSortList] = useState([]);\r\n const initialState = {\r\n id: 0,\r\n name: \"\",\r\n categoryId: 0,\r\n audienceSize: \"\",\r\n price: \"\",\r\n description: \"\",\r\n bestUsedFor: \"\",\r\n imageFiles: [],\r\n sampleVideoFile: [],\r\n salesVideoFile: [],\r\n canBeBonus: false,\r\n hasServiceDuration: false,\r\n isActive: true,\r\n usesFreeInput: false,\r\n companyId: companyId\r\n }\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isChecking, setIsChecking] = useState(false);\r\n const [isUsed, setIsUsed] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(role == 'User');\r\n\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(companyId);\r\n\r\n const [categories, setCategories] = useState([]);\r\n const [selectedCategory, setSelectedCategory] = useState();\r\n\r\n const [product, setProduct] = useState(initialState);\r\n\r\n const [primaryImageFile, setPrimaryImageFile] = useState(null);\r\n const [primaryImagePath, setPrimaryImagePath] = useState(null);\r\n\r\n const [imageFiles, setImageFiles] = useState(null);\r\n const [imageFilePaths, setImageFilePaths] = useState(null);\r\n\r\n const [sampleVideoFile, setSampleVideoFile] = useState(null);\r\n const [sampleVideoPath, setSampleVideoPath] = useState(null);\r\n\r\n const [salesVideoFile, setSalesVideoFile] = useState(null);\r\n const [salesVideoPath, setSalesVideoPath] = useState(null);\r\n\r\n useEffect(() => {\r\n if (imageFilePaths) {\r\n setSortList(imageFilePaths.sort((a, b) => a.sortOrder - b.sortOrder));\r\n }\r\n }, [imageFilePaths]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n if (productId > 0) {\r\n GetProductById();\r\n }\r\n else\r\n LoadCompanies(selectedCompany);\r\n }, []);\r\n\r\n const GetProductById = async () => {\r\n await ProductService.Get(productId).then(res => {\r\n SetDataFromProduct(res);\r\n LoadCompanies(res.companyId);\r\n LoadCategories(res.companyId);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const SetDataFromProduct = (product) => {\r\n setPrimaryImagePath(_.find(product.productImage, x => x.isPrimary));\r\n setImageFilePaths(_.filter(product.productImage, x => !x.isPrimary));\r\n setSampleVideoPath(product.sampleVideoPath);\r\n setSalesVideoPath(product.salesVideoPath);\r\n categoryId = product.categoryId;\r\n setProduct(product);\r\n }\r\n\r\n const LoadCompanies = (defaultCompanyId) => {\r\n if (role == \"SuperAdmin\") {\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n let companySaved = res.find(x => x.id == defaultCompanyId);\r\n setSelectedCompany(Helper.SetOptionModel(companySaved.businessName, companySaved.id));\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadCategories(companyId);\r\n }\r\n\r\n const LoadCategories = (companyId) => {\r\n setLoading(true);\r\n setSelectedCategory(null);\r\n CategoryService.GetAll(companyId, false).then(res => {\r\n setCategories(res);\r\n if (categoryId > 0) {\r\n let categorySaved = res.find(x => x.id == categoryId);\r\n setSelectedCategory(Helper.SetOptionModel(categorySaved.name, categorySaved.id))\r\n }\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const DeleteProductImage = (productImageId) => {\r\n ProductService.DeleteProductImage(productImageId)\r\n .then(res => {\r\n Alert({ success: true, message: 'Image has been removed!' });\r\n }).catch(ex => { });\r\n }\r\n\r\n const DeleteProductVideo = (videoUrl) => {\r\n console.log(videoUrl);\r\n ProductService.DeleteProductVideo(productId, videoUrl).then(res => {\r\n Alert({ success: true, message: 'Video has been removed!' });\r\n }).catch(ex => { });\r\n }\r\n\r\n const checkName = (e) => {\r\n clearTimeout(timeoutId);\r\n setIsChecking(true);\r\n timeoutId = setTimeout(() => {\r\n formik.setFieldTouched('name');\r\n if (e != undefined && e.target.value == product.name) {\r\n setIsUsed(false);\r\n setIsChecking(false);\r\n }\r\n else\r\n ProductService.Check(e == undefined ? formik.values.name : e.target.value, selectedCompany >= 0 ? selectedCompany : selectedCompany.value).then(res => {\r\n setIsUsed(res);\r\n setIsChecking(false);\r\n });\r\n }, 300);\r\n }\r\n\r\n const CreateProduct = (values, setSubmitting) => {\r\n if (isUsed)\r\n return;\r\n setLoading(true);\r\n setSubmitting(true);\r\n ProductService.Save(Helper.ConvertJsonToFormData({\r\n ...values,\r\n sampleVideoPath: sampleVideoPath,\r\n salesVideoPath: salesVideoPath,\r\n primaryImageFile: primaryImageFile ? primaryImageFile[0].file : null,\r\n imageFiles: imageFiles ? imageFiles.map(x => x.file) : null,\r\n sampleVideoFile: sampleVideoFile ? sampleVideoFile[0].file : null,\r\n salesVideoFile: salesVideoFile ? salesVideoFile[0].file : null\r\n }))\r\n .then(res => {\r\n SetDataFromProduct(res);\r\n Alert({ success: true, message: \"Product has been saved!\" });\r\n props.history.push(\"/product/\" + res.id);\r\n setSubmitting(false);\r\n setLoading(false);\r\n setPrimaryImageFile(null);\r\n setImageFiles(null);\r\n })\r\n .catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n })\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: product,\r\n enableReinitialize: true,\r\n validationSchema: ProductCreateValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n CreateProduct(values, setSubmitting);\r\n }\r\n })\r\n\r\n const includeImageInSummary = (id, isActive) => {\r\n ProductService.SetProductImageIncludeInSummary(id, isActive).then((res) => {\r\n Alert({ success: true, message: \"Sample Image has been updated!\" });\r\n }).catch(ex => {\r\n Alert({ success: false, message: ex.message });\r\n })\r\n }\r\n\r\n const SortSampleImages = async () => {\r\n setLoading(true);\r\n\r\n ProductService.SortSampleImages(sortList).then(async (res) => {\r\n await GetProductById();\r\n Alert({ success: true, message: res.message });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n Alert({ success: false, message: ex.message });\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const tempArr = Helper.ReOrderDnd(\r\n sortList,\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n setSortList(tempArr);\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {\r\n role == 'SuperAdmin' ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n value={selectedCompany}\r\n onBlur={() => formik.setFieldTouched(\"companyId\")}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCompany(option);\r\n formik.setFieldValue(\"companyId\", option.value);\r\n LoadCategories(option.value);\r\n }}\r\n inputState={\r\n formik.touched.companyId && formik.errors.companyId\r\n ? \"error\"\r\n : formik.touched.companyId && formik.errors.companyId == null\r\n ? \"success\"\r\n : \"\"\r\n }\r\n errorMessage={formik.errors.companyId}\r\n />\r\n : <>\r\n }\r\n \r\n \r\n \r\n\r\n \r\n Helper.SetOptionModel(x.name, x.id))}\r\n value={selectedCategory}\r\n onBlur={() => formik.setFieldTouched(\"categoryId\")}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCategory(option);\r\n formik.setFieldValue(\"categoryId\", option.value);\r\n }}\r\n inputState={\r\n selectedCompany == 0 ? \"disabled\" :\r\n formik.touched.categoryId && formik.errors.categoryId\r\n ? \"error\"\r\n : formik.touched.categoryId && formik.errors.categoryId == null\r\n ? \"success\"\r\n : \"\"\r\n }\r\n errorMessage={formik.errors.categoryId}\r\n disabled={isDisabled}\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 (productId && imageFilePaths?.length > 0) ? (\r\n {\r\n setIsSortModalOpen(true);\r\n }}\r\n />\r\n ) : <>\r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n Client Facing\r\n \r\n \r\n\r\n \r\n Sales Video\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 role == 'User' ? <> :\r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n setIsSortModalOpen(false)}>\r\n \r\n Sort Sample Images\r\n \r\n \r\n

    Drag and Drop Image to Reorder

    \r\n {\r\n sortList.length > 0\r\n ? (\r\n \r\n \r\n {(droppableProvided) => (\r\n \r\n {sortList.map((item, index) => (\r\n \r\n {(draggableProvided) => (\r\n \r\n \r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n \r\n

    No Items Available

    \r\n
    \r\n )\r\n }\r\n
    \r\n \r\n {\r\n setIsSortModalOpen(false);\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 CreateNewProductPage;","// DEPENDENCIES\r\nimport React from 'react'\r\nimport { EditorState, ContentState, convertFromHTML, convertToRaw } from 'draft-js'\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport * as draftToHtml from 'draftjs-to-html';\r\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport ContentHeader from './ContentHeader';\r\n\r\nconst TextEditorBlock = (props) => {\r\n let state = {\r\n editorState: EditorState.createWithContent(\r\n ContentState.createFromBlockArray(\r\n convertFromHTML(props.value)\r\n )\r\n )\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {\r\n props.inputLabel ?\r\n \r\n {props.inputLabel}\r\n : <>\r\n }\r\n \r\n\r\n {\r\n props.changeText(draftToHtml(convertToRaw(state.getCurrentContent())).replace(\"\", \"\").replace(\"\", \"\"));\r\n }}\r\n wrapperClassName=\"text-editor-block-wrapper\"\r\n editorClassName=\"text-editor-block-editor\"\r\n toolbarClassName=\"text-editor-block-toolbar\"\r\n />\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TextEditorBlock;","import axiosInstance from './api.service'\r\nimport constants from '../constants/constants'\r\n\r\nconst endpointOrigin = \"SalesTool/\";\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, {\r\n ...constants.REQUIRE_INTERCEPTORS,\r\n fileHandler: true\r\n})\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + '?id=' + id, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetAll = async () => await axiosInstance.get(endpointOrigin + 'GetAll', constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Check = async (name) => await axiosInstance.get(endpointOrigin + 'Check?name=' + name, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteSalesToolVideo = async (salestoolId, key) => await axiosInstance.get(endpointOrigin + `DeleteSalesToolVideo?salesToolId=${salestoolId}&key=${key}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n Save,\r\n GetAll,\r\n Get,\r\n Check,\r\n DeleteSalesToolVideo\r\n}","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n name: Yup.string().required(\"Please enter a Sales Tool name\"),\r\n availableOn: Yup.date().required(\"Available On is required\")\r\n});","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// ICONS\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport TextAreaBlock from '../../components/TextAreaBlock';\r\nimport FileUploadBlock from '../../components/FileUploadBlock';\r\nimport Button from '../../components/Button';\r\nimport TextEditorBlock from '../../components/TextEditorBlock';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\n// SERVICES AND HELPERS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as SalesToolService from '../../services/salestool.service';\r\nimport SalesToolValidator from '../../helpers/validators/sales-management/SalesToolCreateValidator';\r\nimport constants from '../../constants/constants';\r\n\r\nvar timeoutId = 0;\r\n\r\nconst CreateNewSalesToolPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n\r\n const [emailBody, setEmailBody] = useState(\"\");\r\n const [weeklySalesTalkingPoints, setWeeklySalesTalkingPoints] = useState(\"\");\r\n\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [salesToolId, setSalesToolId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n const initialState = {\r\n id: salesToolId,\r\n name: \"\",\r\n description: \"\",\r\n availableOn: \"\",\r\n availableUntil: \"\",\r\n videoFile: [],\r\n videoPath: \"\",\r\n weeklySalesTalkingPoints: \"\",\r\n emailSubject: \"\",\r\n emailBody: \"\"\r\n };\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isChecking, setIsChecking] = useState(false);\r\n const [isUsed, setIsUsed] = useState(false);\r\n\r\n const [salesTool, setSalesTool] = useState(initialState);\r\n\r\n const [videoFile, setVideoFile] = useState(null);\r\n const [videoPath, setVideoPath] = useState(null);\r\n\r\n useEffect(() => {\r\n if (salesToolId > 0) {\r\n setLoading(true);\r\n SalesToolService.Get(salesToolId).then(res => {\r\n setSalesTool(res);\r\n setEmailBody(res.emailBody);\r\n setWeeklySalesTalkingPoints(res.weeklySalesTalkingPoints);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n }, [])\r\n\r\n const checkName = (e) => {\r\n clearTimeout(timeoutId);\r\n setIsChecking(true);\r\n timeoutId = setTimeout(() => {\r\n formik.setFieldTouched('name');\r\n if (e != undefined && e.target.value == salesTool.name) {\r\n setIsUsed(false);\r\n setIsChecking(false);\r\n }\r\n else\r\n SalesToolService.Check(e == undefined ? formik.values.name : e.target.value).then(res => {\r\n console.log('finished');\r\n setIsUsed(res);\r\n setIsChecking(false);\r\n });\r\n }, 300);\r\n }\r\n\r\n const DeleteSalesToolVideo = (key) => {\r\n SalesToolService.DeleteSalesToolVideo(salesToolId, key)\r\n .then(res => {\r\n Alert({success: true, message: 'Video has been removed!'});\r\n }).catch(ex => {});\r\n }\r\n\r\n const CreateSalesTool = (values, setSubmitting) => {\r\n if (isUsed)\r\n return;\r\n //setLoading(true);\r\n setSubmitting(true);\r\n SalesToolService.Save(Helper.ConvertJsonToFormData({\r\n ...values,\r\n videoPath: videoPath,\r\n videoFile: videoFile ? videoFile[0].file : null\r\n })).then(res => {\r\n setSalesToolId(res);\r\n setSubmitting(false);\r\n setLoading(false);\r\n Alert({ success: true, message: \"Sales Tool has been saved!\" });\r\n }).catch(ex => {\r\n setSubmitting(false);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: salesTool,\r\n enableReinitialize: true,\r\n validationSchema: SalesToolValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n console.log(weeklySalesTalkingPoints);\r\n console.log(emailBody);\r\n CreateSalesTool({ ...values, weeklySalesTalkingPoints: weeklySalesTalkingPoints, emailBody: emailBody }, setSubmitting);\r\n }\r\n })\r\n\r\n return (\r\n <>\r\n\r\n {\r\n loading ?\r\n :\r\n\r\n \r\n
    \r\n \r\n 0 ? \"Update\" : \"Add New\") + \" Sales Tool\"}\r\n headerSize=\"sm\"\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n\r\n \r\n { formik.setFieldValue(\"availableOn\", null) }}\r\n options={{ dateFormat: \"m-d-Y\" }}\r\n value={formik.getFieldProps(\"availableOn\").value ? Helper.FormatToUSDate(formik.getFieldProps(\"availableOn\").value) : \"\"}\r\n onChange={date => {\r\n formik.setFieldValue(\"availableOn\", Helper.FormatToUSDate(date[0]));\r\n formik.setFieldTouched(\"availableOn\");\r\n }}\r\n inputState={\r\n formik.touched.availableOn && formik.errors.availableOn\r\n ? \"error\"\r\n : formik.touched.availableOn && formik.errors.availableOn == null ? \"success\" : \"\"\r\n }\r\n errorMessage={formik.errors.availableOn}\r\n />\r\n \r\n\r\n\r\n \r\n { formik.setFieldValue(\"availableUntil\", null) }}\r\n options={{ dateFormat: \"m-d-Y\" }}\r\n value={formik.getFieldProps(\"availableUntil\").value ? Helper.FormatToUSDate(formik.getFieldProps(\"availableUntil\").value) : \"\"}\r\n //onBlur={() => formik.setFieldTouched(\"availableUntil\")}\r\n onChange={date => {\r\n formik.setFieldValue(\"availableUntil\", Helper.FormatToUSDate(date[0]));\r\n formik.setFieldTouched(\"availableUntil\");\r\n }}\r\n inputState={\r\n formik.touched.availableUntil && formik.errors.availableUntil\r\n ? \"error\"\r\n : formik.touched.availableUntil && formik.errors.availableUntil == null ? \"success\" : \"\"\r\n }\r\n errorMessage={formik.errors.availableUntil}\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\n );\r\n}\r\n\r\nexport default CreateNewSalesToolPage;","// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport parse from 'html-react-parser';\r\n// COMPONENTS\r\nimport { Fade } from 'react-awesome-reveal';\r\n// ICONS\r\nimport { FiTool, FiPlay } from 'react-icons/fi';\r\nimport { RiChat1Line } from 'react-icons/ri';\r\nimport { HiOutlineMail } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport Button from '../../components/Button';\r\nimport FileUploadBlock from '../../components/FileUploadBlock';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../constants/constants'\r\nimport * as SalesToolService from '../../services/salestool.service';\r\n\r\nconst SalesToolDetailsPage = (props) => {\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [salesToolId, setSalesToolId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n\r\n const initialState = {\r\n id: salesToolId,\r\n name: \"\",\r\n description: \"\",\r\n videoPath: \"\",\r\n weeklySalesTalkingPoints: \"\",\r\n emailSubject: \"\",\r\n emailBody: \"\"\r\n };\r\n\r\n const [salesTool, setSalesTool] = useState(initialState);\r\n\r\n useEffect(() => {\r\n SalesToolService.Get(salesToolId)\r\n .then(res => {\r\n setSalesTool(res);\r\n })\r\n .catch(ex => { });\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 {salesTool.description}\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 salesTool.videoPath ?\r\n \r\n : <>\r\n }\r\n \r\n {/* \r\n {\r\n salesTool.videoPath ?\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 {parse(salesTool.weeklySalesTalkingPoints)}\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 {salesTool.emailSubject}\r\n

    \r\n navigator.clipboard.writeText(salesTool.emailSubject)}\r\n />\r\n
    \r\n\r\n \r\n \r\n

    \r\n {parse(salesTool.emailBody)}\r\n

    \r\n
    \r\n \r\n {\r\n // special setup to copy the formatted text...\r\n var r = document.createRange();\r\n r.selectNode(document.getElementById(\"emailBody\"));\r\n window.getSelection().removeAllRanges();\r\n window.getSelection().addRange(r);\r\n document.execCommand('copy');\r\n window.getSelection().removeAllRanges();\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 SalesToolDetailsPage;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport '../../node_modules/react-image-gallery/styles/css/image-gallery.css';\r\n// COMPONENTS\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport ImageGallery from 'react-image-gallery';\r\n// ICONS\r\nimport { BsTagFill, BsPlayFill, BsImage } from 'react-icons/bs';\r\nimport { FiTool, FiPlay } from 'react-icons/fi';\r\nimport { RiChat1Line } from 'react-icons/ri';\r\nimport { HiOutlineMail } from 'react-icons/hi';\r\nimport { FaInfo } from 'react-icons/fa';\r\nimport { IoIosImages } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport ContentHeader from './ContentHeader';\r\nimport ContentBlock from './ContentBlock';\r\nimport Image from './Image';\r\nimport FileUploadBlock from './FileUploadBlock';\r\n// SERVICES AND HELPERS\r\nimport constants from '../constants/constants';\r\nimport { HelpOutlineRounded } from '@material-ui/icons';\r\nimport * as Helper from '../helpers/helper';\r\n\r\nconst ContentModal = (props) => {\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 {props.contentDescription ? props.contentDescription : \"No Description Available\"}\r\n

    \r\n
    \r\n
    \r\n\r\n {\r\n props.additionalDetails &&\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n

    \r\n {props.additionalDetails}\r\n

    \r\n
    \r\n
    \r\n }\r\n\r\n {\r\n props.primaryVideoUrl &&\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n {/* {\r\n salesTool.videoPath &&\r\n \r\n } */}\r\n \r\n \r\n \r\n }\r\n\r\n {\r\n props.secondaryVideoUrl &&\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n {/* {\r\n salesTool.videoPath &&\r\n \r\n } */}\r\n \r\n \r\n \r\n }\r\n\r\n {\r\n props.primaryImageUrl &&\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 props.secondaryImageUrl &&\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n \r\n \r\n }\r\n {\r\n props.multipleImageList != null &&\r\n props.multipleImageList.length > 0 &&\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n {\r\n return { original: `${constants.API_URL}Attachments/${x}`, thumbnail: `${constants.API_URL}Attachments/${x}` }\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 ContentModal;","import axiosInstance from './api.service'\r\nimport constants from '../constants/constants'\r\n\r\nconst endpointOrigin = \"Quote/\";\r\n\r\nconst Save = async (model) => await axiosInstance.post(endpointOrigin + 'Save', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SaveClient = async (quoteId, client) => await axiosInstance.post(endpointOrigin + `SaveClient?quoteId=${quoteId}&client=${client}`, { }, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SaveNote = async (quoteId, note) => await axiosInstance.post(endpointOrigin + `SaveNote?quoteId=${quoteId}¬e=${note}`, { }, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SaveProduct = async (model) => await axiosInstance.post(endpointOrigin + 'SaveProduct', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SetQuoteProductMonths = async (model) => await axiosInstance.post(endpointOrigin + 'SetQuoteProductMonths', model, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteQuote = async (quoteId) => await axiosInstance.post(endpointOrigin + `DeleteQuote?quoteId=${quoteId}`, {}, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SubmitQuote = async (quoteId) => await axiosInstance.post(endpointOrigin + `SubmitQuote?quoteId=${quoteId}`, {}, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst Get = async (id) => await axiosInstance.get(endpointOrigin + '?id=' + id, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetAll = async (companyId) => await axiosInstance.get(endpointOrigin + `GetAll?companyId=${companyId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetQuoteProducts = async (quoteId) => await axiosInstance.get(endpointOrigin + `GetQuoteProducts?quoteId=${quoteId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetBonusBuyNumbers = async (quoteId) => await axiosInstance.get(endpointOrigin + `GetBonusBuyNumbers?quoteId=${quoteId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DeleteQuoteProduct = async (quoteProductId) => await axiosInstance.get(endpointOrigin + `DeleteQuoteProduct?quoteProductId=${quoteProductId}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst GetQuoteSummaryData = async (hashId) => await axiosInstance.get(endpointOrigin + `GetQuoteSummaryData?hashId=${hashId}`, {\r\n requestHandlerEnabled: false,\r\n responseHandlerEnabled: true\r\n})\r\n\r\nconst SaveQuoteLevelMonths = async (quoteId, months) => await axiosInstance.get(endpointOrigin + `SaveQuoteLevelMonths?quoteId=${quoteId}&months=${months}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst SendQuoteSummaryEmail = async (quoteId, emails) => await axiosInstance.get(endpointOrigin + `SendQuoteSummaryEmail?quoteId=${quoteId}&emails=${emails}`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst DuplicateQuote = async (quoteId) => axiosInstance.post(endpointOrigin + 'DuplicateQuote?quoteId=' + quoteId, { }, constants.REQUIRE_INTERCEPTORS)\r\n\r\nconst IsMonthsRequired = async () => await axiosInstance.get(endpointOrigin + `IsMonthsRequired`, constants.REQUIRE_INTERCEPTORS)\r\n\r\nexport {\r\n Save,\r\n SaveClient,\r\n SaveNote,\r\n SaveProduct,\r\n SetQuoteProductMonths,\r\n DeleteQuote,\r\n SubmitQuote,\r\n Get,\r\n GetAll,\r\n GetQuoteProducts,\r\n GetBonusBuyNumbers,\r\n DeleteQuoteProduct,\r\n GetQuoteSummaryData,\r\n SendQuoteSummaryEmail,\r\n SaveQuoteLevelMonths,\r\n DuplicateQuote,\r\n IsMonthsRequired\r\n}","import * as Yup from \"yup\";\r\n\r\nexport default Yup.object().shape({\r\n client: Yup.string().required(\"Please enter a Client name\")\r\n});","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useFormik } from 'formik';\r\nimport _ from 'lodash';\r\n// COMPONENTS\r\nimport { Fade } from 'react-awesome-reveal';\r\n// ICONS\r\nimport { FaCheck } from 'react-icons/fa';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport ActionBlock from '../../components/ActionBlock';\r\nimport Button from '../../components/Button';\r\nimport ContentModal from '../../components/ContentModal';\r\nimport InputBlock from '../../components/InputBlock';\r\n// SERVICES AND HELPERS\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as CategoryService from '../../services/category.service';\r\nimport * as QuoteService from '../../services/quote.service';\r\nimport QuoteCreateValidator from '../../helpers/validators/sales-management/QuoteCreateValidator';\r\n\r\nconst QuoteSelectedCategoryPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const companyId = Helper.LoggedInCompanyId();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [show, setShow] = useState(false);\r\n\r\n const initialState = {\r\n id: 0,\r\n client: \"\",\r\n companyId: companyId,\r\n quoteCategory: []\r\n }\r\n\r\n const [selectedCompany, setSelectedCompany] = useState(companyId);\r\n const [companies, setCompanies] = useState([]);\r\n const [categories, setCategories] = useState([]);\r\n const [category, setCategory] = useState([]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n LoadCompanies(selectedCompany);\r\n }, [])\r\n\r\n const LoadCompanies = (defaultCompanyId) => {\r\n if (role == \"SuperAdmin\") {\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n let companySaved = res.find(x => x.id == defaultCompanyId);\r\n setSelectedCompany(Helper.SetOptionModel(companySaved.businessName, companySaved.id));\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadCategories(companyId);\r\n }\r\n\r\n const LoadCategories = (companyId) => {\r\n // setLoading(true);\r\n CategoryService.GetAll(companyId, false).then(res => {\r\n setCategories(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const LoadCategorySample = (categoryId) => {\r\n CategoryService.Get(categoryId).then(res => {\r\n setCategory(res);\r\n setShow(true);\r\n }).catch(ex => { });\r\n }\r\n\r\n const SubmitCategoriesForQuote = (values, setSubmitting) => {\r\n setLoading(true);\r\n setSubmitting(true);\r\n QuoteService.Save(values).then(res => {\r\n props.history.push(\"/campaign/\" + res);\r\n }).catch(ex => {\r\n setLoading(false);\r\n setSubmitting(false);\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: initialState,\r\n enableReinitialize: true,\r\n validationSchema: QuoteCreateValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n SubmitCategoriesForQuote(values, setSubmitting);\r\n }\r\n });\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onBlur={() => formik.setFieldTouched(\"companyId\")}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n formik.setFieldValue(\"companyId\", option.value);\r\n setSelectedCompany(option);\r\n LoadCategories(option.value);\r\n }}\r\n inputState={\r\n formik.touched.companyId && formik.errors.companyId\r\n ? \"error\"\r\n : formik.touched.companyId && formik.errors.companyId == null\r\n ? \"success\"\r\n : \"\"\r\n }\r\n errorMessage={formik.errors.companyId}\r\n />\r\n : <>\r\n }\r\n\r\n \r\n {\r\n <>\r\n {\r\n selectedCompany == 0 ? <> :\r\n \r\n \r\n {\r\n // formik.setFieldValue(\"client\", e.target.value);\r\n // }}\r\n />\r\n \r\n \r\n }\r\n\r\n \r\n {\r\n categories.map((category, index) =>\r\n LoadCategorySample(category.id)}\r\n toggleIconPosition=\"left\"\r\n toggleIcon={\r\n x.categoryId == category.id) != undefined ? \"success--clr\" : \"grey--clr\"} />\r\n }\r\n toggleIconBackground={_.find(formik.values.quoteCategory, x => x.categoryId == category.id) != undefined ? \"lighter-green--bg\" : \"light-grey--bg\"}\r\n toggleIconOnClick={() => {\r\n if (_.find(formik.values.quoteCategory, x => x.categoryId == category.id) != undefined)\r\n _.remove(formik.values.quoteCategory, x => x.categoryId == category.id);\r\n else\r\n formik.setFieldValue(\"quoteCategory\", Array.from(new Set([\r\n ...formik.values.quoteCategory,\r\n { categoryId: category.id }\r\n ])));\r\n }}\r\n />\r\n )\r\n }\r\n \r\n \r\n }\r\n \r\n
    \r\n {\r\n selectedCompany == 0 ? <> :\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 QuoteSelectedCategoryPage;","/* eslint-disable no-restricted-globals */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport swal from 'sweetalert';\r\nimport moment from 'moment';\r\n// COMPONENTS\r\nimport MUIDataTable from \"mui-datatables\";\r\n// ICONS\r\nimport { HiCheck } from 'react-icons/hi';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport Button from '../../components/Button';\r\nimport SelectBlock from '../../components/SelectBlock';\r\n// SERVICES AND HELPERS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as QuoteService from '../../services/quote.service';\r\n\r\nconst QuoteListingPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const [loading, setLoading] = useState(false);\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(Helper.LoggedInCompanyId());\r\n const [data, setData] = useState([]);\r\n const loggedInUser = JSON.parse(localStorage.getItem('user'))\r\n const loggedInUserName = loggedInUser.firstName + ' ' + loggedInUser.lastName;\r\n\r\n useEffect(() => {\r\n if (role == 'SuperAdmin') {\r\n setLoading(true);\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadQuotes(selectedCompany);\r\n }, []);\r\n\r\n const LoadQuotes = (companyId) => {\r\n setLoading(true);\r\n QuoteService.GetAll(companyId).then(res => {\r\n setData(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const DuplicateQuote = (quoteId) => {\r\n setLoading(true);\r\n QuoteService.DuplicateQuote(quoteId).then(res => {\r\n Alert({ success: true, message: 'Campaign has been copied!' });\r\n LoadQuotes(selectedCompany);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const DeleteQuote = (quoteId) => {\r\n swal({\r\n title: 'Are you sure?',\r\n text: 'Are you sure you want to delete this campaign?',\r\n icon: 'warning',\r\n buttons: true,\r\n dangerMode: true\r\n }).then(willDelete => {\r\n if (willDelete) {\r\n QuoteService.DeleteQuote(quoteId).then(res => {\r\n LoadQuotes(selectedCompany);\r\n Alert({ success: true, message: 'Campaign has been deleted!' });\r\n }).catch(ex => { });\r\n }\r\n });\r\n }\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Action',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n \r\n\r\n {\r\n const hasConfirmed = confirm(`Are you sure you want to duplicate this campaign?`);\r\n\r\n if (hasConfirmed) {\r\n DuplicateQuote(data[dataIndex].id)\r\n }\r\n }}\r\n size=\"xs\"\r\n className=\"warning--bg\"\r\n />\r\n\r\n {\r\n role == 'User' ?\r\n <> :\r\n DeleteQuote(data[dataIndex].id)}\r\n size=\"xs\"\r\n className=\"danger--bg\"\r\n />\r\n }\r\n \r\n\r\n\r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"client\",\r\n label: \"Client\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"createdOn\",\r\n label: \"Created On\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n

    {moment(data[dataIndex].createdOn).format('MM/DD/YYYY, hh:mm a')}

    \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"createdByUser\",\r\n label: \"Created By\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n filterList: [loggedInUserName],\r\n }\r\n },\r\n {\r\n name: \"isSubmitted\",\r\n label: \"Submitted?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isSubmitted ? : }\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 loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCompany(option);\r\n LoadQuotes(option.value);\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 QuoteListingPage;","// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\n// COMPONENTS\r\nimport MUIDataTable from \"mui-datatables\";\r\n// ICONS\r\nimport { HiCheck } from 'react-icons/hi';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport Button from '../../components/Button';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\n// SERVICES AND HELPERS\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as MediaTypeService from '../../services/mediatype.service';\r\n\r\nconst MediaTypeListingPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const [loading, setLoading] = useState(false);\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(Helper.LoggedInCompanyId());\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n if (role == 'SuperAdmin') {\r\n setLoading(true);\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadMediaTypes(selectedCompany);\r\n }, []);\r\n\r\n const LoadMediaTypes = (companyId) => {\r\n setLoading(true);\r\n MediaTypeService.GetAll(companyId).then(res => {\r\n setData(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Action',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"Active?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isActive ? : }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCompany(option);\r\n LoadMediaTypes(option.value);\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 MediaTypeListingPage;","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport MUIDataTable from \"mui-datatables\";\r\n// ICONS\r\nimport { HiCheck } from 'react-icons/hi';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport Button from '../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as CategoryService from '../../services/category.service';\r\n\r\nconst CategoryListingPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const [loading, setLoading] = useState(false);\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(Helper.LoggedInCompanyId());\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n if (role == 'SuperAdmin') {\r\n setLoading(true);\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadCategories(selectedCompany);\r\n }, []);\r\n\r\n const LoadCategories = (companyId) => {\r\n setLoading(true);\r\n CategoryService.GetAll(companyId, true).then(res => {\r\n setData(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: ' ',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"mediaType.name\",\r\n label: \"Media Type\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n }\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"Active?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isActive ? : }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCompany(option);\r\n LoadCategories(option.value);\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 CategoryListingPage;","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport MUIDataTable from \"mui-datatables\";\r\n// ICONS\r\nimport { HiCheck } from 'react-icons/hi';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport TextAreaBlock from '../../components/TextAreaBlock';\r\nimport CheckboxBlock from '../../components/CheckboxBlock';\r\nimport Button from '../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as ProductService from '../../services/product.service';\r\n\r\nconst ProductListingPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const [loading, setLoading] = useState(false);\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(Helper.LoggedInCompanyId());\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n if (role == 'SuperAdmin') {\r\n setLoading(true);\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n else\r\n LoadProducts(selectedCompany);\r\n }, []);\r\n\r\n const LoadProducts = (companyId) => {\r\n setLoading(true);\r\n ProductService.GetAll(companyId).then(res => {\r\n setData(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: ' ',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"category.name\",\r\n label: \"Category\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"audienceSize\",\r\n label: \"Audience Size\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"price\",\r\n label: \"Price\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"Active?\",\r\n options: {\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isActive ? : }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCompany(option);\r\n LoadProducts(option.value);\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 ProductListingPage;","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport MUIDataTable from \"mui-datatables\";\r\n// ICONS\r\nimport { HiCheck } from 'react-icons/hi';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport Button from '../../components/Button';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\n// SERVICES AND HELPERS\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as SalesToolService from '../../services/salestool.service';\r\nimport moment from 'moment';\r\n\r\nconst SalesToolListingPage = (props) => {\r\n const isSalesCoach = Helper.IsLoggedInUserSalesCoach();\r\n const role = Helper.IsUserLoggedIn();\r\n const [loading, setLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n SalesToolService.GetAll().then(res => {\r\n setData(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Action',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n {\r\n isSalesCoach == true || role == 'SuperAdmin' ?\r\n : <>\r\n\r\n }\r\n \r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"availableOn\",\r\n label: \"Available On\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].availableOn ? moment(data[dataIndex].availableOn).format(\"MMMM Do YYYY\") : \"--\"}\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"availableUntil\",\r\n label: \"Available Until\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].availableUntil ? moment(data[dataIndex].availableUntil).format(\"MMMM Do YYYY\") : \"--\"}\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"Active?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isActive ? : }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\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 SalesToolListingPage;","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport MUIDataTable from \"mui-datatables\";\r\n// ICONS\r\nimport { HiCheck } from 'react-icons/hi';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport Button from '../../components/Button';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\n\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\n\r\nconst CompanyListingPage = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n CompanyService.GetAll().then(res => {\r\n setData(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Action',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"businessName\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"Active?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isActive ? : }\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"canAccessSalesTools\",\r\n label: \"Sales Tools?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].canAccessSalesTools ? : }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\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 CompanyListingPage;","// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport _ from 'lodash';\r\n// COMPONENTS\r\nimport MUIDataTable from \"mui-datatables\";\r\n// ICONS\r\nimport { HiCheck } from 'react-icons/hi';\r\nimport { CgClose } from 'react-icons/cg';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport Button from '../../components/Button';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\n\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as UserService from '../../services/user.service';\r\n\r\nconst UserListingPage = (props) => {\r\n const role = Helper.LoggedInUserRole();\r\n const [loading, setLoading] = useState(false);\r\n const [companies, setCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(Helper.LoggedInCompanyId());\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n if (role == 'SuperAdmin') {\r\n setLoading(true);\r\n CompanyService.GetAll().then(res => {\r\n setCompanies(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n LoadUsers(0);\r\n }\r\n else\r\n LoadUsers(selectedCompany);\r\n }, []);\r\n\r\n const LoadUsers = (companyId) => {\r\n setLoading(true);\r\n UserService.GetAll(companyId).then(res => {\r\n if(role != 'SuperAdmin'){\r\n res = _.filter(res, x => x.companyId != null);\r\n console.log(res);\r\n setData(res);\r\n }\r\n else{\r\n setData(res);\r\n\r\n }\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Action',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => {\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 name: \"name\",\r\n label: \"Name\",\r\n options: {\r\n filter: true,\r\n sort: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].firstName} {data[dataIndex].lastName}\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"username\",\r\n label: \"Username\",\r\n options: {\r\n filter: true,\r\n sort: true\r\n }\r\n },\r\n {\r\n name: \"email\",\r\n label: \"Email\",\r\n options: {\r\n filter: true,\r\n sort: true\r\n }\r\n },\r\n {\r\n name: \"isAdmin\",\r\n label: \"Admin?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isAdmin ? : }\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"isSalesCoach\",\r\n label: \"Sales Coach?\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n return (\r\n <>\r\n {data[dataIndex].isSalesCoach ? : }\r\n \r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n role == \"SuperAdmin\" ?\r\n \r\n Helper.SetOptionModel(x.businessName, x.id))}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setSelectedCompany(option);\r\n LoadUsers(option.value);\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 UserListingPage;","// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport _ from 'lodash';\r\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\r\nimport { useFormik } from 'formik';\r\nimport Moment from 'react-moment';\r\n// COMPONENTS\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n// ICONS\r\nimport { FaRegListAlt } from 'react-icons/fa';\r\n// CUSTOM COMPONENTS\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport Section from '../../components/Section';\r\nimport FormBlock from '../../components/FormBlock';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport Button from '../../components/Button';\r\nimport ActionBlock from '../../components/ActionBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\n// SERVICES AND HELPERS\r\nimport { Alert } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as CompanyService from '../../services/company.service';\r\nimport * as UserService from '../../services/user.service';\r\n\r\nconst ClientListManagePage = (props) => {\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [userId, setProductId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [saving, setSaving] = useState(false);\r\n\r\n const initialState = {\r\n id: 0,\r\n client: \"\",\r\n type: \"\",\r\n value: 0,\r\n isActive: true\r\n }\r\n\r\n const [client, setClient] = useState(initialState);\r\n const [type, setType] = useState(null);\r\n const [clients, setClients] = useState([]);\r\n const [audits, setAudits] = useState([]);\r\n const [showAudit, setShowAudit] = useState(false);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n GetUsersClientList();\r\n }, [])\r\n\r\n const GetUsersClientList = () => {\r\n UserService.GetUsersClientList(userId)\r\n .then(res => {\r\n setClients(res);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const handleOnDragEnd = (result) => {\r\n if (!result.destination) return;\r\n\r\n const items = Array.from(clients);\r\n const [reorderedItem] = items.splice(result.source.index, 1);\r\n items.splice(result.destination.index, 0, reorderedItem);\r\n\r\n setLoading(true);\r\n UserService.UpdateUsersClientList(items).then(res => {\r\n setClients(items);\r\n setLoading(false);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const GetUserClientList = (id) => {\r\n UserService.GetUserClientList(id)\r\n .then(res => {\r\n setClient(res);\r\n formik.setFieldValue('client', res.client);\r\n formik.setFieldValue('value', res.value);\r\n setType(Helper.SetOptionModel(res.type));\r\n }).catch(ex => { });\r\n }\r\n\r\n const RemoveUserClientList = (id) => {\r\n UserService.RemoveUserClientList(id)\r\n .then(res => {\r\n GetUsersClientList();\r\n }).catch(ex => { });\r\n }\r\n\r\n const SubmitUserClientList = (userClientList) => {\r\n setSaving(true);\r\n UserService.SubmitUserClientList(userClientList)\r\n .then(res => {\r\n GetUsersClientList();\r\n Alert({ success: true, message: \"Client has been saved!\" });\r\n setSaving(false);\r\n formik.setFieldValue('client', \"\");\r\n formik.setFieldValue('value', 0);\r\n setType(null);\r\n }).catch(ex => {\r\n setSaving(true);\r\n });\r\n }\r\n\r\n const formik = useFormik({\r\n initialValues: client,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n SubmitUserClientList(values);\r\n }\r\n })\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n <>\r\n \r\n
    \r\n \r\n \r\n {\r\n (userId == 0 && clients.length < 20) ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Helper.SetOptionModel(x))}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n setType(option);\r\n formik.setFieldValue(\"type\", option.value);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n : <>\r\n }\r\n \r\n \r\n {(provided) => (\r\n
      \r\n {\r\n clients.map(({ id, client, type, value }, index) =>\r\n \r\n {(provided) => (\r\n \r\n {\r\n userId == 0 ?\r\n { GetUserClientList(id) }}\r\n secondaryActionText=\"Remove\"\r\n secondaryActionBackground=\"danger--bg\"\r\n secondaryActionOnClick={() => { RemoveUserClientList(id) }}\r\n toggleIconPosition=\"right\"\r\n toggleIconBackground=\"lighter-blue--bg\"\r\n toggleIcon={\r\n \r\n }\r\n toggleIconOnClick={() => {\r\n UserService.GetUserClientListAudits(id)\r\n .then(res => {\r\n setAudits(res);\r\n setShowAudit(true);\r\n }).catch(ex => { });\r\n }}\r\n /> :\r\n \r\n }\r\n toggleIconOnClick={() => {\r\n UserService.GetUserClientListAudits(id)\r\n .then(res => {\r\n setAudits(res);\r\n setShowAudit(true);\r\n }).catch(ex => { });\r\n }}\r\n />\r\n }\r\n \r\n )}\r\n \r\n\r\n )\r\n }\r\n {provided.placeholder}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {\"Audit Log\"}\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 audits.map((audit, index) =>\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
    AuditDate
    {audit.change}\r\n \r\n {audit.changeDate}\r\n \r\n
    \r\n \r\n }\r\n
    \r\n \r\n setShowAudit(false)}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ClientListManagePage;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport TextAreaBlock from '../../components/TextAreaBlock';\r\nimport FileUploadBlock from '../../components/FileUploadBlock';\r\nimport CheckboxBlock from '../../components/CheckboxBlock';\r\nimport Button from '../../components/Button';\r\n\r\nconst FormSamplePage = (props) => {\r\n\r\n const [propNameVisible, setPropNameVisible] = useState(false);\r\n const [isActive, setIsActive] = useState(true);\r\n const [isDefault, setIsDefault] = useState(false);\r\n const [toggle, setToggle] = useState(false);\r\n\r\n const companies = [\r\n { value: \"Primtek\", label: \"Primtek\" },\r\n { value: \"TFG\", label: \"TFG\" },\r\n { value: \"\", label: \"\" },\r\n ]\r\n\r\n const departments = [\r\n { value: \"Accounting\", label: \"Accounting\" },\r\n { value: \"Sales and Marketing\", label: \"Sales and Marketing\" },\r\n { value: \"Software Development\", label: \"Software Development\" },\r\n { value: \"Human Resources\", label: \"Human Resources\" },\r\n ]\r\n\r\n const roles = [\r\n { value: \"Admininstrator\", label: \"Administrator\" },\r\n { value: \"Developer\", label: \"Developer\" },\r\n { value: \"Sales\", label: \"Sales\" },\r\n { value: \"Employee\", label: \"Employee\" },\r\n ];\r\n\r\n const togglePropNames = () => {\r\n setPropNameVisible(!propNameVisible);\r\n setIsDefault(!isDefault);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n togglePropNames()}\r\n buttonSize=\"xs\"\r\n />\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \" : \"Last Name\"}\r\n placeholder={propNameVisible ? \"bordered (boolean)\" : \"\"}\r\n bordered\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\n\r\n \r\n \r\n \r\n\r\n \r\n \" : \"Phone Number\"}\r\n placeholder={propNameVisible ? 'mask=\"(999) 999-9999\"' : \"\"}\r\n mask=\"(999) 999-9999\"\r\n bordered\r\n />\r\n \r\n\r\n \r\n \" : \"Additional Notes\"}\r\n inputState={propNameVisible ? \"warning\" : \"\"}\r\n warningMessage=\"Additional notes cannot be blank\"\r\n bordered\r\n />\r\n \r\n\r\n \r\n here' : \"\"}\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 setIsDefault(!isDefault)}\r\n checked={isDefault}\r\n />\r\n\r\n {\r\n propNameVisible ?\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 FormSamplePage;","// DEPENDENCIES\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\r\nimport _ from 'lodash';\r\nimport hash from 'hash-it';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Chip } from '@material-ui/core';\r\nimport Alert from 'react-bootstrap/Alert';\r\n// ICONS\r\nimport { IoChevronUp, IoChevronDown } from 'react-icons/io5';\r\nimport { BiDollar } from 'react-icons/bi';\r\nimport { FiEdit3 } from 'react-icons/fi';\r\nimport { FaCheck } from 'react-icons/fa'\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport TextHeader from '../../components/TextHeader';\r\nimport Button from '../../components/Button';\r\nimport BottomSheet from '../../components/BottomSheet';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport ActionBlock from '../../components/ActionBlock';\r\nimport TextAreaBlock from '../../components/TextAreaBlock';\r\nimport ContentModal from '../../components/ContentModal';\r\nimport ContentHeader from '../../components/ContentHeader';\r\n// SERVICES AND HELPERS\r\nimport { Alert as AlertBox } from '../../helpers/Alert';\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as QuoteService from '../../services/quote.service';\r\nimport * as CategoryService from '../../services/category.service';\r\nimport * as ProductService from '../../services/product.service';\r\n\r\nconst QuoteManagePage = (props) => {\r\n const { location } = props\r\n const urlId = location.pathname.split('/').pop();\r\n const [quoteId, setQuoteId] = useState(parseInt(urlId) == urlId ? urlId : 0);\r\n const initialQuoteState = {\r\n id: quoteId,\r\n client: \"\",\r\n note: \"\",\r\n companyId: 0,\r\n quoteCategory: [],\r\n quoteProduct: []\r\n }\r\n\r\n const [bottomSheetOpen, setBottomSheetOpen] = useState(false);\r\n const [quote, setQuote] = useState(initialQuoteState);\r\n const [products, setProducts] = useState([]);\r\n const [product, setProduct] = useState([]);\r\n const [selectedCategory, setSelectedCategory] = useState(null);\r\n const [allCategories, setAllCategories] = useState([]);\r\n const [categories, setCategories] = useState([]);\r\n const [category, setCategory] = useState([]);\r\n const [quoteItems, setQuoteItems] = useState([]);\r\n const [note, setNote] = useState(quote.note);\r\n const [bonusData, setBonusData] = useState({ currentTotal: 0, currentTotalBonus: 0, currentRemainingBonus: 0, amountUntilNextBonus: 0, nextBonusAmount: 0 });\r\n const [showNote, setShowNote] = useState(false);\r\n const [showCategorySelect, setShowCategorySelect] = useState(false);\r\n const [showCategorySample, setShowCategorySample] = useState(false);\r\n const [showProductSample, setShowProductSample] = useState(false);\r\n const [saving, setSaving] = useState(false);\r\n const [isMonthsRequired, setIsMonthsRequired] = useState(false);\r\n const [selectedCategoryIndex, setSelectedCategoryIndex] = useState(-1);\r\n const body = document.querySelector('body');\r\n const durationOptions = Helper.GetMonthOptionsForDuration(12) ?? [];\r\n const [errorMessage, setErrorMessage] = useState([]);\r\n\r\n useEffect(() => {\r\n QuoteService.Get(quoteId).then(res => {\r\n setQuote(res);\r\n if (res.hashId == null) {\r\n res.hashId = hash(res.id);\r\n QuoteService.Save(res).then(res => { }).catch(ex => { });\r\n }\r\n setNote(res.note);\r\n\r\n LoadQuoteCategories();\r\n\r\n CategoryService.GetAll(res.companyId, false).then(res => {\r\n setAllCategories(res);\r\n }).catch(ex => { });\r\n });\r\n LoadQuoteItems(quoteId);\r\n QuoteService.IsMonthsRequired().then((res) => {\r\n setIsMonthsRequired(res);\r\n }).catch((ex) => { });\r\n }, [])\r\n\r\n const LoadQuoteItems = async (quoteId) => {\r\n return await QuoteService.GetQuoteProducts(quoteId).then(res => {\r\n setQuoteItems(res);\r\n QuoteService.GetBonusBuyNumbers(quoteId).then(res => {\r\n setBonusData(res);\r\n });\r\n return res;\r\n });\r\n }\r\n\r\n const LoadCategory = (categoryId) => {\r\n CategoryService.Get(categoryId)\r\n .then(res => {\r\n setSelectedCategory(res);\r\n }).catch(ex => { });\r\n }\r\n\r\n const LoadCategorySampleModal = (categoryId) => {\r\n CategoryService.Get(categoryId)\r\n .then(res => {\r\n setCategory(res);\r\n setShowCategorySample(true);\r\n }).catch(ex => { });\r\n }\r\n\r\n const LoadProducts = (categoryId) => {\r\n ProductService.GetAllForCategory(categoryId)\r\n .then(res => {\r\n setProducts([]);\r\n setProducts(res);\r\n }).catch(ex => { });\r\n }\r\n\r\n const LoadProductSampleModal = (productId) => {\r\n ProductService.Get(productId)\r\n .then(res => {\r\n console.log(res);\r\n setProduct(res);\r\n setShowProductSample(true);\r\n }).catch(ex => { });\r\n }\r\n\r\n const LoadQuoteCategories = () => {\r\n CategoryService.GetSelectedForQuote(quoteId).then(res => {\r\n setCategories(res);\r\n }).catch(ex => { });\r\n }\r\n\r\n const SaveQuoteClient = (client) => {\r\n QuoteService.SaveClient(quoteId, client).then(res => { }).catch(ex => { });\r\n }\r\n\r\n const SaveQuoteProduct = (model) => {\r\n QuoteService.SaveProduct(model).then(res => {\r\n LoadQuoteItems(quoteId);\r\n }).catch(ex => { });\r\n }\r\n\r\n const SetQuoteProductMonths = (model) => {\r\n QuoteService.SetQuoteProductMonths(model).then(res => { }).catch(ex => { });\r\n return;\r\n }\r\n\r\n const SubmitQuote = async () => {\r\n if (isMonthsRequired) {\r\n const newQuoteItems = await LoadQuoteItems(quoteId);\r\n const filteredQuoteItems = newQuoteItems.filter((x) => !x.isBonus);\r\n const errList = [];\r\n\r\n console.log(newQuoteItems);\r\n\r\n filteredQuoteItems.forEach(item => {\r\n if (item.quantity !== ((item.months === '' || !item.months) ? 0 : item.months.split(',').length)) {\r\n console.log('Item is ', item);\r\n errList.push(`${item.product.name} has ${item.quantity} quantity but only ${(item.months === '' || !item.months) ? 0 : item.months.split(',').length} month(s) has been selected `)\r\n }\r\n });\r\n setErrorMessage(errList);\r\n if (errList.length > 0) {\r\n AlertBox({ success: false, message: \"Error! Please review the error message!\" });\r\n return;\r\n }\r\n }\r\n\r\n setSaving(true);\r\n QuoteService.SubmitQuote(quoteId).then(res => {\r\n setSaving(false);\r\n AlertBox({ success: true, message: \"Quote has been submitted!\" });\r\n props.history.push(\"/campaign-summary/\" + quote.hashId);\r\n }).catch(ex => {\r\n setSaving(false);\r\n });\r\n }\r\n\r\n const toggleBottomSheet = () => {\r\n setBottomSheetOpen(!bottomSheetOpen);\r\n if (!bottomSheetOpen) {\r\n disableBodyScroll(body);\r\n } else {\r\n enableBodyScroll(body);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n

    \r\n Client\r\n

    \r\n \r\n {\r\n SaveQuoteClient(e.target.value);\r\n }}\r\n />\r\n \r\n
    \r\n\r\n \r\n \r\n setShowNote(true)}\r\n iconLeft={\r\n \r\n }\r\n />\r\n \r\n
    \r\n\r\n
    \r\n \r\n {errorMessage.length > 0 && (\r\n setErrorMessage([])} dismissible>\r\n Error!\r\n {\r\n errorMessage.map((err) => (\r\n

    {err}

    \r\n ))\r\n }\r\n
    \r\n )}\r\n
    \r\n \r\n setShowCategorySelect(true)}\r\n size=\"xs\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n categories.map((category, index) =>\r\n x.product.categoryId == category.id) ? \"primary\" : \"\"}\r\n onClick={() => {\r\n LoadCategory(category.id);\r\n LoadProducts(category.id);\r\n setSelectedCategoryIndex(index);\r\n }}\r\n className={`chip-container-override ${index === selectedCategoryIndex ? \"lighter-green--bg success--clr\" : \"lighter-grey--bg mid-grey--clr\"} mb-3`}\r\n />\r\n )\r\n }\r\n \r\n \r\n \r\n {\r\n selectedCategory &&\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n

    \r\n {selectedCategory ? selectedCategory.description : \"\"}\r\n

    \r\n \r\n LoadCategorySampleModal(selectedCategory.id)}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n {\r\n products.filter((x) => x.isActive).map((product, index) =>\r\n \r\n \r\n \r\n

    \r\n {product.name}\r\n

    \r\n

    \r\n {product.description}\r\n

    \r\n \r\n LoadProductSampleModal(product.id)}\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n product.usesFreeInput ?\r\n x.productId == product.id && !x.isBonus)?.quantity}\r\n onBlur={(e) => {\r\n SaveQuoteProduct({\r\n quoteId: quoteId,\r\n productId: product.id,\r\n quantity: e.target.value,\r\n price: product.price,\r\n isBonus: false\r\n });\r\n }}\r\n /> :\r\n Helper.SetOptionModel(x))}\r\n defaultValue={Helper.SetOptionModel(_.find(quoteItems, x => x.productId == product.id && !x.isBonus)?.quantity)}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n SaveQuoteProduct({\r\n quoteId: quoteId,\r\n productId: product.id,\r\n quantity: option.value,\r\n price: product.price,\r\n isBonus: false\r\n });\r\n }}\r\n />\r\n }\r\n \r\n\r\n \r\n {\r\n product.usesFreeInput ?\r\n x.productId == product.id && x.isBonus)?.quantity}\r\n onBlur={(e) => {\r\n SaveQuoteProduct({\r\n quoteId: quoteId,\r\n productId: product.id,\r\n quantity: e.target.value,\r\n price: product.price,\r\n isBonus: true\r\n });\r\n }}\r\n /> :\r\n Helper.SetOptionModel(x))}\r\n defaultValue={Helper.SetOptionModel(_.find(quoteItems, x => x.productId == product.id && x.isBonus)?.quantity)}\r\n onChange={option => {\r\n option = option === null ? [] : option;\r\n SaveQuoteProduct({\r\n quoteId: quoteId,\r\n productId: product.id,\r\n quantity: option.value,\r\n price: product.price,\r\n isBonus: true\r\n });\r\n }}\r\n />\r\n }\r\n \r\n\r\n {\r\n !product.hasServiceDuration &&\r\n \r\n Helper.SetOptionModel(x))}\r\n defaultValue={_.split(_.find(quoteItems, x => x.productId == product.id)?.months, ',').map(x => x == \"\" ? null : Helper.SetOptionModel(x))}\r\n onChange={options => {\r\n options = options === null ? [] : options;\r\n SetQuoteProductMonths({\r\n quoteId: quoteId,\r\n productId: product.id,\r\n months: options.map(x => x.value).join()\r\n });\r\n }}\r\n disabled={_.find(quoteItems, x => x.productId == product.id) == null}\r\n />\r\n \r\n }\r\n \r\n
    \r\n
    \r\n\r\n \r\n

    \r\n Item Price\r\n

    \r\n

    \r\n ${product.price.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}\r\n

    \r\n
    \r\n
    \r\n )\r\n }\r\n \r\n \r\n }\r\n
    \r\n
    \r\n\r\n toggleBottomSheet()}\r\n height=\"full\"\r\n previewHeight={86}\r\n closeOnMaskPress\r\n rounded\r\n icon={\r\n bottomSheetOpen ? : \r\n }\r\n iconContainerClass=\"chevron\"\r\n >\r\n \r\n \r\n \r\n \r\n

    Total

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

    ${bonusData.currentTotal.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}

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

    Current Level Bonus

    \r\n

    Bonus Buy Dollars Remaining

    \r\n

    Amount Until Next Bonus

    \r\n

    Next Level Bonus

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

    {bonusData.currentTotalBonus == 0 ? '--' : ('$' + bonusData.currentTotalBonus.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"))}

    \r\n

    ${bonusData.currentRemainingBonus.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}

    \r\n

    {bonusData.amountUntilNextBonus == 0 ? '--' : ('$' + bonusData.amountUntilNextBonus.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"))}

    \r\n

    {bonusData.nextBonusAmount == 0 ? '--' : ('$' + bonusData.nextBonusAmount.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"))}

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

    Qty

    \r\n

    Price

    \r\n

    Bonus

    \r\n

    Item Name

    \r\n

    Mos.

    \r\n

    Subtotal

    \r\n

    Actions

    \r\n
    \r\n {\r\n quoteItems.map((item, index) =>\r\n \r\n

    {item.quantity}

    \r\n

    ${item.product.price.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}

    \r\n

    \r\n

    \r\n \r\n

    \r\n

    \r\n

    {item.product.name}

    \r\n

    {item.duration}

    \r\n

    ${(item.quantity * item.product.price).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}

    \r\n QuoteService.DeleteQuoteProduct(item.id)\r\n .then(res => {\r\n setQuoteItems(_.filter(quoteItems, x => x.id != item.id));\r\n LoadProducts(selectedCategory.id);\r\n LoadQuoteItems(quoteId);\r\n })\r\n .catch(ex => { })}\r\n >\r\n Remove\r\n \r\n
    \r\n )\r\n }\r\n
    \r\n \r\n \r\n\r\n {/* Note Update */}\r\n \r\n {\"Quote Note\"}\r\n \r\n \r\n setNote(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n setShowNote(false)}\r\n />\r\n {\r\n setSaving(true);\r\n QuoteService.SaveNote(quoteId, note)\r\n .then(res => {\r\n setSaving(false);\r\n AlertBox({ success: true, message: \"Note has been saved!\" });\r\n setShowNote(false);\r\n })\r\n .catch(ex => {\r\n setSaving(false);\r\n })\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n\r\n {/* Category Selection */}\r\n \r\n \r\n \r\n {\r\n <>\r\n {\r\n allCategories.map((category, index) =>\r\n LoadCategorySampleModal(category.id)}\r\n toggleIconPosition=\"left\"\r\n toggleIcon={\r\n x.id == category.id) != undefined ? \"success--clr\" : \"grey--clr\"} />\r\n }\r\n toggleIconBackground={_.find(categories, x => x.id == category.id) != undefined ? \"lighter-green--bg\" : \"light--bg\"}\r\n toggleIconOnClick={() => {\r\n if (_.find(categories, x => x.id == category.id) != undefined)\r\n _.remove(categories, x => x.id == category.id);\r\n else\r\n categories.push({ id: category.id });\r\n }}\r\n />\r\n )\r\n }\r\n \r\n }\r\n \r\n \r\n {\r\n LoadQuoteCategories();\r\n setShowCategorySelect(false);\r\n }}\r\n />\r\n {\r\n setSaving(true);\r\n QuoteService.Save({ id: quoteId, companyId: quote.companyId, client: quote.client, quoteCategory: _.map(categories, function (category) { return { categoryId: category.id } }) })\r\n .then(res => {\r\n setSaving(false);\r\n LoadQuoteCategories();\r\n setShowCategorySelect(false);\r\n AlertBox({ success: true, message: \"Category Selection Updated!\" });\r\n })\r\n .catch(ex => {\r\n setSaving(false);\r\n LoadQuoteCategories();\r\n setShowCategorySelect(false);\r\n })\r\n }\r\n }\r\n />\r\n \r\n \r\n\r\n {/* Content Modals */}\r\n setShowCategorySample(false)}\r\n size=\"xl\"\r\n centered\r\n contentHeader={category.name}\r\n contentDescription={category.description}\r\n primaryVideoHeader=\"Sample Video\"\r\n primaryVideoUrl={category.videoPath}\r\n primaryImageHeader=\"Logo Image\"\r\n primaryImageUrl={category.logoPath}\r\n secondaryImageHeader=\"Sample Image\"\r\n secondaryImageUrl={category.imagePath}\r\n />\r\n\r\n setShowProductSample(false)}\r\n size=\"xl\"\r\n centered\r\n contentHeader={product.name}\r\n primaryButtonText={`Audience Size: ${product.audienceSize && product.audienceSize.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}`}\r\n contentDescription={product.description}\r\n additionalDetailsHeader=\"Best Used For\"\r\n additionalDetails={product.bestUsedFor}\r\n primaryVideoHeader=\"Sample Video\"\r\n primaryVideoUrl={product.sampleVideoPath}\r\n primaryImageHeader=\"Primary Sample Image\"\r\n primaryImageUrl={\r\n product.productImage\r\n ? _.find(product.productImage, x => x.isPrimary)\r\n ? _.find(product.productImage, x => x.isPrimary).imagePath\r\n : (product.productImage.length > 0\r\n ? product.productImage[0].imagePath\r\n : \"\")\r\n : \"\"\r\n }\r\n multipleImageListHeader=\"Sample Images\"\r\n multipleImageList={\r\n product.productImage\r\n ? _.find(product.productImage, x => x.isPrimary)\r\n ? _.filter(product.productImage, x => !x.isPrimary).map(x => x.imagePath)\r\n : _.drop(product.productImage).map(x => x.imagePath)\r\n : \"\"\r\n }\r\n />\r\n \r\n );\r\n}\r\n\r\nexport default QuoteManagePage;","// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst SmallCard = (props) => {\r\n\r\n const cardSize = {\r\n 'sm': '--small',\r\n 'md': '--medium',\r\n 'lg': '--large'\r\n };\r\n\r\n const textPosition = {\r\n 'center': 'centered',\r\n 'left': 'left',\r\n 'right': 'right'\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n

    \r\n {props.title}\r\n

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

    \r\n {props.description}\r\n

    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default SmallCard;","// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\n// COMPONENTS\r\nimport Table from 'react-bootstrap/Table';\r\nimport MUIDataTable from \"mui-datatables\";\r\nimport { VictoryBar, VictoryPie, VictoryChart, VictoryAxis, VictoryTheme, VictoryLegend, VictoryLabel } from 'victory';\r\nimport ImageGallery from 'react-image-gallery';\r\nimport { Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Chip } from '@material-ui/core';\r\nimport { Alert } from '../../helpers/Alert';\r\n// ICONS\r\nimport { BiDollar } from 'react-icons/bi';\r\nimport { FormatListBulletedSharp } from '@material-ui/icons';\r\nimport { RiMailSendLine } from 'react-icons/ri';\r\nimport { FaCopy } from \"react-icons/fa\";\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../components/Section';\r\nimport ContentBlock from '../../components/ContentBlock';\r\nimport CustomBlock from '../../components/CustomBlock';\r\nimport ContentHeader from '../../components/ContentHeader';\r\nimport Button from '../../components/Button';\r\nimport InputBlock from '../../components/InputBlock';\r\nimport MediaBlock from '../../components/MediaBlock';\r\nimport LoadingScreen from '../../components/LoadingScreen';\r\nimport HeaderBlock from '../../components/HeaderBlock';\r\nimport SelectBlock from '../../components/SelectBlock';\r\nimport SmallCard from '../../components/SmallCard';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../constants/constants';\r\nimport * as Helper from '../../helpers/helper';\r\nimport * as QuoteService from '../../services/quote.service';\r\n\r\nconst CampaignSummaryPage = (props) => {\r\n const loggedIn = Helper.IsUserLoggedIn();\r\n const [loading, setLoading] = useState(false);\r\n const { location } = props\r\n const hashId = location.pathname.split('/').pop();\r\n const [quote, setQuote] = useState(null);\r\n const [levelMonths, setLevelMonths] = useState(1);\r\n const [levelSpending, setLevelSpending] = useState(0);\r\n\r\n const [showSend, setShowSend] = useState(false);\r\n const [email, setEmail] = useState(null);\r\n const [sending, setSending] = useState(false);\r\n const [monthlySpendData, setMonthlySpendData] = useState([]);\r\n const durationOptions = Helper.GetMonthOptionsForDuration(12) ?? [];\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n QuoteService.GetQuoteSummaryData(hashId)\r\n .then(res => {\r\n setQuote(res);\r\n UpdateLevelMonthsAndSpending(res.bonusData.levelMonths ?? 1);\r\n setLevelSpending(res.bonusData.currentTotal / (res.bonusData.levelMonths ?? 1));\r\n setLoading(false);\r\n handleMonthlySpendData(res.products);\r\n }).catch(ex => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const handleMonthlySpendData = (products) => {\r\n const data = products.filter(x => x.months && !x.isBonus).map(x => ({ months: x.months, price: x.price }))\r\n const monthPriceMap = {};\r\n\r\n data.forEach(entry => {\r\n entry.months.split(',').forEach(month => {\r\n const trimmedMonth = month.trim();\r\n monthPriceMap[trimmedMonth] = (monthPriceMap[trimmedMonth] || 0) + entry.price;\r\n });\r\n });\r\n\r\n const result = Object.keys(monthPriceMap).map(month => ({ month, price: monthPriceMap[month] }));\r\n console.log('Result is ', result);\r\n const tempArr = [];\r\n durationOptions.forEach((duration) => {\r\n const obj = { month: duration };\r\n const findResult = result.find((x) => x.month === duration);\r\n obj['price'] = (findResult) ? findResult.price : 0\r\n\r\n tempArr.push(obj);\r\n });\r\n setMonthlySpendData(tempArr);\r\n // const inputMonths = result.map(entry => moment(entry.month, 'MMMM YYYY'));\r\n // const firstMonth = moment.min(inputMonths);\r\n // const allMonths = _.times(12, index => firstMonth.clone().add(index, 'months'));\r\n // const resultArray = allMonths.map(month => {\r\n // const matchingEntry = result.find(entry => month.isSame(moment(entry.month, 'MMMM YYYY'), 'month'));\r\n // return {\r\n // month: month.format('MMMM YYYY'),\r\n // price: matchingEntry ? matchingEntry.price : 0\r\n // };\r\n // });\r\n\r\n // setMonthlySpendData(resultArray);\r\n };\r\n\r\n const UpdateLevelMonthsAndSpending = (months) => {\r\n setLevelMonths(months);\r\n setLevelSpending(quote ? quote.bonusData.currentTotal / months : 0);\r\n }\r\n\r\n const UpdateQuoteLevelMonths = (months) => {\r\n QuoteService.SaveQuoteLevelMonths(quote.id, months).then(res => { }).catch(ex => { });\r\n }\r\n\r\n let level = 1;\r\n const bonusBuyOptions = quote ? _.map(quote.companyBonusLevelData, function (x) { return { id: x.id, level: 'Level ' + level++, amount: x.breakpoint, percentage: x.reward } }) : [];\r\n const mediaLabels = quote ? _.map(quote.mediaUsageData, function (x) { return x.name }) : [];\r\n const mediaDistribution = quote ? _.map(quote.mediaUsageData, function (x) { return { id: x.id, media: x.name, percentage: x.distribution, label: `${x.distribution}%` } }) : [];\r\n const spendingDistribution = quote ? _.map(quote.mediaUsageData, function (x) { return { id: x.id, media: x.name, spent: x.totalSpending, label: `$${x.totalSpending}` } }) : [];\r\n const sampleImages = quote ? _.map(quote.productImages, function (x) { return { original: constants.API_URL + 'Attachments' + x.imagePath, thumbnail: constants.API_URL + 'Attachments' + x.imagePath } }) : []\r\n const normalBuys = quote ? _.filter(quote.products, x => x.isBonus == false && x.quantity > 0 && x.product.isActive) : [];\r\n const bonusBuys = quote ? _.filter(quote.products, x => x.isBonus == true && x.quantity > 0 && x.product.isActive) : [];\r\n\r\n const options = {\r\n selectableRows: \"none\",\r\n download: false,\r\n filter: false,\r\n print: false,\r\n search: false,\r\n sort: false,\r\n enableNestedDataAccess: '.'\r\n }\r\n\r\n const normalLogos = [\r\n {\r\n name: \"\",\r\n label: \"Image\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n {\r\n let primaryImage = _.find(normalBuys[dataIndex].product.productImage, x => x.isPrimary)\r\n return (\r\n \r\n );\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n\r\n const bonusLogos = [\r\n {\r\n name: \"\",\r\n label: \"Image\",\r\n options: {\r\n filter: false,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n {\r\n let primaryImage = _.find(bonusBuys[dataIndex].product.productImage, x => x.isPrimary)\r\n return (\r\n \r\n );\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n\r\n const columns = [\r\n {\r\n name: \"product.name\",\r\n label: \"Product\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"product.category.name\",\r\n label: \"Category\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"product.category.mediaType.name\",\r\n label: \"Media\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"quantity\",\r\n label: \"Quantity\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"price\",\r\n label: \"Price\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"months\",\r\n label: \"Months\",\r\n options: {\r\n filter: true,\r\n sort: false\r\n }\r\n }\r\n ];\r\n\r\n const normalColumns = [\r\n {\r\n name: \"total\",\r\n label: \"Total\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n let val = normalBuys[dataIndex].quantity * normalBuys[dataIndex].price;\r\n return val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n }\r\n },\r\n {\r\n name: \"product.audienceSize\",\r\n label: \"Audience Size\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n let val = normalBuys[dataIndex].quantity * normalBuys[dataIndex].product.audienceSize;\r\n return val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const bonusColumns = [\r\n {\r\n name: \"total\",\r\n label: \"Total\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n let val = bonusBuys[dataIndex].quantity * bonusBuys[dataIndex].price;\r\n return val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n }\r\n },\r\n {\r\n name: \"product.audienceSize\",\r\n label: \"Audience Size\",\r\n options: {\r\n filter: true,\r\n sort: false,\r\n customBodyRenderLite: (dataIndex) => {\r\n let val = bonusBuys[dataIndex].quantity * bonusBuys[dataIndex].product.audienceSize;\r\n return val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const copyToClipboard = (textToCopy) => {\r\n // Use the Clipboard API if available\r\n if (navigator.clipboard) {\r\n navigator.clipboard.writeText(textToCopy)\r\n .then(() => {\r\n console.log('Text copied to clipboard');\r\n })\r\n .catch((err) => {\r\n console.error('Unable to copy to clipboard', err);\r\n });\r\n } else {\r\n // Fallback for older browsers using document.execCommand\r\n const textarea = document.createElement('textarea');\r\n textarea.value = textToCopy;\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(textarea);\r\n console.log('Text copied to clipboard');\r\n }\r\n\r\n Alert({ success: true, message: 'Link has been copied to clipboard!' });\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n loading ?\r\n :\r\n <>\r\n \r\n \r\n
    \r\n \r\n\r\n {/* CAMPAIGN HEADER */}\r\n \r\n {\r\n // setShowSend(true);\r\n copyToClipboard(`http://app.thecampaignplanner.com/campaign-summary/${hashId}`);\r\n }}\r\n primaryButtonIconLeft={\r\n \r\n }\r\n secondaryButtonText={loggedIn ? \"Back\" : \"\"}\r\n secondaryButtonBackgroundColor=\"danger--bg\"\r\n secondaryButtonOnClick={() => {\r\n props.history.push(\"/campaign/\" + quote.id);\r\n }}\r\n />\r\n \r\n\r\n {/* TOTALS AND BONUS BUY MATRIX */}\r\n \r\n \r\n \r\n \r\n \r\n

    Level

    \r\n

    Breakpoint

    \r\n

    Reward

    \r\n
    \r\n {\r\n bonusBuyOptions.map((option, index) =>\r\n \r\n

    {option.level}

    \r\n

    ${option.amount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}

    \r\n

    ${option.percentage.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}

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

    Total

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

    ${quote ? quote.bonusData.currentTotal.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") : '0.00'}

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

    Current Level Bonus

    \r\n

    Bonus Buy Dollars Remaining

    \r\n

    Amount Until Next Bonus

    \r\n

    Next Level Bonus

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

    {quote ? quote.bonusData.currentTotalBonus == 0 ? '--' : ('$' + quote.bonusData.currentTotalBonus.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")) : ''}

    \r\n

    ${quote ? quote.bonusData.currentRemainingBonus.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") : '0.00'}

    \r\n

    {quote ? quote.bonusData.amountUntilNextBonus == 0 ? '--' : ('$' + quote.bonusData.amountUntilNextBonus.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")) : ''}

    \r\n

    {quote ? quote.bonusData.nextBonusAmount == 0 ? '--' : ('$' + quote.bonusData.nextBonusAmount.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")) : ''}

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

    Level Monthly Spending

    \r\n \r\n Helper.SetOptionModel(x))}\r\n bordered\r\n onChange={options => {\r\n options = options === null ? [] : options;\r\n UpdateLevelMonthsAndSpending(options.value);\r\n UpdateQuoteLevelMonths(options.value);\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 quote?.products?.filter(x => x.product.whyChoseThisTactic && x.quantity > 0 && x.product.isActive).length === 0 ? <> : (\r\n \r\n )\r\n }\r\n\r\n {\r\n quote && quote.products.filter(x => x.quantity > 0 && x.product.isActive).map(x => x.product).map((product) => (\r\n product.whyChoseThisTactic && (\r\n <>\r\n \r\n

    {product.whyChoseThisTactic}

    \r\n
    \r\n \r\n )\r\n ))\r\n }\r\n
    \r\n\r\n {/* MEDIA BUYS */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* BONUS BUYS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* CHARTS */}\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 (`$${x / 1000}k`)}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n {/* MONTHLY SPEND */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n durationOptions.map((x) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n monthlySpendData.map((x, i) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n
    {x}
    ${x.price.toFixed(2)}
    \r\n
    \r\n
    \r\n
    \r\n {/* SAMPLES SECTION */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n {\"Send Summary\"}\r\n \r\n \r\n setEmail(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n setShowSend(false)}\r\n />\r\n {\r\n setSending(true);\r\n QuoteService.SendQuoteSummaryEmail(quote.id, email)\r\n .then(res => {\r\n setSending(false);\r\n setShowSend(false);\r\n })\r\n .catch(ex => {\r\n setSending(false);\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 CampaignSummaryPage;","// DEPENDENCIES\r\nimport React, { useState, useEffect, useRef } from 'react';\r\n// COMPONENTS\r\nimport { Switch, Route } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport { PrivateRoute } from '../src/components/PrivateRoute';\r\nimport { PublicHeaderRoute } from '../src/components/PublicHeaderRoute';\r\n// AUTHENTICATION PAGES\r\nimport LoginPage from '../src/pages/LoginPage';\r\nimport ForgotPasswordPage from './pages/ForgotPasswordPage';\r\n// MAIN PAGES\r\nimport DashboardPage from '../src/pages/DashboardPage';\r\nimport QuotePage from './pages/QuotePage';\r\n// USER MANAGEMENT\r\nimport CreateNewClientPage from './pages/user-management/CreateNewClientPage';\r\nimport UserManagePage from './pages/user-management/UserManagePage';\r\n// PRODUCT MANAGEMENT PAGES\r\nimport CreateNewMediaTypePage from './pages/product-management/CreateNewMediaTypePage';\r\nimport CreateNewCategoryPage from './pages/product-management/CreateNewCategoryPage';\r\nimport CreateNewProductPage from './pages/product-management/CreateNewProductPage';\r\n// SALES MANAGEMENT PAGES\r\nimport CreateNewSalesToolPage from './pages/sales-management/CreateNewSalesToolPage';\r\nimport SalesToolDetailsPage from './pages/sales-management/SalesToolDetailsPage';\r\nimport QuoteSelectedCategoryPage from './pages/sales-management/QuoteSelectedCategoryPage';\r\n// LISTING PAGES\r\nimport QuoteListingPage from './pages/listing-management/QuoteListingPage';\r\nimport MediaTypeListingPage from './pages/listing-management/MediaTypeListingPage';\r\nimport CategoryListingPage from './pages/listing-management/CategoryListingPage';\r\nimport ProductListingPage from './pages/listing-management/ProductListingPage';\r\nimport SalesToolListingPage from './pages/listing-management/SalesToolListingPage';\r\nimport CompanyListingPage from './pages/user-management/CompanyListingPage';\r\nimport UserListingPage from './pages/user-management/UserListingPage';\r\nimport ClientListManagePage from './pages/user-management/ClientListManagePage';\r\n// SAMPLE/REFERENCE PAGES\r\nimport FormExamplePage from './pages/samples/FormSamplePage';\r\n// QUOTE MANAGEMENT PAGES\r\nimport QuoteManagePage from './pages/sales-management/QuoteManagePage';\r\nimport CampaignSummaryPage from './pages/sales-management/CampaignSummaryPage';\r\n\r\nexport function Routes(props) {\r\n\r\n const [isLoggedIn, setIsLoggedIn] = useState(true);\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 \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\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n );\r\n}","// DEPENDENCIES\r\nimport React from 'react';\r\nimport { BrowserRouter as Router } from 'react-router-dom';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\n// COMPONENTS\r\nimport { Routes } from './Routes';\r\n// STYLESHEETS\r\nimport '../src/assets/css/main.css';\r\nimport '../src/assets/custom/custom.css';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nexport default function App() {\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","const reportWebVitals = onPerfEntry => {\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 React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(\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":""}