{"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/components/SocialIconSet.js","app/components/FooterBlock.js","app/assets/img/app-store-badge.svg","app/assets/img/google-play-badge.svg","app/assets/img/logo.svg","app/routes/CMSRoute.js","app/components/ConfirmModal.js","app/components/AlertToast.js","app/components/FormBlock.js","app/pages/admin/authentication/_partials/ForgotPasswordBlock.js","app/helpers/validators/user/LoginValidator.js","app/helpers/helper.js","app/services/management/userService.js","app/pages/admin/authentication/LoginPage.js","app/components/ContentBlock.js","app/components/CheckboxBlock.js","app/helpers/validators/user/RegisterUserValidator.js","app/helpers/validators/user/UpdatePasswordValidator.js","app/helpers/validators/user/EditUserValidator.js","app/pages/admin/management/user/UserListingPage.js","app/pages/cms/management/menu-item/MenuItemListingPage.js","app/components/FixedActionsBar.js","app/services/cms/pageService.js","app/helpers/validators/cms/menuItem/menuItemValidator.js","app/pages/cms/management/menu-item/MenuItemManagementPage.js","app/pages/cms/management/page/PageListingPage.js","app/components/TextAreaBlock.js","app/components/FileUploadBlock.js","app/services/cms/contentSectionService.js","app/helpers/validators/cms/page/pageValidator.js","app/pages/cms/management/page/PageManagementPage.js","app/components/ContentSection.js","app/components/Banner.js","app/assets/img/banner-image_default.png","app/pages/cms/pages/DonationPage.js","app/services/cms/bannerService.js","app/pages/cms/management/content-section/ContentSectionListingPage.js","app/components/SelectablePreview.js","app/assets/img/content-section_default.svg","app/assets/img/content-section_reversed.svg","app/assets/img/content-section_full-width.svg","app/assets/img/content-section_full-width-padded.svg","app/assets/img/content-section_text-only.svg","app/assets/img/content-section_floating-card.svg","app/assets/img/banner-section_dynamic.svg","app/assets/img/content-section_custom.svg","app/helpers/validators/cms/contentSection/ContentSectionValidator.js","app/pages/cms/management/content-section/ContentSectionManagementPage.js","app/assets/img/banner-section.svg","app/helpers/validators/cms/banner/BannerValidator.js","app/helpers/validators/cms/banner/BannerItemValidator.js","app/services/cms/bannerItemService.js","app/pages/cms/management/content-section/BannerManagementPage.js","app/services/cms/assetService.js","app/helpers/validators/cms/asset/AssetValidator.js","app/pages/cms/management/resources/AssetsAndResourcesPage.js","app/services/cms/footerItemService.js","app/helpers/validators/cms/footerItem/FooterItemValidator.js","app/pages/cms/management/footer-items/FooterItemListingPage.js","app/components/ContactForm.js","app/services/management/emailService.js","app/services/management/settingService.js","app/pages/cms/pages/ContactPage.js","app/services/cms/blogService.js","app/pages/cms/management/blog/BlogListingPage.js","app/helpers/validators/cms/blog/BlogValidator.js","app/pages/cms/management/blog/BlogManagementPage.js","app/components/ContentStrip.js","app/pages/cms/pages/BlogsAndReviewsListingPage.js","app/components/Logo.js","app/assets/video/video-2.mp4","app/assets/img/logo-light.svg","app/assets/img/hero-banner-overlay.svg","app/components/CustomBannerInsert.js","app/assets/img/banner-image_homepage-default-2.png","app/assets/img/background-pattern-3.svg","app/pages/cms/pages/HomePage.js","app/services/cms/homeService.js","app/pages/cms/pages/DynamicCMSPage.js","app/services/management/eventService.js","app/pages/admin/management/event/EventListingPage.js","app/pages/admin/management/event/EventManagementPage.js","app/pages/cms/pages/EventsPage.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","CLIENT","ContactPageURL","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","SocialIconButton","socialIconButtonProps","displayIf","buttonColor","buttonText","socialIcon","onClickAction","background","onScroll","scrollCheck","scrollY","useEffect","addEventListener","removeEventListener","iconAppearanceOptions","square","round","circle","handleMenuItemClick","pageUrl","menuItemService","customLink","includes","navigateToPage","page","sendEmail","email","socialIconsRef","platform","youtubeLink","twitterLink","googleMapLink","height","viewBox","fill","xmlns","d","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","SocialIconSet","icons","setIcons","locationConfig","headerNav","mobileNav","drawerNav","footer","iconSet","FooterBlock","imageSource","companyName","bottomFooterBackgroundColor","subheaderColor","subheaderClassName","copyrightTextColor","footerHeaderTextColor","appStoreLink","googlePlayLink","hasEmailSignUp","tiktokLink","hasSocialMediaIconColor","hasContactBlock","isPhonePopoverOpen","setIsPhonePopoverOpen","isEmailPopoverOpen","setIsEmailPopoverOpen","navigateToLink","handlePhonePopoverToggle","handleEmailPopoverToggle","phonePopover","Popover","navigator","clipboard","writeText","emailPopover","OverlayTrigger","trigger","placement","overlay","onToggle","rootClose","onTouchStart","Date","getFullYear","CMSRoute","cmsRouteProps","dynamicPageId","isBlog","companyLogoPath","isSubmenuFullWidth","Logo","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","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","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","ContentSection","descriptionColor","cardBackgroundColor","isPrimaryActionTargetBlank","isSecondaryActionTargetBlank","isReversed","isTitleUppercase","hasCardBackgroundImage","isTextOnly","isFloatingCard","isFullWidthUnpadded","backgroundImage","delay","direction","Banner","titlePosition","isDynamicBanner","offset","backgroundPositionY","bannerBackgroundColor","DonationPage","BannerImage","gridTemplateColumns","gap","boxShadow","padding","border","allowPaymentRequest","allowTransparency","getBannerById","createBanner","banner","updateBanner","deleteBanner","setContentSections","isConfirmDeleteModalVisible","setIsConfirmDeleteModalVisible","getContentSections","bannerService","SelectablePreview","isSelected","when","is","otherwise","rawHTML","alignment","imagePath","hasRoundedCorners","primaryButtonActionType","primaryButtonLink","secondaryButtonActionType","secondaryButtonLink","Quill","ImageResize","initialContentSectionModel","image","primarButtonLink","format","linkTypes","alignmentOptions","components","CustomSectionImage","ContentSectionDefaultImage","ContentSectionReversedImage","ContentSectionFulWidthImage","ContentSectionFulWidthPaddedImage","ContentSectionTextOnlyImage","ContentSectionFloatingCardImage","DynamicBannerSectionImage","quillContainerRef","useRef","quillRef","contentSectionModel","setContentSectionModel","setAlignment","primaryActionType","setPrimaryActionType","secondaryActionType","setSecondaryActionType","toolbar","container","header","font","align","indent","handlers","matchVisual","imageResize","parchment","import","modules","setModules","initialTop","quillWidth","applyStyles","isFixed","current","top","zIndex","borderRadius","transform","maxWidth","handleScroll","quill","offsetTop","offsetWidth","imageHandler","input","createElement","setAttribute","click","onchange","files","reader","FileReader","onload","quillEditor","getEditor","range","getSelection","getLength","insertEmbed","readAsDataURL","prevModules","getContentSection","ContentSectionValidator","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","initialBannerItemModel","bannerModel","setBannerModel","bannerItemModel","setBannerItemModel","getBanner","BannerValidator","formik_bannerItem","BannerItemValidator","bannerItemService","resetBannerItemForm","resetBannerItemEditFormFields","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","ContactForm","formConfig","submitButtonLabel","submitButtonClasses","captchaRef","captchaToken","setCaptchaToken","reduce","prev","curr","submissionValues","reCAPTCHAToken","reset","field","textarea","undefined","sitekey","getSettingByKey","googleMapURL","setGoogleMapURL","rotatingImagesLength","setRotatingImagesLength","fetchData","googleMapURLRes","rotatingImagesLengthRes","emailService","preserveAspectRatio","bottom","fillOpacity","x1","y1","x2","y2","gradientUnits","stopColor","frameBorder","allowFullScreen","cascade","duration","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","gradientColors","fillColor","attributeName","join","dur","repeatCount","VideoBackground","playbackRate","videoRef","React","preload","autoPlay","loop","muted","playsInline","DynamicTagline","items","currentIndustry","setCurrentIndustry","timer","setInterval","prevIndustry","clearInterval","triggerOnce","CustomBannerInsert","offsetValue","class","HeroBannerOverlay","Video1","CSAbsoluteDecorator","industryTypes","HomePage","dynamicPageModel","buttonAction","banners","setBanners","setOffset","rotatingBanners","pageContentSectionBanners","pageYOffset","dots","infinite","speed","slidesToShow","slidesToScroll","arrows","autoplay","autoplaySpeed","responsive","breakpoint","settings","fraction","industry","IllustrationBackgroundPattern3","getCMSInfo","getDynamicPage","getDynamicBlog","initialDynamicPageModel","DynamicCMSPage","setDynamicPageModel","getDynamicBlogContent","getDynamicPageContent","homeService","actionType","generateContent","dangerouslySetInnerHTML","__html","Helmet","content","section","blogContentSectionBanners","getAllEvents","getEventById","eventId","createEvent","updateEvent","deleteEvent","sortEvents","authRedux","events","setEvents","eventService","start","moment","initialEventModel","addressTitle","addressLine1","addressLine2","zipcode","toISOString","slice","end","schedule","mapUrl","imageUrl","event","setEvent","fetchEvent","selectedPrimary","selectedSecondary","TextField","defaultValue","InputProps","disableUnderline","fontWeight","minHeight","EventsPage","upcomingEvents","setUpcomingEvents","pastEvents","setPastEvents","selectedEventOption","setSelectedEventOption","currentDate","fetchEvents","eventType","activeEvents","now","sortedEvents","unix","upcoming","isAfter","past","isSameOrBefore","handleSelectedEventOption","isSearchable","initialCMSInfo","isAuthorized","setIsAuthorized","setCmsInfo","pathname","useLocation","fetchCMSInfoAndValidate","validateAccess","scrollTo","async","exact","LoginPage","ContactPage","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.3be7aaaa.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, BsCalendarEventFill } 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 id: 3,\r\n iconLeft: ,\r\n title: 'Events Management',\r\n to: '/cms/management/events',\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 CLIENT: {\r\n ContactPageURL: '/contact-louisiana-additive-manufacturing-association',\r\n //\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 { BiSolidDonateHeart } from 'react-icons/bi';\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 SocialIconButton = (socialIconButtonProps) => {\r\n const {\r\n displayIf,\r\n buttonColor,\r\n buttonText,\r\n socialIcon,\r\n onClickAction,\r\n className,\r\n title\r\n } = socialIconButtonProps;\r\n return displayIf && (\r\n \r\n {socialIcon}\r\n {buttonText &&

{buttonText}

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

{option.label}

\r\n
\r\n )}\r\n onChange={(e) => {\r\n history.push(`/deal/details/${e.value}`);\r\n }}\r\n />\r\n {\r\n hasChipFilter\r\n && (\r\n \r\n \r\n {\r\n popularSelections.map((item) => (\r\n {\r\n\r\n }}\r\n />\r\n ))\r\n }\r\n \r\n \r\n )\r\n }\r\n
\r\n }\r\n\r\n {/* ICONS BLOCK */}\r\n \r\n {\r\n primarySocialMediaLink !== null\r\n && (\r\n openInNewTab(primarySocialMediaLink)}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n phoneNumber !== null\r\n && (\r\n openInNewTab(secondarySocialMediaLink)}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n emailAddress !== null\r\n && (\r\n {\r\n sendEmail(emailAddress);\r\n }}\r\n className={`social-icon ${socialIconBackgroundColor} ${iconAppearance ? iconAppearanceOptions[iconAppearance] : 'square'}`}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n openInNewTab(`${auth.authToken ? '/cms/management/pages' : '/login'}`);\r\n }}\r\n />\r\n \r\n
\r\n )\r\n }\r\n\r\n {\r\n !hasSearchBlock\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {/* MENU ITEMS */}\r\n \r\n\r\n
    \r\n {/*
  • \r\n \r\n
  • */}\r\n {\r\n menuItems.map((menuItem) => (\r\n menuItem.assignedMenuItems.length > 0\r\n ? (\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n />\r\n \r\n
      \r\n {\r\n menuItem.assignedMenuItems.map((submenuItem) => (\r\n
    • \r\n {\r\n handleMenuItemClick(submenuItem);\r\n }}\r\n className={`menu-item ${submenuItemColor || menuItemColor}`}\r\n />\r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
  • \r\n ) : (\r\n\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n className={`menu-item hover-animation--underline ${menuItemColor}`}\r\n />\r\n
  • \r\n )\r\n ))\r\n }\r\n
\r\n\r\n
\r\n\r\n {/* HEADER NAVIGATION - SECONDARY */}\r\n \r\n \r\n {socialItemsHeaderNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n\r\n {/* DRAWER NAVIGATION */}\r\n {\r\n toggleDrawer();\r\n }}\r\n className=\"drawer-navigation\"\r\n headerItems={(\r\n \r\n \r\n \r\n )}\r\n footerItems={(\r\n \r\n {socialItemsDrawerNav.map((item, index) => (\r\n \r\n ))}\r\n \r\n )}\r\n >\r\n {/* DRAWER NAVIGATION - NAVIGATION BLOCK */}\r\n
    \r\n
  • \r\n {\r\n navigateToPage('/');\r\n }}\r\n />\r\n
  • \r\n {\r\n menuItems.map((menuItem) => (\r\n menuItem.assignedMenuItems.length > 0\r\n ? (\r\n
  • \r\n }\r\n onClick={() => {\r\n toggleMobileSubmenu(menuItem.id);\r\n }}\r\n />\r\n \r\n
      \r\n {\r\n menuItem.assignedMenuItems.map((submenuItem) => (\r\n
    • \r\n {\r\n handleMenuItemClick(submenuItem);\r\n }}\r\n />\r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
  • \r\n ) : (\r\n\r\n
  • \r\n {\r\n handleMenuItemClick(menuItem);\r\n }}\r\n />\r\n
  • \r\n )\r\n ))\r\n }\r\n
  • \r\n {\r\n navigateToPage('/login');\r\n }}\r\n />\r\n
  • \r\n
\r\n \r\n\r\n {/* 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;","/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable object-curly-newline */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// ICONS\r\nimport { RiInstagramLine, RiQuestionAnswerFill, RiSettings3Fill } from 'react-icons/ri';\r\nimport { TbMailFilled } from 'react-icons/tb';\r\nimport { FaPhoneAlt, FaFacebookF, FaLinkedinIn, FaTwitter, FaYoutube } from 'react-icons/fa';\r\nimport { BiSolidDonateHeart } from 'react-icons/bi';\r\n// SERVICES & HELPERS\r\nimport constants from '../constants/constants';\r\n\r\n// ICON COMPONENT\r\nconst 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\r\n return displayIf && (\r\n \r\n {socialIcon}\r\n {buttonText &&

{buttonText}

}\r\n \r\n );\r\n};\r\n\r\n// ICON SET\r\nconst SocialIconSet = (props) => {\r\n const { cmsInfo, history, location } = props;\r\n const [icons, setIcons] = useState([]);\r\n const socialIconColor = '#FFF';\r\n const iconSize = '23';\r\n\r\n useEffect(() => {\r\n if (location) {\r\n const locationConfig = {\r\n headerNav: !['phone', 'email'],\r\n mobileNav: ['mobileMenuToggle'],\r\n drawerNav: ['contactUs', 'googleMap', 'facebook', 'instagram', 'donate', 'admin'],\r\n footer: ['googleMap', 'instagram', 'linkedin', 'facebook', 'contactUs', 'donate', 'admin'],\r\n };\r\n\r\n const iconSet = socialIconsRef.filter((item) => locationConfig[`${location}`].includes(item.platform));\r\n\r\n setIcons(iconSet);\r\n }\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 openInNewTab = (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 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 displayIf: `${cmsInfo.phoneNumber}` !== null,\r\n // title: `${phoneNumber}`,\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => callPhoneNumber(`${cmsInfo.phoneNumber}`),\r\n },\r\n {\r\n platform: 'email',\r\n displayIf: `${cmsInfo.emailAddress}` !== null,\r\n // title: `${emailAddress}`,\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => sendEmail(`${cmsInfo.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-sip-225'),\r\n onClickAction: () => navigateToPage(constants.CLIENT.ContactPageURL),\r\n },\r\n {\r\n platform: 'donate',\r\n displayIf: true,\r\n title: 'Donate',\r\n buttonColor: 'linear-gradient(90deg, #FEEB55 0%, #FFB22D 100%)',\r\n socialIcon: ,\r\n onClickAction: () => navigateToPage('/lama-donations'),\r\n },\r\n {\r\n platform: 'admin',\r\n displayIf: true,\r\n title: 'Admin Login',\r\n buttonColor: '#004E8C',\r\n socialIcon: ,\r\n onClickAction: () => navigateToPage('/cms/management/pages'),\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 return (\r\n <>\r\n {icons.map((item) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default SocialIconSet;","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n// DEPENDENCIES\r\nimport React, { useState } 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 FaPhoneAlt\r\n} from 'react-icons/fa';\r\nimport { MdEmail, MdOutlineMail } from 'react-icons/md';\r\n// import { IoCopyOutline } from 'react-icons/io5';\r\nimport { LuClipboardCopy } from 'react-icons/lu';\r\nimport { PiPhoneCallBold } from 'react-icons/pi';\r\nimport { TbMessage } from 'react-icons/tb';\r\n// COMPONENTS\r\nimport { OverlayTrigger, Popover } from 'react-bootstrap';\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\nimport SocialIconSet from './SocialIconSet';\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 [isPhonePopoverOpen, setIsPhonePopoverOpen] = useState(false);\r\n const [isEmailPopoverOpen, setIsEmailPopoverOpen] = useState(false);\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-sip-225'),\r\n // },\r\n // {\r\n // platform: 'admin',\r\n // displayIf: true,\r\n // title: 'Admin Login',\r\n // buttonColor: '#004E8C',\r\n // socialIcon: ,\r\n // onClickAction: () => navigateToPage('/cms/management/pages'),\r\n // },\r\n // ];\r\n\r\n const handlePhonePopoverToggle = () => {\r\n setIsPhonePopoverOpen(!isPhonePopoverOpen);\r\n };\r\n\r\n const handleEmailPopoverToggle = () => {\r\n setIsEmailPopoverOpen(!isEmailPopoverOpen);\r\n };\r\n\r\n const phonePopover = (\r\n \r\n {\r\n navigator.clipboard.writeText(phoneNumber);\r\n setIsPhonePopoverOpen(false);\r\n }}\r\n >\r\n \r\n

