{"version":3,"sources":["http/apiRoutes.ts","router/index.ts","components/Layout/components/Notifications/Notifications.module.css","http/index.ts","services/requests.service.ts","store/reducers/auth/types.ts","store/reducers/auth/index.ts","store/reducers/index.ts","services/enums.ts","store/index.ts","router/AuthGuard.tsx","models/SystemSettings/systemSetting.model.ts","store/reducers/auth/action-creators.ts","store/reducers/action-creators.ts","hooks/useActions.ts","hooks/useTypedSelector.ts","services/menuCreating.tsx","components/Layout/components/ProfileMenu/config/navigation.ts","components/Layout/components/ProfileMenu/config/menuItemsData.ts","components/Layout/components/ProfileMenu/ProfileMenu.tsx","components/Layout/AppLayout/components/UpHeader.tsx","components/Layout/AppLayout/components/Header/config/navigation.ts","components/Layout/AppLayout/components/Header/config/menuItemsData.ts","components/Layout/AppLayout/components/Header/Header.tsx","components/Layout/AppLayout/components/Footer/Footer.tsx","services/common.service.ts","hooks/useHttpGet.ts","components/AppPage.tsx","components/Layout/AppLayout/index.tsx","components/Layout/AuthLayout/index.tsx","services/Notifications/notifications.service.ts","components/Layout/components/Notifications/Notifications.tsx","components/Layout/ControlPanelLayout/Header.tsx","areas/controlPanel/config/navigation.ts","areas/controlPanel/config/menuItemsData.ts","components/Layout/ControlPanelLayout/Sider.tsx","components/Layout/ControlPanelLayout/index.tsx","services/constants.ts","components/InquiryForm/StandAloneForm.tsx","areas/public/pages/Index.tsx","components/Layout/AuthLayout/Template.tsx","components/ForgotPassword/index.tsx","areas/public/pages/ForgotPassword.tsx","components/Login/index.tsx","areas/public/pages/Login.tsx","components/Layout/Common/PublicAndLPPageTemplate.tsx","components/FaqContentItems/Index.tsx","components/InquiryForm/Form.tsx","components/ProjectContentItems/Index.tsx","areas/public/pages/PageContentItems.tsx","areas/public/pages/Pages.tsx","areas/public/pages/PageContentItem.tsx","components/RestorePassword/index.tsx","areas/public/pages/RestorePassword.tsx","components/Layout/Common/CPPageTemplate.tsx","services/MagicFiles/magicFiles.service.ts","components/ImageBank/Form.tsx","components/Layout/Common/Adapters/TableFilter.tsx","components/ImageBank/List.tsx","areas/controlPanel/pages/imageBank/List.tsx","components/Dashboard/DashboardStatistic.tsx","areas/controlPanel/pages/dashboard/Dashboard.tsx","services/EmailTemplates/emailTemplates.service.ts","components/Layout/Common/Adapters/Editor.tsx","components/EmailTemplates/Form.tsx","areas/controlPanel/pages/emailTemplates/Edit.tsx","components/EmailTemplates/List.tsx","areas/controlPanel/pages/emailTemplates/List.tsx","components/FileBank/Form.tsx","components/FileBank/List.tsx","areas/controlPanel/pages/fileBank/List.tsx","services/MagicPages/magicPages.service.ts","components/MagicPages/Form.tsx","areas/controlPanel/pages/magicPages/Edit.tsx","components/MagicPages/MagicPageHistoryFormModal.tsx","components/MagicPages/List.tsx","areas/controlPanel/pages/magicPages/List.tsx","services/MagicPages/magicPagesContentItems.service.ts","components/ProjectContentItems/Form.tsx","areas/controlPanel/pages/magicPagesContentItems/Edit.tsx","components/ProjectContentItems/List.tsx","areas/controlPanel/pages/magicPagesContentItems/List.tsx","services/SystemSettings/systemSettings.service.ts","components/SystemSettings/headerForm.tsx","components/SystemSettings/homeScreenForm.tsx","components/SystemSettings/commonForm.tsx","areas/controlPanel/pages/systemSettings/index.tsx","services/Users/users.service.ts","components/Users/Form.tsx","areas/controlPanel/pages/users/Edit.tsx","components/Users/List.tsx","areas/controlPanel/pages/users/List.tsx","router/AppRouter.tsx","App.tsx","index.tsx","services/auth.service.ts"],"names":["APIRoutesVersions","APIRoutesBase","API_BASE","process","AUTH","V1","DASHBOARD","EMAIL_TEMPLATES","FAQ","FAQ_TOPICS","MAGIC_PAGES","MAGIC_PAGES_TYPE","MAGIC_PAGES_HISTORY","MAGIC_FILES","MAGIC_PAGES_Content_Items","MAGIC_PAGES_Content_Items_ForPage","NOTIFICATIONS","NOTIFICATIONS_COUNT_UNREAD","NOTIFICATIONS_READ","NOTIFICATIONS_ARCHIVE","SYSTEM_SETTINGS","USERS","USERS_MY","APIRoutes","DASHBOARD_INSTRUMENT_MOVEMENTS","AUTH_LOGIN","AUTH_FORGOT_PASSWORD_REQUEST","AUTH_FORGOT_PASSWORD_CHANGE","MAGIC_PAGES_HISTORY_FOR_PAGE","Areas","UIRoutes","ControlPanelRoutes","PROFILE","TASKS","USER_BASE_EDIT","USER_EDIT","USER_CREATE","MAGIC_PAGE_CREATE","MAGIC_PAGE_EDIT","MAGIC_PAGES_CONTENT_ITEM_Base","MAGIC_PAGES_CONTENT_ITEM","MAGIC_PAGE_CONTENT_ITEM_CREATE_Base","MAGIC_PAGE_CONTENT_ITEM_CREATE","MAGIC_PAGE_CONTENT_ITEM_EDIT","EMAIL_TEMPLATES_BASE_EDIT","EMAIL_TEMPLATES_EDIT","FILE_BANK","IMAGE_BANK","module","exports","$api","axios","create","baseURL","interceptors","request","use","config","url","indexOf","headers","Authorization","localStorage","getItem","timezoneOffset","Date","getTimezoneOffset","response","error","responseURL","status","window","location","href","ACCOUNT","LOGIN","Promise","reject","RequestsService","query","get","params","payload","post","put","patch","delete","AuthActionEnum","initialState","isAuth","currentUser","Object","NotificationTypes","UserRoleTypes","RecordStates","MagicPagesTypes","MagicFileTypes","MagicFileDiscriminator","SettingsTypes","assign","auth","state","action","type","SET_AUTH","SET_CURRENT_USER","rootReducer","combineReducers","reducers","store","createStore","applyMiddleware","thunk","AuthGuard","props","useLocation","JSON","parse","to","replace","from","getValue","array","filter","f","id","value","stringifyEnum","enumeation","LogLevelsTypes","SystemSettingsFileNames","name","HomeScreenVideo","LogoUrl","AuthActionCreators","setIsAuth","setCurrentUser","allActionCreators","useActions","dispatch","useDispatch","bindActionCreators","useTypedSelector","useSelector","getLink","title","target","getTitleWithBadge","count","size","offset","ProfileMenuNav","CONTROL_PANEL","getMenuItems","userName","userRole","navigate","messageCount","key","icon","React","createElement","UserOutlined","className","label","children","Admin","includes","SettingOutlined","LogoutOutlined","onClick","AuthService","logout","ProfileMenu","useNavigate","theme","mode","selectable","disabledOverflow","items","firstName","role","UpHeader","settings","length","LogoTitle","src","alt","preview","flex","HeaderNav","Home","Projects","PAGE_BASE_VIEW","Faq","ABOUT_US","About","AppHeader","Header","span","AppFooter","menuTheme","Footer","xs","sm","md","dangerouslySetInnerHTML","__html","Copyright","CommonService","number","options","toLocaleString","maximumFractionDigits","err","data","property","hasOwnProperty","parram","sortAsc","sort","a","b","getTime","reduce","result","currentValue","push","trim","replaceAll","toLocaleLowerCase","enumType","keys","isNaN","parseInt","map","val","errors","console","log","errorMessages","forEach","notification","message","col","amt","usePound","slice","num","r","g","toString","numberColor","prepareFormData","file","formData","FormData","append","getPassedTime","startUtcDate","period","now","years","getUTCFullYear","months","getUTCMonth","days","getUTCDate","hours","getUTCHours","Math","abs","minutes","getUTCMinutes","seconds","getUTCSeconds","uniqueArray","arrArg","elem","pos","arr","distinct","useHttpGet","newOptions","useState","loading","fetchedData","defaultValue","setState","dependencies","resolve","undefined","condition","useEffect","s","getMethod","then","catch","AppPage","spinning","AppLayout","PartnerLogoTitle","PartnerLogoUrl","showAllErrors","Content","AuthLayout","NotificationsService","notificationIds","postMethod","Notifications","unreadCount","setUnreadCount","setData","fetchedNotifications","getIcon","iconType","Success","CheckCircleOutlined","Error","CloseCircleFilled","style","color","Warning","WarningOutlined","InfoCircleOutlined","handlerReadAll","read","item","isRead","success","handlerArchiveAll","archive","placement","content","maxHeight","width","overflowY","background","dataSource","renderItem","Item","actions","e","stopPropagation","i","CloseOutlined","classes","notificationItem","notificationItemRead","notificationItemUnread","Meta","avatar","description","createdOnUtc","textAlign","Link","BellOutlined","padding","ControlPanelNav","MAGIC_PAGES_CONTENT_ITEM_CREATE","getLeftMenuData","PieChartOutlined","LayoutOutlined","FileOutlined","PictureOutlined","FormatPainterOutlined","Sider","collapsed","setCollapsed","openKeys","setOpenKeys","setKeys","menu","rootSubmenuKeys","setSelectedKeys","selectedItem","_","find","flattenItems","flattenedItems","Array","isArray","concat","pathname","collapsible","onCollapse","selectedKeys","setItem","onOpenChange","latestOpenKey","ControlPanelLayout","REACT_APP_SITE_TITLE","formItemLayout","labelCol","wrapperCol","labelsAboveFormItemLayout","StandAloneForm","useForm","form","checkErrorHandler","handleSubmitForm","values","setFieldsValue","email","subject","inquiry","labelAlign","requiredMark","onFinish","rules","required","TextArea","shape","submit","Index","contactBlock","ContactsBlock","homePageSettings","ids","HomeScreenContent","justify","align","Helmet","seoTitle","seoDescription","autoPlay","loop","muted","AuthTemplate","headerSettings","logoUrl","logoTitle","setSettings","links","segment","Terms","PrivacyPolicy","Contacts","el","ForgotPasswordForm","setLoading","setError","forgotPasswordRequest","errorMessage","htmlType","ForgotPassword","RestorePassword","LoginForm","login","username","password","code","user","Slave","Password","FORGOT_PASSWORD","REGISTER","Login","PublicAndLPPageTemplate","split","columnWidth","bodyStyle","FaqContentItems","magicContentItems","index","image","link","InquiryForm","isModalVisible","setIsModalVisible","checkFinishHandler","handleCancel","visible","footer","onCancel","ProjectsContentItems","cellPadding","customCss","PageContentItems","Pages","useParams","PageContentItem","RestorePasswordForm","forgotPasswordChange","newPassword","confirm","resetPasswordToken","getFieldValue","validator","CPPageTemplate","extra","MagicFilesService","magicFile","putMethod","magicFileId","deleteMethod","ImageBankForm","Form","changedImage","setChangedImage","changedImageBase64","setChangedImageBase64","Dragger","Upload","imageName","Image","upload","uploadButton","LoadingOutlined","UploadOutlined","accept","listType","showUploadList","beforeUpload","onChange","info","reader","FileReader","addEventListener","readAsDataURL","maxWidth","CloseCircleOutlined","GetColumnSearchProps","dataIndex","searchInput","createRef","searchText","searchedColumn","handleSearch","filterDropdown","clearFilters","ref","placeholder","onPressEnter","marginBottom","display","SearchOutlined","handleReset","closeDropdown","filterIcon","filtered","onFilter","record","toLowerCase","onFilterDropdownVisibleChange","setTimeout","current","select","render","text","highlightStyle","backgroundColor","searchWords","autoEscape","textToHighlight","EditableCell","editing","inputType","restProps","inputNode","margin","List","editingKey","setEditingKey","types","sortPropertyName","sortAscending","updateTrigger","setFilter","cancel","showSizeChanger","pageSizeOptions","defaultPageSize","pageSize","total","pagination","setPagination","isEditing","save","validateFields","row","newData","findIndex","splice","update","getMilliseconds","pageNumber","totalElementsCount","list","disabled","path","loaded","edit","onConfirm","okText","cancelText","mergedColumns","sorter","editable","height","marginRight","overlay","MenuOutlined","onCell","component","components","body","cell","bordered","columns","rowClassName","newPagination","filters","newFilter","column","field","order","rowKey","ImageBankList","isOpen","setIsOpen","setUpdateTrigger","open","DashboardStatistic","Dashboard","EmailTemplatesService","template","Editor","setContent","editor","useRef","readonly","onBlur","EmailTemplateForm","contentHtml","EmailTemplateEdit","EmailTemplatesList","FileBankForm","changedFile","setChangedFile","fileName","File","multiple","maxCount","fileList","InboxOutlined","FileBankList","MagicPagesService","magicPage","magicPageId","MagicPageForm","rows","MagicPageEdit","MagicPageHistoryFormModal","restore","pageHistoryItem","setPageHistoryItem","pageHistory","pageHistoryLoading","history","Text","mark","EyeOutlined","trigger","Custom","random","mapEnum","updatedOnUtc","updatedByUser","MagicPagesList","MagicPagesContentItems","pageId","MagicPageContentItemForm","handleImageUpload","uploadResult","hidden","MagicPageContentItemEdit","MagicPagesContentItemsList","SystemSettingsService","systemSettings","SystemSettingsHeaderForm","changedLogoFile","setChangedLogoFile","changedLogoFileBase64","setChangedLogoFileBase64","changedPartnerLogoFile","setChangedPartnerLogoFile","setChangedPartnerLogoFileBase64","partnerLogoUrl","partnerLogoTitle","createSystemSetting","newValue","original","rec","uploadImageAndUpdateSetting","logoSetting","logoTitleSetting","partnerLogoTitleSetting","SystemSettingsHomeScreenForm","changedHomeScreenVideo","setChangedHomeScreenVideo","homeScreenContent","setHomeScreenContent","homeScreenVideo","uploadVideoAndUpdateSetting","Video","homeScreenContentSetting","SystemSettingsCommonForm","copyrightContent","setCopyrightContent","systemEmail","SystemEmail","systemEmailPassword","SystemEmailPassword","copyright","iconRender","EyeTwoTone","EyeInvisibleOutlined","SystemSettings2Edit","TabPane","Tabs","defaultActiveKey","tab","UsersService","userId","patchMethod","nPassword","cPassword","currentPassword","UserForm","changedPhotoFile","setChangedPhotoFile","changedPhotoFileBase64","setChangedPhotoFileBase64","updatePassword","uploadPhoto","getNameValues","Option","photoPath","UserEdit","lastName","roles","states","Active","Pending","Locked","Archived","Deleted","UsersList","authRoutes","element","RESTORE_PASSWORD","appRoutes","PAGE_VIEW","PAGE_VIEW_ITEM","controlPanelRoutes","AppRouter","route","App","ReactDOM","document","getElementById","createAuthHash","Buffer","removeItem"],"mappings":"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","file":"static/js/main.fc6ec511.chunk.js","sourcesContent":["export enum APIRoutesVersions {\r\n V1 = \"/v1\",\r\n}\r\n\r\nexport const APIRoutesBase = {\r\n API_BASE: process.env.REACT_APP_API_URL,\r\n\r\n AUTH: `${APIRoutesVersions.V1}/Auth`,\r\n\r\n DASHBOARD: `${APIRoutesVersions.V1}/Dashboard`,\r\n EMAIL_TEMPLATES: `${APIRoutesVersions.V1}/EmailTemplates`,\r\n\r\n FAQ: `${APIRoutesVersions.V1}/Faq`,\r\n FAQ_TOPICS: `${APIRoutesVersions.V1}/Faq/topics`,\r\n\r\n MAGIC_PAGES: `${APIRoutesVersions.V1}/MagicPages`,\r\n MAGIC_PAGES_TYPE: `${APIRoutesVersions.V1}/MagicPages/type`,\r\n MAGIC_PAGES_HISTORY: `${APIRoutesVersions.V1}/MagicPagesHistory`,\r\n MAGIC_FILES: `${APIRoutesVersions.V1}/MagicFiles`,\r\n\r\n MAGIC_PAGES_Content_Items: `${APIRoutesVersions.V1}/MagicContentItems`,\r\n MAGIC_PAGES_Content_Items_ForPage: `${APIRoutesVersions.V1}/MagicContentItems/forPage`,\r\n\r\n NOTIFICATIONS: `${APIRoutesVersions.V1}/Notifications`,\r\n NOTIFICATIONS_COUNT_UNREAD: `${APIRoutesVersions.V1}/Notifications/countUnread`,\r\n NOTIFICATIONS_READ: `${APIRoutesVersions.V1}/Notifications/read`,\r\n NOTIFICATIONS_ARCHIVE: `${APIRoutesVersions.V1}/Notifications/archive`,\r\n\r\n SYSTEM_SETTINGS: `${APIRoutesVersions.V1}/SystemSettings`,\r\n USERS: `${APIRoutesVersions.V1}/Users`,\r\n USERS_MY: `${APIRoutesVersions.V1}/Users/my`,\r\n};\r\n\r\nexport const APIRoutes = {\r\n ...APIRoutesBase,\r\n DASHBOARD_INSTRUMENT_MOVEMENTS: `${APIRoutesBase.DASHBOARD}/instrumentMovements`,\r\n\r\n AUTH_LOGIN: `${APIRoutesBase.AUTH}/login`,\r\n AUTH_FORGOT_PASSWORD_REQUEST: `${APIRoutesBase.AUTH}/forgotPassword/request`,\r\n AUTH_FORGOT_PASSWORD_CHANGE: `${APIRoutesBase.AUTH}/forgotPassword/change`,\r\n\r\n MAGIC_PAGES_HISTORY_FOR_PAGE: `${APIRoutesBase.MAGIC_PAGES_HISTORY}/forPage`,\r\n};\r\n","import React from \"react\";\r\n\r\nexport interface IRoute {\r\n path: string;\r\n element: React.ReactElement;\r\n}\r\n\r\nexport enum Areas {\r\n CONTROL_PANEL = \"controlpanel\",\r\n}\r\n\r\nexport enum UIRoutes {\r\n LOGIN = \"login\",\r\n ACCOUNT = \"account\",\r\n PROJECTS = \"projects\",\r\n ABOUT_US = \"about-us\",\r\n CONTACTS = \"contacts\",\r\n REGISTER = \"register\",\r\n FORGOT_PASSWORD = \"forgot-password\",\r\n RESTORE_PASSWORD = \"restore-password/:code\",\r\n\r\n PAGE_BASE_VIEW = \"pages\",\r\n PAGE_VIEW_ITEM = \"pages/:name/:url/:id\",\r\n PAGE_VIEW = \"pages/:name/:type\",\r\n\r\n FILE_BANK = \"file-bank\",\r\n FILE_BANK_BASE_VIEW = \"file-bank/article\",\r\n FILE_BANK_VIEW = \"file-bank/article/:name/:id\",\r\n\r\n IMAGE_BANK = \"image-bank\",\r\n IMAGE_BANK_BASE_VIEW = \"image-bank/article\",\r\n IMAGE_BANK_VIEW = \"image-bank/article/:name/:id\",\r\n}\r\n\r\nexport const ControlPanelRoutes = {\r\n DASHBOARD: \"dashboard\",\r\n PROFILE: \"profile\",\r\n\r\n TASKS: \"tasks\",\r\n\r\n USERS: \"users\",\r\n USER_BASE_EDIT: \"user/edit\",\r\n USER_EDIT: \"user/edit/:id\",\r\n USER_CREATE: \"user/create\",\r\n\r\n MAGIC_PAGES: \"magic-pages\",\r\n MAGIC_PAGE_CREATE: \"magic-pages/create\",\r\n MAGIC_PAGE_EDIT: \"magic-pages/:id\",\r\n\r\n MAGIC_PAGES_CONTENT_ITEM_Base: \"magic-pages-content-items\",\r\n MAGIC_PAGES_CONTENT_ITEM: \"magic-pages-content-items/:pageId\",\r\n MAGIC_PAGE_CONTENT_ITEM_CREATE_Base: \"magic-pages-content-items/create/\",\r\n MAGIC_PAGE_CONTENT_ITEM_CREATE: \"magic-pages-content-items/create/:pageId\",\r\n MAGIC_PAGE_CONTENT_ITEM_EDIT: \"magic-pages-content-items/edit/:id\",\r\n\r\n SYSTEM_SETTINGS: \"system-settings\",\r\n\r\n EMAIL_TEMPLATES: \"email-templates\",\r\n EMAIL_TEMPLATES_BASE_EDIT: \"email-templates/edit\",\r\n EMAIL_TEMPLATES_EDIT: \"email-templates/edit/:id\",\r\n\r\n FILE_BANK: \"file-bank\",\r\n\r\n IMAGE_BANK: \"image-bank\",\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notificationItem\":\"Notifications_notificationItem__EzAvC\",\"notificationItemRead\":\"Notifications_notificationItemRead__2PZQy\",\"notificationItemUnread\":\"Notifications_notificationItemUnread__2lbCe\"};","import axios from 'axios';\r\nimport { UIRoutes } from '../router';\r\n\r\nconst $api = axios.create({\r\n baseURL: process.env.REACT_APP_API_URL,\r\n});\r\n\r\nfunction getTimeZoneOffsetToUct() {\r\n return new Date().getTimezoneOffset() / 60;\r\n}\r\n\r\n$api.interceptors.request.use((config: any) => {\r\n if (config?.url.indexOf('login') === -1) {\r\n config.headers.Authorization = `Bearer ${localStorage.getItem(\r\n '48bceb9d-e1a4-4c77-9d62-9b0e9748c07e'\r\n )}`;\r\n }\r\n config.headers.timezoneOffset = getTimeZoneOffsetToUct();\r\n\r\n return config;\r\n});\r\n\r\n$api.interceptors.response.use(\r\n (response: any) => {\r\n return response;\r\n },\r\n (error: any) => {\r\n if (error.request?.responseURL.indexOf('Users') < 0) {\r\n if (\r\n (error.response?.status === 401 || error.response?.status === 403) &&\r\n window.location.href.indexOf(\r\n `/${UIRoutes.ACCOUNT}/${UIRoutes.LOGIN}`\r\n ) === -1\r\n ) {\r\n window.location.href = `/${UIRoutes.ACCOUNT}/${UIRoutes.LOGIN}`;\r\n\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n return Promise.reject(error);\r\n }\r\n);\r\nexport default $api;\r\n","import $api from '../http';\r\nimport { AxiosResponse } from 'axios';\r\n\r\nexport default class RequestsService {\r\n static async getMethod(\r\n url: string,\r\n query?: any\r\n ): Promise> {\r\n return $api.get(url, {\r\n params: query,\r\n });\r\n }\r\n\r\n static async postMethod(\r\n url: string,\r\n payload?: any,\r\n config?: any\r\n ): Promise> {\r\n return $api.post(url, payload, config);\r\n }\r\n\r\n static async putMethod(\r\n url: string,\r\n payload?: any,\r\n config?: any\r\n ): Promise> {\r\n return $api.put(url, payload, config);\r\n }\r\n\r\n static async patchMethod(\r\n url: string,\r\n payload?: any,\r\n config?: any\r\n ): Promise> {\r\n return $api.patch(url, payload, config);\r\n }\r\n\r\n static async deleteMethod(\r\n url: string,\r\n config?: any\r\n ): Promise> {\r\n return $api.delete(url, config);\r\n }\r\n}\r\n","import { IUser } from '../../../models/Users/user.model';\r\n\r\nexport interface AuthState {\r\n isAuth: boolean;\r\n currentUser: IUser;\r\n}\r\n\r\nexport enum AuthActionEnum {\r\n SET_AUTH = 'SET_AUTH',\r\n SET_CURRENT_USER = 'SET_CURRENT_USER',\r\n}\r\n\r\nexport interface SetAuthAction {\r\n type: AuthActionEnum.SET_AUTH;\r\n payload: boolean;\r\n}\r\n\r\nexport interface SetCurrentUserAction {\r\n type: AuthActionEnum.SET_CURRENT_USER;\r\n payload: IUser;\r\n}\r\n\r\nexport type AuthAction = SetAuthAction | SetCurrentUserAction;\r\n","import { IUser } from '../../../models/Users/user.model';\r\nimport { AuthAction, AuthActionEnum, AuthState } from './types';\r\n\r\nconst initialState: AuthState = {\r\n isAuth: false,\r\n currentUser: {} as IUser,\r\n};\r\n\r\nexport default function authReducer(\r\n state = initialState,\r\n action: AuthAction\r\n): AuthState {\r\n switch (action.type) {\r\n case AuthActionEnum.SET_AUTH:\r\n return { ...state, isAuth: action.payload };\r\n case AuthActionEnum.SET_CURRENT_USER:\r\n return { ...state, currentUser: action.payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import authReducer from './auth';\r\n\r\nexport default Object.assign(\r\n {},\r\n {\r\n auth: authReducer,\r\n }\r\n);\r\n","interface IValue {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport const mapEnum = (enumeation: any): IValue[] => {\r\n const result = Object.keys(enumeation).map((key: string) => ({\r\n id: key,\r\n name: enumeation[parseInt(key)],\r\n }));\r\n\r\n return result\r\n .slice(0, result.length / 2)\r\n .map((f) => ({ id: parseInt(f.id, 10), name: stringifyEnum(f.name) }));\r\n};\r\n\r\nexport const stringifyEnum = (enumeation: any): string => {\r\n return enumeation\r\n ?.replace(\"_\", \"\")\r\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\r\n .replace(/([0-9])([A-Z])/g, \"$1 $2\")\r\n .replace(/([0-9])([a-z])/g, \"$1 $2\");\r\n};\r\n\r\nexport enum NotificationTypes {\r\n Success = 1,\r\n Error = 2,\r\n Warning = 3,\r\n Info = 4,\r\n}\r\n\r\nexport enum UserRoleTypes {\r\n Admin = 1,\r\n Slave = 2,\r\n}\r\n\r\nexport enum RecordStates {\r\n Active = 0,\r\n Pending = 2,\r\n Locked = 4,\r\n Archived = 6,\r\n Deleted = 10,\r\n}\r\n\r\nexport enum MagicPagesTypes {\r\n Login = 1,\r\n Home = 4,\r\n Contacts = 5,\r\n ContactsBlock = 51,\r\n Faq = 6,\r\n News = 4,\r\n RestorePassword = 5,\r\n WhatweDo = 7,\r\n Projects = 8,\r\n Responces = 9,\r\n Blog = 10,\r\n Career = 11,\r\n About = 12,\r\n Soft = 13,\r\n ImageEditing = 14,\r\n Seminars = 16,\r\n TechnologyOfUsing = 18,\r\n Terms = 21,\r\n PrivacyPolicy = 22,\r\n\r\n Custom = 99,\r\n}\r\n\r\nexport enum MagicFileTypes {\r\n File = 1,\r\n Image = 2,\r\n Video = 3,\r\n CourseManual = 4,\r\n}\r\n\r\nexport enum MagicFileDiscriminator {\r\n MagicFile = 1,\r\n}\r\n\r\nexport enum SettingsTypes {\r\n Copyright = 1,\r\n HomeScreenVideo = 2,\r\n HomeScreenContent = 3,\r\n\r\n LogoTitle = 5,\r\n LogoUrl = 6,\r\n\r\n PartnerLogoUrl = 10,\r\n PartnerLogoTitle = 11,\r\n\r\n SystemEmail = 15,\r\n SystemEmailPassword = 16,\r\n\r\n ShowFaqForAll = 17,\r\n}\r\n\r\nexport const SystemSettingsFileNames = [\r\n {\r\n name: \"Home screen video\",\r\n id: SettingsTypes.HomeScreenVideo,\r\n },\r\n {\r\n name: \"Logo\",\r\n id: SettingsTypes.LogoUrl,\r\n },\r\n];\r\n\r\nexport enum LogLevelsTypes {\r\n Trace = 0,\r\n\r\n Debug = 1,\r\n\r\n Information = 2,\r\n\r\n Warning = 3,\r\n Error = 4,\r\n\r\n None = 5,\r\n}\r\n","import { applyMiddleware, combineReducers, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport reducers from './reducers';\r\n\r\nconst rootReducer = combineReducers(reducers);\r\n\r\nexport const store = createStore(rootReducer, applyMiddleware(thunk));\r\n\r\nexport type RootState = ReturnType;\r\nexport type AppDispatch = typeof store.dispatch;\r\n","import React, { FC } from 'react';\r\nimport { Navigate, Outlet, useLocation } from 'react-router-dom';\r\nimport { UIRoutes } from '.';\r\n\r\ninterface IProtectedRouteProps {\r\n path?: string;\r\n element?: React.ReactElement;\r\n}\r\n\r\nconst AuthGuard: FC = (props) => {\r\n const location = useLocation();\r\n\r\n const isAuth = !!JSON.parse(localStorage.getItem('app.Authorized') as string);\r\n\r\n const hasToken = !!localStorage.getItem(\r\n '48bceb9d-e1a4-4c77-9d62-9b0e9748c07e'\r\n );\r\n\r\n const isUserAuthorized = hasToken ? true : isAuth;\r\n\r\n if (!isUserAuthorized) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return ;\r\n};\r\nexport default AuthGuard;\r\n","import { SettingsTypes } from \"../../services/enums\";\r\n\r\nexport interface ISystemSettings {\r\n note: string;\r\n value: string;\r\n id: SettingsTypes;\r\n name: string;\r\n updatedByUser: {\r\n id: string;\r\n name: string;\r\n };\r\n updatedOnUtc: string;\r\n}\r\n\r\nexport const getValue = (array: ISystemSettings[], type: SettingsTypes) => {\r\n return array?.filter((f) => f.id === type)[0]?.value;\r\n};\r\n","import { IUser } from '../../../models/Users/user.model';\r\nimport { AuthActionEnum, SetAuthAction, SetCurrentUserAction } from './types';\r\n\r\nexport const AuthActionCreators = {\r\n setIsAuth: (payload: boolean): SetAuthAction => ({\r\n type: AuthActionEnum.SET_AUTH,\r\n payload,\r\n }),\r\n\r\n setCurrentUser: (payload: IUser): SetCurrentUserAction => ({\r\n type: AuthActionEnum.SET_CURRENT_USER,\r\n payload,\r\n }),\r\n};\r\n","import { AuthActionCreators } from './auth/action-creators';\r\n\r\nexport const allActionCreators = {\r\n ...AuthActionCreators,\r\n};\r\n","import { useDispatch } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { allActionCreators } from '../store/reducers/action-creators';\r\n\r\nexport const useActions = () => {\r\n const dispatch = useDispatch();\r\n\r\n return bindActionCreators(allActionCreators, dispatch);\r\n};\r\n","import { TypedUseSelectorHook, useSelector } from 'react-redux';\r\nimport { RootState } from '../store';\r\n\r\nexport const useTypedSelector: TypedUseSelectorHook = useSelector;\r\n","import { Badge, Tooltip } from 'antd';\r\nimport { Link, NavLink } from 'react-router-dom';\r\n\r\n// for label of menu items\r\nexport const getNavLink = (title: any, url: string, target?: string) => (\r\n (navData.isActive ? 'active' : '')}\r\n to={url}\r\n target={target}\r\n >\r\n {title}\r\n \r\n);\r\n\r\n// for label of menu items\r\nexport const getLink = (title: any, url: string, target?: string) => (\r\n \r\n {title}\r\n \r\n);\r\n\r\n// for label of conrol panel longest menu items\r\nexport const getTitlWithToolTip = (title: any) => (\r\n \r\n {title}\r\n \r\n);\r\n\r\n// for label of conrol panel longest menu items\r\nexport const getNavLinkWithToolTip = (title: string, url: string, target?: string) => (\r\n \r\n {getLink(title, url, target)}\r\n \r\n);\r\n\r\n// for profile menu\r\nexport const getTitleWithBadge = (title: any, count: number) => (\r\n <>\r\n {title}\r\n \r\n \r\n);\r\n","import { Areas, ControlPanelRoutes } from \"../../../../../router\";\r\n\r\nexport const ProfileMenuNav = {\r\n DASHBOARD: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.DASHBOARD}`,\r\n PROFILE: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.PROFILE}`,\r\n\r\n CONTROL_PANEL: `/${Areas.CONTROL_PANEL}`,\r\n};\r\n","// import { Permissions } from 'constants/users/permissions';\r\nimport {\r\n LogoutOutlined,\r\n SettingOutlined,\r\n UserOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { ItemType } from \"antd/lib/menu/hooks/useItems\";\r\nimport React from \"react\";\r\n\r\nimport AuthService from \"../../../../../services/auth.service\";\r\nimport { UserRoleTypes } from \"../../../../../services/enums\";\r\nimport {\r\n getLink,\r\n getTitleWithBadge,\r\n} from \"../../../../../services/menuCreating\";\r\nimport { ProfileMenuNav } from \"./navigation\";\r\n\r\nconst getMenuItems = (\r\n userName: string,\r\n userRole: UserRoleTypes,\r\n navigate: any,\r\n setIsAuth: any,\r\n messageCount: number = 0\r\n): ItemType[] => {\r\n return [\r\n {\r\n key: \"profile-submenu\",\r\n icon: React.createElement(UserOutlined),\r\n className: \"ant-menu-item\",\r\n label: getLink(\r\n getTitleWithBadge(userName, messageCount),\r\n ProfileMenuNav.PROFILE\r\n ),\r\n children: [\r\n {\r\n key: \"profile-submenu-user\",\r\n icon: React.createElement(UserOutlined),\r\n label: getLink(\"Profile\", ProfileMenuNav.PROFILE),\r\n },\r\n [UserRoleTypes.Admin].includes(userRole)\r\n ? {\r\n key: \"profile-submenu-control-panel\",\r\n icon: React.createElement(SettingOutlined),\r\n label: getLink(\"Control Panel\", ProfileMenuNav.CONTROL_PANEL),\r\n }\r\n : null,\r\n {\r\n key: \"profile-submenu-logout\",\r\n icon: React.createElement(LogoutOutlined),\r\n label: \"Logout\",\r\n onClick: () => AuthService.logout(setIsAuth, navigate),\r\n },\r\n ],\r\n },\r\n ];\r\n};\r\n\r\nexport default getMenuItems;\r\n","import { Menu } from \"antd\";\r\nimport { FC } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useActions } from \"../../../../hooks/useActions\";\r\nimport { useTypedSelector } from \"../../../../hooks/useTypedSelector\";\r\nimport getMenuItems from \"./config/menuItemsData\";\r\n\r\nconst ProfileMenu: FC = () => {\r\n const navigate = useNavigate();\r\n const { setIsAuth } = useActions();\r\n const currentUser = useTypedSelector((state) => state.auth.currentUser);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ProfileMenu;\r\n","import { Col, Image, Row } from \"antd\";\r\nimport { FC } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { APIRoutesBase } from \"../../../../http/apiRoutes\";\r\nimport {\r\n ISystemSettings,\r\n getValue,\r\n} from \"../../../../models/SystemSettings/systemSetting.model\";\r\nimport { UIRoutes } from \"../../../../router\";\r\nimport { SettingsTypes } from \"../../../../services/enums\";\r\nimport ProfileMenu from \"../../components/ProfileMenu/ProfileMenu\";\r\n\r\ninterface IProps {\r\n settings: ISystemSettings[];\r\n}\r\n\r\nconst UpHeader: FC = ({ settings }) => {\r\n return (\r\n \r\n {/* xs={24} sm={24} md={20} */}\r\n \r\n 0\r\n ? getValue(settings, SettingsTypes.LogoTitle)\r\n : \"\"\r\n }\r\n >\r\n 0\r\n ? `${APIRoutesBase.API_BASE}/${getValue(\r\n settings,\r\n SettingsTypes.LogoUrl\r\n )}`\r\n : \"\"\r\n }\r\n alt={\r\n settings.length > 0\r\n ? getValue(settings, SettingsTypes.LogoTitle)\r\n : \"Logo\"\r\n }\r\n preview={false}\r\n />\r\n \r\n \r\n \r\n {localStorage.getItem(\"app.Authorized\") && }\r\n \r\n \r\n );\r\n};\r\nexport default UpHeader;\r\n","import { UIRoutes } from \"../../../../../../router\";\r\nimport { MagicPagesTypes } from \"../../../../../../services/enums\";\r\n\r\nexport const HeaderNav = {\r\n Home: `/`,\r\n Projects: `/${UIRoutes.PAGE_BASE_VIEW}/projects/${MagicPagesTypes.Projects}`,\r\n FAQ: `/${UIRoutes.PAGE_BASE_VIEW}/faq/${MagicPagesTypes.Faq}`,\r\n ABOUT_US: `/${UIRoutes.PAGE_BASE_VIEW}/about-us/${MagicPagesTypes.About}`,\r\n};\r\n","// import { Permissions } from 'constants/users/permissions';\r\nimport { ItemType } from \"antd/lib/menu/hooks/useItems\";\r\nimport { getLink } from \"../../../../../../services/menuCreating\";\r\nimport { HeaderNav } from \"./navigation\";\r\n\r\nconst getMenuItems = (): ItemType[] => {\r\n //TODO: add home & portfolio\r\n return [\r\n {\r\n key: \"header-menu-home\",\r\n className: \"ant-menu-dark\",\r\n label: getLink(\"Home\", HeaderNav.Home),\r\n },\r\n {\r\n key: \"header-menu-p\",\r\n className: \"ant-menu-dark\",\r\n label: getLink(\"Projects\", HeaderNav.Projects),\r\n },\r\n {\r\n key: \"header-menu-faq\",\r\n className: \"ant-menu-dark\",\r\n label: getLink(\"FAQ\", HeaderNav.FAQ),\r\n },\r\n {\r\n key: \"header-menu-about-us\",\r\n label: getLink(\"About Us\", HeaderNav.ABOUT_US),\r\n },\r\n ];\r\n};\r\n\r\nexport default getMenuItems;\r\n","import { Col, Layout, Menu, Row } from \"antd\";\r\nimport { FC } from \"react\";\r\nimport { ISystemSettings } from \"../../../../../models/SystemSettings/systemSetting.model\";\r\nimport UpHeader from \"../UpHeader\";\r\nimport getMenuItems from './config/menuItemsData';\r\n\r\ninterface IProps {\r\n settings: ISystemSettings[];\r\n}\r\n\r\nconst AppHeader: FC = ({ settings }) => {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n","import { FC } from \"react\";\r\nimport { Col, Layout, Menu, Row } from \"antd\";\r\nimport { InstagramOutlined } from \"@ant-design/icons\";\r\nimport {\r\n ISystemSettings,\r\n getValue,\r\n} from \"../../../../../models/SystemSettings/systemSetting.model\";\r\nimport { MagicPagesTypes, SettingsTypes } from \"../../../../../services/enums\";\r\n\r\ninterface IProps {\r\n settings: ISystemSettings[];\r\n menuTheme?: \"dark\" | \"light\";\r\n}\r\n\r\nexport interface MenuItem {\r\n name: string;\r\n id: MagicPagesTypes;\r\n segment?: string;\r\n url?: string;\r\n}\r\n\r\nconst AppFooter: FC = ({ settings, menuTheme = \"dark\" }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppFooter;\r\n","import { notification } from 'antd';\r\n\r\nexport default class CommonService {\r\n static toLocalNum(number: number, options: any = {}): string {\r\n try {\r\n return number?.toLocaleString('en', {\r\n maximumFractionDigits: 3,\r\n ...options,\r\n });\r\n } catch (err) {\r\n return '0';\r\n }\r\n }\r\n\r\n static getProperty(data: any, property: string) {\r\n if (data.hasOwnProperty(property)) {\r\n return data[property];\r\n }\r\n return 'N/A';\r\n }\r\n\r\n static sortByDate(array: any[] = [], parram = 'date', sortAsc = true) {\r\n try {\r\n if (sortAsc) {\r\n return array.sort(\r\n (a, b) =>\r\n new Date(a[parram]).getTime() - new Date(b[parram]).getTime()\r\n );\r\n } else {\r\n return array.sort(\r\n (a, b) =>\r\n new Date(b[parram]).getTime() - new Date(a[parram]).getTime()\r\n );\r\n }\r\n } catch (err) {\r\n return array;\r\n }\r\n }\r\n\r\n static groupBy(array: any[] = [], key: any) {\r\n // Return the end result\r\n return array.reduce((result, currentValue) => {\r\n // If an array already present for key, push it to the array. Else create an array and push the object\r\n (result[currentValue[key]] = result[currentValue[key]] || []).push(\r\n currentValue\r\n );\r\n // Return the current iteration `result` value, this will be taken as next iteration `result` value and accumulate\r\n return result;\r\n }, {}); // empty object is the initial value for result object\r\n }\r\n\r\n static numberColor = (number: number) => {\r\n if (number < 0) {\r\n return 'number-minus';\r\n } else if (number === 0) {\r\n return 'number-zero';\r\n } else {\r\n return 'number-plus';\r\n }\r\n };\r\n\r\n static replaceSymbol(name: string): string {\r\n try {\r\n return name\r\n .trim()\r\n .replaceAll(' ', '-')\r\n .replace(/[&\\/\\\\#,+()$~%.'':*?<>{}‘’]/g, '')\r\n .toLocaleLowerCase();\r\n } catch (err) {\r\n return name;\r\n }\r\n }\r\n\r\n static getNameValues(enumType: {\r\n [s: number]: string;\r\n }): Array<{ value: number; name: string }> {\r\n return Object.keys(enumType)\r\n .filter((key) => !isNaN(parseInt(key)))\r\n .map((key) => {\r\n const val = parseInt(key);\r\n const name = enumType[val];\r\n return {\r\n value: val,\r\n name: name,\r\n };\r\n });\r\n }\r\n\r\n static showAllErrors(errors: any) {\r\n console.log('errors', errors);\r\n try {\r\n errors?.response?.data?.errorMessages.forEach((error: string) => {\r\n notification.error({ message: error });\r\n });\r\n } catch (err) {\r\n notification.error({ message: 'Something went wrong' });\r\n }\r\n }\r\n\r\n static prepareFormData = (file: File): any => {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n return formData;\r\n };\r\n\r\n static LightenDarkenColor(col: string, amt: number) {\r\n let usePound = false;\r\n if (col[0] === '#') {\r\n col = col.slice(1);\r\n usePound = true;\r\n }\r\n let num = parseInt(col, 16);\r\n let r = (num >> 16) + amt;\r\n if (r > 255) {\r\n r = 255;\r\n } else if (r < 0) {\r\n r = 0;\r\n }\r\n let b = ((num >> 8) & 0x00ff) + amt;\r\n if (b > 255) {\r\n b = 255;\r\n } else if (b < 0) {\r\n b = 0;\r\n }\r\n let g = (num & 0x0000ff) + amt;\r\n if (g > 255) {\r\n g = 255;\r\n } else if (g < 0) {\r\n g = 0;\r\n }\r\n return (usePound ? '#' : '') + (g | (b << 8) | (r << 16)).toString(16);\r\n }\r\n\r\n static getPassedTime = (startUtcDate: string): string => {\r\n const period = new Date(Date.now() - Date.parse(startUtcDate));\r\n\r\n const years = period.getUTCFullYear() - 1970;\r\n const months = period.getUTCMonth();\r\n const days = period.getUTCDate() - 1;\r\n const hours =\r\n period.getUTCHours() - Math.abs(new Date().getTimezoneOffset()) / 60;\r\n const minutes = period.getUTCMinutes();\r\n const seconds = period.getUTCSeconds();\r\n\r\n if (years > 0) {\r\n return `${years} year${years > 1 ? \"s\" : \"\"} ago`;\r\n } else if (months > 0) {\r\n return `${months} month${months > 1 ? \"s\" : \"\"} ago`;\r\n } else if (days > 0) {\r\n return `${days} day${days > 1 ? \"s\" : \"\"} ago`;\r\n } else if (hours > 0) {\r\n return `${hours} hour${hours > 1 ? \"s\" : \"\"} ago`;\r\n } else if (minutes > 0) {\r\n return `${minutes} minute${minutes > 1 ? \"s\" : \"\"} ago`;\r\n } else if (seconds > 0) {\r\n return `${seconds} second${seconds > 1 ? \"s\" : \"\"} ago`;\r\n }\r\n return `just now`;\r\n };\r\n\r\n static uniqueArray = function (arrArg: any[]) {\r\n return arrArg.filter(function (elem: any, pos: number, arr: any[]) {\r\n return arr.indexOf(elem) === pos;\r\n });\r\n };\r\n\r\n static distinct = (arrArg: any[]) => {\r\n return arrArg.filter((elem: any, pos: number, arr: any[]) => {\r\n return arr.indexOf(elem) === pos;\r\n });\r\n };\r\n}\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport { useState, useEffect } from 'react';\r\nimport RequestsService from '../services/requests.service';\r\n\r\ninterface IOptions {\r\n dependencies?: any[];\r\n query?: any;\r\n defaultValue?: any;\r\n resolve?: (response?: any) => void;\r\n reject?: (error?: any) => void;\r\n condition?: boolean;\r\n}\r\n\r\ninterface IState {\r\n loading: boolean;\r\n fetchedData: T;\r\n}\r\n\r\nconst useHttpGet = (url: string, newOptions?: IOptions): IState => {\r\n const [state, setState] = useState>(() => ({\r\n loading: false,\r\n fetchedData: newOptions?.defaultValue || null,\r\n }));\r\n\r\n const options: IOptions = {\r\n dependencies: [],\r\n query: null,\r\n defaultValue: null,\r\n resolve: undefined,\r\n reject: undefined,\r\n condition: true,\r\n ...newOptions,\r\n };\r\n\r\n useEffect(() => {\r\n if (options?.condition) {\r\n setState((s) => ({ ...s, loading: true }));\r\n\r\n RequestsService.getMethod(url, options?.query)\r\n .then((response) => {\r\n setState({\r\n loading: false,\r\n fetchedData: response.data,\r\n });\r\n options?.resolve && options?.resolve(response.data);\r\n })\r\n .catch((error) => {\r\n setState((s) => ({ ...s, loading: false }));\r\n options?.reject && options?.reject(error);\r\n });\r\n }\r\n\r\n return () => {\r\n setState({ loading: false, fetchedData: [] as any });\r\n };\r\n }, options.dependencies);\r\n\r\n return state;\r\n};\r\n\r\nexport default useHttpGet;\r\n","import React, { FC } from 'react';\r\nimport { Spin } from 'antd';\r\nimport { useActions } from '../hooks/useActions';\r\nimport useHttpGet from '../hooks/useHttpGet';\r\nimport { APIRoutes } from '../http/apiRoutes';\r\nimport { IResultResponse } from '../models/response/result.model';\r\nimport { IUser } from '../models/Users/user.model';\r\n\r\nexport interface IChildrenProps {\r\n children?: React.ReactNode | React.ReactChild;\r\n}\r\n\r\nconst AppPage: FC = ({ children }) => {\r\n const { setIsAuth, setCurrentUser } = useActions();\r\n\r\n const { loading } = useHttpGet>(\r\n `${APIRoutes.USERS}/my`,\r\n {\r\n resolve: (response: IResultResponse) => {\r\n setIsAuth(true);\r\n setCurrentUser(response.result);\r\n },\r\n condition: !!JSON.parse(localStorage.getItem('app.Authorized') as string),\r\n }\r\n );\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n return <>{children};\r\n};\r\n\r\nexport default AppPage;\r\n","import React, { FC } from \"react\";\r\nimport { Layout } from \"antd\";\r\nimport { Outlet } from \"react-router-dom\";\r\nimport AppHeader from \"./components/Header/Header\";\r\nimport AppFooter from \"./components/Footer/Footer\";\r\nimport { ISystemSettings } from \"../../../models/SystemSettings/systemSetting.model\";\r\nimport CommonService from \"../../../services/common.service\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { APIRoutes } from \"../../../http/apiRoutes\";\r\nimport { SettingsTypes } from \"../../../services/enums\";\r\nimport AppPage from \"../../AppPage\";\r\n\r\nexport const AppLayout: FC = () => {\r\n const { fetchedData: settings } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.SYSTEM_SETTINGS}/public`, {\r\n query: [\r\n SettingsTypes.LogoUrl,\r\n SettingsTypes.LogoTitle,\r\n SettingsTypes.PartnerLogoTitle,\r\n SettingsTypes.PartnerLogoUrl,\r\n SettingsTypes.Copyright,\r\n ],\r\n defaultValue: { result: [] as ISystemSettings[] },\r\n reject: CommonService.showAllErrors,\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};\r\n\r\nexport default AppLayout;\r\n","import React, { FC } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { Outlet } from 'react-router-dom';\r\n\r\nexport const AuthLayout: FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AuthLayout;\r\n","import { AxiosResponse } from 'axios';\r\n\r\nimport RequestsService from '../requests.service';\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport { INotification } from '../../models/Notifications/notification.model';\r\n\r\nexport default class NotificationsService {\r\n static async read(\r\n notificationIds: string[]\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.NOTIFICATIONS_READ,\r\n notificationIds\r\n );\r\n }\r\n\r\n static async archive(\r\n notificationIds: string[]\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.NOTIFICATIONS_ARCHIVE,\r\n notificationIds\r\n );\r\n }\r\n\r\n static async create(\r\n notification: INotification\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.NOTIFICATIONS,\r\n notification\r\n );\r\n }\r\n}\r\n","import {\r\n BellOutlined,\r\n CheckCircleOutlined,\r\n CloseCircleFilled,\r\n CloseOutlined,\r\n InfoCircleOutlined,\r\n WarningOutlined,\r\n} from '@ant-design/icons';\r\nimport {\r\n Badge,\r\n Button,\r\n List,\r\n Popover,\r\n Space,\r\n Typography,\r\n notification\r\n} from 'antd';\r\nimport { FC, useState } from 'react';\r\nimport useHttpGet from '../../../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../../../http/apiRoutes';\r\nimport { INotification } from '../../../../models/Notifications/notification.model';\r\nimport { IResultResponse } from '../../../../models/response/result.model';\r\nimport NotificationsService from '../../../../services/Notifications/notifications.service';\r\nimport CommonService from '../../../../services/common.service';\r\nimport { NotificationTypes } from '../../../../services/enums';\r\nimport classes from './Notifications.module.css';\r\n\r\nconst Notifications: FC = () => {\r\n const [unreadCount, setUnreadCount] = useState(0);\r\n const [data, setData] = useState([]);\r\n\r\n const { fetchedData: fetchedNotifications } = useHttpGet<\r\n IResultResponse\r\n >(APIRoutes.NOTIFICATIONS, {\r\n query: {\r\n count: 100,\r\n },\r\n defaultValue: {} as IResultResponse,\r\n resolve: (response) => {\r\n setData(response.result);\r\n },\r\n reject: (errors) => {\r\n CommonService.showAllErrors(errors);\r\n },\r\n });\r\n\r\n useHttpGet>(APIRoutes.NOTIFICATIONS_COUNT_UNREAD, {\r\n dependencies: [fetchedNotifications],\r\n defaultValue: 0,\r\n reject: (errors) => {\r\n CommonService.showAllErrors(errors);\r\n },\r\n resolve: (response) => setUnreadCount(response.result),\r\n });\r\n\r\n const getIcon = (iconType: NotificationTypes) => {\r\n switch (iconType) {\r\n case NotificationTypes.Success:\r\n return ;\r\n case NotificationTypes.Error:\r\n return ;\r\n case NotificationTypes.Warning:\r\n return ;\r\n }\r\n return ;\r\n };\r\n\r\n const handlerReadAll = () => {\r\n NotificationsService.read(data.map((item) => item.id))\r\n .then(() =>\r\n setData(\r\n data.map((item) => {\r\n return { ...item, isRead: true };\r\n })\r\n )\r\n )\r\n .then(() => notification.success({ message: `The messages has read` }))\r\n .catch((error) =>\r\n notification.error({ message: `The messages hasn't read: ${error}` })\r\n );\r\n };\r\n\r\n const handlerArchiveAll = () => {\r\n NotificationsService.archive(data.map((item) => item.id))\r\n .then(() => setData([]))\r\n .then(() =>\r\n notification.success({ message: `The messages has archived` })\r\n )\r\n .catch((error) =>\r\n notification.error({\r\n message: `The messages hasn't archived: ${error}`,\r\n })\r\n );\r\n };\r\n\r\n const list = () => {\r\n return (\r\n <>\r\n \r\n (\r\n {\r\n e.stopPropagation();\r\n NotificationsService.archive([item.id])\r\n .then(() =>\r\n setData(data.filter((i) => i.id !== item.id))\r\n )\r\n .catch((error) =>\r\n notification.error({\r\n message: `The messages hasn't achived: ${error}`,\r\n })\r\n );\r\n }}\r\n >\r\n \r\n ,\r\n ]}\r\n className={`${classes.notificationItem} ${item.isRead\r\n ? classes.notificationItemRead\r\n : classes.notificationItemUnread\r\n }`}\r\n onClick={() => {\r\n if (!item.isRead) {\r\n NotificationsService.read([item.id])\r\n .then(() =>\r\n setData(\r\n data.map((i) =>\r\n i.id === item.id ? { ...i, isRead: true } : i\r\n )\r\n )\r\n )\r\n .catch((error) =>\r\n notification.error({\r\n message: `The messages hasn't read: ${error}`,\r\n })\r\n );\r\n }\r\n }}\r\n >\r\n \r\n
\r\n \r\n )}\r\n />\r\n \r\n
\r\n \r\n read all\r\n \r\n clear all\r\n \r\n {/* NotificationsService.create(\r\n {\r\n type: NotificationTypes.Info,\r\n event: 1,\r\n message: 'string',\r\n } as INotification\r\n )}\r\n >\r\n add\r\n */}\r\n \r\n
\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\nexport default Notifications;\r\n","import { Col, Layout, Row } from \"antd\";\r\nimport { FC } from \"react\";\r\nimport Notifications from \"../components/Notifications/Notifications\";\r\nimport ProfileMenu from \"../components/ProfileMenu/ProfileMenu\";\r\n\r\nconst AppHeader: FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n","import { Areas, ControlPanelRoutes } from \"../../../router\";\r\n\r\nexport const ControlPanelNav = {\r\n DASHBOARD: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.DASHBOARD}`,\r\n\r\n TASKS: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.TASKS}`,\r\n\r\n USERS: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.USERS}`,\r\n USER_BASE_EDIT: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.USER_BASE_EDIT}`,\r\n USER_CREATE: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.USER_CREATE}`,\r\n\r\n MAGIC_PAGES: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.MAGIC_PAGES}`,\r\n MAGIC_PAGE_CREATE: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.MAGIC_PAGE_CREATE}`,\r\n\r\n MAGIC_PAGES_CONTENT_ITEM: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.MAGIC_PAGES_CONTENT_ITEM_Base}`,\r\n MAGIC_PAGES_CONTENT_ITEM_CREATE: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.MAGIC_PAGE_CONTENT_ITEM_CREATE_Base}`,\r\n\r\n SYSTEM_SETTINGS: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.SYSTEM_SETTINGS}`,\r\n\r\n EMAIL_TEMPLATES: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.EMAIL_TEMPLATES}`,\r\n EMAIL_TEMPLATES_BASE_EDIT: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.EMAIL_TEMPLATES_BASE_EDIT}`,\r\n\r\n FILE_BANK: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.FILE_BANK}`,\r\n\r\n IMAGE_BANK: `/${Areas.CONTROL_PANEL}/${ControlPanelRoutes.IMAGE_BANK}`,\r\n};\r\n","// import { Permissions } from 'constants/users/permissions';\r\nimport {\r\n FileOutlined,\r\n FormatPainterOutlined,\r\n LayoutOutlined,\r\n PictureOutlined,\r\n PieChartOutlined,\r\n SettingOutlined,\r\n UserOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { ItemType } from \"antd/lib/menu/hooks/useItems\";\r\nimport React from \"react\";\r\nimport { getLink } from \"../../../services/menuCreating\";\r\nimport { ControlPanelNav } from \"./navigation\";\r\n\r\nconst getLeftMenuData = (): ItemType[] => {\r\n return [\r\n {\r\n key: \"0\",\r\n icon: React.createElement(PieChartOutlined),\r\n label: getLink(\"Dashboard\", ControlPanelNav.DASHBOARD),\r\n },\r\n {\r\n key: \"2\",\r\n icon: React.createElement(UserOutlined),\r\n label: getLink(\"Users\", ControlPanelNav.USERS),\r\n },\r\n {\r\n key: \"5\",\r\n icon: React.createElement(LayoutOutlined),\r\n label: getLink(\"Content Pages\", ControlPanelNav.MAGIC_PAGES),\r\n },\r\n {\r\n key: \"11\",\r\n icon: React.createElement(FileOutlined),\r\n label: getLink(\"FileBank\", ControlPanelNav.FILE_BANK),\r\n },\r\n {\r\n key: \"12\",\r\n icon: React.createElement(PictureOutlined),\r\n label: getLink(\"ImageBank\", ControlPanelNav.IMAGE_BANK),\r\n },\r\n {\r\n key: \"6\",\r\n icon: React.createElement(SettingOutlined),\r\n label: getLink(\"System Settings\", ControlPanelNav.SYSTEM_SETTINGS),\r\n },\r\n {\r\n key: \"7\",\r\n icon: React.createElement(FormatPainterOutlined),\r\n label: getLink(\"Email Templates\", ControlPanelNav.EMAIL_TEMPLATES),\r\n },\r\n ];\r\n};\r\n\r\nexport default getLeftMenuData;\r\n","import { Image, Layout, Menu, MenuProps } from \"antd\";\r\nimport _ from \"lodash\";\r\nimport { FC, useEffect, useState } from \"react\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\nimport getLeftMenuData from \"../../../areas/controlPanel/config/menuItemsData\";\r\nimport { APIRoutesBase } from \"../../../http/apiRoutes\";\r\nimport {\r\n ISystemSettings,\r\n getValue,\r\n} from \"../../../models/SystemSettings/systemSetting.model\";\r\nimport { SettingsTypes } from \"../../../services/enums\";\r\n\r\ninterface IProps {\r\n settings: ISystemSettings[];\r\n}\r\n\r\nexport const Sider: FC = ({ settings }) => {\r\n const [collapsed, setCollapsed] = useState(false);\r\n const [openKeys, setOpenKeys] = useState([\"\"]);\r\n const [keys, setKeys] = useState(\r\n [`${localStorage.getItem(\"app.menu.selectedKeys\")}`] || []\r\n );\r\n\r\n const location = useLocation();\r\n const menu = getLeftMenuData();\r\n\r\n const rootSubmenuKeys = [\"182\", \"186\", \"187\"];\r\n\r\n const onOpenChange: MenuProps[\"onOpenChange\"] = (keys) => {\r\n const latestOpenKey = keys.find((key) => openKeys.indexOf(key) === -1);\r\n if (rootSubmenuKeys.indexOf(latestOpenKey!) === -1) {\r\n setOpenKeys([...keys]);\r\n } else {\r\n setOpenKeys(latestOpenKey ? [latestOpenKey, \"18\"] : []);\r\n }\r\n };\r\n\r\n const handleClick = (e: any) => {\r\n localStorage.setItem(\"app.menu.selectedKeys\", e.key);\r\n setKeys([e.key]);\r\n };\r\n\r\n useEffect(() => {\r\n setSelectedKeys();\r\n }, [collapsed]);\r\n\r\n const setSelectedKeys = () => {\r\n const flattenItems = (items: any, key: any) =>\r\n items.reduce((flattenedItems: any, item: any) => {\r\n flattenedItems.push(item);\r\n if (Array.isArray(item[key])) {\r\n return flattenedItems.concat(flattenItems(item[key], key));\r\n }\r\n return flattenedItems;\r\n }, []);\r\n\r\n const selectedItem = _.find(flattenItems(menu, \"children\"), [\r\n \"url\",\r\n location.pathname,\r\n ]);\r\n\r\n setKeys(selectedItem ? [selectedItem.id.toString()] : []);\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n 0\r\n ? `${APIRoutesBase.API_BASE}/${getValue(\r\n settings,\r\n SettingsTypes.LogoUrl\r\n )}`\r\n : \"\"\r\n }\r\n alt={getValue(settings, SettingsTypes.LogoTitle)}\r\n preview={false}\r\n />\r\n \r\n
\r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Sider;\r\n","import React, { FC } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { Outlet } from 'react-router-dom';\r\nimport AppHeader from './Header';\r\nimport AppPage from '../../AppPage';\r\nimport Sider from './Sider';\r\nimport useHttpGet from '../../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../../http/apiRoutes';\r\nimport { IResultResponse } from '../../../models/response/result.model';\r\nimport { ISystemSettings } from '../../../models/SystemSettings/systemSetting.model';\r\nimport CommonService from '../../../services/common.service';\r\nimport { SettingsTypes } from '../../../services/enums';\r\n\r\nexport const ControlPanelLayout: FC = () => {\r\n const { fetchedData: settings } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.SYSTEM_SETTINGS}/public`, {\r\n query: [\r\n SettingsTypes.LogoUrl,\r\n SettingsTypes.LogoTitle,\r\n SettingsTypes.PartnerLogoTitle,\r\n SettingsTypes.PartnerLogoUrl,\r\n ],\r\n defaultValue: { result: [] as ISystemSettings[] },\r\n reject: CommonService.showAllErrors,\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 );\r\n};\r\n\r\nexport default ControlPanelLayout;\r\n","export const REACT_APP_SITE_TITLE = \"originalSoftLabs\";\r\nexport const BASE_IMAGE_URL = \"http://api.originalsoftlabs.com\";\r\n\r\nexport const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 5 },\r\n md: { span: 5 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 19 },\r\n md: { span: 19 },\r\n },\r\n};\r\n\r\nexport const labelsAboveFormItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 24 },\r\n md: { span: 24 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 24 },\r\n md: { span: 24 },\r\n },\r\n};\r\n","import { Button, Form, Input, notification } from \"antd\";\r\nimport { FC, useState } from \"react\";\r\n\r\nimport { useForm } from \"antd/lib/form/Form\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { labelsAboveFormItemLayout } from \"../../services/constants\";\r\n\r\nconst StandAloneForm: FC = () => {\r\n const [form] = useForm();\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `The inquiry has been ${message}` });\r\n form.setFieldsValue({ name: \"\", email: \"\", subject: \"\", inquiry: \"\" });\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n try {\r\n //todo: create request\r\n\r\n checkFinishHandler(\"sent\");\r\n } catch (errors) {\r\n checkErrorHandler(errors);\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\r\n form.submit()}\r\n >\r\n Send\r\n \r\n \r\n );\r\n};\r\n\r\nexport default StandAloneForm;\r\n","import { Col, Row } from \"antd\";\r\nimport { FC } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http/apiRoutes\";\r\nimport { IMagicPage } from \"../../../models/MagicPages/magicPage.model\";\r\nimport {\r\n ISystemSettings,\r\n getValue,\r\n} from \"../../../models/SystemSettings/systemSetting.model\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { REACT_APP_SITE_TITLE } from \"../../../services/constants\";\r\nimport { MagicPagesTypes, SettingsTypes } from \"../../../services/enums\";\r\nimport StandAloneForm from \"../../../components/InquiryForm/StandAloneForm\";\r\n\r\nconst Index: FC = () => {\r\n const { fetchedData } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES_TYPE}/${MagicPagesTypes.Home}`,\r\n {\r\n defaultValue: { result: {} as IMagicPage },\r\n }\r\n );\r\n\r\n const { fetchedData: contactBlock } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES_TYPE}/${MagicPagesTypes.ContactsBlock}`,\r\n {\r\n defaultValue: { result: {} as IMagicPage },\r\n }\r\n );\r\n\r\n const { fetchedData: homePageSettings } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.SYSTEM_SETTINGS}/public/`, {\r\n query: {\r\n ids: [SettingsTypes.HomeScreenVideo, SettingsTypes.HomeScreenContent],\r\n },\r\n defaultValue: { result: [] as ISystemSettings[] },\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {`${fetchedData.result?.seoTitle} | ${REACT_APP_SITE_TITLE}`}\r\n \r\n \r\n\r\n
\r\n {homePageSettings?.result?.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\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Index;\r\n","import React, { FC, useState } from \"react\";\r\nimport { Col, Row, Spin } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { MenuItem } from \"../AppLayout/components/Footer/Footer\";\r\nimport { UIRoutes } from \"../../../router\";\r\nimport { IMagicPage } from \"../../../models/MagicPages/magicPage.model\";\r\nimport { MagicPagesTypes, SettingsTypes } from \"../../../services/enums\";\r\nimport { APIRoutes } from \"../../../http/apiRoutes\";\r\nimport CommonService from \"../../../services/common.service\";\r\nimport { ISystemSettings } from \"../../../models/SystemSettings/systemSetting.model\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\n\r\ninterface IProps {\r\n data: IMagicPage;\r\n loading: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst AuthTemplate: FC = ({ data, loading, children }) => {\r\n const [settings, setSettings] = useState({\r\n headerSettings: {\r\n logoUrl: \"\",\r\n logoTitle: \"\",\r\n },\r\n });\r\n\r\n useHttpGet>(\r\n `${APIRoutes.SYSTEM_SETTINGS}/public`,\r\n {\r\n defaultValue: { result: [] as ISystemSettings[] },\r\n resolve: (response) => {\r\n setSettings({\r\n headerSettings: {\r\n logoUrl: `${APIRoutes.API_BASE}/${\r\n response.result.filter(\r\n (i: any) => i.id === SettingsTypes.LogoUrl\r\n )[0].value\r\n }`,\r\n logoTitle: response.result.filter(\r\n (i: any) => i.id === SettingsTypes.LogoTitle\r\n )[0].value,\r\n },\r\n });\r\n },\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n const links: MenuItem[] = [\r\n {\r\n name: \"Terms of Use\",\r\n segment: \"terms-conditions\",\r\n id: MagicPagesTypes.Terms,\r\n },\r\n {\r\n name: \"Privacy Policy\",\r\n segment: \"privacy-policy\",\r\n id: MagicPagesTypes.PrivacyPolicy,\r\n },\r\n {\r\n name: \"Contact Us\",\r\n segment: \"contact\",\r\n id: MagicPagesTypes.Contacts,\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
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n

\r\n {data?.title}\r\n

\r\n\r\n
{children}
\r\n\r\n
\r\n \r\n\r\n {loading && }\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
    \r\n {links.map((el: MenuItem) => (\r\n
  • \r\n \r\n {el.name}\r\n \r\n
  • \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AuthTemplate;\r\n","import React, { FC, useState } from 'react';\r\nimport { Form, Input, Button, notification, Alert } from 'antd';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport AuthService from '../../services/auth.service';\r\nimport { UIRoutes } from '../../router';\r\n\r\nconst ForgotPasswordForm: FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState('');\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n setLoading(true);\r\n\r\n try {\r\n await AuthService.forgotPasswordRequest(values?.email);\r\n\r\n notification.success({\r\n message:\r\n 'We just sent you an email with instructions to reset your password',\r\n });\r\n\r\n setLoading(false);\r\n setError('');\r\n } catch (errors: any) {\r\n setLoading(false);\r\n\r\n setError(errors?.response?.data?.errorMessages[0] || '');\r\n }\r\n };\r\n\r\n const errorMessage = !!error ? (\r\n \r\n ) : null;\r\n\r\n return (\r\n <>\r\n {errorMessage}\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n Already have an account? Please log in\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ForgotPasswordForm;\r\n","import React, { FC } from 'react';\r\nimport { Row } from 'antd';\r\nimport Helmet from 'react-helmet';\r\nimport useHttpGet from '../../../hooks/useHttpGet';\r\nimport { IResultResponse } from '../../../models/response/result.model';\r\nimport { IMagicPage } from '../../../models/MagicPages/magicPage.model';\r\nimport { APIRoutes } from '../../../http/apiRoutes';\r\nimport { MagicPagesTypes } from '../../../services/enums';\r\nimport CommonService from '../../../services/common.service';\r\nimport AuthTemplate from '../../../components/Layout/AuthLayout/Template';\r\nimport ForgotPasswordForm from '../../../components/ForgotPassword';\r\nimport { REACT_APP_SITE_TITLE } from '../../../services/constants';\r\n\r\nconst ForgotPassword: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}/type/${MagicPagesTypes.RestorePassword}`,\r\n {\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n {`${fetchedData.result?.seoTitle} | ${REACT_APP_SITE_TITLE}`}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ForgotPassword;\r\n","import React, { FC, useState } from \"react\";\r\nimport { Form, Alert, Input, Button } from \"antd\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\n\r\nimport AuthService from \"../../services/auth.service\";\r\nimport { useActions } from \"../../hooks/useActions\";\r\nimport { Areas, UIRoutes } from \"../../router\";\r\nimport { UserRoleTypes } from \"../../services/enums\";\r\n\r\nconst LoginForm: FC = () => {\r\n const [error, setError] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n\r\n const { setIsAuth, setCurrentUser } = useActions();\r\n const navigate = useNavigate();\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await AuthService.login(\r\n values.username,\r\n values.password\r\n );\r\n\r\n localStorage.setItem(\r\n \"48bceb9d-e1a4-4c77-9d62-9b0e9748c07e\",\r\n response.data.result.code\r\n );\r\n localStorage.setItem(\"app.Authorized\", \"true\");\r\n\r\n setIsAuth(true);\r\n setCurrentUser(response.data.result.user);\r\n setLoading(false);\r\n setError(\"\");\r\n\r\n switch (response.data.result.user.role) {\r\n case UserRoleTypes.Admin:\r\n case UserRoleTypes.Slave:\r\n navigate(`/${Areas.CONTROL_PANEL}`);\r\n break;\r\n }\r\n } catch (errors: any) {\r\n setLoading(false);\r\n setError(errors?.response?.data?.errorMessages[0] || \"\");\r\n }\r\n };\r\n\r\n const errorMessage = !!error ? (\r\n \r\n ) : null;\r\n\r\n return (\r\n <>\r\n {errorMessage}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n Forgot password\r\n \r\n
\r\n\r\n \r\n\r\n \r\n navigate(`/${UIRoutes.ACCOUNT}/${UIRoutes.REGISTER}`)\r\n }\r\n loading={loading}\r\n >\r\n Register\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","import React, { FC } from 'react';\r\nimport { Row } from 'antd';\r\nimport { Helmet } from 'react-helmet';\r\nimport useHttpGet from '../../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../../http/apiRoutes';\r\nimport { IMagicPage } from '../../../models/MagicPages/magicPage.model';\r\nimport { IResultResponse } from '../../../models/response/result.model';\r\nimport { MagicPagesTypes } from '../../../services/enums';\r\nimport CommonService from '../../../services/common.service';\r\nimport AuthTemplate from '../../../components/Layout/AuthLayout/Template';\r\nimport LoginForm from '../../../components/Login';\r\nimport { REACT_APP_SITE_TITLE } from '../../../services/constants';\r\n\r\nconst Login: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}/type/${MagicPagesTypes.Login}`,\r\n {\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n {`${fetchedData.result?.seoTitle} | ${REACT_APP_SITE_TITLE}`}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Login;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row } from \"antd\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\ninterface IProps {\r\n loading?: boolean;\r\n title?: React.ReactNode;\r\n description?: string;\r\n content?: string | React.ReactNode;\r\n children?: React.ReactNode;\r\n extra?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst PublicAndLPPageTemplate: FC = ({\r\n loading,\r\n title,\r\n description,\r\n content,\r\n children,\r\n}) => {\r\n const location: string = useLocation().pathname.split(\"/\")[1];\r\n\r\n const columnWidth = 20;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {title}\r\n {description || \"\"}\r\n \r\n }\r\n loading={loading}\r\n >\r\n {typeof content === \"string\" ? (\r\n \r\n ) : (\r\n content\r\n )}\r\n \r\n\r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PublicAndLPPageTemplate;\r\n","import { FC } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Card, Col, Row } from \"antd\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport { IMagicPage } from \"../../models/MagicPages/magicPage.model\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { MagicPagesTypes } from \"../../services/enums\";\r\n\r\nconst FaqContentItems: FC = () => {\r\n const { fetchedData } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES_TYPE}/${MagicPagesTypes.Faq}`,\r\n {\r\n defaultValue: { result: {} as IMagicPage },\r\n }\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {fetchedData?.result?.magicContentItems?.map((f, index) => (\r\n \r\n \r\n
\r\n \r\n
\r\n

\r\n {f.title}\r\n

\r\n

{f.description}

\r\n
\r\n \r\n ))}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FaqContentItems;\r\n","import { Button, Form, Input, Modal, notification } from \"antd\";\r\nimport { FC, useState } from \"react\";\r\n\r\nimport { useForm } from \"antd/lib/form/Form\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\n\r\nconst InquiryForm: FC = () => {\r\n const [form] = useForm();\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n\r\n const create = async (values: {}) => {\r\n try {\r\n //todo: create request\r\n\r\n checkFinishHandler(\"sent\");\r\n setIsModalVisible(false);\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `The inquiry has been ${message}` });\r\n form.setFieldsValue({ name: \"\", email: \"\", subject: \"\", inquiry: \"\" });\r\n setIsModalVisible(false);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n await create(values);\r\n };\r\n\r\n const handleCancel = () => {\r\n setIsModalVisible(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n Cancel\r\n ,\r\n ,\r\n ]}\r\n onCancel={handleCancel}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n setIsModalVisible(true)}\r\n >\r\n Contact us using form\r\n \r\n \r\n );\r\n};\r\n\r\nexport default InquiryForm;\r\n","import { FC } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Card, Col, Row } from \"antd\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport { IMagicPage } from \"../../models/MagicPages/magicPage.model\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { MagicPagesTypes } from \"../../services/enums\";\r\n\r\nconst ProjectsContentItems: FC = () => {\r\n const { fetchedData } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES_TYPE}/${MagicPagesTypes.Projects}`,\r\n {\r\n defaultValue: { result: {} as IMagicPage },\r\n }\r\n );\r\n\r\n return (\r\n <>\r\n {fetchedData?.result?.magicContentItems?.map((f, index) => (\r\n \r\n {index % 2 === 0 ? (\r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n {f.title}\r\n \r\n

\r\n

{f.description}

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Year/Duration:\r\n {f.customCss}
\r\n Industry:\r\n {f.background}
\r\n Technologies:\r\n {f.icon}
\r\n \r\n
\r\n ) : (\r\n \r\n \r\n

\r\n \r\n {f.title}\r\n \r\n

\r\n

{f.description}

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Year/Duration:\r\n {f.customCss}
\r\n Industry:\r\n {f.background}
\r\n Technologies:\r\n {f.icon}
\r\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 ProjectsContentItems;\r\n","import FaqContentItems from \"../../../components/FaqContentItems/Index\";\r\nimport InquiryForm from \"../../../components/InquiryForm/Form\";\r\nimport ProjectsContentItems from \"../../../components/ProjectContentItems/Index\";\r\nimport { MagicPagesTypes } from \"../../../services/enums\";\r\n\r\nexport const PageContentItems = (type: MagicPagesTypes): React.ReactNode => {\r\n switch (type) {\r\n case MagicPagesTypes.Contacts:\r\n return ;\r\n\r\n case MagicPagesTypes.Projects:\r\n return ;\r\n\r\n case MagicPagesTypes.Faq:\r\n return ;\r\n }\r\n return null;\r\n};\r\n","import { FC } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport { Helmet } from \"react-helmet\";\r\nimport PublicAndLPPageTemplate from \"../../../components/Layout/Common/PublicAndLPPageTemplate\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http/apiRoutes\";\r\nimport { IMagicPage } from \"../../../models/MagicPages/magicPage.model\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { REACT_APP_SITE_TITLE } from \"../../../services/constants\";\r\nimport { MagicPagesTypes } from \"../../../services/enums\";\r\nimport { PageContentItems } from \"./PageContentItems\";\r\n\r\nconst Pages: FC = () => {\r\n const type: MagicPagesTypes = parseInt(useParams().type as string, 10);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES_TYPE}/${type}`,\r\n {\r\n dependencies: [type],\r\n defaultValue: { result: {} as IMagicPage },\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n {`${fetchedData.result?.seoTitle} | ${REACT_APP_SITE_TITLE}`}\r\n \r\n \r\n\r\n {PageContentItems(type)}\r\n \r\n );\r\n};\r\n\r\nexport default Pages;\r\n","import { FC } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport PublicAndLPPageTemplate from \"../../../components/Layout/Common/PublicAndLPPageTemplate\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http/apiRoutes\";\r\nimport { IMagicPageItem } from \"../../../models/MagicPages/magicPage.model\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { REACT_APP_SITE_TITLE } from \"../../../services/constants\";\r\n\r\nconst PageContentItem: FC = () => {\r\n const id: string = useParams().id ?? \"\";\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES_Content_Items}/${id}`,\r\n {\r\n dependencies: [id],\r\n defaultValue: { result: {} as IMagicPageItem },\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n {`${fetchedData.result?.title} | ${REACT_APP_SITE_TITLE}`}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PageContentItem;\r\n","import React, { FC, useState } from 'react';\r\nimport { Form, Input, Button, notification, Alert } from 'antd';\r\nimport { Link, useParams } from 'react-router-dom';\r\n\r\nimport AuthService from '../../services/auth.service';\r\nimport { UIRoutes } from '../../router';\r\n\r\nconst RestorePasswordForm: FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState('');\r\n\r\n const { code } = useParams();\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n setLoading(true);\r\n\r\n try {\r\n await AuthService.forgotPasswordChange({\r\n newPassword: values.confirm,\r\n resetPasswordToken: code as string,\r\n });\r\n\r\n notification.success({\r\n message: 'Password has been changed. Now you can log in',\r\n });\r\n\r\n setLoading(false);\r\n setError('');\r\n } catch (errors: any) {\r\n setLoading(false);\r\n setError(errors?.response?.data?.errorMessages[0] || '');\r\n }\r\n };\r\n\r\n const validatePasword = ({ getFieldValue }: any) => ({\r\n validator(_: any, value: string) {\r\n if (!value || getFieldValue('newPassword') === value) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(new Error('Passwords do not match'));\r\n },\r\n });\r\n\r\n const errorMessage = !!error ? (\r\n \r\n ) : null;\r\n\r\n return (\r\n <>\r\n {errorMessage}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n Already have an account? Please log in\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default RestorePasswordForm;\r\n","import React, { FC } from 'react';\r\nimport { Row, Card } from 'antd';\r\nimport Helmet from 'react-helmet';\r\nimport RestorePasswordForm from '../../../components/RestorePassword';\r\nimport AuthTemplate from '../../../components/Layout/AuthLayout/Template';\r\nimport { APIRoutes } from '../../../http/apiRoutes';\r\nimport { MagicPagesTypes } from '../../../services/enums';\r\nimport useHttpGet from '../../../hooks/useHttpGet';\r\nimport { IResultResponse } from '../../../models/response/result.model';\r\nimport { IMagicPage } from '../../../models/MagicPages/magicPage.model';\r\nimport CommonService from '../../../services/common.service';\r\nimport { REACT_APP_SITE_TITLE } from '../../../services/constants';\r\n\r\nconst RestorePassword: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}/type/${MagicPagesTypes.RestorePassword}`,\r\n {\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n {`${fetchedData.result?.seoTitle} | ${REACT_APP_SITE_TITLE}`}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RestorePassword;\r\n","import { Card } from 'antd';\r\nimport React, { FC } from 'react';\r\n\r\ninterface IProps {\r\n children: React.ReactNode;\r\n title: React.ReactNode;\r\n extra?: React.ReactNode;\r\n}\r\n\r\nconst CPPageTemplate: FC = ({ children, title, extra }) => {\r\n return (\r\n
\r\n \r\n {children}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CPPageTemplate;\r\n","import { AxiosResponse } from 'axios';\r\nimport RequestsService from '../requests.service';\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport { IMagicFile } from '../../models/MagicFiles/magicFile.model';\r\n\r\nexport default class MagicFilesService {\r\n static async create(\r\n magicFile: IMagicFile\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.MAGIC_FILES,\r\n magicFile\r\n );\r\n }\r\n\r\n static async update(\r\n magicFile: IMagicFile\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.MAGIC_FILES}`,\r\n magicFile\r\n );\r\n }\r\n\r\n static async upload(\r\n file: FormData\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n `${APIRoutes.MAGIC_FILES}`,\r\n file\r\n );\r\n }\r\n\r\n static async delete(\r\n magicFileId: string\r\n ): Promise>> {\r\n return RequestsService.deleteMethod>(\r\n `${APIRoutes.MAGIC_FILES}/${magicFileId}`\r\n );\r\n }\r\n}\r\n","import { FC, useState } from \"react\";\r\nimport { Button, Form, Input, notification, Upload } from \"antd\";\r\n\r\nimport {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n UploadOutlined,\r\n} from \"@ant-design/icons\";\r\n\r\nimport CommonService from \"../../services/common.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport { MagicFileTypes } from \"../../services/enums\";\r\nimport MagicFilesService from \"../../services/MagicFiles/magicFiles.service\";\r\n\r\nconst ImageBankForm: FC = () => {\r\n const [form] = Form.useForm();\r\n const [loading, setLoading] = useState(false);\r\n const [changedImage, setChangedImage] = useState(null);\r\n const [changedImageBase64, setChangedImageBase64] = useState(null);\r\n\r\n const { Dragger } = Upload;\r\n\r\n const create = async (imageName: string, image: any) => {\r\n if (image) {\r\n setLoading(true);\r\n try {\r\n const formData = CommonService.prepareFormData(image);\r\n formData.append(\"name\", imageName);\r\n formData.append(\"type\", MagicFileTypes.Image);\r\n\r\n const uploadResult = await MagicFilesService.upload(formData);\r\n\r\n if (uploadResult.status === 200) {\r\n checkFinishHandler(\"uploaded\");\r\n } else {\r\n notification.error({ message: \"Image isn't uploaded\" });\r\n }\r\n setLoading(false);\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `The image has been ${message}` });\r\n\r\n setLoading(false);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n create(values.imageName, changedImage);\r\n form.setFieldsValue({ imageName: \"\" });\r\n setChangedImage(null);\r\n setChangedImageBase64(null);\r\n };\r\n\r\n const handleDraggerBeforeUpload = (image: File) => {\r\n if (image.size / 1024 / 1024 > 5) {\r\n notification.error({ message: \"Image must be smaller than 5MB!\" });\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const handleChangeImage = (info: any) => {\r\n setChangedImage(info.file);\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", () => setChangedImageBase64(reader.result));\r\n reader.readAsDataURL(info.file);\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n

\r\n {loading ? : }\r\n

\r\n

\r\n Click or drag image to this area to upload\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 {changedImageBase64 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n uploadButton\r\n )}\r\n \r\n\r\n {changedImage && (\r\n {\r\n setChangedImage(null);\r\n setChangedImageBase64(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\nexport default ImageBankForm;\r\n","import React, { createRef } from 'react';\r\nimport { Button, Input, Space } from 'antd';\r\nimport Highlighter from 'react-highlight-words';\r\nimport { SearchOutlined } from '@ant-design/icons';\r\n\r\nexport interface IFilterDropdown {\r\n setSelectedKeys: (keys: any[]) => void;\r\n selectedKeys: any[];\r\n confirm: (obj?: { closeDropdown: boolean }) => void;\r\n clearFilters: () => void;\r\n}\r\n\r\nconst GetColumnSearchProps: any = (dataIndex: string) => {\r\n const searchInput = createRef();\r\n\r\n const state = {\r\n searchText: '',\r\n searchedColumn: '',\r\n };\r\n\r\n const handleSearch = (\r\n selectedKeys: any[],\r\n confirm: () => void,\r\n dataIndex: string\r\n ) => {\r\n confirm();\r\n\r\n state.searchText = selectedKeys[0];\r\n state.searchedColumn = dataIndex;\r\n };\r\n\r\n const handleReset = (clearFilters: () => void) => {\r\n clearFilters();\r\n state.searchText = '';\r\n };\r\n\r\n return {\r\n filterDropdown: ({\r\n setSelectedKeys,\r\n selectedKeys,\r\n confirm,\r\n clearFilters,\r\n }: IFilterDropdown) => (\r\n
\r\n \r\n setSelectedKeys(e.target.value ? [e.target.value] : [])\r\n }\r\n onPressEnter={() => handleSearch(selectedKeys, confirm, dataIndex)}\r\n style={{ marginBottom: 8, display: 'block' }}\r\n />\r\n \r\n handleSearch(selectedKeys, confirm, dataIndex)}\r\n icon={}\r\n size='small'\r\n style={{ width: 90 }}\r\n >\r\n Search\r\n \r\n {\r\n handleReset(clearFilters);\r\n confirm();\r\n }}\r\n size='small'\r\n style={{ width: 90 }}\r\n >\r\n Reset\r\n \r\n {\r\n confirm({ closeDropdown: false });\r\n\r\n state.searchText = selectedKeys[0];\r\n state.searchedColumn = dataIndex;\r\n }}\r\n >\r\n Filter\r\n \r\n \r\n
\r\n ),\r\n filterIcon: (filtered: boolean) => (\r\n \r\n ),\r\n onFilter: (value: any, record: any) =>\r\n record[dataIndex]\r\n ? record[dataIndex]\r\n .toString()\r\n .toLowerCase()\r\n .includes(value.toLowerCase())\r\n : '',\r\n onFilterDropdownVisibleChange: (visible: boolean) => {\r\n if (visible) {\r\n setTimeout(() => searchInput.current.select(), 100);\r\n }\r\n },\r\n render: (text: string | number) =>\r\n state.searchedColumn === dataIndex ? (\r\n \r\n ) : (\r\n text\r\n ),\r\n };\r\n};\r\n\r\nexport default GetColumnSearchProps;\r\n","import { FC, useState } from \"react\";\r\nimport {\r\n Button,\r\n Dropdown,\r\n Form,\r\n Input,\r\n Image,\r\n InputNumber,\r\n Menu,\r\n notification,\r\n Popconfirm,\r\n Typography,\r\n Table,\r\n TablePaginationConfig,\r\n} from \"antd\";\r\nimport { MenuOutlined } from \"@ant-design/icons\";\r\n\r\nimport GetColumnSearchProps from \"../Layout/Common/Adapters/TableFilter\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport MagicFilesService from \"../../services/MagicFiles/magicFiles.service\";\r\nimport { MagicFileTypes } from \"../../services/enums\";\r\nimport { IMagicFile } from \"../../models/MagicFiles/magicFile.model\";\r\nimport { AlignType } from \"rc-table/lib/interface\";\r\n\r\ninterface EditableCellProps extends React.HTMLAttributes {\r\n editing: boolean;\r\n dataIndex: string;\r\n title: any;\r\n inputType: \"number\" | \"text\";\r\n record: IMagicFile;\r\n index: number;\r\n children: React.ReactNode;\r\n align?: AlignType;\r\n}\r\n\r\nconst EditableCell: React.FC = ({\r\n editing,\r\n dataIndex,\r\n title,\r\n inputType,\r\n record,\r\n index,\r\n children,\r\n ...restProps\r\n}) => {\r\n const inputNode = inputType === \"number\" ? : ;\r\n\r\n return (\r\n \r\n {editing ? (\r\n \r\n {inputNode}\r\n \r\n ) : (\r\n children\r\n )}\r\n \r\n );\r\n};\r\n\r\ninterface IProps {\r\n updateTrigger: number;\r\n}\r\n\r\nconst List: FC = (props) => {\r\n const [form] = Form.useForm();\r\n const [data, setData] = useState([] as IMagicFile[]);\r\n const [editingKey, setEditingKey] = useState(\"\");\r\n\r\n const [filter, setFilter] = useState({\r\n types: [MagicFileTypes.Image],\r\n sortPropertyName: null,\r\n sortAscending: false,\r\n updateTrigger: 0,\r\n });\r\n\r\n const cancel = () => {\r\n setEditingKey(\"\");\r\n };\r\n\r\n const [pagination, setPagination] = useState({\r\n showSizeChanger: true,\r\n pageSizeOptions: [\"30\", \"50\", \"100\"],\r\n defaultPageSize: 30,\r\n pageSize: 30,\r\n current: 1,\r\n total: 1,\r\n onChange: cancel,\r\n });\r\n\r\n const isEditing = (record: IMagicFile) => record.id === editingKey;\r\n\r\n const edit = (record: Partial & { id: React.Key }) => {\r\n form.setFieldsValue({ name: \"\", path: \"\", loaded: \"\", ...record });\r\n setEditingKey(record.id);\r\n };\r\n\r\n const save = async (id: React.Key) => {\r\n try {\r\n const row = (await form.validateFields()) as IMagicFile;\r\n const newData = [...data];\r\n const index = newData.findIndex((item) => id === item.id);\r\n if (index > -1) {\r\n const item = {\r\n ...newData[index],\r\n ...row,\r\n };\r\n newData.splice(index, 1, item);\r\n setData(newData);\r\n setEditingKey(\"\");\r\n\r\n const updateResult = await MagicFilesService.update(item);\r\n if (updateResult.status === 200) {\r\n notification.success({ message: `The file name has been changed` });\r\n } else {\r\n notification.error({ message: `The file name hasn't been changed` });\r\n }\r\n }\r\n } catch (errInfo) {\r\n console.log(\"Validate Failed:\", errInfo);\r\n }\r\n setFilter({ ...filter, updateTrigger: new Date().getMilliseconds() });\r\n };\r\n\r\n const { loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_FILES}`,\r\n {\r\n dependencies: [filter, filter.updateTrigger, props.updateTrigger],\r\n query: {\r\n ...filter,\r\n pageSize: pagination.pageSize,\r\n pageNumber: pagination.current - 1,\r\n },\r\n defaultValue: {} as IResultListResponse,\r\n reject: CommonService.showAllErrors,\r\n resolve: (response) => {\r\n setPagination({\r\n ...pagination,\r\n total: response.result.totalElementsCount,\r\n });\r\n setData(response.result?.list);\r\n },\r\n }\r\n );\r\n\r\n const handleTableChange = (\r\n newPagination: TablePaginationConfig,\r\n filters: any,\r\n sorter: any\r\n ) => {\r\n setPagination({ ...pagination, ...newPagination });\r\n\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.name = filters.name ? filters.name[0] : null;\r\n newFilter.sortPropertyName = sorter.column ? sorter.field : null;\r\n newFilter.sortAscending = sorter.order === \"ascend\";\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const menu = (record: IMagicFile) => (\r\n \r\n \r\n edit(record)}\r\n >\r\n Edit\r\n \r\n \r\n\r\n \r\n {\r\n const deleteResult = await MagicFilesService.delete(record.id);\r\n if (deleteResult.status === 200) {\r\n setData(data.filter((i) => i.id !== record.id));\r\n }\r\n }}\r\n onCancel={() => {}}\r\n okText=\"Yes\"\r\n cancelText=\"No\"\r\n >\r\n Delete\r\n \r\n \r\n \r\n );\r\n\r\n const columns = [\r\n {\r\n title: \"Name\",\r\n dataIndex: \"name\",\r\n sorter: true,\r\n editable: true,\r\n ...GetColumnSearchProps(\"name\"),\r\n },\r\n {\r\n title: \"Image\",\r\n dataIndex: \"path\",\r\n sorter: false,\r\n editable: false,\r\n align: \"center\" as AlignType,\r\n render: (path: string) => (\r\n \r\n ),\r\n },\r\n {\r\n title: \"Path\",\r\n dataIndex: \"path\",\r\n sorter: true,\r\n editable: false,\r\n },\r\n {\r\n title: \"Loaded\",\r\n dataIndex: \"createdOnUtc\",\r\n sorter: true,\r\n editable: false,\r\n },\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n editable: false,\r\n render: (_: any, record: IMagicFile) => {\r\n const editable = isEditing(record);\r\n return editable ? (\r\n \r\n save(record.id)}\r\n style={{ marginRight: 8 }}\r\n >\r\n Save\r\n \r\n Cancel\r\n \r\n ) : (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const mergedColumns = columns.map((col) => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: (record: IMagicFile) => ({\r\n record,\r\n inputType: \"text\",\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n editing: isEditing(record),\r\n }),\r\n };\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import { FC, useState } from \"react\";\r\nimport { Button, Modal } from \"antd\";\r\nimport CPPageTemplate from \"../../../../components/Layout/Common/CPPageTemplate\";\r\nimport ImageBankForm from \"../../../../components/ImageBank/Form\";\r\nimport List from \"../../../../components/ImageBank/List\";\r\n\r\nconst ImageBankList: FC = () => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [updateTrigger, setUpdateTrigger] = useState(0);\r\n\r\n const createHandler = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n setUpdateTrigger(Date.now());\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n CREATE}\r\n >\r\n \r\n\r\n \r\n Cancel\r\n ,\r\n ]}\r\n onCancel={handleCancel}\r\n width={1000}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ImageBankList;\r\n","import { Col, Row } from \"antd\";\r\nimport { FC } from \"react\";\r\n\r\nconst DashboardStatistic: FC = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DashboardStatistic;\r\n","import { FC } from 'react';\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport DashboardStatistic from '../../../../components/Dashboard/DashboardStatistic';\r\n\r\nconst Dashboard: FC = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","import { AxiosResponse } from 'axios';\r\n\r\nimport RequestsService from '../requests.service';\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport { IEmailTemplate } from '../../models/email-template.model';\r\n\r\nexport default class EmailTemplatesService {\r\n static async update(\r\n template: IEmailTemplate\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.EMAIL_TEMPLATES}/${template.id}`,\r\n template\r\n );\r\n }\r\n}\r\n","import React, { FC, useRef } from 'react';\r\nimport JoditEditor from 'jodit-react';\r\n\r\ninterface IProps {\r\n content: string;\r\n setContent: (value: string) => void;\r\n}\r\n\r\nconst Editor: FC = ({ content, setContent }) => {\r\n const editor = useRef(null);\r\n\r\n const config = {\r\n readonly: false, // all options from https://xdsoft.net/jodit/doc/\r\n };\r\n\r\n return (\r\n setContent(value)}\r\n onChange={() => {}}\r\n />\r\n );\r\n};\r\n\r\nexport default Editor;\r\n","import { Button, Form, FormInstance, Input, Tag, notification } from 'antd';\r\nimport { FC, useEffect, useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { ControlPanelNav } from '../../areas/controlPanel/config/navigation';\r\nimport { IEmailTemplate } from '../../models/email-template.model';\r\nimport EmailTemplatesService from '../../services/EmailTemplates/emailTemplates.service';\r\nimport CommonService from '../../services/common.service';\r\nimport { formItemLayout } from '../../services/constants';\r\nimport Editor from '../Layout/Common/Adapters/Editor';\r\n\r\ninterface IProps {\r\n data: IEmailTemplate;\r\n form: FormInstance;\r\n}\r\n\r\nconst EmailTemplateForm: FC = ({ data, form }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [content, setContent] = useState('');\r\n\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n setContent(data?.contentHtml);\r\n }, [data]);\r\n\r\n const update = async (values: IEmailTemplate) => {\r\n setLoading(true);\r\n\r\n try {\r\n await EmailTemplatesService.update({\r\n ...data,\r\n ...values,\r\n contentHtml: content,\r\n });\r\n\r\n notification.success({ message: 'Template has been updated' });\r\n\r\n setLoading(false);\r\n\r\n navigate(ControlPanelNav.EMAIL_TEMPLATES);\r\n } catch (errors: any) {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n }\r\n };\r\n\r\n const tags = () => {\r\n return data.keys.split(', ').map((i) => {i});\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n await update(values);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {data?.keys?.length > 0 ? tags() : null}\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 EmailTemplateForm;\r\n","import React, { FC } from 'react';\r\nimport { Form, Spin } from 'antd';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport useHttpGet from '../../../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../../../http/apiRoutes';\r\nimport { IResultResponse } from '../../../../models/response/result.model';\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport EmailTemplateForm from '../../../../components/EmailTemplates/Form';\r\nimport { IEmailTemplate } from '../../../../models/email-template.model';\r\n\r\nconst EmailTemplateEdit: FC = () => {\r\n const { id } = useParams();\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.EMAIL_TEMPLATES}/${id}`,\r\n {\r\n defaultValue: { result: {} as IEmailTemplate },\r\n condition: !!id,\r\n resolve: (response: IResultResponse) =>\r\n form.setFieldsValue(response.result),\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\nexport default EmailTemplateEdit;\r\n","import { Table, TablePaginationConfig } from 'antd';\r\nimport { FC, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { ControlPanelNav } from '../../areas/controlPanel/config/navigation';\r\nimport useHttpGet from '../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { IEmailTemplate } from '../../models/email-template.model';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport CommonService from '../../services/common.service';\r\nimport GetColumnSearchProps from '../Layout/Common/Adapters/TableFilter';\r\n\r\nconst List: FC = () => {\r\n const [filter, setFilter] = useState({\r\n subject: null,\r\n keys: null,\r\n });\r\n\r\n const { fetchedData, loading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.EMAIL_TEMPLATES}`, {\r\n dependencies: [filter],\r\n query: {\r\n ...filter,\r\n },\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n });\r\n\r\n const handleTableChange = (\r\n newPagination: TablePaginationConfig,\r\n filters: any,\r\n _: any\r\n ) => {\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.subject = filters.subject ? filters.subject[0] : null;\r\n newFilter.keys = filters.keys ? filters.keys[0] : null;\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: 'Subject',\r\n dataIndex: 'subject',\r\n ...GetColumnSearchProps('subject'),\r\n },\r\n {\r\n title: 'Keys',\r\n dataIndex: 'keys',\r\n ...GetColumnSearchProps('keys'),\r\n },\r\n {\r\n title: '',\r\n dataIndex: 'id',\r\n render: (_: any, record: IEmailTemplate) => {\r\n return (\r\n \r\n Edit\r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import React, { FC } from 'react';\r\nimport List from '../../../../components/EmailTemplates/List';\r\n\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\n\r\nconst EmailTemplatesList: FC = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmailTemplatesList;\r\n","import { FC, useState } from \"react\";\r\nimport { Button, Form, Input, notification, Upload } from \"antd\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport { MagicFileTypes } from \"../../services/enums\";\r\nimport MagicFilesService from \"../../services/MagicFiles/magicFiles.service\";\r\nimport { InboxOutlined, LoadingOutlined } from \"@ant-design/icons\";\r\n\r\nconst FileBankForm: FC = () => {\r\n const [form] = Form.useForm();\r\n const [loading, setLoading] = useState(false);\r\n const [changedFile, setChangedFile] = useState(null);\r\n\r\n const { Dragger } = Upload;\r\n\r\n const create = async (fileName: string, file: any) => {\r\n if (file) {\r\n setLoading(true);\r\n try {\r\n const formData = CommonService.prepareFormData(file);\r\n formData.append(\"name\", fileName);\r\n formData.append(\"type\", MagicFileTypes.File);\r\n\r\n const uploadResult = await MagicFilesService.upload(formData);\r\n\r\n if (uploadResult.status === 200) {\r\n checkFinishHandler(\"uploaded\");\r\n } else {\r\n notification.error({ message: \"File isn't uploaded\" });\r\n }\r\n setLoading(false);\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `The file has been ${message}` });\r\n\r\n setLoading(false);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n create(values.fileName, changedFile);\r\n form.setFieldsValue({ fileName: \"\" });\r\n setChangedFile(null);\r\n };\r\n\r\n const handleDraggerBeforeUpload = (_: File) => {\r\n return false;\r\n };\r\n\r\n const handleChangeFile = (info: any) => {\r\n setChangedFile(info.file);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n {loading ? : }\r\n

\r\n

\r\n Click or drag file to this area to upload\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 FileBankForm;\r\n","import { FC, useState } from \"react\";\r\nimport {\r\n Button,\r\n Dropdown,\r\n Form,\r\n Input,\r\n InputNumber,\r\n Menu,\r\n notification,\r\n Popconfirm,\r\n Typography,\r\n Table,\r\n TablePaginationConfig,\r\n} from \"antd\";\r\nimport { MenuOutlined } from \"@ant-design/icons\";\r\n\r\nimport GetColumnSearchProps from \"../Layout/Common/Adapters/TableFilter\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport MagicFilesService from \"../../services/MagicFiles/magicFiles.service\";\r\nimport { MagicFileTypes } from \"../../services/enums\";\r\nimport { IMagicFile } from \"../../models/MagicFiles/magicFile.model\";\r\n\r\ninterface EditableCellProps extends React.HTMLAttributes {\r\n editing: boolean;\r\n dataIndex: string;\r\n title: any;\r\n inputType: \"number\" | \"text\";\r\n record: IMagicFile;\r\n index: number;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst EditableCell: React.FC = ({\r\n editing,\r\n dataIndex,\r\n title,\r\n inputType,\r\n record,\r\n index,\r\n children,\r\n ...restProps\r\n}) => {\r\n const inputNode = inputType === \"number\" ? : ;\r\n\r\n return (\r\n \r\n {editing ? (\r\n \r\n {inputNode}\r\n \r\n ) : (\r\n children\r\n )}\r\n \r\n );\r\n};\r\n\r\ninterface IProps {\r\n updateTrigger: number;\r\n}\r\n\r\nconst List: FC = (props) => {\r\n const [form] = Form.useForm();\r\n const [data, setData] = useState([] as IMagicFile[]);\r\n const [editingKey, setEditingKey] = useState(\"\");\r\n\r\n const [filter, setFilter] = useState({\r\n types: [MagicFileTypes.File],\r\n name: null,\r\n sortPropertyName: null,\r\n sortAscending: false,\r\n updateTrigger: 0,\r\n });\r\n\r\n const cancel = () => {\r\n setEditingKey(\"\");\r\n };\r\n\r\n const [pagination, setPagination] = useState({\r\n showSizeChanger: true,\r\n pageSizeOptions: [\"30\", \"50\", \"100\"],\r\n defaultPageSize: 30,\r\n pageSize: 30,\r\n current: 1,\r\n total: 1,\r\n onChange: cancel,\r\n });\r\n\r\n const { loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_FILES}`,\r\n {\r\n dependencies: [filter, filter.updateTrigger, props.updateTrigger],\r\n query: {\r\n ...filter,\r\n pageSize: pagination.pageSize,\r\n pageNumber: pagination.current - 1,\r\n },\r\n defaultValue: {} as IResultListResponse,\r\n resolve: (response) => {\r\n setPagination({\r\n ...pagination,\r\n total: response.result.totalElementsCount,\r\n });\r\n setData(response.result?.list);\r\n },\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n const isEditing = (record: IMagicFile) => record.id === editingKey;\r\n\r\n const edit = (record: Partial & { id: React.Key }) => {\r\n form.setFieldsValue({ name: \"\", path: \"\", loaded: \"\", ...record });\r\n setEditingKey(record.id);\r\n };\r\n\r\n const save = async (id: React.Key) => {\r\n try {\r\n const row = (await form.validateFields()) as IMagicFile;\r\n const newData = [...data];\r\n const index = newData.findIndex((item) => id === item.id);\r\n if (index > -1) {\r\n const item = {\r\n ...newData[index],\r\n ...row,\r\n };\r\n newData.splice(index, 1, item);\r\n setData(newData);\r\n setEditingKey(\"\");\r\n\r\n const updateResult = await MagicFilesService.update(item);\r\n if (updateResult.status === 200) {\r\n notification.success({ message: `The file name has been changed` });\r\n } else {\r\n notification.error({ message: `The file name hasn't been changed` });\r\n }\r\n }\r\n } catch (errInfo) {\r\n console.log(\"Validate Failed:\", errInfo);\r\n }\r\n setFilter({ ...filter, updateTrigger: new Date().getMilliseconds() });\r\n };\r\n\r\n const handleTableChange = (\r\n newPagination: TablePaginationConfig,\r\n filters: any,\r\n sorter: any\r\n ) => {\r\n setPagination({ ...pagination, ...newPagination });\r\n\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.name = filters.name ? filters.name[0] : null;\r\n newFilter.sortPropertyName = sorter.column ? sorter.field : null;\r\n newFilter.sortAscending = sorter.order === \"ascend\";\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const menu = (record: IMagicFile) => (\r\n \r\n \r\n edit(record)}\r\n >\r\n Edit\r\n \r\n \r\n\r\n \r\n {\r\n const deleteResult = await MagicFilesService.delete(record.id);\r\n if (deleteResult.status === 200) {\r\n setData(data.filter((i) => i.id !== record.id));\r\n notification.success({ message: `The file has been deleted` });\r\n } else {\r\n notification.error({ message: `The file hasn't been deleted` });\r\n }\r\n }}\r\n onCancel={() => {}}\r\n okText=\"Yes\"\r\n cancelText=\"No\"\r\n >\r\n Delete\r\n \r\n \r\n \r\n );\r\n\r\n const columns = [\r\n {\r\n title: \"Name\",\r\n dataIndex: \"name\",\r\n sorter: true,\r\n editable: true,\r\n ...GetColumnSearchProps(\"name\"),\r\n },\r\n {\r\n title: \"Path\",\r\n dataIndex: \"path\",\r\n sorter: true,\r\n editable: false,\r\n },\r\n {\r\n title: \"Loaded\",\r\n dataIndex: \"createdOnUtc\",\r\n editable: false,\r\n sorter: true,\r\n },\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n editable: false,\r\n render: (_: any, record: IMagicFile) => {\r\n const editable = isEditing(record);\r\n return editable ? (\r\n \r\n save(record.id)}\r\n style={{ marginRight: 8 }}\r\n >\r\n Save\r\n \r\n Cancel\r\n \r\n ) : (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const mergedColumns = columns.map((col) => {\r\n if (!col.editable) {\r\n return col;\r\n }\r\n return {\r\n ...col,\r\n onCell: (record: IMagicFile) => ({\r\n record,\r\n inputType: \"text\",\r\n dataIndex: col.dataIndex,\r\n title: col.title,\r\n editing: isEditing(record),\r\n }),\r\n };\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import { FC, useState } from 'react';\r\nimport { Button, Modal } from 'antd';\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport FileBankForm from '../../../../components/FileBank/Form';\r\nimport List from '../../../../components/FileBank/List';\r\n\r\nconst FileBankList: FC = () => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [updateTrigger, setUpdateTrigger] = useState(0);\r\n\r\n const createHandler = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n setUpdateTrigger(Date.now());\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n CREATE}\r\n >\r\n \r\n\r\n \r\n Cancel\r\n ,\r\n ]}\r\n onCancel={handleCancel}\r\n width={1000}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FileBankList;\r\n","import { AxiosResponse } from 'axios';\r\nimport RequestsService from '../requests.service';\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport { IMagicPage } from '../../models/MagicPages/magicPage.model';\r\nimport { IMagicPageHistory } from '../../models/magic-page-history.model';\r\n\r\nexport default class MagicPagesService {\r\n static async create(\r\n magicPage: IMagicPage\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n `${APIRoutes.MAGIC_PAGES}`,\r\n magicPage\r\n );\r\n }\r\n\r\n static async update(\r\n magicPage: IMagicPage\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.MAGIC_PAGES}`,\r\n magicPage\r\n );\r\n }\r\n\r\n static async restore(\r\n magicPageId: string\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.MAGIC_PAGES_HISTORY}/restore/${magicPageId}`,\r\n null\r\n );\r\n }\r\n\r\n static async delete(\r\n magicPageId: string\r\n ): Promise>> {\r\n return RequestsService.deleteMethod>(\r\n `${APIRoutes.MAGIC_PAGES}/${magicPageId}`,\r\n null\r\n );\r\n }\r\n}\r\n","import { Button, Form, FormInstance, Input, notification } from 'antd';\r\nimport { FC, useEffect, useState } from 'react';\r\n\r\nimport { IMagicPage } from '../../models/MagicPages/magicPage.model';\r\nimport MagicPagesService from '../../services/MagicPages/magicPages.service';\r\nimport CommonService from '../../services/common.service';\r\nimport { formItemLayout } from '../../services/constants';\r\nimport Editor from '../Layout/Common/Adapters/Editor';\r\n\r\ninterface IProps {\r\n data: IMagicPage;\r\n form: FormInstance;\r\n}\r\n\r\nconst MagicPageForm: FC = ({ data, form }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [content, setContent] = useState('');\r\n\r\n useEffect(() => {\r\n setContent(data?.content);\r\n }, [data]);\r\n\r\n const create = async (values: IMagicPage) => {\r\n setLoading(true);\r\n\r\n try {\r\n await MagicPagesService.create({ ...values, content });\r\n\r\n notification.success({ message: `Page has been created` });\r\n\r\n setLoading(false);\r\n } catch (errors: any) {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n }\r\n };\r\n\r\n const update = async (values: IMagicPage) => {\r\n setLoading(true);\r\n\r\n try {\r\n await MagicPagesService.update({ ...data, ...values, content });\r\n\r\n notification.success({ message: `Page has been updated` });\r\n\r\n setLoading(false);\r\n } catch (errors: any) {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n }\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n if (data?.id) {\r\n await update(values);\r\n } else {\r\n await create(values);\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 \r\n \r\n \r\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 MagicPageForm;\r\n","import { Form, Spin } from 'antd';\r\nimport { FC } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport MagicPageForm from '../../../../components/MagicPages/Form';\r\nimport useHttpGet from '../../../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../../../http/apiRoutes';\r\nimport { IMagicPage } from '../../../../models/MagicPages/magicPage.model';\r\nimport { IResultResponse } from '../../../../models/response/result.model';\r\n\r\nconst MagicPageEdit: FC = () => {\r\n const { id } = useParams();\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}/${id}`,\r\n {\r\n dependencies: [id],\r\n defaultValue: { result: {} as any },\r\n condition: !!id,\r\n resolve: (response: IResultResponse) =>\r\n form.setFieldsValue(response.result),\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\nexport default MagicPageEdit;\r\n","import React, { FC, useState } from 'react';\r\nimport { Form, Button, notification, Modal } from 'antd';\r\n\r\nimport CommonService from '../../services/common.service';\r\nimport { formItemLayout } from '../../services/constants';\r\nimport MagicPagesService from '../../services/MagicPages/magicPages.service';\r\nimport { IMagicPageHistory } from '../../models/magic-page-history.model';\r\n\r\ninterface IProps {\r\n data: IMagicPageHistory;\r\n isOpen: boolean;\r\n setIsOpen: (value: boolean) => void;\r\n}\r\n\r\nconst MagicPageHistoryFormModal: FC = ({ data, isOpen, setIsOpen }) => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const restore = async () => {\r\n setLoading(true);\r\n\r\n try {\r\n await MagicPagesService.restore(data?.id);\r\n\r\n notification.success({ message: `${data.title} has been restored` });\r\n\r\n setIsOpen(false);\r\n setLoading(false);\r\n } catch (errors: any) {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n }\r\n };\r\n\r\n const handleSubmitForm = async () => {\r\n await restore();\r\n };\r\n\r\n const handleCancel = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n \r\n Cancel\r\n ,\r\n ]}\r\n onCancel={handleCancel}\r\n width={1000}\r\n >\r\n
\r\n {data.title}\r\n {data.seoTitle}\r\n {data.description}\r\n {data.seoDescription}\r\n {data.url}\r\n {data.content}\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MagicPageHistoryFormModal;\r\n","import { FC, useState } from \"react\";\r\nimport {\r\n Table,\r\n Menu,\r\n Button,\r\n Dropdown,\r\n Popconfirm,\r\n TablePaginationConfig,\r\n Popover,\r\n Spin,\r\n List as AntList,\r\n Typography,\r\n} from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { EyeOutlined, MenuOutlined } from \"@ant-design/icons\";\r\nimport GetColumnSearchProps from \"../Layout/Common/Adapters/TableFilter\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { IMagicPage } from \"../../models/MagicPages/magicPage.model\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IMagicPageHistory } from \"../../models/magic-page-history.model\";\r\nimport MagicPageHistoryFormModal from \"./MagicPageHistoryFormModal\";\r\nimport MagicPagesService from \"../../services/MagicPages/magicPages.service\";\r\nimport { random } from \"lodash\";\r\nimport { MagicPagesTypes, mapEnum } from \"../../services/enums\";\r\nimport { ControlPanelNav } from \"../../areas/controlPanel/config/navigation\";\r\n\r\nconst List: FC = () => {\r\n const [pageHistoryItem, setPageHistoryItem] = useState(\r\n {} as IMagicPageHistory\r\n );\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const [filter, setFilter] = useState({\r\n sortPropertyName: null,\r\n sortAscending: false,\r\n updateTrigger: 0,\r\n });\r\n\r\n const [pagination, setPagination] = useState({\r\n showSizeChanger: true,\r\n pageSizeOptions: [\"30\", \"50\", \"100\"],\r\n defaultPageSize: 30,\r\n pageSize: 30,\r\n current: 1,\r\n total: 1,\r\n });\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}`,\r\n {\r\n dependencies: [filter, filter.updateTrigger],\r\n query: {\r\n ...filter,\r\n pageSize: pagination.pageSize,\r\n pageNumber: pagination.current - 1,\r\n },\r\n defaultValue: {} as IResultListResponse,\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n const { fetchedData: pageHistory, loading: pageHistoryLoading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.MAGIC_PAGES_HISTORY_FOR_PAGE}/${pageHistoryItem?.id}`, {\r\n dependencies: [pageHistoryItem?.id],\r\n defaultValue: [],\r\n condition: !!pageHistoryItem?.id,\r\n reject: CommonService.showAllErrors,\r\n });\r\n\r\n const handleTableChange = (\r\n newPagination: TablePaginationConfig,\r\n filters: any,\r\n sorter: any\r\n ) => {\r\n setPagination({ ...pagination, ...newPagination });\r\n\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.title = filters.title ? filters?.title[0] : null;\r\n newFilter.description = filters.description ? filters.description[0] : null;\r\n newFilter.sortPropertyName = sorter.column ? sorter.field : null;\r\n newFilter.sortAscending = sorter.order === \"ascend\";\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const pageHistoryItemChangeHandler = (record: IMagicPageHistory) => {\r\n setIsOpen(true);\r\n setPageHistoryItem(record);\r\n };\r\n\r\n const history = (\r\n \r\n (\r\n \r\n {item.title}\r\n pageHistoryItemChangeHandler(item)}\r\n >\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n );\r\n\r\n const handleDelete = (id: string) => {\r\n MagicPagesService.delete(id);\r\n setFilter({ ...filter, updateTrigger: random() });\r\n };\r\n\r\n const menu = (record: IMagicPage) => (\r\n \r\n \r\n Edit\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Content items\r\n \r\n \r\n\r\n {record.type === MagicPagesTypes.Custom && (\r\n \r\n handleDelete(record.id)}\r\n onCancel={() => {}}\r\n okText=\"Yes\"\r\n cancelText=\"No\"\r\n >\r\n Delete\r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n const columns = [\r\n {\r\n title: \"Title\",\r\n dataIndex: \"title\",\r\n sorter: true,\r\n ...GetColumnSearchProps(\"title\"),\r\n },\r\n {\r\n title: \"Description\",\r\n dataIndex: \"description\",\r\n sorter: true,\r\n ...GetColumnSearchProps(\"description\"),\r\n },\r\n {\r\n title: \"Type\",\r\n dataIndex: \"type\",\r\n render: (text: any) =>\r\n mapEnum(MagicPagesTypes).filter((a) => a.id === text.toString())[0]\r\n ?.name,\r\n },\r\n {\r\n title: \"Updated\",\r\n dataIndex: \"updatedOnUtc\",\r\n render: (text: any, record: IMagicPage) => (\r\n <>\r\n {record?.updatedOnUtc}
by {record?.updatedByUser.name}\r\n \r\n ),\r\n },\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n render: (_: any, record: IMagicPage) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import { FC } from 'react';\r\nimport { Button } from 'antd';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport { ControlPanelNav } from '../../config/navigation';\r\nimport List from '../../../../components/MagicPages/List';\r\n\r\nconst MagicPagesList: FC = () => {\r\n const navigate = useNavigate();\r\n\r\n const createHandler = () => {\r\n navigate(ControlPanelNav.MAGIC_PAGE_CREATE);\r\n };\r\n\r\n return (\r\n CREATE}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MagicPagesList;\r\n","import { AxiosResponse } from \"axios\";\r\nimport RequestsService from \"../requests.service\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IMagicPageItem } from \"../../models/MagicPages/magicPage.model\";\r\n\r\nexport default class MagicPagesContentItems {\r\n static async getForPage(\r\n pageId: string\r\n ): Promise>> {\r\n return RequestsService.getMethod>(\r\n `${APIRoutes.MAGIC_PAGES_Content_Items_ForPage}/${pageId}`\r\n );\r\n }\r\n\r\n static async create(\r\n magicPage: IMagicPageItem\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n `${APIRoutes.MAGIC_PAGES_Content_Items}`,\r\n magicPage\r\n );\r\n }\r\n\r\n static async update(\r\n magicPage: IMagicPageItem\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.MAGIC_PAGES_Content_Items}`,\r\n magicPage\r\n );\r\n }\r\n\r\n static async delete(\r\n magicPageId: string\r\n ): Promise>> {\r\n return RequestsService.deleteMethod>(\r\n `${APIRoutes.MAGIC_PAGES}/${magicPageId}`,\r\n null\r\n );\r\n }\r\n}\r\n","import { Button, Form, FormInstance, Input, Upload, notification } from \"antd\";\r\nimport { FC, useEffect, useState } from \"react\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n UploadOutlined,\r\n} from \"@ant-design/icons\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { IMagicPageItem } from \"../../models/MagicPages/magicPage.model\";\r\nimport MagicPagesContentItems from \"../../services/MagicPages/magicPagesContentItems.service\";\r\nimport MagicFilesService from \"../../services/MagicFiles/magicFiles.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport Editor from \"../Layout/Common/Adapters/Editor\";\r\nimport { MagicFileTypes } from \"../../services/enums\";\r\n\r\nconst { Dragger } = Upload;\r\n\r\ninterface IProps {\r\n data: IMagicPageItem;\r\n form: FormInstance;\r\n}\r\n\r\nconst MagicPageContentItemForm: FC = ({ data, form }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [content, setContent] = useState(\"\");\r\n const [changedImage, setChangedImage] = useState(null);\r\n const [changedImageBase64, setChangedImageBase64] = useState(null);\r\n\r\n useEffect(() => {\r\n setContent(data?.content);\r\n }, [data]);\r\n\r\n const create = async (values: IMagicPageItem) => {\r\n setLoading(true);\r\n\r\n try {\r\n await MagicPagesContentItems.create({ ...values, content });\r\n\r\n notification.success({ message: `Page item has been created` });\r\n\r\n setLoading(false);\r\n } catch (errors: any) {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n }\r\n };\r\n\r\n const update = async (values: IMagicPageItem) => {\r\n setLoading(true);\r\n try {\r\n await MagicPagesContentItems.update({ ...data, ...values, content });\r\n\r\n notification.success({ message: `Page item has been updated` });\r\n\r\n setLoading(false);\r\n } catch (errors: any) {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n }\r\n };\r\n\r\n const handleImageUpload = async () => {\r\n if (changedImage) {\r\n setLoading(true);\r\n\r\n const name = form.getFieldValue(\"title\");\r\n\r\n try {\r\n const formData = CommonService.prepareFormData(changedImage);\r\n formData.append(\"name\", name);\r\n formData.append(\"type\", MagicFileTypes.Image);\r\n\r\n const uploadResult = await MagicFilesService.upload(formData);\r\n\r\n if (uploadResult.status === 200) {\r\n form.setFieldsValue({\r\n image: uploadResult.data.result.path,\r\n });\r\n checkFinishHandler(\"uploaded\");\r\n } else {\r\n notification.error({ message: \"Image isn't uploaded\" });\r\n }\r\n setLoading(false);\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `The image has been ${message}` });\r\n\r\n setLoading(false);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleDraggerBeforeUpload = (image: File) => {\r\n if (image.size / 1024 / 1024 > 10) {\r\n notification.error({ message: \"Image must be smaller than 10MB!\" });\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const handleChangeImage = (info: any) => {\r\n setChangedImage(info.file);\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", () => setChangedImageBase64(reader.result));\r\n reader.readAsDataURL(info.file);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n if (data?.id) {\r\n await update(values);\r\n } else {\r\n await create(values);\r\n }\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n

\r\n {loading ? : }\r\n

\r\n

\r\n Click or drag image to this area to upload\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\r\n \r\n \r\n {changedImageBase64 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n uploadButton\r\n )}\r\n \r\n\r\n {changedImage && (\r\n <>\r\n {\r\n setChangedImage(null);\r\n setChangedImageBase64(null);\r\n }}\r\n />\r\n\r\n \r\n \r\n )}\r\n\r\n {data?.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 \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\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 MagicPageContentItemForm;\r\n","import { Form, Spin } from \"antd\";\r\nimport { FC } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport CPPageTemplate from \"../../../../components/Layout/Common/CPPageTemplate\";\r\nimport useHttpGet from \"../../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../../http/apiRoutes\";\r\nimport { IMagicPageItem } from \"../../../../models/MagicPages/magicPage.model\";\r\nimport { IResultResponse } from \"../../../../models/response/result.model\";\r\nimport MagicPageContentItemForm from \"../../../../components/ProjectContentItems/Form\";\r\n\r\nconst MagicPageContentItemEdit: FC = () => {\r\n const { id, pageId } = useParams();\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES_Content_Items}/${id}`,\r\n {\r\n dependencies: [id],\r\n defaultValue: { result: {} as any },\r\n condition: !!id,\r\n resolve: (response: IResultResponse) =>\r\n form.setFieldsValue(response.result),\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\nexport default MagicPageContentItemEdit;\r\n","import { FC, useState } from \"react\";\r\nimport { Table } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport GetColumnSearchProps from \"../Layout/Common/Adapters/TableFilter\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { IMagicPageItem } from \"../../models/MagicPages/magicPage.model\";\r\nimport MagicPagesService from \"../../services/MagicPages/magicPages.service\";\r\nimport { random } from \"lodash\";\r\nimport { ControlPanelNav } from \"../../areas/controlPanel/config/navigation\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\n\r\ninterface IProps {\r\n magicPageId: string | undefined;\r\n}\r\nconst List: FC = ({ magicPageId }) => {\r\n const [filter, setFilter] = useState({\r\n sortPropertyName: null,\r\n sortAscending: false,\r\n updateTrigger: 0,\r\n });\r\n\r\n const { fetchedData, loading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.MAGIC_PAGES_Content_Items_ForPage}/${magicPageId}`, {\r\n dependencies: [filter, filter.updateTrigger],\r\n query: {\r\n ...filter,\r\n },\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n });\r\n\r\n const handleTableChange = (filters: any, sorter: any) => {\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.title = filters.title ? filters?.title[0] : null;\r\n newFilter.description = filters.description ? filters.description[0] : null;\r\n newFilter.sortPropertyName = sorter.column ? sorter.field : null;\r\n newFilter.sortAscending = sorter.order === \"ascend\";\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const handleDelete = (id: string) => {\r\n MagicPagesService.delete(id);\r\n setFilter({ ...filter, updateTrigger: random() });\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Title\",\r\n dataIndex: \"title\",\r\n sorter: true,\r\n ...GetColumnSearchProps(\"title\"),\r\n },\r\n {\r\n title: \"Description\",\r\n dataIndex: \"description\",\r\n sorter: true,\r\n ...GetColumnSearchProps(\"description\"),\r\n },\r\n {\r\n title: \"Updated\",\r\n dataIndex: \"updatedOnUtc\",\r\n render: (text: any, record: IMagicPageItem) => (\r\n <>\r\n {/* {record?.updatedOnUtc}
by {record?.updatedByUser.name} */}\r\n \r\n ),\r\n },\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n render: (_: any, record: IMagicPageItem) => {\r\n return (\r\n <>\r\n \r\n Edit\r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import { FC } from \"react\";\r\nimport { Button } from \"antd\";\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\nimport CPPageTemplate from \"../../../../components/Layout/Common/CPPageTemplate\";\r\nimport { ControlPanelNav } from \"../../config/navigation\";\r\nimport List from \"../../../../components/ProjectContentItems/List\";\r\n\r\nconst MagicPagesContentItemsList: FC = () => {\r\n const navigate = useNavigate();\r\n const { pageId } = useParams();\r\n\r\n const createHandler = () => {\r\n navigate(`${ControlPanelNav.MAGIC_PAGES_CONTENT_ITEM_CREATE}/${pageId}`);\r\n };\r\n\r\n return (\r\n CREATE}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MagicPagesContentItemsList;\r\n","import { AxiosResponse } from 'axios';\r\n\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { ISystemSettings } from '../../models/SystemSettings/systemSetting.model';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport { SettingsTypes } from '../enums';\r\nimport RequestsService from '../requests.service';\r\n\r\nexport default class SystemSettingsService {\r\n static async update(\r\n systemSettings: ISystemSettings\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.SYSTEM_SETTINGS}/${systemSettings.id}`,\r\n systemSettings\r\n );\r\n }\r\n\r\n static async upload(\r\n id: SettingsTypes,\r\n file: FormData\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.SYSTEM_SETTINGS}/${id}/file`,\r\n file\r\n );\r\n }\r\n}\r\n","import {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n UploadOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { Button, Form, Image, Input, Upload, notification } from \"antd\";\r\nimport { FC, useState } from \"react\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport {\r\n ISystemSettings,\r\n getValue,\r\n} from \"../../models/SystemSettings/systemSetting.model\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport MagicFilesService from \"../../services/MagicFiles/magicFiles.service\";\r\nimport SystemSettingsService from \"../../services/SystemSettings/systemSettings.service\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport {\r\n MagicFileTypes,\r\n SettingsTypes,\r\n SystemSettingsFileNames,\r\n} from \"../../services/enums\";\r\n\r\nconst SystemSettingsHeaderForm: FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [updateTrigger, setUpdateTrigger] = useState(0);\r\n const [changedLogoFile, setChangedLogoFile] = useState(null);\r\n const [changedLogoFileBase64, setChangedLogoFileBase64] = useState(null);\r\n const [changedPartnerLogoFile, setChangedPartnerLogoFile] = useState(null);\r\n const [changedPartnerLogoFileBase64, setChangedPartnerLogoFileBase64] =\r\n useState(null);\r\n\r\n const { Dragger } = Upload;\r\n\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData } = useHttpGet>(\r\n `${APIRoutes.SYSTEM_SETTINGS}/public`,\r\n {\r\n defaultValue: { result: [] as ISystemSettings[] },\r\n dependencies: [updateTrigger],\r\n resolve: (response: IResultResponse) =>\r\n form.setFieldsValue({\r\n logoUrl: getValue(response.result, SettingsTypes.LogoUrl),\r\n logoTitle: getValue(response.result, SettingsTypes.LogoTitle),\r\n partnerLogoUrl: getValue(\r\n response.result,\r\n SettingsTypes.PartnerLogoUrl\r\n ),\r\n partnerLogoTitle: getValue(\r\n response.result,\r\n SettingsTypes.PartnerLogoTitle\r\n ),\r\n }),\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n const createSystemSetting = (id: SettingsTypes, newValue: string) => {\r\n const original = fetchedData?.result?.filter(\r\n (rec: any) => rec.id === id\r\n )[0];\r\n original.value = newValue;\r\n return original;\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const uploadImageAndUpdateSetting = async (id: SettingsTypes, file: any) => {\r\n if (file) {\r\n try {\r\n const formData = CommonService.prepareFormData(file);\r\n formData.append(\r\n \"name\",\r\n SystemSettingsFileNames.filter((a) => a.id === id)[0].name\r\n );\r\n formData.append(\"type\", MagicFileTypes.Image);\r\n const uploadResult = await MagicFilesService.upload(formData);\r\n if (uploadResult.data?.result) {\r\n const logoSetting = createSystemSetting(\r\n id,\r\n uploadResult.data.result.path\r\n );\r\n await SystemSettingsService.update(logoSetting);\r\n }\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n setLoading(true);\r\n\r\n uploadImageAndUpdateSetting(SettingsTypes.LogoUrl, changedLogoFile);\r\n uploadImageAndUpdateSetting(\r\n SettingsTypes.PartnerLogoUrl,\r\n changedPartnerLogoFile\r\n );\r\n\r\n const logoTitleSetting = createSystemSetting(\r\n SettingsTypes.LogoTitle,\r\n values.logoTitle\r\n );\r\n await SystemSettingsService.update(logoTitleSetting);\r\n\r\n const partnerLogoTitleSetting = createSystemSetting(\r\n SettingsTypes.PartnerLogoTitle,\r\n values.partnerLogoTitle\r\n );\r\n await SystemSettingsService.update(partnerLogoTitleSetting);\r\n\r\n setUpdateTrigger(Date.now());\r\n\r\n setLoading(false);\r\n setChangedLogoFile(null);\r\n setChangedLogoFileBase64(null);\r\n setChangedPartnerLogoFile(null);\r\n setChangedPartnerLogoFileBase64(null);\r\n notification.success({ message: `Settings is updated` });\r\n };\r\n\r\n const handleDraggerBeforeUpload = (file: File) => {\r\n if (file.size / 1024 / 1024 > 5) {\r\n notification.error({ message: \"Image must be smaller than 5MB!\" });\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const handleChangeLogoFile = (info: any) => {\r\n setChangedLogoFile(info.file);\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", () =>\r\n setChangedLogoFileBase64(reader.result)\r\n );\r\n reader.readAsDataURL(info.file);\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n

\r\n {loading ? : }\r\n

\r\n

\r\n Click or drag file to this area to upload\r\n

\r\n
\r\n );\r\n\r\n return !fetchedData?.result ? null : (\r\n \r\n \r\n {fetchedData?.result?.length > 0 && (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {changedLogoFileBase64 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n uploadButton\r\n )}\r\n \r\n {changedLogoFile && (\r\n {\r\n setChangedLogoFile(null);\r\n setChangedLogoFileBase64(null);\r\n }}\r\n />\r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n {fetchedData?.result?.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\nexport default SystemSettingsHeaderForm;\r\n","import {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n UploadOutlined,\r\n} from '@ant-design/icons';\r\nimport { Button, Form, Upload, notification } from 'antd';\r\nimport { FC, useState } from 'react';\r\n\r\nimport useHttpGet from '../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { ISystemSettings, getValue } from '../../models/SystemSettings/systemSetting.model';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport SystemSettingsService from '../../services/SystemSettings/systemSettings.service';\r\nimport CommonService from '../../services/common.service';\r\nimport { formItemLayout } from '../../services/constants';\r\nimport {\r\n MagicFileTypes,\r\n SettingsTypes,\r\n SystemSettingsFileNames,\r\n} from '../../services/enums';\r\nimport Editor from '../Layout/Common/Adapters/Editor';\r\n\r\nconst SystemSettingsHomeScreenForm: FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [changedHomeScreenVideo, setChangedHomeScreenVideo] = useState(null);\r\n const [homeScreenContent, setHomeScreenContent] = useState('');\r\n\r\n const { Dragger } = Upload;\r\n\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData } = useHttpGet>(\r\n `${APIRoutes.SYSTEM_SETTINGS}/public`,\r\n {\r\n defaultValue: { result: [] as ISystemSettings[] },\r\n resolve: (response: IResultResponse) => {\r\n form.setFieldsValue({\r\n homeScreenVideo: getValue(\r\n response.result,\r\n SettingsTypes.HomeScreenVideo\r\n ),\r\n });\r\n setHomeScreenContent(\r\n getValue(\r\n response.result, SettingsTypes.HomeScreenContent\r\n )\r\n );\r\n },\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n const createSystemSetting = (id: SettingsTypes, newValue: string) => {\r\n const original = fetchedData?.result?.filter(\r\n (rec: any) => rec.id === id\r\n )[0];\r\n original.value = newValue;\r\n return original;\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const uploadVideoAndUpdateSetting = async (id: SettingsTypes, file: any) => {\r\n if (file) {\r\n try {\r\n const formData = CommonService.prepareFormData(file);\r\n formData.append(\r\n 'name',\r\n SystemSettingsFileNames.filter((a) => a.id === id)[0].name\r\n );\r\n formData.append('type', MagicFileTypes.Video);\r\n\r\n await SystemSettingsService.upload(id, formData);\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n };\r\n\r\n const handleSubmitForm = async () => {\r\n setLoading(true);\r\n uploadVideoAndUpdateSetting(\r\n SettingsTypes.HomeScreenVideo,\r\n changedHomeScreenVideo\r\n );\r\n\r\n const homeScreenContentSetting = createSystemSetting(\r\n SettingsTypes.HomeScreenContent,\r\n homeScreenContent\r\n );\r\n await SystemSettingsService.update(homeScreenContentSetting);\r\n\r\n setLoading(false);\r\n notification.success({ message: `Settings is updated` });\r\n };\r\n\r\n const handleChangeHomeScreenVideo = (info: any) => {\r\n setChangedHomeScreenVideo(info.file);\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n

\r\n {loading ? : }\r\n

\r\n

\r\n Click or drag file to this area to upload\r\n

\r\n
\r\n );\r\n\r\n const handleDraggerBeforeUpload = (file: File) => {\r\n if (file.size / 1024 / 1024 > 10) {\r\n notification.error({ message: 'Video must be smaller than 10MB!' });\r\n }\r\n\r\n return false;\r\n };\r\n\r\n return !fetchedData?.result ? null : (\r\n \r\n \r\n {fetchedData?.result?.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {uploadButton}\r\n \r\n\r\n {changedHomeScreenVideo && (\r\n {\r\n setChangedHomeScreenVideo(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\nexport default SystemSettingsHomeScreenForm;\r\n","import { EyeInvisibleOutlined, EyeTwoTone } from '@ant-design/icons';\r\nimport { Button, Form, Input, notification } from 'antd';\r\nimport { FC, useState } from 'react';\r\n\r\nimport useHttpGet from '../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { ISystemSettings, getValue } from '../../models/SystemSettings/systemSetting.model';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport SystemSettingsService from '../../services/SystemSettings/systemSettings.service';\r\nimport CommonService from '../../services/common.service';\r\nimport { formItemLayout } from '../../services/constants';\r\nimport { SettingsTypes } from '../../services/enums';\r\nimport Editor from '../Layout/Common/Adapters/Editor';\r\n\r\nconst SystemSettingsCommonForm: FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [copyrightContent, setCopyrightContent] = useState(null);\r\n\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData } = useHttpGet>(\r\n `${APIRoutes.SYSTEM_SETTINGS}/public`,\r\n {\r\n defaultValue: { result: [] as ISystemSettings[] },\r\n resolve: (response: IResultResponse) => {\r\n form.setFieldsValue({\r\n systemEmail: getValue(\r\n response.result,\r\n SettingsTypes.SystemEmail,\r\n ),\r\n systemEmailPassword: getValue(\r\n response.result,\r\n SettingsTypes.SystemEmailPassword,\r\n ),\r\n });\r\n setCopyrightContent(\r\n getValue(response.result, SettingsTypes.Copyright)\r\n );\r\n },\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n const createSystemSetting = (id: SettingsTypes, newValue: string) => {\r\n const original = fetchedData?.result?.filter(\r\n (rec: any) => rec.id === id\r\n )[0];\r\n original.value = newValue;\r\n return original;\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n setLoading(true);\r\n const systemEmail = createSystemSetting(\r\n SettingsTypes.SystemEmail,\r\n values.systemEmail\r\n );\r\n await SystemSettingsService.update(systemEmail);\r\n\r\n const systemEmailPassword = createSystemSetting(\r\n SettingsTypes.SystemEmailPassword,\r\n values.systemEmailPassword\r\n );\r\n await SystemSettingsService.update(systemEmailPassword);\r\n\r\n const copyright = createSystemSetting(\r\n SettingsTypes.Copyright,\r\n copyrightContent\r\n );\r\n await SystemSettingsService.update(copyright);\r\n\r\n setLoading(false);\r\n notification.success({ message: `Settings updated` });\r\n };\r\n\r\n return !fetchedData?.result ? null : (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n visible ? : \r\n }\r\n />\r\n \r\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 SystemSettingsCommonForm;\r\n","import { FC } from 'react';\r\nimport { Tabs } from 'antd';\r\n\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport SystemSettingsHeaderForm from '../../../../components/SystemSettings/headerForm';\r\nimport SystemSettingsHomeScreenForm from '../../../../components/SystemSettings/homeScreenForm';\r\nimport SystemSettingsCommonForm from '../../../../components/SystemSettings/commonForm';\r\n\r\nconst SystemSettings2Edit: FC = () => {\r\n const { TabPane } = Tabs;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SystemSettings2Edit;\r\n","import { AxiosResponse } from 'axios';\r\n\r\nimport { APIRoutes } from '../../http/apiRoutes';\r\nimport { IUser } from '../../models/Users/user.model';\r\nimport { IResultResponse } from '../../models/response/result.model';\r\nimport RequestsService from '../requests.service';\r\n\r\nexport default class UsersService {\r\n static async create(\r\n user: IUser,\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.USERS,\r\n user\r\n );\r\n }\r\n\r\n static async update(\r\n user: IUser,\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.USERS}/${user.id}`,\r\n user\r\n );\r\n }\r\n\r\n static async updatePassword(\r\n userId: string,\r\n password: string,\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.USERS}/${userId}/password/change`,\r\n {\r\n newPassword: password,\r\n }\r\n );\r\n }\r\n\r\n static async uploadPhoto(\r\n id: string,\r\n file: string,\r\n ): Promise>> {\r\n return RequestsService.patchMethod>(\r\n `${APIRoutes.USERS}/${id}/photo`,\r\n file\r\n );\r\n }\r\n\r\n static async changePassword(\r\n nPassword: string,\r\n cPassword: string,\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.USERS}/password/change`,\r\n {\r\n newPassword: nPassword,\r\n currentPassword: cPassword,\r\n }\r\n );\r\n }\r\n\r\n static async changePhoto(\r\n file: string,\r\n ): Promise>> {\r\n return RequestsService.patchMethod>(\r\n `${APIRoutes.USERS}/photo`,\r\n file\r\n );\r\n }\r\n}\r\n","import {\r\n Button,\r\n Form,\r\n FormInstance,\r\n Image,\r\n Input,\r\n Select,\r\n Upload,\r\n notification,\r\n} from \"antd\";\r\nimport { FC, useState } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n UploadOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { ControlPanelNav } from \"../../areas/controlPanel/config/navigation\";\r\nimport { APIRoutesBase } from \"../../http/apiRoutes\";\r\nimport { IUser } from \"../../models/Users/user.model\";\r\nimport UsersService from \"../../services/Users/users.service\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport { UserRoleTypes } from \"../../services/enums\";\r\n\r\ninterface IProps {\r\n data: IUser;\r\n form: FormInstance;\r\n}\r\n\r\nconst UserForm: FC = ({ data, form }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [changedPhotoFile, setChangedPhotoFile] = useState(null);\r\n const [changedPhotoFileBase64, setChangedPhotoFileBase64] =\r\n useState(null);\r\n\r\n const { Dragger } = Upload;\r\n\r\n const navigate = useNavigate();\r\n\r\n const create = async (values: IUser) => {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await UsersService.create(values);\r\n\r\n if (values.password) {\r\n try {\r\n await updatePassword(response.data.result.id, values.password);\r\n notification.success({ message: `User password has been created` });\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n checkFinishHandler(\"created\");\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const update = async (values: IUser) => {\r\n setLoading(true);\r\n\r\n try {\r\n await UsersService.update({ ...data, ...values });\r\n\r\n if (values.password) {\r\n try {\r\n await updatePassword(data?.id, values.password);\r\n notification.success({ message: `User password has been updated` });\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n checkFinishHandler(\"updated\");\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const updatePassword = async (userId: string, password: string) => {\r\n return UsersService.updatePassword(userId, password);\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `User has been ${message}` });\r\n\r\n setLoading(false);\r\n navigate(ControlPanelNav.USERS);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleDraggerBeforeUpload = (file: File) => {\r\n if (file.size / 1024 / 1024 > 5) {\r\n notification.error({ message: \"Image must be smaller than 5MB!\" });\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const handleChangePhotoFile = (info: any) => {\r\n setChangedPhotoFile(info.file);\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", () =>\r\n setChangedPhotoFileBase64(reader.result)\r\n );\r\n reader.readAsDataURL(info.file);\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n

\r\n {loading ? : }\r\n

\r\n

\r\n Click or drag file to this area to upload\r\n

\r\n
\r\n );\r\n\r\n const uploadPhoto = async (file: any) => {\r\n if (file) {\r\n try {\r\n const formData = CommonService.prepareFormData(file);\r\n\r\n await UsersService.uploadPhoto(data?.id, formData);\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n if (!!data?.id) {\r\n await update(values);\r\n } else {\r\n await create(values);\r\n }\r\n uploadPhoto(changedPhotoFile);\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 \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {data && (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {changedPhotoFileBase64 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n uploadButton\r\n )}\r\n \r\n {changedPhotoFile && (\r\n {\r\n setChangedPhotoFile(null);\r\n setChangedPhotoFileBase64(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\nexport default UserForm;\r\n","import React, { FC } from 'react';\r\nimport { Form, Spin } from 'antd';\r\nimport { useParams } from 'react-router-dom';\r\nimport useHttpGet from '../../../../hooks/useHttpGet';\r\nimport { APIRoutes } from '../../../../http/apiRoutes';\r\nimport { IResultResponse } from '../../../../models/response/result.model';\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport UserForm from '../../../../components/Users/Form';\r\nimport { IUser } from '../../../../models/Users/user.model';\r\n\r\nconst UserEdit: FC = () => {\r\n const { id } = useParams();\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.USERS}/${id}`,\r\n {\r\n defaultValue: { result: {} as any },\r\n condition: !!id,\r\n resolve: (response: IResultResponse) =>\r\n form.setFieldsValue(response.result),\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\nexport default UserEdit;\r\n","import { MenuOutlined } from \"@ant-design/icons\";\r\nimport { Button, Dropdown, Menu, Table, TablePaginationConfig } from \"antd\";\r\nimport { FC, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { ControlPanelNav } from \"../../areas/controlPanel/config/navigation\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http/apiRoutes\";\r\nimport { IUser } from \"../../models/Users/user.model\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { RecordStates, UserRoleTypes } from \"../../services/enums\";\r\nimport GetColumnSearchProps from \"../Layout/Common/Adapters/TableFilter\";\r\n\r\nconst List: FC = () => {\r\n const [filter, setFilter] = useState({\r\n roles: null,\r\n firstName: null,\r\n lastName: null,\r\n email: null,\r\n states: null,\r\n sortPropertyName: null,\r\n sortAscending: false,\r\n });\r\n\r\n const [pagination, setPagination] = useState({\r\n showSizeChanger: true,\r\n pageSizeOptions: [\"30\", \"50\", \"100\"],\r\n defaultPageSize: 30,\r\n pageSize: 30,\r\n current: 1,\r\n total: 1,\r\n });\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.USERS}`,\r\n {\r\n dependencies: [filter],\r\n query: {\r\n ...filter,\r\n pageSize: pagination.pageSize,\r\n pageNumber: pagination.current - 1,\r\n },\r\n defaultValue: {} as IResultListResponse,\r\n reject: CommonService.showAllErrors,\r\n resolve: (response) => {\r\n setPagination({\r\n ...pagination,\r\n total: response.result.totalElementsCount,\r\n });\r\n },\r\n }\r\n );\r\n\r\n const handleTableChange = (\r\n newPagination: TablePaginationConfig,\r\n filters: any,\r\n sorter: any\r\n ) => {\r\n setPagination({ ...pagination, ...newPagination });\r\n\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.roles = filters.role ? filters.role : null;\r\n newFilter.firstName = filters.firstName ? filters.firstName[0] : null;\r\n newFilter.lastName = filters.lastName ? filters.lastName[0] : null;\r\n newFilter.email = filters.email ? filters.email[0] : null;\r\n newFilter.states = filters.state ? filters.state : null;\r\n newFilter.sortPropertyName = sorter.column ? sorter.field : null;\r\n newFilter.sortAscending = sorter.order === \"ascend\";\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const menu = (record: IUser) => (\r\n \r\n \r\n Edit\r\n \r\n \r\n );\r\n\r\n const columns = [\r\n {\r\n title: \"Role\",\r\n dataIndex: \"role\",\r\n filters: [\r\n {\r\n text: \"Slave\",\r\n value: UserRoleTypes.Slave,\r\n },\r\n {\r\n text: \"Admin\",\r\n value: UserRoleTypes.Admin,\r\n },\r\n ],\r\n onFilter: (value: any, record: IUser) => record.role === value,\r\n render: (role: UserRoleTypes) => UserRoleTypes[role],\r\n },\r\n {\r\n title: \"First name\",\r\n dataIndex: \"firstName\",\r\n sorter: true,\r\n ...GetColumnSearchProps(\"firstName\"),\r\n render: (firstName: string, record: IUser) => (\r\n \r\n {firstName}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Last name\",\r\n dataIndex: \"lastName\",\r\n sorter: true,\r\n ...GetColumnSearchProps(\"lastName\"),\r\n },\r\n {\r\n title: \"Email\",\r\n dataIndex: \"email\",\r\n sorter: true,\r\n ...GetColumnSearchProps(\"email\"),\r\n render: (email: string) => {email},\r\n },\r\n {\r\n title: \"State\",\r\n dataIndex: \"state\",\r\n sorter: true,\r\n filters: [\r\n {\r\n text: RecordStates[RecordStates.Active],\r\n value: RecordStates.Active,\r\n },\r\n {\r\n text: RecordStates[RecordStates.Pending],\r\n value: RecordStates.Pending,\r\n },\r\n {\r\n text: RecordStates[RecordStates.Locked],\r\n value: RecordStates.Locked,\r\n },\r\n {\r\n text: RecordStates[RecordStates.Archived],\r\n value: RecordStates.Archived,\r\n },\r\n {\r\n text: RecordStates[RecordStates.Deleted],\r\n value: RecordStates.Deleted,\r\n },\r\n ],\r\n onFilter: (value: any, record: IUser) => record.state === value,\r\n render: (state: RecordStates) => RecordStates[state],\r\n },\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n render: (_: any, record: IUser) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import { FC } from 'react';\r\nimport { Button } from 'antd';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport CPPageTemplate from '../../../../components/Layout/Common/CPPageTemplate';\r\nimport List from '../../../../components/Users/List';\r\nimport { ControlPanelNav } from '../../config/navigation';\r\n\r\nconst UsersList: FC = () => {\r\n const navigate = useNavigate();\r\n\r\n const createHandler = () => {\r\n navigate(ControlPanelNav.USER_CREATE);\r\n };\r\n\r\n return (\r\n CREATE}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UsersList;\r\n","import { FC } from \"react\";\r\nimport { Navigate, Route, Routes } from \"react-router-dom\";\r\n\r\nimport { Areas, ControlPanelRoutes, IRoute, UIRoutes } from \"../router\";\r\nimport AuthGuard from \"./AuthGuard\";\r\n\r\nimport AppLayout from \"../components/Layout/AppLayout\";\r\nimport AuthLayout from \"../components/Layout/AuthLayout\";\r\nimport ControlPanelLayout from \"../components/Layout/ControlPanelLayout\";\r\n\r\nimport Index from \"../areas/public/pages/Index\";\r\nimport ForgotPassword from \"../areas/public/pages/ForgotPassword\";\r\nimport Login from \"../areas/public/pages/Login\";\r\nimport Pages from \"../areas/public/pages/Pages\";\r\nimport PageContentItem from \"../areas/public/pages/PageContentItem\";\r\nimport RestorePassword from \"../areas/public/pages/RestorePassword\";\r\n\r\nimport ImageBankList from \"../areas/controlPanel/pages//imageBank/List\";\r\n\r\nimport Dashboard from \"../areas/controlPanel/pages/dashboard/Dashboard\";\r\n\r\nimport EmailTemplateEdit from \"../areas/controlPanel/pages/emailTemplates/Edit\";\r\nimport EmailTemplatesList from \"../areas/controlPanel/pages/emailTemplates/List\";\r\n\r\nimport FileBankList from \"../areas/controlPanel/pages/fileBank/List\";\r\n\r\nimport MagicPageEdit from \"../areas/controlPanel/pages/magicPages/Edit\";\r\nimport MagicPagesList from \"../areas/controlPanel/pages/magicPages/List\";\r\n\r\nimport MagicPagesContentItemsEdit from \"../areas/controlPanel/pages/magicPagesContentItems/Edit\";\r\nimport MagicPagesContentItemsList from \"../areas/controlPanel/pages/magicPagesContentItems/List\";\r\n\r\nimport SystemSettings from \"../areas/controlPanel/pages/systemSettings\";\r\n\r\nimport UserEdit from \"../areas/controlPanel/pages/users/Edit\";\r\nimport UsersList from \"../areas/controlPanel/pages/users/List\";\r\n\r\nexport const authRoutes: IRoute[] = [\r\n {\r\n path: UIRoutes.LOGIN,\r\n element: ,\r\n },\r\n {\r\n path: UIRoutes.FORGOT_PASSWORD,\r\n element: ,\r\n },\r\n {\r\n path: UIRoutes.RESTORE_PASSWORD,\r\n element: ,\r\n },\r\n];\r\n\r\nexport const appRoutes: IRoute[] = [\r\n {\r\n path: UIRoutes.PAGE_VIEW,\r\n element: ,\r\n },\r\n {\r\n path: UIRoutes.PAGE_VIEW_ITEM,\r\n element: ,\r\n },\r\n];\r\n\r\nexport const controlPanelRoutes: IRoute[] = [\r\n {\r\n path: ControlPanelRoutes.DASHBOARD,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.USERS,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.USER_EDIT,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.USER_CREATE,\r\n element: ,\r\n },\r\n\r\n {\r\n path: ControlPanelRoutes.FILE_BANK,\r\n element: ,\r\n },\r\n\r\n {\r\n path: ControlPanelRoutes.IMAGE_BANK,\r\n element: ,\r\n },\r\n\r\n {\r\n path: ControlPanelRoutes.MAGIC_PAGES,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.MAGIC_PAGE_CREATE,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.MAGIC_PAGE_EDIT,\r\n element: ,\r\n },\r\n\r\n {\r\n path: ControlPanelRoutes.MAGIC_PAGES_CONTENT_ITEM,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.MAGIC_PAGE_CONTENT_ITEM_CREATE,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.MAGIC_PAGE_CONTENT_ITEM_EDIT,\r\n element: ,\r\n },\r\n\r\n {\r\n path: ControlPanelRoutes.SYSTEM_SETTINGS,\r\n element: ,\r\n },\r\n\r\n {\r\n path: ControlPanelRoutes.EMAIL_TEMPLATES,\r\n element: ,\r\n },\r\n {\r\n path: ControlPanelRoutes.EMAIL_TEMPLATES_EDIT,\r\n element: ,\r\n },\r\n];\r\n\r\nconst AppRouter: FC = () => {\r\n return (\r\n \r\n }>\r\n {appRoutes.map((route, index) => (\r\n \r\n ))}\r\n } />\r\n } />\r\n \r\n\r\n }>\r\n {authRoutes.map((route, index) => (\r\n \r\n ))}\r\n } />\r\n \r\n\r\n }>\r\n }\r\n >\r\n {controlPanelRoutes.map((route, index) => (\r\n \r\n ))}\r\n }\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppRouter;\r\n","import React from 'react';\r\nimport './assets/less/index.less';\r\nimport AppRouter from './router/AppRouter';\r\n\r\nfunction App() {\r\n return ;\r\n}\r\n\r\nexport default App;\r\n","import ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { BrowserRouter } from 'react-router-dom';\r\n\r\nimport { store } from './store';\r\nimport App from './App';\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n","import { AxiosResponse } from 'axios';\r\nimport RequestsService from './requests.service';\r\nimport { APIRoutes } from '../http/apiRoutes';\r\nimport { IAuthResult } from '../models/auth.model';\r\nimport { IResultResponse } from '../models/response/result.model';\r\nimport { UIRoutes } from '../router';\r\n\r\ninterface IForgotPasswordChange {\r\n newPassword: string;\r\n resetPasswordToken: string;\r\n}\r\n\r\nfunction createAuthHash(username: string, password: string) {\r\n return Buffer.from(`${username}:${password}`).toString('base64');\r\n}\r\n\r\nexport default class AuthService {\r\n static async login(\r\n login: string,\r\n password: string\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.AUTH_LOGIN,\r\n null,\r\n {\r\n headers: {\r\n Authorization: `Basic ${createAuthHash(login, password)}`,\r\n },\r\n }\r\n );\r\n }\r\n\r\n static async forgotPasswordRequest(\r\n email: string\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n APIRoutes.AUTH_FORGOT_PASSWORD_REQUEST,\r\n { email }\r\n );\r\n }\r\n\r\n static async forgotPasswordChange(\r\n data: IForgotPasswordChange\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n APIRoutes.AUTH_FORGOT_PASSWORD_CHANGE,\r\n data\r\n );\r\n }\r\n\r\n static logout = (setIsAuth: any, navigate: any) => {\r\n setIsAuth(false);\r\n localStorage.removeItem('48bceb9d-e1a4-4c77-9d62-9b0e9748c07e');\r\n localStorage.removeItem('app.Authorized');\r\n\r\n navigate(`/${UIRoutes.ACCOUNT}/${UIRoutes.LOGIN}`);\r\n };\r\n}\r\n"],"sourceRoot":""}