{"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/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-alt.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/assets/img/logo.svg","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/management/eventService.js","app/pages/admin/management/event/EventListingPage.js","app/pages/admin/management/event/EventManagementPage.js","app/components/ContentSection.js","app/components/Banner.js","app/assets/img/banner-image_default.png","app/pages/cms/pages/EventsPage.js","app/pages/cms/pages/EventDetailPage.js","app/components/Accordion.js","app/assets/img/background-texture_circles.png","app/pages/cms/pages/AboutPage.js","app/components/MemberListing.js","app/assets/img/board-member_placeholder_dark.png","app/pages/cms/pages/BoardOfDirectorsPage.js","app/pages/cms/pages/TeamMembersPage.js","app/pages/cms/pages/EconomicDevelopmentPage.js","app/components/ContactForm.js","app/services/management/emailService.js","app/pages/cms/pages/ContactPage.js","app/assets/img/resource-image_led.png","app/assets/img/resource-image_crpc.png","app/assets/img/resource-image_lwc.png","app/pages/cms/pages/SmallBusinessResourcesPage.js","app/assets/img/resource-image_bbb.png","app/pages/cms/pages/EducationPage.js","app/pages/cms/pages/LifestyleAndCommunityPage.js","app/services/cms/blogService.js","app/pages/cms/management/blog/BlogListingPage.js","app/helpers/validators/cms/blog/BlogValidator.js","app/pages/cms/management/blog/BlogManagementPage.js","app/components/ContentStrip.js","app/pages/cms/pages/BlogsAndReviewsListingPage.js","app/assets/img/icon_economic-workforce-dev.svg","app/assets/img/icon_leadership.svg","app/assets/img/icon_membership.svg","app/assets/img/icon_relations.svg","app/assets/img/banner-image_homepage-default.png","app/assets/img/content-image_welcome-to-wbrcc.svg","app/assets/img/content-image_board-of-directors.png","app/assets/img/background-decoration_dots.svg","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","defaultProps","Button","text","size","type","to","onClick","isTextUppercase","isBadge","isLoading","isDisabled","buttonSubActions","isSubActionsVisible","iconLeft","iconRight","history","useHistory","path","push","lg","md","sm","xs","xxs","disabled","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","goBack","Overlay","isContained","overlayDarkness","hasLoader","animateShow","useSpring","opacity","from","loader","normal","dark","Drawer","isOpen","hasOverlay","hasShadow","headerLogo","mobileLogo","navigationItems","footerItems","closeActionOnClick","willCloseOnMaskPress","SideSheet","ListBlock","titleColor","tooltipText","tooltipTextColor","tooltipBackgroundColor","iconLeftBadgeText","iconLeftBadgeTextColor","iconLeftBadgeBackgroundColor","iconRightText","iconRightTextColor","iconRightBackgroundColor","badgeText","badgeTextColor","badgeColor","onDoubleClick","isCollapsed","hasRoundIconRight","useState","isTooltipVisible","setIsTooltipVisible","onMouseEnter","onMouseLeave","width","actionTypes","initialAuthState","user","firstName","lastName","username","authToken","refreshToken","isAdmin","reducer","persistReducer","storage","key","whitelist","state","action","token","payload","userDetail","decodedToken","jwt_decode","IsAdmin","actions","login","logout","connect","auth","Component","component","rest","companyIconPath","cmsInfo","isDrawerOpen","setIsDrawerOpen","navigationTitleVisible","setNavigationTitleVisible","subMenuVisible","setSubMenuVisible","sideSheetOpen","setSideSheetOpen","body","document","querySelector","iconSize","menuIconColor","iconColor","toggleDrawer","setTimeout","navigateToPath","enableBodyScroll","toggleSideSheet","disableBodyScroll","id","isVisible","websiteManagementItems","render","filter","x","map","item","index","rotateIconRight","subMenuItems","hasSubMenu","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","classNamePrefix","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","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","devTools","enhancers","reduxBatch","persistor","persistStore","isEnabled","config","property","hasOwnProperty","requestHandler","request","a","getState","headers","Authorization","errorHandler","err","originalConfig","url","response","status","_retry","axiosInstance","post","rs","data","dispatch","Error","message","defaultErrorHandler","Promise","resolve","then","res","Message","localStorage","removeItem","location","origin","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","axios","create","baseURL","interceptors","use","successHandler","ENDPOINTORIGIN","getAllMenuItems","isActive","get","getMenuItemsById","menuItemId","getMenuItemsWithNoParentOrChild","createMenuItem","menuItem","deleteMenuItem","delete","updateMenuItems","put","removeParentMenuItem","assignParentMenuItem","sortMenuItems","sortChildMenuItems","HeaderNavigation","phoneNumber","emailAddress","menuItemsBlockBackgroundColor","menuItemColor","mobileMenuItemColor","menuToggleIconColor","menuToggleIconSize","submenuBlockBackgroundColor","submenuItemColor","logo","fixedNavigationBarBackgroundColor","logoAlt","icon","iconAppearance","socialIconColor","socialIconBackgroundColor","primarySocialMediaLink","secondarySocialMediaLink","hasSearchBlock","menuItems","hasChipFilter","expandedMenuId","setExpandedMenuId","scroll","setScroll","SVGHeaderBackground","fillColor","height","viewBox","fill","xmlns","preserveAspectRatio","d","SocialIconButton","socialIconButtonProps","displayIf","buttonColor","buttonText","socialIcon","onClickAction","background","onScroll","scrollCheck","scrollY","useEffect","addEventListener","removeEventListener","iconAppearanceOptions","square","round","circle","handleMenuItemClick","pageUrl","customLink","includes","navigateToPage","page","sendEmail","email","socialIconsRef","platform","youtubeLink","twitterLink","googleMapLink","tikTokLink","fillRule","clipRule","instagramLink","linkedInLink","facebookLink","tel","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","assignedMenuItems","length","submenuItem","menuId","InputBlock","mask","inputRightButtonText","inputRightButtonBackgroundColor","inputRightButtonTextColor","iconLeftOnClick","iconRightOnClick","inputRightButtonOnClick","isAutoFocus","autoFocus","paddingLeft","FooterBlock","imageSource","subheaderColor","bottomFooterBackgroundColor","subheaderClassName","companyName","copyrightTextColor","footerHeaderTextColor","appStoreLink","googlePlayLink","hasEmailSignUp","tiktokLink","hasSocialMediaIconColor","hasContactBlock","navigateToLink","socialItemsFooter","AppStoreBadge","GooglePlayBadge","Date","getFullYear","CMSRoute","cmsRouteProps","dynamicPageId","isBlog","companyLogoPath","isSubmenuFullWidth","LogoAlt","hasSubmenu","destination","stores","googlePlayStoreLink","handleCloseBtn","padded","static","contentDescriptionClassName","info","FormBlock","onSubmit","ForgotPasswordBlock","returnActionOnClick","Yup","shape","required","password","getInputClasses","formik","fieldname","touched","errors","convertJsonToFormData","json","form_data","FormData","Array","isArray","forEach","append","setToOptionModel","reOrderDnd","list","startIndex","endIndex","result","splice","removed","i","sortOrder","mapContentSectionName","register","getUserById","userId","getAllUsers","updateUser","changeUserPassword","newPassword","oldPassword","initialModel","passwordVisible","setPasswordVisible","forgotPasswordBlockVisible","setForgotPasswordBlockVisible","useFormik","initialValues","validationSchema","LoginValidator","values","setSubmitting","userService","catch","ex","finally","loginUser","helper","getFieldProps","isSubmitting","isValid","submitForm","Logo","ContentBlock","cols","CheckboxBlock","labelClassName","isChecked","checked","for","max","fullName","phone","min","confirmPassword","oneOf","nullable","userRegisterModel","initialUpdatePasswordModel","initialEditModel","alert","registerModalVisible","setRegisterModalVisible","updatePasswordModalVisible","setUpdatePasswordRegisterModalVisible","editModalVisible","setEditModalVisible","isPasswordVisible","setIsPasswordVisible","isConfirmPasswordVisible","setIsConfirmPasswordVisible","userList","setUserList","setIsLoading","updatePasswordModel","setUpdatePasswordModel","editUserModel","setEditUserModel","regiser_user_formik","RegisterUserValidator","registerUser","update_password_user_formik","UpdatePasswordValidator","enableReinitialize","updateUserPassword","edit_user_formik","EditUserValidator","editUser","closeRegisterModal","resetForm","closeEditModal","columnOptions","sort","print","download","columns","options","customBodyRenderLite","dataIndex","selectableRows","jumpToPage","textLabels","pagination","isSortModalOpen","setIsSortModalOpen","setMenuItems","sortList","setSortList","getMenuItems","b","menuItemService","onDragEnd","tempArr","droppableId","droppableProvided","ref","innerRef","draggableId","draggableProvided","draggableProps","dragHandleProps","FixedActionsBar","primaryActionText","primaryActionColor","primaryActionTo","isPrimaryActionDisabled","primaryActionOnClick","secondaryActionText","secondaryActionColor","secondaryActionTo","isSecondaryActionDisabled","secondaryActionOnClick","optionalActionText","optionalActionColor","optionalActionTo","optionalActionOnClick","getAllPages","getPageById","pageId","createPage","updatePage","deletePage","assignContentSectionToPage","contentSectionId","unassignContentSection","contentSectionBannerId","sortPageContentSections","sortOrders","deleteBannerImage","parentMenuItemId","intialMenuItemModel","confirmModalRedux","useParams","menuItemModel","setMenuItemModel","parentMenuItem","selectedOptions","setSelectedOptions","pageOptions","setPageOptions","menuItemOptions","setMenuItemOptions","isModalVisible","setIsModalVisible","assignmentMenuItemOptions","setAssignmentMenuItemOptions","selectedAssignmentMenuItem","setSelectedAssignmentMenuItem","loadOptionsAndPopulateForm","MenuItemValidator","updateMenuItem","getPageOptions","pages","getMenuItemOptions","getMenuItem","getMenuItemForAssignments","selectedOptionsFromApi","selectedPage","find","selectedMenuItem","pageService","pageList","assignmentlist","Number","menuItemList","isClearable","selectedOpt","setFieldValue","parentId","childMenuItemIds","closeMenuOnSelect","setPages","getPages","TextAreaBlock","registerPlugin","FilePondPluginImageExifOrientation","FilePondPluginImagePreview","FileUploadBlock","forwardRef","labelIdle","getAllContentSections","getContentSectionById","createContentSection","contentSection","updateContentSection","deleteContentSection","getContentSectionOptions","getContentSectionOptionsForBlog","blogId","isBannerVisible","bannerImageFilePath","bannerColor","keywords","description","intialPageModel","bannerImage","contentSections","typeSelectionOptions","file","setFile","selectedOption","setSelectedOption","contentBannerTypeOption","setContentBannerTypeOption","selectedContentBannerTypeOption","setSelectedContentBannerTypeOption","pageModel","setPageModel","getOptions","PageValidator","getPage","contentSectionService","hideContentSectionModal","bannerId","onupdatefiles","onChangeComplete","c","hex","handleSubmit","getBannerById","createBanner","banner","updateBanner","deleteBanner","setContentSections","isConfirmDeleteModalVisible","setIsConfirmDeleteModalVisible","getContentSections","bannerService","SelectablePreview","isSelected","when","is","otherwise","rawHTML","alignment","imagePath","isFloatingCard","hasRoundedCorners","isTextOnly","primaryButtonActionType","primaryButtonLink","secondaryButtonActionType","secondaryButtonLink","Quill","ImageResize","initialContentSectionModel","image","primarButtonLink","modules","toolbar","header","font","indent","clipboard","matchVisual","imageResize","parchment","import","format","linkTypes","alignmentOptions","components","CustomSectionImage","ContentSectionDefaultImage","ContentSectionReversedImage","ContentSectionFulWidthImage","ContentSectionFulWidthPaddedImage","ContentSectionTextOnlyImage","ContentSectionFloatingCardImage","DynamicBannerSectionImage","contentSectionModel","setContentSectionModel","setAlignment","primaryActionType","setPrimaryActionType","secondaryActionType","setSecondaryActionType","getContentSection","ContentSectionValidator","fillSelectedOptions","selectedAlignment","selectedPrimaryActionType","selectedSecondaryActionType","floatingCardProp","isTextOnlyProp","isPaddedProp","alignmentProp","showOrHideFields","opt","onMenuOpen","setFieldTouched","theme","val","formats","createBannerItem","bannerItem","updateBannerItem","deleteBannerItem","bannerItemId","sortBannerItems","bannerItems","initialBannerModel","BannerDynamicBanner","filePondRef","useRef","initialBannerItemModel","bannerModel","setBannerModel","bannerItemModel","setBannerItemModel","getBanner","BannerValidator","formik_bannerItem","BannerItemValidator","bannerItemService","resetBannerItemForm","resetBannerItemEditFormFields","current","removeFiles","getAsset","updateAsset","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","getAllFooterItems","getFooterItemById","footerItemId","createFooterItem","footerItem","updateFooterItem","deleteFooterItem","sortFooterItems","initialFooterItemModel","setFooterItems","footerItemModel","setFooterItemModel","getFooterItems","FooterItemValidator","footerItemService","closeFooterItemModal","getAllEvents","getEventById","eventId","createEvent","updateEvent","deleteEvent","sortEvents","authRedux","events","setEvents","eventService","start","moment","end","duration","diff","asDays","initialEventModel","addressTitle","addressLine1","addressLine2","zipcode","toISOString","slice","schedule","mapUrl","imageUrl","event","setEvent","fetchEvent","selectedPrimary","selectedSecondary","TextField","defaultValue","InputProps","disableUnderline","fontWeight","ContentSection","descriptionColor","cardBackgroundColor","isPrimaryActionTargetBlank","isSecondaryActionTargetBlank","isReversed","isTitleUppercase","hasCardBackgroundImage","isFullWidthUnpadded","backgroundImage","Banner","bannerBackgroundColor","titlePosition","isDynamicBanner","offset","backgroundPositionY","EventsPage","upcomingEvents","setUpcomingEvents","pastEvents","setPastEvents","selectedEventOption","setSelectedEventOption","currentDate","fetchEvents","eventType","activeEvents","now","sortedEvents","unix","upcoming","isAfter","past","isSameOrBefore","BannerImage","handleSelectedEventOption","isSearchable","EventDetailPage","classList","contains","getComputedStyle","getPropertyValue","replace","handleImageClick","Accordion","backgroundTexture","isInitiallyExpanded","initialOpenItems","reduce","acc","openItems","setOpenItems","Card","bgColor","bgBlend","blend","backgroundSize","backgroundPosition","backgroundRepeat","backgroundBlendMode","borderColor","Collapse","in","contentList","li","StatementBlock","flex","AboutPage","BackgroundTexture","MemberListing","members","defaultImage","renderCustomContent","member","onError","company","companyLink","memberType","bioLink","BoardOfDirectorsPage","executiveCommitteeMembers","setExecutiveCommitteeMembers","boardMembers","setBoardMembers","getMembers","executiveMembers","boardMembersData","DefaultMemberImageDark","TeamMembersPage","teamMembers","setTeamMembers","getTeamMembers","EconomicDevelopmentPage","ContactForm","formConfig","prev","curr","validator","field","textarea","undefined","emailService","zIndex","transform","top","fillOpacity","AddressBlock","physicalAddress","mailingAddress","subheader","physicalSubheader","physicalLine1","line1","physicalLine2","line2","fax","mailingLine1","mailingLine2","mailingSubheader","SmallBusinessResources","accordionData","ResourceImageLWC","ResourceImageCRPC","ResourceImageLED","EducationPage","LifestyleAndCommunityPage","getAllBlogs","getBlogById","createBlog","blog","updateBlog","deleteBlog","assignContentSectionToBlog","sortBlogContentSections","blogs","setBlogs","getBlogs","blogService","intialBlogModel","blogModel","setBlogModel","BlogValidator","getBlog","ContentStrip","badgeBackgroundColor","leftBlockText","rightBlockText","BlogsAndReviewsListingPage","filteredBlogs","setFilteredBlogs","today","setHours","toLowerCase","addedOn","addedBy","getTime","HomePage","dynamicPageModel","buttonAction","banners","setBanners","setOffset","featuredLinks","DevelopmentIcon","class","LeadershipIcon","MembershipIcon","RelationsIcon","rotatingBanners","pageContentSectionBanners","handleScroll","pageYOffset","dots","infinite","speed","slidesToShow","slidesToScroll","arrows","autoplay","autoplaySpeed","responsive","breakpoint","settings","lineHeight","BackgroundPatternCircles","WelcomeToWBRCC","getCMSInfo","getDynamicPage","getDynamicBlog","initialDynamicPageModel","DynamicCMSPage","setDynamicPageModel","getDynamicBlogContent","getDynamicPageContent","homeService","actionType","generateContent","dangerouslySetInnerHTML","__html","Helmet","content","section","blogContentSectionBanners","initialCMSInfo","isAuthorized","setIsAuthorized","setCmsInfo","pathname","useLocation","fetchCMSInfoAndValidate","validateAccess","scrollTo","async","exact","LoginPage","ContactPage","SmallBusinessResourcesPage","UserListingPage","MenuItemListingPage","MenuItemManagementPage","PageListingPage","PageManagementPage","BlogListingPage","BlogManagementPage","ContentSectionListingPage","ContentSectionManagementPage","BannerManagementPage","AssetsAndResourcesPage","FooterItemListingPage","EventListingPage","EventManagementPage","App","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","basename","getElementById"],"mappings":"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","file":"static/js/main.7037c0a6.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;","// 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\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\n// import { BiPencil } from 'react-icons/bi';\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, BsCalendarEvent } 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// import Logo from '../assets/img/logo.svg';\r\n// import Icon from '../assets/img/icon.svg';\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: 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};\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 [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 if (menuItem.customLink.includes('http')) {\r\n openInNewTab(menuItem.customLink);\r\n return;\r\n }\r\n history.push(menuItem.customLink);\r\n } else {\r\n history.push(menuItem.pageUrl);\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'),\r\n },\r\n // {\r\n // platform: 'memberPortal',\r\n // displayIf: true,\r\n // buttonText: 'Members',\r\n // socialIcon: ,\r\n // onClickAction: () => setIsMembersModalOpen(true),\r\n // className: 'member-portal',\r\n // },\r\n {\r\n platform: 'mobileMenuToggle',\r\n displayIf: true,\r\n socialIcon: ,\r\n onClickAction: () => toggleDrawer(),\r\n className: 'mobile-menu-toggle',\r\n },\r\n ];\r\n\r\n const socialItemsHeaderNav = socialIconsRef.filter((item) => !['phone', 'email'].includes(item.platform));\r\n // const socialItemsHeaderNav = socialIconsRef.filter((item) => ['contactUs', 'googleMap', 'facebook', 'linkedin'].includes(item.platform));\r\n const socialItemsMobileNav = socialIconsRef.filter((item) => ['mobileMenuToggle'].includes(item.platform));\r\n\r\n const socialItemsDrawerNav = socialIconsRef.filter((item) => ['contactUs', 'googleMap', 'facebook', 'instagram'].includes(item.platform));\r\n\r\n return (\r\n <>\r\n {/* MOBILE NAVIGATION */}\r\n \r\n \r\n {/* MOBILE NAVIGATION - LOGO BLOCK */}\r\n \r\n \r\n \r\n\r\n {/* MOBILE NAVIGATION - ICONS */}\r\n \r\n {socialItemsMobileNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n {/* HEADER NAVIGATION */}\r\n \r\n \r\n\r\n {/* HEADER NAVIGATION - PRIMARY */}\r\n \r\n {\r\n hasSearchBlock\r\n && (\r\n \r\n {/* LOGO */}\r\n \r\n \r\n \r\n\r\n {/* SEARCH */}\r\n {\r\n \r\n {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n\r\n history.push('/deals', {\r\n predefinedFilter: {\r\n sortBy: '',\r\n priceRange: '',\r\n categories: null,\r\n searchTerm: e.target.value,\r\n productTypes: '',\r\n featuredSections: null,\r\n skip: 0\r\n }\r\n });\r\n\r\n e.target.blur();\r\n }\r\n }}\r\n autoBlur\r\n backgroundColor=\"white--sbg\"\r\n value={[]}\r\n defaultOptions={[]}\r\n // loadOptions={loadSuggestions}\r\n noOptionsMessage={(e) => {\r\n return (e.inputValue !== '') ? 'No Results Available' : 'Start typing and press enter to search';\r\n }}\r\n formatOptionLabel={(option) => (\r\n \r\n \r\n \r\n \r\n