Copy to Clipboard

\r\n
\r\n\r\n
\r\n\r\n {\r\n callPhoneNumber(phoneNumber);\r\n setIsPhonePopoverOpen(false);\r\n }}\r\n >\r\n \r\n

Call LAMA

\r\n \r\n \r\n );\r\n\r\n const emailPopover = (\r\n \r\n {\r\n navigator.clipboard.writeText(emailAddress);\r\n setIsEmailPopoverOpen(false);\r\n }}\r\n >\r\n \r\n

Copy to Clipboard

\r\n \r\n\r\n
\r\n\r\n {\r\n sendEmail(emailAddress);\r\n setIsEmailPopoverOpen(false);\r\n }}\r\n >\r\n \r\n

Email LAMA

\r\n \r\n\r\n
\r\n\r\n {\r\n history.push('/contact-louisiana-additive-manufacturing-association');\r\n setIsEmailPopoverOpen(false);\r\n }}\r\n >\r\n \r\n

Send a Message

\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\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 className=\"light--clr fw-600\"\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 \r\n \r\n

{phoneNumber}

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

{emailAddress}

\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 \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/app-store-badge.f0b8ebdc.svg\";","export default __webpack_public_path__ + \"static/media/google-play-badge.3263f5e2.svg\";","export default __webpack_public_path__ + \"static/media/logo.ef5f25e7.svg\";","/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-props-no-multi-spaces */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\nimport { Route } from 'react-router-dom';\r\n// ICONS\r\n// CUSTOM COMPONENTS;\r\nimport Overlay from '../components/Overlay';\r\nimport CustomBlock from '../components/CustomBlock';\r\nimport HeaderNavigation from '../components/HeaderNavigation';\r\nimport FooterBlock from '../components/FooterBlock';\r\n// ASSETS\r\nimport Logo from '../assets/img/logo.svg';\r\n\r\nconst CMSRoute = (cmsRouteProps) => {\r\n const {\r\n component: Component,\r\n cmsInfo, dynamicPageId,\r\n isBlog,\r\n ...rest\r\n } = cmsRouteProps;\r\n\r\n const { companyLogoPath, companyIconPath } = cmsInfo;\r\n const [isLoading] = useState(false);\r\n\r\n return (\r\n (\r\n \r\n {isLoading && }\r\n \r\n\r\n {/* \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n />\r\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;","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 Louisiana Additive Manufacturing Association (LAMA). 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);","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable react/jsx-max-props-per-line */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Fade } from 'react-awesome-reveal';\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 \r\n\r\n {(primaryActionText !== '' && primaryActionText !== null) || (secondaryActionText !== '' && secondaryActionText !== null) ? (\r\n \r\n {primaryActionText !== '' && primaryActionText !== null && (\r\n \r\n openInNewTab(primaryActionTo) : primaryActionOnClick}\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 ) : null}\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 bannerBackgroundColor: '',\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.174035ed.png\";","/* 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/* eslint-disable react/jsx-max-props-per-line */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport Banner from '../../../components/Banner';\r\n// import { Fade } from 'react-awesome-reveal';\r\n// COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Button from '../../../components/Button';\r\n// ASSETS\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\n\r\nconst DonationPage = () => (\r\n <>\r\n \r\n \r\n {/* CONTENT SECTION - INTRO TO ABOUT */}\r\n \r\n \r\n

