{"version":3,"sources":["store/actions/layout/index.js","layouts/components/layout-wrapper/index.js","router/routes/Dashboards.js","router/routes/Reservations.js","router/routes/Aas.js","router/routes/Security.js","router/routes/Settings.js","router/routes/FBConnect.js","router/routes/Listing.js","router/routes/Reviews.js","router/routes/Partners.js","router/routes/Customers.js","router/routes/Resbook.js","router/routes/Licenses.js","router/routes/index.js","layouts/BlankLayout.js","layouts/components/navbar/index.js","navigation/dashboards.js","navigation/reservation.js","navigation/aas.js","utils/extractMenuPermissions.js","navigation/settings.js","navigation/listing.js","navigation/reviews.js","navigation/superadmin.js","navigation/resbook.js","navigation/index.js","layouts/components/menu/vertical-menu/VerticalMenuHeader.js","layouts/utils.js","layouts/components/menu/vertical-menu/VerticalNavMenuLink.js","layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js","layouts/components/menu/vertical-menu/VerticalNavMenuSectionHeader.js","layouts/components/menu/vertical-menu/VerticalNavMenuItems.js","layouts/components/menu/vertical-menu/index.js","layouts/VerticalLayout.js","router/Router.js","hooks/useLayout.js","hooks/useRouterTransition.js","App.js","components/intl/index.jsx","components/spinner/SpinnerCentered.js","components/googlemaps/components/Marker.js","components/googlemaps/index.js","components/datatable/index.js","components/header/index.js","components/styles/index.jsx","services/UiConfig.js","hooks/useUIConfig.js"],"names":["handleMenuCollapsed","value","type","handleContentWidth","dispatch","handleMenuHidden","LayoutWrapper","props","children","appLayout","wrapperClass","transition","routeMeta","useUIConfig","isLoading","uiConfig","useDispatch","contentWidth","useSelector","state","layout","useEffect","menuCollapsed","menuHidden","className","classnames","length","DashboardRoutes","path","component","lazy","meta","action","resource","ReservationsRoutes","AasRoutes","SecurityRoutes","authRoute","publicRoute","SettingsRoutes","navLink","FBConnectRoutes","ListingRoutes","ReviewsRoutes","PartnersRoutes","ResbookRoutes","LicensesRoutes","Routes","CustomersRoutes","BlankLayout","useState","isMounted","setIsMounted","ThemeNavbar","setMenuVisibility","NavItem","NavLink","onClick","Button","Ripple","color","size","id","title","icon","header","extractMenuPermissions","menuItems","map","venueType","permissions","dashboards","resbook","reservation","superadmin","listing","reviews","aas","settings","VerticalMenuHeader","setGroupOpen","setMenuCollapsed","menuHover","error","to","src","navbar_logo","alt","isNavLinkActive","link","currentURL","routerProps","isNavGroupActive","some","child","search","navigation","result","getAllParents","obj","match","res","recurse","current","key","undefined","push","VerticalNavMenuLink","item","setGroupActive","groupActive","activeItem","setActiveItem","groupOpen","toggleActiveGroup","parentItem","currentActiveItem","LinkTag","externalLink","location","useLocation","pathname","matchPath","exact","strict","arr","parents","searchParents","disabled","active","target","newTab","href","isActive","url","e","preventDefault","resetActiveGroup","badge","badgeText","Badge","pill","VerticalNavMenuGroup","allParents","activeArr","includes","splice","indexOf","openArr","filter","val","onCollapseClick","pop","toggleOpenGroup","open","Collapse","isOpen","VerticalNavMenuItems","items","VerticalNavMenuSectionHeader","index","VerticalMenuNavItems","useContext","AbilityContext","Components","TagName","resolveNavItemComponent","hasAnyVisibleChild","i","abilityCan","canViewMenuGroup","reduce","acc","permision","canViewMenuItem","mapDispatchToProps","logoutUser","UserActions","connect","menu","setMenuHover","shadowRef","useRef","expanded","onMouseEnter","onMouseLeave","ref","options","wheelPropagation","onScrollY","container","scrollTop","classList","contains","add","remove","scrollMenu","navbar","menuVisibility","window","innerWidth","windowWidth","setWindowWidth","handleWindowWidth","addEventListener","Navbar","expand","light","show","Router","lastLayout","setLastLayout","themeConfig","console","log","setLayout","handleLayout","valueToStore","Function","useLayout","routerTransition","setTransition","useRouterTransition","ability","DefaultLayout","Layouts","VerticalLayout","NotAuthorized","Error","FinalRoute","route","isUserLoggedIn","storage","get","can","clearCookies","basename","process","REACT_APP_BASENAME","render","Object","keys","LayoutTag","LayoutRoutes","LayoutPaths","LayoutRoutesAndPaths","assign","fallback","App","injectIntl","withRef","SpinnerCentered","centered","style","Spinner","Wrapper","styled","div","Marker","text","defaultProps","SimpleMap","height","width","border","bootstrapURLKeys","defaultCenter","lat","this","lng","defaultZoom","zoom","venueName","Component","center","CustomHeader","searchTerm","setSearchTerm","buttonAction","extraFilters","isSearchable","intl","useIntl","Row","Col","xl","md","Input","placeholder","formatMessage","onChange","Datatable","data","columns","selectableRows","setRowsPerPage","selectableRowsComponent","onSelectedRowsChange","setCurrentPage","Card","noHeader","subHeader","responsive","pagination","paginationServer","paginationTotalRows","total","onChangeRowsPerPage","newPerPage","onChangePage","page","sortIcon","progressPending","progressComponent","subHeaderComponent","Header","lg","Styles","primary_color","secondary_color","links_color","navbar_bg","navbar_text_color","navbar_active_bg_color","navbar_active_text_color","navbar_hub_name_color","global","jsx","hostname","api","requestConfig","setError","setIsLoading","setData","getConfigFromStorage","JSON","parse","config","mozrestHub","UiConfigService","set","stringify","loadConfig","logo","favicon","primaryColor","secondaryColor","linksColor","hub_name","hubName","navbarLogo","navbarBgLogo","navbarTextColor","navbarActiveBgColor","navbarActiveTextColor","navbarHubNameColor","copyright","getUiConfig"],"mappings":"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","file":"static/js/47.85c5644f.chunk.js","sourcesContent":["export const handleMenuCollapsed = (value) => {\r\n    return {type: 'HANDLE_MENU_COLLAPSED', value}\r\n}\r\n\r\n// ** Handles Layout Content Width (full / boxed)\r\nexport const handleContentWidth = value => dispatch => dispatch({ type: 'HANDLE_CONTENT_WIDTH', value })\r\n\r\n// ** Handles Menu Collapsed State (Bool)\r\n//export const handleMenuCollapsed = value => dispatch => dispatch({ type: 'HANDLE_MENU_COLLAPSED', value })\r\n\r\n// ** Handles Menu Hidden State (Bool)\r\nexport const handleMenuHidden = value => dispatch => dispatch({ type: 'HANDLE_MENU_HIDDEN', value })\r\n\r\n// ** Handles RTL (Bool)\r\nexport const handleRTL = value => dispatch => dispatch({ type: 'HANDLE_RTL', value })\r\n\r\n// ** Handle Layout Skin\r\nexport const handleSkin = value => dispatch => dispatch({ type: 'HANDLE_SKIN', value })\r\n","// ** React Imports\nimport { useEffect } from 'react'\n\n// ** Third Party Components\nimport classnames from 'classnames'\n\nimport { useUIConfig } from '@hooks'\n\n// ** Store & Actions\nimport { useSelector, useDispatch } from 'react-redux'\nimport { handleContentWidth, handleMenuCollapsed, handleMenuHidden } from '@store/actions/layout'\n\n// ** Styles\nimport 'animate.css/animate.css'\nimport { Styles } from \"@components\"\n\nconst LayoutWrapper = props => {\n  // ** Props\n  const { children, appLayout, wrapperClass, transition, routeMeta } = props\n  const { isLoading, uiConfig } = useUIConfig()\n\n  // ** Store Vars\n  const dispatch = useDispatch()\n  const store = useSelector(state => state)\n  const contentWidth = store.layout.contentWidth\n\n  // ** Clean Up Function\n  const cleanUp = () => {\n    if (routeMeta) {\n      if (routeMeta.contentWidth) {\n        dispatch(handleContentWidth('full'))\n      }\n      if (routeMeta.menuCollapsed) {\n        dispatch(handleMenuCollapsed(!routeMeta.menuCollapsed))\n      }\n      if (routeMeta.menuHidden) {\n        dispatch(handleMenuHidden(!routeMeta.menuHidden))\n      }\n    }\n  }\n\n  // ** ComponentDidMount\n  useEffect(() => {\n    if (routeMeta) {\n      if (routeMeta.contentWidth) {\n        dispatch(handleContentWidth(routeMeta.contentWidth))\n      }\n      if (routeMeta.menuCollapsed) {\n        dispatch(handleMenuCollapsed(routeMeta.menuCollapsed))\n      }\n      if (routeMeta.menuHidden) {\n        dispatch(handleMenuHidden(routeMeta.menuHidden))\n      }\n    }\n    return () => cleanUp()\n  }, [])\n\n  return (\n    <div\n      className={classnames('app-content content', {\n        [wrapperClass]: wrapperClass\n      })}\n    >\n      {!isLoading && (\n        <>\n          <Styles {...uiConfig} />\n          <div className='content-overlay'></div>\n          <div className='header-navbar-shadow' />\n          <div\n            className={classnames({\n              'content-wrapper': !appLayout,\n              'content-area-wrapper': appLayout,\n              'container p-0': contentWidth === 'boxed',\n              [`animate__animated animate__${transition}`]: transition !== 'none' && transition.length\n            })}\n          >\n            <>\n              {children}\n            </>\n          </div>\n        </>\n      )}\n    </div>\n  )\n}\n\nexport default LayoutWrapper\n","import { lazy } from 'react'\r\n\r\nconst DashboardRoutes = [\r\n  // Dashboards\r\n  {\r\n    path: '/home',\r\n    component: lazy(() => import('../../pages/Dashboard')),\r\n    meta: {\r\n      action: 'read',\r\n      resource: 'home'\r\n    }\r\n  }\r\n]\r\n\r\nexport default DashboardRoutes\r\n","import { lazy } from 'react'\r\n\r\nconst ReservationsRoutes = [\r\n  {\r\n    path: '/reservations/channel-management',\r\n    component: lazy(() => import('../../pages/Reservations/ChannelManagement')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'reservations:channel-management'\r\n    }\r\n  },\r\n  {\r\n    path: '/reservations/analytics',\r\n    component: lazy(() => import('../../pages/Reservations/Reporting')),\r\n    meta: {\r\n      action: 'view',\r\n      resource: 'reservations:analytics'\r\n    }\r\n  }\r\n]\r\nexport default ReservationsRoutes\r\n","import { lazy } from 'react'\r\n\r\nconst AasRoutes = [\r\n  // Ads Automation Service\r\n  {\r\n    path: '/aas/mapping',\r\n    component: lazy(() => import('../../pages/Mapping')),\r\n    meta: {\r\n      action: 'view',\r\n      resource: 'aas:manage'\r\n    }\r\n  }\r\n]\r\n\r\nexport default AasRoutes\r\n","import { lazy } from 'react'\r\n\r\nconst SecurityRoutes = [\r\n  // Security\r\n  {\r\n    path: '/login',\r\n    component: lazy(() => import('../../pages/Security/Login')),\r\n    layout: 'BlankLayout',\r\n    meta: {\r\n      authRoute: true\r\n    }\r\n  },\r\n  {\r\n    path: '/login-hash',\r\n    component: lazy(() => import('../../pages/Security/LoginHash')),\r\n    layout: 'BlankLayout',\r\n    meta: {\r\n      authRoute: true\r\n    }\r\n  },\r\n  {\r\n    path: '/forgot-password',\r\n    component: lazy(() => import('../../pages/Security/ForgotPassword')),\r\n    layout: 'BlankLayout',\r\n    meta: {\r\n      authRoute: true\r\n    }\r\n  },\r\n  {\r\n    path: '/reset-password',\r\n    component: lazy(() => import('../../pages/Security/ResetPassword')),\r\n    layout: 'BlankLayout',\r\n    meta: {\r\n      authRoute: true\r\n    }\r\n  },\r\n  {\r\n    path: '/error',\r\n    component: lazy(() => import('../../pages/Security/Error')),\r\n    layout: 'BlankLayout',\r\n    meta: {\r\n      publicRoute: true\r\n    }\r\n  }\r\n]\r\n\r\nexport default SecurityRoutes\r\n","import { lazy } from 'react'\r\n\r\nconst SettingsRoutes = [\r\n  {\r\n    path: '/get-started',\r\n    component: lazy(() => import('../../pages/GetStarted')),\r\n    meta: {\r\n      navLink: '/get-started',\r\n      action: 'edit',\r\n      resource: 'reservations:channel-management'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/venues/:id',\r\n    component: lazy(() => import('../../pages/Venues/Show')),\r\n    meta: {\r\n      navLink: '/settings/venues',\r\n      action: 'edit',\r\n      resource: 'settings:venues'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/venues',\r\n    component: lazy(() => import('../../pages/Venues')),\r\n    meta: {\r\n      navLink: '/settings/venues',\r\n      action: 'edit',\r\n      resource: 'settings:venues'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/users/:id/edit',\r\n    component: lazy(() => import('../../pages/Users/Edit')),\r\n    meta: {\r\n      navLink: '/settings/users',\r\n      action: 'edit',\r\n      resource: 'settings:users'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/users/new',\r\n    component: lazy(() => import('../../pages/Users/Edit')),\r\n    meta: {\r\n      navLink: '/settings/users',\r\n      action: 'edit',\r\n      resource: 'settings:users'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/users',\r\n    component: lazy(() => import('../../pages/Users/List')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'settings:users'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/billing',\r\n    component: lazy(() => import('../../pages/Billing')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'settings:users'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/groups/:id/edit',\r\n    component: lazy(() => import('../../pages/Groups/Edit')),\r\n    meta: {\r\n      navLink: '/settings/groups',\r\n      action: 'edit',\r\n      resource: 'settings:groups'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/groups/:id/link-venues',\r\n    component: lazy(() => import('../../pages/Groups/LinkVenues')),\r\n    meta: {\r\n      navLink: '/settings/groups',\r\n      action: 'edit',\r\n      resource: 'settings:groups'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/groups/new',\r\n    component: lazy(() => import('../../pages/Groups/Edit')),\r\n    meta: {\r\n      navLink: '/settings/groups',\r\n      action: 'edit',\r\n      resource: 'settings:groups'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/groups',\r\n    component: lazy(() => import('../../pages/Groups/List')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'settings:groups'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/brands/:id/edit',\r\n    component: lazy(() => import('../../pages/Brands/Edit')),\r\n    meta: {\r\n      navLink: '/settings/brands',\r\n      action: 'edit',\r\n      resource: 'settings:brands'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/brands',\r\n    component: lazy(() => import('../../pages/Brands/List')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'settings:brands'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/account',\r\n    component: lazy(() => import('../../pages/Profile')),\r\n    meta: {\r\n      action: 'view',\r\n      resource: 'settings:account'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/widgets/:id/edit',\r\n    component: lazy(() => import('../../pages/Widgets/Edit')),\r\n    meta: {\r\n      navLink: '/settings/widgets',\r\n      action: 'edit',\r\n      resource: 'settings:widgets'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/widgets/new',\r\n    component: lazy(() => import('../../pages/Widgets/Edit')),\r\n    meta: {\r\n      navLink: '/settings/widgets',\r\n      action: 'edit',\r\n      resource: 'settings:widgets'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/widgets',\r\n    component: lazy(() => import('../../pages/Widgets/List')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'settings:widgets'\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/notifications',\r\n    component: lazy(() => import('../../pages/Settings/Notifications')),\r\n    meta: {\r\n      action: \"edit\",\r\n      resource: \"settings:notifications\"\r\n    }\r\n  },\r\n  {\r\n    path: '/settings/listing-review',\r\n    component: lazy(() => import('../../pages/Settings/Listing')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'settings:listing-review'\r\n    }\r\n  }\r\n]\r\n\r\n\r\nexport default SettingsRoutes\r\n","import { lazy } from 'react'\r\n\r\nconst FBConnectRoutes = [\r\n  {\r\n    path: '/auth/facebook/callback/success',\r\n    component: lazy(() => import('../../pages/FbConnect/Success')),\r\n    layout: 'BlankLayout',\r\n    meta: {\r\n      authRoute: false,\r\n      publicRoute: true\r\n    }\r\n  },\r\n  {\r\n    path: '/auth/facebook/callback',\r\n    component: lazy(() => import('../../pages/FbConnect')),\r\n    layout: 'BlankLayout',\r\n    meta: {\r\n      authRoute: false,\r\n      publicRoute: true\r\n    }\r\n  }\r\n]\r\n\r\nexport default FBConnectRoutes\r\n","import { lazy } from 'react'\r\nconst ListingRoutes = [\r\n  // Listing\r\n  {\r\n    path: \"/profile-management\",\r\n    component:  lazy(() => import('../../pages/Listing/Venues')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'listing:connection-management'\r\n    }\r\n  },\r\n  {\r\n    path: \"/listing-analytics\",\r\n    component:  lazy(() => import('../../pages/Listing/Analytics')),\r\n    meta: {\r\n      action: 'view',\r\n      resource: 'listing:analytics'\r\n    }\r\n  }\r\n]\r\n\r\nexport default ListingRoutes\r\n","import { lazy } from 'react'\r\n\r\nconst ReviewsRoutes = [\r\n  {\r\n    path: \"/review-management\",\r\n    component:  lazy(() => import('../../pages/Reviews/Management')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'reviews:comments-management'\r\n    }\r\n  },\r\n  {\r\n    path: \"/review-analytics\",\r\n    component:  lazy(() => import('../../pages/Reviews/Analytics')),\r\n    meta: {\r\n      action: 'view',\r\n      resource: 'reviews:analytics'\r\n    }\r\n  }\r\n]\r\n\r\nexport default ReviewsRoutes\r\n","import { lazy } from 'react'\r\nimport { ComingSoon } from \"@components\"\r\n\r\nconst PartnersRoutes = [\r\n  {\r\n    path: '/partners/rms/detail/:id',\r\n    component: lazy(() => import('../../pages/Partners/RMS/Show')),\r\n    meta: {\r\n      navLink: '/partners/rms',\r\n      action: 'edit',\r\n      resource: 'partners:rms'\r\n    }\r\n  },\r\n  {\r\n    path: '/partners/rms',\r\n    component: lazy(() => import('../../pages/Partners/RMS/List')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'partners:rms'\r\n    }\r\n  },\r\n  {\r\n    path: '/partners/edit-rms/:id',\r\n    component: lazy(() => import('../../pages/Partners/RMS/Edit')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'partners:rms'\r\n    }\r\n  },\r\n  {\r\n    path: '/partners/new-rms',\r\n    component: lazy(() => import('../../pages/Partners/RMS/New')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'partners:rms'\r\n    }\r\n  },\r\n  {\r\n    path: '/partners/rwg/:id',\r\n    component: lazy(() => import('../../pages/Partners/RMS/EditRWG')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'partners:rms'\r\n    }\r\n  },\r\n  {\r\n    path: '/partners/booking-channels/detail/:id',\r\n    component: lazy(() => import('../../pages/Partners/BC/Show')),\r\n    meta: {\r\n      navLink: '/partners/booking-channels',\r\n      action: 'edit',\r\n      resource: 'partners:booking-channels'\r\n    }\r\n  },\r\n  {\r\n    path: '/partners/booking-channels',\r\n    component: lazy(() => import('../../pages/Partners/BC/List')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'partners:booking-channels'\r\n    }\r\n  },\r\n  {\r\n    path: '/partners/edit-bc/:id',\r\n    component: lazy(() => import('../../pages/Partners/BC/Edit')),\r\n    meta: {\r\n      navLink: '/partners/booking-channels',\r\n      action: 'edit',\r\n      resource: 'partners:booking-channels'\r\n    }\r\n  }\r\n]\r\n\r\nexport default PartnersRoutes\r\n","import { lazy } from 'react'\r\n\r\nconst PartnersRoutes = [\r\n  {\r\n    path: '/customers/venues/new',\r\n    component: lazy(() => import('../../pages/Customers/Venues/Edit')),\r\n    meta: {\r\n      navLink: 'customers/venues',\r\n      action: 'edit',\r\n      resource: 'customers/venues'\r\n    }\r\n  },\r\n  {\r\n    path: '/customers/venues/:id/show',\r\n    component: lazy(() => import('../../pages/Customers/Venues/Show')),\r\n    meta: {\r\n      navLink: '/customers/venues',\r\n      action: 'edit',\r\n      resource: 'customers:venues'\r\n    }\r\n  },\r\n  {\r\n    path: '/customers/venues/:id/edit',\r\n    component: lazy(() => import('../../pages/Customers/Venues/Edit')),\r\n    meta: {\r\n      navLink: '/customers/venues',\r\n      action: 'edit',\r\n      resource: 'customers:venues'\r\n    }\r\n  },\r\n  {\r\n    path: '/customers/venues',\r\n    component: lazy(() => import('../../pages/Customers/Venues')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'customers:venues'\r\n    }\r\n  },\r\n  {\r\n    path: '/customers/companies/new',\r\n    component: lazy(() => import('../../pages/Customers/Companies/Edit')),\r\n    meta: {\r\n      navLink: 'customers/companies',\r\n      action: 'edit',\r\n      resource: 'customers/companies'\r\n    }\r\n  },\r\n  {\r\n    path: '/customers/companies/:id/show',\r\n    component: lazy(() => import('../../pages/Customers/Companies/Show')),\r\n    meta: {\r\n      navLink: '/customers/companies',\r\n      action: 'edit',\r\n      resource: 'customers:companies'\r\n    }\r\n  },\r\n  {\r\n    path: '/customers/companies/:id/edit',\r\n    component: lazy(() => import('../../pages/Customers/Companies/Edit')),\r\n    meta: {\r\n      navLink: '/customers/companies',\r\n      action: 'edit',\r\n      resource: 'customers:companies'\r\n    }\r\n  },\r\n  {\r\n    path: '/customers/companies',\r\n    component: lazy(() => import('../../pages/Customers/Companies')),\r\n    meta: {\r\n      action: 'edit',\r\n      resource: 'customers:companies'\r\n    }\r\n  }\r\n]\r\n\r\nexport default PartnersRoutes\r\n","import { lazy } from 'react'\r\nconst ResbookRoutes = [\r\n  // Resbook\r\n  {\r\n    path: \"/bookings-dashboard\",\r\n    component:  lazy(() => import('../../pages/Resbook/Dashboard')),\r\n    meta: {\r\n      action: 'view',\r\n      resource: 'resbook:dashboard'\r\n    }\r\n  },\r\n  {\r\n    path: \"/bookings-configuration\",\r\n    component:  lazy(() => import('../../pages/Resbook/Configuration')),\r\n    meta: {\r\n      action: 'view',\r\n      resource: 'resbook:configuration'\r\n    }\r\n  }\r\n]\r\n\r\nexport default ResbookRoutes\r\n","import { lazy } from 'react'\n\nconst LicensesRoutes = [\n  // {\n  //   path: '/customers/venues/new',\n  //   component: lazy(() => import('../../pages/Customers/Venues/Edit')),\n  //   meta: {\n  //     navLink: 'customers/venues',\n  //     action: 'edit',\n  //     resource: 'customers/venues'\n  //   }\n  // },\n  // {\n  //   path: '/customers/venues/:id/show',\n  //   component: lazy(() => import('../../pages/Customers/Venues/Show')),\n  //   meta: {\n  //     navLink: '/customers/venues',\n  //     action: 'edit',\n  //     resource: 'customers:venues'\n  //   }\n  // },\n  // {\n  //   path: '/customers/venues/:id/edit',\n  //   component: lazy(() => import('../../pages/Customers/Venues/Edit')),\n  //   meta: {\n  //     navLink: '/customers/venues',\n  //     action: 'edit',\n  //     resource: 'customers:venues'\n  //   }\n  // },\n\n  {\n    path: '/licenses/meta',\n    component: lazy(() => import('../../pages/Licenses/Meta')),\n    meta: {\n      action: 'edit',\n      resource: 'licenses:meta'\n    }\n  },\n  {\n    path: '/licenses/listing-and-review',\n    component: lazy(() => import('../../pages/Licenses/ListingAndReview')),\n    meta: {\n      action: 'edit',\n      resource: 'licenses:listingAndReview'\n    }\n  },\n  {\n    path: '/licenses/tripadvisor',\n    component: lazy(() => import('../../pages/Licenses/Tripadvisor')),\n    meta: {\n      action: 'edit',\n      resource: 'licenses:tripadvisor'\n    }\n  }\n]\n\nexport default LicensesRoutes\n","// ** Routes Imports\nimport DashboardRoutes from \"./Dashboards\"\nimport ReservationsRoutes from \"./Reservations\"\nimport AasRoutes from \"./Aas\"\nimport SecurityRoutes from \"./Security\"\nimport SettingsRoutes from \"./Settings\"\nimport FBConnectRoutes from \"./FBConnect\"\nimport ListingRoutes from \"./Listing\"\nimport ReviewsRoutes from \"./Reviews\"\nimport PartnersRoutes from \"./Partners\"\nimport CustomersRoutes from \"./Customers\"\nimport ResbookRoutes from \"./Resbook\"\nimport LicensesRoutes from \"./Licenses\"\n// ** Document title\nconst TemplateTitle = \"%s - Channel Hub\"\n\n// ** Default Route\nconst DefaultRoute = \"/home\"\n\n// ** Merge Routes\nconst Routes = [\n  ...DashboardRoutes,\n  ...ReservationsRoutes,\n  ...AasRoutes,\n  ...SecurityRoutes,\n  ...SettingsRoutes,\n  ...FBConnectRoutes,\n  ...ListingRoutes,\n  ...ReviewsRoutes,\n  ...PartnersRoutes,\n  ...CustomersRoutes,\n  ...ResbookRoutes,\n  ...LicensesRoutes\n]\n\nexport { DefaultRoute, TemplateTitle, Routes }\n","// ** React Imports\nimport { useEffect, useState } from 'react'\n\nconst BlankLayout = ({ children, ...rest }) => {\n\n  // ** States\n  const [isMounted, setIsMounted] = useState(false)\n\n  //** ComponentDidMount\n  useEffect(() => {\n    setIsMounted(true)\n    return () => setIsMounted(false)\n  }, [])\n\n  if (!isMounted) {\n    return null\n  }\n\n  return (\n    <div className='blank-page'>\n      <div className='app-content content'>\n        <div className='content-wrapper'>\n          <div className='content-body'>{children}</div>\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default BlankLayout\n","// ** React Imports\nimport { Fragment } from 'react'\n\n// ** Third Party Components\nimport { Menu } from 'react-feather'\nimport { NavItem, NavLink, Button } from 'reactstrap'\n\nconst ThemeNavbar = props => {\n  // ** Props\n  const { setMenuVisibility } = props\n\n  return (\n    <Fragment>\n      <div className='bookmark-wrapper d-flex align-items-center mt-1'>\n        <ul className='navbar-nav d-xl-none'>\n          <NavItem className='mobile-menu mr-auto'>\n            <NavLink className='nav-menu-main menu-toggle hidden-xs is-active' onClick={() => setMenuVisibility(true)}>\n              <Button.Ripple className='btn-icon rounded-circle' color='primary' size='sm'>\n                <Menu size={10} />\n              </Button.Ripple>\n            </NavLink>\n          </NavItem>\n        </ul>\n      </div>\n      {/* <ul className='nav navbar-nav align-items-center ml-auto'>\n\n      </ul> */}\n    </Fragment>\n  )\n}\n\nexport default ThemeNavbar\n","import { Home } from 'react-feather'\r\n\r\nexport default [\r\n  {\r\n    id: 'home',\r\n    title: 'Home',\r\n    icon: <Home size={20} />,\r\n    navLink: '/home',\r\n    action: 'read',\r\n    resource: 'home'\r\n  }\r\n]\r\n","import {TrendingUp, Share2} from 'react-feather'\r\n\r\nexport default [\r\n  {\r\n    header: 'Reservations',\r\n    action: 'view',\r\n    resource: 'reservations:analytics'\r\n  },\r\n  {\r\n    id: 'channel-management',\r\n    title: 'Channel Management',\r\n    icon: <Share2 size={20} />,\r\n    navLink: '/reservations/channel-management',\r\n    action: 'edit',\r\n    resource: 'reservations:channel-management'\r\n  },\r\n  {\r\n    id: 'analytics',\r\n    title: 'Analytics',\r\n    icon: <TrendingUp size={20} />,\r\n    navLink: '/reservations/analytics',\r\n    action: 'view',\r\n    resource: 'reservations:analytics'\r\n  }\r\n]\r\n","import { Star } from 'react-feather'\r\n\r\nexport default [\r\n  {\r\n    header: 'Ads Automation',\r\n    action: 'view',\r\n    resource: 'aas:manage'\r\n  },\r\n  {\r\n    id: 'mapping',\r\n    title: 'Manage',\r\n    icon: <Star size={12}/>,\r\n    navLink: '/aas/mapping',\r\n    action: 'view',\r\n    resource: 'aas:manage'\r\n  }\r\n]\r\n","export const extractMenuPermissions = (menuItems) => menuItems.map(({ action, resource }) => ({\n    action,\n    resource\n  }))\n","import {\n    Users,\n    Settings,\n    Shield,\n    MapPin,\n    Code,\n    Layers,\n    Bell,\n    Globe,\n    DollarSign\n} from \"react-feather\"\nimport {venueType} from \"@utils\"\nimport {extractMenuPermissions} from \"@utils/extractMenuPermissions\"\n\nconst menuItems = [\n    {\n        id: \"venuew-management\",\n        title: venueType(\"many\"),\n        icon: <MapPin size={20}/>,\n        navLink: \"/settings/venues\",\n        action: \"edit\",\n        resource: \"settings:venues\"\n    },\n    {\n        id: \"user-management\",\n        title: \"Users\",\n        icon: <Users size={20}/>,\n        navLink: \"/settings/users\",\n        action: \"edit\",\n        resource: \"settings:users\"\n    },\n    {\n        id: \"billing\",\n        title: \"Billing\",\n        icon: <DollarSign size={20}/>,\n        navLink: \"/settings/billing\",\n        action: \"edit\",\n        resource: \"settings:billing\"\n    },\n    {\n        id: \"groups\",\n        title: \"Groups\",\n        icon: <Shield size={20}/>,\n        navLink: \"/settings/groups\",\n        action: \"edit\",\n        resource: \"settings:groups\"\n    },\n    {\n        id: \"widgets\",\n        title: \"Widgets\",\n        icon: <Code size={20}/>,\n        navLink: \"/settings/widgets\",\n        action: \"edit\",\n        resource: \"settings:widgets\"\n    }, \n    {\n        id: \"listing\",\n        title: \"Listing&Review\",\n        icon: <Globe size={20}/>,\n        navLink: \"/settings/listing-review\",\n        action: \"edit\",\n        resource: \"settings:listing-review\"\n    },\n    /* {\n      id: 'brands',\n      title: 'Brands',\n      icon: <Tag size={20} />,\n      navLink: '/settings/brands',\n      action: 'edit',\n      resource: 'settings:brands'\n    },*/\n    {\n        id: \"account\",\n        title: \"Account\",\n        icon: <Settings size={20}/>,\n        navLink: \"/settings/account\",\n        action: \"view\",\n        resource: \"settings:account\"\n    },\n    {\n        id: \"notifications\",\n        title: \"Notifications\",\n        icon: <Bell size={20}/>,\n        navLink: \"/settings/notifications\",\n        action: \"edit\",\n        resource: \"settings:notifications\"\n    }\n]\n\nexport default [\n    {\n        header: \"Settings\",\n        permissions: extractMenuPermissions(menuItems)\n    },\n    ...menuItems\n]\n","import { TrendingUp, Briefcase } from \"react-feather\"\r\nimport { extractMenuPermissions } from \"@utils/extractMenuPermissions\"\r\n\r\nconst menuItems = [\r\n  {\r\n    id: \"profile-management\",\r\n    title: \"Profile Management\",\r\n    icon: <Briefcase size={20} />,\r\n    navLink: \"/profile-management\",\r\n    action: \"edit\",\r\n    resource: \"listing:connection-management\"\r\n  },\r\n  {\r\n    id: \"listing-analytics\",\r\n    title: \"Analytics\",\r\n    icon: <TrendingUp size={20} />,\r\n    navLink: \"/listing-analytics\",\r\n    action: \"view\",\r\n    resource: \"listing:analytics\"\r\n  }\r\n]\r\n\r\nexport default [\r\n  {\r\n    header: \"Listing\",\r\n    permissions: extractMenuPermissions(menuItems)\r\n  },\r\n  ...menuItems\r\n]\r\n","import { TrendingUp, MessageSquare } from \"react-feather\"\r\nimport { extractMenuPermissions } from \"@utils/extractMenuPermissions\"\r\n\r\nconst menuItems = [\r\n  {\r\n    id: \"review-management\",\r\n    title: \"Review Management\",\r\n    icon: <MessageSquare size={20} />,\r\n    navLink: \"/review-management\",\r\n    action: \"edit\",\r\n    resource: \"reviews:comments-management\"\r\n  },\r\n  {\r\n    id: \"review-analytics\",\r\n    title: \"Analytics\",\r\n    icon: <TrendingUp size={20} />,\r\n    navLink: \"/review-analytics\",\r\n    action: \"view\",\r\n    resource: \"reviews:analytics\"\r\n  }\r\n]\r\n\r\nexport default [\r\n  {\r\n    header: \"Reviews\",\r\n    permissions: extractMenuPermissions(menuItems)\r\n  },\r\n  ...menuItems\r\n]\r\n","import { Briefcase, MapPin, Server, ShoppingCart, Facebook, BookOpen, Database } from 'react-feather'\r\n\r\nexport default [\r\n  {\r\n    header: 'Partners',\r\n    action: 'edit',\r\n    resource: 'partners:rms'\r\n  },\r\n  {\r\n    id: 'rms',\r\n    title: 'RMS',\r\n    icon: <Server size={20} />,\r\n    navLink: '/partners/rms',\r\n    action: 'edit',\r\n    resource: 'partners:rms'\r\n  },\r\n  {\r\n    id: 'booking-channels',\r\n    title: 'Booking Channels',\r\n    icon: <ShoppingCart size={20} />,\r\n    navLink: '/partners/booking-channels',\r\n    action: 'edit',\r\n    resource: 'partners:booking-channels'\r\n  },\r\n  {\r\n    header: 'Customers',\r\n    action: 'edit',\r\n    resource: 'customers:companies'\r\n  },\r\n  {\r\n    id: 'companies',\r\n    title: 'Companies',\r\n    icon: <Briefcase size={20} />,\r\n    navLink: '/customers/companies',\r\n    action: 'edit',\r\n    resource: 'customers:companies'\r\n  },\r\n  {\r\n    id: 'venues',\r\n    title: 'Venues',\r\n    icon: <MapPin size={20} />,\r\n    navLink: '/customers/venues',\r\n    action: 'edit',\r\n    resource: 'customers:venues'\r\n  },\r\n  {\r\n    header: 'Licenses',\r\n    action: 'edit',\r\n    resource: 'licenses:meta'\r\n  },\r\n  {\r\n    id: 'meta',\r\n    title: 'Meta',\r\n    icon: <Facebook size={20} />,\r\n    navLink: '/licenses/meta',\r\n    action: 'edit',\r\n    resource: 'licenses:meta'\r\n  },\r\n  {\r\n    id: 'listing-and-review',\r\n    title: 'Listing & Review',\r\n    icon: <BookOpen size={20} />,\r\n    navLink: '/licenses/listing-and-review',\r\n    action: 'edit',\r\n    resource: 'licenses:listingAndReview'\r\n  },\r\n  {\r\n    id: 'tripadvisor',\r\n    title: 'Tripadvisor',\r\n    icon: <Database size={20} />,\r\n    navLink: '/licenses/tripadvisor',\r\n    action: 'edit',\r\n    resource: 'licenses:tripadvisor'\r\n  }\r\n]\r\n","import { Settings, Calendar } from \"react-feather\"\r\nimport { extractMenuPermissions } from \"@utils/extractMenuPermissions\"\r\n\r\nconst menuItems = [\r\n  {\r\n    id: \"resbook-dashboard\",\r\n    title: \"Dashboard\",\r\n    icon: <Calendar size={20} />,\r\n    navLink: \"/bookings-dashboard\",\r\n    action: \"view\",\r\n    resource: \"resbook:dashboard\"\r\n  },\r\n  {\r\n    id: \"resbook-configuration\",\r\n    title: \"Configuration\",\r\n    icon: <Settings size={20} />,\r\n    navLink: \"/bookings-configuration\",\r\n    action: \"view\",\r\n    resource: \"resbook:configuration\"\r\n  }\r\n]\r\n\r\nexport default [\r\n  {\r\n    header: \"Resbook\",\r\n    permissions: extractMenuPermissions(menuItems)\r\n  },\r\n  ...menuItems\r\n]\r\n","// ** Navigation sections imports\r\nimport dashboards from './dashboards'\r\nimport reservation from './reservation'\r\nimport aas from './aas'\r\nimport settings from './settings'\r\nimport listing from \"./listing\"\r\nimport reviews from \"./reviews\"\r\nimport superadmin from \"./superadmin\"\r\nimport resbook from './resbook'\r\n\r\n// ** Merge & Export\r\nexport default [\r\n  ...dashboards,\r\n  ...resbook,\r\n  ...reservation,\r\n  ...superadmin,\r\n  ...listing,\r\n  ...reviews,\r\n  ...aas,\r\n  ...settings\r\n]\r\n","// ** React Imports\nimport { useEffect } from 'react'\nimport { NavLink } from 'react-router-dom'\n\n// ** Third Party Components\nimport { Disc, X, Circle } from 'react-feather'\n\nimport { useUIConfig } from '@hooks'\n\nconst VerticalMenuHeader = props => {\n  // ** Props\n  const { menuCollapsed, setMenuCollapsed, setMenuVisibility, setGroupOpen, menuHover } = props\n  const { error: error, uiConfig } = useUIConfig('')\n\n  // ** Reset open group\n  useEffect(() => {\n    if (!menuHover && menuCollapsed) setGroupOpen([])\n  }, [menuHover, menuCollapsed])\n\n  // ** Menu toggler component\n  const Toggler = () => {\n    if (!menuCollapsed) {\n      return (\n        <Disc\n          size={20}\n          data-tour='toggle-icon'\n          className='text-primary toggle-icon d-none d-xl-block'\n          onClick={() => setMenuCollapsed(true)}\n        />\n      )\n    } else {\n      return (\n        <Circle\n          size={20}\n          data-tour='toggle-icon'\n          className='text-primary toggle-icon d-none d-xl-block'\n          onClick={() => setMenuCollapsed(false)}\n        />\n      )\n    }\n  }\n\n  return (\n    <div className='navbar-header'>\n      <NavLink to='/' className='navbar-brand'>\n          <span className='brand-logo'>\n            <img src={uiConfig.navbar_logo} alt='logo'/>\n          </span>\n      </NavLink>\n    </div>\n  )\n}\n\nexport default VerticalMenuHeader\n","// ** React Imports\nimport { abilityCan } from \"../config/acl/ability\"\n\n/**\n * Return which component to render based on it's data/context\n */\nexport const resolveVerticalNavMenuItemComponent = (item) => {\n  if (item.header) return \"VerticalNavMenuSectionHeader\"\n  if (item.children) return \"VerticalNavMenuGroup\"\n  return \"VerticalNavMenuLink\"\n}\n\n/**\n * Check if nav-link is active\n */\nexport const isNavLinkActive = (link, currentURL, routerProps) => {\n  return (\n    currentURL === link ||\n    (routerProps &&\n      routerProps.meta &&\n      routerProps.meta.navLink &&\n      routerProps.meta.navLink === link)\n  )\n  // return currentURL === link\n}\n\n/**\n * Check if nav group is\n */\nexport const isNavGroupActive = (children, currentURL, routerProps) => {\n  return children.some((child) => {\n    // If child have children => It's group => Go deeper(recursive)\n    if (child.children) {\n      return isNavGroupActive(child.children, currentURL, routerProps)\n    }\n    // else it's link => Check for matched Route\n    return isNavLinkActive(child.navLink, currentURL, routerProps)\n  })\n}\n\nexport const search = (navigation, currentURL, routerProps) => {\n  let result\n  navigation.some((child) => {\n    let children\n    // If child have children => It's group => Go deeper(recursive)\n    if (\n      child.children &&\n      (children = search(child.children, currentURL, routerProps))\n    ) {\n      return (result = {\n        id: child.id,\n        children\n      })\n    }\n\n    // else it's link => Check for matched Route\n    if (isNavLinkActive(child.navLink, currentURL, routerProps)) {\n      return (result = {\n        id: child.id\n      })\n    }\n  })\n  return result\n}\n\n/**\n * Loop through nested object\n */\nexport const getAllParents = (obj, match) => {\n  const res = []\n  const recurse = (obj, current) => {\n    for (const key in obj) {\n      const value = obj[key]\n      if (value !== undefined) {\n        if (value && typeof value === \"object\") {\n          recurse(value, key)\n        } else {\n          if (key === match) {\n            res.push(value)\n          }\n        }\n      }\n    }\n  }\n  recurse(obj)\n  return res\n}\n\nexport const canViewMenuGroup = (item) => {\n  // const ability = useContext(AbilityContext)\n  // ! This same logic is used in canViewHorizontalNavMenuGroup and canViewHorizontalNavMenuHeaderGroup. So make sure to update logic in them as well\n  const hasAnyVisibleChild =\n    item.children &&\n    item.children.some((i) => abilityCan(i.action, i.resource))\n\n  // ** If resource and action is defined in item => Return based on children visibility (Hide group if no child is visible)\n  // ** Else check for ability using provided resource and action along with checking if has any visible child\n  if (!(item.action && item.resource)) {\n    return hasAnyVisibleChild\n  }\n  return abilityCan(item.action, item.resource) && hasAnyVisibleChild\n}\n\nexport const canViewMenuItem = (item) => {\n  // const ability = useContext(AbilityContext)\n  if (item.permissions) {\n    return item.permissions.reduce(\n      (acc, permision) => acc || abilityCan(permision.action, permision.resource),\n      false\n    )\n  }\n\n  return abilityCan(item.action, item.resource)\n}\n","// ** React Imports\r\nimport { useEffect } from 'react'\r\nimport { NavLink, useLocation, matchPath, useParams } from 'react-router-dom'\r\n\r\n// ** Third Party Components\r\nimport { Badge } from 'reactstrap'\r\nimport classnames from 'classnames'\r\nimport { FormattedMessage } from 'react-intl'\r\n\r\n// ** Vertical Menu Array Of Items\r\nimport navigation from '@src/navigation'\r\n\r\n// ** Utils\r\nimport { isNavLinkActive, search, getAllParents } from '@layouts/utils'\r\n\r\nconst VerticalNavMenuLink = ({\r\n  item,\r\n  groupActive,\r\n  setGroupActive,\r\n  activeItem,\r\n  setActiveItem,\r\n  groupOpen,\r\n  setGroupOpen,\r\n  toggleActiveGroup,\r\n  parentItem,\r\n  routerProps,\r\n  currentActiveItem\r\n}) => {\r\n  // ** Conditional Link Tag, if item has newTab or externalLink props use <a> tag else use NavLink\r\n  const LinkTag = item.externalLink ? 'a' : NavLink\r\n\r\n  // ** URL Vars\r\n  const location = useLocation()\r\n  const currentURL = location.pathname\r\n\r\n  // ** To match path\r\n  const match = matchPath(currentURL, {\r\n    path: `${item.navLink}/:param`,\r\n    exact: true,\r\n    strict: false\r\n  })\r\n\r\n  // ** Search for current item parents\r\n  const searchParents = (navigation, currentURL) => {\r\n    const parents = search(navigation, currentURL, routerProps) // Search for parent object\r\n    const allParents = getAllParents(parents, 'id') // Parents Object to Parents Array\r\n    return allParents\r\n  }\r\n\r\n  // ** URL Vars\r\n  const resetActiveGroup = navLink => {\r\n    const parents = search(navigation, navLink, match)\r\n    toggleActiveGroup(item.id, parents)\r\n  }\r\n\r\n  // ** Reset Active & Open Group Arrays\r\n  const resetActiveAndOpenGroups = () => {\r\n    setGroupActive([])\r\n    setGroupOpen([])\r\n  }\r\n\r\n  // ** Checks url & updates active item\r\n  useEffect(() => {\r\n    if (currentActiveItem !== null) {\r\n      setActiveItem(currentActiveItem)\r\n      const arr = searchParents(navigation, currentURL)\r\n      setGroupActive([...arr])\r\n    }\r\n  }, [location])\r\n\r\n  return (\r\n    <li\r\n      className={classnames({\r\n        'nav-item': !item.children,\r\n        disabled: item.disabled,\r\n        active: item.navLink === activeItem\r\n      })}\r\n    >\r\n      <LinkTag\r\n        className='d-flex align-items-center'\r\n        target={item.newTab ? '_blank' : undefined}\r\n        /*eslint-disable */\r\n        {...(item.externalLink === true\r\n          ? {\r\n              href: item.navLink || '/'\r\n            }\r\n          : {\r\n              to: item.navLink || '/',\r\n              isActive: (match, location) => {\r\n                if (!match) {\r\n                  return false\r\n                }\r\n\r\n                if (match.url && match.url !== '' && match.url === item.navLink) {\r\n                  currentActiveItem = item.navLink\r\n                }\r\n              }\r\n            })}\r\n        /*eslint-enable */\r\n        onClick={e => {\r\n          if (!item.navLink.length) {\r\n            e.preventDefault()\r\n          }\r\n          parentItem ? resetActiveGroup(item.navLink) : resetActiveAndOpenGroups()\r\n        }}\r\n      >\r\n        {item.icon}\r\n        <span className='menu-item text-truncate capitalize'>\r\n          <FormattedMessage id={item.title} />\r\n        </span>\r\n\r\n        {item.badge && item.badgeText ? (\r\n          <Badge className='ml-auto mr-1' color={item.badge} pill>\r\n            {item.badgeText}\r\n          </Badge>\r\n        ) : null}\r\n      </LinkTag>\r\n    </li>\r\n  )\r\n}\r\n\r\nexport default VerticalNavMenuLink\r\n","// ** React Imports\r\nimport { Link, useLocation } from 'react-router-dom'\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames'\r\nimport { Collapse, Badge } from 'reactstrap'\r\nimport { FormattedMessage } from 'react-intl'\r\n\r\n// ** Vertical Menu Items Component\r\nimport VerticalNavMenuItems from './VerticalNavMenuItems'\r\n\r\n// ** Utils\r\nimport { isNavGroupActive, getAllParents } from '@layouts/utils'\r\n\r\nconst VerticalNavMenuGroup = ({\r\n  item,\r\n  groupActive,\r\n  setGroupActive,\r\n  activeItem,\r\n  setActiveItem,\r\n  groupOpen,\r\n  setGroupOpen,\r\n  parentItem,\r\n  menuCollapsed,\r\n  menuHover,\r\n  routerProps,\r\n  currentActiveItem\r\n}) => {\r\n  // ** Current Val\r\n  const currentURL = useLocation().pathname\r\n\r\n  // ** Toggles Open Group\r\n  const toggleOpenGroup = (item, parentItem) => {\r\n    let openArr = groupOpen\r\n    let allParents\r\n\r\n    if (parentItem) {\r\n      allParents = getAllParents(parentItem, 'id')\r\n      allParents.pop()\r\n    }\r\n\r\n    // ** If user clicked on menu group inside already opened group i.g. when user click on blog group inside pages group\r\n    if (groupOpen && allParents && groupOpen[0] === allParents[0]) {\r\n      groupOpen.includes(item) ? openArr.splice(openArr.indexOf(item), 1) : openArr.push(item)\r\n    } else {\r\n      openArr = []\r\n      if (!groupOpen.includes(item)) {\r\n        openArr.push(item)\r\n      }\r\n    }\r\n\r\n    // ** Set Open Group\r\n    setGroupOpen([...openArr])\r\n  }\r\n\r\n  // ** Toggle Active Group\r\n  const toggleActiveGroup = (item, parentItem) => {\r\n    let activeArr = groupActive\r\n    let allParents\r\n\r\n    if (parentItem) {\r\n      allParents = getAllParents(parentItem, 'id')\r\n      activeArr = allParents\r\n    } else {\r\n      activeArr.includes(item) ? activeArr.splice(activeArr.indexOf(item), 1) : activeArr.push(item)\r\n    }\r\n\r\n    // ** Set open group removing any activegroup item present in opengroup state\r\n    const openArr = groupOpen.filter(val => !activeArr.includes(val))\r\n    setGroupOpen([...openArr])\r\n\r\n    // **  Set Active Group\r\n    setGroupActive([...activeArr])\r\n  }\r\n\r\n  // ** On Group Item Click\r\n  const onCollapseClick = (e, item) => {\r\n    if ((groupActive && groupActive.includes(item.id)) || isNavGroupActive(item.children, currentURL, routerProps)) {\r\n      toggleActiveGroup(item.id)\r\n    } else {\r\n      toggleOpenGroup(item.id, parentItem)\r\n    }\r\n\r\n    e.preventDefault()\r\n  }\r\n\r\n  // ** Returns condition to add open class\r\n  const openClassCondition = id => {\r\n    if ((menuCollapsed && menuHover) || menuCollapsed === false) {\r\n      if (groupActive.includes(id) || groupOpen.includes(item.id)) {\r\n        return true\r\n      }\r\n    } else if (groupActive.includes(id) && menuCollapsed && menuHover === false) {\r\n      return false\r\n    } else {\r\n      return null\r\n    }\r\n  }\r\n\r\n  return (\r\n    <li\r\n      className={classnames('nav-item has-sub', {\r\n        open: openClassCondition(item.id),\r\n        'menu-collapsed-open': groupActive.includes(item.id),\r\n        'sidebar-group-active': groupActive.includes(item.id) || groupOpen.includes(item.id)\r\n      })}\r\n    >\r\n      <Link className='d-flex align-items-center' to='/' onClick={e => onCollapseClick(e, item)}>\r\n        {item.icon}\r\n        <span className='menu-title text-truncate'>\r\n          <FormattedMessage id={item.title} />\r\n        </span>\r\n\r\n        {item.badge && item.badgeText ? (\r\n          <Badge className='ml-auto mr-1' color={item.badge} pill>\r\n            {item.badgeText}\r\n          </Badge>\r\n        ) : null}\r\n      </Link>\r\n\r\n      {/* Render Child Recursively Through VerticalNavMenuItems Component */}\r\n      <ul className='menu-content'>\r\n        <Collapse isOpen={(groupActive && groupActive.includes(item.id)) || (groupOpen && groupOpen.includes(item.id))}>\r\n          <VerticalNavMenuItems\r\n            items={item.children}\r\n            groupActive={groupActive}\r\n            setGroupActive={setGroupActive}\r\n            groupOpen={groupOpen}\r\n            setGroupOpen={setGroupOpen}\r\n            toggleActiveGroup={toggleActiveGroup}\r\n            parentItem={item}\r\n            menuCollapsed={menuCollapsed}\r\n            menuHover={menuHover}\r\n            routerProps={routerProps}\r\n            currentActiveItem={currentActiveItem}\r\n            activeItem={activeItem}\r\n            setActiveItem={setActiveItem}\r\n          />\r\n        </Collapse>\r\n      </ul>\r\n    </li>\r\n  )\r\n}\r\n\r\nexport default VerticalNavMenuGroup\r\n","// ** Third Party Components\nimport { FormattedMessage } from 'react-intl'\nimport { MoreHorizontal } from 'react-feather'\n\nconst VerticalNavMenuSectionHeader = ({ item, index }) => {\n  return (\n    <li className='navigation-header'>\n      <span>\n        <FormattedMessage id={item.header} />\n      </span>\n      <MoreHorizontal className='feather-more-horizontal' />\n    </li>\n  )\n}\n\nexport default VerticalNavMenuSectionHeader\n","// ** React Imports\r\nimport {useContext} from 'react'\r\n\r\n// ** Vertical Menu Components\r\nimport VerticalNavMenuLink from './VerticalNavMenuLink'\r\nimport VerticalNavMenuGroup from './VerticalNavMenuGroup'\r\nimport VerticalNavMenuSectionHeader from './VerticalNavMenuSectionHeader'\r\n\r\n// ** Ability Context\r\nimport {AbilityContext} from '@src/utils/context/Can'\r\n\r\n// ** Utils\r\nimport {\r\n  canViewMenuGroup,\r\n  canViewMenuItem,\r\n  resolveVerticalNavMenuItemComponent as resolveNavItemComponent\r\n} from '@layouts/utils'\r\n\r\nconst VerticalMenuNavItems = props => {\r\n  // ** Context\r\n  const ability = useContext(AbilityContext)\r\n\r\n  // ** Components Object\r\n  const Components = {\r\n    VerticalNavMenuSectionHeader,\r\n    VerticalNavMenuGroup,\r\n    VerticalNavMenuLink\r\n  }\r\n\r\n  // ** Render Nav Menu Items\r\n  return props.items.map((item, index) => {\r\n    const TagName = Components[resolveNavItemComponent(item)]\r\n    if (item.children) {\r\n      return canViewMenuGroup(item) && <TagName item={item} index={index} key={item.id} {...props} />\r\n    }\r\n    return canViewMenuItem(item) && <TagName key={item.id || item.header} item={item} {...props} />\r\n  })\r\n}\r\n\r\nexport default VerticalMenuNavItems\r\n","// ** React Imports\r\nimport { Fragment, useState, useRef } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\n// ** Vertical Menu Items Array\r\nimport navigation from \"@src/navigation\"\r\n\r\n// ** Third Party Components\r\nimport classnames from \"classnames\"\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\"\r\n\r\n// ** Vertical Menu Components\r\nimport VerticalMenuHeader from \"./VerticalMenuHeader\"\r\nimport VerticalNavMenuItems from \"./VerticalNavMenuItems\"\r\n\r\n// ** Store & Actions\r\nimport { connect } from \"react-redux\"\r\nimport UserActions from \"@store/reducers/User\"\r\n\r\nimport { Power } from \"react-feather\"\r\n\r\nconst Sidebar = (props) => {\r\n  // ** Props\r\n  const {\r\n    menuCollapsed,\r\n    routerProps,\r\n    menu,\r\n    currentActiveItem,\r\n    logoutUser\r\n  } = props\r\n\r\n\r\n  // ** States\r\n  const [groupOpen, setGroupOpen] = useState([])\r\n  const [groupActive, setGroupActive] = useState([])\r\n  const [activeItem, setActiveItem] = useState(null)\r\n\r\n  // ** Menu Hover State\r\n  const [menuHover, setMenuHover] = useState(false)\r\n\r\n  // ** Ref\r\n  const shadowRef = useRef(null)\r\n\r\n  // ** Function to handle Mouse Enter\r\n  const onMouseEnter = () => {\r\n    if (menuCollapsed) {\r\n      setMenuHover(true)\r\n    }\r\n  }\r\n\r\n  // ** Scroll Menu\r\n  const scrollMenu = (container) => {\r\n    if (shadowRef && container.scrollTop > 0) {\r\n      if (!shadowRef.current.classList.contains(\"d-block\")) {\r\n        shadowRef.current.classList.add(\"d-block\")\r\n      }\r\n    } else {\r\n      if (shadowRef.current.classList.contains(\"d-block\")) {\r\n        shadowRef.current.classList.remove(\"d-block\")\r\n      }\r\n    }\r\n  }\r\n\r\n  return (\r\n    <Fragment>\r\n      <div\r\n        className={classnames(\r\n          \"main-menu menu-fixed menu-accordion menu-shadow\",\r\n          {\r\n            expanded: menuHover || menuCollapsed === false,\r\n            \"menu-light\": true\r\n          }\r\n        )}\r\n        onMouseEnter={onMouseEnter}\r\n        onMouseLeave={() => setMenuHover(false)}\r\n      >\r\n        {menu ? (\r\n          menu(props)\r\n        ) : (\r\n          <Fragment>\r\n            {/* Vertical Menu Header */}\r\n            <VerticalMenuHeader\r\n              setGroupOpen={setGroupOpen}\r\n              menuHover={menuHover}\r\n              {...props}\r\n            />\r\n            {/* Vertical Menu Header Shadow */}\r\n            <div className=\"shadow-bottom\" ref={shadowRef}></div>\r\n            {/* Perfect Scrollbar */}\r\n\r\n            <div className=\"sidebar-menu\">\r\n              <div className=\"sidebar-menu-content\">\r\n                <PerfectScrollbar\r\n                  options={{ wheelPropagation: false }}\r\n                  onScrollY={(container) => scrollMenu(container)}\r\n                >\r\n                  <ul className=\"navigation navigation-main\">\r\n                    <VerticalNavMenuItems\r\n                      items={navigation}\r\n                      groupActive={groupActive}\r\n                      setGroupActive={setGroupActive}\r\n                      activeItem={activeItem}\r\n                      setActiveItem={setActiveItem}\r\n                      groupOpen={groupOpen}\r\n                      setGroupOpen={setGroupOpen}\r\n                      routerProps={routerProps}\r\n                      menuCollapsed={menuCollapsed}\r\n                      menuHover={menuHover}\r\n                      currentActiveItem={currentActiveItem}\r\n                    />\r\n                  </ul>\r\n                  <br />\r\n                </PerfectScrollbar>\r\n              </div>\r\n\r\n              <div>\r\n                <ul className=\"navigation navigation-main\">\r\n                  <li className=\"nav-item logout-button\">\r\n                    <Link to=\"/login\" onClick={() => logoutUser()} className=\"d-flex align-items-center\">\r\n                      <Power size={14} className=\"mr-75\" />\r\n                      <span className=\"align-middle menu-item text-truncate capitalize\">Logout</span>\r\n                    </Link>\r\n                  </li>\r\n                </ul>\r\n              </div>\r\n            </div>\r\n          </Fragment>\r\n        )}\r\n      </div>\r\n    </Fragment>\r\n  )\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n  logoutUser: UserActions.logoutUser\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(Sidebar)\r\n","// ** React Imports\r\nimport {useState, useEffect} from 'react'\r\nimport {useLocation} from 'react-router-dom'\r\n\r\n// ** Store & Actions\r\nimport {connect} from 'react-redux'\r\nimport {handleMenuCollapsed} from '@store/actions/layout'\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames'\r\nimport {Navbar} from 'reactstrap'\r\n\r\n// ** Custom Components\r\nimport NavbarComponent from './components/navbar'\r\nimport SidebarComponent from './components/menu/vertical-menu'\r\n\r\n// ** Styles\r\nimport '@styles/base/core/menu/menu-types/vertical-menu.scss'\r\nimport '@styles/base/core/menu/menu-types/vertical-overlay-menu.scss'\r\n\r\nconst VerticalLayout = props => {\r\n    // ** Props\r\n    const {children, navbar, menu, routerProps, currentActiveItem, handleMenuCollapsed, menuHidden, menuCollapsed} = props\r\n\r\n    // ** States\r\n    const [isMounted, setIsMounted] = useState(false)\r\n    const [menuVisibility, setMenuVisibility] = useState(false)\r\n    const [windowWidth, setWindowWidth] = useState(window.innerWidth)\r\n\r\n    // ** Update Window Width\r\n    const handleWindowWidth = () => {\r\n        setWindowWidth(window.innerWidth)\r\n    }\r\n\r\n    // ** Vars\r\n    const location = useLocation()\r\n    // const menuCollapsed = menuCollapsed\r\n    const isHidden = false\r\n\r\n    // ** Toggles Menu Collapsed\r\n    const setMenuCollapsed = val => handleMenuCollapsed(val)\r\n\r\n    //** This function will detect the Route Change and will hide the menu on menu item click\r\n    useEffect(() => {\r\n        if (menuVisibility && windowWidth < 1200) {\r\n            setMenuVisibility(false)\r\n        }\r\n    }, [location])\r\n\r\n    //** Sets Window Size & Layout Props\r\n    useEffect(() => {\r\n        if (window !== undefined) {\r\n            window.addEventListener('resize', handleWindowWidth)\r\n        }\r\n    }, [windowWidth])\r\n\r\n    //** ComponentDidMount\r\n    useEffect(() => {\r\n        setIsMounted(true)\r\n        return () => setIsMounted(false)\r\n    }, [])\r\n\r\n    if (!isMounted) {\r\n        return null\r\n    }\r\n    return (\r\n        <div\r\n            className={classnames(\r\n                `wrapper vertical-layout navbar-sticky`,\r\n                {\r\n                    // Modern Menu\r\n                    'vertical-menu-modern': windowWidth >= 1200,\r\n                    'menu-collapsed': menuCollapsed && windowWidth >= 1200,\r\n                    'menu-expanded': !menuCollapsed && windowWidth > 1200,\r\n\r\n                    // Overlay Menu\r\n                    'vertical-overlay-menu': windowWidth < 1200,\r\n                    'menu-hide': !menuVisibility && windowWidth < 1200,\r\n                    'menu-open': menuVisibility && windowWidth < 1200\r\n                }\r\n            )}\r\n            {...(isHidden ? {'data-col': '1-column'} : {})}\r\n        >\r\n            {!isHidden ? (\r\n                <SidebarComponent\r\n                    menu={menu}\r\n                    menuCollapsed={menuCollapsed}\r\n                    menuVisibility={menuVisibility}\r\n                    setMenuCollapsed={setMenuCollapsed}\r\n                    setMenuVisibility={setMenuVisibility}\r\n                    routerProps={routerProps}\r\n                    currentActiveItem={currentActiveItem}\r\n                />\r\n            ) : null}\r\n\r\n            <Navbar\r\n                expand='lg'\r\n                light={true}\r\n                className={classnames(\r\n                    `header-navbar show-sm  align-items-center d-xl-none navbar-shadow`\r\n                )}\r\n            >\r\n                <div className='navbar-container d-flex content'>\r\n                    {navbar ? (\r\n                        navbar({setMenuVisibility})\r\n                    ) : (\r\n                        <NavbarComponent setMenuVisibility={setMenuVisibility}/>\r\n                    )}\r\n                </div>\r\n            </Navbar>\r\n            {children}\r\n\r\n            {/* Vertical Nav Menu Overlay */}\r\n            <div\r\n                className={classnames('sidenav-overlay', {\r\n                    show: menuVisibility\r\n                })}\r\n                onClick={() => setMenuVisibility(false)}\r\n            ></div>\r\n            {/* Vertical Nav Menu Overlay */}\r\n        </div>\r\n    )\r\n}\r\n\r\nconst mapStateToProps = ({layout}) => ({\r\n    menuHidden: layout.menuHidden,\r\n    menuCollapsed: layout.menuCollapsed\r\n})\r\n\r\nconst mapDispatchToProps = ({\r\n    handleMenuCollapsed\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(VerticalLayout)\r\n","// ** React Imports\nimport { Suspense, useContext, lazy, useEffect } from 'react'\n\n// ** Utils\nimport { isUserLoggedIn, clearCookies } from '@utils/Utils'\nimport { useLayout } from '@hooks/useLayout'\nimport { AbilityContext } from '@src/utils/context/Can'\nimport { useRouterTransition } from '@hooks/useRouterTransition'\n\n// ** Custom Components\n// import Spinner from '@components/spinner/Loading-spinner' // Uncomment if your require content fallback\nimport LayoutWrapper from '@layouts/components/layout-wrapper'\n\n// ** Router Components\nimport { BrowserRouter as AppRouter, Route, Switch, Redirect } from 'react-router-dom'\n\n// ** Routes & Default Routes\nimport { DefaultRoute, Routes } from './routes'\n\n// ** Layouts\nimport BlankLayout from '@layouts/BlankLayout'\nimport VerticalLayout from '@src/layouts/VerticalLayout'\nimport { storage } from '../utils'\n\nconst Router = () => {\n  // ** Hooks\n  const [layout, setLayout] = useLayout()\n  const [transition, setTransition] = useRouterTransition()\n\n  // ** ACL Ability Context\n  const ability = useContext(AbilityContext)\n\n  // ** Default Layout\n  const DefaultLayout = 'VerticalLayout'\n\n  // ** All of the available layouts\n  const Layouts = { BlankLayout, VerticalLayout }\n\n  // ** Current Active Item\n  const currentActiveItem = null\n\n  // ** Return Filtered Array of Routes & Paths\n  const LayoutRoutesAndPaths = layout => {\n    const LayoutRoutes = []\n    const LayoutPaths = []\n\n    if (Routes) {\n      Routes.filter(route => {\n        // ** Checks if Route layout or Default layout matches current layout\n        if (route.layout === layout || (route.layout === undefined && DefaultLayout === layout)) {\n          LayoutRoutes.push(route)\n          LayoutPaths.push(route.path)\n        }\n      })\n    }\n\n    return { LayoutRoutes, LayoutPaths }\n  }\n\n  const NotAuthorized = lazy(() => import('@src/pages/Security/NotAuthorized'))\n\n  // ** Init Error Component\n  const Error = lazy(() => import('@src/pages/Security/Error'))\n\n  /**\n   ** Final Route Component Checks for Login & User Role and then redirects to the route\n   */\n  const FinalRoute = props => {\n    const route = props.route\n    let action, resource\n\n    // ** Assign vars based on route meta\n    if (route.meta) {\n      action = route.meta.action ? route.meta.action : null\n      resource = route.meta.resource ? route.meta.resource : null\n    }\n    if (\n      (isUserLoggedIn() === null && route.meta === undefined) ||\n      (isUserLoggedIn() === null && route.meta && !route.meta.authRoute && !route.meta.publicRoute)\n    ) {\n      /**\n       ** If user is not Logged in & route meta is undefined\n       ** OR\n       ** If user is not Logged in & route.meta.authRoute, !route.meta.publicRoute are undefined\n       ** Then redirect user to login\n       */\n      return <Redirect to='/login' />\n    } else if (location.pathname === '/login-hash') {\n      return <route.component {...props} />\n    } else if ((!storage.get('mozrestApp:userData'))\n      && location.pathname !== '/login'\n      && location.pathname !== '/login-hash'\n      && location.pathname !== '/forgot-password'\n      && location.pathname !== '/reset-password'\n      && location.pathname !== '/auth/facebook/callback/success'\n      && location.pathname !== '/auth/facebook/callback'\n      && location.pathname !== '/error'\n    ) {\n      clearCookies()\n      return <Redirect to='/login' />\n    } else if (route.meta && route.meta.authRoute && isUserLoggedIn() && location.pathname !== '/login-hash') {\n      // ** If route has meta and authRole and user is Logged in then redirect user to home page (DefaultRoute)\n      return <Redirect to='/' />\n    } else if (isUserLoggedIn() && !ability.can(action || 'read', resource)) {\n      // ** If user is Logged in and doesn't have ability to visit the page redirect the user to Not Authorized\n      return <Redirect to='/misc/not-authorized' />\n    } else {\n      // ** If none of the above render component\n      return <route.component {...props} />\n    }\n  }\n\n  // ** Return Route to Render\n  const ResolveRoutes = () => {\n    return Object.keys(Layouts).map((layout, index) => {\n      // ** Convert Layout parameter to Layout Component\n      // ? Note: make sure to keep layout and component name equal\n\n      const LayoutTag = Layouts[layout]\n\n      // ** Get Routes and Paths of the Layout\n      const { LayoutRoutes, LayoutPaths } = LayoutRoutesAndPaths(layout)\n      // ** We have freedom to display different layout for different route\n      // ** We have made LayoutTag dynamic based on layout, we can also replace it with the only layout component,\n      // ** that we want to implement like VerticalLayout\n      // ** We segregated all the routes based on the layouts and Resolved all those routes inside layouts\n\n      // ** RouterProps to pass them to Layouts\n      const routerProps = {}\n\n      return (\n        <Route path={LayoutPaths} key={index}>\n          <LayoutTag\n            routerProps={routerProps}\n            layout={layout}\n            setLayout={setLayout}\n            transition={transition}\n            setTransition={setTransition}\n            currentActiveItem={currentActiveItem}\n          >\n            <Switch>\n              {LayoutRoutes.map(route => {\n                return (\n                  <Route\n                    key={route.path}\n                    path={route.path}\n                    exact={route.exact === true}\n                    render={props => {\n                      // ** Assign props to routerProps\n                      Object.assign(routerProps, {\n                        ...props,\n                        meta: route.meta\n                      })\n\n                      return (\n                        <Suspense fallback={null}>\n                          {/* Layout Wrapper to add classes based on route's layout, appLayout and className */}\n                          <LayoutWrapper\n                            layout={DefaultLayout}\n                            transition={transition}\n                            setTransition={setTransition}\n                            /* Conditional props */\n                            /*eslint-disable */\n                            {...(route.appLayout\n                              ? {\n                                appLayout: route.appLayout\n                              }\n                              : {})}\n                            {...(route.meta\n                              ? {\n                                routeMeta: route.meta\n                              }\n                              : {})}\n                            {...(route.className\n                              ? {\n                                wrapperClass: route.className\n                              }\n                              : {})}\n                          /*eslint-enable */\n                          >\n                            {/* <route.component {...props} /> */}\n                            <FinalRoute route={route} {...props} />\n                          </LayoutWrapper>\n                        </Suspense>\n                      )\n                    }}\n                  />\n                )\n              })}\n            </Switch>\n          </LayoutTag>\n        </Route>\n      )\n    })\n  }\n\n  return (\n    <AppRouter basename={process.env.REACT_APP_BASENAME}>\n      <Switch>\n        {/* If user is logged in Redirect user to DefaultRoute else to login */}\n        {/* <Route\n          exact\n          path='/'\n          render={() => {\n            return isUserLoggedIn() ? <Redirect to={DefaultRoute} /> : <Redirect to='/login' />\n          }}\n        /> */}\n        <Route\n          exact\n          path='/'\n          render={() => {\n            return <Redirect to={DefaultRoute} />\n          }}\n        />\n        {/* Not Auth Route */}\n        <Route\n          exact\n          path='/not-authorized'\n          render={props => (\n            <Layouts.BlankLayout>\n              <NotAuthorized />\n            </Layouts.BlankLayout>\n          )}\n        />\n        {ResolveRoutes()}\n        {/* NotFound Error page */}\n        <Route path='*' component={Error} />/\n      </Switch>\n    </AppRouter>\n  )\n}\n\nexport default Router\n","//** React Imports\nimport { useState, useEffect } from 'react'\n\n// ** Configs\nimport themeConfig from '@configs/themeConfig'\n\nexport const useLayout = () => {\n    // ** States\n    const [lastLayout, setLastLayout] = useState(null)\n    const [layout, setLayout] = useState(() => {\n        try {\n            return themeConfig.layout.type\n        } catch (error) {\n            // ** If error return initialValue\n            console.log(error)\n            return themeConfig.layout.type\n        }\n    })\n\n    // ** Return a wrapped version of useState's setter function\n    const setValue = value => {\n        try {\n            // ** Allow value to be a function so we have same API as useState\n            const valueToStore = value instanceof Function ? value(layout) : value\n\n            // ** Set state\n            setLayout(valueToStore)\n        } catch (error) {\n            // ** A more advanced implementation would handle the error case\n            console.log(error)\n        }\n    }\n\n    const handleLayout = () => {\n    // ** If layout is horizontal & screen size is equals to or below 1200\n        if (layout === 'horizontal' && window.innerWidth <= 1200) {\n            setLayout('vertical')\n            setLastLayout('horizontal')\n        }\n        // ** If lastLayout is horizontal & screen size is equals to or above 1200\n        if (lastLayout === 'horizontal' && window.innerWidth >= 1200) {\n            setLayout('horizontal')\n        }\n    }\n\n    // ** ComponentDidMount\n    useEffect(() => {\n        handleLayout()\n    }, [])\n\n    useEffect(() => {\n    // ** Window Resize Event\n        window.addEventListener('resize', handleLayout)\n    }, [layout, lastLayout])\n\n    return [layout, setValue]\n}\n","//** React Imports\r\nimport { useState } from 'react'\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig'\r\n\r\nexport const useRouterTransition = () => {\r\n    // ** State\r\n    const [transition, setTransition] = useState(() => {\r\n        try {\r\n            return themeConfig.layout.routerTransition\r\n        } catch (error) {\r\n            // ** If error return initialValue\r\n            console.log(error)\r\n            return themeConfig.layout.routerTransition\r\n        }\r\n    })\r\n\r\n    // ** Return a wrapped version of useState's setter function\r\n    const setValue = value => {\r\n        try {\r\n            // ** Allow value to be a function so we have same API as useState\r\n            const valueToStore = value instanceof Function ? value(transition) : value\r\n\r\n            // ** Set state\r\n            setTransition(valueToStore)\r\n        } catch (error) {\r\n            // ** A more advanced implementation would handle the error case\r\n            console.log(error)\r\n        }\r\n    }\r\n\r\n    return [transition, setValue]\r\n}\r\n","import {useEffect} from \"react\"\n// ** Router Import\nimport Router from './router/Router'\n\nconst App = props => {\n\n    useEffect(() => {\n        if (process.env.REACT_APP_ENV === 'prod') {\n            import('mozrest-sdk-react-prod/style.css')\n        } else if (process.env.REACT_APP_ENV === 'sandbox') {\n            import('mozrest-sdk-react-sandbox/style.css')\n        } else {\n            import('mozrest-sdk-react-dev/style.css')\n        }\n    }, [])\n\n    return (\n        <Router />\n    )\n}\n\nexport default App\n","import React from 'react'\nimport { FormattedMessage, injectIntl } from 'react-intl'\n\nconst InjectMassage = (props) => <FormattedMessage {...props} />\nexport default injectIntl(InjectMassage, { withRef: false })\n","import { Fragment } from 'react'\nimport { Spinner } from 'reactstrap'\n\nconst SpinnerCentered = ({ size = \"md\", centered = true, style = {} }) => {\n  return (\n    <Fragment>\n      <div className={centered ? 'd-flex justify-content-center align-end my-1' : ''}>\n        <Spinner size={size} style={style} />\n      </div>\n    </Fragment>\n  )\n}\n\nexport default SpinnerCentered","import React from 'react'\nimport PropTypes from 'prop-types'\nimport styled from 'styled-components'\n\nconst Wrapper = styled.div`\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 25px;\n  height: 25px;\n  background-color: #eb932d;\n  border: 3px solid #fff;\n  border-radius: 100%;\n  user-select: none;\n  transform: translate(-50%, -50%);\n  cursor: ${(props) => (props.onClick ? 'pointer' : 'default')};\n  &:hover {\n    z-index: 1;\n  }\n`\n\nconst Marker = ({ text, onClick }) => (\n    <Wrapper\n        alt={text}\n        onClick={onClick}\n    />\n)\n\nMarker.defaultProps = {\n    onClick: null\n}\n\nMarker.propTypes = {\n    onClick: PropTypes.func,\n    text: PropTypes.string.isRequired\n}\n\nexport default Marker\n","import React, { Component } from 'react'\nimport GoogleMapReact from 'google-map-react'\n\nimport Marker from './components/Marker'\n\nconst AnyReactComponent = ({ text }) => <div>{text}</div>\n\nclass SimpleMap extends Component {\n    static defaultProps = {\n        center: {\n            lat: 49.403492,\n            lng: 2.777772\n        },\n        zoom: 16\n    }\n\n    render() {\n        return (\n            // Important! Always set the container height explicitly\n            <div style={{ height: '300px', width: '100%', border: '1px solid #d6dce0'  }}>\n                <GoogleMapReact\n                    bootstrapURLKeys={{ key: process.env.REACT_APP_MAPS_API_KEY}}\n                    defaultCenter={{lat: this.props.lat, lng: this.props.lng}}\n                    defaultZoom={this.props.zoom}\n                >\n                    <Marker\n                        key={1}\n                        text={this.props.venueName}\n                        lat={this.props.lat}\n                        lng={this.props.lng}\n                    />\n                </GoogleMapReact>\n            </div>\n        )\n    }\n}\n\nexport default SimpleMap\n","// ** Third Party Components\r\nimport { ChevronDown } from 'react-feather'\r\nimport DataTable from 'react-data-table-component'\r\nimport { Card, Input, Row, Col } from 'reactstrap'\r\nimport { useIntl } from 'react-intl'\r\nimport { SpinnerCentered } from \"@components\"\r\n\r\n// ** Styles\r\nimport '@styles/react/libs/tables/react-dataTable-component.scss'\r\n\r\n// ** Table Header\r\nconst CustomHeader = ({ searchTerm, setSearchTerm, buttonAction, extraFilters, isSearchable }) => {\r\n  const intl = useIntl()\r\n\r\n  return (\r\n    <div className='invoice-list-table-header w-100 mr-1 ml-50 mt-2 mb-75'>\r\n      <Row>\r\n        <Col xl='4' md='4' className='d-flex align-items-start p-0'>\r\n            {buttonAction}\r\n        </Col>\r\n        <Col\r\n          xl='4' md='4'\r\n          className='d-flex align-items-center\r\n          flex-md-nowrap flex-wrap flex-sm-row flex-column pr-lg-1 p-0 mt-lg-0 mt-md-0 mt-1'\r\n        >\r\n            {isSearchable && (\r\n                <Input\r\n                    id='search'\r\n                    className='ml-50'\r\n                    type='text'\r\n                    value={searchTerm}\r\n                    placeholder={intl.formatMessage({id: 'Search' })}\r\n                    onChange={e => setSearchTerm(e.target.value)}\r\n                />\r\n            )}\r\n        </Col>\r\n          <Col xl='4' md='4' className='d-flex align-items-start p-0'>\r\n              {extraFilters}\r\n          </Col>\r\n      </Row>\r\n    </div>\r\n  )\r\n}\r\n\r\nconst Datatable = ({\r\n  data, searchTerm, setSearchTerm, buttonAction, columns, selectableRows, setRowsPerPage,\r\n  selectableRowsComponent, onSelectedRowsChange, setCurrentPage, isLoading, extraFilters, isSearchable = true\r\n}) => {\r\n\r\n    const handlePagination = page => {\r\n        setCurrentPage(page)\r\n    }\r\n\r\n    const handleRowsChange = (newPerPage) => {\r\n        setRowsPerPage(newPerPage)\r\n    }\r\n\r\n  return (\r\n    <Card>\r\n      <DataTable\r\n        noHeader\r\n        subHeader\r\n        responsive\r\n        selectableRows={selectableRows}\r\n        selectableRowsComponent={selectableRowsComponent}\r\n        onSelectedRowsChange={onSelectedRowsChange}\r\n        pagination\r\n        paginationServer\r\n        paginationTotalRows={data.total}\r\n        onChangeRowsPerPage={handleRowsChange}\r\n        onChangePage={handlePagination}\r\n        columns={columns}\r\n        sortIcon={<ChevronDown />}\r\n        className='react-dataTable'\r\n        data={data.data}\r\n        progressPending={isLoading}\r\n        progressComponent={<SpinnerCentered color=\"primary\" />}\r\n        subHeaderComponent={\r\n          <CustomHeader\r\n            searchTerm={searchTerm}\r\n            setSearchTerm={setSearchTerm}\r\n            buttonAction={buttonAction}\r\n            extraFilters={extraFilters}\r\n            isSearchable={isSearchable}\r\n          />\r\n        }\r\n      />\r\n    </Card>\r\n  )\r\n}\r\n\r\nexport default Datatable\r\n","import {Col, Row} from \"reactstrap\"\nimport Intl from \"../intl\"\n\nconst Header = ({title}) => {\n    return (\n        <Row className=\"margin-menu\">\n            <Col lg='12'>\n                <h2><Intl id={title}/></h2>\n            </Col>\n        </Row>\n    )\n}\n\nexport default Header\n","const Styles = ({\n  primary_color,\n  secondary_color,\n  links_color,\n  navbar_bg,\n  navbar_text_color,\n  navbar_active_bg_color,\n  navbar_active_text_color,\n  navbar_hub_name_color\n}) => {\n  return (\n    <style global=\"true\" jsx=\"true\">{`\n    \n      :root {\n        --primary_color: ${primary_color};\n        --secondary_color: ${secondary_color};\n        --header_tagllinks_colorine_color: ${links_color};\n        --navbar_bg: ${navbar_bg};\n        --navbar_text_color: ${navbar_text_color};\n        --navbar_active_bg_color: ${navbar_active_bg_color};\n        --navbar_active_text_color: ${navbar_active_text_color};\n        --navbar_hub_name_color: ${navbar_hub_name_color};\n        --moz-container-padding: 0;\n      }\n      .logout-button,\n      .main-menu.menu-light .navigation,\n      .main-menu.menu-light {\n        background: var(--navbar_bg) !important;\n        background-color: var(--navbar_bg) !important;\n      }\n      .main-menu.menu-light,\n       .main-menu.menu-light .navigation li a{\n          color: var(--navbar_text_color) !important;\n      }\n      .main-menu.menu-light .navigation > li.active > a {\n          border-bottom: var(--primary_color) !important;\n          background: var(--navbar_active_bg_color) !important;\n          color: var(--navbar_active_text_color) !important;\n      }\n      .main-menu .navbar-header .navbar-brand .brand-text {\n          color: var(--navbar_hub_name_color) !important;\n      }\n      .btn-primary {\n          border-color: var(--primary_color) !important;\n          background-color: var(--primary_color) !important;\n      }\n      .btn-primary:hover:not(.disabled):not(:disabled) {\n          box-shadow: 0 8px 25px -8px var(--primary_color) !important;\n      }\n      .btn-primary:not(:disabled):not(.disabled):active, [dir] .btn-primary:not(:disabled):not(.disabled).active, [dir] .show > .btn-primary.dropdown-toggle {\n          background-color: var(--primary_color) !important;\n          border-color: var(--primary_color) !important;\n      }\n      .btn-primary:focus, .btn-primary:active, .btn-primary.active {\n          background-color: var(--primary_color) !important;\n      }\n      .btn-outline-primary {\n          border: 1px solid var(--primary_color) !important;\n          background-color: transparent;\n      }\n      .btn-outline-primary {\n          color: var(--primary_color) !important;\n      }\n      .main-menu.menu-light .navigation .navigation-header {\n          color: var(--navbar_text_color) !important;\n      }\n      .noUi-connect {\n          background: var(--primary_color) !important;\n      }\n      .noUi-handle {\n          border: 2px solid var(--primary_color) !important;\n      }\n      .nav-tabs .nav-link:after {\n          background: var(--primary_color) !important;\n      }\n      a,\n       .dashboard-subtitle {\n          color: var(--secondary_color) !important;\n      }\n      .text-primary {\n          color: var(--primary_color) !important;\n      }\n      .text-secondary {\n          color: var(--secondary_color) !important;\n      }\n      .page-item.active .page-link {\n          background-color: var(--primary_color) !important;\n          border-color: var(--primary_color) !important;\n      }\n      .pagination .page-link {\n        color: var(--primary_color) !important;\n      }\n      .btn-primary, .btn-secondary {\n          color: var(--navbar_active_text_color) !important;\n      }\n    `}</style>\n  )\n}\nexport default Styles\n","import api from '@configs/Api/Api'\n\nconst baseEndpoint = '/rms'\n\nexport default {\n\n    getConfig(hostname) {\n        return api.get(`${baseEndpoint}/whitelabel/config`, { hostname })\n    }\n}\n","//** React Imports\r\nimport { useState, useEffect } from \"react\"\r\nimport UiConfigService from '@services/UiConfig'\r\nimport { handlePromise, storage } from '@utils'\r\n\r\nexport const useUIConfig = (requestConfig) => {\r\n    const [error, setError] = useState()\r\n    const [isLoading, setIsLoading] = useState(false)\r\n    const [data, setData] = useState({})\r\n\r\n    const getUiConfig = (data) => {\r\n        const config = data || []\r\n        const UiStyles = {\r\n            logo: config.logo || \"https://mozrest-statics.s3.eu-west-1.amazonaws.com/logos/logo.svg\",\r\n            favicon: config.favicon || \"https://mozrest-statics.s3.eu-west-1.amazonaws.com/logos/favicon.ico\",\r\n            primary_color: config.primaryColor || \"#1f155a\",\r\n            secondary_color: config.secondaryColor || \"#f3be2f\",\r\n            links_color: config.linksColor || \"#ff9b00\",\r\n            hub_name: config.hubName || \"Channel Hub\",\r\n            navbar_logo: config.navbarLogo || \"https://mozrest-statics.s3.eu-west-1.amazonaws.com/logos/logo.png\",\r\n            navbar_bg: config.navbarBgLogo || \"#1f155a\",\r\n            navbar_text_color: config.navbarTextColor || \"#fff\",\r\n            navbar_active_bg_color: config.navbarActiveBgColor || \"#68628e\",\r\n            navbar_active_text_color: config.navbarActiveTextColor || \"#FFFFFF\",\r\n            navbar_hub_name_color: config.navbarHubNameColor || \"#FFFFFF\",\r\n            copyright: config.copyright || \"<a href='https://mozrest.com' target='_blank' rel='noopener noreferrer'>Mozrest Ltd</a>. All Rights Reserved.\"\r\n        }\r\n        return UiStyles\r\n    }\r\n\r\n    const getConfigFromStorage = () => {\r\n        const uiConfig = JSON.parse(storage.get('mozrest-hub:uiConfig'))\r\n        return uiConfig && uiConfig.hostname === window.location.hostname ? uiConfig.config : []\r\n    }\r\n\r\n    useEffect(() => {\r\n        const mozrestHub = process.env.REACT_APP_HOST\r\n\r\n        async function loadConfig() {\r\n            //Check the url to know if needs whitelabel config\r\n            if (mozrestHub !== window.location.hostname) {\r\n                //Check to know if we must request data or get it from local storage\r\n                if (requestConfig !== undefined && requestConfig === true) {\r\n                    //With the code, check if we have already the config on the localstorage\r\n                    try {\r\n                        setIsLoading(true)\r\n                        const { data } = await UiConfigService.getConfig(window.location.hostname)\r\n                        setData(data)\r\n                        storage.set('mozrest-hub:uiConfig', JSON.stringify({ hostname: window.location.hostname, config: data}))\r\n                        setIsLoading(false)\r\n                    } catch (error) {\r\n                        setError(error)\r\n                        setIsLoading(false)\r\n                    }\r\n                } else {\r\n                    setData(getConfigFromStorage())\r\n                }\r\n            }\r\n        }\r\n        loadConfig()\r\n\r\n    }, [setData, requestConfig])\r\n\r\n    return {isLoading, error, uiConfig: getUiConfig(data) }\r\n}\r\n\r\nexport default useUIConfig\r\n"],"sourceRoot":""}