{option.label}

\r\n
\r\n )}\r\n onChange={(e) => {\r\n history.push(`/deal/details/${e.value}`);\r\n }}\r\n />\r\n {\r\n hasChipFilter\r\n && (\r\n \r\n \r\n {\r\n popularSelections.map((item) => (\r\n {\r\n\r\n }}\r\n />\r\n ))\r\n }\r\n \r\n \r\n )\r\n }\r\n
\r\n }\r\n\r\n {/* ICONS BLOCK */}\r\n \r\n {\r\n primarySocialMediaLink !== null\r\n && (\r\n openInNewTab(primarySocialMediaLink)}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n phoneNumber !== null\r\n && (\r\n openInNewTab(secondarySocialMediaLink)}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n emailAddress !== null\r\n && (\r\n {\r\n sendEmail(emailAddress);\r\n }}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n openInNewTab(`${auth.authToken ? '/cms/management/pages' : '/login'}`);\r\n }}\r\n />\r\n \r\n
\r\n )\r\n }\r\n\r\n {\r\n !hasSearchBlock\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {/* MENU ITEMS */}\r\n \r\n\r\n
    \r\n {/*
  • \r\n \r\n
  • */}\r\n {\r\n menuItems.map((menuItem) => (\r\n menuItem.assignedMenuItems.length > 0\r\n ? (\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n />\r\n \r\n
      \r\n {\r\n menuItem.assignedMenuItems.map((submenuItem) => (\r\n
    • \r\n {\r\n handleMenuItemClick(submenuItem);\r\n }}\r\n className={`menu-item ${submenuItemColor || menuItemColor}`}\r\n />\r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
  • \r\n ) : (\r\n\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n className={`menu-item hover-animation--underline ${menuItemColor}`}\r\n />\r\n
  • \r\n )\r\n ))\r\n }\r\n
\r\n\r\n
\r\n\r\n {/* HEADER NAVIGATION - SECONDARY */}\r\n \r\n \r\n {socialItemsHeaderNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n\r\n {/* DRAWER NAVIGATION */}\r\n {\r\n toggleDrawer();\r\n }}\r\n className=\"drawer-navigation\"\r\n headerItems={(\r\n \r\n \r\n \r\n )}\r\n footerItems={(\r\n \r\n {socialItemsDrawerNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n )}\r\n >\r\n {/* DRAWER NAVIGATION - NAVIGATION BLOCK */}\r\n
    \r\n
  • \r\n {\r\n navigateToPage('/');\r\n }}\r\n />\r\n
  • \r\n {\r\n menuItems.map((menuItem) => (\r\n menuItem.assignedMenuItems.length > 0\r\n ? (\r\n
  • \r\n }\r\n onClick={() => {\r\n toggleMobileSubmenu(menuItem.id);\r\n }}\r\n />\r\n \r\n
      \r\n {\r\n menuItem.assignedMenuItems.map((submenuItem) => (\r\n
    • \r\n {\r\n // handleMenuItemClick(submenuItem);\r\n // }}\r\n onClick={async () => {\r\n handleMenuItemClick(submenuItem);\r\n }}\r\n />\r\n {/* {submenuItem.name} */}\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'),\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-alt.b2377e2d.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 LogoAlt from '../assets/img/logo-alt.svg';\r\n// import Icon from '../assets/img/icon.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\nexport default CMSRoute;","/* eslint-disable import/extensions */\r\n/* eslint-disable no-shadow */\r\n// DEPENDENCIES\r\nimport React 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 handleCloseBtn = () => {\r\n hideConfirmModal();\r\n if (confirmModal.closeBtnAction) { confirmModal.closeBtnAction(); }\r\n };\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 />\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;","export default __webpack_public_path__ + \"static/media/logo.bbfec434.svg\";","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 West Baton Rouge Chamber of Commerce. 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 {/* 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, { useState, useEffect } 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 modules = {\r\n toolbar: [\r\n [{ header: '1' }, { header: '2' }, { font: [] }],\r\n [{ size: [] }],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [\r\n { list: 'ordered' },\r\n { list: 'bullet' },\r\n { indent: '-1' },\r\n { indent: '+1' }\r\n ],\r\n ['link', 'image', 'video'],\r\n ['clean']\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\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];\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 [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\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 = 'Event/';\r\n\r\nconst getAllEvents = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAllEvents`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getEventById = async (eventId) => axiosInstance.get(`${ENDPOINTORIGIN}GetEventById?eventId=${eventId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createEvent = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}CreateEvent`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateEvent = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateEvent`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteEvent = async (eventId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteEvent?eventId=${eventId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortEvents = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}SortEvents`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllEvents,\r\n getEventById,\r\n createEvent,\r\n updateEvent,\r\n deleteEvent,\r\n sortEvents\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\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 { MdOutlineEvent } from 'react-icons/md';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\nimport OverLay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\n// HELPERS AND SERVICES\r\nimport * as eventService from '../../../../services/management/eventService';\r\nimport * as helper from '../../../../helpers/helper';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as authRedux from '../../../../redux/authRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst EventListingPage = (props) => {\r\n const {\r\n history,\r\n showAlert,\r\n auth,\r\n showConfirmModal,\r\n hideConfirmModal\r\n } = props;\r\n const [events, setEvents] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [sortList, setSortList] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getAllEvents();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSortList(events.sort((a, b) => a - b));\r\n }, [events]);\r\n\r\n const getAllEvents = () => {\r\n setIsLoading(true);\r\n eventService.getAllEvents().then((res) => {\r\n setEvents(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 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 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/event/${events[dataIndex].id}`);\r\n }}\r\n />\r\n\r\n {\r\n auth.isAdmin\r\n && (\r\n {\r\n showConfirmModal({\r\n title: 'Remove Event',\r\n text: 'Are you sure you want to remove this event?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteEvent(events[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'title',\r\n label: 'Event',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'start',\r\n label: 'Date',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => {\r\n const { start } = events[dataIndex];\r\n\r\n return (\r\n

{moment(start).format('MMMM Do, yyyy')}

\r\n );\r\n }\r\n },\r\n },\r\n {\r\n name: 'end',\r\n label: 'Expiration',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => {\r\n const { end } = events[dataIndex];\r\n const daysLeft = moment.duration(moment(end).diff(moment())).asDays();\r\n\r\n return daysLeft > 0 ?

Upcoming

:

Past

;\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 const { isActive } = events[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 const deleteEvent = (eventId) => {\r\n setIsLoading(true);\r\n\r\n eventService.deleteEvent(eventId).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getAllEvents();\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 sortEvents = () => {\r\n setIsLoading(true);\r\n\r\n eventService.sortEvents(sortList).then((res) => {\r\n getAllEvents();\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 }\r\n primaryButtonOnClick={() => {\r\n history.push('/cms/management/create-event');\r\n }}\r\n secondaryButtonText=\"Sort Sections\"\r\n secondaryButtonOnClick={() => {\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 {/* 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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...authRedux.actions,\r\n ...alert.actions,\r\n ...confirmModal.actions\r\n }\r\n)(EventListingPage);","/* 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/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport { TextField } from '@material-ui/core';\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\n// HELPERS AND SERVICES\r\nimport constants from '../../../../constants/constants';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as eventService from '../../../../services/management/eventService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as auth from '../../../../redux/authRedux';\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 initialEventModel = {\r\n id: 0,\r\n isActive: true,\r\n title: '',\r\n description: '',\r\n addressTitle: '',\r\n addressLine1: '',\r\n addressLine2: '',\r\n city: '',\r\n state: '',\r\n zipcode: '',\r\n start: new Date().toISOString().slice(0, -8),\r\n end: new Date().toISOString().slice(0, -8),\r\n schedule: '',\r\n mapUrl: '',\r\n imageUrl: '',\r\n primaryButtonText: '',\r\n primaryButtonActionType: '',\r\n primaryButtonLink: '',\r\n secondaryButtonText: '',\r\n secondaryButtonActionType: '',\r\n secondaryButtonLink: '',\r\n sortOrder: 0,\r\n};\r\n\r\nconst EventManagementPage = (props) => {\r\n const { history, showAlert } = props;\r\n const { eventId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [event, setEvent] = useState(initialEventModel);\r\n const [file, setFile] = useState([]);\r\n const [primaryActionType, setPrimaryActionType] = useState(null);\r\n const [secondaryActionType, setSecondaryActionType] = useState(null);\r\n\r\n useEffect(() => {\r\n if (eventId) {\r\n fetchEvent();\r\n }\r\n }, []);\r\n\r\n const fetchEvent = () => {\r\n setIsLoading(true);\r\n eventService.getEventById(eventId).then((res) => {\r\n setEvent(res);\r\n if (res.primaryButtonActionType) {\r\n const selectedPrimary = linkTypes.find((x) => x.value === res.primaryButtonActionType);\r\n if (selectedPrimary) {\r\n setPrimaryActionType(selectedPrimary);\r\n }\r\n }\r\n\r\n if (res.secondaryButtonActionType) {\r\n const selectedSecondary = linkTypes.find((x) => x.value === res.secondaryButtonActionType);\r\n if (selectedSecondary) {\r\n setSecondaryActionType(selectedSecondary);\r\n }\r\n }\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 formik = useFormik({\r\n initialValues: event,\r\n validationSchema: Yup.object().shape({\r\n id: Yup.number(),\r\n isActive: Yup.bool(),\r\n title: Yup.string().required('Event Title is required').max(250),\r\n description: Yup.string().nullable().max(2000),\r\n addressTitle: Yup.string().nullable().max(250),\r\n addressLine1: Yup.string().required('Street Address is required').max(250),\r\n addressLine2: Yup.string().nullable().max(250),\r\n city: Yup.string().required('City is required').max(250),\r\n state: Yup.string().required('State is required').max(250),\r\n zipcode: Yup.string().required('Zipcode is required').max(250),\r\n start: Yup.string().required('Event Start Date is required'),\r\n end: Yup.string().nullable(),\r\n schedule: Yup.string().nullable().max(2000),\r\n mapUrl: Yup.string().nullable().max(2000),\r\n imageUrl: Yup.string().max(2000),\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 }),\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (eventId) {\r\n updateEvent(values);\r\n } else {\r\n createEvent(values);\r\n }\r\n },\r\n });\r\n\r\n const updateEvent = (model) => {\r\n setIsLoading(true);\r\n if (file.length > 0) {\r\n model = { ...model, image: file[0].file };\r\n }\r\n eventService.updateEvent(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const createEvent = (model) => {\r\n if (file.length === 0) {\r\n showAlert({ text: 'Please upload an image for the event', state: 'warning' });\r\n return;\r\n }\r\n setIsLoading(true);\r\n\r\n eventService.createEvent(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 history.push(`/cms/management/event/${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 return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \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 \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 \r\n\r\n \r\n \r\n \r\n\r\n {/* SCHEDULE */}\r\n \r\n \r\n \r\n\r\n \r\n Start Date & Time\r\n \r\n \r\n\r\n \r\n End Date & Time\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* EVENT MAP & IMAGE */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n !eventId\r\n ? (\r\n \r\n \r\n \r\n )\r\n : (\r\n <>\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 \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 {/* PAGE ACTIONS */}\r\n 0 ? 'Save Changes' : 'Create Event'}\r\n primaryActionColor=\"primary--bg\"\r\n primaryActionOnClick={formik.handleSubmit}\r\n secondaryActionText=\"Cancel\"\r\n secondaryActionTo=\"/cms/management/events\"\r\n optionalActionText={eventId > 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/cms/management/events\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...auth.actions,\r\n ...alert.actions\r\n }\r\n)(EventManagementPage);","/* 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 } = 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/banner-image_default.97e206f6.png\";","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport moment from 'moment';\r\n// COMPONENTS\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport TextBlock from '../../../components/TextBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport ContentBlock from '../../../components/ContentBlock';\r\nimport SelectBlock from '../../../components/SelectBlock';\r\nimport Button from '../../../components/Button';\r\nimport TextHeader from '../../../components/TextHeader';\r\n// ASSETS - EVENTS PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\n// SERVICES\r\nimport * as eventService from '../../../services/management/eventService';\r\n\r\nconst EventsPage = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [events, setEvents] = useState([]);\r\n const [upcomingEvents, setUpcomingEvents] = useState([]);\r\n const [pastEvents, setPastEvents] = useState([]);\r\n const [selectedEventOption, setSelectedEventOption] = useState([]);\r\n\r\n const currentDate = new Date();\r\n const eventOptions = [\r\n { label: 'All Events', value: 'all' },\r\n { label: 'Upcoming Events', value: 'upcoming' },\r\n { label: 'Past Events', value: 'past' },\r\n { label: 'Webinars', value: 'webinars' },\r\n { label: 'Conferences', value: 'conferences' },\r\n { label: 'Workshops', value: 'workshops' },\r\n ];\r\n\r\n useEffect(() => {\r\n fetchEvents();\r\n }, []);\r\n\r\n useEffect(() => {\r\n switch (selectedEventOption.value) {\r\n case 'all':\r\n fetchEvents();\r\n break;\r\n case 'past':\r\n setEvents(pastEvents);\r\n break;\r\n case 'upcoming':\r\n setEvents(upcomingEvents);\r\n break;\r\n case 'webinars':\r\n setEvents(events.filter((event) => event.eventType === 'webinar'));\r\n break;\r\n case 'conferences':\r\n setEvents(events.filter((event) => event.eventType === 'conference'));\r\n break;\r\n case 'workshops':\r\n setEvents(events.filter((event) => event.eventType === 'workshop'));\r\n break;\r\n default:\r\n fetchEvents();\r\n }\r\n }, [selectedEventOption]);\r\n\r\n const fetchEvents = () => {\r\n setIsLoading(true);\r\n\r\n eventService.getAllEvents()\r\n .then((res) => {\r\n const activeEvents = res.filter((event) => event.isActive);\r\n\r\n const now = moment();\r\n const sortedEvents = activeEvents.sort((a, b) => moment(a.start).unix() - moment(b.start).unix());\r\n const upcoming = sortedEvents.filter((event) => moment(event.start).isAfter(now));\r\n const past = sortedEvents.filter((event) => moment(event.start).isSameOrBefore(now));\r\n\r\n setEvents(sortedEvents);\r\n setUpcomingEvents(upcoming);\r\n setPastEvents(past);\r\n })\r\n .catch(() => { })\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const handleSelectedEventOption = (selectedOption) => {\r\n setSelectedEventOption(selectedOption);\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 handleSelectedEventOption(selectedOption)}\r\n isSearchable={false}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n {events.map((event) => (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {event.primaryButtonLink && (\r\n {\r\n window.open(event.primaryButtonLink);\r\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 EventsPage;","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\n// import moment from 'moment';\r\n// COMPONENTS\r\n// ICONS\r\n// import { FaRegCalendarAlt, FaRegClock } from 'react-icons/fa';\r\n// import { MdOutlinePinDrop } from 'react-icons/md';\r\n// import { SiGooglemaps } from 'react-icons/si';\r\n// import { BsFillCalendarWeekFill } from 'react-icons/bs';\r\n// CUSTOM COMPONENTS\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Banner from '../../../components/Banner';\r\n// ASSETS - EVENT\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\n// SERVICES\r\nimport * as eventService from '../../../services/management/eventService';\r\n\r\nconst EventDetailPage = () => {\r\n const { eventId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [event, setEvent] = useState([]);\r\n // const iconSize = 40;\r\n\r\n useEffect(() => {\r\n fetchEvent();\r\n }, []);\r\n\r\n const fetchEvent = () => {\r\n setIsLoading(true);\r\n\r\n eventService.getEventById(eventId).then((res) => {\r\n setEvent(res);\r\n }).catch(() => {\r\n\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const handleImageClick = (e) => {\r\n if (e.target.classList.contains('content-image')) {\r\n // eslint-disable-next-line max-len\r\n const backgroundImage = window.getComputedStyle(e.target).getPropertyValue('background-image');\r\n const url = backgroundImage.slice(4, -1).replace(/\"/g, '');\r\n window.open(url, '_blank');\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n\r\n \r\n handleImageClick(e)}>\r\n\r\n {/* EVENT */}\r\n \r\n {event.description}

\r\n {event.schedule}\r\n \r\n )}\r\n imageSource={`${process.env.REACT_APP_API_URL}Attachments/${event.imageUrl}`}\r\n primaryActionText={event.primaryButtonLink ? event.primaryButtonText : ''}\r\n primaryActionOnClick={event.primaryButtonLink ? () => window.open(event.primaryButtonLink, '_blank') : ''}\r\n secondaryActionText={event.secondaryButtonLink ? event.secondaryButtonText : ''}\r\n secondaryActionOnClick={event.secondaryButtonLink ? () => window.open(event.secondaryButtonLink, '_blank') : ''}\r\n />\r\n\r\n \r\n <>\r\n \r\n {/* DATE */}\r\n {/* \r\n \r\n

\r\n {moment(event.start).format('dddd')}\r\n
\r\n {moment(event.start).format('MMMM Do, yyyy')}\r\n

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

\r\n Starts {moment(event.start).format('h:mm A')}\r\n
\r\n Ends {moment(event.end).format('h:mm A')}\r\n

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

\r\n {event.addressTitle}\r\n

\r\n

\r\n {event.addressLine1},\r\n

\r\n

{event.city}, {event.state}, {event.zipcode}

\r\n
\r\n\r\n
*/}\r\n
\r\n\r\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 EventDetailPage;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\nimport { AiOutlineMinus, AiOutlinePlus } from 'react-icons/ai';\r\n// COMPONENTS\r\nimport {\r\n Card,\r\n Collapse,\r\n Accordion as BootstrapAccordion\r\n} from 'react-bootstrap';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst Accordion = (props) => {\r\n const { className, data, backgroundTexture, isInitiallyExpanded } = props;\r\n\r\n const initialOpenItems = data.reduce((acc, item) => {\r\n acc[item.id] = isInitiallyExpanded;\r\n return acc;\r\n }, {});\r\n\r\n const [openItems, setOpenItems] = useState(initialOpenItems);\r\n\r\n const toggleItem = (id) => {\r\n setOpenItems({ ...openItems, [id]: !openItems[id] });\r\n };\r\n\r\n const toggleBGStyle = (bgColor, bgBlend) => (\r\n {\r\n backgroundImage: `url(${backgroundTexture})`,\r\n backgroundColor: `${bgColor}`,\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundBlendMode: `${bgBlend}`,\r\n borderColor: `${bgColor}`,\r\n }\r\n );\r\n\r\n return (\r\n \r\n {data.map((item) => (\r\n \r\n toggleItem(item.id)}\r\n aria-controls={`body-${item.id}`}\r\n aria-expanded={openItems[item.id]}\r\n className={`accordion__card__toggle ${openItems[item.id] ? 'expanded' : ''}`}\r\n style={\r\n backgroundTexture && openItems[item.id]\r\n ? toggleBGStyle(item.color, item.blend)\r\n : {}\r\n }\r\n >\r\n

{item.header}

\r\n \r\n {openItems[item.id] ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {item.contentList.length > 0 ? (\r\n
    \r\n {item.contentList.map((li) => (\r\n
  • {li}
  • \r\n ))}\r\n
\r\n ) : (\r\n item.contentList\r\n )}\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\n// Prop Types\r\nAccordion.propTypes = {\r\n data: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n header: PropTypes.string.isRequired,\r\n contentList: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n })\r\n ).isRequired,\r\n isInitiallyExpanded: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default Accordion;","export default __webpack_public_path__ + \"static/media/background-texture_circles.eab74521.png\";","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// ICONS\r\nimport { GoGoal, GoLightBulb } from 'react-icons/go';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Accordion from '../../../components/Accordion';\r\n// ASSETS - ABOUT PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport BackgroundTexture from '../../../assets/img/background-texture_circles.png';\r\n\r\nconst StatementBlock = ({\r\n flex,\r\n icon,\r\n header,\r\n description,\r\n className\r\n}) => (\r\n \r\n \r\n {icon}\r\n \r\n

{header}

\r\n

\r\n {description}\r\n

\r\n
\r\n);\r\n\r\nconst AboutPage = () => {\r\n const [isLoading] = useState(false);\r\n\r\n const accordionData = [\r\n {\r\n id: '0',\r\n header: 'Economic and Workforce Development',\r\n color: '#01528A',\r\n blend: 'soft-light',\r\n contentList: [\r\n 'Refine and organize additional industry-specific round tables and events to provide resources that are specific to that constituency\\'s needs.',\r\n 'Expand how we educate & inform businesses on the opportunities & challenges regarding economic growth & re-development.',\r\n 'Dedicate more resources to focus on identifying, coordinating, and promoting small business initiatives.'\r\n ]\r\n },\r\n {\r\n id: '1',\r\n header: 'Advocacy & Governmental Relations',\r\n color: '#0183BF',\r\n blend: 'soft-light',\r\n contentList: [\r\n 'Develop a plan to strategically engage and inform Local and State elected officials on WBR initiatives to position the WBR as an essential community resource.',\r\n 'Develop a plan to strategically engage & inform State elected officials on WBR initiatives to position the WBR as an essential community resource.',\r\n 'Refine WBR\\'s annual Legislative Priorities by gathering input from West Baton Rouge’s business constituents.',\r\n 'Identify & educate businesses on policies (local, state, & federal) & regulations that create barriers to business success.',\r\n 'Communicate policy and legislative agenda - marketing & communications strategy on who & how we share details.'\r\n ]\r\n },\r\n {\r\n id: '2',\r\n header: 'Membership Engagement',\r\n color: '#FFB30F',\r\n blend: 'color-burn',\r\n contentList: [\r\n 'Build Diversity, Equity and Inclusion into each area of the Chamber membership experience.',\r\n 'Update WBR Chamber\\'s business/business leader recognition/awards program(s) to highlight successful minority business owners.',\r\n 'Review, refresh and simplify existing benefits for joining and getting exposure from WBR Chamber.',\r\n 'Develop additional membership opportunities; providing access to Chamber resources to all businesses in West Baton Rouge.'\r\n ]\r\n },\r\n {\r\n id: '4',\r\n header: 'Leadership Development',\r\n color: '#F3C156',\r\n blend: 'color-burn',\r\n contentList: [\r\n 'Identify and develop a talent professional development plan for WBR to ensure leadership growth & continuity.',\r\n 'Create a structure that oversees the approach and implementation of the strategic plan objectives.',\r\n 'Enhance the existing Young Professionals Program to attract and engage more \\'Millennials\\' and \\'Generation Z\\' throughout the Parish.',\r\n 'Expand & enhance partnerships outside West Baton Rouge to encourage regional leadership development.'\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 header=\"Mission\"\r\n description=\"To be the voice of business while promoting growth, prosperity and quality of life in West Baton Rouge Parish.\"\r\n className=\"mission\"\r\n />\r\n }\r\n header=\"Vision\"\r\n description=\"The West Baton Rouge Chamber is a proactive and catalytic organization dedicated to engaging the business community and other stakeholders to foster a premier, diverse and growing Parish.\"\r\n className=\"vision\"\r\n />\r\n \r\n \r\n\r\n \r\n

Four Pillars for West Baton Rouge's Growth

\r\n

The West Baton Rouge Chamber outlines four key pillars: Economic Development, Government Relations, Membership Engagement, and Leadership. Each aims to drive community and economic growth.

\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AboutPage;","// 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 MemberListing = (props) => {\r\n const {\r\n members,\r\n defaultImage,\r\n className,\r\n containerClassName,\r\n renderCustomContent = null\r\n } = props;\r\n\r\n return (\r\n \r\n {members.map((member) => (\r\n \r\n {\r\n if (e.target.src !== defaultImage) {\r\n e.target.src = defaultImage;\r\n }\r\n }}\r\n />\r\n\r\n

{member.name}

\r\n\r\n {member.position && {member.position}}\r\n\r\n {member.email && (\r\n \r\n {member.email}\r\n \r\n )}\r\n\r\n {member.company && (\r\n member.companyLink ? (\r\n \r\n {member.company}\r\n \r\n ) : (\r\n {member.company}\r\n )\r\n )}\r\n\r\n {member.memberType === 'Team Member' && member.bioLink && (\r\n \r\n \r\n \r\n )}\r\n\r\n {renderCustomContent && renderCustomContent(member)}\r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\nMemberListing.propTypes = {\r\n members: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n position: PropTypes.string,\r\n company: PropTypes.string,\r\n companyLink: PropTypes.string,\r\n imagePath: PropTypes.string\r\n })).isRequired,\r\n defaultImage: PropTypes.string,\r\n className: PropTypes.string,\r\n renderCustomContent: PropTypes.func\r\n};\r\n\r\nMemberListing.defaultProps = {\r\n defaultImage: '',\r\n className: '',\r\n renderCustomContent: null\r\n};\r\n\r\nexport default MemberListing;","export default __webpack_public_path__ + \"static/media/board-member_placeholder_dark.52ed7430.png\";","/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport MemberListing from '../../../components/MemberListing';\r\nimport TextHeader from '../../../components/TextHeader';\r\n// ASSETS - BOARD OF DIRECTORS PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport DefaultMemberImageDark from '../../../assets/img/board-member_placeholder_dark.png';\r\n// SERVICES AND HELPERS\r\n\r\nconst BoardOfDirectorsPage = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [executiveCommitteeMembers, setExecutiveCommitteeMembers] = useState([]);\r\n const [boardMembers, setBoardMembers] = useState([]);\r\n\r\n useEffect(() => {\r\n getMembers();\r\n }, []);\r\n\r\n const getMembers = () => {\r\n setIsLoading(true);\r\n // const members = [\r\n // {\r\n // name: 'LeAnn Stelly',\r\n // // position: 'Treasurer',\r\n // company: 'Cox Communications',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_leann-stelly.png',\r\n // memberType: 'Executive Committee'\r\n // },\r\n // {\r\n // name: 'Bryan Casebonne',\r\n // // position: '',\r\n // company: 'Shintech',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_bryan-casebonne.png',\r\n // memberType: 'Executive Committee'\r\n // },\r\n // {\r\n // name: 'Ashley Coco',\r\n // // position: '',\r\n // company: 'Stewart Title Company',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_ashley-coco.png',\r\n // memberType: 'Executive Committee'\r\n // },\r\n // {\r\n // name: 'Cheri Ausberry',\r\n // // position: '',\r\n // company: 'Entergy',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_cheri-ausberry.png',\r\n // memberType: 'Executive Committee'\r\n // },\r\n // {\r\n // name: 'Arron Pierre',\r\n // // position: 'Chair Elect',\r\n // company: 'A. Wilbert Sons',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_arron-pierre.png',\r\n // memberType: 'Executive Committee'\r\n // },\r\n // {\r\n // name: 'Glynna Mayers',\r\n // // position: 'Chair',\r\n // company: 'Dow Plaquemine',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_glynna-mayers.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Rick Ward',\r\n // // position: 'Chair',\r\n // company: 'Clayton, Fruge’ & Ward Law',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_rick-ward.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Chris Reeves',\r\n // // position: 'Chair',\r\n // company: 'Edward Jones',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_chris-reeves.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Jason Hammack',\r\n // // position: 'Chair',\r\n // company: 'Court Street Café',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_jason-hammack.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Scott Roe',\r\n // // position: 'Chair',\r\n // company: 'Spillway Sportsman',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_scott-roe.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Glen Daigle',\r\n // // position: '',\r\n // company: 'B1 Bank',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_glen-daigle.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Jennifer Strong',\r\n // // position: '',\r\n // company: 'Olin',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_jennifer-strong.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Lindsey Fourroux',\r\n // // position: '',\r\n // company: 'Brians Furniture',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_lindsey-fourroux.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Toby Willis',\r\n // // position: '',\r\n // company: 'Edward Jones',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_tony-willis.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Annie Claire Bass',\r\n // // position: '',\r\n // company: 'SoSis',\r\n // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_annie-claire-bass.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Bridget Easley',\r\n // // position: '',\r\n // company: 'Easley Builders',\r\n // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_bridget-easley.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Blaine Rabalais',\r\n // // position: '',\r\n // company: 'Town of Brusly',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_blaine-rabalais.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Ben Graham',\r\n // // position: '',\r\n // company: 'Stirling Properties',\r\n // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_ben-graham.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Rawlston Phillips',\r\n // // position: '',\r\n // company: 'Sun Plus Inc',\r\n // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_rawlston-phillips.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Julie Mayeux',\r\n // // position: '',\r\n // company: 'WBR Schools',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_julie-mayeux.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Sandra Hughes',\r\n // // position: 'Chair Ex-Officio',\r\n // company: 'Lofton Staffing & Security Services',\r\n // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_sandra-hughes.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Roland Gaudet',\r\n // // position: '',\r\n // company: 'Citizens Bank',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_roland-gaudet.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Phillip Bourgoyne',\r\n // // position: '',\r\n // company: 'Parish Government Representative',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_phillip-bourgoyne.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // {\r\n // name: 'Tyler Gray',\r\n // // position: '',\r\n // company: 'Placid Refining',\r\n // // companyLink: '',\r\n // image: '/api/Attachments/BoardMembers/board-member_tyler-gray.png',\r\n // memberType: 'Board Member'\r\n // },\r\n // ];\r\n\r\n const members = [\r\n {\r\n name: 'LeAnn Stelly',\r\n company: 'Cox Communications',\r\n image: '/api/Attachments/BoardMembers/board-member_leann-stelly.png',\r\n memberType: 'Executive Committee'\r\n },\r\n {\r\n name: 'Bryan Casebonne',\r\n company: 'Shintech',\r\n image: '/api/Attachments/BoardMembers/board-member_bryan-casebonne.png',\r\n memberType: 'Executive Committee'\r\n },\r\n {\r\n name: 'Ashley Coco',\r\n company: 'Stewart Title Company',\r\n image: '/api/Attachments/BoardMembers/board-member_ashley-coco.png',\r\n memberType: 'Executive Committee'\r\n },\r\n {\r\n name: 'Cheri Ausberry',\r\n company: 'Entergy',\r\n image: '/api/Attachments/BoardMembers/board-member_cheri-ausberry.png',\r\n memberType: 'Executive Committee'\r\n },\r\n {\r\n name: 'Desiree Lemoine',\r\n company: 'A. Wilbert Sons',\r\n image: '/api/Attachments/BoardMembers/board-member_desiree-lemoine.png',\r\n memberType: 'Executive Committee'\r\n },\r\n {\r\n name: 'Jennifer Strong',\r\n company: 'Olin',\r\n image: '/api/Attachments/BoardMembers/board-member_jennifer-strong.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Toby Willis',\r\n company: 'Edward Jones',\r\n image: '/api/Attachments/BoardMembers/board-member_tony-willis.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Tammie Martin',\r\n company: 'WBR Parish Library',\r\n image: '/api/Attachments/BoardMembers/board-member_tammie-martin.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Brandy Tyson',\r\n company: 'Baton Rouge Community College',\r\n image: '/api/Attachments/BoardMembers/board-member_brandy-tyson.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Michael Huye',\r\n company: \"Wilson's Warehouse\",\r\n image: '/api/Attachments/BoardMembers/board-member_michael-huye.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Clay Elliott',\r\n company: 'Oak Capital Financial Advisors',\r\n image: '/api/Attachments/BoardMembers/board-member_clay-elliott.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Ashley Bergeron',\r\n company: 'Studio C323',\r\n image: '/api/Attachments/BoardMembers/board-member_ashley-bergeron.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Rory Denicola',\r\n company: 'ExxonMobil',\r\n image: '/api/Attachments/BoardMembers/board-member_rory-denicola.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Trenton Gordon',\r\n company: 'Trenton Gordon Photography',\r\n image: '/api/Attachments/BoardMembers/board-member_trenton-gordon.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Mary Meyer',\r\n company: 'Dow',\r\n image: '/api/Attachments/BoardMembers/board-member_mary-meyer.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Jason Manola',\r\n company: 'WBR Parish Government Representative',\r\n image: '/api/Attachments/BoardMembers/board-member_jason-manola.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Sandra Hughes',\r\n company: 'Lofton Staffing & Security Services',\r\n image: '/api/Attachments/BoardMembers/board-member_sandra-hughes.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Roland Gaudet',\r\n company: 'Citizens Bank',\r\n image: '/api/Attachments/BoardMembers/board-member_roland-gaudet.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Blaine Rabalais',\r\n company: 'Town of Brusly',\r\n image: '/api/Attachments/BoardMembers/board-member_blaine-rabalais.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Ben Graham',\r\n company: 'Stirling Properties',\r\n image: '/api/Attachments/BoardMembers/board-member_ben-graham.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Rawlston Phillips',\r\n company: 'Sun Plus Inc',\r\n image: '/api/Attachments/BoardMembers/board-member_rawlston-phillips.png',\r\n memberType: 'Board Member'\r\n },\r\n {\r\n name: 'Julie Mayeux',\r\n company: 'WBR Schools',\r\n image: '/api/Attachments/BoardMembers/board-member_julie-mayeux.png',\r\n memberType: 'Board Member'\r\n }\r\n ];\r\n\r\n const executiveMembers = members.filter((member) => member.memberType === 'Executive Committee');\r\n const boardMembersData = members.filter((member) => member.memberType === 'Board Member');\r\n\r\n setExecutiveCommitteeMembers(executiveMembers);\r\n setBoardMembers(boardMembersData);\r\n\r\n setIsLoading(false);\r\n\r\n // memberService.memberServiceMethod().then((res) => {\r\n\r\n // }).catch(() => {\r\n\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 \r\n */}\r\n\r\n \r\n\r\n {/* EXECUTIVE COMMITTEE MEMBER LISTING */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {/* BOARD MEMBER LISTING */}\r\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 BoardOfDirectorsPage;","/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport MemberListing from '../../../components/MemberListing';\r\n// ASSETS - TEAM MEMBERS PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport DefaultMemberImageDark from '../../../assets/img/board-member_placeholder_dark.png';\r\n// SERVICES AND HELPERS\r\n\r\nconst TeamMembersPage = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [teamMembers, setTeamMembers] = useState([]);\r\n\r\n useEffect(() => {\r\n getTeamMembers();\r\n }, []);\r\n\r\n const getTeamMembers = () => {\r\n setIsLoading(true);\r\n const members = [\r\n {\r\n name: 'Anna Johnson',\r\n position: 'Executive Director',\r\n email: 'anna@wbrchamber.org',\r\n image: '/api/Attachments/TeamMembers/team-member_anna-johnson.png',\r\n memberType: 'Team Member',\r\n bioLink: '/bio-anna-johnson',\r\n },\r\n {\r\n name: 'Sharon Oubre-Williams',\r\n position: 'Membership Director',\r\n email: 'sharon@wbrchamber.org',\r\n image: '/api/Attachments/TeamMembers/team-member_sharon-oubre-williams.png',\r\n memberType: 'Team Member',\r\n bioLink: '/bio-sharon-oubre-williams',\r\n },\r\n {\r\n name: 'Jennifer Whitehurst',\r\n position: 'Office Manager',\r\n email: 'jennifer@wbrchamber.org',\r\n image: '/api/Attachments/TeamMembers/team-member_jennifer-whitehurst.png',\r\n memberType: 'Team Member',\r\n bioLink: '/bio-jennifer-whitehurst',\r\n },\r\n ];\r\n\r\n setTeamMembers(members);\r\n setIsLoading(false);\r\n\r\n // memberService.memberServiceMethod().then((res) => {\r\n\r\n // }).catch(() => {\r\n\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\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamMembersPage;","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\n// ASSETS - ECONOMIC DEVELOPMENT PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\n\r\nconst EconomicDevelopmentPage = (props) => {\r\n const { history } = props;\r\n const [isLoading] = useState(false);\r\n\r\n return (\r\n \r\n {isLoading && }\r\n \r\n\r\n \r\n

Unlocking Our Community’s Potential

\r\n

Economic development describes concerted actions taken for the purpose of economic progress within a specific area. It is the process of generating and sustaining wealth in a community. Every community has unique assets that can be used to attract employers and investment. Building on our assets is one of the best ways our community can stimulate the economy.

\r\n \r\n \r\n history.push('/education')}>\r\n

Education

\r\n
\r\n

Advancing academics and fostering future leaders in West Baton Rouge.

\r\n
\r\n history.push('/resources')}>\r\n

Resources

\r\n
\r\n

Find useful tools and information to help your business succeed.

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default EconomicDevelopmentPage;","/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Section from './Section';\r\nimport ContentBlock from './ContentBlock';\r\nimport FormBlock from './FormBlock';\r\nimport ContentHeader from './ContentHeader';\r\nimport InputBlock from './InputBlock';\r\nimport Button from './Button';\r\nimport TextAreaBlock from './TextAreaBlock';\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../helpers/helper';\r\n\r\nconst ContactForm = ({ formConfig, onSubmit, title }) => {\r\n const formik = useFormik({\r\n initialValues: formConfig.reduce((prev, curr) => {\r\n prev[curr.name] = '';\r\n return prev;\r\n }, {}),\r\n validationSchema: Yup.object(\r\n formConfig.reduce((prev, curr) => {\r\n let validator = Yup.string();\r\n if (curr.required) {\r\n validator = validator.required(`${curr.label} is required`);\r\n }\r\n if (curr.max) {\r\n validator = validator.max(curr.max);\r\n }\r\n if (curr.email) {\r\n validator = validator.email();\r\n }\r\n prev[curr.name] = validator;\r\n return prev;\r\n }, {})\r\n ),\r\n onSubmit,\r\n });\r\n\r\n return (\r\n \r\n \r\n
\r\n {formConfig.map((field) => (\r\n \r\n {field.textarea ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ))}\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nContactForm.propTypes = {\r\n showAlert: PropTypes.func,\r\n onSubmit: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n formConfig: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n placeholder: PropTypes.string,\r\n required: PropTypes.bool,\r\n max: PropTypes.number,\r\n email: PropTypes.bool,\r\n textarea: PropTypes.bool,\r\n cols: PropTypes.number,\r\n })\r\n ).isRequired,\r\n};\r\n\r\nContactForm.defaultProps = {\r\n showAlert: () => { },\r\n title: 'Contact Form',\r\n};\r\n\r\nexport default ContactForm;","/* eslint-disable no-console */\r\n/* eslint-disable max-len */\r\nimport axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Email/';\r\n\r\nconst sendEmail = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}SendEmail`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sendEmailWithTemplate = () => console.log('New Feature');\r\n\r\nexport {\r\n sendEmail,\r\n sendEmailWithTemplate,\r\n};","/* eslint-disable object-curly-newline */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { connect } from 'react-redux';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport ContactForm from '../../../components/ContactForm';\r\n// import ContentSection from '../../../components/ContentSection';\r\n// ASSETS - CONTACT PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\n// import IntroSectionImage from '../../../assets/img/content-image_contact-page-intro.png';\r\n// SERVICES AND HELPERS\r\nimport * as auth from '../../../redux/authRedux';\r\nimport * as alertToast from '../../../redux/alertToastRedux';\r\nimport * as emailService from '../../../services/management/emailService';\r\n\r\nconst ContactPage = (props) => {\r\n const { showAlert, history, cmsInfo } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n // const getDirectionsLink = 'https://www.google.com/maps/place/142+Del+Norte+Ave,+Denham+Springs,+LA+70726/@30.4706975,-90.9551617,17z/data=!3m1!4b1!4m6!3m5!1s0x8626bef0ef5cd50d:0x915fc5c888dc7ba6!8m2!3d30.4706975!4d-90.9551617!16s%2Fg%2F11c28v5b_f?entry=ttu';\r\n const formConfig = [\r\n { name: 'firstName', label: 'First Name', required: true, placeholder: 'e.g. John', max: 100 },\r\n { name: 'lastName', label: 'Last Name', required: true, placeholder: 'e.g. Smith', max: 100 },\r\n { name: 'email', label: 'Email Address', required: true, placeholder: 'e.g. johnsmith@example.com', max: 100, email: true },\r\n { name: 'phoneNumber', label: 'Phone Number', placeholder: 'e.g. (555) 555-5555', max: 50 },\r\n { name: 'message', label: 'Message', required: true, placeholder: 'Provide your message here...', textarea: true, cols: 12 },\r\n ];\r\n\r\n const submitForm = async (values) => {\r\n setIsLoading(true);\r\n await emailService.sendEmail(values).then(() => {\r\n showAlert({ text: 'Success! Your message has been received.', state: 'success' });\r\n history.push('/contact');\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 {/* window.open(getDirectionsLink, '_blank')}\r\n primaryActionColor=\"primary--sbg\"\r\n /> */}\r\n\r\n \r\n

WBR Chamber of Commerce

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

Location

\r\n

Physical Address

\r\n

{cmsInfo.streetAddress1}, {cmsInfo.streetAddress2}

\r\n

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

\r\n

Mailing Address

\r\n

P.O. Box 448

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

Contact

\r\n

Email: {cmsInfo.emailAddress}

\r\n

Phone: {cmsInfo.phoneNumber}

\r\n

Fax: (225) 685-1044

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

Hours of Operation

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

Weekdays

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

{cmsInfo.primaryWeekDayHours}

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

{cmsInfo.secondaryWeekDayHours}

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

Weekends

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

{cmsInfo.primaryWeekEndHours}

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

{cmsInfo.secondaryWeekEndHours}

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

Questions? We Have Answers

}\r\n className=\"mb-20\"\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alertToast.actions\r\n})(ContactPage);","export default __webpack_public_path__ + \"static/media/resource-image_led.8ebd3b88.png\";","export default __webpack_public_path__ + \"static/media/resource-image_crpc.3db948b2.png\";","export default __webpack_public_path__ + \"static/media/resource-image_lwc.74e74686.png\";","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Accordion from '../../../components/Accordion';\r\nimport Button from '../../../components/Button';\r\n// ASSETS - SMALL BUSINESS RESOURCES PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport BackgroundTexture from '../../../assets/img/background-texture_circles.png';\r\nimport ResourceImageLED from '../../../assets/img/resource-image_led.png';\r\nimport ResourceImageCRPC from '../../../assets/img/resource-image_crpc.png';\r\nimport ResourceImageLWC from '../../../assets/img/resource-image_lwc.png';\r\nimport ResourceImageBBB from '../../../assets/img/resource-image_bbb.png';\r\n\r\nconst AddressBlock = ({ physicalAddress = {}, mailingAddress = {} }) => {\r\n const {\r\n subheader: physicalSubheader = 'Physical Address',\r\n line1: physicalLine1,\r\n line2: physicalLine2,\r\n phone,\r\n fax\r\n } = physicalAddress;\r\n const {\r\n line1: mailingLine1,\r\n line2: mailingLine2,\r\n subheader: mailingSubheader = 'Mailing Address'\r\n } = mailingAddress;\r\n\r\n return (\r\n <>\r\n {(physicalLine1 || physicalLine2 || phone || fax) && (\r\n \r\n

{physicalSubheader}

\r\n \r\n {physicalLine1 &&

{physicalLine1}

}\r\n {physicalLine2 &&

{physicalLine2}

}\r\n {phone &&

Phone: {phone}

}\r\n {fax &&

Fax: {fax}

}\r\n
\r\n
\r\n )}\r\n {(mailingLine1 || mailingLine2) && (\r\n \r\n

{mailingSubheader}

\r\n \r\n {mailingLine1 &&

{mailingLine1}

}\r\n {mailingLine2 &&

{mailingLine2}

}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst SmallBusinessResources = () => {\r\n const [isLoading] = useState(false);\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const accordionData = [\r\n {\r\n id: '0',\r\n header: 'Register for Sales & Use Tax Collection',\r\n color: '#013357',\r\n blend: 'soft-light',\r\n contentList: (\r\n <>\r\n {/* Register for Sales & Use Tax Collection */}\r\n \r\n

Register for Sales & Use Tax Collection

\r\n

Total Rate 9% (5% local, 4% state)

\r\n\r\n

Local Sales & Use Tax (Parish at Large)

\r\n

West Baton Rouge has a unique system of distribution of its general, non-dedicated sales tax revenue. All municipalities and parish government share those revenues on a population ratio, adjusted for census totals every ten years and annual change estimates. All sales tax levies are parish wide, meaning the seller does not have to distinguish where delivery takes place, which eases accounting and reporting responsibilities.

\r\n

This system also allows all governing authorities to maximize revenues from the parish’s substantial tax base; generated by the petro-chemical industry located here. The current sales tax rate for West Baton Rouge is 5%.

\r\n\r\n

State Sales Tax Registration

\r\n \r\n

Louisiana Department of Revenue and Taxation

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

Note: All businesses must have an Occupational License and you must contact each of the offices designated for the specific purposes noted.

\r\n
\r\n
\r\n\r\n {/* West Baton Rouge Parish Revenue Department */}\r\n \r\n

West Baton Rouge Parish Revenue Department

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

West Baton Rouge Parish Revenue Department

\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* Online Resources */}\r\n \r\n

Online Resources

\r\n\r\n \r\n
    \r\n
  • \r\n openInNewTab('https://wbrcouncil.org/DocumentCenter/View/367/West-Baton-Rouge-Sales-Tax-Form-PDF')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('')}\r\n />\r\n
  • \r\n
\r\n
\r\n\r\n \r\n

Note: A refundable security deposit is required on certain types of businesses

\r\n
\r\n
\r\n \r\n )\r\n },\r\n {\r\n id: '1',\r\n header: 'Register for An Occupational License',\r\n color: '#01436d',\r\n blend: 'soft-light',\r\n contentList: (\r\n <>\r\n {/* Occupational License (Unincorporated Areas of Parish) */}\r\n \r\n

Occupational License (Unincorporated Areas of Parish)

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

West Baton Rouge Parish Revenue Department

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

Note: For your own benefit please obtain a zoning designation from the Office of Community Planning and Development. Receiving an OLT is not a clearance for operating a business that is contrary to current zoning ordinances.

\r\n
\r\n
\r\n\r\n {/* Zoning Designation (Unincorporated Areas of Parish) */}\r\n \r\n

Zoning Designation (Unincorporated Areas of Parish)

\r\n \r\n

Office of Community Planning and Development

\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* Occupational License (Incorporated Areas of Parish) */}\r\n \r\n

Occupational License (Incorporated Areas of Parish)

\r\n

Call each appropriate town/city for requirements and cost of Occupational licenses.

\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n },\r\n {\r\n id: '2',\r\n header: 'Alcohol Permits',\r\n color: '#015383',\r\n blend: 'soft-light',\r\n contentList: (\r\n <>\r\n {/* Local Beer & Liquor Licenses (Unincorporated Areas of Parish) */}\r\n \r\n

Local Beer & Liquor Licenses (Unincorporated Areas of Parish)

\r\n

Applications and check lists can be obtained from the Parish Council.

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

West Baton Rouge Parish Council Clerk

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n },\r\n {\r\n id: '3',\r\n header: 'Local Beer & Liquor Licenses (Incorporated Areas of Parish)',\r\n color: '#016399',\r\n blend: 'soft-light',\r\n contentList: (\r\n <>\r\n {/* Local Beer & Liquor Licenses (Incorporated Areas of Parish) */}\r\n \r\n

Local Beer & Liquor Licenses (Incorporated Areas of Parish)

\r\n

Call each appropriate town/city for requirements and cost of licenses.

\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* State Alcohol Beverage Commission */}\r\n \r\n

State Alcohol Beverage Commission

\r\n

Note: You must contact the following agency only if you are selling alcohol and tobacco.

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

Note: State and Local Sales Tax Clearance Certificates required for both state and local liquor licenses

\r\n
\r\n
\r\n \r\n )\r\n },\r\n {\r\n id: '4',\r\n header: 'Contractor Registration',\r\n color: '#0173af',\r\n blend: 'soft-light',\r\n contentList: (\r\n <>\r\n {/* Contractor Registration */}\r\n \r\n

Contractor Registration

\r\n

You must contact this office for registration to obtain permits and inspections in the unincorporated area of the parish.

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

Office of Community Planning and Development (Permit Office)

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

Note: All Contractors must have a current OLT (from a LA Jurisdiction) and be registered for West Baton Rouge Sales and Use tax.

\r\n
\r\n
\r\n\r\n {/* Health Department Permit */}\r\n \r\n

Health Department Permit

\r\n \r\n

Note: You must contact the Health Department if you are selling food, alcohol, intend to operate a daycare or have a mobile unit.

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

West Baton Rouge Parish Health Department

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n },\r\n {\r\n id: '5',\r\n header: 'Miscellaneous Agencies',\r\n color: '#0183bf',\r\n blend: 'soft-light',\r\n contentList: (\r\n <>\r\n {/* Local Chamber of Commerce */}\r\n \r\n

Local Chamber of Commerce

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

West Baton Rouge Chamber of Commerce

\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* Filing Corporations, LLC & Trade Name Registration */}\r\n \r\n

Filing Corporations, LLC & Trade Name Registration

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

Louisiana Secretary of State

\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* Obtaining an EIN (Federal ID Number) */}\r\n \r\n

Obtaining an EIN (Federal ID Number)

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

IRS

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n },\r\n {\r\n id: '6',\r\n header: 'Important Forms & Resources',\r\n color: '#0195da',\r\n blend: 'soft-light',\r\n contentList: (\r\n <>\r\n {/* FORMS */}\r\n \r\n

Forms

\r\n\r\n \r\n
    \r\n
  • \r\n openInNewTab('https://www.westbatonrougemuseum.com/DocumentCenter/View/376/Application-Instructions-PDF')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.westbatonrougemuseum.com/DocumentCenter/View/366/Tax-Application-Form-PDF')}\r\n />\r\n
  • \r\n
\r\n
\r\n
\r\n\r\n {/* RESOURCES */}\r\n \r\n

Resources

\r\n\r\n \r\n
    \r\n
  • \r\n openInNewTab('https://www.laworks.net/')}\r\n >\r\n \r\n \r\n
  • \r\n
  • \r\n openInNewTab('https://crpcla.org/')}\r\n >\r\n \r\n \r\n
  • \r\n
  • \r\n openInNewTab('https://www.opportunitylouisiana.gov/louisiana-small-business-summit?gclid=Cj0KCQjw06-oBhC6ARIsAGuzdw1Txu0F2acqQyJRS0bAuAJTZYIluTBFUb6p9rIILPsdI4rZeeencFsaArtqEALw_wcB')}\r\n >\r\n \r\n \r\n
  • \r\n
  • \r\n openInNewTab('https://www.bbb.org/')}\r\n >\r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n )\r\n }\r\n ];\r\n\r\n return (\r\n \r\n {isLoading && }\r\n \r\n\r\n \r\n

Small Business Resources

\r\n

The following is a guide for individuals who are interested in starting a new business in the parish. This list indicates the local and state departments or agencies that issue licenses and permits or have other requirements for opening a new business. All businesses must have an Occupational License and you must contact each of the offices designated for the specific purposes noted.

\r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SmallBusinessResources;","export default \"data:image/png;base64,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\"","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// ICONS\r\nimport { BiSolidQuoteLeft } from 'react-icons/bi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Button from '../../../components/Button';\r\n// ASSETS - ECONOMIC DEVELOPMENT PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\n\r\nconst EducationPage = () => {\r\n const [isLoading] = useState(false);\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n return (\r\n \r\n {isLoading && }\r\n \r\n\r\n \r\n

Education

\r\n

West Baton Rouge Parish Schools continue to rise, with academic gains and upgraded school facilities across the parish. Indeed, many new residents are moving to West Baton Rouge to enroll their kids into the WBR School System because of our focus on academics, supporting students, security, and community engagement.

\r\n

Superintendent Chandler Smith, the School Board and the school system staff are committed to a primary goal of making West Baton Rouge Parish an “A” rated school system in Louisiana within five years.

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

The School System has developed five goals to reach that mark. They include:

\r\n
    \r\n
  • Providing optimal learning environments at every school.
  • \r\n
  • Improving security and support for student emotional learning.
  • \r\n
  • Building highly effective instructional teams.
  • \r\n
  • Aligning school system finances with these goals.
  • \r\n
  • Enhancing communication with parents and the community.
  • \r\n
\r\n
\r\n\r\n \r\n \r\n

\r\n There is one common theme among the strategies of these goals. They all require a culture of collaboration. And that spirit of working together, helping each other, and looking out for each student, is the foundation of our school system. This will foster great things as we continue to move our school system forward. We invite you to come visit our schools and see the West Baton Rouge difference! It’s one reason the West Side is the Best Side.\r\n

\r\n
\r\n

Superintendent Smith

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

Schools in the Parish

\r\n
    \r\n
  • \r\n openInNewTab('https://www.wbrschools.net/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://holyfamilyschool.com/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.stjohnschool.org/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://caofla.com/')}\r\n />\r\n
  • \r\n