Support LAMA

\r\n

\r\n The Louisiana Additive Manufacturing Association (LAMA) advances additive manufacturing technology in Louisiana. Your donations drive innovation, education, and growth.\r\n

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

\r\n Membership Opportunities\r\n

\r\n\r\n \r\n \r\n Sponsors\r\n Priority access to event tickets and expo booths.\r\n

\r\n \r\n Company Membership\r\n $350 per year: Includes company name, logo, link to website (clickable logo), contact name, and email.\r\n

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

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

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

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

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

{isActive ? 'Yes' : 'No'}

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

{item.title}

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

No Items Available

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

{item.label}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n {/* VIEW/UPDATE MODAL */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(FooterItemListingPage);","/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React, { useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useFormik } from 'formik';\r\n// import * as Yup from 'yup';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\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 = (props) => {\r\n const {\r\n formConfig,\r\n title,\r\n onSubmit,\r\n isSubmitting,\r\n submitButtonLabel,\r\n submitButtonClasses\r\n } = props;\r\n const captchaRef = useRef();\r\n const [captchaToken, setCaptchaToken] = useState(null);\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 onSubmit: (values, { setSubmitting, resetForm }) => {\r\n if (!captchaToken) {\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n const submissionValues = {\r\n ...values,\r\n reCAPTCHAToken: captchaToken,\r\n };\r\n\r\n onSubmit(submissionValues, { setSubmitting, resetForm });\r\n\r\n captchaRef.current.reset();\r\n setCaptchaToken(null);\r\n },\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 {captchaToken == null ? (\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};","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Settings/';\r\n\r\nconst getSettingByKey = async (key) => axiosInstance.get(`${ENDPOINTORIGIN}GetSettingByKey?key=${key}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport default getSettingByKey;","/* 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/* eslint-disable react/jsx-max-props-per-line */\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 Slider from 'react-slick';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// ICONS\r\nimport {\r\n MdEmail,\r\n MdLocalPhone,\r\n MdLocationPin,\r\n} from 'react-icons/md';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport ContactForm from '../../../components/ContactForm';\r\nimport Image from '../../../components/Image';\r\n// import ContentSection from '../../../components/ContentSection';\r\n// ASSETS\r\nimport BannerImage from '../../../assets/img/banner-image_default.png';\r\nimport Logo from '../../../assets/img/logo.svg';\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\nimport getSettingByKey from '../../../services/management/settingService';\r\nimport constants from '../../../constants/constants';\r\n\r\nconst RotatingImageSlider = (props) => {\r\n const { containerClassName } = props;\r\n const rotatingImages = Array.from({ length: 5 }, (_, i) => `${constants.API_URL}Attachments/RotatingImages/image-${i + 1}.png`);\r\n\r\n const customPagingElement = () => (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 3000,\r\n customPaging: customPagingElement,\r\n dotsClass: 'slick-dots custom-dots',\r\n fade: true,\r\n };\r\n\r\n return (\r\n \r\n {rotatingImages.map((imageUrl, index) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nconst ContactPage = (props) => {\r\n const { showAlert, history, cmsInfo, companyLogo } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [googleMapURL, setGoogleMapURL] = useState('');\r\n const [rotatingImagesLength, setRotatingImagesLength] = useState('');\r\n\r\n const formConfig = [\r\n { name: 'firstName', label: 'First Name', required: true, placeholder: 'John', max: 100 },\r\n { name: 'lastName', label: 'Last Name', required: true, placeholder: 'Smith', max: 100 },\r\n { name: 'email', label: 'Email Address', required: true, placeholder: 'johnsmith@example.com', max: 100, email: true },\r\n { name: 'phoneNumber', label: 'Phone Number', placeholder: '(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 useEffect(() => {\r\n if (!googleMapURL || !rotatingImagesLength) {\r\n fetchData();\r\n }\r\n }, []);\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const googleMapURLRes = await getSettingByKey('GoogleMapURL');\r\n setGoogleMapURL(googleMapURLRes);\r\n\r\n const rotatingImagesLengthRes = await getSettingByKey('RotatingImagesLength');\r\n setRotatingImagesLength(rotatingImagesLengthRes);\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 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-louisiana-additive-manufacturing-association');\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 {/* COMPANY LOGO SECTION */}\r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {/* COMPANY DETAILS SECTION */}\r\n \r\n \r\n

Contact

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

{cmsInfo.emailAddress}

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

{cmsInfo.phoneNumber}

\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 {cmsInfo.streetAddress1}, {cmsInfo.streetAddress2}
\r\n {cmsInfo.city}, {cmsInfo.state} {cmsInfo.zipCode}\r\n

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

Hours of Operation

\r\n
\r\n

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

\r\n {(cmsInfo.primaryWeekEndHours || cmsInfo.secondaryWeekEndHours) && (\r\n \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 {/* GOOGLE MAPS SECTION */}\r\n {googleMapURL.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n
\r\n\r\n {/* FORM */}\r\n \r\n \r\n {/* FORM HEADER */}\r\n \r\n \r\n

Questions?

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

We Have Answers

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

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

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

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

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

{item.name}

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

No Items Available

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

{badgeText}

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

{leftBlockText}

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

{rightBlockText}

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nContentStrip.propTypes = {\r\n // MAIN PROPS\r\n imageSource: PropTypes.number,\r\n title: PropTypes.string,\r\n leftBlockText: PropTypes.string,\r\n rightBlockText: PropTypes.string,\r\n\r\n // BADGE PROPS\r\n badgeText: PropTypes.string,\r\n badgeBackgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: PropTypes.bool\r\n};\r\n\r\nContentStrip.defaultProps = {\r\n // MAIN PROPS\r\n imageSource: null,\r\n title: '',\r\n leftBlockText: '',\r\n rightBlockText: '',\r\n\r\n // BADGE PROPS\r\n badgeText: '',\r\n badgeBackgroundColor: 'danger--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: false\r\n};\r\n\r\nexport default ContentStrip;","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\n// ICONS\r\nimport { HiSearch } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../components/Section';\r\nimport ContentBlock from '../../../components/ContentBlock';\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport TextBlock from '../../../components/TextBlock';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport ContentStrip from '../../../components/ContentStrip';\r\n// ASSETS - BLOG\r\n\r\nconst BlogsAndReviewsListingPage = (props) => {\r\n const { cmsInfo, history } = props;\r\n const [isLoading] = useState(false);\r\n const [filteredBlogs, setFilteredBlogs] = useState(cmsInfo.pages.filter((x) => x.isBlog));\r\n\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n\r\n const search = (searchTerm) => {\r\n setFilteredBlogs(cmsInfo.pages\r\n .filter((x) => x.isBlog)\r\n .filter((x) => x.name.toLowerCase().includes(searchTerm.toLowerCase())));\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n \r\n \r\n\r\n {/* FILTERS BLOCK */}\r\n
\r\n \r\n \r\n }\r\n onChange={(e) => search(e.target.value)}\r\n />\r\n \r\n \r\n
\r\n\r\n {/* BLOGS */}\r\n \r\n {\r\n filteredBlogs.map((item) => (\r\n {\r\n history.push(item.url);\r\n }}\r\n />\r\n ))\r\n }\r\n {\r\n filteredBlogs.length === 0\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default BlogsAndReviewsListingPage;","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/jsx-max-props-per-line */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable indent */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst Logo = (props) => {\r\n // const { width = '166', height = '167', fillColor = '#231F20', viewBox = '0 0 166 167' } = props;\r\n const {\r\n className,\r\n containerClassName,\r\n width,\r\n height,\r\n fillColor\r\n } = props;\r\n\r\n const primaryColor = '#2567a5';\r\n const primaryColorLightest = '#169EDC';\r\n const gradientColors = ['#48cce0', '#505add', '#be40c0', '#fba82b'];\r\n // const gradientColors = [\r\n // { 1: '#48cce0' },\r\n // { 2: '#505add' },\r\n // { 3: '#be40c0' },\r\n // { 4: '#fba82b' },\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 {gradientColors.map((color, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\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 Logo;","export default __webpack_public_path__ + \"static/media/video-2.91111bd6.mp4\";","export default __webpack_public_path__ + \"static/media/logo-light.a971ca8f.svg\";","export default __webpack_public_path__ + \"static/media/hero-banner-overlay.77f81762.svg\";","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/jsx-max-props-per-line */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// COMPONENTS\r\n// import Slider from 'react-slick';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Image from './Image';\r\nimport Overlay from './Overlay';\r\nimport Logo from './Logo';\r\n// ASSETS\r\n// import LogoAlt1 from '../assets/img/logo-alt-1.svg';\r\n// import LogoAlt2 from '../assets/img/logo-alt-2.svg';\r\nimport LogoLight from '../assets/img/logo-light.svg';\r\nimport LogoDark from '../assets/img/logo.svg';\r\n// import BannerImage from '../assets/img/banner-image_default.png';\r\n// import IllustrationSquare from '../assets/img/illustration-square.svg';\r\nimport Video1 from '../assets/video/video-2.mp4';\r\nimport HeroBannerOverlay from '../assets/img/hero-banner-overlay.svg';\r\nimport BannerImageDefault from '../assets/img/banner-image_homepage-default-2.png';\r\n// import IllustrationNodes from '../assets/img/illustration-nodes.png';\r\n// HELPERS\r\nimport getSettingByKey from '../services/management/settingService';\r\nimport constants from '../constants/constants';\r\n\r\nconst VideoBackground = ({ src, children, playbackRate = 0.5 }) => {\r\n // Reference to the video element\r\n const videoRef = React.useRef(null);\r\n\r\n // Effect to apply the playback rate\r\n React.useEffect(() => {\r\n if (videoRef.current) {\r\n videoRef.current.playbackRate = playbackRate;\r\n }\r\n }, [playbackRate]);\r\n\r\n return (\r\n
\r\n \r\n \r\n Your browser does not support the video tag.\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nconst DynamicTagline = ({ items, direction, duration }) => {\r\n const [currentIndustry, setCurrentIndustry] = useState(0);\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n setCurrentIndustry((prevIndustry) => (prevIndustry + 1) % items.length);\r\n }, duration);\r\n\r\n // CLEANUP\r\n return () => clearInterval(timer);\r\n }, [items, duration]); // Dependencies ensure the interval updates if items or duration change\r\n\r\n return (\r\n \r\n \r\n

Shaping

\r\n \r\n

\r\n {items[currentIndustry]}\r\n {/* {items[currentIndustry]} */}\r\n

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

with Additive Manufacturing

\r\n
\r\n );\r\n};\r\n\r\nconst CustomBannerInsert = (props) => {\r\n const { history, offsetValue } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [rotatingImagesLength, setRotatingImagesLength] = useState('');\r\n const industries = ['Aerospace', 'Agriculture', 'Healthcare', 'Automotive', 'Defense', 'Energy', 'Construction', 'Petrochemical'];\r\n\r\n useEffect(() => {\r\n if (!rotatingImagesLength) {\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n try {\r\n const res = await getSettingByKey('RotatingImagesLength');\r\n setRotatingImagesLength(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 fetchData();\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 {/* LOGO */}\r\n {/* */}\r\n \r\n\r\n \r\n\r\n {/* DIVIDER */}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n */}\r\n\r\n \r\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 CustomBannerInsert;","export default __webpack_public_path__ + \"static/media/banner-image_homepage-default-2.e0e54684.png\";","export default __webpack_public_path__ + \"static/media/background-pattern-3.fe666c17.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/* eslint-disable react/jsx-max-props-per-line */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport Slider from 'react-slick';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// ICONS\r\nimport { RiArticleLine } from 'react-icons/ri';\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\nimport Button from '../../../components/Button';\r\nimport CustomBannerInsert from '../../../components/CustomBannerInsert';\r\n// ASSETS\r\nimport IllustrationBackgroundPattern3 from '../../../assets/img/background-pattern-3.svg';\r\n// SERVICES & HELPERS\r\nimport constants from '../../../constants/constants';\r\n\r\nconst CSAbsoluteDecorator = (props) => {\r\n const {\r\n source,\r\n opacity,\r\n width,\r\n height,\r\n top,\r\n bottom,\r\n } = props;\r\n\r\n /* FOR BEST RESULTS:\r\n - SVGs only\r\n - Removed SVG props: width and height\r\n - Added SVG prop: preserveAspectRatio=\"xMidYMin slice\"\r\n */\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst industryTypes = ['Aerospace', 'Agriculture', 'Healthcare', 'Automotive', 'Defense', 'Energy', 'Construction', 'Petrochemical'];\r\n\r\nconst HomePage = (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 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 navigateToLink = (link) => {\r\n // window.open(link, '_blank');\r\n // };\r\n\r\n return (\r\n <>\r\n {(isLoading) && }\r\n \r\n {/* BANNER SECTION */}\r\n \r\n \r\n {/* CUSTOM BANNER INSERT */}\r\n \r\n {\r\n banners.map((banner) => (\r\n {\r\n buttonAction(banner.primaryButtonActionType, banner.primaryButtonLink);\r\n }}\r\n secondaryActionText={banner.secondaryButtonText}\r\n secondaryActionOnClick={() => {\r\n buttonAction(banner.secondaryButtonActionType, banner.secondaryButtonLink);\r\n }}\r\n offset={offset}\r\n />\r\n ))\r\n }\r\n \r\n \r\n\r\n {/* MAIN CONTENT */}\r\n \r\n\r\n {/* CONTENT SECTION - FEATURED USE CASES */}\r\n \r\n \r\n

Empowering Industries through Innovation

\r\n\r\n

\r\n Empowering Louisiana's industries through advancing and integrating additive manufacturing technologies.\r\n

\r\n\r\n \r\n \r\n {industryTypes.map((industry) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n

{industry}

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

\r\n Empowering Louisiana's industries through advancing and integrating additive manufacturing technologies.\r\n

*/}\r\n\r\n {/* \r\n \r\n */}\r\n
\r\n
\r\n
\r\n\r\n {/* CONTENT SECTION - INTRO TO ABOUT */}\r\n \r\n \r\n \r\n \r\n

Discover LAMA

\r\n

\r\n The Louisiana Additive Manufacturing Association (LAMA) is dedicated to advancing the understanding and application of additive manufacturing technology. With a focus on innovation, collaboration, and sustainability, we support a diverse network of professionals and businesses in Louisiana. Learn more about our mission, our achievements, and how you can get involved.\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n {/* CONTENT SECTION - IN REGISTER ARTICLE */}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

10 questions with SIP: A Traveling Tap

\r\n \r\n window.open('https://www.inregister.com/features/10-questions-sip-traveling-tap', '_blank')}\r\n className=\"secondary--sbg size-xs pl-30 pr-30\"\r\n iconLeft={}\r\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 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\nimport { Fade } from 'react-awesome-reveal';\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 \r\n \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 {/* 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 \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 )\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\nexport default DynamicCMSPage;","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: '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 history.push('/cms/management/events');\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 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\nimport { Fade } from 'react-awesome-reveal';\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\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 handleSelectedEventOption(selectedOption)}\r\n isSearchable={false}\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 {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\n\r\nexport default EventsPage;","/* 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\nimport DonationPage from './pages/cms/pages/DonationPage';\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// CMS PAGES\r\nimport ContactPage from './pages/cms/pages/ContactPage';\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// EVENTS\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 EventDetailPage from './pages/cms/pages/EventDetailPage';\r\n// SERVICES\r\nimport * as homeService from './services/cms/homeService';\r\nimport constants from './constants/constants';\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 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":""}