}/>;\r\n\r\nexport default CustomScrollbars;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { onNavStyleChange, toggleCollapsedSideNav } from 'appRedux/actions/Settings';\r\nimport {\r\n NAV_STYLE_DRAWER,\r\n NAV_STYLE_FIXED,\r\n NAV_STYLE_MINI_SIDEBAR,\r\n NAV_STYLE_NO_HEADER_MINI_SIDEBAR,\r\n TAB_SIZE,\r\n THEME_TYPE_LITE\r\n} from '../../constants/ThemeSetting';\r\n\r\nclass SidebarLogo extends Component {\r\n render() {\r\n const { width, themeType, navCollapsed } = this.props;\r\n let { navStyle } = this.props;\r\n if (width < TAB_SIZE && navStyle === NAV_STYLE_FIXED) {\r\n navStyle = NAV_STYLE_DRAWER;\r\n }\r\n return (\r\n
\r\n {navStyle === NAV_STYLE_FIXED || navStyle === NAV_STYLE_MINI_SIDEBAR ? (\r\n
\r\n {\r\n if (navStyle === NAV_STYLE_DRAWER) {\r\n this.props.toggleCollapsedSideNav(!navCollapsed);\r\n } else if (navStyle === NAV_STYLE_FIXED) {\r\n this.props.onNavStyleChange(NAV_STYLE_MINI_SIDEBAR);\r\n } else if (navStyle === NAV_STYLE_NO_HEADER_MINI_SIDEBAR) {\r\n this.props.toggleCollapsedSideNav(!navCollapsed);\r\n } else {\r\n this.props.onNavStyleChange(NAV_STYLE_FIXED);\r\n }\r\n }}\r\n />\r\n
\r\n ) : null}\r\n\r\n
\r\n {navStyle === NAV_STYLE_NO_HEADER_MINI_SIDEBAR && width >= TAB_SIZE ? (\r\n
\r\n ) : themeType === THEME_TYPE_LITE ? (\r\n
\r\n ) : (\r\n
\r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { navStyle, themeType, width, navCollapsed } = settings;\r\n return { navStyle, themeType, width, navCollapsed };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n {\r\n onNavStyleChange,\r\n toggleCollapsedSideNav\r\n }\r\n)(SidebarLogo);\r\n","const Auxiliary = (props) => props.children;\r\n\r\nexport default Auxiliary;\r\n","import React, { Component } from 'react';\r\nimport { Avatar, Popover } from 'antd';\r\nimport { connect } from 'react-redux';\r\nimport { userSignOut, authOpenDialog } from 'appRedux/actions/Auth';\r\nimport { NAV_STYLE_MINI_SIDEBAR } from 'constants/ThemeSetting';\r\nimport logoImage from '../../assets/images/logo-square.png';\r\n\r\nclass UserProfile extends Component {\r\n signOut() {\r\n this.props.userSignOut({ history: this.props.history });\r\n }\r\n\r\n render() {\r\n const userMenuOptions = (\r\n
\r\n this.props.authOpenDialog('change')}>Change Password \r\n this.props.userSignOut()}>Sign Out \r\n \r\n );\r\n\r\n return (\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n {this.props.user && this.props.user.fullName\r\n ? this.props.user.fullName.firstName + ' ' + this.props.user.fullName.lastName\r\n : ''}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ auth, settings }) => {\r\n const { user } = auth;\r\n const { navStyle } = settings;\r\n return { user, navStyle };\r\n};\r\nexport default connect(\r\n mapStateToProps,\r\n { userSignOut, authOpenDialog }\r\n)(UserProfile);\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Menu, Icon } from 'antd'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport CustomScrollbars from 'util/CustomScrollbars'\r\nimport SidebarLogo from './SidebarLogo'\r\nimport Auxiliary from 'util/Auxiliary'\r\nimport UserProfile from './UserProfile'\r\nimport AppsNavigation from './AppsNavigation'\r\nimport {\r\n NAV_STYLE_NO_HEADER_EXPANDED_SIDEBAR,\r\n NAV_STYLE_NO_HEADER_MINI_SIDEBAR,\r\n THEME_TYPE_LITE\r\n} from '../../constants/ThemeSetting'\r\n\r\nclass SidebarContent extends Component {\r\n getNoHeaderClass = (navStyle) => {\r\n if (\r\n navStyle === NAV_STYLE_NO_HEADER_MINI_SIDEBAR ||\r\n navStyle === NAV_STYLE_NO_HEADER_EXPANDED_SIDEBAR\r\n ) {\r\n return 'gx-no-header-notifications'\r\n }\r\n return ''\r\n }\r\n getNavStyleSubMenuClass = (navStyle) => {\r\n if (navStyle === NAV_STYLE_NO_HEADER_MINI_SIDEBAR) {\r\n return 'gx-no-header-submenu-popup'\r\n }\r\n return ''\r\n }\r\n\r\n render() {\r\n const { themeType, navStyle, pathname } = this.props\r\n const selectedKeys = pathname.substr(1)\r\n const defaultOpenKeys = selectedKeys.split('/')[1]\r\n const { SubMenu } = Menu\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 Dashboard \r\n \r\n \r\n\r\n \r\n \r\n Team \r\n \r\n }\r\n >\r\n \r\n \r\n All Members \r\n \r\n \r\n \r\n \r\n Add Member \r\n \r\n \r\n \r\n \r\n Add Job \r\n \r\n \r\n \r\n \r\n All Jobs \r\n \r\n \r\n \r\n \r\n Manage Members \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Geofences \r\n \r\n \r\n\r\n \r\n \r\n \r\n Reports \r\n \r\n \r\n\r\n \r\n \r\n \r\n Alerts \r\n \r\n \r\n\r\n {this.props.user.role === \"SysAdmin\" && (\r\n \r\n \r\n \r\n Tenants Management \r\n \r\n \r\n )}\r\n\r\n \r\n\r\n \r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nSidebarContent.propTypes = {}\r\nconst mapStateToProps = ({ settings, auth }) => {\r\n const { navStyle, themeType, locale, pathname } = settings\r\n const { user } = auth;\r\n return { navStyle, themeType, locale, pathname,user }\r\n}\r\nexport default connect(mapStateToProps)(SidebarContent)\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Drawer, Layout } from 'antd';\r\n\r\nimport SidebarContent from './SidebarContent';\r\nimport { toggleCollapsedSideNav, updateWindowWidth } from 'appRedux/actions/Settings';\r\nimport {\r\n NAV_STYLE_DRAWER,\r\n NAV_STYLE_FIXED,\r\n NAV_STYLE_MINI_SIDEBAR,\r\n NAV_STYLE_NO_HEADER_EXPANDED_SIDEBAR,\r\n NAV_STYLE_NO_HEADER_MINI_SIDEBAR,\r\n TAB_SIZE,\r\n THEME_TYPE_LITE\r\n} from '../../constants/ThemeSetting';\r\n\r\nconst { Sider } = Layout;\r\n\r\nexport class Sidebar extends Component {\r\n onToggleCollapsedNav = () => {\r\n this.props.toggleCollapsedSideNav(!this.props.navCollapsed);\r\n };\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', () => {\r\n this.props.updateWindowWidth(window.innerWidth);\r\n });\r\n }\r\n\r\n render() {\r\n const { themeType, navCollapsed, width, navStyle } = this.props;\r\n\r\n let drawerStyle = 'gx-collapsed-sidebar';\r\n\r\n if (navStyle === NAV_STYLE_FIXED) {\r\n drawerStyle = '';\r\n } else if (navStyle === NAV_STYLE_NO_HEADER_MINI_SIDEBAR) {\r\n drawerStyle = 'gx-mini-sidebar gx-mini-custom-sidebar';\r\n } else if (navStyle === NAV_STYLE_NO_HEADER_EXPANDED_SIDEBAR) {\r\n drawerStyle = 'gx-custom-sidebar';\r\n } else if (navStyle === NAV_STYLE_MINI_SIDEBAR) {\r\n drawerStyle = 'gx-mini-sidebar';\r\n } else if (navStyle === NAV_STYLE_DRAWER) {\r\n drawerStyle = 'gx-collapsed-sidebar';\r\n }\r\n if (\r\n (navStyle === NAV_STYLE_FIXED ||\r\n navStyle === NAV_STYLE_MINI_SIDEBAR ||\r\n navStyle === NAV_STYLE_NO_HEADER_EXPANDED_SIDEBAR) &&\r\n width < TAB_SIZE\r\n ) {\r\n drawerStyle = 'gx-collapsed-sidebar';\r\n }\r\n return this.props.location.pathname !== '/auth/login' ? (\r\n
\r\n {navStyle === NAV_STYLE_DRAWER || width < TAB_SIZE ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null;\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings, routing }) => {\r\n const { themeType, navStyle, navCollapsed, width, locale } = settings;\r\n const { location } = routing;\r\n return { themeType, navStyle, navCollapsed, width, locale, location };\r\n};\r\nexport default connect(mapStateToProps, { toggleCollapsedSideNav, updateWindowWidth })(Sidebar);\r\n","const languageData = [\r\n {\r\n languageId: 'english',\r\n locale: 'en',\r\n name: 'English',\r\n icon: 'us'\r\n },\r\n {\r\n languageId: 'chinese',\r\n locale: 'zh',\r\n name: 'Chinese',\r\n icon: 'cn'\r\n },\r\n {\r\n languageId: 'spanish',\r\n locale: 'es',\r\n name: 'Spanish',\r\n icon: 'es'\r\n },\r\n {\r\n languageId: 'french',\r\n locale: 'fr',\r\n name: 'French',\r\n icon: 'fr'\r\n },\r\n {\r\n languageId: 'italian',\r\n locale: 'it',\r\n name: 'Italian',\r\n icon: 'it'\r\n },\r\n {\r\n languageId: 'saudi-arabia',\r\n locale: 'ar',\r\n name: 'Arabic',\r\n icon: 'sa'\r\n }\r\n\r\n];\r\nexport default languageData;\r\n","import React from \"react\";\r\n\r\nconst SearchBox = ({styleName, placeholder, onChange, value}) => {\r\n\r\n return (\r\n
\r\n )\r\n};\r\nexport default SearchBox;\r\n\r\nSearchBox.defaultProps = {\r\n styleName: \"\",\r\n value: \"\",\r\n};\r\n","import React, { Component } from 'react';\r\nimport { Avatar, Popover } from 'antd';\r\nimport { connect } from 'react-redux';\r\nimport { userSignOut } from 'appRedux/actions/Auth';\r\n\r\nclass UserInfo extends Component {\r\n signOut() {\r\n this.props.userSignOut({ history: this.props.history });\r\n }\r\n\r\n render() {\r\n const userMenuOptions = (\r\n
\r\n {/* My Account */}\r\n this.props.userSignOut()}>Sign Out \r\n \r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connect(() => ({}), { userSignOut })(UserInfo);\r\n","import React from \"react\";\r\nimport {Avatar} from \"antd\";\r\n\r\n\r\nconst NotificationItem = ({notification}) => {\r\n const {icon, image, title, time} = notification;\r\n return (\r\n\r\n
\r\n \r\n \r\n
{title}
\r\n
{time} \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default NotificationItem;\r\n","export const notifications = [\r\n\r\n {\r\n image: 'https://via.placeholder.com/150x150',\r\n title: \"Stella Johnson has recently posted an album\",\r\n time: \"4:10 PM\",\r\n icon: \"thumb-up gx-text-blue\",\r\n }, {\r\n image: 'https://via.placeholder.com/150x150',\r\n title: \"Alex Brown has shared Martin Guptil's post\",\r\n time: \"5:18 PM\",\r\n icon: \"chat gx-text-grey\",\r\n }, {\r\n image: 'https://via.placeholder.com/150x150',\r\n title: \"Domnic Brown has sent you a group invitation for Global Health\",\r\n time: \"5:36 PM\",\r\n icon: \"birthday text-info\",\r\n }, {\r\n image: 'https://via.placeholder.com/150x150',\r\n title: \"John Smith has birthday today\",\r\n time: \"5:54 PM\",\r\n icon: \"birthday gx-text-warning\",\r\n }, {\r\n image: 'https://via.placeholder.com/150x150',\r\n title: \"Chris has updated his profile picture\",\r\n time: \"5:25 PM\",\r\n icon: \"profile gx-text-grey\",\r\n }\r\n];\r\n","import React from \"react\";\r\nimport NotificationItem from \"./NotificationItem\";\r\nimport {notifications} from \"./data\";\r\nimport CustomScrollbars from \"util/CustomScrollbars\";\r\nimport Auxiliary from \"util/Auxiliary\";\r\n\r\nconst AppNotification = () => {\r\n return (\r\n
\r\n \r\n
Notifications \r\n \r\n \r\n \r\n \r\n {notifications.map((notification, index) => )\r\n }\r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default AppNotification;\r\n\r\n","import React from \"react\";\r\nimport {Avatar} from \"antd\";\r\n\r\nconst NotificationItem = ({notification}) => {\r\n const {image, badge, name, time, message} = notification;\r\n return (\r\n
\r\n \r\n
\r\n {badge > 0 ? {badge} : null}\r\n \r\n \r\n
\r\n
{name} \r\n {time} \r\n \r\n
{message}
\r\n
Reply\r\n
Read\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default NotificationItem;\r\n","export const notifications = [\r\n {\r\n id: 1,\r\n image: 'https://via.placeholder.com/150x150',\r\n name: \"Domnic Brown\",\r\n time: \"6:19 PM\",\r\n message: \"There are many variations of passages of...\",\r\n badge: 5\r\n },\r\n {\r\n id: 2,\r\n image: 'https://via.placeholder.com/150x150',\r\n name: \"John Smith\",\r\n time: \"4:18 PM\",\r\n message: \"Lorem Ipsum is simply dummy text of the...\",\r\n },\r\n {\r\n id: 3,\r\n image: 'https://via.placeholder.com/150x150',\r\n name: \"John Smith\",\r\n time: \"7:10 PM\",\r\n message: \"The point of using Lorem Ipsum is that it has a...\",\r\n badge: 8\r\n },\r\n {\r\n id: 4,\r\n image: 'https://via.placeholder.com/150x150',\r\n name: \"alex dolgove\",\r\n time: \"5:10 PM\",\r\n message: \"It is a long established fact that a reader will...\",\r\n },\r\n {\r\n id: 5,\r\n image: 'https://via.placeholder.com/150x150',\r\n name: \"Domnic Harris\",\r\n time: \"7:35 PM\",\r\n message: \"All the Lorem Ipsum generators on the...\",\r\n badge: 3\r\n }\r\n];\r\n","import React from \"react\";\r\nimport NotificationItem from \"./NotificationItem\";\r\nimport {notifications} from \"./data\";\r\nimport CustomScrollbars from 'util/CustomScrollbars'\r\nimport Auxiliary from \"util/Auxiliary\";\r\n\r\nconst MailNotification = () => {\r\n return (\r\n
\r\n \r\n
Messages \r\n \r\n \r\n \r\n \r\n {notifications.map((notification, index) => )}\r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default MailNotification;\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Menu } from 'antd';\r\nimport { Link } from 'react-router-dom';\r\nimport IntlMessages from '../../util/IntlMessages';\r\nimport {\r\n NAV_STYLE_ABOVE_HEADER,\r\n NAV_STYLE_BELOW_HEADER,\r\n NAV_STYLE_DEFAULT_HORIZONTAL,\r\n NAV_STYLE_INSIDE_HEADER_HORIZONTAL,\r\n} from '../../constants/ThemeSetting';\r\n\r\nconst SubMenu = Menu.SubMenu;\r\n\r\nclass HorizontalNav extends Component {\r\n getNavStyleSubMenuClass = navStyle => {\r\n switch (navStyle) {\r\n case NAV_STYLE_DEFAULT_HORIZONTAL:\r\n return 'gx-menu-horizontal gx-submenu-popup-curve';\r\n case NAV_STYLE_INSIDE_HEADER_HORIZONTAL:\r\n return 'gx-menu-horizontal gx-submenu-popup-curve gx-inside-submenu-popup-curve';\r\n case NAV_STYLE_BELOW_HEADER:\r\n return 'gx-menu-horizontal gx-submenu-popup-curve gx-below-submenu-popup-curve';\r\n case NAV_STYLE_ABOVE_HEADER:\r\n return 'gx-menu-horizontal gx-submenu-popup-curve gx-above-submenu-popup-curve';\r\n default:\r\n return 'gx-menu-horizontal';\r\n }\r\n };\r\n\r\n render() {\r\n const { pathname, navStyle } = this.props;\r\n const selectedKeys = pathname.substr(1);\r\n const defaultOpenKeys = selectedKeys.split('/')[1];\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\n \r\n */}\r\n \r\n\r\n {this.props.user.role === 'SysAdmin' ? (\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nHorizontalNav.propTypes = {};\r\nconst mapStateToProps = ({ settings, auth }) => {\r\n const { themeType, navStyle, pathname, locale } = settings;\r\n const { user } = auth;\r\n return { themeType, navStyle, pathname, locale, user };\r\n};\r\nexport default connect(mapStateToProps)(HorizontalNav);\r\n","import React, { Component } from 'react';\r\nimport { Button, Dropdown, Icon, Layout, Menu, message, Popover, Select } from 'antd';\r\nimport { connect } from 'react-redux';\r\nimport CustomScrollbars from 'util/CustomScrollbars';\r\n\r\nimport languageData from '../languageData';\r\nimport SearchBox from 'components/SearchBox';\r\nimport UserInfo from 'components/UserInfo';\r\nimport AppNotification from 'components/AppNotification';\r\nimport MailNotification from 'components/MailNotification';\r\n\r\nimport HorizontalNav from '../HorizontalNav';\r\nimport { Link } from 'react-router-dom';\r\nimport { switchLanguage, toggleCollapsedSideNav } from '../../../appRedux/actions/Settings';\r\nimport IntlMessages from '../../../util/IntlMessages';\r\n\r\nconst { Header } = Layout;\r\nconst Option = Select.Option;\r\nconst menu = (\r\n
\r\n Products \r\n Apps \r\n Blogs \r\n \r\n);\r\n\r\nfunction handleMenuClick(e) {\r\n message.info('Click on menu item.');\r\n}\r\n\r\nfunction handleChange(value) {\r\n console.log(`selected ${value}`);\r\n}\r\n\r\nclass HorizontalDefault extends Component {\r\n state = {\r\n searchText: ''\r\n };\r\n\r\n languageMenu = () => (\r\n
\r\n \r\n {languageData.map(language => (\r\n this.props.switchLanguage(language)}>\r\n \r\n {language.name} \r\n \r\n ))}\r\n \r\n \r\n );\r\n\r\n updateSearchChatUser = evt => {\r\n this.setState({\r\n searchText: evt.target.value\r\n });\r\n };\r\n\r\n render() {\r\n const { locale, navCollapsed } = this.props;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Login \r\n Signup \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale, navCollapsed } = settings;\r\n return { locale, navCollapsed };\r\n};\r\nexport default connect(mapStateToProps, { toggleCollapsedSideNav, switchLanguage })(HorizontalDefault);\r\n","import React, { Component } from 'react';\r\nimport { Button, Dropdown, Icon, Layout, Menu, message, Popover, Select } from 'antd';\r\nimport { connect } from 'react-redux';\r\nimport CustomScrollbars from 'util/CustomScrollbars';\r\n\r\nimport languageData from '../languageData';\r\nimport SearchBox from 'components/SearchBox';\r\nimport UserInfo from 'components/UserInfo';\r\nimport AppNotification from 'components/AppNotification';\r\nimport MailNotification from 'components/MailNotification';\r\nimport { Link } from 'react-router-dom';\r\nimport HorizontalNav from '../HorizontalNav';\r\nimport { switchLanguage, toggleCollapsedSideNav } from '../../../appRedux/actions/Settings';\r\nimport IntlMessages from '../../../util/IntlMessages';\r\n\r\nconst { Header } = Layout;\r\n\r\nconst Option = Select.Option;\r\nconst menu = (\r\n