\r\n
\r\n\r\n \r\n

Higher Education

\r\n
    \r\n
  • \r\n openInNewTab('https://www.lsu.edu/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('http://www.subr.edu/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.mybrcc.edu/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.rpcc.edu/')}\r\n />\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EducationPage;","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Button from '../../../components/Button';\r\n// ASSETS - LIFESTYLE AND COMMUNITY PAGE\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\n\r\nconst LifestyleAndCommunityPage = () => {\r\n const [isLoading] = useState(false);\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n return (\r\n \r\n {isLoading && }\r\n \r\n\r\n \r\n \r\n

Healthcare

\r\n
    \r\n
  • \r\n openInNewTab('https://www.ochsner.org/?home=no-thanks')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.brgeneral.org/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.fmolhs.org/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.rkmcare.org/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://patientplusuc.com/')}\r\n />\r\n
  • \r\n
\r\n
\r\n\r\n \r\n

Community Services

\r\n
    \r\n
  • \r\n openInNewTab('https://www.wbrcoa.org/')}\r\n />\r\n
  • \r\n
  • \r\n openInNewTab('https://www.facebook.com/PortAllenRotaryClub/')}\r\n />\r\n
  • \r\n
\r\n
\r\n\r\n \r\n

Parks & Recreation

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

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

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

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

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

