{"version":3,"sources":["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/icon.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/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/menuItemService.js","app/components/HeaderNavigation.js","app/components/InputBlock.js","app/assets/img/app-store-badge.svg","app/assets/img/google-play-badge.svg","app/components/FooterBlock.js","app/assets/img/logo.svg","app/routes/CMSRoute.js","app/components/ConfirmModal.js","app/components/AlertToast.js","app/components/FormBlock.js","app/pages/admin/authentication/_partials/ForgotPasswordBlock.js","app/helpers/validators/user/LoginValidator.js","app/helpers/helper.js","app/services/management/userService.js","app/pages/admin/authentication/LoginPage.js","app/components/ContentBlock.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/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/components/ContentSection.js","app/components/Banner.js","app/assets/img/homepage-banner-image_default.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":["CustomBlock","props","className","style","children","_jsx","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","isOpen","hasOverlay","hasShadow","headerLogo","mobileLogo","navigationItems","footerItems","closeActionOnClick","willCloseOnMaskPress","Icon","IoClose","SideSheet","ListBlock","titleColor","tooltipText","tooltipTextColor","tooltipBackgroundColor","iconLeftBadgeText","iconLeftBadgeTextColor","iconLeftBadgeBackgroundColor","iconRightText","iconRightTextColor","iconRightBackgroundColor","badgeText","badgeTextColor","badgeColor","onDoubleClick","isCollapsed","hasRoundIconRight","isTooltipVisible","setIsTooltipVisible","useState","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","_ref","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","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","axiosInstance","axios","create","baseURL","interceptors","request","use","getState","headers","Authorization","requestHandler","successHandler","err","originalConfig","url","_retry","rs","post","dispatch","_error","errorHandler","ENDPOINTORIGIN","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","useEffect","addEventListener","removeEventListener","iconAppearanceOptions","square","round","circle","handleMenuItemClick","menuItem","pageUrl","menuItemService","customLink","includes","navigateToPage","page","sendEmail","email","socialIconsRef","platform","youtubeLink","FaYoutube","twitterLink","FaTwitter","googleMapLink","height","viewBox","fill","xmlns","d","tikTokLink","fillRule","clipRule","instagramLink","RiInstagramLine","linkedInLink","FaLinkedinIn","facebookLink","FaFacebookF","FaPhoneAlt","callPhoneNumber","tel","TbMailFilled","FiMenu","socialItemsHeaderNav","socialItemsMobileNav","socialItemsDrawerNav","onKeyDown","e","preventDefault","predefinedFilter","sortBy","priceRange","categories","searchTerm","value","productTypes","featuredSections","skip","blur","autoBlur","defaultOptions","noOptionsMessage","inputValue","formatOptionLabel","option","filePath","onChange","name","FiFacebook","MdMailOutline","assignedMenuItems","submenuItem","TiArrowSortedDown","menuId","InputBlock","mask","inputRightButtonText","inputRightButtonBackgroundColor","inputRightButtonTextColor","iconLeftOnClick","iconRightOnClick","inputRightButtonOnClick","isAutoFocus","Flatpickr","autoFocus","paddingLeft","InputMask","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","Logo","hasSubmenu","destination","stores","googlePlayStoreLink","handleConfirm","handleCloseBtn","handleEnterKey","event","keyCode","padded","static","contentDescriptionClassName","info","FiThumbsUp","HiOutlineEmojiSad","BiShocked","HiOutlineLightBulb","FormBlock","onSubmit","ForgotPasswordBlock","returnActionOnClick","HiOutlineMail","Yup","shape","required","password","getInputClasses","formik","fieldname","touched","errors","convertJsonToFormData","json","form_data","FormData","Array","isArray","forEach","append","setToOptionModel","reOrderDnd","list","startIndex","endIndex","result","removed","splice","i","sortOrder","mapContentSectionName","initialModel","passwordVisible","setPasswordVisible","forgotPasswordBlockVisible","setForgotPasswordBlockVisible","loginUser","setSubmitting","userService","catch","ex","finally","useFormik","initialValues","validationSchema","LoginValidator","values","helper","getFieldProps","FiUser","FiLock","isSubmitting","isValid","submitForm","ContentBlock","cols","CheckboxBlock","labelClassName","isChecked","checked","for","max","fullName","phone","min","confirmPassword","oneOf","nullable","oldPassword","userRegisterModel","initialUpdatePasswordModel","initialEditModel","alert","registerModalVisible","setRegisterModalVisible","updatePasswordModalVisible","setUpdatePasswordRegisterModalVisible","editModalVisible","setEditModalVisible","isPasswordVisible","setIsPasswordVisible","isConfirmPasswordVisible","setIsConfirmPasswordVisible","userList","setUserList","setIsLoading","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","handleSubmit","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","input","createElement","setAttribute","click","onchange","files","reader","FileReader","onload","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","blogs","setBlogs","getBlogs","blogService","deleteBlog","intialBlogModel","blogModel","setBlogModel","BlogValidator","updateBlog","createBlog","getBlog","blog","deleteBlogContent","sortBlogContents","ContentStrip","badgeBackgroundColor","leftBlockText","rightBlockText","backgroundImage","BlogsAndReviewsListingPage","filteredBlogs","setFilteredBlogs","today","setHours","HiSearch","search","toLowerCase","addedOn","addedBy","getTime","ContentSection","descriptionColor","cardBackgroundColor","isPrimaryActionTargetBlank","isSecondaryActionTargetBlank","isReversed","isTitleUppercase","hasCardBackgroundImage","isFullWidthUnpadded","Banner","bannerBackgroundColor","titlePosition","isDynamicBanner","offset","backgroundPositionY","HomePage","dynamicPageModel","buttonAction","banners","setBanners","setOffset","progress","setProgress","rotatingBanners","pageContentSectionBanners","pageYOffset","parallaxContainers","querySelectorAll","scrollHandler","handleParallax","element","speed","yOffset","parallaxSpeed","Slider","dots","infinite","slidesToShow","slidesToScroll","arrows","autoplay","autoplaySpeed","responsive","breakpoint","settings","BannerImage","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","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","React","StrictMode","Provider","PersistGate","basename","getElementById"],"mappings":"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","file":"static/js/main.1d714dd2.chunk.js","sourcesContent":["// 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/icon.0ef2fd0c.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\n// import Logo from '../assets/img/logo.svg';\r\nimport Icon from '../assets/img/icon.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 {\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 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 \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 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};\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 = '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, { useState, useEffect } 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\n// ASSETS\r\n// SERVICES\r\nimport * as menuItemService from '../services/cms/menuItemService';\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 [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: '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) => ['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={!socialItemsDrawerNav.length > 0 && (\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 {/* MEMBERS MODAL BLOCK */}\r\n {/* Member Resources

}\r\n primaryModalActionText=\"\"\r\n primaryModalActionOnClick=\"\"\r\n primaryModalActionColor=\"\"\r\n secondaryModalActionText=\"\"\r\n secondaryModalActionOnClick=\"\"\r\n secondaryModalActionColor=\"\"\r\n onHide={() => {\r\n setIsMembersModalOpen(false);\r\n }}\r\n >\r\n
\r\n \r\n \r\n {\r\n navigateToPage('/membership-benefits');\r\n setIsMembersModalOpen(false);\r\n }}\r\n // className=\"primary--sbg\"\r\n size=\"sm\"\r\n text=\"View Benefits\"\r\n />\r\n \r\n \r\n \r\n \r\n
\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);","// 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\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 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 } = 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 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 )\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;","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 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\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\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 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: '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;","export default __webpack_public_path__ + \"static/media/logo.126667ab.svg\";","/* 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\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;","// 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});","/* 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\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};","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 Do Good | LSU Delta Gamma. 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);","// 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 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
\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);","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;","/* 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;","export default __webpack_public_path__ + \"static/media/homepage-banner-image_default.f9434ad5.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\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 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

Grow Your Wealth

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

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

\r\n // )}\r\n // primaryActionText={(\r\n //

Find Your Tax Organizer

\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 servicesOverview.map((item) => (\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\n// import ContactPage from './pages/cms/pages/ContactPage';\r\n// import MemberListingPage from './pages/cms/pages/MemberListingPage';\r\n// import 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 {\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 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\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":""}