{"version":3,"sources":["app/context/PayTraceModalContext.js","app/context/PayTraceModalProvider.js","app/components/CustomBlock.js","app/components/Button.js","app/components/TextBlock.js","app/components/Image.js","app/components/MobileHeader.js","app/components/HeaderBlock.js","app/components/Overlay.js","app/assets/img/Logo.svg","app/components/Drawer.js","app/components/SideSheet.js","app/components/ListBlock.js","app/redux/authRedux.js","app/routes/PrivateRoute.js","app/components/DrawerNavigation.js","app/components/SelectBlock.js","app/components/Chip.js","app/components/DotIndicator.js","app/components/TextHeader.js","app/components/ContentHeader.js","app/components/ModalBlock.js","app/components/Section.js","app/components/InputBlock.js","app/components/FormBlock.js","app/redux/alertToastRedux.js","app/redux/confirmModalRedux.js","app/redux/rootReducer.js","app/redux/store.js","app/services/interceptor/axiosInterceptor.js","app/constants/constants.js","app/services/apiService.js","app/services/cms/payTraceService.js","app/pages/cms/forms/PayTraceAuthForm.js","app/components/ContentBlock.js","app/helpers/helper.js","app/pages/cms/forms/PayTracePaymentForm.js","app/assets/img/logo_pay-trace.svg","app/components/PayTraceModal.js","app/services/cms/menuItemService.js","app/components/HeaderNavigation.js","app/assets/img/app-store-badge.svg","app/assets/img/google-play-badge.svg","app/components/FooterBlock.js","app/routes/CMSRoute.js","app/components/ConfirmModal.js","app/components/AlertToast.js","app/pages/admin/authentication/_partials/ForgotPasswordBlock.js","app/helpers/validators/user/LoginValidator.js","app/services/management/userService.js","app/pages/admin/authentication/LoginPage.js","app/components/CheckboxBlock.js","app/helpers/validators/user/RegisterUserValidator.js","app/helpers/validators/user/UpdatePasswordValidator.js","app/helpers/validators/user/EditUserValidator.js","app/pages/admin/management/user/UserListingPage.js","app/pages/cms/management/menu-item/MenuItemListingPage.js","app/components/FixedActionsBar.js","app/services/cms/pageService.js","app/helpers/validators/cms/menuItem/menuItemValidator.js","app/pages/cms/management/menu-item/MenuItemManagementPage.js","app/pages/cms/management/page/PageListingPage.js","app/components/TextAreaBlock.js","app/components/FileUploadBlock.js","app/services/cms/contentSectionService.js","app/helpers/validators/cms/page/pageValidator.js","app/pages/cms/management/page/PageManagementPage.js","app/services/cms/bannerService.js","app/pages/cms/management/content-section/ContentSectionListingPage.js","app/components/SelectablePreview.js","app/assets/img/content-section_default.svg","app/assets/img/content-section_reversed.svg","app/assets/img/content-section_full-width.svg","app/assets/img/content-section_full-width-padded.svg","app/assets/img/content-section_text-only.svg","app/assets/img/content-section_floating-card.svg","app/assets/img/banner-section_dynamic.svg","app/assets/img/content-section_custom.svg","app/helpers/validators/cms/contentSection/ContentSectionValidator.js","app/pages/cms/management/content-section/ContentSectionManagementPage.js","app/assets/img/banner-section.svg","app/helpers/validators/cms/banner/BannerValidator.js","app/helpers/validators/cms/banner/BannerItemValidator.js","app/services/cms/bannerItemService.js","app/pages/cms/management/content-section/BannerManagementPage.js","app/services/cms/assetService.js","app/helpers/validators/cms/asset/AssetValidator.js","app/pages/cms/management/resources/AssetsAndResourcesPage.js","app/services/cms/footerItemService.js","app/helpers/validators/cms/footerItem/FooterItemValidator.js","app/pages/cms/management/footer-items/FooterItemListingPage.js","app/components/ContentSection.js","app/components/Banner.js","app/components/ContactForm.js","app/assets/img/banner-image_default.png","app/assets/img/background-decoration_dark-light-waves.svg","app/pages/cms/pages/ContactPage.js","app/components/MemberListing.js","app/assets/img/member-image-placeholder.png","app/pages/cms/pages/MemberListingPage.js","app/pages/cms/pages/PaymentsPage.js","app/services/cms/blogService.js","app/pages/cms/management/blog/BlogListingPage.js","app/helpers/validators/cms/blog/BlogValidator.js","app/pages/cms/management/blog/BlogManagementPage.js","app/components/ContentStrip.js","app/pages/cms/pages/BlogsAndReviewsListingPage.js","app/assets/img/homepage-banner-image_default.png","app/assets/img/home-services_tax.png","app/assets/img/home-services_business.png","app/assets/img/home-services_financial.png","app/pages/cms/pages/HomePage.js","app/services/cms/homeService.js","app/pages/cms/pages/DynamicCMSPage.js","app/Routes.js","app/App.js","reportWebVitals.js","index.js"],"names":["PayTraceModalContext","React","createContext","PayTraceModalProvider","_ref","children","modalState","setModalState","useState","isPayTraceModalOpen","setIsPayTraceModalOpen","isOpen","prevState","_jsx","Provider","value","CustomBlock","props","className","style","concat","defaultProps","Button","text","size","type","to","onClick","isTextUppercase","isBadge","isLoading","isDisabled","buttonSubActions","isSubActionsVisible","iconLeft","iconRight","history","useHistory","_jsxs","_Fragment","navigateToPath","path","push","lg","md","sm","xs","xxs","disabled","AiOutlineLoading","TextBlock","link","containerClassName","position","color","actionText","actionTextColor","actionBackgroundColor","actionSize","actionIconRight","isTargetBlank","isPadded","isUppercase","hasAction","left","center","right","href","target","rel","Image","hasRoundCorners","source","alt","title","src","MobileHeader","backgroundColor","leftItemImageSource","leftItemImageTo","leftItemImageAlt","leftItem","leftItemTo","leftItemOnClick","rightItem","rightItemOnClick","hasBottomShadow","process","HeaderBlock","hasReturnAction","hasBorder","leftItemText","leftItemTextColor","centerItemText","centerItemTextColor","rightItemText","rightItemTextColor","primaryButtonText","primaryButtonTo","primaryButtonColor","primaryButtonClassName","primaryButtonOnClick","primaryButtonSize","secondaryButtonText","secondaryButtonTo","secondaryButtonColor","secondaryButtonClassName","secondaryButtonOnClick","secondaryButtonSize","returnActionIcon","HiChevronLeft","goBack","Overlay","isContained","overlayDarkness","hasLoader","animateShow","useSpring","opacity","from","loader","normal","dark","Drawer","hasOverlay","hasShadow","headerLogo","mobileLogo","navigationItems","footerItems","closeActionOnClick","willCloseOnMaskPress","Logo","IoClose","SideSheet","ListBlock","titleColor","tooltipText","tooltipTextColor","tooltipBackgroundColor","iconLeftBadgeText","iconLeftBadgeTextColor","iconLeftBadgeBackgroundColor","iconRightText","iconRightTextColor","iconRightBackgroundColor","badgeText","badgeTextColor","badgeColor","onDoubleClick","isCollapsed","hasRoundIconRight","isTooltipVisible","setIsTooltipVisible","onMouseEnter","onMouseLeave","width","actionTypes","initialAuthState","user","firstName","lastName","username","authToken","refreshToken","isAdmin","reducer","persistReducer","storage","key","whitelist","state","arguments","length","undefined","action","token","payload","userDetail","decodedToken","jwt_decode","IsAdmin","actions","login","logout","connect","auth","component","Component","rest","companyIconPath","cmsInfo","isDrawerOpen","setIsDrawerOpen","navigationTitleVisible","setNavigationTitleVisible","subMenuVisible","setSubMenuVisible","sideSheetOpen","setSideSheetOpen","body","document","querySelector","iconSize","menuIconColor","iconColor","toggleDrawer","setTimeout","enableBodyScroll","toggleSideSheet","disableBodyScroll","id","BsPeopleFill","isVisible","RiLayout5Fill","FiLogOut","websiteManagementItems","IoList","CgCopy","RiListCheck2","IoLinkSharp","CgWebsite","Route","render","HiMenuAlt4","filter","x","map","item","index","rotateIconRight","subMenuItems","hasSubMenu","HiChevronRight","window","open","rightItemPrimaryButtonColor","rightItemPrimaryButtonOnClick","rightItemSecondaryButtonText","rightItemSecondaryButtonColor","DrawerNavigation","headerItems","SelectBlock","label","labelColor","inputLabel","inputState","errorMessage","successMessage","warningMessage","placeholder","isAsync","isCreatable","isLabelLoading","isMulti","isRequired","inputStates","error","warning","success","tabIndex","marginTop","display","marginBottom","Async","classNamePrefix","CreatableSelect","Select","Chip","DotIndicator","hasDotIndicator","dotIndicatorColor","TextHeader","subtitle","subtitleSize","subtitleClassName","isCentered","iconLeftClassName","textSize","xl","mdlg","ContentHeader","headerSize","primaryButtonBackgroundColor","primaryButtonIconLeft","secondaryButtonBackgroundColor","secondaryButtonIconLeft","buttonSize","headerIcon","headerIconContainerClass","headerIconTo","headerIconOnClick","isPrimaryLinkTargetBlank","isSecondaryLinkTargetBlank","isButtonTextUppercase","isPrimaryButtonLoading","isPrimaryButtonDisabled","isSecondaryButtonLoading","isSecondaryButtonDisabled","isTitleCentered","openInNewTab","uppercaseText","Link","ModalBlock","closeIconColor","contentHeader","contentDescription","buttonActionsContainerClassName","primaryModalActionType","primaryModalActionText","primaryModalActionColor","secondaryModalActionType","secondaryModalActionText","secondaryModalActionColor","onHide","primaryModalActionOnClick","secondaryModalActionOnClick","hasCloseAction","isPrimaryActionHidden","isSecondaryActionHidden","isActionsCentered","Modal","show","centered","Section","hasNoContainer","isFullWidth","containerStyle","rowClassName","rowStyle","defaultMaskOptions","prefix","suffix","includeThousandsSeparator","thousandsSeparatorSymbol","allowDecimal","decimalSymbol","decimalLimit","integerLimit","allowNegative","InputBlock","mask","inputRightButtonText","inputRightButtonBackgroundColor","inputRightButtonTextColor","iconLeftOnClick","iconRightOnClick","inputRightButtonOnClick","isAutoFocus","isCurrency","currencyMask","createNumberMask","Flatpickr","autoFocus","paddingLeft","MaskedInput","guide","InputMask","maskChar","FormBlock","onSubmit","initialAlertState","visible","showAlert","model","hideAlert","initialConfirmModalState","btnAction","console","log","closeBtnAction","rightBtnText","isProcessing","showConfirmModal","hideConfirmModal","setProcessing","appReducer","combineReducers","alertToast","confirmModal","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","store","configureStore","rootReducer","devTools","enhancers","reduxBatch","persistor","persistStore","isEnabled","config","property","hasOwnProperty","defaultErrorHandler","async","message","Promise","resolve","response","then","res","data","Message","status","localStorage","removeItem","location","origin","Error","constants","API_URL","REQUIRE_INTERCEPTORS","requestHandlerEnabled","responseHandlerEnabled","CONTENT_SECTION","ContentSectionTypeDefault","ContentSectionTypeReversed","ContentSectionTypeFullWidth","ContentSectionTypeFullWidthPadded","ContentSectionTypeTextOnly","ContentSectionTypeCard","ContentSectionTypeBanner","ContentSectionDynamicBanner","ContentSectionCustom","LeftAlignment","RightAlignment","CenterAlignment","ButtonActionTypePage","ButtonActionTypeLink","ButtonActionTypePhoneNumber","ButtonActionTypeEmail","EXCEL_FILE_TYPES","REACT_API_INTEGRATOR_ID","axiosInstance","axios","create","baseURL","interceptors","request","use","getState","headers","Authorization","requestHandler","successHandler","err","originalConfig","url","_retry","rs","post","dispatch","_error","errorHandler","ENDPOINTORIGIN","PayTraceAuthForm","setAuthResponse","passwordVisible","setPasswordVisible","formik","useFormik","initialValues","password","values","setSubmitting","payTraceService","handleSubmit","name","onChange","handleChange","FiUser","FiLock","isSubmitting","isValid","ContentBlock","cols","getInputClasses","fieldname","touched","errors","convertJsonToFormData","json","form_data","FormData","Array","isArray","forEach","append","setToOptionModel","reOrderDnd","list","startIndex","endIndex","result","removed","splice","i","sortOrder","mapContentSectionName","protectJSInstanceStyles","cc","height","padding_right","padding_bottom","padding_left","font_size","font_color","border_color","border_style","background_color","label_margin","label_color","label_font_weight","input_padding","input_border_radius","input_border_width","input_font_weight","exp","code","authRedux","alert","authResponse","setPaymentResponse","handleModalClose","setIsLoading","payTraceInstance","setPayTraceInstance","paymentAmount","setPaymentAmount","useEffect","createProtectJSInstance","script","createElement","appendChild","onload","PTPayment","setup","authorization","clientKey","styles","instance","catch","onerror","handlePaymentSubmit","e","preventDefault","tokenizationResponse","paymentData","amount","hpf_token","enc_key","integrator_id","paymentDetails","accessToken","formattedResponse","status_Message","responseCode","response_Code","approvalCode","approval_Code","approvalMessage","approval_Message","transactionId","transaction_Id","handlePaymentAmount","input","numericValue","replace","parseFloat","helper","margin","justifyContent","PayTraceForm","useContext","paymentResponse","PayTraceLogo","FaUserCheck","FaRegCircleCheck","marginInline","PayTracePaymentForm","getAllMenuItems","get","isActive","getMenuItemsById","menuItemId","HeaderNavigation","phoneNumber","emailAddress","menuItemsBlockBackgroundColor","menuItemColor","menuToggleIconColor","menuToggleIconSize","mobileMenuItemColor","submenuBlockBackgroundColor","submenuItemColor","fixedNavigationBarBackgroundColor","logo","logoAlt","icon","iconAppearance","socialIconColor","socialIconBackgroundColor","primarySocialMediaLink","secondarySocialMediaLink","hasSearchBlock","menuItems","hasChipFilter","expandedMenuId","setExpandedMenuId","scroll","setScroll","SocialIconButton","socialIconButtonProps","displayIf","buttonColor","buttonText","socialIcon","onClickAction","background","onScroll","scrollCheck","scrollY","addEventListener","removeEventListener","iconAppearanceOptions","square","round","circle","handleMenuItemClick","menuItem","pageUrl","menuItemService","customLink","includes","navigateToPage","page","sendEmail","email","socialIconsRef","platform","youtubeLink","FaYoutube","twitterLink","FaTwitter","googleMapLink","viewBox","fill","xmlns","d","tikTokLink","fillRule","clipRule","instagramLink","RiInstagramLine","linkedInLink","FaLinkedinIn","facebookLink","FaFacebookF","FaPhoneAlt","callPhoneNumber","tel","TbMailFilled","colored","RiQuestionAnswerFill","FiMenu","socialItemsHeaderNav","socialItemsMobileNav","socialItemsDrawerNav","onKeyDown","predefinedFilter","sortBy","priceRange","categories","searchTerm","productTypes","featuredSections","skip","blur","autoBlur","defaultOptions","noOptionsMessage","inputValue","formatOptionLabel","option","filePath","FiFacebook","MdMailOutline","assignedMenuItems","submenuItem","TiArrowSortedDown","menuId","PayTraceModal","FooterBlock","imageSource","bottomFooterBackgroundColor","subheaderColor","subheaderClassName","companyName","copyrightTextColor","footerHeaderTextColor","appStoreLink","googlePlayLink","tiktokLink","hasSocialMediaIconColor","hasEmailSignUp","hasContactBlock","navigateToLink","socialItemsFooter","AppStoreBadge","GooglePlayBadge","Date","getFullYear","CMSRoute","cmsRouteProps","dynamicPageId","isBlog","companyLogoPath","isSubmenuFullWidth","hasSubmenu","destination","stores","googlePlayStoreLink","handleConfirm","handleCloseBtn","handleEnterKey","event","keyCode","padded","static","contentDescriptionClassName","info","FiThumbsUp","HiOutlineEmojiSad","BiShocked","HiOutlineLightBulb","ForgotPasswordBlock","returnActionOnClick","HiOutlineMail","Yup","shape","required","initialModel","forgotPasswordBlockVisible","setForgotPasswordBlockVisible","loginUser","userService","ex","finally","validationSchema","LoginValidator","getFieldProps","submitForm","CheckboxBlock","labelClassName","isChecked","checked","for","max","fullName","phone","min","confirmPassword","oneOf","nullable","oldPassword","userRegisterModel","initialUpdatePasswordModel","initialEditModel","registerModalVisible","setRegisterModalVisible","updatePasswordModalVisible","setUpdatePasswordRegisterModalVisible","editModalVisible","setEditModalVisible","isPasswordVisible","setIsPasswordVisible","isConfirmPasswordVisible","setIsConfirmPasswordVisible","userList","setUserList","updatePasswordModel","setUpdatePasswordModel","editUserModel","setEditUserModel","getAllUsers","regiser_user_formik","RegisterUserValidator","registerUser","update_password_user_formik","UpdatePasswordValidator","enableReinitialize","_ref2","updateUserPassword","edit_user_formik","EditUserValidator","_ref3","editUser","getUserDetails","userId","closeRegisterModal","resetForm","newPassword","put","closeEditModal","columnOptions","sort","print","download","columns","options","customBodyRenderLite","dataIndex","OverLay","IoPersonSharp","MUIDataTable","selectableRows","jumpToPage","textLabels","pagination","FiEye","FiEyeOff","isSortModalOpen","setIsSortModalOpen","setMenuItems","sortList","setSortList","getMenuItems","a","b","deleteMenuItem","delete","IoMdAddCircle","sortMenuItems","DragDropContext","onDragEnd","tempArr","Droppable","droppableId","droppableProvided","ref","innerRef","Draggable","draggableId","draggableProvided","draggableProps","dragHandleProps","FixedActionsBar","primaryActionText","primaryActionColor","primaryActionTo","isPrimaryActionDisabled","primaryActionOnClick","secondaryActionText","secondaryActionColor","secondaryActionTo","isSecondaryActionDisabled","secondaryActionOnClick","optionalActionText","optionalActionColor","optionalActionTo","optionalActionOnClick","getAllPages","pageId","parentMenuItemId","intialMenuItemModel","confirmModalRedux","useParams","menuItemModel","setMenuItemModel","selectedOptions","setSelectedOptions","parentMenuItem","pageOptions","setPageOptions","menuItemOptions","setMenuItemOptions","isModalVisible","setIsModalVisible","assignmentMenuItemOptions","setAssignmentMenuItemOptions","selectedAssignmentMenuItem","setSelectedAssignmentMenuItem","loadOptionsAndPopulateForm","MenuItemValidator","updateMenuItem","createMenuItem","pages","getPageOptions","getMenuItemOptions","getMenuItem","getMenuItemForAssignments","selectedOptionsFromApi","selectedPage","find","selectedMenuItem","pageService","pageList","assignmentlist","Number","menuItemList","removeAssignedMenuItem","isClearable","selectedOpt","setFieldValue","assignMenuItem","parentId","childMenuItemIds","closeMenuOnSelect","sortChildMenuItems","setPages","getPages","deletePage","TextAreaBlock","registerPlugin","FilePondPluginImageExifOrientation","FilePondPluginImagePreview","FileUploadBlock","forwardRef","labelIdle","FilePond","isBannerVisible","bannerImageFilePath","bannerColor","keywords","description","intialPageModel","bannerImage","contentSections","typeSelectionOptions","file","setFile","selectedOption","setSelectedOption","contentBannerTypeOption","setContentBannerTypeOption","selectedContentBannerTypeOption","setSelectedContentBannerTypeOption","pageModel","setPageModel","getOptions","PageValidator","updatePage","createPage","getPage","contentSectionService","hideContentSectionModal","deletePageContent","contentSectionBannerId","deleteBannerImage","bannerId","contentSectionId","onupdatefiles","FaSquare","SwatchesPicker","onChangeComplete","c","hex","MdOutlinePlaylistAdd","addContentSection","sortPageContents","sortOrders","setContentSections","isConfirmDeleteModalVisible","setIsConfirmDeleteModalVisible","getContentSections","deleteContentSection","deleteBanner","bannerService","SelectablePreview","isSelected","when","is","otherwise","rawHTML","alignment","imagePath","isFloatingCard","hasRoundedCorners","isTextOnly","primaryButtonActionType","primaryButtonLink","secondaryButtonActionType","secondaryButtonLink","Quill","register","ImageResize","initialContentSectionModel","image","primarButtonLink","format","linkTypes","alignmentOptions","components","CustomSectionImage","ContentSectionDefaultImage","ContentSectionReversedImage","ContentSectionFulWidthImage","ContentSectionFulWidthPaddedImage","ContentSectionTextOnlyImage","ContentSectionFloatingCardImage","DynamicBannerSectionImage","blogId","quillContainerRef","useRef","quillRef","contentSectionModel","setContentSectionModel","setAlignment","primaryActionType","setPrimaryActionType","secondaryActionType","setSecondaryActionType","modules","setModules","toolbar","container","header","font","align","indent","handlers","clipboard","matchVisual","imageResize","parchment","import","initialTop","quillWidth","applyStyles","isFixed","current","top","zIndex","boxShadow","borderRadius","transform","maxWidth","handleScroll","quill","offsetTop","offsetWidth","imageHandler","setAttribute","click","onchange","files","reader","FileReader","quillEditor","getEditor","range","getSelection","getLength","insertEmbed","readAsDataURL","prevModules","getContentSection","ContentSectionValidator","updateContentSection","createContentSection","fillSelectedOptions","selectedAlignment","selectedPrimaryActionType","selectedSecondaryActionType","contentSection","floatingCardProp","isTextOnlyProp","isPaddedProp","alignmentProp","showOrHideFields","opt","onMenuOpen","setFieldTouched","ReactQuill","theme","val","formats","initialBannerModel","bannerItems","BannerDynamicBanner","filePondRef","initialBannerItemModel","bannerModel","setBannerModel","bannerItemModel","setBannerItemModel","getBanner","BannerValidator","updateBanner","createBanner","formik_bannerItem","BannerItemValidator","updateBannerItem","createBannerItem","banner","bannerItem","bannerItemService","resetBannerItemForm","resetBannerItemEditFormFields","removeFiles","removeBannerItem","bannerItemId","sortBannerItems","streetAddress1","streetAddress2","city","zipCode","primaryWeekDayHours","primaryWeekEndHours","secondaryWeekDayHours","secondaryWeekEndHours","googleAnalyticsId","initialAssetModel","companyLogo","companyIcon","googleAnalyticsLink","seo","facebookPixelCode","assetModel","setAsset","logoFile","setLogoFile","iconFile","setIconFile","logoRef","iconRef","fetchAssets","AssetValidator","saveAsset","assetService","initialFooterItemModel","setFooterItems","footerItemModel","setFooterItemModel","getFooterItems","FooterItemValidator","createFooterItem","updateFooterItem","footerItem","footerItemService","closeFooterItemModal","getFooterItem","footerItemId","deleteFooterItem","sortFooterItems","ContentSection","descriptionColor","cardBackgroundColor","isPrimaryActionTargetBlank","isSecondaryActionTargetBlank","isReversed","isTitleUppercase","hasCardBackgroundImage","isFullWidthUnpadded","backgroundImage","Banner","bannerBackgroundColor","titlePosition","isDynamicBanner","offset","backgroundPositionY","ContactForm","formConfig","reduce","prev","curr","validator","field","textarea","BannerImage","BackgroundDecorationImage","emailService","MemberListing","members","defaultImage","renderCustomContent","member","onError","HiOutlinePhone","linkTitle","memberType","bioLink","MemberListingPage","agents","setAgents","getMembers","membersData","MemberImagePlaceholder","PaymentsPage","blogs","setBlogs","getBlogs","blogService","deleteBlog","intialBlogModel","blogModel","setBlogModel","BlogValidator","updateBlog","createBlog","getBlog","blog","deleteBlogContent","sortBlogContents","ContentStrip","badgeBackgroundColor","leftBlockText","rightBlockText","BlogsAndReviewsListingPage","filteredBlogs","setFilteredBlogs","today","setHours","HiSearch","search","toLowerCase","addedOn","addedBy","getTime","HomePage","dynamicPageModel","buttonAction","banners","setBanners","setOffset","progress","setProgress","servicesOverview","illustration","HomepageServiceTax","HomepageServicesBusiness","HomepageServicesFinancial","rotatingBanners","pageContentSectionBanners","pageYOffset","parallaxContainers","querySelectorAll","scrollHandler","handleParallax","element","speed","yOffset","parallaxSpeed","Slider","dots","infinite","slidesToShow","slidesToScroll","arrows","autoplay","autoplaySpeed","responsive","breakpoint","settings","Parallax","onProgressChange","progressInput","translateY","easing","initialDynamicPageModel","DynamicCMSPage","setDynamicPageModel","getDynamicBlogContent","getDynamicPageContent","homeService","actionType","generateContent","dangerouslySetInnerHTML","__html","Helmet","content","section","blogContentSectionBanners","initialCMSInfo","isAuthorized","setIsAuthorized","setCmsInfo","pathname","useLocation","fetchCMSInfoAndValidate","validateAccess","scrollTo","AlertToast","ConfirmModal","Switch","Redirect","exact","LoginPage","ContactPage","PrivateRoute","UserListingPage","MenuItemListingPage","MenuItemManagementPage","PageListingPage","PageManagementPage","BlogListingPage","BlogManagementPage","ContentSectionListingPage","ContentSectionManagementPage","BannerManagementPage","AssetsAndResourcesPage","FooterItemListingPage","App","HttpsRedirect","BrowserRouter","ParallaxProvider","Routes","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","PUBLIC_URL","ReactDOM","StrictMode","PersistGate","basename","getElementById"],"mappings":"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","file":"static/js/main.2b0232d1.chunk.js","sourcesContent":["// DEPENDENCIES\r\nimport React from 'react';\r\n\r\nconst PayTraceModalContext = React.createContext();\r\n\r\nexport default PayTraceModalContext;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport PayTraceModalContext from './PayTraceModalContext';\r\n\r\nconst PayTraceModalProvider = ({ children }) => {\r\n const [modalState, setModalState] = useState({\r\n isPayTraceModalOpen: false,\r\n setIsPayTraceModalOpen: (isOpen) => {\r\n setModalState((prevState) => ({\r\n ...prevState,\r\n isPayTraceModalOpen: isOpen,\r\n }));\r\n },\r\n });\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default PayTraceModalProvider;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst CustomBlock = (props) => {\r\n const { className, style, children } = props;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nCustomBlock.propTypes = {\r\n // MAIN PROPS\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n children: PropTypes.any\r\n};\r\n\r\nCustomBlock.defaultProps = {\r\n className: '',\r\n style: {},\r\n children: null\r\n};\r\n\r\nexport default CustomBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst Button = (props) => {\r\n const {\r\n text,\r\n size,\r\n type,\r\n style,\r\n to,\r\n onClick,\r\n className,\r\n isTextUppercase,\r\n isBadge,\r\n isLoading,\r\n isDisabled,\r\n buttonSubActions,\r\n isSubActionsVisible,\r\n iconLeft,\r\n iconRight\r\n } = 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 xxs: '--xxs',\r\n };\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n <>\r\n navigateToPath(to) : onClick}\r\n className={`button${size && sizes[size]} ${className} ${isTextUppercase ? 'uppercase' : ''} ${isBadge ? 'badge' : ''}`}\r\n style={style}\r\n disabled={isDisabled || isLoading}\r\n >\r\n {iconLeft}\r\n {isLoading ? : text}\r\n {iconRight}\r\n \r\n {\r\n buttonSubActions\r\n && (\r\n \r\n {buttonSubActions}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nButton.propTypes = {\r\n // MAIN PROPS\r\n text: PropTypes.string,\r\n size: PropTypes.string,\r\n type: PropTypes.string,\r\n style: PropTypes.object,\r\n to: PropTypes.string,\r\n onClick: PropTypes.func,\r\n className: PropTypes.string,\r\n isTextUppercase: PropTypes.bool,\r\n isBadge: PropTypes.bool,\r\n isLoading: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n\r\n // SUB ACTIONS PROPS\r\n buttonSubActions: PropTypes.element,\r\n isSubActionsVisible: PropTypes.bool,\r\n\r\n // ICON PROPS\r\n iconLeft: PropTypes.element,\r\n iconRight: PropTypes.element\r\n};\r\n\r\nButton.defaultProps = {\r\n // MAIN PROPS\r\n text: '',\r\n size: '',\r\n type: 'button',\r\n style: {},\r\n to: null,\r\n onClick: () => { },\r\n className: '',\r\n isTextUppercase: false,\r\n isBadge: false,\r\n isLoading: false,\r\n isDisabled: false,\r\n\r\n // SUB ACTIONS PROPS\r\n buttonSubActions: null,\r\n isSubActionsVisible: false,\r\n\r\n // ICON PROPS\r\n iconLeft: null,\r\n iconRight: null\r\n};\r\n\r\nexport default Button;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst TextBlock = (props) => {\r\n const {\r\n type,\r\n text,\r\n link,\r\n containerClassName,\r\n className,\r\n position,\r\n color,\r\n actionText,\r\n actionTextColor,\r\n actionBackgroundColor,\r\n actionSize,\r\n actionIconRight,\r\n onClick,\r\n isTargetBlank,\r\n isPadded,\r\n isUppercase,\r\n hasAction,\r\n } = props;\r\n\r\n const textPositions = {\r\n left: 'left',\r\n center: 'center',\r\n right: 'right'\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n type === 'header'\r\n && (\r\n

\r\n {text}\r\n

\r\n )\r\n }\r\n\r\n {\r\n type === 'subheader'\r\n && (\r\n

\r\n {text}\r\n

\r\n )\r\n }\r\n\r\n {\r\n type === 'description' &&
{text}
\r\n }\r\n\r\n {\r\n type === 'link'\r\n && (\r\n \r\n {text}\r\n \r\n )\r\n }\r\n
\r\n {\r\n (hasAction && actionText !== '')\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\nTextBlock.propTypes = {\r\n // MAIN PROPS\r\n type: PropTypes.string.isRequired,\r\n text: PropTypes.string,\r\n position: PropTypes.string,\r\n color: PropTypes.string,\r\n containerClassName: PropTypes.string,\r\n className: PropTypes.string,\r\n\r\n // LINK PROPS\r\n link: PropTypes.string,\r\n\r\n // ACTION PROPS\r\n actionText: PropTypes.string,\r\n actionTextColor: PropTypes.string,\r\n actionBackgroundColor: PropTypes.string,\r\n actionSize: PropTypes.string,\r\n actionIconRight: PropTypes.any,\r\n\r\n // BOOLEAN PROPS\r\n isTargetBlank: PropTypes.bool,\r\n isPadded: PropTypes.bool,\r\n isUppercase: PropTypes.bool,\r\n hasAction: PropTypes.bool,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n};\r\n\r\nTextBlock.defaultProps = {\r\n // MAIN PROPS\r\n text: '',\r\n position: 'left',\r\n color: 'dark--clr',\r\n containerClassName: '',\r\n className: '',\r\n\r\n // LINK PROPS\r\n link: '#',\r\n\r\n // ACTION PROPS\r\n actionText: '',\r\n actionTextColor: 'secondary--clr',\r\n actionBackgroundColor: '',\r\n actionSize: '',\r\n actionIconRight: null,\r\n\r\n // BOOLEAN PROPS\r\n isTargetBlank: false,\r\n isPadded: false,\r\n isUppercase: false,\r\n hasAction: false,\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n};\r\n\r\nexport default TextBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport TextBlock from './TextBlock';\r\n\r\nconst Image = (props) => {\r\n const {\r\n to,\r\n onClick,\r\n containerClassName,\r\n className,\r\n hasRoundCorners,\r\n source,\r\n alt,\r\n title\r\n } = props;\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n (to !== '' || null || onClick)\r\n ? (\r\n navigateToPath(to) : onClick}\r\n className={containerClassName}\r\n type=\"button\"\r\n >\r\n \r\n\r\n {\r\n title !== ''\r\n && (\r\n \r\n )\r\n }\r\n \r\n ) : (\r\n \r\n \r\n\r\n {\r\n title !== ''\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nImage.propTypes = {\r\n // MAIN PROPS\r\n to: PropTypes.string,\r\n onClick: PropTypes.func,\r\n containerClassName: PropTypes.string,\r\n className: PropTypes.string,\r\n hasRoundCorners: PropTypes.bool,\r\n source: PropTypes.string.isRequired,\r\n alt: PropTypes.string,\r\n title: PropTypes.string,\r\n};\r\n\r\nImage.defaultProps = {\r\n // MAIN PROPS\r\n to: '',\r\n alt: 'Image',\r\n title: '',\r\n onClick: null,\r\n containerClassName: '',\r\n className: '',\r\n hasRoundCorners: false,\r\n};\r\n\r\nexport default Image;","/* eslint-disable no-nested-ternary */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Image from './Image';\r\n\r\nconst MobileHeader = (props) => {\r\n const {\r\n backgroundColor,\r\n leftItemImageSource,\r\n leftItemImageTo,\r\n leftItemImageAlt,\r\n leftItem,\r\n leftItemTo,\r\n leftItemOnClick,\r\n rightItem,\r\n // rightItemTo,\r\n rightItemOnClick,\r\n hasBottomShadow\r\n } = props;\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n leftItemImageSource\r\n ? (\r\n \r\n ) : leftItemTo\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nMobileHeader.propTypes = {\r\n // MAIN PROPS\r\n backgroundColor: PropTypes.string,\r\n\r\n // LEFT ITEM PROPS\r\n leftItem: PropTypes.any,\r\n leftItemTo: PropTypes.string,\r\n leftItemOnClick: PropTypes.func,\r\n leftItemImageTo: PropTypes.string,\r\n leftItemImageSource: PropTypes.string,\r\n leftItemImageAlt: PropTypes.string,\r\n\r\n // RIGHT ITEM PROPS\r\n rightItem: PropTypes.any,\r\n // rightItemTo: PropTypes.string,\r\n rightItemOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n hasBottomShadow: PropTypes.bool,\r\n};\r\n\r\nMobileHeader.defaultProps = {\r\n // MAIN PROPS\r\n backgroundColor: 'white--sbg',\r\n\r\n // LEFT ITEM PROPS\r\n leftItem: null,\r\n leftItemTo: null,\r\n leftItemOnClick: () => { },\r\n leftItemImageTo: null,\r\n leftItemImageSource: '',\r\n leftItemImageAlt: 'Image',\r\n\r\n // RIGHT ITEM PROPS\r\n rightItem: null,\r\n // rightItemTo: null,\r\n rightItemOnClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n hasBottomShadow: true,\r\n};\r\n\r\nexport default MobileHeader;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\n// ICONS\r\nimport { HiChevronLeft } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst HeaderBlock = (props) => {\r\n const {\r\n hasReturnAction,\r\n backgroundColor,\r\n hasBorder,\r\n hasBottomShadow,\r\n leftItemText,\r\n leftItemTextColor,\r\n centerItemText,\r\n centerItemTextColor,\r\n rightItemText,\r\n rightItemTextColor,\r\n primaryButtonText,\r\n primaryButtonTo,\r\n primaryButtonColor,\r\n primaryButtonClassName,\r\n primaryButtonOnClick,\r\n primaryButtonSize,\r\n secondaryButtonText,\r\n secondaryButtonTo,\r\n secondaryButtonColor,\r\n secondaryButtonClassName,\r\n secondaryButtonOnClick,\r\n secondaryButtonSize,\r\n\r\n } = props;\r\n\r\n const history = useHistory();\r\n const iconSize = 30;\r\n const iconColor = 'mid-grey--clr';\r\n const returnActionIcon = ();\r\n\r\n return (\r\n \r\n \r\n {\r\n hasReturnAction\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n {leftItemText &&

{leftItemText}

}\r\n
\r\n\r\n \r\n {centerItemText &&

{centerItemText}

}\r\n
\r\n\r\n \r\n {rightItemText &&

{rightItemText}

}\r\n\r\n {\r\n (primaryButtonText || primaryButtonText)\r\n && (\r\n \r\n {\r\n primaryButtonText\r\n && (\r\n \r\n )\r\n }\r\n\r\n {\r\n secondaryButtonText\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\n// PROP TYPES\r\nHeaderBlock.propTypes = {\r\n // MAIN PROPS\r\n hasReturnAction: PropTypes.bool,\r\n backgroundColor: PropTypes.string,\r\n hasBorder: PropTypes.bool,\r\n hasBottomShadow: PropTypes.bool,\r\n\r\n // LEFT ITEM PROPS\r\n leftItemText: PropTypes.string,\r\n leftItemTextColor: PropTypes.string,\r\n\r\n // CENTER ITEM PROPS\r\n centerItemText: PropTypes.string,\r\n centerItemTextColor: PropTypes.string,\r\n\r\n // RIGHT ITEM PROPS\r\n rightItemText: PropTypes.string,\r\n rightItemTextColor: PropTypes.string,\r\n\r\n // PRIMARY ACTION PROPS\r\n primaryButtonText: PropTypes.string,\r\n primaryButtonTo: PropTypes.string,\r\n primaryButtonClassName: PropTypes.string,\r\n primaryButtonColor: PropTypes.string,\r\n primaryButtonSize: PropTypes.string,\r\n primaryButtonOnClick: PropTypes.func,\r\n\r\n // SECONDARY ACTION PROPS\r\n secondaryButtonText: PropTypes.string,\r\n secondaryButtonTo: PropTypes.string,\r\n secondaryButtonClassName: PropTypes.string,\r\n secondaryButtonColor: PropTypes.string,\r\n secondaryButtonSize: PropTypes.string,\r\n secondaryButtonOnClick: PropTypes.func,\r\n};\r\n\r\n// DEFAULT VALUES\r\nHeaderBlock.defaultProps = {\r\n // MAIN PROPS\r\n hasReturnAction: false,\r\n backgroundColor: '',\r\n hasBorder: false,\r\n hasBottomShadow: '',\r\n\r\n // LEFT ITEM PROPS\r\n leftItemText: '',\r\n leftItemTextColor: 'secondary--clr',\r\n\r\n // CENTER ITEM PROPS\r\n centerItemText: '',\r\n centerItemTextColor: 'secondary--clr',\r\n\r\n // RIGHT ITEM PROPS\r\n rightItemText: '',\r\n rightItemTextColor: 'secondary--clr',\r\n\r\n // PRIMARY ACTION PROPS\r\n primaryButtonText: '',\r\n primaryButtonTo: null,\r\n primaryButtonClassName: '',\r\n primaryButtonColor: 'primary--bg',\r\n primaryButtonSize: 'xxs',\r\n primaryButtonOnClick: (() => { }),\r\n\r\n // SECONDARY ACTION PROPS\r\n secondaryButtonText: '',\r\n secondaryButtonTo: null,\r\n secondaryButtonClassName: '',\r\n secondaryButtonColor: 'secondary--bg',\r\n secondaryButtonSize: 'xxs',\r\n secondaryButtonOnClick: (() => { })\r\n};\r\n\r\nexport default HeaderBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSpring } from 'react-spring';\r\n// COMPONENTS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst Overlay = (props) => {\r\n const {\r\n isContained,\r\n overlayDarkness,\r\n onClick,\r\n hasLoader,\r\n } = props;\r\n\r\n const overlayDarknessOptions = {\r\n normal: 'normal',\r\n dark: 'dark'\r\n };\r\n\r\n const animateShow = useSpring({ opacity: 1, from: { opacity: 0 } });\r\n const loader = ();\r\n\r\n return (\r\n <>\r\n {\r\n !isContained\r\n ? (\r\n \r\n {hasLoader && loader}\r\n \r\n )\r\n : (\r\n \r\n {hasLoader && loader}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nOverlay.propTypes = {\r\n // MAIN PROPS\r\n isContained: PropTypes.bool,\r\n overlayDarkness: PropTypes.string,\r\n onClick: PropTypes.func,\r\n hasLoader: PropTypes.bool,\r\n};\r\n\r\nOverlay.defaultProps = {\r\n // MAIN PROPS\r\n isContained: false,\r\n overlayDarkness: 'normal',\r\n onClick: (() => {}),\r\n hasLoader: false,\r\n};\r\n\r\nexport default Overlay;","export default __webpack_public_path__ + \"static/media/Logo.706c218d.svg\";","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\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/img/Logo.svg';\r\n\r\nconst Drawer = (props) => {\r\n const {\r\n isOpen,\r\n backgroundColor,\r\n hasOverlay,\r\n hasShadow,\r\n headerLogo,\r\n mobileLogo,\r\n navigationItems,\r\n footerItems,\r\n to,\r\n onClick,\r\n closeActionOnClick,\r\n willCloseOnMaskPress\r\n } = props;\r\n\r\n return (\r\n <>\r\n {\r\n (isOpen && hasOverlay)\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {\r\n headerLogo\r\n && (\r\n <>\r\n \r\n\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n {navigationItems}\r\n \r\n \r\n\r\n \r\n {footerItems}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDrawer.propTypes = {\r\n // MAIN PROPS\r\n backgroundColor: PropTypes.string,\r\n navigationItems: PropTypes.any,\r\n footerItems: PropTypes.any,\r\n\r\n // IMAGE PROPS\r\n headerLogo: PropTypes.string.isRequired,\r\n mobileLogo: PropTypes.string.isRequired,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n closeActionOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isOpen: PropTypes.bool,\r\n hasShadow: PropTypes.bool,\r\n willCloseOnMaskPress: PropTypes.bool,\r\n};\r\n\r\nDrawer.defaultProps = {\r\n // MAIN PROPS\r\n backgroundColor: 'primary--sbg',\r\n navigationItems: null,\r\n footerItems: null,\r\n\r\n // FUNCTION PROPS\r\n onClick: () => { },\r\n closeActionOnClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n isOpen: false,\r\n hasShadow: false,\r\n willCloseOnMaskPress: false,\r\n};\r\n\r\nexport default Drawer;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Overlay from './Overlay';\r\n\r\nconst SideSheet = (props) => {\r\n const {\r\n isOpen,\r\n closeActionOnClick,\r\n backgroundColor,\r\n position,\r\n children\r\n } = props;\r\n\r\n const positions = {\r\n left: 'left',\r\n right: 'right'\r\n };\r\n\r\n return (\r\n <>\r\n {isOpen && }\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSideSheet.propTypes = {\r\n // MAIN PROPS\r\n isOpen: PropTypes.bool,\r\n closeActionOnClick: PropTypes.func,\r\n backgroundColor: PropTypes.string,\r\n position: PropTypes.string,\r\n children: PropTypes.element,\r\n};\r\n\r\nSideSheet.defaultProps = {\r\n isOpen: false,\r\n closeActionOnClick: (() => { }),\r\n backgroundColor: 'white--sbg',\r\n position: 'left',\r\n children: null,\r\n};\r\n\r\nexport default SideSheet;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst ListBlock = (props) => {\r\n const {\r\n title,\r\n titleColor,\r\n to,\r\n type,\r\n backgroundColor,\r\n tooltipText,\r\n tooltipTextColor,\r\n tooltipBackgroundColor,\r\n iconLeft,\r\n iconLeftBadgeText,\r\n iconLeftBadgeTextColor,\r\n iconLeftBadgeBackgroundColor,\r\n iconRight,\r\n iconRightText,\r\n iconRightTextColor,\r\n iconRightBackgroundColor,\r\n badgeText,\r\n badgeTextColor,\r\n badgeColor,\r\n onClick,\r\n onDoubleClick,\r\n isCollapsed,\r\n hasBorder,\r\n hasRoundIconRight,\r\n } = props;\r\n\r\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n navigateToPath(to) : onClick}\r\n onDoubleClick={onDoubleClick}\r\n className={`list-block ${isCollapsed ? 'collapsed' : ''} ${backgroundColor || 'no-bg'} ${hasBorder && 'hasBorder'}`}\r\n onMouseEnter={() => setIsTooltipVisible(true)}\r\n onMouseLeave={() => setIsTooltipVisible(false)}\r\n >\r\n {\r\n iconLeft\r\n && (\r\n \r\n {iconLeft}\r\n {\r\n (iconLeftBadgeText || (badgeColor))\r\n && (\r\n \r\n

\r\n {iconLeftBadgeText}\r\n

\r\n
\r\n )\r\n }\r\n\r\n {\r\n tooltipText && isCollapsed\r\n && (\r\n \r\n

\r\n {tooltipText}\r\n

\r\n
\r\n )\r\n }\r\n
\r\n )\r\n }\r\n\r\n {\r\n title\r\n && (\r\n \r\n

\r\n {title}\r\n

\r\n\r\n {\r\n badgeText\r\n && (\r\n \r\n

{badgeText}

\r\n
\r\n )\r\n }\r\n \r\n )\r\n }\r\n\r\n {\r\n iconRight\r\n ? (\r\n \r\n \r\n {iconRight}\r\n \r\n \r\n )\r\n : (\r\n iconRightText\r\n && (\r\n \r\n \r\n

\r\n {iconRightText}\r\n

\r\n
\r\n
\r\n )\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nListBlock.propTypes = {\r\n // MAIN PROPS\r\n title: PropTypes.string,\r\n titleColor: PropTypes.string,\r\n to: PropTypes.string,\r\n type: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n\r\n // TOOLTIP PROPS\r\n tooltipText: PropTypes.string,\r\n tooltipTextColor: PropTypes.string,\r\n tooltipBackgroundColor: PropTypes.string,\r\n\r\n // ICON LEFT PROPS\r\n iconLeft: PropTypes.any,\r\n iconLeftBadgeText: PropTypes.string,\r\n iconLeftBadgeTextColor: PropTypes.string,\r\n iconLeftBadgeBackgroundColor: PropTypes.string,\r\n\r\n // ICON RIGHT PROPS\r\n iconRight: PropTypes.any,\r\n iconRightText: PropTypes.string,\r\n iconRightTextColor: PropTypes.string,\r\n iconRightBackgroundColor: PropTypes.string,\r\n\r\n // BADGE PROPS\r\n badgeText: PropTypes.string,\r\n badgeTextColor: PropTypes.string,\r\n badgeColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n onDoubleClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isCollapsed: PropTypes.bool,\r\n hasBorder: PropTypes.bool,\r\n hasRoundIconRight: PropTypes.bool,\r\n};\r\n\r\nListBlock.defaultProps = {\r\n // MAIN PROPS\r\n title: '',\r\n titleColor: 'white--clr',\r\n to: '',\r\n type: '',\r\n backgroundColor: '',\r\n\r\n // TOOLTIP PROPS\r\n tooltipText: '',\r\n tooltipTextColor: 'white--clr',\r\n tooltipBackgroundColor: 'primary--sbg',\r\n\r\n // ICON LEFT PROPS\r\n iconLeft: null,\r\n iconLeftBadgeText: '',\r\n iconLeftBadgeTextColor: 'white--clr',\r\n iconLeftBadgeBackgroundColor: '',\r\n\r\n // ICON RIGHT PROPS\r\n iconRight: null,\r\n iconRightText: 'white--clr',\r\n iconRightTextColor: '',\r\n iconRightBackgroundColor: '',\r\n\r\n // BADGE PROPS\r\n badgeText: '',\r\n badgeTextColor: 'white--clr',\r\n badgeColor: '',\r\n\r\n // FUNCTION PROPS\r\n onClick: () => { },\r\n onDoubleClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n isCollapsed: false,\r\n hasBorder: false,\r\n hasRoundIconRight: false,\r\n};\r\n\r\nexport default ListBlock;","/* eslint-disable camelcase */\r\n/* eslint-disable default-param-last */\r\n/* eslint-disable no-debugger */\r\nimport { persistReducer } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\nimport jwt_decode from 'jwt-decode';\r\n\r\nexport const actionTypes = {\r\n Login: '[Login] Action',\r\n Logout: '[Logout] Action',\r\n RefreshToken: '[Refresh Token] Action',\r\n};\r\n\r\nconst initialAuthState = {\r\n user: {\r\n firstName: '',\r\n lastName: '',\r\n username: '',\r\n },\r\n authToken: '',\r\n refreshToken: '',\r\n isAdmin: ''\r\n};\r\n\r\nexport const reducer = persistReducer(\r\n { storage, key: 'auth', whitelist: ['user', 'authToken', 'refreshToken', 'isAdmin'] },\r\n (state = initialAuthState, action) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n const { token } = action.payload;\r\n const userDetail = action.payload;\r\n const decodedToken = jwt_decode(token);\r\n delete userDetail.token;\r\n\r\n return { user: userDetail, authToken: token, isAdmin: decodedToken.IsAdmin === 'True', refreshToken: userDetail.refreshToken };\r\n }\r\n\r\n case actionTypes.RefreshToken: {\r\n const { token } = action.payload;\r\n const userDetail = action.payload;\r\n const decodedToken = jwt_decode(token);\r\n delete userDetail.token;\r\n\r\n return { user: userDetail, authToken: token, isAdmin: decodedToken.IsAdmin === 'True', refreshToken: userDetail.refreshToken };\r\n }\r\n\r\n case actionTypes.Logout: {\r\n return initialAuthState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n }\r\n);\r\n\r\nexport const actions = {\r\n login: (user) => ({ type: actionTypes.Login, payload: user }),\r\n logout: () => ({ type: actionTypes.Logout }),\r\n refreshToken: (user) => ({ type: actionTypes.RefreshToken, payload: user }),\r\n};","/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-props-no-multi-spaces */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport { Route, useHistory } from 'react-router-dom';\r\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\r\n// ICONS\r\nimport { FiLogOut } from 'react-icons/fi';\r\nimport { CgCopy, CgWebsite } from 'react-icons/cg';\r\nimport { RiLayout5Fill, RiListCheck2 } from 'react-icons/ri';\r\nimport { HiChevronRight, HiMenuAlt4 } from 'react-icons/hi';\r\nimport { BsPeopleFill } from 'react-icons/bs';\r\nimport {\r\n IoClose,\r\n IoList,\r\n IoLinkSharp\r\n} from 'react-icons/io5';\r\n// CUSTOM COMPONENTS;\r\nimport MobileHeader from '../components/MobileHeader';\r\nimport HeaderBlock from '../components/HeaderBlock';\r\nimport Drawer from '../components/Drawer';\r\nimport SideSheet from '../components/SideSheet';\r\nimport ListBlock from '../components/ListBlock';\r\nimport CustomBlock from '../components/CustomBlock';\r\n// ASSETS\r\n// REDUX\r\nimport * as auth from '../redux/authRedux';\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => {\r\n const { companyIconPath } = rest.cmsInfo;\r\n\r\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\r\n // const [headerLogo, setHeaderLogo] = useState(Icon);\r\n const [navigationTitleVisible, setNavigationTitleVisible] = useState(false);\r\n const [subMenuVisible, setSubMenuVisible] = useState(false);\r\n const [sideSheetOpen, setSideSheetOpen] = useState(false);\r\n\r\n const history = useHistory();\r\n const body = document.querySelector('body');\r\n const iconSize = 27;\r\n const iconRightSize = 20;\r\n const menuIconColor = 'dark-grey--clr';\r\n const iconColor = 'primary--clr';\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen(!isDrawerOpen);\r\n if (!isDrawerOpen) {\r\n setTimeout(() => {\r\n // setHeaderLogo(Logo);\r\n }, 500);\r\n\r\n setTimeout(() => {\r\n setNavigationTitleVisible(true);\r\n }, 300);\r\n } else {\r\n setSubMenuVisible(false);\r\n\r\n setTimeout(() => {\r\n setNavigationTitleVisible(false);\r\n }, 450);\r\n\r\n setTimeout(() => {\r\n // setHeaderLogo(Icon);\r\n }, 550);\r\n }\r\n };\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n setIsDrawerOpen(false);\r\n setSideSheetOpen(false);\r\n enableBodyScroll(body);\r\n };\r\n\r\n const toggleSideSheet = () => {\r\n setSideSheetOpen(!sideSheetOpen);\r\n if (!sideSheetOpen) {\r\n disableBodyScroll(body);\r\n } else {\r\n enableBodyScroll(body);\r\n }\r\n };\r\n\r\n const navigationItems = [\r\n {\r\n id: 1,\r\n iconLeft: ,\r\n title: 'Users',\r\n to: '/admin/management/users',\r\n // badgeText: '',\r\n // badgeColor: '',\r\n isVisible: true,\r\n iconRightText: '',\r\n iconRightBackgroundColor: '',\r\n // buttonRightText: <>,\r\n },\r\n // {\r\n // id: 3,\r\n // iconLeft: ,\r\n // title: 'Clients',\r\n // to: '/admin/management/clients',\r\n // // badgeText: '',\r\n // // badgeColor: '',\r\n // isVisible: true,\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // // buttonRightText: <>,\r\n // },\r\n // {\r\n // id: 3,\r\n // iconLeft: ,\r\n // title: 'Bids',\r\n // to: '/admin/management/bids',\r\n // // badgeText: '',\r\n // // badgeColor: '',\r\n // isVisible: true,\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // // buttonRightText: <>,\r\n // },\r\n {\r\n id: 2,\r\n iconLeft: ,\r\n title: 'Website Management',\r\n // to: '#',\r\n action: () => setSideSheetOpen(!sideSheetOpen),\r\n badgeText: '',\r\n badgeColor: '',\r\n isVisible: rest.auth.isAdmin,\r\n iconRightText: '',\r\n iconRightBackgroundColor: '',\r\n // buttonRightText: <>,\r\n },\r\n ];\r\n\r\n const footerItems = [\r\n // {\r\n // id: 0,\r\n // iconLeft: ,\r\n // title: 'Settings',\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // action: () => setSideSheetOpen(!sideSheetOpen),\r\n // },\r\n {\r\n id: 1,\r\n iconLeft: ,\r\n title: 'Logout',\r\n iconRightText: '',\r\n iconRightBackgroundColor: '',\r\n action: () => {\r\n rest.logout();\r\n },\r\n },\r\n ];\r\n\r\n const websiteManagementItems = [\r\n {\r\n id: 0,\r\n title: 'Menu Items',\r\n to: '/cms/management/menu-items',\r\n action: () => { },\r\n iconLeft: ,\r\n },\r\n {\r\n id: 1,\r\n title: 'Pages',\r\n to: '/cms/management/pages',\r\n action: () => { },\r\n iconLeft: ,\r\n },\r\n // {\r\n // id: 2,\r\n // title: 'Events',\r\n // to: '/cms/management/events',\r\n // action: () => { },\r\n // iconLeft: ,\r\n // },\r\n {\r\n id: 3,\r\n title: 'Content Sections',\r\n to: '/cms/management/content-sections',\r\n action: () => { },\r\n iconLeft: ,\r\n },\r\n {\r\n id: 4,\r\n title: 'Assets, Links and Resources',\r\n to: '/cms/management/assets-and-resources',\r\n action: () => { },\r\n iconLeft: ,\r\n },\r\n {\r\n id: 5,\r\n title: 'Footer Items',\r\n to: '/cms/management/footer-items',\r\n action: () => { },\r\n iconLeft: ,\r\n },\r\n ];\r\n\r\n return (\r\n (\r\n <>\r\n }\r\n rightItemOnClick={() => toggleDrawer()}\r\n />\r\n \r\n {\r\n toggleDrawer();\r\n }}\r\n navigationItems={\r\n navigationItems.filter((x) => x.isVisible).map((item, index) => (\r\n navigateToPath(item.to) : item.action}\r\n isCollapsed={!navigationTitleVisible}\r\n iconLeft={item.iconLeft}\r\n iconRight={navigationTitleVisible && item.iconRight}\r\n iconRightText={navigationTitleVisible ? item.iconRightText : ''}\r\n iconLeftBadgeText={!navigationTitleVisible ? item.iconRightText : ''}\r\n iconRightBackgroundColor={item.iconRightBackgroundColor}\r\n hasRoundIconRight\r\n rotateIconRight={subMenuVisible}\r\n backgroundColor={rest.path === item.to ? 'secondary-lighter--sbg' : 'lighter-grey--sbg'}\r\n subMenuItems={subMenuVisible && item.hasSubMenu}\r\n />\r\n ))\r\n }\r\n\r\n footerItems={\r\n footerItems.map((item, index) => (\r\n navigateToPath(item.to) : item.action}\r\n isCollapsed={!navigationTitleVisible}\r\n iconLeft={item.iconLeft}\r\n iconRight={navigationTitleVisible && item.iconRight}\r\n iconRightText={navigationTitleVisible ? item.iconRightText : ''}\r\n iconLeftBadgeText={!navigationTitleVisible ? item.iconRightText : ''}\r\n iconRightBackgroundColor={item.iconRightBackgroundColor}\r\n hasRoundIconRight\r\n />\r\n ))\r\n }\r\n />\r\n\r\n {/* MANAGEMENT PAGES SIDESHEET */}\r\n toggleSideSheet()}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n {/* WEBSITE MANAGEMENT */}\r\n \r\n

Website Management

\r\n
\r\n \r\n {\r\n websiteManagementItems.map((item, index) => (\r\n }\r\n onClick={item.to ? () => navigateToPath(item.to) : item.action}\r\n />\r\n ))\r\n }\r\n \r\n
\r\n \r\n\r\n \r\n {\r\n window.open('/home', '_blank');\r\n }}\r\n rightItemPrimaryButtonColor=\"secondary--bg\"\r\n rightItemPrimaryButtonOnClick={() => { }}\r\n rightItemSecondaryButtonText=\"\"\r\n rightItemSecondaryButtonColor=\"primary--bg\"\r\n />\r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions })(PrivateRoute);","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Overlay from './Overlay';\r\n\r\nconst DrawerNavigation = (props) => {\r\n const {\r\n headerItems,\r\n children,\r\n footerItems,\r\n backgroundColor,\r\n onClick,\r\n isOpen,\r\n hasOverlay,\r\n willCloseOnMaskPress,\r\n hasShadow,\r\n } = props;\r\n\r\n return (\r\n <>\r\n {\r\n (isOpen && hasOverlay)\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n {headerItems}\r\n \r\n\r\n \r\n {children}\r\n \r\n\r\n \r\n {footerItems}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDrawerNavigation.propTypes = {\r\n // MAIN PROPS\r\n headerItems: PropTypes.any,\r\n children: PropTypes.any,\r\n footerItems: PropTypes.any,\r\n backgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isOpen: PropTypes.bool,\r\n hasOverlay: PropTypes.bool,\r\n willCloseOnMaskPress: PropTypes.bool,\r\n hasShadow: PropTypes.bool,\r\n};\r\n\r\nDrawerNavigation.defaultProps = {\r\n // MAIN PROPS\r\n headerItems: null,\r\n children: null,\r\n footerItems: null,\r\n backgroundColor: 'white--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isOpen: false,\r\n hasOverlay: false,\r\n willCloseOnMaskPress: false,\r\n hasShadow: false,\r\n};\r\n\r\nexport default DrawerNavigation;","/* eslint-disable no-nested-ternary */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\nimport Select from 'react-select';\r\nimport Async from 'react-select/async';\r\nimport CreatableSelect from 'react-select/creatable';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst SelectBlock = (props) => {\r\n const {\r\n containerClassName,\r\n label,\r\n labelColor,\r\n inputLabel,\r\n inputState,\r\n errorMessage,\r\n successMessage,\r\n warningMessage,\r\n className,\r\n backgroundColor,\r\n placeholder,\r\n isAsync,\r\n isCreatable,\r\n isLabelLoading,\r\n isMulti,\r\n isRequired,\r\n isDisabled,\r\n hasBorder,\r\n } = 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 inputLabel\r\n && (\r\n \r\n {inputLabel}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n {\r\n label\r\n && (\r\n \r\n {label}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n\r\n {\r\n isAsync\r\n ? (\r\n \r\n )\r\n : (\r\n isCreatable\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n )\r\n }\r\n\r\n {\r\n inputState === 'error'\r\n && (\r\n \r\n {errorMessage || (inputLabel || label ? (inputLabel || `${label} ${errorMessageSuffix}`) : 'Error message undefined')}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'warning'\r\n && (\r\n \r\n {warningMessage}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'success'\r\n && (\r\n \r\n {successMessage}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nSelectBlock.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n\r\n // LABEL PROPS\r\n label: PropTypes.string,\r\n labelColor: PropTypes.string,\r\n inputLabel: PropTypes.string,\r\n\r\n // STATE PROPS\r\n inputState: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n successMessage: PropTypes.string,\r\n warningMessage: PropTypes.string,\r\n\r\n // INPUT PROPS\r\n className: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isAsync: PropTypes.bool,\r\n isCreatable: PropTypes.bool,\r\n isLabelLoading: PropTypes.bool,\r\n isMulti: PropTypes.bool,\r\n isRequired: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n hasBorder: PropTypes.bool,\r\n};\r\n\r\nSelectBlock.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n\r\n // LABEL PROPS\r\n label: '',\r\n labelColor: '',\r\n inputLabel: '',\r\n\r\n // STATE PROPS\r\n inputState: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n warningMessage: '',\r\n\r\n // INPUT PROPS\r\n className: '',\r\n backgroundColor: 'light--sbg',\r\n placeholder: '',\r\n\r\n // BOOLEAN PROPS\r\n isAsync: false,\r\n isCreatable: false,\r\n isLabelLoading: false,\r\n isMulti: false,\r\n isRequired: false,\r\n isDisabled: false,\r\n hasBorder: false,\r\n};\r\n\r\nexport default SelectBlock;","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst Chip = (props) => {\r\n const {\r\n label,\r\n labelColor,\r\n backgroundColor,\r\n onClick,\r\n hasBorder\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nChip.propTypes = {\r\n // MAIN PROPS\r\n label: PropTypes.string.isRequired,\r\n labelColor: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n hasBorder: PropTypes.bool\r\n};\r\n\r\nChip.defaultProps = {\r\n // MAIN PROPS\r\n labelColor: 'info--clr',\r\n backgroundColor: 'lighter-blue--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n hasBorder: false\r\n};\r\n\r\nexport default Chip;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst DotIndicator = (props) => {\r\n const { hasDotIndicator, dotIndicatorColor } = props;\r\n return (\r\n <>\r\n {hasDotIndicator && }\r\n \r\n );\r\n};\r\n\r\nDotIndicator.propTypes = {\r\n // MAIN PROPS\r\n hasDotIndicator: PropTypes.bool,\r\n dotIndicatorColor: PropTypes.string,\r\n};\r\n\r\nDotIndicator.defaultProps = {\r\n // MAIN PROPS\r\n hasDotIndicator: false,\r\n dotIndicatorColor: 'danger--sbg',\r\n};\r\n\r\nexport default DotIndicator;","// DEPENDECIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport DotIndicator from './DotIndicator';\r\n\r\nconst TextHeader = (props) => {\r\n const {\r\n title,\r\n size,\r\n className,\r\n subtitle,\r\n subtitleSize,\r\n subtitleClassName,\r\n isCentered,\r\n iconLeft,\r\n iconLeftClassName,\r\n } = props;\r\n\r\n const textSize = {\r\n xl: '--xl',\r\n lg: '--lg',\r\n md: '--md',\r\n mdlg: '--mdlg',\r\n sm: '--sm',\r\n xs: '--xs',\r\n };\r\n\r\n return (\r\n \r\n

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

\r\n {subtitle &&

{subtitle}

}\r\n
\r\n );\r\n};\r\n\r\nTextHeader.propTypes = {\r\n // TITLE PROPS\r\n title: PropTypes.string.isRequired,\r\n className: PropTypes.string,\r\n size: PropTypes.string,\r\n\r\n // SUBTITLE PROPS\r\n subtitle: PropTypes.string,\r\n subtitleClassName: PropTypes.string,\r\n subtitleSize: PropTypes.string,\r\n\r\n // ICON PROPS\r\n iconLeft: PropTypes.element,\r\n iconLeftClassName: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isCentered: PropTypes.bool,\r\n};\r\n\r\nTextHeader.defaultProps = {\r\n // TITLE PROPS\r\n className: '',\r\n size: '',\r\n\r\n // SUBTITLE PROPS\r\n subtitle: '',\r\n subtitleClassName: '',\r\n subtitleSize: '',\r\n\r\n // ICON PROPS\r\n iconLeft: null,\r\n iconLeftClassName: '',\r\n\r\n // BOOLEAN PROPS\r\n isCentered: false,\r\n};\r\n\r\nexport default TextHeader;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\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 const {\r\n containerClassName,\r\n title,\r\n subtitle,\r\n headerSize,\r\n primaryButtonText,\r\n primaryButtonBackgroundColor,\r\n primaryButtonIconLeft,\r\n secondaryButtonText,\r\n secondaryButtonBackgroundColor,\r\n secondaryButtonIconLeft,\r\n buttonSize,\r\n headerIcon,\r\n headerIconContainerClass,\r\n primaryButtonTo,\r\n secondaryButtonTo,\r\n headerIconTo,\r\n primaryButtonOnClick,\r\n secondaryButtonOnClick,\r\n headerIconOnClick,\r\n isPrimaryLinkTargetBlank,\r\n isSecondaryLinkTargetBlank,\r\n isButtonTextUppercase,\r\n isPrimaryButtonLoading,\r\n isPrimaryButtonDisabled,\r\n isSecondaryButtonLoading,\r\n isSecondaryButtonDisabled,\r\n isTitleCentered\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n\r\n {(secondaryButtonText !== '' && primaryButtonText !== '') && (\r\n \r\n {\r\n secondaryButtonText !== ''\r\n && (\r\n \r\n )\r\n }\r\n\r\n {\r\n primaryButtonText !== ''\r\n && (\r\n \r\n )\r\n }\r\n \r\n )}\r\n\r\n {\r\n headerIcon\r\n && (\r\n \r\n {\r\n headerIconTo\r\n ? (\r\n { })}\r\n >\r\n {headerIcon}\r\n \r\n )\r\n : (\r\n { })}\r\n >\r\n {headerIcon}\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nContentHeader.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n\r\n // HEADER PROPS\r\n title: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n headerSize: PropTypes.string,\r\n\r\n // BUTTON PROPS - PRIMARY\r\n primaryButtonText: PropTypes.string,\r\n primaryButtonBackgroundColor: PropTypes.string,\r\n primaryButtonIconLeft: PropTypes.object,\r\n\r\n // BUTTON PROPS - SECONDARY\r\n secondaryButtonText: PropTypes.string,\r\n secondaryButtonBackgroundColor: PropTypes.string,\r\n secondaryButtonIconLeft: PropTypes.object,\r\n\r\n // BUTTON PROPS - SHARED\r\n buttonSize: PropTypes.string,\r\n\r\n // HEADER ICON\r\n headerIcon: PropTypes.any,\r\n headerIconContainerClass: PropTypes.string,\r\n\r\n // NAVIGATION PROPS\r\n primaryButtonTo: PropTypes.string,\r\n secondaryButtonTo: PropTypes.string,\r\n headerIconTo: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n primaryButtonOnClick: PropTypes.func,\r\n secondaryButtonOnClick: PropTypes.func,\r\n headerIconOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isPrimaryLinkTargetBlank: PropTypes.bool,\r\n isSecondaryLinkTargetBlank: PropTypes.bool,\r\n isButtonTextUppercase: PropTypes.bool,\r\n isPrimaryButtonLoading: PropTypes.bool,\r\n isPrimaryButtonDisabled: PropTypes.bool,\r\n isSecondaryButtonLoading: PropTypes.bool,\r\n isSecondaryButtonDisabled: PropTypes.bool,\r\n isTitleCentered: PropTypes.bool,\r\n};\r\n\r\nContentHeader.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n\r\n // HEADER PROPS\r\n title: '',\r\n subtitle: '',\r\n headerSize: '',\r\n\r\n // BUTTON PROPS - PRIMARY\r\n primaryButtonText: '',\r\n primaryButtonBackgroundColor: 'primary--bg',\r\n primaryButtonIconLeft: null,\r\n\r\n // BUTTON PROPS - SECONDARY\r\n secondaryButtonText: '',\r\n secondaryButtonBackgroundColor: 'secondary--bg',\r\n secondaryButtonIconLeft: null,\r\n\r\n // BUTTON PROPS - SHARED\r\n buttonSize: '',\r\n\r\n // HEADER ICON\r\n headerIcon: null,\r\n\r\n // NAVIGATION PROPS\r\n primaryButtonTo: '',\r\n secondaryButtonTo: '',\r\n headerIconTo: '',\r\n headerIconContainerClass: '',\r\n\r\n // FUNCTION PROPS\r\n primaryButtonOnClick: () => { },\r\n secondaryButtonOnClick: () => { },\r\n headerIconOnClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n isPrimaryLinkTargetBlank: false,\r\n isSecondaryLinkTargetBlank: false,\r\n isButtonTextUppercase: false,\r\n isPrimaryButtonLoading: false,\r\n isPrimaryButtonDisabled: false,\r\n isSecondaryButtonLoading: false,\r\n isSecondaryButtonDisabled: false,\r\n isTitleCentered: false,\r\n};\r\n\r\nexport default ContentHeader;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\nimport Modal from 'react-bootstrap/Modal';\r\n// ICONS\r\nimport { IoClose } from 'react-icons/io5';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport ContentHeader from './ContentHeader';\r\nimport Button from './Button';\r\n// HELPERS\r\n\r\nconst ModalBlock = (props) => {\r\n const {\r\n closeIconColor,\r\n contentHeader,\r\n subtitle,\r\n primaryButtonText,\r\n contentDescription,\r\n children,\r\n buttonSize,\r\n buttonActionsContainerClassName,\r\n primaryModalActionType,\r\n primaryModalActionText,\r\n primaryModalActionColor,\r\n secondaryModalActionType,\r\n secondaryModalActionText,\r\n secondaryModalActionColor,\r\n onHide,\r\n closeActionOnClick,\r\n primaryModalActionOnClick,\r\n secondaryModalActionOnClick,\r\n isVisible,\r\n isCentered,\r\n hasCloseAction,\r\n isTitleCentered,\r\n isPrimaryActionHidden,\r\n isSecondaryActionHidden,\r\n isActionsCentered\r\n } = props;\r\n\r\n return (\r\n \r\n {\r\n hasCloseAction\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n \r\n {(contentHeader || subtitle || primaryButtonText) && (\r\n \r\n )}\r\n\r\n {\r\n contentDescription\r\n && (\r\n \r\n

\r\n {contentDescription}\r\n

\r\n
\r\n )\r\n }\r\n\r\n {children}\r\n\r\n {\r\n primaryModalActionText\r\n && (\r\n \r\n {\r\n !isSecondaryActionHidden\r\n && (\r\n \r\n )\r\n }\r\n\r\n {\r\n !isPrimaryActionHidden\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n
\r\n \r\n );\r\n};\r\n\r\nModalBlock.propTypes = {\r\n // HEADER PROPS\r\n contentHeader: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n primaryButtonText: PropTypes.string,\r\n\r\n // CLOSE ICON PROPS\r\n closeIconColor: PropTypes.string,\r\n\r\n // CONTENT PROPS\r\n contentDescription: PropTypes.any,\r\n children: PropTypes.any,\r\n\r\n // ACTION PROPS\r\n primaryModalActionText: PropTypes.string,\r\n buttonActionsContainerClassName: PropTypes.string,\r\n primaryModalActionType: PropTypes.string,\r\n primaryModalActionColor: PropTypes.string,\r\n secondaryModalActionType: PropTypes.string,\r\n secondaryModalActionText: PropTypes.string,\r\n secondaryModalActionColor: PropTypes.string,\r\n buttonSize: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onHide: PropTypes.func,\r\n closeActionOnClick: PropTypes.func,\r\n primaryModalActionOnClick: PropTypes.func,\r\n secondaryModalActionOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isVisible: PropTypes.bool,\r\n isCentered: PropTypes.bool,\r\n hasCloseAction: PropTypes.bool,\r\n isTitleCentered: PropTypes.bool,\r\n isPrimaryActionHidden: PropTypes.bool,\r\n isSecondaryActionHidden: PropTypes.bool,\r\n isActionsCentered: PropTypes.bool,\r\n};\r\n\r\nModalBlock.defaultProps = {\r\n // HEADER PROPS\r\n contentHeader: '',\r\n subtitle: '',\r\n primaryButtonText: '',\r\n\r\n // CLOSE ICON PROPS\r\n closeIconColor: '',\r\n\r\n // CONTENT PROPS\r\n contentDescription: null,\r\n children: null,\r\n\r\n // ACTION PROPS\r\n buttonActionsContainerClassName: '',\r\n primaryModalActionType: '',\r\n primaryModalActionText: 'Delete',\r\n primaryModalActionColor: 'primary--bg',\r\n secondaryModalActionType: '',\r\n secondaryModalActionText: 'Cancel',\r\n secondaryModalActionColor: 'danger--bg',\r\n buttonSize: 'xs',\r\n\r\n // FUNCTION PROPS\r\n onHide: () => { },\r\n closeActionOnClick: () => { },\r\n primaryModalActionOnClick: () => { },\r\n secondaryModalActionOnClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isVisible: false,\r\n isCentered: true,\r\n hasCloseAction: false,\r\n isTitleCentered: false,\r\n isPrimaryActionHidden: false,\r\n isSecondaryActionHidden: false,\r\n isActionsCentered: false,\r\n};\r\n\r\nexport default ModalBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Section = (props) => {\r\n const {\r\n hasNoContainer,\r\n isFullWidth,\r\n className,\r\n containerStyle,\r\n rowClassName,\r\n rowStyle,\r\n children\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nSection.propTypes = {\r\n // MAIN PROPS\r\n className: PropTypes.string,\r\n rowClassName: PropTypes.string,\r\n containerStyle: PropTypes.object,\r\n rowStyle: PropTypes.object,\r\n children: PropTypes.any,\r\n\r\n // BOOLEAN PROPS\r\n hasNoContainer: PropTypes.bool,\r\n isFullWidth: PropTypes.bool,\r\n};\r\n\r\nSection.defaultProps = {\r\n // SIZE AND APPEARANCE PROPS\r\n className: '',\r\n rowClassName: '',\r\n containerStyle: {},\r\n rowStyle: {},\r\n children: null,\r\n\r\n // BOOLEAN PROPS\r\n hasNoContainer: false,\r\n isFullWidth: false,\r\n};\r\n\r\nexport default Section;","/* eslint-disable no-nested-ternary */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport 'flatpickr/dist/themes/material_green.css';\r\nimport { useHistory } from 'react-router-dom';\r\nimport MaskedInput from 'react-text-mask';\r\nimport createNumberMask from 'text-mask-addons/dist/createNumberMask';\r\n// COMPONENTS\r\nimport InputMask from 'react-input-mask';\r\nimport Flatpickr from 'react-flatpickr';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst defaultMaskOptions = {\r\n prefix: '$ ',\r\n suffix: '',\r\n includeThousandsSeparator: true,\r\n thousandsSeparatorSymbol: ',',\r\n allowDecimal: true,\r\n decimalSymbol: '.',\r\n decimalLimit: 2,\r\n integerLimit: 4,\r\n allowNegative: false,\r\n};\r\n\r\nconst InputBlock = (props) => {\r\n const {\r\n id,\r\n containerClassName,\r\n label,\r\n inputLabel,\r\n inputState,\r\n errorMessage,\r\n successMessage,\r\n warningMessage,\r\n type,\r\n className,\r\n labelColor,\r\n backgroundColor,\r\n placeholder,\r\n mask,\r\n to,\r\n iconLeft,\r\n iconRight,\r\n inputRightButtonText,\r\n inputRightButtonBackgroundColor,\r\n inputRightButtonTextColor,\r\n iconLeftOnClick,\r\n iconRightOnClick,\r\n inputRightButtonOnClick,\r\n isRequired,\r\n isLoading,\r\n isLabelLoading,\r\n isAutoFocus,\r\n isDisabled,\r\n hasBorder,\r\n isCurrency,\r\n } = 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 const currencyMask = createNumberMask(defaultMaskOptions);\r\n\r\n const marginTop = () => {\r\n if (inputLabel) {\r\n return 25;\r\n } if (label) {\r\n return 35;\r\n }\r\n return 10;\r\n };\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n \r\n {\r\n inputLabel !== ''\r\n && (\r\n \r\n {inputLabel}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n {\r\n label !== ''\r\n && (\r\n \r\n {label}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n {\r\n iconLeft\r\n && (\r\n \r\n \r\n {iconLeft}\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n type === 'date'\r\n ? (\r\n \r\n ) : isCurrency ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n\r\n {\r\n (isLoading || iconRight || inputRightButtonText)\r\n && (\r\n \r\n {\r\n isLoading\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n {iconRight}\r\n \r\n )\r\n }\r\n {\r\n inputRightButtonText\r\n && (\r\n navigateToPath(to) : inputRightButtonOnClick}\r\n className={`input-right-button ${inputRightButtonBackgroundColor} ${inputRightButtonTextColor}`}\r\n >\r\n {inputRightButtonText}\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n\r\n {\r\n inputState === 'error'\r\n && (\r\n \r\n {errorMessage || (inputLabel || label ? (inputLabel || `${label} ${errorMessageSuffix}`) : 'Error message undefined')}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'warning'\r\n && (\r\n \r\n {warningMessage}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'success'\r\n && (\r\n \r\n {successMessage}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nInputBlock.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n id: PropTypes.string,\r\n\r\n // LABEL PROPS\r\n label: PropTypes.string,\r\n inputLabel: PropTypes.string,\r\n\r\n // STATE PROPS\r\n inputState: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n successMessage: PropTypes.string,\r\n warningMessage: PropTypes.string,\r\n\r\n // INPUT PROPS\r\n type: PropTypes.string,\r\n className: PropTypes.string,\r\n labelColor: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n mask: PropTypes.string,\r\n\r\n // NAVIGATION PROPS\r\n to: PropTypes.string,\r\n\r\n // ITEMS AND ICON PROPS\r\n iconLeft: PropTypes.any,\r\n iconRight: PropTypes.any,\r\n inputRightButtonText: PropTypes.string,\r\n inputRightButtonBackgroundColor: PropTypes.string,\r\n inputRightButtonTextColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n iconLeftOnClick: PropTypes.func,\r\n iconRightOnClick: PropTypes.func,\r\n inputRightButtonOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isRequired: PropTypes.bool,\r\n isLoading: PropTypes.bool,\r\n isLabelLoading: PropTypes.bool,\r\n isAutoFocus: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n hasBorder: PropTypes.bool,\r\n};\r\n\r\nInputBlock.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n id: '',\r\n\r\n // LABEL PROPS\r\n label: '',\r\n inputLabel: '',\r\n\r\n // STATE PROPS\r\n inputState: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n warningMessage: '',\r\n\r\n // INPUT PROPS\r\n type: 'text',\r\n className: '',\r\n labelColor: 'dark--clr',\r\n backgroundColor: 'light--sbg',\r\n placeholder: '',\r\n mask: '',\r\n\r\n // NAVIGATION PROPS\r\n to: '',\r\n\r\n // ITEMS AND ICON PROPS\r\n iconLeft: null,\r\n iconRight: null,\r\n inputRightButtonText: '',\r\n inputRightButtonBackgroundColor: '',\r\n inputRightButtonTextColor: 'grey--clr',\r\n\r\n // FUNCTION PROPS\r\n iconLeftOnClick: () => { },\r\n iconRightOnClick: () => { },\r\n inputRightButtonOnClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n isRequired: false,\r\n isLoading: false,\r\n isLabelLoading: false,\r\n isAutoFocus: false,\r\n isDisabled: false,\r\n hasBorder: false,\r\n};\r\n\r\nexport default InputBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst FormBlock = (props) => {\r\n const {\r\n className,\r\n style,\r\n children,\r\n onSubmit\r\n } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nFormBlock.propTypes = {\r\n // MAIN PROPS\r\n className: PropTypes.string,\r\n children: PropTypes.any,\r\n\r\n // FORM ACTION PROPS\r\n onSubmit: PropTypes.func,\r\n};\r\n\r\nFormBlock.defaultProps = {\r\n // MAIN PROPS\r\n className: '',\r\n children: null,\r\n\r\n // FORM ACTION PROPS\r\n onSubmit: () => { },\r\n};\r\n\r\nexport default FormBlock;","/* eslint-disable default-param-last */\r\nexport const actionTypes = {\r\n ShowAlert: 'SHOW_ALERT',\r\n HideAlert: 'HIDE_ALERT',\r\n};\r\n\r\nconst initialAlertState = {\r\n visible: false,\r\n text: '',\r\n state: 'success',\r\n};\r\n\r\nexport const reducer = (state = initialAlertState, action) => {\r\n switch (action.type) {\r\n case actionTypes.ShowAlert: {\r\n return {\r\n visible: true,\r\n text: action.payload.text,\r\n state: action.payload.state,\r\n };\r\n }\r\n\r\n case actionTypes.HideAlert: {\r\n return {\r\n ...state,\r\n visible: false\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const actions = {\r\n showAlert: (model) => ({ type: actionTypes.ShowAlert, payload: model }),\r\n hideAlert: () => ({ type: actionTypes.HideAlert }),\r\n};","/* eslint-disable default-param-last */\r\n/* eslint-disable no-console */\r\nexport const actionTypes = {\r\n ShowConfirmModal: 'SHOW_CONFIRM_MODAL',\r\n HideConfirmModal: 'HIDE_CONFIRM_MODAL',\r\n SetProcessing: 'SET_PROCESSING'\r\n};\r\n\r\nconst initialConfirmModalState = {\r\n isVisible: false,\r\n title: '',\r\n text: '',\r\n btnAction: () => console.log('Action not defined'),\r\n closeBtnAction: null,\r\n rightBtnText: '',\r\n isProcessing: false\r\n};\r\n\r\nexport const reducer = (state = initialConfirmModalState, action) => {\r\n switch (action.type) {\r\n case actionTypes.ShowConfirmModal: {\r\n return {\r\n isVisible: true,\r\n title: action.payload.title,\r\n text: action.payload.text,\r\n rightBtnText: action.payload.rightBtnText,\r\n btnAction: action.payload.btnAction,\r\n closeBtnAction: action.payload.closeBtnAction,\r\n isProcessing: false\r\n };\r\n }\r\n\r\n case actionTypes.SetProcessing: {\r\n return {\r\n ...state,\r\n isProcessing: true\r\n };\r\n }\r\n\r\n case actionTypes.HideConfirmModal: {\r\n return initialConfirmModalState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const actions = {\r\n showConfirmModal: (model) => ({ type: actionTypes.ShowConfirmModal, payload: model }),\r\n hideConfirmModal: () => ({ type: actionTypes.HideConfirmModal }),\r\n setProcessing: () => ({ type: actionTypes.SetProcessing })\r\n};","/* eslint-disable import/prefer-default-export */\r\n/* eslint-disable no-debugger */\r\nimport { combineReducers } from 'redux';\r\nimport * as auth from './authRedux';\r\nimport * as alertToast from './alertToastRedux';\r\nimport * as confirmModal from './confirmModalRedux';\r\n\r\nconst appReducer = combineReducers({\r\n auth: auth.reducer,\r\n alertToast: alertToast.reducer,\r\n confirmModal: confirmModal.reducer,\r\n});\r\n\r\nexport const rootReducer = (state, action) => appReducer(state, action);","import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport { reduxBatch } from '@manaflair/redux-batch';\r\nimport { persistStore } from 'redux-persist';\r\nimport { rootReducer } from './rootReducer';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst middleware = [\r\n ...getDefaultMiddleware({\r\n immutableCheck: false,\r\n serializableCheck: false,\r\n thunk: true\r\n }),\r\n sagaMiddleware\r\n];\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n middleware,\r\n devTools: process.env.NODE_ENV !== 'production',\r\n enhancers: [reduxBatch]\r\n});\r\n\r\n/**\r\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\r\n * @see https://github.com/rt2zz/redux-persist#persistor-object\r\n */\r\nexport const persistor = persistStore(store);\r\n\r\nexport default store;","/* eslint-disable consistent-return */\r\n/* eslint-disable no-underscore-dangle */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable import/no-cycle */\r\n/* eslint-disable no-prototype-builtins */\r\n/* eslint-disable no-empty */\r\n/* eslint-disable no-console */\r\nimport store from '../../redux/store';\r\nimport axiosInstance from '../apiService';\r\nimport { actions } from '../../redux/authRedux';\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 const { auth: { authToken } } = store.getState();\r\n request.headers.Authorization = `Bearer ${authToken}`;\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, DELETE';\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 = async (err) => {\r\n if (isEnabled(err.config, 'responseHandlerEnabled')) {\r\n // console.log(\"I am handling error responses\");\r\n }\r\n\r\n // trying again when 401 to refresh the token\r\n const originalConfig = { ...err.config };\r\n if (originalConfig.url !== '/Users/authenticate' && err.response) {\r\n // Access Token was Expired\r\n if (err.response.status === 401 && !originalConfig._retry) {\r\n originalConfig._retry = true;\r\n\r\n try {\r\n const { auth } = store.getState();\r\n const rs = await axiosInstance.post('/Users/refreshToken', { refreshToken: auth.refreshToken }, { headers: { Authorization: `Bearer ${auth.authToken}` } });\r\n\r\n if (rs.data.success) {\r\n store.dispatch(actions.refreshToken(rs.data.user));\r\n return axiosInstance(originalConfig);\r\n }\r\n\r\n throw Error(rs.data.message);\r\n } catch (_error) {\r\n await defaultErrorHandler(err);\r\n }\r\n }\r\n\r\n await defaultErrorHandler(err);\r\n } else {\r\n await defaultErrorHandler(err);\r\n }\r\n};\r\n\r\nconst defaultErrorHandler = async (response) => {\r\n let message = 'Oops! Something went wrong on the server. Please contact support.';\r\n\r\n await Promise.resolve(response.response).then((res) => {\r\n if (res) {\r\n message = res.data.Message;\r\n\r\n // if 401 redirect to login page\r\n if (res.status === 401) {\r\n localStorage.removeItem('persist:auth-token');\r\n window.location = `${window.origin}/login`;\r\n return;\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 }\r\n });\r\n\r\n throw Error(message);\r\n};\r\n\r\nexport {\r\n requestHandler,\r\n successHandler,\r\n errorHandler\r\n};","const constants = {\r\n API_URL: process.env.REACT_APP_API_URL,\r\n REQUIRE_INTERCEPTORS: {\r\n requestHandlerEnabled: true,\r\n responseHandlerEnabled: true\r\n },\r\n CONTENT_SECTION: {\r\n ContentSectionTypeDefault: 'CONTENT_SECTION_DEFAULT',\r\n ContentSectionTypeReversed: 'CONTENT_SECTION_REVERSED',\r\n ContentSectionTypeFullWidth: 'CONTENT_SECTION_FULLWIDTH',\r\n ContentSectionTypeFullWidthPadded: 'CONTENT_SECTION_FULLWIDTH_PADDED',\r\n ContentSectionTypeTextOnly: 'CONTENT_SECTION_TEXTONLY',\r\n ContentSectionTypeCard: 'CONTENT_SECTION_CARD',\r\n ContentSectionTypeBanner: 'CONTENT_SECTION_BANNER',\r\n ContentSectionDynamicBanner: 'CONTENT_SECTION_DYNAMIC_BANNER',\r\n ContentSectionCustom: 'CONTENT_SECTION_CUSTOM',\r\n LeftAlignment: 'LEFT',\r\n RightAlignment: 'RIGHT',\r\n CenterAlignment: 'CENTER',\r\n ButtonActionTypePage: 'PAGE',\r\n ButtonActionTypeLink: 'LINK_NEW_TAB',\r\n ButtonActionTypePhoneNumber: 'PHONENUMBER',\r\n ButtonActionTypeEmail: 'EMAIL',\r\n },\r\n EXCEL_FILE_TYPES: [\r\n 'application/vnd.ms-excel',\r\n 'application/msexcel',\r\n 'application/x-msexcel',\r\n 'application/x-ms-excel',\r\n 'application/x-excel',\r\n 'application/x-dos_ms_excel',\r\n 'application/xls',\r\n 'application/x-xls',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'text/csv'\r\n ],\r\n // JAYROE & COMPANY - PAYTRACE INTEGRATION\r\n REACT_API_INTEGRATOR_ID: '99567Primtek',\r\n};\r\n\r\nexport default constants;","/* eslint-disable import/no-cycle */\r\nimport axios from 'axios';\r\nimport {\r\n requestHandler, successHandler, errorHandler\r\n} from './interceptor/axiosInterceptor';\r\nimport constants from '../constants/constants';\r\n\r\nconst axiosInstance = axios.create({ baseURL: constants.API_URL });\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 axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'PayTrace/';\r\n\r\nconst authenticateUser = async (username, password) => axiosInstance.post(`${ENDPOINTORIGIN}AuthenticatePayTraceUser`, { username, password }, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst processPayment = async (paymentDetails, accessToken) => axiosInstance.post(`${ENDPOINTORIGIN}ProcessPayment`, { paymentDetails, accessToken }, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n authenticateUser,\r\n processPayment\r\n};","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { useFormik } from 'formik';\r\n// ICONS\r\nimport { FiLock, FiUser } from 'react-icons/fi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport Button from '../../../components/Button';\r\nimport FormBlock from '../../../components/FormBlock';\r\n// SERVICES & HELPERS\r\nimport * as payTraceService from '../../../services/cms/payTraceService';\r\n\r\nconst PayTraceAuthForm = (props) => {\r\n const { setAuthResponse } = props;\r\n const [passwordVisible, setPasswordVisible] = useState(false);\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n username: '',\r\n password: '',\r\n },\r\n onSubmit: async (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n\r\n try {\r\n const res = await payTraceService.authenticateUser(values.username, values.password);\r\n if (res) {\r\n setAuthResponse(res);\r\n // console.log('AUTH RESPONSE', res);\r\n }\r\n } catch (error) {\r\n // console.error('Error', error);\r\n } finally {\r\n setSubmitting(false);\r\n }\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {/* USERNAME */}\r\n }\r\n />\r\n\r\n {/* PASSWORD */}\r\n }\r\n inputRightButtonText={passwordVisible ? 'Hide' : 'Show'}\r\n inputRightButtonOnClick={() => setPasswordVisible(!passwordVisible)}\r\n />\r\n \r\n\r\n {/* AUTH FORM ACTIONS */}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PayTraceAuthForm;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst ContentBlock = (props) => {\r\n const { className, cols, children } = props;\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 1: 'col-lg-1 col-md-1',\r\n };\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nContentBlock.propTypes = {\r\n // MAIN PROPS\r\n cols: PropTypes.number,\r\n className: PropTypes.string,\r\n children: PropTypes.any\r\n};\r\n\r\nContentBlock.defaultProps = {\r\n cols: 12,\r\n className: '',\r\n children: null\r\n};\r\n\r\nexport default ContentBlock;","/* eslint-disable camelcase */\r\nimport moment from 'moment';\r\nimport constants from '../constants/constants';\r\n\r\n/* eslint-disable no-restricted-syntax */\r\nconst getInputClasses = (formik, fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return 'error';\r\n }\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return '';\r\n }\r\n\r\n return '';\r\n};\r\n\r\nconst convertJsonToFormData = (json) => {\r\n const form_data = new FormData();\r\n for (const key in json) {\r\n if (Array.isArray(json[key])) { json[key].forEach((item) => form_data.append(key, item)); } else { form_data.append(key, (json[key] === null) ? '' : json[key]); }\r\n }\r\n\r\n return form_data;\r\n};\r\n\r\nconst setToOptionModel = (name, value) => ({ label: name, value });\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\nconst mapContentSectionName = (type) => {\r\n switch (type) {\r\n case constants.CONTENT_SECTION.ContentSectionTypeDefault:\r\n return 'Content Section (Default)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeReversed:\r\n return 'Content Section (Reversed)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidth:\r\n return 'Content Section Full Width';\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded:\r\n return 'Content Section Full Width (Padded)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeTextOnly:\r\n return 'Content Section (Text Only)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeCard:\r\n return 'Content Card';\r\n case constants.CONTENT_SECTION.ContentSectionTypeBanner:\r\n return 'Content Banner';\r\n case constants.CONTENT_SECTION.ContentSectionDynamicBanner:\r\n return 'Banner';\r\n case constants.CONTENT_SECTION.ContentSectionCustom:\r\n return 'Custom';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nconst copyToClipBoard = (copyText) => {\r\n const aux = document.createElement('input');\r\n aux.setAttribute('value', copyText);\r\n document.body.appendChild(aux);\r\n aux.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(aux);\r\n};\r\n\r\nconst countdownMessage = (expiryDate) => {\r\n if (!expiryDate) {\r\n return '';\r\n }\r\n\r\n const date = moment().format('MM/DD/YYYY hh:mm:ss a');\r\n const diffr = moment.duration(moment(new Date(expiryDate)).diff(new Date(date)));\r\n const hours = parseInt(diffr.asHours(), 10);\r\n const minutes = parseInt(diffr.minutes(), 10);\r\n const seconds = parseInt(diffr.seconds(), 10);\r\n const currentDuration = Math.floor((hours * 60 * 60 + minutes * 60 + seconds) / 3600);\r\n\r\n if (currentDuration > 24) {\r\n return `${Math.ceil(currentDuration / 24)} Days Left`;\r\n }\r\n if (currentDuration === 24) {\r\n return `${Math.floor(currentDuration / 24)} Day Left`;\r\n }\r\n if (currentDuration > 12 && currentDuration !== 24) {\r\n return 'Expires Soon';\r\n }\r\n if ((currentDuration < 12 && currentDuration > 0) || currentDuration === 0) {\r\n return 'Expires Today';\r\n }\r\n if (currentDuration === -1 || currentDuration < -1) {\r\n return '';\r\n }\r\n\r\n return 'Limited-Time Only';\r\n};\r\n\r\nconst dateFilterListRenderer = (v) => {\r\n if (v[0] && v[1]) {\r\n return `Start Date: ${v[0]} to End Date: ${v[1]}`;\r\n }\r\n if (v[0]) {\r\n return `Start Date: ${v[0]}`;\r\n }\r\n if (v[1]) {\r\n return `End Date: ${v[1]}`;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst dateFilterLogic = (date, filters) => {\r\n const check = new Date(date);\r\n let from = new Date(filters[0]);\r\n let to = new Date(filters[1]);\r\n\r\n from.setDate(from.getDate() + 1);\r\n to.setDate(to.getDate() + 1);\r\n from = new Date(from).setHours(0, 0, 0, 0);\r\n to = new Date(to).setHours(23, 59, 59, 59);\r\n\r\n if (filters[0] && filters[1] && check >= to && check <= from) {\r\n return true;\r\n }\r\n if (filters[0] && check >= to) {\r\n return true;\r\n }\r\n if (filters[1] && check <= from) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n// Extracts date (month, day, year) from input string using regex,\r\n// returns object with values or null\r\nconst extractDateFromString = (str) => {\r\n const monthRegex = /(jan(?:uary)?|feb(?:ruary)?|mar(?:ch)?|apr(?:il)?|may|jun(?:e)?|jul(?:y)?|aug(?:ust)?|sep(?:tember)?|oct(?:ober)?|nov(?:ember)?|dec(?:ember)?)/gi;\r\n const dayRegex = /\\d{1,2}/;\r\n const yearRegex = /\\d{4}/;\r\n\r\n const monthMatch = str.match(monthRegex);\r\n const dayMatch = str.match(dayRegex);\r\n const yearMatch = str.match(yearRegex);\r\n\r\n if (monthMatch && dayMatch) {\r\n const month = monthMatch[0].toLowerCase();\r\n const day = dayMatch[0];\r\n const year = yearMatch ? yearMatch[0] : null;\r\n\r\n return { month, day, year };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst extractDate = (input) => {\r\n const match = input.match(/^(\\w+),\\s(\\w+)\\s(\\d+),\\s(\\d+),\\s(\\d+):(\\d+)\\s(am|pm)\\s-\\s(\\d+):(\\d+)\\s(am|pm)$/);\r\n\r\n return {\r\n weekDay: match[1],\r\n month: match[2],\r\n day: match[3],\r\n year: match[4]\r\n };\r\n};\r\n\r\nconst extractTimeFromString = (input) => {\r\n const timeRegex = /(\\d{1,2}:\\d{2} [ap]m)/gi;\r\n const times = input.match(timeRegex);\r\n\r\n if (!times) {\r\n return null;\r\n }\r\n\r\n const time = {};\r\n if (times.length === 1) {\r\n time.startValue = times[0].slice(0, 5);\r\n time.startMeridian = times[0].slice(5);\r\n } else {\r\n time.startValue = times[0].slice(0, 5);\r\n time.startMeridian = times[0].slice(5).toUpperCase();\r\n time.endValue = times[1].slice(0, 5);\r\n time.endMeridian = times[1].slice(5).toUpperCase();\r\n }\r\n\r\n return time;\r\n};\r\n\r\nconst extractLocationData = (input) => {\r\n const addressRegex = /^(.+),/;\r\n const addressMatch = input.match(addressRegex);\r\n\r\n const iframeRegex = /src=\"(.+?)\"/;\r\n const iframeMatch = input.match(iframeRegex);\r\n\r\n if (!addressMatch || !iframeMatch) {\r\n return null;\r\n }\r\n\r\n const address = addressMatch[1];\r\n const iframeSrc = iframeMatch[1];\r\n\r\n const [street, city, state, zipcode] = address.split(', ');\r\n\r\n return {\r\n street,\r\n city,\r\n state,\r\n zipcode,\r\n iframeSrc\r\n };\r\n};\r\n\r\nconst extractDescription = (input) => {\r\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\r\n const links = input.match(linkRegex);\r\n const output = { description: input.replace(linkRegex, '').trim() };\r\n\r\n if (links) {\r\n for (let i = 0; i < links.length; i += 1) {\r\n const link = links[i];\r\n const label = link.match(/\\[(.*?)\\]/)[1];\r\n const url = link.match(/\\((.*?)\\)/)[1];\r\n\r\n output[`link${i + 1}`] = { label, url };\r\n }\r\n }\r\n\r\n return output;\r\n};\r\n\r\n// FORMAT CREDIT CARD PAYMENT AMOUNT\r\nconst formatAmount = (amount) => {\r\n // REMOVE ALL CHARACTERS EXCEPT DIGITS AND DECIMAL POINT, THEN CONVERT TO NUMBER\r\n const numericValue = amount.replace(/[^\\d.]/g, '');\r\n return parseFloat(numericValue);\r\n};\r\n\r\nexport {\r\n getInputClasses,\r\n convertJsonToFormData,\r\n setToOptionModel,\r\n reOrderDnd,\r\n mapContentSectionName,\r\n copyToClipBoard,\r\n countdownMessage,\r\n dateFilterListRenderer,\r\n dateFilterLogic,\r\n extractDateFromString,\r\n extractDate,\r\n extractTimeFromString,\r\n extractLocationData,\r\n extractDescription,\r\n formatAmount,\r\n};","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable camelcase */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport Button from '../../../components/Button';\r\nimport ContentBlock from '../../../components/ContentBlock';\r\n// SERVICES & HELPERS\r\nimport * as helper from '../../../helpers/helper';\r\nimport * as payTraceService from '../../../services/cms/payTraceService';\r\nimport constants from '../../../constants/constants';\r\n// REDUX\r\nimport * as alert from '../../../redux/alertToastRedux';\r\nimport * as authRedux from '../../../redux/authRedux';\r\n\r\nconst protectJSInstanceStyles = {\r\n cc: {\r\n // CC NUMBER\r\n width: '290px',\r\n height: '45px',\r\n padding_right: '0px',\r\n padding_bottom: '20px',\r\n padding_left: '0px',\r\n font_size: '16px',\r\n font_color: '#333',\r\n border_color: '#CCCCCCCC',\r\n border_style: 'solid',\r\n background_color: '#FFFFFF',\r\n // LABEL\r\n label_margin: '0 0 10px 0',\r\n label_color: '#333',\r\n label_font_weight: '600',\r\n // INPUT\r\n input_padding: '0 0 0 10px',\r\n input_border_radius: '7px',\r\n input_border_width: '1px',\r\n input_font_weight: '400',\r\n },\r\n exp: {\r\n // EXPIRATION\r\n width: '100px',\r\n height: '45px',\r\n padding_bottom: '20px',\r\n font_size: '16px',\r\n font_color: '#333',\r\n border_color: '#CCCCCCCC',\r\n border_style: 'solid',\r\n background_color: '#FFFFFF',\r\n // LABEL\r\n label_margin: '0 0 10px 0',\r\n label_color: '#333',\r\n label_font_weight: '600',\r\n // INPUT\r\n input_border_radius: '7px',\r\n input_border_width: '1px',\r\n input_padding: '0 0 0 5px',\r\n },\r\n code: {\r\n // SECURITY CODE\r\n width: '195px',\r\n height: '45px',\r\n padding_bottom: '20px',\r\n font_size: '16px',\r\n font_color: '#333',\r\n border_color: '#CCCCCCCC',\r\n border_style: 'solid',\r\n background_color: '#FFFFFF',\r\n // LABEL\r\n label_margin: '0 0 10px 0',\r\n label_color: '#333',\r\n label_font_weight: '600',\r\n // INPUT\r\n input_padding: '0 10px',\r\n input_border_radius: '7px',\r\n input_border_width: '1px',\r\n },\r\n};\r\n\r\nconst PayTracePaymentForm = (props) => {\r\n const { showAlert, authResponse, setPaymentResponse, handleModalClose } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [payTraceInstance, setPayTraceInstance] = useState(null);\r\n const [paymentAmount, setPaymentAmount] = useState('');\r\n\r\n // PROTECT.JS INSTANCE (PAYTRACE HOSTED IFRAME PAYMENT FIELDS)\r\n const createProtectJSInstance = () => {\r\n const protectURL = 'https://protect.paytrace.com/js/protect.min.js';\r\n const protectSandboxURL = 'https://protect.sandbox.paytrace.com/js/protect.min.js';\r\n\r\n const script = document.createElement('script');\r\n script.src = authResponse.username === 'zane@primtek.net' ? protectSandboxURL : protectURL;\r\n script.async = true;\r\n document.body.appendChild(script);\r\n\r\n script.onload = () => {\r\n if (window.PTPayment) {\r\n window.PTPayment.setup({\r\n authorization: { clientKey: authResponse.clientKey },\r\n styles: protectJSInstanceStyles,\r\n }).then((instance) => {\r\n setPayTraceInstance(instance);\r\n }).catch(() => {\r\n // console.error('Error setting up Protect.js:', error);\r\n });\r\n }\r\n };\r\n\r\n script.onerror = () => {\r\n // console.error('Error loading Protect.js script:', error);\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n if (authResponse) {\r\n createProtectJSInstance();\r\n }\r\n }, [authResponse]);\r\n\r\n const handlePaymentSubmit = async (e) => {\r\n setIsLoading(true);\r\n e.preventDefault();\r\n\r\n if (!paymentAmount) {\r\n showAlert({\r\n text: 'Payment Amount is required.',\r\n state: 'error'\r\n });\r\n\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n if (!payTraceInstance) {\r\n showAlert({\r\n text: 'Oops! Please make sure all required fields are filled in correctly.',\r\n state: 'error',\r\n });\r\n return;\r\n }\r\n\r\n try {\r\n const tokenizationResponse = await payTraceInstance.process();\r\n\r\n if (tokenizationResponse.success) {\r\n const paymentData = {\r\n amount: paymentAmount,\r\n hpf_token: tokenizationResponse.message.hpf_token,\r\n enc_key: tokenizationResponse.message.enc_key,\r\n integrator_id: constants.REACT_API_INTEGRATOR_ID,\r\n };\r\n\r\n const response = await payTraceService.processPayment(paymentData, authResponse.accessToken);\r\n\r\n const formattedResponse = {\r\n message: response.status_Message,\r\n responseCode: response.response_Code,\r\n approvalCode: response.approval_Code,\r\n approvalMessage: response.approval_Message,\r\n transactionId: response.transaction_Id,\r\n };\r\n\r\n setPaymentResponse(formattedResponse);\r\n } else {\r\n // console.log('error');\r\n }\r\n } catch (error) {\r\n showAlert({\r\n text: 'Oops! Please make sure all required fields are filled in correctly.',\r\n state: 'error',\r\n });\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const handlePaymentAmount = (input) => {\r\n const value = helper.formatAmount(input);\r\n setPaymentAmount(value);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n handlePaymentAmount(e.target.value)}\r\n />\r\n \r\n\r\n
\r\n\r\n {/* PROTECT JS FORM */}\r\n \r\n
\r\n
\r\n
\r\n\r\n {/* PAYMENT FORM ACTIONS */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...authRedux.actions,\r\n ...alert.actions\r\n }\r\n)(PayTracePaymentForm);","export default __webpack_public_path__ + \"static/media/logo_pay-trace.4cbd6be0.svg\";","/* eslint-disable max-len */\r\n/* eslint-disable no-nested-ternary */\r\n/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React, { useState, useContext } from 'react';\r\nimport { connect } from 'react-redux';\r\n// ICONS\r\nimport { FaUserCheck } from 'react-icons/fa';\r\nimport { FaRegCircleCheck } from 'react-icons/fa6';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport ContentHeader from './ContentHeader';\r\nimport Image from './Image';\r\nimport ModalBlock from './ModalBlock';\r\nimport Button from './Button';\r\n// FORMS\r\nimport PayTraceAuthForm from '../pages/cms/forms/PayTraceAuthForm';\r\nimport PayTracePaymentForm from '../pages/cms/forms/PayTracePaymentForm';\r\n// ASSETS\r\nimport PayTraceLogo from '../assets/img/logo_pay-trace.svg';\r\n// REDUX\r\nimport * as auth from '../redux/authRedux';\r\nimport * as alertToast from '../redux/alertToastRedux';\r\n// CONTEXT\r\nimport PayTraceModalContext from '../context/PayTraceModalContext';\r\n\r\nconst PayTraceForm = () => {\r\n const { isPayTraceModalOpen, setIsPayTraceModalOpen } = useContext(PayTraceModalContext);\r\n\r\n const [passwordVisible, setPasswordVisible] = useState(false);\r\n const [authResponse, setAuthResponse] = useState('');\r\n const [paymentResponse, setPaymentResponse] = useState('');\r\n\r\n const handleModalClose = () => {\r\n setAuthResponse('');\r\n setPaymentResponse('');\r\n setIsPayTraceModalOpen(false);\r\n };\r\n\r\n return (\r\n \r\n {/* MODAL HEADER */}\r\n \r\n\r\n {/* MODAL SUBHEADER */}\r\n {authResponse ? (\r\n <>\r\n \r\n \r\n \r\n

{authResponse.username}

\r\n
\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n {!authResponse ? (\r\n // AUTH FORM\r\n \r\n ) : !paymentResponse ? (\r\n // PAYMENT FORM\r\n \r\n ) : (\r\n // PAYMENT RESPONSE\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n

{paymentResponse.message}

\r\n

\r\n Transaction ID:\r\n {paymentResponse.transactionId}\r\n

\r\n {/*

{paymentResponse.responseCode}

\r\n

{paymentResponse.approvalCode}

\r\n

{paymentResponse.approvalMessage}

*/}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {/* PAY TRACE SANDBOX CREDIT CARD TESTING */}\r\n {/* \r\n

VISA: 4012000098765439999

\r\n

MASTER CARD: 5499740000000057998

\r\n

DISCOVER: 6011000993026909996

\r\n

AMEX: 3714496353923769997

\r\n
*/}\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions, ...alertToast.actions })(PayTraceForm);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'MenuItem/';\r\n\r\nconst getAllMenuItems = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllMenuItems?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getMenuItemsById = async (menuItemId) => axiosInstance.get(`${ENDPOINTORIGIN}GetMenuItemById?menuItemId=${menuItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getMenuItemsWithNoParentOrChild = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetMenuItemsWithNoParentOrChild`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createMenuItem = async (menuItem) => axiosInstance.post(`${ENDPOINTORIGIN}CreateMenuItem`, menuItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteMenuItem = async (id) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteMenuItem?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateMenuItems = async (menuItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateMenuItems`, menuItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst removeParentMenuItem = async (id) => axiosInstance.delete(`${ENDPOINTORIGIN}RemoveParentMenuItem?menuItemId=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst assignParentMenuItem = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}AssignParentMenuItem`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortMenuItems = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}SortMenuItems`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortChildMenuItems = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}SortChildMenuItems`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllMenuItems,\r\n getMenuItemsById,\r\n createMenuItem,\r\n deleteMenuItem,\r\n updateMenuItems,\r\n removeParentMenuItem,\r\n assignParentMenuItem,\r\n getMenuItemsWithNoParentOrChild,\r\n sortMenuItems,\r\n sortChildMenuItems\r\n};","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable arrow-body-style */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n// DEPENDENCIES\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useContext\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n// ICONS\r\nimport { FiFacebook, FiMenu } from 'react-icons/fi';\r\nimport { TiArrowSortedDown } from 'react-icons/ti';\r\nimport { RiInstagramLine, RiQuestionAnswerFill } from 'react-icons/ri';\r\nimport { MdMailOutline, MdSupervisedUserCircle } from 'react-icons/md';\r\nimport { TbMailFilled } from 'react-icons/tb';\r\nimport {\r\n FaPhoneAlt,\r\n FaFacebookF,\r\n FaLinkedinIn,\r\n FaTwitter,\r\n FaYoutube\r\n} from 'react-icons/fa';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\nimport Image from './Image';\r\nimport DrawerNavigation from './DrawerNavigation';\r\nimport SelectBlock from './SelectBlock';\r\nimport Chip from './Chip';\r\nimport Modal from './ModalBlock';\r\nimport Section from './Section';\r\nimport PayTraceModal from './PayTraceModal';\r\n// ASSETS\r\nimport PayTraceLogo from '../assets/img/logo_pay-trace.svg';\r\n// SERVICES\r\nimport * as menuItemService from '../services/cms/menuItemService';\r\nimport PayTraceModalContext from '../context/PayTraceModalContext';\r\n\r\nconst HeaderNavigation = (props) => {\r\n const {\r\n auth,\r\n cmsInfo,\r\n // layout,\r\n phoneNumber,\r\n emailAddress,\r\n backgroundColor,\r\n menuItemsBlockBackgroundColor,\r\n menuItemColor,\r\n menuToggleIconColor,\r\n menuToggleIconSize,\r\n mobileMenuItemColor,\r\n submenuBlockBackgroundColor,\r\n submenuItemColor,\r\n fixedNavigationBarBackgroundColor,\r\n logo,\r\n logoAlt,\r\n icon,\r\n iconSize,\r\n iconAppearance,\r\n socialIconColor,\r\n socialIconBackgroundColor,\r\n primarySocialMediaLink,\r\n secondarySocialMediaLink,\r\n hasSearchBlock,\r\n menuItems,\r\n hasChipFilter,\r\n hasRoundCorners,\r\n history\r\n } = props;\r\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\r\n const [expandedMenuId, setExpandedMenuId] = useState(null);\r\n // const [isMembersModalOpen, setIsMembersModalOpen] = useState(false);\r\n // const [isPayTraceModalOpen, setIsPayTraceModalOpen] = useState(false);\r\n const { isPayTraceModalOpen, setIsPayTraceModalOpen } = useContext(PayTraceModalContext);\r\n const [scroll, setScroll] = useState(1);\r\n\r\n // const SVGHeaderBackground = ({ fillColor, width, height, className }) => {\r\n // return (\r\n // \r\n // \r\n // \r\n // );\r\n // };\r\n\r\n const SocialIconButton = (socialIconButtonProps) => {\r\n const {\r\n displayIf,\r\n buttonColor,\r\n buttonText,\r\n socialIcon,\r\n onClickAction,\r\n className,\r\n title\r\n } = socialIconButtonProps;\r\n return displayIf && (\r\n \r\n {socialIcon}\r\n {buttonText &&

{buttonText}

}\r\n \r\n );\r\n };\r\n\r\n const onScroll = () => {\r\n const scrollCheck = window.scrollY > 10;\r\n setScroll(scrollCheck);\r\n };\r\n\r\n useEffect(() => {\r\n onScroll();\r\n\r\n document.addEventListener('scroll', onScroll);\r\n return () => {\r\n document.removeEventListener('scroll', onScroll);\r\n };\r\n }, [scroll, setScroll]);\r\n\r\n const popularSelections = [\r\n { id: 1, name: 'Filter 1', url: '' },\r\n { id: 2, name: 'Filter 2', url: '' },\r\n { id: 3, name: 'Filter 3', url: '' },\r\n { id: 4, name: 'Filter 4', url: '' },\r\n { id: 5, name: 'Filter 5', url: '' },\r\n ];\r\n\r\n const iconAppearanceOptions = {\r\n square: 'square',\r\n round: 'round',\r\n circle: 'circle',\r\n };\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const handleMenuItemClick = (menuItem) => {\r\n if (menuItem.pageUrl === '') {\r\n menuItemService.getMenuItemsById(menuItem.id).then((res) => {\r\n if (res.customLink && res.customLink.includes('https')) {\r\n openInNewTab(res.customLink);\r\n } else {\r\n history.push(res.customLink);\r\n }\r\n });\r\n }\r\n\r\n if (menuItem.pageUrl && menuItem.pageUrl !== '') {\r\n if (menuItem.openInNewTab) {\r\n openInNewTab(menuItem.pageUrl);\r\n } else {\r\n history.push(menuItem.pageUrl);\r\n }\r\n } else if (menuItem.customLink) {\r\n if (menuItem.openInNewTab) {\r\n openInNewTab(menuItem.customLink);\r\n } else {\r\n history.push(menuItem.customLink);\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n setIsDrawerOpen(false);\r\n }, 200);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen(!isDrawerOpen);\r\n };\r\n\r\n const navigateToPage = (page) => {\r\n history.push(page);\r\n\r\n setTimeout(() => {\r\n setIsDrawerOpen(false);\r\n }, 200);\r\n };\r\n\r\n const toggleMobileSubmenu = (menuId) => {\r\n if (expandedMenuId === menuId) {\r\n setExpandedMenuId(null);\r\n } else {\r\n setExpandedMenuId(menuId);\r\n }\r\n };\r\n\r\n const sendEmail = (email) => {\r\n window.open(`mailto:${email}`, '_self');\r\n };\r\n\r\n const callPhoneNumber = (tel) => {\r\n window.open(`tel:${tel}`, '_self');\r\n };\r\n\r\n const socialIconsRef = [\r\n {\r\n platform: 'youtube',\r\n displayIf: cmsInfo.youtubeLink !== null,\r\n title: `YouTube | ${cmsInfo.youtubeLink}`,\r\n buttonColor: '#F52424',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.youtubeLink)\r\n },\r\n {\r\n platform: 'twitter',\r\n displayIf: cmsInfo.twitterLink !== null,\r\n title: `Twitter | ${cmsInfo.twitterLink}`,\r\n buttonColor: '#25A4EF',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.twitterLink)\r\n },\r\n {\r\n platform: 'googleMap',\r\n displayIf: cmsInfo.googleMapLink !== null,\r\n title: `Google Maps | ${cmsInfo.googleMapLink}`,\r\n buttonColor: '#FAFAFA',\r\n onClickAction: () => openInNewTab(cmsInfo.googleMapLink),\r\n socialIcon: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n platform: 'tikTok',\r\n displayIf: cmsInfo.tikTokLink !== null,\r\n title: `TikTok | ${cmsInfo.tikTokLink}`,\r\n buttonColor: '#080808',\r\n onClickAction: () => openInNewTab(cmsInfo.tikTokLink),\r\n socialIcon: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n platform: 'instagram',\r\n displayIf: cmsInfo.instagramLink !== null,\r\n title: `Instagram | ${cmsInfo.instagramLink}`,\r\n buttonColor: 'radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%,#d6249f 60%,#285AEB 90%)',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.instagramLink)\r\n },\r\n {\r\n platform: 'linkedin',\r\n displayIf: cmsInfo.linkedInLink !== null,\r\n title: `LinkedIn | ${cmsInfo.linkedInLink}`,\r\n buttonColor: '#0966C2',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.linkedInLink),\r\n },\r\n {\r\n platform: 'facebook',\r\n displayIf: cmsInfo.facebookLink !== null,\r\n title: `Facebook | ${cmsInfo.facebookLink}`,\r\n buttonColor: 'linear-gradient(to top, #0062E0, #19AFFF)',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.facebookLink),\r\n },\r\n {\r\n platform: 'phone',\r\n displayIf: phoneNumber !== null,\r\n title: `${phoneNumber}`,\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => callPhoneNumber(phoneNumber),\r\n },\r\n {\r\n platform: 'email',\r\n displayIf: emailAddress !== null,\r\n title: `${emailAddress}`,\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => sendEmail(emailAddress),\r\n },\r\n {\r\n platform: 'payTrace',\r\n displayIf: true,\r\n title: 'PayTrace',\r\n buttonColor: '#444444',\r\n socialIcon: (\r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n ),\r\n onClickAction: () => setIsPayTraceModalOpen(true),\r\n },\r\n {\r\n platform: 'contactUs',\r\n displayIf: true,\r\n title: 'Contact Us',\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => navigateToPage('/contact-jayroe'),\r\n },\r\n // {\r\n // platform: 'memberPortal',\r\n // displayIf: true,\r\n // buttonText: 'Members',\r\n // socialIcon: ,\r\n // onClickAction: () => setIsMembersModalOpen(true),\r\n // className: 'member-portal',\r\n // },\r\n {\r\n platform: 'mobileMenuToggle',\r\n displayIf: true,\r\n socialIcon: ,\r\n onClickAction: () => toggleDrawer(),\r\n className: 'mobile-menu-toggle',\r\n },\r\n ];\r\n\r\n const socialItemsHeaderNav = socialIconsRef.filter((item) => !['phone', 'email'].includes(item.platform));\r\n // const socialItemsHeaderNav = socialIconsRef.filter((item) => ['contactUs', 'googleMap', 'facebook', 'linkedin'].includes(item.platform));\r\n const socialItemsMobileNav = socialIconsRef.filter((item) => ['mobileMenuToggle'].includes(item.platform));\r\n\r\n const socialItemsDrawerNav = socialIconsRef.filter((item) => ['contactUs', 'googleMap', 'facebook', 'instagram'].includes(item.platform));\r\n\r\n return (\r\n <>\r\n {/* MOBILE NAVIGATION */}\r\n \r\n \r\n {/* MOBILE NAVIGATION - LOGO BLOCK */}\r\n \r\n \r\n \r\n\r\n {/* MOBILE NAVIGATION - ICONS */}\r\n \r\n {socialItemsMobileNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n {/* HEADER NAVIGATION */}\r\n \r\n {/* */}\r\n\r\n {/* HEADER NAVIGATION - PRIMARY */}\r\n \r\n {\r\n hasSearchBlock\r\n && (\r\n \r\n {/* LOGO */}\r\n \r\n \r\n \r\n\r\n {/* SEARCH */}\r\n {\r\n \r\n {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n\r\n history.push('/deals', {\r\n predefinedFilter: {\r\n sortBy: '',\r\n priceRange: '',\r\n categories: null,\r\n searchTerm: e.target.value,\r\n productTypes: '',\r\n featuredSections: null,\r\n skip: 0\r\n }\r\n });\r\n\r\n e.target.blur();\r\n }\r\n }}\r\n autoBlur\r\n backgroundColor=\"white--sbg\"\r\n value={[]}\r\n defaultOptions={[]}\r\n // loadOptions={loadSuggestions}\r\n noOptionsMessage={(e) => {\r\n return (e.inputValue !== '') ? 'No Results Available' : 'Start typing and press enter to search';\r\n }}\r\n formatOptionLabel={(option) => (\r\n \r\n \r\n \r\n \r\n

{option.label}

\r\n
\r\n )}\r\n onChange={(e) => {\r\n history.push(`/deal/details/${e.value}`);\r\n }}\r\n />\r\n {\r\n hasChipFilter\r\n && (\r\n \r\n \r\n {\r\n popularSelections.map((item) => (\r\n {\r\n\r\n }}\r\n />\r\n ))\r\n }\r\n \r\n \r\n )\r\n }\r\n
\r\n }\r\n\r\n {/* ICONS BLOCK */}\r\n \r\n {\r\n primarySocialMediaLink !== null\r\n && (\r\n openInNewTab(primarySocialMediaLink)}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n phoneNumber !== null\r\n && (\r\n openInNewTab(secondarySocialMediaLink)}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n emailAddress !== null\r\n && (\r\n {\r\n sendEmail(emailAddress);\r\n }}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n openInNewTab(`${auth.authToken ? '/cms/management/pages' : '/login'}`);\r\n }}\r\n />\r\n \r\n
\r\n )\r\n }\r\n\r\n {\r\n !hasSearchBlock\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {/* MENU ITEMS */}\r\n \r\n\r\n
    \r\n
  • \r\n \r\n
  • \r\n {\r\n menuItems.map((menuItem) => (\r\n menuItem.assignedMenuItems.length > 0\r\n ? (\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n />\r\n \r\n
      \r\n {\r\n menuItem.assignedMenuItems.map((submenuItem) => (\r\n
    • \r\n {\r\n handleMenuItemClick(submenuItem);\r\n }}\r\n className={`menu-item ${submenuItemColor || menuItemColor}`}\r\n />\r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
  • \r\n ) : (\r\n\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n className={`menu-item hover-animation--underline ${menuItemColor}`}\r\n />\r\n
  • \r\n )\r\n ))\r\n }\r\n
\r\n\r\n
\r\n\r\n {/* HEADER NAVIGATION - SECONDARY */}\r\n \r\n \r\n {socialItemsHeaderNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n\r\n {/* DRAWER NAVIGATION */}\r\n {\r\n toggleDrawer();\r\n }}\r\n className=\"drawer-navigation\"\r\n headerItems={(\r\n \r\n \r\n \r\n )}\r\n footerItems={(\r\n \r\n {socialItemsDrawerNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n )}\r\n >\r\n {/* DRAWER NAVIGATION - NAVIGATION BLOCK */}\r\n
    \r\n
  • \r\n {\r\n navigateToPage('/');\r\n }}\r\n />\r\n
  • \r\n {\r\n menuItems.map((menuItem) => (\r\n menuItem.assignedMenuItems.length > 0\r\n ? (\r\n
  • \r\n }\r\n onClick={() => {\r\n toggleMobileSubmenu(menuItem.id);\r\n }}\r\n />\r\n \r\n
      \r\n {\r\n menuItem.assignedMenuItems.map((submenuItem) => (\r\n
    • \r\n {\r\n handleMenuItemClick(submenuItem);\r\n }}\r\n />\r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
  • \r\n ) : (\r\n\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n />\r\n
  • \r\n )\r\n ))\r\n }\r\n
  • \r\n {\r\n navigateToPage('/login');\r\n }}\r\n />\r\n
  • \r\n
\r\n \r\n\r\n {/* PAY TRACE MODAL */}\r\n \r\n \r\n );\r\n};\r\n\r\nHeaderNavigation.propTypes = {\r\n // MAIN PROPS\r\n // layout: PropTypes.string.isRequired,\r\n logo: PropTypes.string.isRequired,\r\n icon: PropTypes.string.isRequired,\r\n backgroundColor: PropTypes.string,\r\n menuItemsBlockBackgroundColor: PropTypes.string,\r\n fixedNavigationBarBackgroundColor: PropTypes.string.isRequired,\r\n // to: PropTypes.string,\r\n\r\n // NAVIGATION PROPS\r\n menuItemColor: PropTypes.string,\r\n menuToggleIconColor: PropTypes.string,\r\n menuToggleIconSize: PropTypes.number,\r\n mobileMenuItemColor: PropTypes.string,\r\n\r\n // SUB MENU PROPS\r\n submenuBlockBackgroundColor: PropTypes.string,\r\n submenuItemColor: PropTypes.string,\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: PropTypes.number,\r\n iconAppearance: PropTypes.string.isRequired,\r\n socialIconBackgroundColor: PropTypes.string,\r\n socialIconColor: PropTypes.string,\r\n primarySocialMediaLink: PropTypes.string,\r\n secondarySocialMediaLink: PropTypes.string,\r\n\r\n // PRIMARY ICON PROPS\r\n // primaryActionIcon: PropTypes.any,\r\n // primaryActionIconText: PropTypes.string,\r\n\r\n // SECONDARY ICON PROPS\r\n // secondaryActionIcon: PropTypes.any,\r\n // secondaryActionIconText: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n // // primaryActionOnClick: PropTypes.func,\r\n // secondaryActionOnClick: PropTypes.func,\r\n\r\n // BOOLEANS PROPS\r\n hasSearchBlock: PropTypes.bool,\r\n\r\n // menuItems: PropTypes.array,\r\n hasChipFilter: PropTypes.bool,\r\n // hasFeaturedItems: PropTypes.bool,\r\n hasRoundCorners: PropTypes.bool,\r\n};\r\n\r\nHeaderNavigation.defaultProps = {\r\n // MAIN PROPS\r\n backgroundColor: 'white--sbg',\r\n menuItemsBlockBackgroundColor: null,\r\n // to: '',\r\n\r\n // NAVIGATION PROPS\r\n menuItemColor: 'primary--clr',\r\n menuToggleIconColor: 'primary--clr',\r\n menuToggleIconSize: 35,\r\n mobileMenuItemColor: 'dark--clr',\r\n\r\n // SUB MENU PROPS\r\n submenuBlockBackgroundColor: 'white--sbg',\r\n submenuItemColor: 'primary--clr',\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: 23,\r\n socialIconColor: 'white--clr',\r\n socialIconBackgroundColor: 'primary-lighter--sbg',\r\n primarySocialMediaLink: '',\r\n secondarySocialMediaLink: '',\r\n\r\n // // BOOLEANS PROPS\r\n hasSearchBlock: false,\r\n hasChipFilter: false,\r\n // hasFeaturedItems: false,\r\n hasRoundCorners: false,\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, null)(HeaderNavigation);","export default __webpack_public_path__ + \"static/media/app-store-badge.f0b8ebdc.svg\";","export default __webpack_public_path__ + \"static/media/google-play-badge.3263f5e2.svg\";","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n// DEPENDENCIES\r\nimport React, { useState, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\n// import { IoLogoTiktok } from 'react-icons/io5';\r\n// import {\r\n// RiFacebookFill,\r\n// RiInstagramLine,\r\n// RiTwitterFill,\r\n// RiLinkedinFill,\r\n// RiYoutubeLine,\r\n// } from 'react-icons/ri';\r\nimport { RiInstagramLine, RiQuestionAnswerFill } from 'react-icons/ri';\r\nimport {\r\n FaFacebookF,\r\n FaLinkedinIn,\r\n} from 'react-icons/fa';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\nimport Image from './Image';\r\nimport TextBlock from './TextBlock';\r\nimport InputBlock from './InputBlock';\r\n// ASSETS\r\nimport AppStoreBadge from '../assets/img/app-store-badge.svg';\r\nimport GooglePlayBadge from '../assets/img/google-play-badge.svg';\r\n// SERVICES & HELPERS\r\nimport PayTraceModalContext from '../context/PayTraceModalContext';\r\n\r\nconst FooterBlock = (props) => {\r\n const {\r\n history,\r\n to,\r\n phoneNumber,\r\n emailAddress,\r\n imageSource,\r\n backgroundColor,\r\n bottomFooterBackgroundColor,\r\n subheaderColor,\r\n subheaderClassName,\r\n companyName,\r\n copyrightTextColor,\r\n footerHeaderTextColor,\r\n footerItems,\r\n iconSize,\r\n iconAppearance,\r\n socialIconColor,\r\n socialIconBackgroundColor,\r\n appStoreLink,\r\n googlePlayLink,\r\n facebookLink,\r\n instagramLink,\r\n twitterLink,\r\n linkedInLink,\r\n youtubeLink,\r\n tiktokLink,\r\n // primaryActionOnClick,\r\n // secondaryActionOnClick,\r\n hasSocialMediaIconColor,\r\n hasEmailSignUp,\r\n hasContactBlock,\r\n cmsInfo\r\n } = props;\r\n const { isPayTraceModalOpen, setIsPayTraceModalOpen } = useContext(PayTraceModalContext);\r\n\r\n const iconAppearanceOptions = {\r\n square: 'square',\r\n round: 'round',\r\n circle: 'circle',\r\n };\r\n\r\n const SocialIconButton = (socialIconButtonProps) => {\r\n const {\r\n displayIf,\r\n buttonColor,\r\n buttonText,\r\n socialIcon,\r\n onClickAction,\r\n className,\r\n title\r\n } = socialIconButtonProps;\r\n // const [isPayTraceModalOpen, setIsPayTraceModalOpen] = useState(false);\r\n\r\n return displayIf && (\r\n \r\n {socialIcon}\r\n {buttonText &&

{buttonText}

}\r\n \r\n );\r\n };\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const navigateToPage = (page) => {\r\n history.push(page);\r\n };\r\n\r\n const navigateToLink = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const sendEmail = (email) => {\r\n window.open(`mailto:${email}`, '_self');\r\n };\r\n\r\n const callPhoneNumber = (tel) => {\r\n window.open(`tel:${tel}`, '_self');\r\n };\r\n\r\n const socialItemsFooter = [\r\n {\r\n platform: 'googleMap',\r\n displayIf: cmsInfo.googleMapLink !== null,\r\n title: `Google Maps | ${cmsInfo.googleMapLink}`,\r\n buttonColor: '#FAFAFA',\r\n onClickAction: () => openInNewTab(cmsInfo.googleMapLink),\r\n socialIcon: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n platform: 'instagram',\r\n displayIf: cmsInfo.instagramLink !== null,\r\n title: `Instagram | ${cmsInfo.instagramLink}`,\r\n buttonColor: 'radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%,#d6249f 60%,#285AEB 90%)',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.instagramLink)\r\n },\r\n {\r\n platform: 'linkedin',\r\n displayIf: cmsInfo.linkedInLink !== null,\r\n title: `LinkedIn | ${cmsInfo.linkedInLink}`,\r\n buttonColor: '#0966C2',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.linkedInLink),\r\n },\r\n {\r\n platform: 'facebook',\r\n displayIf: cmsInfo.facebookLink !== null,\r\n title: `Facebook | ${cmsInfo.facebookLink}`,\r\n buttonColor: 'linear-gradient(to top, #0062E0, #19AFFF)',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.facebookLink),\r\n },\r\n {\r\n platform: 'payTrace',\r\n displayIf: true,\r\n title: 'PayTrace',\r\n buttonColor: '#444444',\r\n socialIcon: (\r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n ),\r\n onClickAction: () => setIsPayTraceModalOpen(!isPayTraceModalOpen),\r\n },\r\n {\r\n platform: 'contactUs',\r\n displayIf: true,\r\n title: 'Contact Us',\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => navigateToPage('/contact-jayroe'),\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
    \r\n {\r\n footerItems.map((item) => (\r\n
  • \r\n {\r\n e.preventDefault();\r\n // eslint-disable-next-line no-unused-expressions\r\n (item.to).includes('https' || 'http') ? navigateToLink(item.to) : history.push(item.to);\r\n }}\r\n >\r\n {item.label}\r\n \r\n
  • \r\n ))\r\n }\r\n
\r\n
\r\n
\r\n\r\n \r\n {\r\n hasEmailSignUp\r\n && (\r\n \r\n \r\n\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n hasContactBlock && (!appStoreLink || !googlePlayLink)\r\n && (\r\n \r\n \r\n\r\n \r\n {\r\n sendEmail(emailAddress);\r\n }}\r\n />\r\n\r\n {\r\n callPhoneNumber(phoneNumber);\r\n }}\r\n />\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n (appStoreLink || googlePlayLink)\r\n && (\r\n \r\n \r\n\r\n \r\n {\r\n appStoreLink\r\n && (\r\n navigateToLink(appStoreLink)}\r\n />\r\n )\r\n }\r\n\r\n {\r\n googlePlayLink\r\n && (\r\n navigateToLink(googlePlayLink)}\r\n />\r\n )\r\n }\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n
\r\n\r\n \r\n \r\n {socialItemsFooter.map((item, index) => (\r\n \r\n ))}\r\n {/* {\r\n facebookLink\r\n && (\r\n navigateToLink(facebookLink)}\r\n className={`social-icon ${hasSocialMediaIconColor ? 'facebook--bg' : socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n {\r\n instagramLink\r\n && (\r\n navigateToLink(instagramLink)}\r\n className={`social-icon ${hasSocialMediaIconColor ? 'instagram--bg' : socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n {\r\n twitterLink\r\n && (\r\n navigateToLink(twitterLink)}\r\n className={`social-icon ${hasSocialMediaIconColor ? 'twitter--bg' : socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n {\r\n linkedInLink\r\n && (\r\n navigateToLink(linkedInLink)}\r\n className={`social-icon ${hasSocialMediaIconColor ? 'linkedin--bg' : socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n {\r\n youtubeLink\r\n && (\r\n navigateToLink(youtubeLink)}\r\n className={`social-icon ${hasSocialMediaIconColor ? 'danger--bg' : socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n {\r\n tiktokLink\r\n && (\r\n navigateToLink(tiktokLink)}\r\n className={`social-icon ${hasSocialMediaIconColor ? 'dark--bg' : socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n } */}\r\n \r\n \r\n\r\n {/* */}\r\n \r\n

{`Copyright © ${new Date().getFullYear()} ${companyName}. All Rights Reserved.`}

\r\n {\r\n navigateToLink('https://primtek.net/');\r\n }}\r\n >\r\n Developed by Primtek.\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nFooterBlock.propTypes = {\r\n // MAIN PROPS\r\n to: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n bottomFooterBackgroundColor: PropTypes.string,\r\n imageSource: PropTypes.string,\r\n\r\n // CONTACT PROPS\r\n phoneNumber: PropTypes.string,\r\n emailAddress: PropTypes.string,\r\n\r\n // OPTIONAL PROPS\r\n\r\n // SUBHEADER PROPS\r\n subheaderColor: PropTypes.string,\r\n subheaderClassName: PropTypes.string,\r\n\r\n // APP STORE PROPS\r\n appStoreLink: PropTypes.string,\r\n googlePlayLink: PropTypes.string,\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: PropTypes.number,\r\n iconAppearance: PropTypes.string.isRequired,\r\n socialIconBackgroundColor: PropTypes.string,\r\n socialIconColor: PropTypes.string,\r\n facebookLink: PropTypes.string,\r\n instagramLink: PropTypes.string,\r\n twitterLink: PropTypes.string,\r\n linkedInLink: PropTypes.string,\r\n youtubeLink: PropTypes.string,\r\n tiktokLink: PropTypes.string,\r\n\r\n // FOOTER PROPS\r\n footerHeaderTextColor: PropTypes.string.isRequired,\r\n\r\n // BOTTOM FOOTER PROPS\r\n companyName: PropTypes.string.isRequired,\r\n copyrightTextColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n // primaryActionOnClick: PropTypes.func,\r\n // secondaryActionOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n hasSocialMediaIconColor: PropTypes.bool,\r\n hasEmailSignUp: PropTypes.bool,\r\n hasContactBlock: PropTypes.bool,\r\n\r\n footerItems: PropTypes.array,\r\n};\r\n\r\nFooterBlock.defaultProps = {\r\n // MAIN PROPS\r\n to: '#',\r\n backgroundColor: 'white--sbg',\r\n bottomFooterBackgroundColor: 'lightest-grey--sbg',\r\n imageSource: '',\r\n\r\n // CONTACT PROPS\r\n phoneNumber: '',\r\n emailAddress: '',\r\n\r\n // OPTIONAL PROPS\r\n\r\n // SUBHEADER PROPS\r\n subheaderColor: 'secondary--clr',\r\n subheaderClassName: '',\r\n\r\n // APP STORE PROPS\r\n appStoreLink: '',\r\n googlePlayLink: '',\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: 27,\r\n socialIconColor: 'white--clr',\r\n socialIconBackgroundColor: 'secondary--sbg',\r\n facebookLink: '',\r\n instagramLink: '',\r\n twitterLink: '',\r\n linkedInLink: '',\r\n youtubeLink: '',\r\n tiktokLink: '',\r\n\r\n // BOTTOM FOOTER PROPS\r\n copyrightTextColor: 'primary--clr',\r\n\r\n // FUNCTION PROPS\r\n // primaryActionOnClick: null,\r\n // secondaryActionOnClick: null,\r\n\r\n // BOOLEAN PROPS\r\n hasSocialMediaIconColor: false,\r\n hasEmailSignUp: false,\r\n hasContactBlock: true,\r\n\r\n footerItems: [],\r\n};\r\n\r\nexport default FooterBlock;","/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-props-no-multi-spaces */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\nimport { Route } from 'react-router-dom';\r\n// ICONS\r\n// CUSTOM COMPONENTS;\r\nimport Overlay from '../components/Overlay';\r\nimport CustomBlock from '../components/CustomBlock';\r\nimport HeaderNavigation from '../components/HeaderNavigation';\r\nimport FooterBlock from '../components/FooterBlock';\r\n// ASSETS\r\nimport Logo from '../assets/img/Logo.svg';\r\n\r\nconst CMSRoute = (cmsRouteProps) => {\r\n const {\r\n component: Component,\r\n cmsInfo, dynamicPageId,\r\n isBlog,\r\n ...rest\r\n } = cmsRouteProps;\r\n\r\n const { companyLogoPath, companyIconPath } = cmsInfo;\r\n const [isLoading] = useState(false);\r\n\r\n return (\r\n (\r\n \r\n {isLoading && }\r\n \r\n\r\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 CMSRoute;","/* eslint-disable import/extensions */\r\n/* eslint-disable no-shadow */\r\n// DEPENDENCIES\r\nimport React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\nimport ModalBlock from './ModalBlock';\r\n// HELPERS\r\nimport * as confirmModal from '../redux/confirmModalRedux.js';\r\n\r\nconst ConfirmModal = (props) => {\r\n const {\r\n hideConfirmModal,\r\n confirmModal,\r\n setProcessing\r\n } = props;\r\n\r\n const handleConfirm = () => {\r\n setProcessing();\r\n confirmModal.btnAction();\r\n };\r\n\r\n const handleCloseBtn = () => {\r\n hideConfirmModal();\r\n if (confirmModal.closeBtnAction) { confirmModal.closeBtnAction(); }\r\n };\r\n\r\n const handleEnterKey = (event) => {\r\n if (event.keyCode === 13 && confirmModal.isVisible) {\r\n handleConfirm();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('keydown', handleEnterKey);\r\n return () => {\r\n window.removeEventListener('keydown', handleEnterKey);\r\n };\r\n }, [confirmModal.isVisible]);\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n {\r\n // setProcessing();\r\n // confirmModal.btnAction();\r\n // }}\r\n onClick={handleConfirm}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ confirmModal: state.confirmModal });\r\n\r\nexport default connect(mapStateFromProps, confirmModal.actions)(ConfirmModal);","/* eslint-disable import/extensions */\r\n/* eslint-disable no-shadow */\r\n// DEPENDENCIES\r\nimport React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// ICONS\r\nimport { HiOutlineEmojiSad, HiOutlineLightBulb } from 'react-icons/hi';\r\nimport { FiThumbsUp } from 'react-icons/fi';\r\nimport { BiShocked } from 'react-icons/bi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n// SERVICES AND HELPERS\r\nimport * as alertToast from '../redux/alertToastRedux';\r\n\r\nconst AlertToast = (props) => {\r\n const {\r\n hideAlert,\r\n alertToast\r\n } = props;\r\n\r\n useEffect(() => {\r\n if (alertToast.visible) {\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 3500);\r\n }\r\n }, [alertToast.visible, hideAlert]);\r\n\r\n const iconBackgroundColors = {\r\n success: 'lighter-green--bg',\r\n error: 'lighter-red--bg',\r\n warning: 'lighter-yellow--bg',\r\n info: 'lighter-blue--bg',\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {alertToast.state === 'success' && }\r\n {alertToast.state === 'error' && }\r\n {alertToast.state === 'warning' && }\r\n {alertToast.state === 'info' && }\r\n \r\n \r\n\r\n \r\n

\r\n {alertToast.text}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ alertToast: state.alertToast });\r\n\r\nexport default connect(mapStateFromProps, alertToast.actions)(AlertToast);","// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\n// ICONS\r\nimport { HiOutlineMail } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport Button from '../../../../components/Button';\r\n\r\nconst ForgotPasswordBlock = (props) => {\r\n const { returnActionOnClick } = props;\r\n const iconSize = 22;\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 Back to Login\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ForgotPasswordBlock;","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n email: Yup.string().required('Username is required'),\r\n password: Yup.string().required('Password is required'),\r\n});","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Users/';\r\n\r\nconst login = async (user) => axiosInstance.post(`${ENDPOINTORIGIN}Authenticate`, user, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst register = async (user) => axiosInstance.post(`${ENDPOINTORIGIN}Register`, user, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getUserById = async (userId) => axiosInstance.get(`${ENDPOINTORIGIN}GetUser?id=${userId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getAllUsers = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAllUsers`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateUser = async (user) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateUser`, user, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst changeUserPassword = async (newPassword, oldPassword) => axiosInstance.put(`${ENDPOINTORIGIN}ChangeUserPassword?password=${newPassword}&oldPassword=${oldPassword}`, {}, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n login,\r\n register,\r\n getUserById,\r\n getAllUsers,\r\n updateUser,\r\n changeUserPassword\r\n};","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// ICONS\r\nimport { FiLock, FiUser } from 'react-icons/fi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport FormBlock from '../../../components/FormBlock';\r\nimport ContentHeader from '../../../components/ContentHeader';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport Image from '../../../components/Image';\r\nimport Button from '../../../components/Button';\r\n// PARTIALS\r\nimport ForgotPasswordBlock from './_partials/ForgotPasswordBlock';\r\n// ASSETS\r\nimport Logo from '../../../assets/img/Logo.svg';\r\n// SERVICES & HELPERS\r\nimport LoginValidator from '../../../helpers/validators/user/LoginValidator';\r\nimport * as helper from '../../../helpers/helper';\r\nimport * as userService from '../../../services/management/userService';\r\n// REDUX\r\nimport * as auth from '../../../redux/authRedux';\r\nimport * as alertToast from '../../../redux/alertToastRedux';\r\n\r\nconst initialModel = {\r\n email: '',\r\n password: ''\r\n};\r\n\r\nconst LoginPage = (props) => {\r\n const { showAlert, login, history } = props;\r\n\r\n const [passwordVisible, setPasswordVisible] = useState(false);\r\n const [forgotPasswordBlockVisible, setForgotPasswordBlockVisible] = useState(false);\r\n\r\n const iconSize = 22;\r\n\r\n const loginUser = (model, setSubmitting) => {\r\n userService.login(model).then((res) => {\r\n login(res);\r\n history.push('/admin/management/users');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues: initialModel,\r\n validationSchema: LoginValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n\r\n loginUser(values, setSubmitting);\r\n },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n !forgotPasswordBlockVisible\r\n ? (\r\n \r\n \r\n\r\n \r\n )}\r\n />\r\n\r\n \r\n )}\r\n inputRightButtonText={passwordVisible ? 'Hide' : 'Show'}\r\n inputRightButtonOnClick={() => setPasswordVisible(!passwordVisible)}\r\n {...formik.getFieldProps('password')}\r\n errorMessage={formik.errors.password}\r\n inputState={`${helper.getInputClasses(formik, 'password')}`}\r\n {...formik.getFieldProps('password')}\r\n />\r\n \r\n \r\n \r\n \r\n )\r\n : (\r\n {\r\n setForgotPasswordBlockVisible(!forgotPasswordBlockVisible);\r\n }}\r\n />\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

\r\n Copyright ©\r\n {' '}\r\n {new Date().getFullYear()}\r\n {' '}\r\n Jayroe & Company | Professional Financial Services. All rights reserved.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions, ...alertToast.actions })(LoginPage);","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst CheckboxBlock = (props) => {\r\n const {\r\n id,\r\n containerClassName,\r\n labelClassName,\r\n label,\r\n isChecked,\r\n onChange\r\n } = props;\r\n return (\r\n \r\n \r\n\r\n \r\n {label}\r\n \r\n \r\n );\r\n};\r\n\r\nCheckboxBlock.propTypes = {\r\n // MAIN PROPS\r\n id: PropTypes.string,\r\n label: PropTypes.string,\r\n containerClassName: PropTypes.string,\r\n labelClassName: PropTypes.string,\r\n isChecked: PropTypes.bool,\r\n onChange: PropTypes.func\r\n};\r\n\r\nCheckboxBlock.defaultProps = {\r\n // MAIN PROPS\r\n id: '',\r\n label: '',\r\n containerClassName: '',\r\n labelClassName: '',\r\n isChecked: false,\r\n onChange: () => { }\r\n};\r\n\r\nexport default CheckboxBlock;","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n username: Yup.string().required('Username is required').max(100),\r\n fullName: Yup.string().required('Full Name is required').max(250),\r\n email: Yup.string().email('Please enter valid email').required('Email is required').max(250),\r\n phone: Yup.string().max(20),\r\n password: Yup.string()\r\n .required('Password is required')\r\n .min(8, 'Minimum password length must be at least 8 characters')\r\n .max(100),\r\n confirmPassword: Yup.string()\r\n .required('Please confirm your new password')\r\n .oneOf([Yup.ref('password')], 'Passwords do not match'),\r\n isActive: Yup.bool().nullable(),\r\n isAdmin: Yup.bool().nullable()\r\n});","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n oldPassword: Yup.string()\r\n .required('Old password is required')\r\n .min(8, 'Minimum length of Password is 8')\r\n .max(100),\r\n password: Yup.string()\r\n .required('New password is required')\r\n .min(8, 'Minimum length of Password is 8')\r\n .max(100),\r\n confirmPassword: Yup.string()\r\n .required('Re-enter your new password')\r\n .oneOf([Yup.ref('password')], 'Passwords must match'),\r\n});","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n fullName: Yup.string().required('Full Name is required').max(250),\r\n email: Yup.string().email('Please enter valid email address').required('Email Address is required').max(250),\r\n phone: Yup.string().max(20),\r\n isActive: Yup.bool().nullable()\r\n});","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-shadow */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useFormik } from 'formik';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\nimport { IoPersonSharp } from 'react-icons/io5';\r\nimport {\r\n FiEye,\r\n FiEyeOff\r\n} from 'react-icons/fi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport OverLay from '../../../../components/Overlay';\r\n// HELPERS AND SERVICES\r\nimport * as userService from '../../../../services/management/userService';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport RegisterUserValidator from '../../../../helpers/validators/user/RegisterUserValidator';\r\nimport UpdatePasswordValidator from '../../../../helpers/validators/user/UpdatePasswordValidator';\r\nimport EditUserValidator from '../../../../helpers/validators/user/EditUserValidator';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as auth from '../../../../redux/authRedux';\r\n\r\nconst userRegisterModel = {\r\n fullName: '',\r\n email: '',\r\n phone: '',\r\n username: '',\r\n password: '',\r\n confirmPassword: '',\r\n isActive: true,\r\n isAdmin: false\r\n};\r\n\r\nconst initialUpdatePasswordModel = {\r\n id: 0,\r\n password: '',\r\n confirmPassword: '',\r\n};\r\n\r\nconst initialEditModel = {\r\n id: 0,\r\n fullName: '',\r\n email: '',\r\n phone: '',\r\n username: '',\r\n isActive: false,\r\n isAdmin: false\r\n};\r\n\r\nconst UserListingPage = (props) => {\r\n const { showAlert, auth } = props;\r\n const [registerModalVisible, setRegisterModalVisible] = useState(false);\r\n const [updatePasswordModalVisible, setUpdatePasswordRegisterModalVisible] = useState(false);\r\n const [editModalVisible, setEditModalVisible] = useState(false);\r\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\r\n const [isConfirmPasswordVisible, setIsConfirmPasswordVisible] = useState(false);\r\n const [userList, setUserList] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [updatePasswordModel, setUpdatePasswordModel] = useState(initialUpdatePasswordModel);\r\n const [editUserModel, setEditUserModel] = useState(initialEditModel);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getAllUsers();\r\n }, []);\r\n\r\n const regiser_user_formik = useFormik({\r\n initialValues: userRegisterModel,\r\n validationSchema: RegisterUserValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n registerUser(values);\r\n },\r\n });\r\n\r\n const update_password_user_formik = useFormik({\r\n initialValues: updatePasswordModel,\r\n validationSchema: UpdatePasswordValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n updateUserPassword(values);\r\n },\r\n });\r\n\r\n const edit_user_formik = useFormik({\r\n initialValues: editUserModel,\r\n validationSchema: EditUserValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n editUser(values);\r\n },\r\n });\r\n\r\n const getUserDetails = (id) => {\r\n setIsLoading(true);\r\n userService.getUserById(id).then((res) => {\r\n setEditUserModel(res);\r\n setEditModalVisible(true);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getAllUsers = () => {\r\n setIsLoading(true);\r\n userService.getAllUsers().then((res) => {\r\n setUserList(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const registerUser = (model) => {\r\n setIsLoading(true);\r\n userService.register(model).then((res) => {\r\n getAllUsers();\r\n showAlert({ text: res.message, state: 'success' });\r\n closeRegisterModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const closeRegisterModal = () => {\r\n setRegisterModalVisible(false);\r\n regiser_user_formik.resetForm();\r\n };\r\n\r\n const closePasswordModal = () => {\r\n setUpdatePasswordModel(initialUpdatePasswordModel);\r\n update_password_user_formik.resetForm();\r\n setUpdatePasswordRegisterModalVisible(false);\r\n };\r\n\r\n const updateUserPassword = (model) => {\r\n setIsLoading(true);\r\n userService.changeUserPassword(model.password, model.oldPassword).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n closePasswordModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const editUser = (model) => {\r\n setIsLoading(true);\r\n userService.updateUser(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n closeEditModal();\r\n getAllUsers();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const closeEditModal = () => {\r\n setEditModalVisible(false);\r\n edit_user_formik.resetForm();\r\n setEditUserModel(initialEditModel);\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n {\r\n auth.isAdmin\r\n && (\r\n {\r\n getUserDetails(userList[dataIndex].id);\r\n }}\r\n />\r\n )\r\n }\r\n\r\n {\r\n (auth.user.id === userList[dataIndex].id)\r\n && (\r\n {\r\n setUpdatePasswordRegisterModalVisible(true);\r\n }}\r\n />\r\n )\r\n }\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'username',\r\n label: 'Username',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'fullName',\r\n label: 'Full Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is User Active?',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => (

{userList[dataIndex].isActive ? 'Yes' : 'No'}

)\r\n },\r\n },\r\n {\r\n name: 'isAdmin',\r\n label: 'Is User Admin?',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => (

{userList[dataIndex].isAdmin ? 'Yes' : 'No'}

)\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n }\r\n primaryButtonOnClick={() => {\r\n setRegisterModalVisible(true);\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* REGISTER MODAL */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsPasswordVisible(!isPasswordVisible);\r\n }}\r\n errorMessage={regiser_user_formik.errors.password}\r\n inputState={`${helper.getInputClasses(regiser_user_formik, 'password')}`}\r\n {...regiser_user_formik.getFieldProps('password')}\r\n isRequired\r\n />\r\n \r\n\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsConfirmPasswordVisible(!isConfirmPasswordVisible);\r\n }}\r\n errorMessage={regiser_user_formik.errors.confirmPassword}\r\n inputState={`${helper.getInputClasses(regiser_user_formik, 'confirmPassword')}`}\r\n {...regiser_user_formik.getFieldProps('confirmPassword')}\r\n isRequired\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n {/* RESET PASSWORD MODAL */}\r\n {\r\n setUpdatePasswordRegisterModalVisible(false);\r\n }}\r\n >\r\n \r\n
\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsPasswordVisible(!isPasswordVisible);\r\n }}\r\n errorMessage={update_password_user_formik.errors.oldPassword}\r\n inputState={`${helper.getInputClasses(update_password_user_formik, 'oldPassword')}`}\r\n {...update_password_user_formik.getFieldProps('oldPassword')}\r\n isRequired\r\n />\r\n \r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsPasswordVisible(!isPasswordVisible);\r\n }}\r\n errorMessage={update_password_user_formik.errors.password}\r\n inputState={`${helper.getInputClasses(update_password_user_formik, 'password')}`}\r\n {...update_password_user_formik.getFieldProps('password')}\r\n isRequired\r\n />\r\n \r\n\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsConfirmPasswordVisible(!isConfirmPasswordVisible);\r\n }}\r\n errorMessage={update_password_user_formik.errors.confirmPassword}\r\n inputState={`${helper.getInputClasses(update_password_user_formik, 'confirmPassword')}`}\r\n {...update_password_user_formik.getFieldProps('confirmPassword')}\r\n isRequired\r\n />\r\n \r\n
\r\n
\r\n \r\n\r\n {/* EDIT MODAL */}\r\n {\r\n closeEditModal();\r\n }}\r\n >\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions, ...alert.actions })(UserListingPage);","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\nimport { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\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 ModalBlock from '../../../../components/ModalBlock';\r\nimport Button from '../../../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as menuItemService from '../../../../services/cms/menuItemService';\r\nimport * as helper from '../../../../helpers/helper';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst MenuItemListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [menuItems, setMenuItems] = useState([]);\r\n const [sortList, setSortList] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getMenuItems();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSortList(menuItems.sort((a, b) => a - b));\r\n }, [menuItems]);\r\n\r\n const getMenuItems = () => {\r\n setIsLoading(true);\r\n menuItemService.getAllMenuItems('').then((res) => {\r\n setMenuItems(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deleteMenuItem = (menuItemId) => {\r\n setIsLoading(true);\r\n\r\n menuItemService.deleteMenuItem(menuItemId).then((res) => {\r\n getMenuItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortMenuItems = () => {\r\n setIsLoading(true);\r\n\r\n menuItemService.sortMenuItems(sortList).then((res) => {\r\n getMenuItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(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 const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Menu Item',\r\n text: 'Are you sure you want to remove this menu item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteMenuItem(menuItems[dataIndex].id);\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: 'Menu Item Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'pageName',\r\n label: 'Assigned Page',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'parentMenuItem',\r\n label: 'Parent Menu Item',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'openInNewTab',\r\n label: 'Will Open In A New Tab?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{menuItems[dataIndex].openInNewTab ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{menuItems[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n }\r\n primaryButtonTo=\"/cms/management/menu-item\"\r\n secondaryButtonText=\"Sort Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\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

{item.name}

\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 \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(MenuItemListingPage);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst FixedActionsBar = (props) => {\r\n const {\r\n primaryActionText,\r\n primaryActionColor,\r\n primaryActionTo,\r\n isPrimaryActionDisabled,\r\n primaryActionOnClick,\r\n secondaryActionText,\r\n secondaryActionColor,\r\n secondaryActionTo,\r\n isSecondaryActionDisabled,\r\n secondaryActionOnClick,\r\n optionalActionText,\r\n optionalActionColor,\r\n optionalActionTo,\r\n optionalActionOnClick,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n (optionalActionText !== '' || null)\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n\r\n \r\n {\r\n (secondaryActionText !== '' || null)\r\n && (\r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nFixedActionsBar.propTypes = {\r\n // ACTION PROPS\r\n primaryActionText: PropTypes.string.isRequired,\r\n primaryActionColor: PropTypes.string,\r\n primaryActionTo: PropTypes.string,\r\n primaryActionOnClick: PropTypes.func,\r\n isPrimaryActionDisabled: PropTypes.bool,\r\n\r\n secondaryActionText: PropTypes.string,\r\n secondaryActionColor: PropTypes.string,\r\n secondaryActionTo: PropTypes.string,\r\n secondaryActionOnClick: PropTypes.func,\r\n isSecondaryActionDisabled: PropTypes.bool,\r\n\r\n optionalActionText: PropTypes.string,\r\n optionalActionColor: PropTypes.string,\r\n optionalActionTo: PropTypes.string,\r\n optionalActionOnClick: PropTypes.func,\r\n};\r\n\r\nFixedActionsBar.defaultProps = {\r\n // MAIN PROPS\r\n primaryActionColor: 'primary--bg',\r\n primaryActionTo: '',\r\n primaryActionOnClick: null,\r\n isPrimaryActionDisabled: false,\r\n\r\n secondaryActionText: '',\r\n secondaryActionColor: 'danger--bg',\r\n secondaryActionTo: '',\r\n secondaryActionOnClick: null,\r\n isSecondaryActionDisabled: false,\r\n\r\n optionalActionText: '',\r\n optionalActionColor: 'secondary--bg',\r\n optionalActionTo: '',\r\n optionalActionOnClick: null,\r\n};\r\n\r\nexport default FixedActionsBar;","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Page/';\r\n\r\nconst getAllPages = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllPages?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getPageById = async (pageId) => axiosInstance.get(`${ENDPOINTORIGIN}GetPageById?pageId=${pageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createPage = async (page) => axiosInstance.post(`${ENDPOINTORIGIN}CreatePage`, page, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updatePage = async (page) => axiosInstance.put(`${ENDPOINTORIGIN}UpdatePage`, page, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deletePage = async (pageId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeletePage?id=${pageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst assignContentSectionToPage = async (pageId, contentSectionId, type) => axiosInstance.post(`${ENDPOINTORIGIN}AssignContentSectionToPage?pageId=${pageId}&contentSectionId=${contentSectionId}&type=${type}`, {}, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst unassignContentSection = async (contentSectionBannerId) => axiosInstance.delete(`${ENDPOINTORIGIN}UnassignContentSection?contentSectionBannerId=${contentSectionBannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortPageContentSections = async (sortOrders) => axiosInstance.put(`${ENDPOINTORIGIN}SortPageContentSections`, sortOrders, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBannerImage = async (pageId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBannerImage?pageId=${pageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllPages,\r\n getPageById,\r\n createPage,\r\n updatePage,\r\n deletePage,\r\n assignContentSectionToPage,\r\n unassignContentSection,\r\n sortPageContentSections,\r\n deleteBannerImage\r\n};","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Menu Item Name is required').max(100),\r\n pageId: Yup.number().nullable(),\r\n parentMenuItemId: Yup.number().nullable(),\r\n customLink: Yup.string().nullable().max(250),\r\n openInNewTab: Yup.bool(),\r\n isActive: Yup.bool(),\r\n});","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\nimport { useParams } from 'react-router-dom';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\nimport { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\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\nimport Overlay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// ASSETS\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as menuItemService from '../../../../services/cms/menuItemService';\r\nimport * as pageService from '../../../../services/cms/pageService';\r\nimport MenuItemValidator from '../../../../helpers/validators/cms/menuItem/menuItemValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst intialMenuItemModel = {\r\n id: 0,\r\n name: '',\r\n pageId: null,\r\n parentMenuItemId: null,\r\n customLink: null,\r\n openInNewTab: false,\r\n isActive: true,\r\n assignedMenuItems: []\r\n};\r\n\r\nconst MenuItemManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { menuItemId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [menuItemModel, setMenuItemModel] = useState(intialMenuItemModel);\r\n const [selectedOptions, setSelectedOptions] = useState({\r\n page: null,\r\n parentMenuItem: null\r\n });\r\n const [pageOptions, setPageOptions] = useState();\r\n const [menuItemOptions, setMenuItemOptions] = useState();\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const [assignmentMenuItemOptions, setAssignmentMenuItemOptions] = useState([]);\r\n const [selectedAssignmentMenuItem, setSelectedAssignmentMenuItem] = useState(null);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [sortList, setSortList] = useState([]);\r\n\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: false\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: false,\r\n print: false,\r\n };\r\n\r\n useEffect(() => {\r\n loadOptionsAndPopulateForm();\r\n }, [menuItemId]);\r\n\r\n useEffect(() => {\r\n setSortList(menuItemModel.assignedMenuItems.sort((a, b) => a - b));\r\n }, [menuItemModel]);\r\n\r\n const formik = useFormik({\r\n initialValues: menuItemModel,\r\n validationSchema: MenuItemValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (menuItemId) {\r\n updateMenuItem(values);\r\n } else {\r\n createMenuItem(values);\r\n }\r\n },\r\n });\r\n\r\n const loadOptionsAndPopulateForm = async () => {\r\n const pages = await getPageOptions();\r\n const menuItems = await getMenuItemOptions();\r\n\r\n if (menuItemId > 0) {\r\n getMenuItem(pages, menuItems);\r\n }\r\n };\r\n\r\n const getMenuItem = async (pages, menuItems) => {\r\n setIsLoading(true);\r\n\r\n await getMenuItemForAssignments();\r\n menuItemService.getMenuItemsById(menuItemId).then((res) => {\r\n setMenuItemModel(res);\r\n let selectedOptionsFromApi = {\r\n page: null,\r\n parentMenuItem: null\r\n };\r\n if (res.pageId) {\r\n const selectedPage = pages.find((x) => x.value === res.pageId);\r\n if (selectedPage) {\r\n selectedOptionsFromApi = { ...selectedOptionsFromApi, page: selectedPage };\r\n }\r\n }\r\n\r\n if (res.parentMenuItemId) {\r\n const selectedMenuItem = menuItems.find((x) => x.value === res.parentMenuItemId);\r\n if (selectedMenuItem) {\r\n selectedOptionsFromApi = { ...selectedOptionsFromApi, parentMenuItem: selectedMenuItem };\r\n }\r\n }\r\n\r\n setSelectedOptions(selectedOptionsFromApi);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getPageOptions = async () => pageService.getAllPages(true).then((res) => {\r\n const pageList = res.map((x) => helper.setToOptionModel(x.name, x.id));\r\n // console.log('Page Options are ', pageList);\r\n setPageOptions(pageList);\r\n\r\n return pageList;\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n });\r\n\r\n const getMenuItemForAssignments = async () => menuItemService.getMenuItemsWithNoParentOrChild()\r\n .then((res) => {\r\n const assignmentlist = res.filter((x) => x.id !== Number(menuItemId))\r\n .map((x) => helper.setToOptionModel(x.name, x.id));\r\n setAssignmentMenuItemOptions(assignmentlist);\r\n\r\n return assignmentlist;\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n });\r\n\r\n const getMenuItemOptions = async () => menuItemService.getAllMenuItems(true).then((res) => {\r\n const menuItemList = res.filter((x) => x.parentMenuItem === '-' && x.id !== Number(menuItemId)).map((x) => helper.setToOptionModel(x.name, x.id));\r\n setMenuItemOptions(menuItemList);\r\n\r\n return menuItemList;\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n });\r\n\r\n const createMenuItem = (model) => {\r\n setIsLoading(true);\r\n\r\n menuItemService.createMenuItem(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/menu-items');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateMenuItem = (model) => {\r\n setIsLoading(true);\r\n menuItemService.updateMenuItems(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/menu-items');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const removeAssignedMenuItem = (id) => {\r\n setIsLoading(true);\r\n\r\n menuItemService.removeParentMenuItem(id).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getMenuItem(pageOptions, menuItemOptions);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const assignMenuItem = () => {\r\n setIsLoading(true);\r\n\r\n menuItemService.assignParentMenuItem({\r\n parentId: menuItemId,\r\n childMenuItemIds: selectedAssignmentMenuItem.map((x) => Number(x.value))\r\n }).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getMenuItem();\r\n setIsModalVisible(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n setSelectedAssignmentMenuItem(null);\r\n });\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n {\r\n history.push(`/cms/management/menu-item/edit/${menuItemModel.assignedMenuItems[dataIndex].id}`);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Menu Item',\r\n text: 'Are you sure you want to remove this assigned menu item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n removeAssignedMenuItem(menuItemModel.assignedMenuItems[dataIndex].id);\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: 'Menu Item Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'pageName',\r\n label: 'Assigned Page',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{menuItemModel.assignedMenuItems[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n },\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 const sortChildMenuItems = () => {\r\n setIsLoading(true);\r\n\r\n menuItemService.sortChildMenuItems(sortList).then((res) => {\r\n getMenuItem(pageOptions, menuItemOptions);\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {/* BASIC INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {\r\n selectedOpt = selectedOpt === null ? [] : selectedOpt;\r\n setSelectedOptions({ ...selectedOptions, page: selectedOpt });\r\n formik.setFieldValue('pageId', selectedOpt.value ? selectedOpt.value : null);\r\n }}\r\n />\r\n \r\n\r\n \r\n 0}\r\n value={selectedOptions.parentMenuItem}\r\n onChange={(selectedOpt) => {\r\n selectedOpt = selectedOpt === null ? [] : selectedOpt;\r\n setSelectedOptions({ ...selectedOptions, parentMenuItem: selectedOpt });\r\n formik.setFieldValue('parentMenuItemId', selectedOpt.value ? selectedOpt.value : null);\r\n }}\r\n />\r\n \r\n\r\n {\r\n (formik.values.pageId === null)\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* ASSIGNED MENU ITEMS */}\r\n {\r\n (menuItemModel.id > 0 && formik.values.parentMenuItemId === null)\r\n && (\r\n
\r\n \r\n \r\n )\r\n }\r\n primaryButtonOnClick={() => {\r\n setIsModalVisible(true);\r\n }}\r\n secondaryButtonText=\"Sort Menu Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/cms/management/menu-items\"\r\n />\r\n
\r\n
\r\n
\r\n\r\n {/* ADD IMAGES MODAL */}\r\n {\r\n setIsModalVisible(false);\r\n }}\r\n >\r\n
\r\n \r\n {\r\n selectedOpt = selectedOpt === null ? [] : selectedOpt;\r\n setSelectedAssignmentMenuItem(selectedOpt);\r\n }}\r\n />\r\n \r\n
\r\n \r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\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

{item.name}

\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
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(MenuItemManagementPage);","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\nimport { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\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\n// SERVICES AND HELPERS\r\nimport * as pageService from '../../../../services/cms/pageService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst PageListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [pages, setPages] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getPages();\r\n }, []);\r\n\r\n const getPages = () => {\r\n setIsLoading(true);\r\n pageService.getAllPages('').then((res) => {\r\n setPages(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deletePage = (pageId) => {\r\n setIsLoading(true);\r\n\r\n pageService.deletePage(pageId).then((res) => {\r\n getPages();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove page',\r\n text: 'Are you sure you want to remove this page?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deletePage(pages[dataIndex].id);\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: 'Page Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'title',\r\n label: 'Page Title',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{pages[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n }\r\n primaryButtonTo=\"/cms/management/page\"\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(PageListingPage);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst TextAreaBlock = (props) => {\r\n const {\r\n containerClassName,\r\n className,\r\n backgroundColor,\r\n label,\r\n labelColor,\r\n inputLabel,\r\n placeholder,\r\n inputState,\r\n errorMessage,\r\n successMessage,\r\n warningMessage,\r\n isLabelLoading,\r\n isRequired,\r\n isDisabled,\r\n hasBorder,\r\n } = 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 inputLabel\r\n && (\r\n \r\n {inputLabel}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n {\r\n label\r\n && (\r\n \r\n {label}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n {\r\n inputState === 'error'\r\n && (\r\n \r\n {errorMessage || (inputLabel || label ? (inputLabel || `${label} ${errorMessageSuffix}`) : 'Error message undefined')}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'warning'\r\n && (\r\n \r\n {warningMessage}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'success'\r\n && (\r\n \r\n {successMessage}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nTextAreaBlock.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n className: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n\r\n // LABEL PROPS\r\n label: PropTypes.string,\r\n labelColor: PropTypes.string,\r\n inputLabel: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n\r\n // STATE PROPS\r\n inputState: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n successMessage: PropTypes.string,\r\n warningMessage: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isLabelLoading: PropTypes.bool,\r\n isRequired: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n hasBorder: PropTypes.bool,\r\n};\r\n\r\nTextAreaBlock.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n className: '',\r\n backgroundColor: 'light--sbg',\r\n\r\n // LABEL PROPS\r\n label: '',\r\n labelColor: '',\r\n inputLabel: '',\r\n placeholder: '',\r\n\r\n // STATE PROPS\r\n inputState: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n warningMessage: '',\r\n\r\n // BOOLEAN PROPS\r\n isLabelLoading: false,\r\n isRequired: false,\r\n isDisabled: false,\r\n hasBorder: false,\r\n};\r\n\r\nexport default TextAreaBlock;","// DEPENDENCIES\r\nimport React, { forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FilePond, registerPlugin } from 'react-filepond';\r\nimport FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';\r\nimport FilePondPluginImagePreview from 'filepond-plugin-image-preview';\r\nimport 'filepond/dist/filepond.min.css';\r\nimport 'filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css';\r\n// import _ from 'lodash';\r\n// COMPONENTS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nregisterPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);\r\n\r\nconst FileUploadBlock = forwardRef((props, ref) => {\r\n const { containerClassName, labelIdle } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nFileUploadBlock.propTypes = {\r\n containerClassName: PropTypes.string,\r\n labelIdle: PropTypes.string,\r\n};\r\n\r\nFileUploadBlock.defaultProps = {\r\n containerClassName: '',\r\n labelIdle: 'Drag & Drop your files or Browse',\r\n};\r\n\r\nexport default FileUploadBlock;","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'ContentSection/';\r\n\r\nconst getAllContentSections = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllContentSections?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getContentSectionById = async (contentSectionId) => axiosInstance.get(`${ENDPOINTORIGIN}GetContentSectionById?contentSectionId=${contentSectionId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createContentSection = async (contentSection) => axiosInstance.post(`${ENDPOINTORIGIN}CreateContentSection`, contentSection, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateContentSection = async (contentSection) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateContentSection`, contentSection, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteContentSection = async (contentSectionId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteContentSection?id=${contentSectionId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getContentSectionOptions = async (pageId, type) => axiosInstance.get(`${ENDPOINTORIGIN}GetContentSectionOptions?pageId=${pageId}&type=${type}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getContentSectionOptionsForBlog = async (blogId, type) => axiosInstance.get(`${ENDPOINTORIGIN}GetContentSectionOptionsForBlog?blogId=${blogId}&type=${type}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllContentSections,\r\n getContentSectionById,\r\n createContentSection,\r\n updateContentSection,\r\n deleteContentSection,\r\n getContentSectionOptions,\r\n getContentSectionOptionsForBlog\r\n};","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Page Name is required').max(250),\r\n title: Yup.string().nullable().max(250),\r\n url: Yup.string().required().max(250),\r\n isBannerVisible: Yup.bool().nullable(),\r\n bannerImageFilePath: Yup.string().nullable(),\r\n bannerColor: Yup.string().max(10),\r\n keywords: Yup.string().nullable().max(1500),\r\n description: Yup.string().nullable(),\r\n isActive: Yup.bool(),\r\n});","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-alert */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\nimport { useParams } from 'react-router-dom';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { SwatchesPicker } from 'react-color';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\nimport { MdOutlinePlaylistAdd } from 'react-icons/md';\r\nimport { FaSquare } 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 FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport Image from '../../../../components/Image';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// ASSETS\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as pageService from '../../../../services/cms/pageService';\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\nimport PageValidator from '../../../../helpers/validators/cms/page/pageValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst intialPageModel = {\r\n id: 0,\r\n name: '',\r\n title: '',\r\n url: '',\r\n isBannerVisible: true,\r\n bannerImageFilePath: '',\r\n bannerColor: '#000000',\r\n keywords: '',\r\n description: '',\r\n isActive: true,\r\n bannerImage: null,\r\n contentSections: []\r\n};\r\n\r\nconst typeSelectionOptions = [\r\n {\r\n label: 'Banner',\r\n value: 'BANNER'\r\n },\r\n {\r\n label: 'Content Section',\r\n value: 'CONTENTSECTION'\r\n }\r\n];\r\n\r\nconst PageManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { pageId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [file, setFile] = useState([]);\r\n const [selectedOption, setSelectedOption] = useState(null);\r\n const [contentBannerTypeOption, setContentBannerTypeOption] = useState([]);\r\n const [selectedContentBannerTypeOption, setSelectedContentBannerTypeOption] = useState(null);\r\n const [pageModel, setPageModel] = useState(intialPageModel);\r\n const [sortList, setSortList] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n loadOptionsAndPopulateForm();\r\n setContentBannerTypeOption([]);\r\n setSelectedContentBannerTypeOption([]);\r\n }, [pageId]);\r\n\r\n useEffect(() => {\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n if (selectedOption) {\r\n getOptions(selectedOption.value);\r\n }\r\n }, [selectedOption]);\r\n\r\n useEffect(() => {\r\n setSortList(pageModel.contentSections.sort((a, b) => a - b));\r\n }, [pageModel.contentSections]);\r\n\r\n const formik = useFormik({\r\n initialValues: pageModel,\r\n validationSchema: PageValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (pageId) {\r\n updatePage(values);\r\n } else {\r\n createPage(values);\r\n }\r\n },\r\n });\r\n\r\n const loadOptionsAndPopulateForm = async () => {\r\n if (pageId > 0) {\r\n getPage();\r\n }\r\n };\r\n\r\n const getOptions = (type) => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.getContentSectionOptions(pageId, type).then((res) => {\r\n setContentBannerTypeOption(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getPage = async () => {\r\n setIsLoading(true);\r\n\r\n pageService.getPageById(pageId).then((res) => {\r\n setPageModel(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const createPage = (model) => {\r\n setIsLoading(true);\r\n\r\n pageService.createPage(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n bannerImage: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/cms/management/page/edit/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updatePage = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, bannerImage: file[0].file };\r\n }\r\n pageService.updatePage(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/pages');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const hideContentSectionModal = () => {\r\n setSelectedOption(null);\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n\r\n setIsModalVisible(false);\r\n };\r\n\r\n const addContentSection = () => {\r\n if (selectedContentBannerTypeOption && selectedOption) {\r\n setIsLoading(true);\r\n\r\n pageService.assignContentSectionToPage(pageId, selectedContentBannerTypeOption.value, selectedOption.value).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideContentSectionModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n } else {\r\n showAlert({ text: 'Please select both type & component', state: 'warning' });\r\n }\r\n };\r\n\r\n const deletePageContent = (id) => {\r\n setIsLoading(true);\r\n\r\n pageService.unassignContentSection(id).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortPageContents = () => {\r\n setIsLoading(true);\r\n\r\n pageService.sortPageContentSections(sortList).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(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 const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: false\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: false,\r\n print: false,\r\n };\r\n\r\n const deleteBannerImage = () => {\r\n pageService.deleteBannerImage(pageId).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideConfirmModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n {\r\n const model = pageModel.contentSections[dataIndex];\r\n history.push(`/cms/management/${(model.bannerId > 0) ? 'banner' : 'content-section'}/edit/${(model.bannerId > 0) ? model.bannerId : model.contentSectionId}`);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Page Content',\r\n text: 'Are you sure you want to remove this content?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deletePageContent(pageModel.contentSections[dataIndex].id);\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: columnOptions,\r\n },\r\n {\r\n name: 'type',\r\n label: 'Type',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (

{helper.mapContentSectionName(pageModel.contentSections[dataIndex].type)}

)\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {/* BASIC INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* PAGE BANNER */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n pageModel.bannerImageFilePath\r\n ? (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n showConfirmModal(\r\n {\r\n title: 'Remove Banner Image',\r\n text: 'Are you sure you want to remove this banner Image?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBannerImage();\r\n }\r\n }\r\n )}\r\n />\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n\r\n \r\n\r\n \r\n }\r\n errorMessage={formik.errors.bannerColor}\r\n inputState={`${helper.getInputClasses(formik, 'bannerColor')}`}\r\n {...formik.getFieldProps('bannerColor')}\r\n />\r\n\r\n \r\n {\r\n formik.setFieldValue('bannerColor', c.hex);\r\n }}\r\n className=\"w-100\"\r\n />\r\n \r\n \r\n
\r\n\r\n {/* SEO INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* CONTENT */}\r\n {\r\n pageId\r\n && (\r\n
\r\n \r\n }\r\n primaryButtonOnClick={() => setIsModalVisible(true)}\r\n secondaryButtonText=\"Sort Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n 0 ? 'Save Changes' : 'Create Page'}\r\n primaryActionColor=\"primary--bg\"\r\n primaryActionOnClick={formik.handleSubmit}\r\n secondaryActionText=\"Cancel\"\r\n secondaryActionTo=\"/cms/management/pages\"\r\n optionalActionText={pageId > 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/cms/management/pages\"\r\n />\r\n
\r\n
\r\n
\r\n\r\n {/* ADD Content Section MODAL */}\r\n {\r\n if (selectedOption !== null) {\r\n history.push(`/cms/management/${(selectedOption.value === 'BANNER') ? 'banner' : 'content-section'}/pageId/${pageId}`);\r\n } else {\r\n showAlert({ text: 'Please select type of Component you want to create', state: 'warning' });\r\n }\r\n }}\r\n onHide={hideContentSectionModal}\r\n >\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\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

{item.name}

\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 \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(PageManagementPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Banner/';\r\n\r\nconst getAllBanners = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllBanners?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getBannerById = async (bannerId) => axiosInstance.get(`${ENDPOINTORIGIN}GetBannerById?bannerId=${bannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createBanner = async (banner) => axiosInstance.post(`${ENDPOINTORIGIN}CreateBanner`, banner, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateBanner = async (banner) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateBanner`, banner, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBanner = async (bannerId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBanner?id=${bannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllBanners,\r\n getBannerById,\r\n createBanner,\r\n updateBanner,\r\n deleteBanner\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\nimport { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\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 ModalBlock from '../../../../components/ModalBlock';\r\nimport Button from '../../../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\n// REDUX\r\nimport constants from '../../../../constants/constants';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\nimport * as bannerService from '../../../../services/cms/bannerService';\r\n\r\nconst ContentSectionListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [contentSections, setContentSections] = useState([]);\r\n const [isConfirmDeleteModalVisible, setIsConfirmDeleteModalVisible] = useState(false);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getContentSections();\r\n }, []);\r\n\r\n const getContentSections = () => {\r\n setIsLoading(true);\r\n contentSectionService.getAllContentSections('').then((res) => {\r\n setContentSections(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deleteContentSection = (contentSectionId) => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.deleteContentSection(contentSectionId).then((res) => {\r\n getContentSections();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const deleteBanner = (bannerId) => {\r\n setIsLoading(true);\r\n\r\n bannerService.deleteBanner(bannerId).then((res) => {\r\n getContentSections();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove content section',\r\n text: 'Are you sure you want to remove this content section?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n if (contentSections[dataIndex].type === constants.CONTENT_SECTION.ContentSectionDynamicBanner) {\r\n deleteBanner(contentSections[dataIndex].id);\r\n } else {\r\n deleteContentSection(contentSections[dataIndex].id);\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: columnOptions,\r\n },\r\n {\r\n name: 'title',\r\n label: 'Title',\r\n options: columnOptions\r\n },\r\n {\r\n name: 'type',\r\n label: 'Type',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{helper.mapContentSectionName(contentSections[dataIndex].type)}

\r\n )\r\n }\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{contentSections[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n }\r\n primaryButtonTo=\"/cms/management/content-section\"\r\n secondaryButtonText=\"New Banner\"\r\n secondaryButtonIconLeft={}\r\n secondaryButtonTo=\"/cms/management/banner\"\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* CONFIRM DELETE MODAL */}\r\n { }}\r\n secondaryModalActionText=\"Cancel\"\r\n secondaryModalActionColor=\"grey--bg\"\r\n onHide={() => {\r\n setIsConfirmDeleteModalVisible(false);\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(ContentSectionListingPage);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Image from './Image';\r\nimport TextBlock from './TextBlock';\r\n\r\nconst SelectablePreview = (props) => {\r\n const {\r\n title,\r\n titleColor,\r\n imageSource,\r\n onClick,\r\n isSelected,\r\n } = 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\nSelectablePreview.propTypes = {\r\n // MAIN PROPS\r\n title: PropTypes.string,\r\n titleColor: PropTypes.string,\r\n imageSource: PropTypes.number.isRequired,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isSelected: PropTypes.bool\r\n};\r\n\r\nSelectablePreview.defaultProps = {\r\n // MAIN PROPS\r\n title: '',\r\n titleColor: '',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isSelected: false\r\n};\r\n\r\nexport default SelectablePreview;","export default __webpack_public_path__ + \"static/media/content-section_default.04b94dd3.svg\";","export default __webpack_public_path__ + \"static/media/content-section_reversed.881e8c07.svg\";","export default __webpack_public_path__ + \"static/media/content-section_full-width.7919dac7.svg\";","export default __webpack_public_path__ + \"static/media/content-section_full-width-padded.3fb3d653.svg\";","export default __webpack_public_path__ + \"static/media/content-section_text-only.d952709d.svg\";","export default __webpack_public_path__ + \"static/media/content-section_floating-card.7b425d5c.svg\";","export default __webpack_public_path__ + \"static/media/banner-section_dynamic.e70b2b3d.svg\";","export default __webpack_public_path__ + \"static/media/content-section_custom.3c559fd4.svg\";","import * as Yup from 'yup';\r\nimport constants from '../../../../constants/constants';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Content Section Name is required').max(150),\r\n type: Yup.string().required(),\r\n // title: Yup.string().required('Title is required').max(1000),\r\n title: Yup.string().when('type', {\r\n is: (type) => type === constants.CONTENT_SECTION.ContentSectionCustom,\r\n then: Yup.string().nullable(),\r\n otherwise: Yup.string().required('Title is required').max(1000)\r\n }),\r\n rawHTML: Yup.string().nullable(),\r\n description: Yup.string().when('type', {\r\n is: (type) => ![\r\n constants.CONTENT_SECTION.ContentSectionTypeBanner,\r\n constants.CONTENT_SECTION.ContentSectionCustom\r\n ].includes(type),\r\n then: Yup.string().nullable().required('Content Details is required'),\r\n otherwise: Yup.string().nullable()\r\n }),\r\n alignment: Yup.string().required(),\r\n imagePath: Yup.string().nullable(),\r\n isPadded: Yup.bool(),\r\n isFloatingCard: Yup.bool(),\r\n hasRoundedCorners: Yup.bool(),\r\n isTextOnly: Yup.bool(),\r\n primaryButtonText: Yup.string().nullable().max(50),\r\n primaryButtonActionType: Yup.string().nullable().when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Type is required')\r\n }),\r\n primaryButtonLink: Yup.string().nullable().max(500).when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Link is required')\r\n }),\r\n secondaryButtonText: Yup.string().nullable().max(50),\r\n secondaryButtonActionType: Yup.string().nullable().when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Type is required')\r\n }),\r\n secondaryButtonLink: Yup.string().nullable().max(500).when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Link is required')\r\n }),\r\n}, [['title', 'description', 'type', 'primaryButtonText', 'secondaryButtonActionText']]);","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-return-await */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable prefer-const */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useRef\r\n} from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport ReactQuill, { Quill } from 'react-quill';\r\nimport ImageResize from 'quill-image-resize-module-react';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Image from '../../../../components/Image';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\nimport SelectablePreview from '../../../../components/SelectablePreview';\r\n// ASSETS\r\nimport ContentSectionDefaultImage from '../../../../assets/img/content-section_default.svg';\r\nimport ContentSectionReversedImage from '../../../../assets/img/content-section_reversed.svg';\r\nimport ContentSectionFulWidthImage from '../../../../assets/img/content-section_full-width.svg';\r\nimport ContentSectionFulWidthPaddedImage from '../../../../assets/img/content-section_full-width-padded.svg';\r\nimport ContentSectionTextOnlyImage from '../../../../assets/img/content-section_text-only.svg';\r\nimport ContentSectionFloatingCardImage from '../../../../assets/img/content-section_floating-card.svg';\r\nimport DynamicBannerSectionImage from '../../../../assets/img/banner-section_dynamic.svg';\r\nimport CustomSectionImage from '../../../../assets/img/content-section_custom.svg';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../../../constants/constants';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport ContentSectionValidator from '../../../../helpers/validators/cms/contentSection/ContentSectionValidator';\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nQuill.register('modules/imageResize', ImageResize);\r\n\r\nconst initialContentSectionModel = {\r\n id: 0,\r\n pageId: 0,\r\n bannerId: 0,\r\n name: '',\r\n rawHTML: '',\r\n type: constants.CONTENT_SECTION.ContentSectionTypeDefault,\r\n isActive: true,\r\n title: '',\r\n description: '',\r\n alignment: 'LEFT',\r\n imagePath: '',\r\n image: null,\r\n isPadded: false,\r\n isFloatingCard: false,\r\n hasRoundedCorners: false,\r\n isTextOnly: false,\r\n primaryButtonText: '',\r\n primarButtonLink: '',\r\n primaryButtonActionType: null,\r\n secondaryButtonText: '',\r\n secondaryButtonLink: '',\r\n secondaryButtonActionType: null,\r\n};\r\n\r\nconst format = [\r\n 'header',\r\n 'font',\r\n 'size',\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strike',\r\n 'blockquote',\r\n 'list',\r\n 'bullet',\r\n 'indent',\r\n 'link',\r\n 'image',\r\n 'video',\r\n 'width',\r\n 'height',\r\n 'style',\r\n 'align',\r\n];\r\n\r\nconst linkTypes = [\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePage, label: 'Page' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeLink, label: 'Link (New Tab)' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePhoneNumber, label: 'Phone Number' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeEmail, label: 'Email Address' },\r\n];\r\n\r\nconst alignmentOptions = [\r\n { value: constants.CONTENT_SECTION.LeftAlignment, label: 'Left (Default)' },\r\n { value: constants.CONTENT_SECTION.CenterAlignment, label: 'Center' },\r\n { value: constants.CONTENT_SECTION.RightAlignment, label: 'Right' },\r\n];\r\n\r\nconst components = [\r\n {\r\n id: 0,\r\n title: 'Custom',\r\n image: CustomSectionImage,\r\n type: constants.CONTENT_SECTION.ContentSectionCustom\r\n },\r\n {\r\n id: 1,\r\n title: 'Content Section (Default)',\r\n image: ContentSectionDefaultImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeDefault\r\n },\r\n {\r\n id: 2,\r\n title: 'Content Section (Reversed)',\r\n image: ContentSectionReversedImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeReversed\r\n },\r\n {\r\n id: 3,\r\n title: 'Content Section Full Width',\r\n image: ContentSectionFulWidthImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeFullWidth\r\n },\r\n {\r\n id: 4,\r\n title: 'Content Section Full Width (Padded)',\r\n image: ContentSectionFulWidthPaddedImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded\r\n },\r\n {\r\n id: 5,\r\n title: 'Content Section (Text Only)',\r\n image: ContentSectionTextOnlyImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeTextOnly\r\n },\r\n {\r\n id: 6,\r\n title: 'Content Card',\r\n image: ContentSectionFloatingCardImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeCard\r\n },\r\n {\r\n id: 7,\r\n title: 'Content Banner',\r\n image: DynamicBannerSectionImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeBanner\r\n },\r\n];\r\n\r\nconst ContentSectionManagementPage = (props) => {\r\n const { showAlert, history } = props;\r\n const { contentSectionId, pageId, blogId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const quillContainerRef = useRef(null);\r\n const quillRef = useRef(null);\r\n const [contentSectionModel, setContentSectionModel] = useState({\r\n ...initialContentSectionModel,\r\n pageId: pageId || 0,\r\n blogId: blogId || 0\r\n });\r\n const [alignment, setAlignment] = useState([{ label: 'Left (Default)', value: 'LEFT' }]);\r\n const [primaryActionType, setPrimaryActionType] = useState(null);\r\n const [secondaryActionType, setSecondaryActionType] = useState(null);\r\n const [file, setFile] = useState([]);\r\n const [modules, setModules] = useState({\r\n toolbar: {\r\n container: [\r\n [{ header: '1' }, { header: '2' }, { font: [] }],\r\n [{ size: [] }],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [\r\n { align: '' },\r\n { align: 'center' },\r\n { align: 'right' },\r\n { align: 'justify' },\r\n ],\r\n [{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }],\r\n ['link', 'image', 'video'],\r\n ['clean']\r\n ],\r\n handlers: {} // INITIALLY EMPTY, TO BE UPDATED VIA USE EFFECT\r\n },\r\n clipboard: { matchVisual: false },\r\n imageResize: {\r\n parchment: Quill.import('parchment'),\r\n modules: ['Resize', 'DisplaySize']\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n let initialTop = 0;\r\n let quillWidth = 0;\r\n\r\n // FUNCTION TO APPLY STYLES BASED ON SCROLL POSITION\r\n const applyStyles = (isFixed) => {\r\n const toolbar = quillContainerRef.current.querySelector('.ql-toolbar');\r\n toolbar.style.position = isFixed ? 'fixed' : '';\r\n toolbar.style.top = isFixed ? '0' : '';\r\n toolbar.style.width = isFixed ? '100%' : '';\r\n toolbar.style.marginTop = isFixed ? '5px' : '';\r\n toolbar.style.zIndex = isFixed ? '1000' : '';\r\n toolbar.style.backgroundColor = '#FFFFFF';\r\n toolbar.style.boxShadow = isFixed ? '#66666694 0px 4px 6px' : 'none';\r\n toolbar.style.borderRadius = isFixed ? '6px' : '6px 6px 0 0';\r\n toolbar.style.transform = isFixed ? 'scale(1.05)' : '';\r\n toolbar.style.maxWidth = `${quillWidth}px`;\r\n };\r\n\r\n const handleScroll = () => {\r\n if (quillContainerRef.current) {\r\n const toolbar = quillContainerRef.current.querySelector('.ql-toolbar');\r\n const quill = quillContainerRef.current.querySelector('.quill');\r\n\r\n // SET INITIAL VALUES IF NOT ALREADY SET\r\n if (initialTop === 0 || quillWidth === 0) {\r\n initialTop = toolbar.offsetTop;\r\n quillWidth = quill.offsetWidth;\r\n\r\n // IMMEDIATELY APPLY STYLES BASED ON CURRENT SCROLL POSITION\r\n applyStyles(window.scrollY >= initialTop);\r\n } else {\r\n // APPLY STYLES BASED ON SCROLL POSITION\r\n applyStyles(window.scrollY >= initialTop);\r\n }\r\n }\r\n };\r\n\r\n // IMMEDIATELY CHECK SCROLL POSITION AND APPLY STYLES\r\n handleScroll();\r\n\r\n // LISTEN FOR SCROLL EVENTS\r\n window.addEventListener('scroll', handleScroll);\r\n\r\n // CLEAN UP ON COMPONENT UNMOUNT\r\n return () => window.removeEventListener('scroll', handleScroll);\r\n }, []);\r\n\r\n useEffect(() => {\r\n // [+ SVG SUPPORT] HANDLES THE IMAGE UPLOAD PROCESS FOR THE QUILL EDITOR\r\n const imageHandler = () => {\r\n // CREATE AN INPUT ELEMENT TO ACCEPT IMAGE FILES\r\n const input = document.createElement('input');\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'image/svg+xml, image/png, image/jpeg');\r\n input.click(); // TRIGGER THE FILE INPUT DIALOG\r\n\r\n // LISTEN FOR FILE SELECTION\r\n input.onchange = async () => {\r\n const file = input.files[0]; // GET THE SELECTED FILE\r\n if (file) {\r\n // READ THE FILE AS A DATA URL FOR EMBEDDING\r\n const reader = new FileReader();\r\n reader.onload = (e) => {\r\n const quillEditor = quillRef.current.getEditor();\r\n const range = quillEditor.getSelection();\r\n const index = range ? range.index : quillEditor.getLength();\r\n // INSERT THE IMAGE AT THE CURRENT SELECTION OR AT THE END OF THE EDITOR CONTENT\r\n quillEditor.insertEmbed(index, 'image', e.target.result);\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n };\r\n };\r\n\r\n // UPDATE MODULES STATE\r\n setModules((prevModules) => ({\r\n ...prevModules,\r\n toolbar: {\r\n ...prevModules.toolbar,\r\n handlers: {\r\n ...prevModules.toolbar.handlers,\r\n image: imageHandler\r\n },\r\n },\r\n }));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (contentSectionId > 0) {\r\n getContentSection();\r\n }\r\n }, []);\r\n\r\n const formik = useFormik({\r\n initialValues: contentSectionModel,\r\n validationSchema: ContentSectionValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (contentSectionId) {\r\n updateContentSection(values);\r\n } else {\r\n createContentSection(values);\r\n }\r\n },\r\n });\r\n\r\n const getContentSection = async () => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.getContentSectionById(contentSectionId).then((res) => {\r\n setContentSectionModel(res);\r\n fillSelectedOptions(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const fillSelectedOptions = (res) => {\r\n let selectedAlignment = alignmentOptions.find((x) => x.value === res.alignment);\r\n let selectedPrimaryActionType = linkTypes.find((x) => x.value === res.primaryButtonActionType);\r\n let selectedSecondaryActionType = linkTypes.find((x) => x.value === res.secondaryButtonActionType);\r\n\r\n if (selectedAlignment) {\r\n setAlignment(selectedAlignment);\r\n }\r\n\r\n if (selectedPrimaryActionType) {\r\n setPrimaryActionType(selectedPrimaryActionType);\r\n }\r\n\r\n if (selectedSecondaryActionType) {\r\n setSecondaryActionType(selectedSecondaryActionType);\r\n }\r\n };\r\n\r\n const createContentSection = (model) => {\r\n if (file.length === 0 && ![constants.CONTENT_SECTION.ContentSectionTypeTextOnly, constants.CONTENT_SECTION.ContentSectionCustom].includes(formik.values.type)) {\r\n showAlert({ text: 'Error! Please upload an image', state: 'warning' });\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n\r\n contentSectionService.createContentSection(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n image: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n if (model.blogId > 0) {\r\n history.push(`/cms/management/blog/edit/${model.blogId}`);\r\n } else if (model.pageId > 0) {\r\n history.push(`/cms/management/page/edit/${model.pageId}`);\r\n } else {\r\n history.push(`/cms/management/content-section/edit/${res.id}`);\r\n }\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateContentSection = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, image: file[0].file };\r\n }\r\n contentSectionService.updateContentSection(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/content-sections');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const showOrHideFields = (type) => {\r\n let floatingCardProp = false;\r\n let isTextOnlyProp = false;\r\n let isPaddedProp = false;\r\n let alignmentProp = 'LEFT';\r\n\r\n switch (type) {\r\n case constants.CONTENT_SECTION.ContentSectionTypeDefault:\r\n setAlignment({ label: 'Left (Default)', value: 'LEFT' });\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeReversed:\r\n setAlignment({ label: 'Right', value: 'RIGHT' });\r\n alignmentProp = 'RIGHT';\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidth:\r\n case constants.CONTENT_SECTION.ContentSectionTypeBanner:\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded:\r\n isPaddedProp = true;\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeTextOnly:\r\n isTextOnlyProp = true;\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeCard:\r\n floatingCardProp = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n formik.setFieldValue('isFloatingCard', floatingCardProp);\r\n formik.setFieldValue('isTextOnly', isTextOnlyProp);\r\n formik.setFieldValue('isPadded', isPaddedProp);\r\n formik.setFieldValue('alignment', alignmentProp);\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n components.map((item) => (\r\n {\r\n formik.setFieldValue('type', item.type);\r\n showOrHideFields(item.type);\r\n }}\r\n />\r\n ))\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {/* BASIC INFORMATION */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {\r\n formik.values.type !== constants.CONTENT_SECTION.ContentSectionCustom\r\n && (\r\n <>\r\n {/* CONTENT DETAILS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n setAlignment(opt);\r\n formik.setFieldValue('alignment', opt.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n {\r\n formik.values.type !== constants.CONTENT_SECTION.ContentSectionTypeTextOnly\r\n && (\r\n <>\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n formik.values.id === 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 {/* ACTIONS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n formik.setFieldTouched('primaryButtonActionType', true)}\r\n value={primaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setPrimaryActionType(opt);\r\n formik.setFieldValue('primaryButtonActionType', opt.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 formik.setFieldTouched('secondaryButtonActionType', true)}\r\n value={secondaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setSecondaryActionType(opt);\r\n formik.setFieldValue('secondaryButtonActionType', opt.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 formik.values.type === constants.CONTENT_SECTION.ContentSectionCustom\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n formik.setFieldValue('rawHTML', val);\r\n }}\r\n modules={modules}\r\n formats={format}\r\n />\r\n \r\n \r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n {\r\n history.goBack();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(ContentSectionManagementPage);","export default __webpack_public_path__ + \"static/media/banner-section.bd810172.svg\";","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Banner Name is required').max(150),\r\n});","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n type: Yup.string().required(),\r\n title: Yup.string().nullable().max(1000),\r\n name: Yup.string().nullable().max(1000),\r\n description: Yup.string().nullable(),\r\n alignment: Yup.string().required(),\r\n imagePath: Yup.string(),\r\n isPadded: Yup.bool(),\r\n isFloatingCard: Yup.bool(),\r\n hasRoundedCorners: Yup.bool(),\r\n isActive: Yup.bool(),\r\n isTextOnly: Yup.bool(),\r\n primaryButtonText: Yup.string().nullable().max(50),\r\n primaryButtonActionType: Yup.string().nullable().when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Type is required')\r\n }),\r\n primaryButtonLink: Yup.string().nullable().max(500).when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Link is required')\r\n }),\r\n secondaryButtonText: Yup.string().nullable().max(50),\r\n secondaryButtonActionType: Yup.string().nullable().when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Type is required')\r\n }),\r\n secondaryButtonLink: Yup.string().nullable().max(500).when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Link is required')\r\n }),\r\n}, [['type', 'primaryButtonText', 'secondaryButtonActionText']]);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'BannerItem/';\r\n\r\nconst getBannerItemById = async (bannerItemId) => axiosInstance.get(`${ENDPOINTORIGIN}GetBannerItemById?bannerItemId=${bannerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createBannerItem = async (bannerItem) => axiosInstance.post(`${ENDPOINTORIGIN}CreateBannerItem`, bannerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateBannerItem = async (bannerItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateBannerItem`, bannerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBannerItem = async (bannerItemId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBannerItem?id=${bannerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortBannerItems = async (bannerItems) => axiosInstance.put(`${ENDPOINTORIGIN}SortBannerItems`, bannerItems, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getBannerItemById,\r\n createBannerItem,\r\n updateBannerItem,\r\n deleteBannerItem,\r\n sortBannerItems\r\n};","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-return-await */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable prefer-const */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable object-curly-newline */\r\n/* eslint-disable object-shorthand */\r\n/* eslint-disable no-return-assign */\r\n/* eslint-disable react/no-this-in-sfc */\r\n/* eslint-disable no-const-assign */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Image from '../../../../components/Image';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Button from '../../../../components/Button';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\nimport SelectablePreview from '../../../../components/SelectablePreview';\r\n// ASSETS\r\nimport DynamicBannerSectionImage from '../../../../assets/img/banner-section.svg';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../../../constants/constants';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport BannerValidator from '../../../../helpers/validators/cms/banner/BannerValidator';\r\nimport BannerItemValidator from '../../../../helpers/validators/cms/banner/BannerItemValidator';\r\nimport * as bannerService from '../../../../services/cms/bannerService';\r\nimport * as bannerItemService from '../../../../services/cms/bannerItemService';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst initialBannerModel = {\r\n id: 0,\r\n pageId: 0,\r\n bannerId: 0,\r\n name: '',\r\n isActive: true,\r\n bannerItems: []\r\n};\r\n\r\nconst linkTypes = [\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePage, label: 'Page' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeLink, label: 'Link (New Tab)' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePhoneNumber, label: 'Phone Number' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeEmail, label: 'Email Address' },\r\n];\r\n\r\nconst alignmentOptions = [\r\n { value: constants.CONTENT_SECTION.LeftAlignment, label: 'Left (Default)' },\r\n { value: constants.CONTENT_SECTION.CenterAlignment, label: 'Center' },\r\n { value: constants.CONTENT_SECTION.RightAlignment, label: 'Right' },\r\n];\r\n\r\nconst components = [\r\n {\r\n id: 1,\r\n title: 'Banner',\r\n image: DynamicBannerSectionImage,\r\n type: constants.CONTENT_SECTION.BannerDynamicBanner\r\n },\r\n];\r\n\r\nconst BannerManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { bannerId, pageId, blogId } = useParams();\r\n const filePondRef = useRef(null);\r\n const initialBannerItemModel = {\r\n id: 0,\r\n bannerId: bannerId,\r\n isActive: true,\r\n type: constants.CONTENT_SECTION.ContentSectionDynamicBanner,\r\n title: '',\r\n name: '',\r\n description: '',\r\n alignment: 'LEFT',\r\n imagePath: '',\r\n image: null,\r\n isPadded: false,\r\n isFloatingCard: false,\r\n hasRoundedCorners: false,\r\n isTextOnly: false,\r\n primaryButtonText: '',\r\n primaryButtonLink: '',\r\n primaryButtonActionType: null,\r\n secondaryButtonText: '',\r\n secondaryButtonLink: '',\r\n secondaryButtonActionType: null,\r\n };\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [bannerModel, setBannerModel] = useState({\r\n ...initialBannerModel,\r\n pageId: pageId || 0,\r\n blogId: blogId || 0\r\n });\r\n const [bannerItemModel, setBannerItemModel] = useState(initialBannerItemModel);\r\n const [alignment, setAlignment] = useState([{ label: 'Left (Default)', value: 'LEFT' }]);\r\n const [primaryActionType, setPrimaryActionType] = useState(null);\r\n const [secondaryActionType, setSecondaryActionType] = useState(null);\r\n const [file, setFile] = useState([]);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [sortList, setSortList] = useState([]);\r\n\r\n useEffect(() => {\r\n if (bannerId > 0) {\r\n getBanner();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSortList(bannerModel.bannerItems.sort((a, b) => a - b));\r\n }, [bannerModel.bannerItems]);\r\n\r\n const formik = useFormik({\r\n initialValues: bannerModel,\r\n validationSchema: BannerValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (bannerId) {\r\n updateBanner(values);\r\n } else {\r\n createBanner(values);\r\n }\r\n },\r\n });\r\n\r\n const formik_bannerItem = useFormik({\r\n initialValues: bannerItemModel,\r\n validationSchema: BannerItemValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (values.id > 0) {\r\n updateBannerItem(values);\r\n } else {\r\n createBannerItem(values);\r\n }\r\n },\r\n });\r\n\r\n const getBanner = async () => {\r\n setIsLoading(true);\r\n\r\n bannerService.getBannerById(bannerId).then((res) => {\r\n setBannerModel(res);\r\n fillSelectedOptions(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const fillSelectedOptions = (res) => {\r\n let selectedAlignment = alignmentOptions.find((x) => x.value === res.alignment);\r\n let selectedPrimaryActionType = linkTypes.find((x) => x.value === res.primaryButtonActionType);\r\n let selectedSecondaryActionType = linkTypes.find((x) => x.value === res.secondaryButtonActionType);\r\n\r\n if (selectedAlignment) {\r\n setAlignment(selectedAlignment);\r\n }\r\n\r\n if (selectedPrimaryActionType) {\r\n setPrimaryActionType(selectedPrimaryActionType);\r\n }\r\n\r\n if (selectedSecondaryActionType) {\r\n setSecondaryActionType(selectedSecondaryActionType);\r\n }\r\n };\r\n\r\n const createBanner = (model) => {\r\n setIsLoading(true);\r\n\r\n bannerService.createBanner(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/cms/management/banner/edit/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateBanner = (model) => {\r\n setIsLoading(true);\r\n\r\n bannerService.updateBanner(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/content-sections');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const createBannerItem = (model) => {\r\n if (file.length === 0) {\r\n showAlert({ text: 'Error! Please upload an image', state: 'warning' });\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n bannerItemService.createBannerItem(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n image: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n resetBannerItemForm();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateBannerItem = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, image: file[0].file };\r\n }\r\n bannerItemService.updateBannerItem(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n resetBannerItemForm();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const resetBannerItemForm = () => {\r\n getBanner();\r\n resetBannerItemEditFormFields();\r\n };\r\n\r\n const resetBannerItemEditFormFields = () => {\r\n setBannerItemModel(initialBannerItemModel);\r\n formik_bannerItem.resetForm();\r\n filePondRef.current.removeFiles();\r\n setPrimaryActionType(null);\r\n setSecondaryActionType(null);\r\n };\r\n\r\n const removeBannerItem = (id) => {\r\n bannerItemService.deleteBannerItem(id).then((res) => {\r\n hideConfirmModal();\r\n showAlert({ text: res.message, state: 'success' });\r\n resetBannerItemForm();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const sortBannerItems = () => {\r\n setIsLoading(true);\r\n\r\n bannerItemService.sortBannerItems(sortList).then((res) => {\r\n getBanner();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(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 const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n {\r\n resetBannerItemEditFormFields();\r\n setTimeout(() => {\r\n setBannerItemModel(bannerModel.bannerItems[dataIndex]);\r\n fillSelectedOptions(bannerModel.bannerItems[dataIndex]);\r\n }, 0);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Item',\r\n text: 'Are you sure you want to remove this banner item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n removeBannerItem(bannerModel.bannerItems[dataIndex].id);\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 print: false,\r\n download: true\r\n },\r\n },\r\n {\r\n name: 'title',\r\n label: 'Title',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n },\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n const { isActive } = bannerModel.bannerItems[dataIndex];\r\n\r\n return (\r\n

{isActive ? 'Yes' : 'No'}

\r\n );\r\n }\r\n },\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n components.map((item) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n {/* BASIC INFORMATION */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n bannerId > 0\r\n && (\r\n <>\r\n {/* BANNER ITEM DETAILS */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {\r\n setAlignment(opt);\r\n formik_bannerItem.setFieldValue('alignment', opt.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 \r\n {\r\n formik_bannerItem.values.id === 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 {/* ACTIONS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n formik_bannerItem.setFieldTouched('primaryButtonActionType', true)}\r\n value={primaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setPrimaryActionType(opt);\r\n formik_bannerItem.setFieldValue('primaryButtonActionType', opt.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 formik_bannerItem.setFieldTouched('secondaryButtonActionType', true)}\r\n value={secondaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setSecondaryActionType(opt);\r\n formik_bannerItem.setFieldValue('secondaryButtonActionType', opt.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 \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\r\n {/* PAGE ACTIONS */}\r\n history.push('/cms/management/content-sections')}\r\n optionalActionText=\"Go to HomePage\"\r\n optionalActionTo=\"/home\"\r\n />\r\n \r\n \r\n \r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\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

{item.title}

\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 \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(BannerManagementPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Asset/';\r\n\r\nconst getAsset = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAsset`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateAsset = async (menuItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateAsset`, menuItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAsset,\r\n updateAsset\r\n};","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n companyName: Yup.string().required('Company Name is required').max(250),\r\n emailAddress: Yup.string().email().required('Email is required').max(150),\r\n phoneNumber: Yup.string().nullable().max(20),\r\n streetAddress1: Yup.string().nullable().max(150),\r\n streetAddress2: Yup.string().nullable().max(150),\r\n city: Yup.string().nullable().max(100),\r\n state: Yup.string().nullable().max(20),\r\n zipCode: Yup.string().nullable().max(10),\r\n primaryWeekDayHours: Yup.string().nullable().max(150),\r\n primaryWeekEndHours: Yup.string().nullable().max(150),\r\n secondaryWeekDayHours: Yup.string().nullable().max(150),\r\n secondaryWeekEndHours: Yup.string().nullable().max(150),\r\n facebookLink: Yup.string().nullable().max(500),\r\n instagramLink: Yup.string().nullable().max(500),\r\n twitterLink: Yup.string().nullable().max(500),\r\n linkedInLink: Yup.string().nullable().max(500),\r\n tiktokLink: Yup.string().nullable().max(500),\r\n youtubeLink: Yup.string().nullable().max(500),\r\n googleMapLink: Yup.string().nullable().max(500),\r\n appStoreLink: Yup.string().nullable().max(500),\r\n googlePlayStoreLink: Yup.string().nullable().max(500),\r\n googleAnalyticsId: Yup.string().nullable().max(500),\r\n});","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable object-curly-newline */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Image from '../../../../components/Image';\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as assetService from '../../../../services/cms/assetService';\r\nimport AssetValidator from '../../../../helpers/validators/cms/asset/AssetValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst initialAssetModel = {\r\n companyLogo: null,\r\n companyLogoPath: '',\r\n companyIcon: null,\r\n companyIconPath: '',\r\n companyName: '',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n streetAddress1: '',\r\n streetAddress2: '',\r\n city: '',\r\n state: '',\r\n zipCode: '',\r\n primaryWeekDayHours: '',\r\n primaryWeekEndHours: '',\r\n secondaryWeekDayHours: '',\r\n secondaryWeekEndHours: '',\r\n facebookLink: '',\r\n instagramLink: '',\r\n twitterLink: '',\r\n linkedInLink: '',\r\n youtubeLink: '',\r\n tiktokLink: '',\r\n googleMapLink: '',\r\n appStoreLink: '',\r\n googlePlayStoreLink: '',\r\n googleAnalyticsLink: '',\r\n seo: '',\r\n facebookPixelCode: ''\r\n};\r\n\r\nconst AssetsAndResourcesPage = (props) => {\r\n const { showAlert } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [assetModel, setAsset] = useState(initialAssetModel);\r\n const [logoFile, setLogoFile] = useState([]);\r\n const [iconFile, setIconFile] = useState([]);\r\n const logoRef = useRef(null);\r\n const iconRef = useRef(null);\r\n\r\n useEffect(() => {\r\n fetchAssets();\r\n }, []);\r\n\r\n const formik = useFormik({\r\n initialValues: assetModel,\r\n validationSchema: AssetValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n saveAsset(values);\r\n },\r\n });\r\n\r\n const fetchAssets = () => {\r\n setIsLoading(true);\r\n\r\n assetService.getAsset().then((res) => {\r\n setAsset(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const saveAsset = (model) => {\r\n setIsLoading(true);\r\n\r\n if (logoFile.length > 0) {\r\n model = { ...model, companyLogo: logoFile[0].file };\r\n }\r\n if (iconFile.length > 0) {\r\n model = { ...model, companyIcon: iconFile[0].file };\r\n }\r\n assetService.updateAsset(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n fetchAssets();\r\n setLogoFile([]);\r\n setIconFile([]);\r\n logoRef.current.removeFiles();\r\n iconRef.current.removeFiles();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {/* RESOURCES */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {/* BASIC INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n {/* CONTACT DETAILS */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/* LOCATION */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/* HOURS */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n {/* SOCIAL MEDIA AND LINKS */}\r\n
\r\n \r\n \r\n \r\n\r\n {/* SOCIAL MEDIA AND OTHER LINKS */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* SEO TOOLS */}\r\n
\r\n \r\n \r\n \r\n\r\n {/* SEO ITEMS */}\r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n
\r\n\r\n {/* FIXED ACTIONS BAR */}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(AssetsAndResourcesPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'FooterItem/';\r\n\r\nconst getAllFooterItems = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAllFooterItems`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getFooterItemById = async (footerItemId) => axiosInstance.get(`${ENDPOINTORIGIN}GetFooterItemById?footerItemId=${footerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createFooterItem = async (footerItem) => axiosInstance.post(`${ENDPOINTORIGIN}CreateFooterItem`, footerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateFooterItem = async (footerItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateFooterItem`, footerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteFooterItem = async (footerItemId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteFooterItem?footerItemId=${footerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortFooterItems = async (sortOrders) => axiosInstance.put(`${ENDPOINTORIGIN}SortFooterItems`, sortOrders, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllFooterItems,\r\n getFooterItemById,\r\n createFooterItem,\r\n updateFooterItem,\r\n deleteFooterItem,\r\n sortFooterItems\r\n};","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n label: Yup.string().required('Footer label is required').max(250),\r\n to: Yup.string().required('Link is required').max(500),\r\n});","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\nimport { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\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 ModalBlock from '../../../../components/ModalBlock';\r\nimport Button from '../../../../components/Button';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\n// SERVICES AND HELPERS\r\nimport * as footerItemService from '../../../../services/cms/footerItemService';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport FooterItemValidator from '../../../../helpers/validators/cms/footerItem/FooterItemValidator';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst initialFooterItemModel = {\r\n id: 0,\r\n label: '',\r\n to: '',\r\n};\r\n\r\nconst FooterItemListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [footerItems, setFooterItems] = useState([]);\r\n const [sortList, setSortList] = useState([]);\r\n const [footerItemModel, setFooterItemModel] = useState(initialFooterItemModel);\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getFooterItems();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSortList(footerItems.sort((a, b) => a - b));\r\n }, [footerItems]);\r\n\r\n const formik = useFormik({\r\n initialValues: footerItemModel,\r\n validationSchema: FooterItemValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (values.id === 0) {\r\n createFooterItem(values);\r\n } else {\r\n updateFooterItem(values);\r\n }\r\n },\r\n });\r\n\r\n const createFooterItem = (model) => {\r\n setIsLoading(true);\r\n footerItemService.createFooterItem(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getFooterItems();\r\n closeFooterItemModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const updateFooterItem = (model) => {\r\n setIsLoading(true);\r\n\r\n footerItemService.updateFooterItem(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getFooterItems();\r\n closeFooterItemModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getFooterItem = (id) => {\r\n setIsLoading(true);\r\n footerItemService.getFooterItemById(id).then((res) => {\r\n setFooterItemModel(res);\r\n setIsModalVisible(true);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getFooterItems = () => {\r\n setIsLoading(true);\r\n footerItemService.getAllFooterItems().then((res) => {\r\n setFooterItems(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const closeFooterItemModal = () => {\r\n setIsModalVisible(false);\r\n setTimeout(() => {\r\n formik.resetForm();\r\n setFooterItemModel(initialFooterItemModel);\r\n }, 250);\r\n };\r\n\r\n const deleteFooterItem = (footerItemId) => {\r\n setIsLoading(true);\r\n\r\n footerItemService.deleteFooterItem(footerItemId).then((res) => {\r\n getFooterItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortFooterItems = () => {\r\n setIsLoading(true);\r\n\r\n footerItemService.sortFooterItems(sortList).then((res) => {\r\n getFooterItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(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 const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n getFooterItem(footerItems[dataIndex].id)}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Footer Item',\r\n text: 'Are you sure you want to remove this menu item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteFooterItem(footerItems[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'label',\r\n label: 'Label',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'to',\r\n label: 'Link To',\r\n options: columnOptions\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n }\r\n primaryButtonOnClick={() => setIsModalVisible(true)}\r\n secondaryButtonText=\"Sort Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\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

{item.label}

\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\r\n {/* VIEW/UPDATE MODAL */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(FooterItemListingPage);","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n// import Image from './Image';\r\nimport TextBlock from './TextBlock';\r\nimport Button from './Button';\r\n\r\nconst ContentSection = (props) => {\r\n const {\r\n backgroundColor,\r\n title,\r\n titleColor,\r\n description,\r\n descriptionColor,\r\n cardBackgroundColor,\r\n imageSource,\r\n primaryActionText,\r\n primaryActionColor,\r\n primaryActionTo,\r\n primaryActionOnClick,\r\n secondaryActionText,\r\n secondaryActionColor,\r\n secondaryActionTo,\r\n secondaryActionOnClick,\r\n isPrimaryActionTargetBlank,\r\n isSecondaryActionTargetBlank,\r\n isReversed,\r\n isCentered,\r\n isTitleUppercase,\r\n hasRoundCorners,\r\n hasCardBackgroundImage,\r\n isTextOnly,\r\n isFloatingCard,\r\n isFullWidth,\r\n isFullWidthUnpadded,\r\n } = props;\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n return (\r\n \r\n {\r\n (!isTextOnly && !isFloatingCard)\r\n && (\r\n \r\n \r\n {/* */}\r\n \r\n )\r\n }\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n {\r\n (primaryActionText !== '' && primaryActionText !== null)\r\n && (\r\n openInNewTab(primaryActionTo) : primaryActionOnClick}\r\n />\r\n )\r\n }\r\n\r\n {\r\n (secondaryActionText !== '' && secondaryActionText !== null)\r\n && (\r\n openInNewTab(secondaryActionTo) : secondaryActionOnClick}\r\n />\r\n )\r\n }\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nContentSection.propTypes = {\r\n // MAIN PROPS\r\n backgroundColor: PropTypes.string,\r\n cardBackgroundColor: PropTypes.string,\r\n\r\n // IMAGE PROPS\r\n imageSource: PropTypes.number.isRequired,\r\n\r\n // TITLE PROPS\r\n title: PropTypes.string.isRequired,\r\n titleColor: PropTypes.string,\r\n\r\n // DESCRIPTION PROPS\r\n description: PropTypes.string,\r\n descriptionColor: PropTypes.string,\r\n\r\n // ACTION PROPS\r\n primaryActionText: PropTypes.string,\r\n primaryActionColor: PropTypes.string,\r\n primaryActionTo: PropTypes.string,\r\n primaryActionOnClick: PropTypes.func,\r\n\r\n secondaryActionText: PropTypes.string,\r\n secondaryActionColor: PropTypes.string,\r\n secondaryActionTo: PropTypes.string,\r\n secondaryActionOnClick: PropTypes.func,\r\n\r\n // FUNCTION PROPS\r\n\r\n // BOOLEAN PROPS\r\n isPrimaryActionTargetBlank: PropTypes.bool,\r\n isSecondaryActionTargetBlank: PropTypes.bool,\r\n isReversed: PropTypes.bool,\r\n isCentered: PropTypes.bool,\r\n isTitleUppercase: PropTypes.bool,\r\n hasRoundCorners: PropTypes.bool,\r\n hasCardBackgroundImage: PropTypes.bool,\r\n isTextOnly: PropTypes.bool,\r\n isFloatingCard: PropTypes.bool,\r\n isFullWidth: PropTypes.bool,\r\n isFullWidthUnpadded: PropTypes.bool,\r\n};\r\n\r\nContentSection.defaultProps = {\r\n // MAIN PROPS\r\n backgroundColor: '',\r\n cardBackgroundColor: '',\r\n\r\n // IMAGE PROPS\r\n\r\n // TITLE PROPS\r\n titleColor: 'primary--clr',\r\n\r\n // DESCRIPTION PROPS\r\n description: '',\r\n descriptionColor: 'dark--clr',\r\n\r\n // ACTION PROPS\r\n primaryActionText: '',\r\n primaryActionColor: 'primary--bg',\r\n primaryActionTo: '',\r\n primaryActionOnClick: null,\r\n\r\n secondaryActionText: '',\r\n secondaryActionColor: 'secondary--bg',\r\n secondaryActionTo: '',\r\n secondaryActionOnClick: null,\r\n\r\n // FUNCTION PROPS\r\n\r\n // BOOLEAN PROPS\r\n isPrimaryActionTargetBlank: false,\r\n isSecondaryActionTargetBlank: false,\r\n isReversed: false,\r\n isCentered: false,\r\n isTitleUppercase: false,\r\n hasRoundCorners: false,\r\n hasCardBackgroundImage: false,\r\n isTextOnly: false,\r\n isFloatingCard: false,\r\n isFullWidth: false,\r\n isFullWidthUnpadded: false,\r\n};\r\n\r\nexport default ContentSection;","/* eslint-disable object-shorthand */\r\n/* eslint-disable import/no-unresolved */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport ContentSection from './ContentSection';\r\n\r\nconst Banner = (props) => {\r\n const {\r\n bannerBackgroundColor,\r\n title,\r\n titleColor,\r\n description,\r\n descriptionColor,\r\n imageSource,\r\n titlePosition,\r\n isDynamicBanner,\r\n isTitleUppercase,\r\n offset,\r\n className,\r\n primaryActionColor\r\n } = props;\r\n\r\n const textPositions = {\r\n left: 'left',\r\n center: 'center',\r\n right: 'right'\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nBanner.propTypes = {\r\n // MAIN PROPS\r\n imageSource: PropTypes.number.isRequired,\r\n titlePosition: PropTypes.string,\r\n bannerBackgroundColor: PropTypes.string,\r\n\r\n // TITLE PROPS\r\n title: PropTypes.string.isRequired,\r\n titleColor: PropTypes.string,\r\n\r\n // DESCRIPTION PROPS\r\n description: PropTypes.string,\r\n descriptionColor: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isDynamicBanner: PropTypes.bool,\r\n isTitleUppercase: PropTypes.bool,\r\n};\r\n\r\nBanner.defaultProps = {\r\n // MAIN PROPS\r\n description: '',\r\n titlePosition: 'center',\r\n bannerBackgroundColor: '#213c63',\r\n\r\n // TITLE PROPS\r\n titleColor: 'white--clr',\r\n\r\n // DESCRIPTION PROPS\r\n descriptionColor: 'white--clr',\r\n\r\n // BOOLEAN PROPS\r\n isDynamicBanner: false,\r\n isTitleUppercase: false,\r\n};\r\n\r\nexport default Banner;","/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Section from './Section';\r\nimport ContentBlock from './ContentBlock';\r\nimport FormBlock from './FormBlock';\r\nimport ContentHeader from './ContentHeader';\r\nimport InputBlock from './InputBlock';\r\nimport Button from './Button';\r\nimport TextAreaBlock from './TextAreaBlock';\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../helpers/helper';\r\n\r\nconst ContactForm = ({ formConfig, onSubmit, title }) => {\r\n const formik = useFormik({\r\n initialValues: formConfig.reduce((prev, curr) => {\r\n prev[curr.name] = '';\r\n return prev;\r\n }, {}),\r\n validationSchema: Yup.object(\r\n formConfig.reduce((prev, curr) => {\r\n let validator = Yup.string();\r\n if (curr.required) {\r\n validator = validator.required(`${curr.label} is required`);\r\n }\r\n if (curr.max) {\r\n validator = validator.max(curr.max);\r\n }\r\n if (curr.email) {\r\n validator = validator.email();\r\n }\r\n prev[curr.name] = validator;\r\n return prev;\r\n }, {})\r\n ),\r\n onSubmit,\r\n });\r\n\r\n return (\r\n \r\n \r\n
\r\n {formConfig.map((field) => (\r\n \r\n {field.textarea ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ))}\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nContactForm.propTypes = {\r\n showAlert: PropTypes.func,\r\n onSubmit: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n formConfig: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n placeholder: PropTypes.string,\r\n required: PropTypes.bool,\r\n max: PropTypes.number,\r\n email: PropTypes.bool,\r\n textarea: PropTypes.bool,\r\n cols: PropTypes.number,\r\n })\r\n ).isRequired,\r\n};\r\n\r\nContactForm.defaultProps = {\r\n showAlert: () => { },\r\n title: 'Contact Form',\r\n};\r\n\r\nexport default ContactForm;","export default __webpack_public_path__ + \"static/media/banner-image_default.812cd639.png\";","export default __webpack_public_path__ + \"static/media/background-decoration_dark-light-waves.24cf4bb8.svg\";","/* eslint-disable object-curly-newline */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { connect } from 'react-redux';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport ContactForm from '../../../components/ContactForm';\r\nimport Image from '../../../components/Image';\r\n// import ContentSection from '../../../components/ContentSection';\r\n// ASSETS - CONTACT PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport BackgroundDecorationImage from '../../../assets/img/background-decoration_dark-light-waves.svg';\r\n// SERVICES AND HELPERS\r\nimport * as auth from '../../../redux/authRedux';\r\nimport * as alertToast from '../../../redux/alertToastRedux';\r\nimport * as emailService from '../../../services/management/emailService';\r\n\r\nconst ContactPage = (props) => {\r\n const { showAlert, history, cmsInfo } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n // const getDirectionsLink = 'https://www.google.com/maps/place/142+Del+Norte+Ave,+Denham+Springs,+LA+70726/@30.4706975,-90.9551617,17z/data=!3m1!4b1!4m6!3m5!1s0x8626bef0ef5cd50d:0x915fc5c888dc7ba6!8m2!3d30.4706975!4d-90.9551617!16s%2Fg%2F11c28v5b_f?entry=ttu';\r\n const formConfig = [\r\n { name: 'firstName', label: 'First Name', required: true, placeholder: 'e.g. John', max: 100 },\r\n { name: 'lastName', label: 'Last Name', required: true, placeholder: 'e.g. Smith', max: 100 },\r\n { name: 'email', label: 'Email Address', required: true, placeholder: 'e.g. johnsmith@example.com', max: 100, email: true },\r\n { name: 'phoneNumber', label: 'Phone Number', placeholder: 'e.g. (555) 555-5555', max: 50 },\r\n { name: 'message', label: 'Message', required: true, placeholder: 'Provide your message here...', textarea: true, cols: 12 },\r\n ];\r\n\r\n const submitForm = async (values) => {\r\n setIsLoading(true);\r\n await emailService.sendEmail(values).then(() => {\r\n showAlert({ text: 'Success! Your message has been received.', state: 'success' });\r\n history.push('/contact-jayroe');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n\r\n {/* */}\r\n \r\n {/* window.open(getDirectionsLink, '_blank')}\r\n primaryActionColor=\"primary--sbg\"\r\n /> */}\r\n\r\n \r\n {/*

Transport Logics

*/}\r\n {/*

Transport Logics

*/}\r\n {/*
*/}\r\n\r\n

Location

\r\n

Physical Address

\r\n

{cmsInfo.streetAddress1}, {cmsInfo.streetAddress2}

\r\n

{cmsInfo.city}, {cmsInfo.state}, {cmsInfo.zipCode}

\r\n {/*

Mailing Address

*/}\r\n {/*

P.O. Box 448

*/}\r\n
\r\n\r\n

Contact

\r\n

Email: {cmsInfo.emailAddress}

\r\n

Phone: {cmsInfo.phoneNumber}

\r\n {/*

Fax: (225) 685-1044

*/}\r\n
\r\n {(cmsInfo.primaryWeekDayHours || cmsInfo.secondaryWeekDayHours || cmsInfo.primaryWeekEndHours || cmsInfo.secondaryWeekEndHours) && (\r\n <>\r\n

Hours of Operation

\r\n {(cmsInfo.primaryWeekDayHours || cmsInfo.secondaryWeekDayHours) && (\r\n \r\n

Weekdays

\r\n\r\n {cmsInfo.primaryWeekDayHours && (\r\n

{cmsInfo.primaryWeekDayHours}

\r\n )}\r\n {cmsInfo.secondaryWeekDayHours && (\r\n

{cmsInfo.secondaryWeekDayHours}

\r\n )}\r\n
\r\n )}\r\n {(cmsInfo.primaryWeekEndHours || cmsInfo.secondaryWeekEndHours) && (\r\n \r\n

Weekends

\r\n {cmsInfo.primaryWeekEndHours && (\r\n

{cmsInfo.primaryWeekEndHours}

\r\n )}\r\n {cmsInfo.secondaryWeekEndHours && (\r\n

{cmsInfo.secondaryWeekEndHours}

\r\n )}\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n submitForm(values)}\r\n title={

Questions? We Have Answers

}\r\n className=\"mb-20\"\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alertToast.actions\r\n})(ContactPage);","/* eslint-disable react/jsx-one-expression-per-line */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\nimport { HiOutlineMail, HiOutlinePhone } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst MemberListing = (props) => {\r\n const {\r\n members,\r\n defaultImage,\r\n className = '',\r\n renderCustomContent = null\r\n } = props;\r\n const menuToggleIconColor = 'white--clr';\r\n const menuToggleIconSize = 24;\r\n\r\n return (\r\n \r\n {members.map((member) => (\r\n \r\n {\r\n if (e.target.src !== defaultImage) {\r\n e.target.src = defaultImage;\r\n }\r\n }}\r\n />\r\n\r\n

{member.name}

\r\n\r\n {member.title && (\r\n {member.title}\r\n )}\r\n\r\n {(member.emailAddress || member.phoneNumber) && (\r\n \r\n {member.emailAddress && (\r\n \r\n \r\n \r\n )}\r\n {member.phoneNumber && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {member.link && (\r\n \r\n {member.linkTitle}\r\n \r\n )}\r\n\r\n {member.memberType === 'Team Member' && member.bioLink && (\r\n \r\n \r\n \r\n )}\r\n\r\n {renderCustomContent && renderCustomContent(member)}\r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\nMemberListing.propTypes = {\r\n members: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n position: PropTypes.string,\r\n company: PropTypes.string,\r\n companyLink: PropTypes.string,\r\n imagePath: PropTypes.string\r\n })).isRequired,\r\n defaultImage: PropTypes.string,\r\n className: PropTypes.string,\r\n renderCustomContent: PropTypes.func\r\n};\r\n\r\nMemberListing.defaultProps = {\r\n defaultImage: '',\r\n className: '',\r\n renderCustomContent: null\r\n};\r\n\r\nexport default MemberListing;","export default __webpack_public_path__ + \"static/media/member-image-placeholder.c40d584e.png\";","/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport MemberListing from '../../../components/MemberListing';\r\n// ASSETS - AGENTS LISTING PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport MemberImagePlaceholder from '../../../assets/img/member-image-placeholder.png';\r\n\r\nconst MemberListingPage = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [agents, setAgents] = useState([]);\r\n\r\n useEffect(() => {\r\n getMembers();\r\n }, []);\r\n\r\n const getMembers = () => {\r\n setIsLoading(true);\r\n const membersData = [\r\n {\r\n name: 'Aubrey Jayroe',\r\n emailAddress: 'aubrey@jayroeco.com',\r\n phoneNumber: '870-633-6045 ext 1001',\r\n title: 'Accredited Tax Advisor, Accredited Tax Preparer, Licensed to Practice before the IRS, Certified Tax Return Preparer',\r\n link: '',\r\n linkTitle: '',\r\n image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/aubrey-jayroe.png`,\r\n },\r\n {\r\n name: 'Trent Jayroe',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n title: 'Registered Tax Preparer, Organization Manager',\r\n link: '',\r\n linkTitle: '',\r\n image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/trent-jayroe.png`,\r\n },\r\n {\r\n name: 'Robin Sanders',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n title: 'Tax assistant',\r\n link: '',\r\n linkTitle: '',\r\n image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/robin-sanders.png`,\r\n },\r\n {\r\n name: 'Melody West',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n title: 'Office Clerk',\r\n link: '',\r\n linkTitle: '',\r\n image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/melody-west.png`,\r\n },\r\n // {\r\n // name: 'Jana Calvert',\r\n // emailAddress: '',\r\n // phoneNumber: '',\r\n // title: 'Payroll Services Manager',\r\n // link: '',\r\n // linkTitle: '',\r\n // image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/jana-calvert.png`,\r\n // },\r\n // {\r\n // name: 'Jennifer Sanders',\r\n // emailAddress: '',\r\n // phoneNumber: '',\r\n // title: 'Bookkeeping Manager, Certified in Quickbooks',\r\n // link: '',\r\n // linkTitle: '',\r\n // image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/jennifer-sanders.png`,\r\n // },\r\n // {\r\n // name: 'Jeanette Nichols',\r\n // emailAddress: '',\r\n // phoneNumber: '',\r\n // title: 'Office Secretary',\r\n // link: '',\r\n // linkTitle: '',\r\n // image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/jeanette-nichols.png`,\r\n // },\r\n // {\r\n // name: 'Misty Davis',\r\n // emailAddress: '',\r\n // phoneNumber: '',\r\n // title: 'Payroll Specialist',\r\n // link: '',\r\n // linkTitle: '',\r\n // image: `${process.env.REACT_APP_API_URL}Attachments/TeamMembers/misty-davis.png`,\r\n // }\r\n ];\r\n\r\n setAgents(membersData);\r\n setIsLoading(false);\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\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 MemberListingPage;","/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React, { useState, useContext } from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Button from '../../../components/Button';\r\nimport Image from '../../../components/Image';\r\n// ASSETS\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport PayTraceLogo from '../../../assets/img/logo_pay-trace.svg';\r\n// CONTEXT\r\nimport PayTraceModalContext from '../../../context/PayTraceModalContext';\r\n\r\nconst PaymentsPage = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const { isPayTraceModalOpen, setIsPayTraceModalOpen } = useContext(PayTraceModalContext);\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n\r\n \r\n\r\n {/* INTRO SECTION */}\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n

\r\n Secure Online Payments\r\n

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

\r\n Jayroe & Company provides a secure and straightforward way for you to manage your financial transactions with us. Our payment portal, powered by Pay Trace, ensures your payment process is both safe and efficient.\r\n

\r\n
\r\n
\r\n
\r\n\r\n \r\n setIsPayTraceModalOpen(true)}\r\n />\r\n \r\n
\r\n\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PaymentsPage;","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Blog/';\r\n\r\nconst getAllBlogs = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllBlogs?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getBlogById = async (blogId) => axiosInstance.get(`${ENDPOINTORIGIN}GetBlogById?blogId=${blogId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createBlog = async (blog) => axiosInstance.post(`${ENDPOINTORIGIN}CreateBlog`, blog, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateBlog = async (blog) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateBlog`, blog, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBlog = async (blogId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBlog?id=${blogId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst assignContentSectionToBlog = async (blogId, contentSectionId, type) => axiosInstance.post(`${ENDPOINTORIGIN}AssignContentSectionToBlog?blogId=${blogId}&contentSectionId=${contentSectionId}&type=${type}`, {}, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst unassignContentSection = async (contentSectionBannerId) => axiosInstance.delete(`${ENDPOINTORIGIN}UnassignContentSection?contentSectionBannerId=${contentSectionBannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortBlogContentSections = async (sortOrders) => axiosInstance.put(`${ENDPOINTORIGIN}SortBlogContentSections`, sortOrders, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBannerImage = async (blogId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBannerImage?blogId=${blogId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllBlogs,\r\n getBlogById,\r\n createBlog,\r\n updateBlog,\r\n deleteBlog,\r\n assignContentSectionToBlog,\r\n unassignContentSection,\r\n sortBlogContentSections,\r\n deleteBannerImage\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\nimport { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\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\n// SERVICES AND HELPERS\r\nimport * as blogService from '../../../../services/cms/blogService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst BlogListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [blogs, setBlogs] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getBlogs();\r\n }, []);\r\n\r\n const getBlogs = () => {\r\n setIsLoading(true);\r\n blogService.getAllBlogs('').then((res) => {\r\n setBlogs(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deleteBlog = (blogId) => {\r\n setIsLoading(true);\r\n\r\n blogService.deleteBlog(blogId).then((res) => {\r\n getBlogs();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove blog',\r\n text: 'Are you sure you want to remove this blog?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBlog(blogs[dataIndex].id);\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: 'Blog Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'addedBy',\r\n label: 'Added By',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'addedOn',\r\n label: 'Added On',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{blogs[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n }\r\n primaryButtonTo=\"/cms/management/blog\"\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(BlogListingPage);","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Menu Item Name is required').max(250),\r\n url: Yup.string().required().max(250),\r\n isBannerVisible: Yup.bool().nullable(),\r\n bannerImageFilePath: Yup.string().nullable(),\r\n bannerColor: Yup.string().max(10),\r\n keywords: Yup.string().nullable().max(1500),\r\n description: Yup.string().nullable(),\r\n isActive: Yup.bool(),\r\n});","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-alert */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\nimport { useParams } from 'react-router-dom';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { SwatchesPicker } from 'react-color';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\nimport { MdOutlinePlaylistAdd } from 'react-icons/md';\r\nimport { FaSquare } 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 FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport Image from '../../../../components/Image';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// ASSETS\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as blogService from '../../../../services/cms/blogService';\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\nimport BlogValidator from '../../../../helpers/validators/cms/blog/BlogValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst intialBlogModel = {\r\n id: 0,\r\n name: '',\r\n url: '',\r\n isBannerVisible: true,\r\n bannerImageFilePath: '',\r\n bannerColor: '#000000',\r\n keywords: '',\r\n description: '',\r\n isActive: true,\r\n bannerImage: null,\r\n contentSections: []\r\n};\r\n\r\nconst typeSelectionOptions = [\r\n {\r\n label: 'Banner',\r\n value: 'BANNER'\r\n },\r\n {\r\n label: 'Content Section',\r\n value: 'CONTENTSECTION'\r\n }\r\n];\r\n\r\nconst BlogManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { blogId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [file, setFile] = useState([]);\r\n const [selectedOption, setSelectedOption] = useState(null);\r\n const [contentBannerTypeOption, setContentBannerTypeOption] = useState([]);\r\n const [selectedContentBannerTypeOption, setSelectedContentBannerTypeOption] = useState(null);\r\n const [blogModel, setBlogModel] = useState(intialBlogModel);\r\n const [sortList, setSortList] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n loadOptionsAndPopulateForm();\r\n setContentBannerTypeOption([]);\r\n setSelectedContentBannerTypeOption([]);\r\n }, [blogId]);\r\n\r\n useEffect(() => {\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n if (selectedOption) {\r\n getOptions(selectedOption.value);\r\n }\r\n }, [selectedOption]);\r\n\r\n useEffect(() => {\r\n setSortList(blogModel.contentSections.sort((a, b) => a - b));\r\n }, [blogModel.contentSections]);\r\n\r\n const formik = useFormik({\r\n initialValues: blogModel,\r\n validationSchema: BlogValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (blogId) {\r\n updateBlog(values);\r\n } else {\r\n createBlog(values);\r\n }\r\n },\r\n });\r\n\r\n const loadOptionsAndPopulateForm = async () => {\r\n if (blogId > 0) {\r\n getBlog();\r\n }\r\n };\r\n\r\n const getOptions = (type) => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.getContentSectionOptionsForBlog(blogId, type).then((res) => {\r\n setContentBannerTypeOption(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getBlog = async () => {\r\n setIsLoading(true);\r\n\r\n blogService.getBlogById(blogId).then((res) => {\r\n setBlogModel(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const createBlog = (model) => {\r\n setIsLoading(true);\r\n\r\n blogService.createBlog(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n bannerImage: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/cms/management/blog/edit/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateBlog = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, bannerImage: file[0].file };\r\n }\r\n blogService.updateBlog(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/blogs');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const hideContentSectionModal = () => {\r\n setSelectedOption(null);\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n\r\n setIsModalVisible(false);\r\n };\r\n\r\n const addContentSection = () => {\r\n if (selectedContentBannerTypeOption && selectedOption) {\r\n setIsLoading(true);\r\n\r\n blogService.assignContentSectionToBlog(blogId, selectedContentBannerTypeOption.value, selectedOption.value).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideContentSectionModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n } else {\r\n showAlert({ text: 'Please select both type & component', state: 'warning' });\r\n }\r\n };\r\n\r\n const deleteBlogContent = (id) => {\r\n setIsLoading(true);\r\n\r\n blogService.unassignContentSection(id).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortBlogContents = () => {\r\n setIsLoading(true);\r\n\r\n blogService.sortBlogContentSections(sortList).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(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 const deleteBannerImage = () => {\r\n blogService.deleteBannerImage(blogId).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideConfirmModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: false\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: false,\r\n print: false,\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\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 \r\n {\r\n const model = blogModel.contentSections[dataIndex];\r\n history.push(`/cms/management/${(model.bannerId > 0) ? 'banner' : 'content-section'}/edit/${(model.bannerId > 0) ? model.bannerId : model.contentSectionId}`);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Blog Content',\r\n text: 'Are you sure you want to remove this content?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBlogContent(blogModel.contentSections[dataIndex].id);\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: columnOptions,\r\n },\r\n {\r\n name: 'type',\r\n label: 'Type',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (

{helper.mapContentSectionName(blogModel.contentSections[dataIndex].type)}

)\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {/* BASIC INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* PAGE BANNER */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n blogModel.bannerImageFilePath\r\n ? (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n showConfirmModal(\r\n {\r\n title: 'Remove Banner Image',\r\n text: 'Are you sure you want to remove this banner Image?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBannerImage();\r\n }\r\n }\r\n )}\r\n />\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n\r\n \r\n\r\n \r\n }\r\n errorMessage={formik.errors.bannerColor}\r\n inputState={`${helper.getInputClasses(formik, 'bannerColor')}`}\r\n {...formik.getFieldProps('bannerColor')}\r\n />\r\n\r\n \r\n {\r\n formik.setFieldValue('bannerColor', c.hex);\r\n }}\r\n className=\"w-100\"\r\n />\r\n \r\n \r\n
\r\n\r\n {/* SEO INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* CONTENT */}\r\n {\r\n blogId\r\n && (\r\n
\r\n \r\n }\r\n primaryButtonOnClick={() => setIsModalVisible(true)}\r\n secondaryButtonText=\"Sort Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n 0 ? 'Save Changes' : 'Create Blog'}\r\n primaryActionColor=\"primary--bg\"\r\n primaryActionOnClick={formik.handleSubmit}\r\n secondaryActionText=\"Cancel\"\r\n secondaryActionTo=\"/cms/management/blogs\"\r\n optionalActionText={blogId > 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/cms/management/blogs\"\r\n />\r\n
\r\n
\r\n
\r\n\r\n {/* ADD Content Section MODAL */}\r\n {\r\n if (selectedOption !== null) {\r\n history.push(`/cms/management/${(selectedOption.value === 'BANNER') ? 'banner' : 'content-section'}/blogId/${blogId}`);\r\n } else {\r\n showAlert({ text: 'Please select type of Component you want to create', state: 'warning' });\r\n }\r\n }}\r\n onHide={hideContentSectionModal}\r\n >\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\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

{item.name}

\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 \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(BlogManagementPage);","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport TextBlock from './TextBlock';\r\n\r\nconst ContentStrip = (props) => {\r\n const {\r\n badgeBackgroundColor,\r\n badgeText,\r\n imageSource,\r\n title,\r\n leftBlockText,\r\n rightBlockText,\r\n onClick,\r\n isFullWidth\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n badgeText !== ''\r\n && (\r\n \r\n

{badgeText}

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

{leftBlockText}

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

{rightBlockText}

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nContentStrip.propTypes = {\r\n // MAIN PROPS\r\n imageSource: PropTypes.number,\r\n title: PropTypes.string,\r\n leftBlockText: PropTypes.string,\r\n rightBlockText: PropTypes.string,\r\n\r\n // BADGE PROPS\r\n badgeText: PropTypes.string,\r\n badgeBackgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: PropTypes.bool\r\n};\r\n\r\nContentStrip.defaultProps = {\r\n // MAIN PROPS\r\n imageSource: null,\r\n title: '',\r\n leftBlockText: '',\r\n rightBlockText: '',\r\n\r\n // BADGE PROPS\r\n badgeText: '',\r\n badgeBackgroundColor: 'danger--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: false\r\n};\r\n\r\nexport default ContentStrip;","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\n// ICONS\r\nimport { HiSearch } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../components/Section';\r\nimport ContentBlock from '../../../components/ContentBlock';\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport TextBlock from '../../../components/TextBlock';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport ContentStrip from '../../../components/ContentStrip';\r\n// ASSETS - BLOG\r\n\r\nconst BlogsAndReviewsListingPage = (props) => {\r\n const { cmsInfo, history } = props;\r\n const [isLoading] = useState(false);\r\n const [filteredBlogs, setFilteredBlogs] = useState(cmsInfo.pages.filter((x) => x.isBlog));\r\n\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n\r\n const search = (searchTerm) => {\r\n setFilteredBlogs(cmsInfo.pages\r\n .filter((x) => x.isBlog)\r\n .filter((x) => x.name.toLowerCase().includes(searchTerm.toLowerCase())));\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n \r\n \r\n\r\n {/* FILTERS BLOCK */}\r\n
\r\n \r\n \r\n }\r\n onChange={(e) => search(e.target.value)}\r\n />\r\n \r\n \r\n
\r\n\r\n {/* BLOGS */}\r\n \r\n {\r\n filteredBlogs.map((item) => (\r\n {\r\n history.push(item.url);\r\n }}\r\n />\r\n ))\r\n }\r\n {\r\n filteredBlogs.length === 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\nexport default BlogsAndReviewsListingPage;","export default __webpack_public_path__ + \"static/media/homepage-banner-image_default.7320cd63.png\";","export default __webpack_public_path__ + \"static/media/home-services_tax.97e8a4a7.png\";","export default __webpack_public_path__ + \"static/media/home-services_business.f47b3c15.png\";","export default __webpack_public_path__ + \"static/media/home-services_financial.0dd57a98.png\";","/* eslint-disable max-len */\r\n/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport Slider from 'react-slick';\r\nimport { Parallax } from 'react-scroll-parallax';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Banner from '../../../components/Banner';\r\n// import AnimatedLogo from '../../../components/AnimatedLogo';\r\nimport Image from '../../../components/Image';\r\nimport Button from '../../../components/Button';\r\n// import ContentStrip from '../../../components/ContentStrip';\r\n// ASSETS\r\nimport BannerImage from '../../../assets/img/homepage-banner-image_default.png';\r\nimport HomepageServiceTax from '../../../assets/img/home-services_tax.png';\r\nimport HomepageServicesBusiness from '../../../assets/img/home-services_business.png';\r\nimport HomepageServicesFinancial from '../../../assets/img/home-services_financial.png';\r\n// HELPERS\r\nimport constants from '../../../constants/constants';\r\n// SERVICES\r\n\r\nconst HomePage = (props) => {\r\n // const { dynamicPageModel, buttonAction, cmsInfo, history } = props;\r\n const { dynamicPageModel, buttonAction, history } = props;\r\n const [isLoading] = useState(false);\r\n const [banners, setBanners] = useState([]);\r\n const [offset, setOffset] = useState(0);\r\n const [progress, setProgress] = useState(0);\r\n\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n\r\n const servicesOverview = [\r\n {\r\n title: 'Tax & Compliance',\r\n illustration: HomepageServiceTax,\r\n description: 'Craft a solid tax plan with expert guidance to minimize liability and enhance savings. Strong IRS advocacy ensures your interests are protected.',\r\n },\r\n {\r\n title: 'Business Advisory',\r\n illustration: HomepageServicesBusiness,\r\n description: 'Streamline your business structure for peak performance. Accurate financial forecasting prepares you for what lies ahead.',\r\n },\r\n {\r\n title: 'Financial Planning',\r\n illustration: HomepageServicesFinancial,\r\n description: 'Protect your assets and pass on your legacy with our thoughtful estate and trust planning. Custom retirement strategies for a secure future.',\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n const rotatingBanners = dynamicPageModel.pageContentSectionBanners.find((x) => x.bannerId > 0);\r\n if (rotatingBanners) {\r\n setBanners(rotatingBanners.banner.bannerItems);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const handleScroll = () => setOffset(window.pageYOffset);\r\n\r\n window.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener('scroll', handleScroll);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const parallaxContainers = document.querySelectorAll('.parallax-container');\r\n\r\n const scrollHandler = () => {\r\n parallaxContainers.forEach((container) => {\r\n handleParallax(container);\r\n });\r\n };\r\n\r\n window.addEventListener('scroll', scrollHandler);\r\n\r\n // Clean up the event listener when the component unmounts\r\n return () => window.removeEventListener('scroll', scrollHandler);\r\n }, []);\r\n\r\n const handleParallax = (element, speed = 0.1) => {\r\n const yOffset = window.pageYOffset;\r\n const parallaxSpeed = yOffset * speed;\r\n element.style.backgroundPositionY = `calc(20% - ${parallaxSpeed}px)`;\r\n };\r\n\r\n const bannerSliderSettings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n autoplay: true,\r\n autoplaySpeed: 5000,\r\n\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n settings: { dots: false }\r\n }\r\n ]\r\n };\r\n\r\n // const navigateToLink = (link) => {\r\n // window.open(link, '_blank');\r\n // };\r\n\r\n return (\r\n <>\r\n {(isLoading) && }\r\n \r\n {/* BANNER SECTION */}\r\n \r\n \r\n {/* CUSTOM BANNER INSERT */}\r\n \r\n \r\n
\r\n {/*

Ship Smarter, Grow Faster

*/}\r\n {/*

Master Your Money

*/}\r\n

Grow Your Wealth

\r\n Stress-Free\r\n
\r\n
\r\n )}\r\n imageSource={BannerImage}\r\n description={(\r\n //

Navigate your finances with confidence.
Expert tax and wealth strategies tailored to your life.

\r\n //

Smart strategies, brighter futures.
Personal finance and tax expertise at your fingertips.

\r\n

Jayroe delivers personalized tax and financial strategies to propel your business and personal wealth forward.

\r\n )}\r\n // primaryActionText=\"Start Saving Now\"\r\n primaryActionText={(\r\n <>\r\n {/* */}\r\n {/* */}\r\n

Find Your Tax Organizer

\r\n \r\n )}\r\n primaryActionOnClick={() => {\r\n history.push('/tax-organizer-documents');\r\n }}\r\n primaryActionColor=\"secondary--sbg white--clr size-mdlg\"\r\n // secondaryActionText={banner.secondaryButtonText}\r\n // secondaryActionOnClick={() => {\r\n // buttonAction(banner.secondaryButtonActionType, banner.secondaryButtonLink);\r\n // }}\r\n offset={offset}\r\n />\r\n
\r\n {\r\n banners.map((banner) => (\r\n {\r\n buttonAction(banner.primaryButtonActionType, banner.primaryButtonLink);\r\n }}\r\n secondaryActionText={banner.secondaryButtonText}\r\n secondaryActionOnClick={() => {\r\n buttonAction(banner.secondaryButtonActionType, banner.secondaryButtonLink);\r\n }}\r\n offset={offset}\r\n />\r\n ))\r\n }\r\n \r\n
\r\n\r\n {/* WEBSITE INTRO */}\r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n

Shipment Savings, Delivered!

\r\n
\r\n
\r\n */}\r\n\r\n {/* INTRO TO ABOUT */}\r\n \r\n \r\n \r\n

A New Era of Financial Management

\r\n

At Jayroe & Company, we're more than just financial advisors; we're architects of your financial well-being.

\r\n
\r\n

Leveraging over four decades of expertise, we craft personalized strategies that adapt to your financial aspirations and the ever-evolving economic landscape. Our dedicated team ensures your financial planning is comprehensive, forward-thinking, and aligned with your life's goals.

\r\n \r\n
\r\n
\r\n\r\n {/* INTROS TO SERVICES */}\r\n \r\n {/* */}\r\n\r\n \r\n \r\n {\r\n servicesOverview.map((item) => (\r\n history.push('/transport-logics-services')}\r\n >\r\n\r\n \r\n setProgress(progressInput)}\r\n translateY={[0, -50]}\r\n easing=\"easeInQuad\"\r\n >\r\n {`${item.title}\r\n \r\n \r\n\r\n \r\n

{item.title}

\r\n

{item.description}

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

Financial Expertise Tailored for You

\r\n

straightforward financial solutions. Jayroe & Company cuts through the complexity, delivering the expert advice you need to thrive.

\r\n\r\n history.push('/jayroe-services')}\r\n />\r\n
\r\n
\r\n\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default HomePage;","/* eslint-disable import/prefer-default-export */\r\n\r\nimport axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Home/';\r\n\r\nconst getCMSInfo = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetCMSInfo`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getDynamicPage = async (dynamicPageId) => axiosInstance.get(`${ENDPOINTORIGIN}GetDynamicPage?dynamicPageId=${dynamicPageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getDynamicBlog = async (dynamicPageId) => axiosInstance.get(`${ENDPOINTORIGIN}GetDynamicBlog?dynamicPageId=${dynamicPageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst searchProduct = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}SearchProduct`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst searchProductByKeyword = async (keyword) => axiosInstance.get(`${ENDPOINTORIGIN}SearchProductByKeyword?keyword=${keyword}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getCMSInfo,\r\n getDynamicPage,\r\n getDynamicBlog,\r\n searchProduct,\r\n searchProductByKeyword\r\n};","/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n\r\n// DEPENDENCIES\r\n// import React, { useEffect, useState } from 'react';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\n// COMPONENTS\r\nimport Slider from 'react-slick';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\n// import TextBlock from '../../../components/TextBlock';\r\n// CMS COMPONENTS\r\nimport Banner from '../../../components/Banner';\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport HomePage from './HomePage';\r\n// SERVICES AND HELPERS\r\nimport * as homeService from '../../../services/cms/homeService';\r\nimport constants from '../../../constants/constants';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\n\r\nconst initialDynamicPageModel = {\r\n bannerColor: '#ffffff',\r\n bannerImageFilePath: '',\r\n description: null,\r\n id: 0,\r\n isBannerVisible: false,\r\n keywords: '',\r\n name: '',\r\n pageContentSectionBanners: [],\r\n title: null,\r\n url: '',\r\n};\r\n\r\nconst DynamicCMSPage = (props) => {\r\n const { dynamicPageId, history, location, isBlog } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [dynamicPageModel, setDynamicPageModel] = useState(initialDynamicPageModel);\r\n\r\n useEffect(() => {\r\n if (isBlog) {\r\n getDynamicBlogContent();\r\n } else {\r\n getDynamicPageContent();\r\n }\r\n }, [location]);\r\n\r\n const getDynamicPageContent = () => {\r\n setIsLoading(true);\r\n homeService.getDynamicPage(dynamicPageId).then((res) => {\r\n setDynamicPageModel(res);\r\n }).catch().finally(() => setIsLoading(false));\r\n };\r\n\r\n const getDynamicBlogContent = () => {\r\n setIsLoading(true);\r\n homeService.getDynamicBlog(dynamicPageId).then((res) => {\r\n setDynamicPageModel(res);\r\n }).catch().finally(() => setIsLoading(false));\r\n };\r\n\r\n const buttonAction = (actionType, link) => {\r\n switch (actionType) {\r\n case constants.CONTENT_SECTION.ButtonActionTypeLink:\r\n window.open(link, '_blank');\r\n break;\r\n case constants.CONTENT_SECTION.ButtonActionTypeEmail:\r\n window.location.href = `mailto:${link}`;\r\n break;\r\n case constants.CONTENT_SECTION.ButtonActionTypePage:\r\n history.push(link);\r\n break;\r\n case constants.CONTENT_SECTION.ButtonActionTypePhoneNumber:\r\n window.location.href = `tel:${link}`;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const generateContent = (model) => {\r\n switch (model.type) {\r\n case constants.CONTENT_SECTION.ContentSectionTypeDefault:\r\n case constants.CONTENT_SECTION.ContentSectionTypeReversed:\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidth:\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded:\r\n case constants.CONTENT_SECTION.ContentSectionTypeTextOnly:\r\n return (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n secondaryActionText={model.secondaryButtonText}\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n );\r\n case constants.CONTENT_SECTION.ContentSectionTypeCard:\r\n return (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n primaryActionColor=\"dark--clr white--bg\"\r\n secondaryActionText={model.secondaryButtonText}\r\n secondaryActionColor=\"white--clr warning--bg\"\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n );\r\n case constants.CONTENT_SECTION.ContentSectionTypeBanner:\r\n return (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n secondaryActionText={model.secondaryButtonText}\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n );\r\n case constants.CONTENT_SECTION.ContentSectionCustom:\r\n return (\r\n \r\n );\r\n case constants.CONTENT_SECTION.ContentSectionDynamicBanner:\r\n if (dynamicPageModel.url === '/home') {\r\n return '';\r\n }\r\n return (\r\n \r\n {\r\n model.bannerItems.map((item) => (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n secondaryActionText={item.secondaryButtonText}\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n ))\r\n }\r\n \r\n );\r\n default:\r\n return

Loading...

;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {dynamicPageModel.title || dynamicPageModel.name}\r\n \r\n \r\n \r\n {isLoading && }\r\n \r\n \r\n {/* PAGE SPECIFICS */}\r\n {\r\n dynamicPageModel.url === '/home' && (\r\n \r\n )\r\n }\r\n {\r\n dynamicPageModel.isBannerVisible && !(dynamicPageModel.addedBy && dynamicPageModel.addedOn)\r\n && (\r\n \r\n )\r\n }\r\n \r\n {\r\n dynamicPageModel.pageContentSectionBanners\r\n ? (\r\n dynamicPageModel.pageContentSectionBanners.map((section) => (\r\n generateContent((section.bannerId) ? { ...section.banner, type: constants.CONTENT_SECTION.ContentSectionDynamicBanner } : section.contentSection)\r\n ))\r\n )\r\n : (\r\n dynamicPageModel.blogContentSectionBanners.map((section) => (\r\n generateContent((section.bannerId) ? { ...section.banner, type: constants.CONTENT_SECTION.ContentSectionDynamicBanner } : section.contentSection)\r\n ))\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DynamicCMSPage;","/* eslint-disable prefer-const */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, {\r\n useEffect,\r\n useState\r\n} from 'react';\r\nimport jwt_decode from 'jwt-decode';\r\nimport { Helmet } from 'react-helmet';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Switch,\r\n Route,\r\n Redirect,\r\n useLocation,\r\n} from 'react-router-dom';\r\nimport { enableBodyScroll } from 'body-scroll-lock';\r\n// ROUTES\r\nimport PrivateRoute from './routes/PrivateRoute';\r\nimport CMSRoute from './routes/CMSRoute';\r\n// CUSTOM COMPONENTS\r\nimport ConfirmModal from './components/ConfirmModal';\r\nimport AlertToast from './components/AlertToast';\r\n// AUTHENTICATION\r\nimport LoginPage from './pages/admin/authentication/LoginPage';\r\n// MANAGEMENT PAGES - SYSTEM\r\nimport UserListingPage from './pages/admin/management/user/UserListingPage';\r\n// PROJECT\r\n// CMS\r\n// -- MENU ITEMS\r\nimport MenuItemListingPage from './pages/cms/management/menu-item/MenuItemListingPage';\r\nimport MenuItemManagementPage from './pages/cms/management/menu-item/MenuItemManagementPage';\r\n// -- CONTENT PAGES\r\nimport PageListingPage from './pages/cms/management/page/PageListingPage';\r\nimport PageManagementPage from './pages/cms/management/page/PageManagementPage';\r\n// -- CONTENT SECTIONS\r\nimport ContentSectionListingPage from './pages/cms/management/content-section/ContentSectionListingPage';\r\nimport ContentSectionManagementPage from './pages/cms/management/content-section/ContentSectionManagementPage';\r\nimport BannerManagementPage from './pages/cms/management/content-section/BannerManagementPage';\r\n// ASSETS AND RESOURCES\r\nimport AssetsAndResourcesPage from './pages/cms/management/resources/AssetsAndResourcesPage';\r\n// FOOTER ITEMS\r\nimport FooterItemListingPage from './pages/cms/management/footer-items/FooterItemListingPage';\r\n// EVENT LISTING PAGE\r\n// CMS PAGES\r\nimport ContactPage from './pages/cms/pages/ContactPage';\r\nimport MemberListingPage from './pages/cms/pages/MemberListingPage';\r\nimport PaymentsPage from './pages/cms/pages/PaymentsPage';\r\n// BLOGS\r\nimport BlogListingPage from './pages/cms/management/blog/BlogListingPage';\r\nimport BlogManagementPage from './pages/cms/management/blog/BlogManagementPage';\r\nimport BlogsAndReviewsListingPage from './pages/cms/pages/BlogsAndReviewsListingPage';\r\nimport DynamicCMSPage from './pages/cms/pages/DynamicCMSPage';\r\nimport Overlay from './components/Overlay';\r\n// SERVICES\r\nimport * as homeService from './services/cms/homeService';\r\n// import ClientManagementPage from './pages/admin/management/client/ClientManagementPage';\r\n// import ClientListingPage from './pages/admin/management/client/ClientListingPage';\r\n\r\nconst initialCMSInfo = {\r\n appStoreLink: '',\r\n city: '',\r\n companyIconPath: '',\r\n companyLogoPath: '',\r\n companyName: '',\r\n emailAddress: '',\r\n facebookLink: '',\r\n googleMapLink: '',\r\n googlePlayStoreLink: '',\r\n instagramLink: '',\r\n linkedInLink: '',\r\n menuItems: [],\r\n pages: [],\r\n footerItems: [],\r\n phoneNumber: '',\r\n primaryWeekDayHours: '',\r\n primaryWeekEndHours: '',\r\n secondaryWeekDayHours: '',\r\n secondaryWeekEndHours: '',\r\n state: '',\r\n streetAddress1: '',\r\n streetAddress2: '',\r\n twitterLink: '',\r\n youtubeLink: '',\r\n zipCode: '',\r\n};\r\n\r\nconst Routes = (props) => {\r\n const { auth } = props;\r\n const [isAuthorized, setIsAuthorized] = useState(true);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [cmsInfo, setCmsInfo] = useState(initialCMSInfo);\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n fetchCMSInfoAndValidate();\r\n }, [auth]);\r\n\r\n const fetchCMSInfoAndValidate = async () => {\r\n setIsLoading(true);\r\n validateAccess();\r\n\r\n await homeService.getCMSInfo().then((res) => {\r\n setCmsInfo(res);\r\n }).catch().finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const validateAccess = () => {\r\n if (auth.authToken !== '') {\r\n try {\r\n let decodedToken = jwt_decode(auth.authToken);\r\n setIsAuthorized(!!decodedToken);\r\n } catch (ex) {\r\n setIsAuthorized(false);\r\n }\r\n } else {\r\n setIsAuthorized(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const body = document.querySelector('body');\r\n window.scrollTo(0, 0);\r\n enableBodyScroll(body);\r\n }, [pathname]);\r\n\r\n return (\r\n <>\r\n {\r\n cmsInfo.googleAnalyticsId && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n <>\r\n {\r\n isLoading ? \r\n : (\r\n \r\n \r\n \r\n\r\n {/* CMS PAGES */}\r\n {/* DYNAMIC CMS ROUTING */}\r\n {\r\n cmsInfo.pages.map((page) => (\r\n \r\n ))\r\n }\r\n\r\n \r\n\r\n {/* CONTACT PAGE */}\r\n \r\n\r\n {/* MEMBER LISTING PAGE */}\r\n \r\n\r\n {/* PAYMENTS PAGE */}\r\n \r\n\r\n {\r\n isAuthorized\r\n ? (\r\n <>\r\n {/* USERS */}\r\n \r\n\r\n {/* \r\n\r\n */}\r\n\r\n {/* \r\n\r\n */}\r\n {/* CMS */}\r\n\r\n {/* MENU ITEMS */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* PAGES */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* BLOGS */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* CONTENT SECTIONS */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* BANNER */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* ASSETS AND RESOURCES */}\r\n \r\n\r\n {/* FOOTER ITEMS */}\r\n \r\n\r\n {/* EVENTS */}\r\n {/* \r\n\r\n \r\n\r\n */}\r\n \r\n )\r\n : \r\n }\r\n \r\n )\r\n }\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, null)(Routes);","/* eslint-disable import/no-unresolved */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport HttpsRedirect from 'react-https-redirect';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { ParallaxProvider } from 'react-scroll-parallax';\r\nimport PayTraceModalProvider from './context/PayTraceModalProvider';\r\nimport Routes from './Routes';\r\n// CUSTOM COMPONENTS\r\n// STYLESHEETS\r\nimport 'react-table/react-table.css';\r\nimport './assets/css/main.css';\r\nimport './assets/custom/custom.css';\r\n\r\nconst App = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default App;","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({\r\n getCLS,\r\n getFID,\r\n getFCP,\r\n getLCP,\r\n getTTFB\r\n }) => {\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;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport App from './app/App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport store, { persistor } from './app/redux/store';\r\n\r\nconst { PUBLIC_URL } = process.env;\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\nreportWebVitals();"],"sourceRoot":""}