{item.name}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n ) : (\r\n \r\n

No Items Available

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

{badgeText}

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

{leftBlockText}

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

{rightBlockText}

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nContentStrip.propTypes = {\r\n // MAIN PROPS\r\n imageSource: PropTypes.number,\r\n title: PropTypes.string,\r\n leftBlockText: PropTypes.string,\r\n rightBlockText: PropTypes.string,\r\n\r\n // BADGE PROPS\r\n badgeText: PropTypes.string,\r\n badgeBackgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: PropTypes.bool\r\n};\r\n\r\nContentStrip.defaultProps = {\r\n // MAIN PROPS\r\n imageSource: null,\r\n title: '',\r\n leftBlockText: '',\r\n rightBlockText: '',\r\n\r\n // BADGE PROPS\r\n badgeText: '',\r\n badgeBackgroundColor: 'danger--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: false\r\n};\r\n\r\nexport default ContentStrip;","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\n// ICONS\r\nimport { HiSearch } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../components/Section';\r\nimport ContentBlock from '../../../components/ContentBlock';\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport TextBlock from '../../../components/TextBlock';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport ContentStrip from '../../../components/ContentStrip';\r\n// ASSETS - BLOG\r\n\r\nconst BlogsAndReviewsListingPage = (props) => {\r\n const { cmsInfo, history } = props;\r\n const [isLoading] = useState(false);\r\n const [filteredBlogs, setFilteredBlogs] = useState(cmsInfo.pages.filter((x) => x.isBlog));\r\n\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n\r\n const search = (searchTerm) => {\r\n setFilteredBlogs(cmsInfo.pages\r\n .filter((x) => x.isBlog)\r\n .filter((x) => x.name.toLowerCase().includes(searchTerm.toLowerCase())));\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n \r\n \r\n\r\n {/* FILTERS BLOCK */}\r\n
\r\n \r\n \r\n }\r\n onChange={(e) => search(e.target.value)}\r\n />\r\n \r\n \r\n
\r\n\r\n {/* BLOGS */}\r\n \r\n {\r\n filteredBlogs.map((item) => (\r\n {\r\n history.push(item.url);\r\n }}\r\n />\r\n ))\r\n }\r\n {\r\n filteredBlogs.length === 0\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default BlogsAndReviewsListingPage;","export default __webpack_public_path__ + \"static/media/icon_economic-workforce-dev.0859cdce.svg\";","export default __webpack_public_path__ + \"static/media/icon_leadership.a7b95d45.svg\";","export default __webpack_public_path__ + \"static/media/icon_membership.a55893bc.svg\";","export default __webpack_public_path__ + \"static/media/icon_relations.5ed59591.svg\";","export default __webpack_public_path__ + \"static/media/banner-image_homepage-default.698a23fd.png\";","export default __webpack_public_path__ + \"static/media/content-image_welcome-to-wbrcc.e7dcf67d.svg\";","export default __webpack_public_path__ + \"static/media/content-image_board-of-directors.bded582c.png\";","export default __webpack_public_path__ + \"static/media/background-decoration_dots.02cdb8eb.svg\";","/* 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// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport Slider from 'react-slick';\r\n// ICONS\r\nimport DevelopmentIcon from '../../../assets/img/icon_economic-workforce-dev.svg';\r\nimport LeadershipIcon from '../../../assets/img/icon_leadership.svg';\r\nimport MembershipIcon from '../../../assets/img/icon_membership.svg';\r\nimport RelationsIcon from '../../../assets/img/icon_relations.svg';\r\n// CUSTOM COMPONENTS\r\n// import Section from '../../../components/Section';\r\n// import ContentBlock from '../../../components/ContentBlock';\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport TextBlock from '../../../components/TextBlock';\r\nimport Image from '../../../components/Image';\r\nimport Banner from '../../../components/Banner';\r\nimport Button from '../../../components/Button';\r\n// import ContentStrip from '../../../components/ContentStrip';\r\n// ASSETS - APP LINKS\r\n// import AppStoreBadge from '../../../assets/img/app-store-badge.svg';\r\n// import GooglePlayBadge from '../../../assets/img/google-play-badge.svg';\r\n// ASSETS - CONTENT IMAGES\r\n// import BackgroundPatternCircles from '../../../assets/img/background-image_circles.png';\r\n// import BackgroundPatternCircles from '../../../assets/img/background-texture_circles.png';\r\nimport BackgroundPatternCircles from '../../../assets/img/banner-image_homepage-default.png';\r\nimport BoardOfDirectorsImage from '../../../assets/img/content-image_board-of-directors.png';\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport BackgroundDecorationDots from '../../../assets/img/background-decoration_dots.svg';\r\nimport WelcomeToWBRCC from '../../../assets/img/content-image_welcome-to-wbrcc.svg';\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\r\n const cardColor1 = '#01528a';\r\n const cardColor2 = '#0183bf';\r\n const cardColor3 = '#ffb30f';\r\n const cardColor4 = '#f3c156';\r\n\r\n // const BGDecoration = {\r\n // backgroundImage: `url(${BackgroundDecorationDots})`,\r\n // backgroundColor: `${color}`,\r\n // backgroundSize: 'cover',\r\n // backgroundPosition: 'center',\r\n // backgroundRepeat: 'no-repeat',\r\n // // backgroundBlendMode: `${bgBlend}`,\r\n // // borderColor: `${bgColor}`,\r\n // };\r\n\r\n const featuredLinks = [\r\n {\r\n icon: DevelopmentIcon,\r\n image: '',\r\n header: 'Economic & Workforce Development',\r\n description: 'Unlock West Baton Rouge’s economic and workforce potential with us.',\r\n link: 'http://example.com/contact',\r\n color: cardColor1,\r\n class: 'development',\r\n },\r\n {\r\n icon: LeadershipIcon,\r\n image: '',\r\n header: 'Leadership Development',\r\n description: 'Learn the values that fuel our unique leadership programs.',\r\n link: 'http://example.com/about',\r\n color: cardColor2,\r\n class: 'leadership',\r\n },\r\n {\r\n icon: MembershipIcon,\r\n image: '',\r\n header: 'Membership Engagment',\r\n description: 'For exclusive events and research, become a member today.',\r\n link: 'http://example.com/home',\r\n color: cardColor3,\r\n class: 'membership',\r\n },\r\n {\r\n icon: RelationsIcon,\r\n image: '',\r\n header: 'Advocacy & Government Relations',\r\n description: 'Navigate policy complexities with our high-quality resources.',\r\n link: 'http://example.com/products',\r\n color: cardColor4,\r\n class: 'relations',\r\n },\r\n ];\r\n\r\n const featuredNewsData = [\r\n {\r\n date: 'Aug 24th',\r\n header: '1 Economic Growth',\r\n title: 'New Businesses in Downtown Area Boost Economy',\r\n description: 'With the recent opening of several new businesses in the downtown area, local economic indicators suggest an uptick in commerce and job opportunities.',\r\n link: '/news/new-businesses-downtown'\r\n },\r\n {\r\n date: 'Aug 23rd',\r\n header: '2 Workshop Series',\r\n title: 'Sustainability in Business: A New Workshop Series',\r\n description: 'Join us for a 5-part workshop series on integrating sustainable practices into your business operations. Learn from industry experts and gain a competitive edge.',\r\n link: '/news/sustainability-workshop'\r\n },\r\n {\r\n date: 'Aug 22nd',\r\n header: '3 Community Spotlight',\r\n title: 'Local Entrepreneur Wins National Award',\r\n description: 'Jane Doe, founder of Doe Industries, has been recognized nationally for her innovative solutions in tech and her contributions to the community.',\r\n link: '/news/jane-doe-award'\r\n },\r\n {\r\n date: 'Aug 21st',\r\n header: '∞ Infrastructure Development',\r\n title: 'Upcoming Roadwork: What You Need to Know',\r\n description: 'As part of our ongoing commitment to improving infrastructure, several major roads will be under construction over the next few months. Find out more about timelines and detours.',\r\n link: '/news/upcoming-roadwork'\r\n },\r\n ];\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 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 featuredNewsSlider = {\r\n // dots: false,\r\n // infinite: true,\r\n // speed: 500,\r\n // slidesToShow: 3,\r\n // slidesToScroll: 1,\r\n // arrows: true,\r\n // autoplay: true,\r\n // autoplaySpeed: 5000,\r\n\r\n // responsive: [\r\n // {\r\n // breakpoint: 1800,\r\n // settings: { slidesToShow: 3 }\r\n // },\r\n // {\r\n // breakpoint: 1600,\r\n // settings: { slidesToShow: 3 }\r\n // },\r\n // {\r\n // breakpoint: 1350,\r\n // settings: { slidesToShow: 2.5 }\r\n // },\r\n // {\r\n // breakpoint: 600,\r\n // settings: { slidesToShow: 1 }\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 {\r\n banners.map((banner) => (\r\n \r\n WHERE COMMERCE\r\n
\r\n MEETS COMMUNITY\r\n

\r\n )}\r\n // imageSource={`${process.env.REACT_APP_API_URL}Attachments${banner.imagePath}`}\r\n imageSource={BannerImage}\r\n // description={banner.description}\r\n description={

Empowering business growth, driving academic excellence, and connecting the vibrant communities of West Baton Rouge.

}\r\n primaryActionText={banner.primaryButtonText}\r\n primaryActionOnClick={() => {\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 {/* FEATURED LISTING */}\r\n \r\n {featuredLinks.map((item) => (\r\n {\r\n history.push('/about-the-chamber');\r\n }}\r\n className={`item ${item.class}`} style={{ backgroundImage: `url(${BackgroundPatternCircles})`, backgroundColor: `${item.color}`, color: `${item.color}` }}\r\n >\r\n \r\n

{item.header}

\r\n

{item.description}

\r\n \r\n ))}\r\n\r\n
\r\n\r\n {/* WEBSITE INTRO */}\r\n \r\n \r\n \r\n \"Welcome\r\n \r\n\r\n

Your hub for business and community, built on four pillars: Economic Growth, Government, Membership, and Leadership. Let’s thrive together.

\r\n
\r\n
\r\n\r\n {/* ABOUT, EVENTS, CONTACT INTROS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Elevating Business & Community

\r\n

Your hub for growth in West Baton Rouge.

\r\n \r\n history.push('/about-the-chamber')}>\r\n

About

\r\n
\r\n

Learn who we are, our mission, vision, and how we contribute to the community.

\r\n
\r\n history.push('/events')}>\r\n

Events

\r\n
\r\n

Check out upcoming and annual events designed to connect businesses and foster growth.

\r\n
\r\n history.push('/resources')}>\r\n

Resources

\r\n
\r\n

Find useful tools and information to help your business succeed.

\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* HOMEPAGE CONTENT SECTION - MEET TEAM & BOARD */}\r\n {/* \r\n \r\n \r\n

Business Catalysts

\r\n

\r\n Get to know the dedicated professionals who are shaping the business landscape in West Baton Rouge.\r\n

\r\n \r\n history.push('/team-members')}\r\n >\r\n Meet the Team\r\n \r\n history.push('/board-of-directors')}\r\n >\r\n Discover our Board\r\n \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 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\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\nimport EventListingPage from './pages/admin/management/event/EventListingPage';\r\nimport EventManagementPage from './pages/admin/management/event/EventManagementPage';\r\nimport EventsPage from './pages/cms/pages/EventsPage';\r\n// import EventsPage from './pages/cms/pages/EventsPage';\r\nimport EventDetailPage from './pages/cms/pages/EventDetailPage';\r\n// CMS PAGES\r\nimport AboutPage from './pages/cms/pages/AboutPage';\r\nimport BoardOfDirectorsPage from './pages/cms/pages/BoardOfDirectorsPage';\r\nimport TeamMembersPage from './pages/cms/pages/TeamMembersPage';\r\nimport EconomicDevelopmentPage from './pages/cms/pages/EconomicDevelopmentPage';\r\nimport ContactPage from './pages/cms/pages/ContactPage';\r\nimport SmallBusinessResourcesPage from './pages/cms/pages/SmallBusinessResourcesPage';\r\nimport EducationPage from './pages/cms/pages/EducationPage';\r\nimport LifestyleAndCommunityPage from './pages/cms/pages/LifestyleAndCommunityPage';\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\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\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* ECONOMIC DEVELOPMENT PAGES */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\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 {/* 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 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\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":""}