{"version":3,"sources":["webpack:///./src/utility/Utils.js","webpack:///./src/assets/images/logo/logo.png","webpack:///./src/redux/reducers/auth/index.js","webpack:///./src/redux/reducers/navbar/index.js","webpack:///./src/redux/reducers/layout/index.js","webpack:///./src/redux/reducers/rootReducer.js","webpack:///./src/redux/storeConfig/store.js","webpack:///./src/utility/context/ThemeColors.js","webpack:///./src/@core/components/spinner/Fallback-spinner.js","webpack:///./src/@core/components/ripple-button/index.js","webpack:///./src/serviceWorker.js","webpack:///./src/index.js","webpack:///./src/configs/themeConfig.js"],"names":["isObjEmpty","obj","Object","keys","length","getCookie","cname","name","ca","decodeURIComponent","document","cookie","split","i","c","charAt","substring","indexOf","delete_cookie","siteModeisPRD","window","location","href","includes","isUserLoggedIn","localStorage","getItem","getUserData","jwt_decode","JSON","parse","loginToken","_getUserData","_getUserData2","jwtToken","async","_getUserData3","_getUserData4","data","axios","get","company_code","environment","_data$Data$","setItem","Data","theme_colour","err","setThemeColor","getCompanyConfig","localThemeColor","_getUserData5","_getUserData6","theme_Color","selectThemeColors","theme","colors","primary25","primary","neutral10","neutral20","neutral30","getParamsFromHashUrl","url","hash","params","fromEntries","URLSearchParams","getSubSystemName","initialState","serverError","userData","authReducer","state","action","type","suggestions","bookmarks","query","navbarReducer","val","objectToUpdate","find","item","id","isBookmarked","bookmarkIndex","findIndex","x","push","splice","isRTL","themeConfig","layout","menuCollapsed","initialMenuCollapsed","menu","isCollapsed","menuHidden","isHidden","contentWidth","layoutReducer","value","rootReducer","combineReducers","auth","navbar","middleware","thunk","createDebounce","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","ThemeColors","createContext","ThemeContext","children","setColors","useState","useEffect","getHex","color","getComputedStyle","body","getPropertyValue","trim","light","concat","main","secondary","success","danger","warning","info","dark","_jsx","Provider","SpinnerComponent","companyLogo","setCompanyLogo","app","appsilkReloLogo","_getCompanyConfig","_getCompanyConfig2","company_Logo","_jsxs","className","src","logo","alt","style","maxHeight","baseColors","Button","Ripple","RippleButton","during","outline","block","rest","Ripples","undefined","startsWith","Boolean","hostname","match","LazyApp","lazy","ReactDOM","render","Suspense","fallback","Spinner","ToastContainer","newestOnTop","getElementById","navigator","serviceWorker","ready","then","registration","unregister","appName","appNameUnbreak","appLogoImage","require","default","skin","routerTransition","backgroundColor","footer","customizer","scrollTop"],"mappings":"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","file":"main.b2931527.chunk.js?version=1793086204041","sourcesContent":["// ** Checks if an object is empty (returns boolean)\nexport const isObjEmpty = obj => Object.keys(obj).length === 0\nimport jwt_decode from \"jwt-decode\"\nimport axios from \"axios\"\n// ** Returns K format from a number\nexport const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)\n\n// ** Converts HTML to string\nexport const htmlToString = html => html.replace(/<\\/?[^>]+(>|$)/g, '')\n\n// ** Checks if the passed date is today\nconst isToday = date => {\n  const today = new Date()\n  return (\n    /* eslint-disable operator-linebreak */\n    date.getDate() === today.getDate() &&\n    date.getMonth() === today.getMonth() &&\n    date.getFullYear() === today.getFullYear()\n    /* eslint-enable */\n  )\n}\n\n/**\n ** Format and return date in Humanize format\n ** Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\n ** Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\n * @param {String} value date to format\n * @param {Object} formatting Intl object to format with\n */\nexport const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {\n  if (!value) return value\n  return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\n// ** Returns short month of passed date\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\n  const date = new Date(value)\n  let formatting = { month: 'short', day: 'numeric' }\n\n  if (toTimeForCurrentDay && isToday(date)) {\n    formatting = { hour: 'numeric', minute: 'numeric' }\n  }\n\n  return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))\n}\n\nexport const parseJwt = (token) => {\n  return jwt_decode(token)\n}\n\nexport const deleteCookie = (name) => {\n  document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:01 GMT;Path=/calendar`\n}\n\nexport const getCookie = (cname) => {\n  const name = `${cname}=`\n  const decodedCookie = decodeURIComponent(document.cookie)\n  const ca = decodedCookie.split(';')\n  for (let i = 0; i < ca.length; i++) {\n    let c = ca[i]\n    while (c.charAt(0) === ' ') {\n      c = c.substring(1)\n    }\n    if (c.indexOf(name) === 0) {\n      return c.substring(name.length, c.length)\n    }\n  }\n  return null\n}\n\nexport const delete_cookie = (name) => {\n  document.cookie = `${name}=; Domain=.a4apple.cn; expires=Thu, 01 Jan 1970 00:00:01 GMT; Path=/`\n}\n\nexport const siteModeisPRD = !window.location.href.includes(\"localhost\")\n\n/**\n ** Return if user is logged in\n ** This is completely up to you and how you want to store the token in your frontend application\n *  ? e.g. If you are using cookies to store the application please update this function\n */\nexport const isUserLoggedIn = () => { return siteModeisPRD ? getCookie(\"Token\") : localStorage.getItem('userData') }\nexport const getUserData = () => { return siteModeisPRD ? getCookie(\"Token\") ? jwt_decode(getCookie(\"Token\")) : \"\" : JSON.parse(localStorage.getItem('userData')) }\n\nexport const loginToken = () => {\n  return siteModeisPRD ? getCookie(\"Token\") ? getCookie(\"Token\") : getUserData()?.jwtToken : getUserData()?.jwtToken\n}\n\nconst setThemeColor = async () => {\n  try {\n    const { data } = await axios.get(`${process.env.REACT_APP_GIMA_THEME_API}?companycode=${getUserData()?.company_code || \"\"}&environment=${getUserData()?.environment || \"\"}`)\n    if (data) {\n      localStorage.setItem(\"theme_color\", data?.Data[0]?.theme_colour)\n    }\n  } catch (err) { }\n}\nif (getUserData()) {\n  setThemeColor()\n}\nexport const getCompanyConfig = () => {\n  const localThemeColor = localStorage.getItem(\"theme_color\")\n  if (localThemeColor === \"undefined\") {\n    localStorage.setItem(\"theme_color\", getUserData()?.theme_Color)\n    return {\n      ...getUserData(), theme_Color: getUserData()?.theme_Color\n    }\n  }\n  return {\n    ...getUserData(), theme_Color: localThemeColor\n  }\n}\n\n/**\n ** This function is used for demo purpose route navigation\n ** In real app you won't need this function because your app will navigate to same route for each users regardless of ability\n ** Please note role field is just for showing purpose it's not used by anything in frontend\n ** We are checking role just for ease\n * ? NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\n * @param {String} userRole Role of user\n */\nexport const getHomeRouteForLoggedInUser = userRole => {\n  if (userRole === 'admin') return '/'\n  if (userRole === 'client') return '/access-control'\n  return '/login'\n}\n\n// ** React Select Theme Colors\nexport const selectThemeColors = theme => ({\n  ...theme,\n  colors: {\n    ...theme.colors,\n    primary25: '#7367f01a', // for option hover bg-color\n    primary: '#7367f0', // for selected option bg-color\n    neutral10: '#7367f0', // for tags bg-color\n    neutral20: '#ededed', // for input border-color\n    neutral30: '#ededed' // for input hover border-color\n  }\n})\n\nexport const formatBytes = (bytes, decimals = 2) => {\n  if (bytes === 0) return '0 B'\n  const k = 1024\n  const dm = decimals < 0 ? 0 : decimals\n  const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n  const i = Math.floor(Math.log(bytes) / Math.log(k))\n  const floated = parseFloat((bytes / Math.pow(k, i)).toFixed(dm))\n  if (!floated || !sizes[i]) return '0 B'\n  return `${floated} ${sizes[i]}`\n}\n\nexport const truncateString = (str, n) => {\n  if (str && str.length > n) {\n    return `${str.substr(0, 20)}...${str.substr(str.length - 10, str.length)}`\n  }\n  return str\n}\n\nexport const getParamsFromHashUrl = (url) => {\n  const [hash, params] = process.env.REACT_APP_ROUTER_MODE === \"browser\" ? url.split('?') : url.split('#')[1].split('?')\n  const paramsObj = Object.fromEntries(new URLSearchParams(params))\n  return paramsObj\n}\n\nexport const getSubSystemName = () => localStorage.getItem('SubSystemName') || \"Meeting Management\"","export default \"data:image/png;base64,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\"","// **  Initial State\nconst initialState = {\n  serverError : false,\n  userData: {}\n}\n\nconst authReducer = (state = initialState, action) => {\n  switch (action.type) {\n    case 'SERVER_ERROR':          \n      return { ...state, serverError: action.data }\n    case 'LOGIN':\n      return { ...state, userData: action.data }\n    case 'LOGOUT':\n      return { ...state, userData: {} }\n    default:\n      return state\n  }\n}\n\nexport default authReducer\n","// ** Initial State\nconst initialState = {\n  suggestions: [],\n  bookmarks: [],\n  query: ''\n}\n\nconst navbarReducer = (state = initialState, action) => {\n  switch (action.type) {\n    case 'HANDLE_SEARCH_QUERY':\n      return { ...state, query: action.val }\n    case 'GET_BOOKMARKS':\n      return { ...state, suggestions: action.data, bookmarks: action.bookmarks }\n    case 'UPDATE_BOOKMARKED':\n      let objectToUpdate\n\n      // ** find & update object\n      state.suggestions.find(item => {\n        if (item.id === action.id) {\n          item.isBookmarked = !item.isBookmarked\n          objectToUpdate = item\n        }\n      })\n\n      // ** Get index to add or remove bookmark from array\n      const bookmarkIndex = state.bookmarks.findIndex(x => x.id === action.id)\n\n      if (bookmarkIndex === -1) {\n        state.bookmarks.push(objectToUpdate)\n      } else {\n        state.bookmarks.splice(bookmarkIndex, 1)\n      }\n\n      return { ...state }\n    default:\n      return state\n  }\n}\n\nexport default navbarReducer\n","// ** ThemeConfig Import\nimport themeConfig from '@configs/themeConfig'\n\n// ** Returns Initial Menu Collapsed State\nconst initialMenuCollapsed = () => {\n  const item = window.localStorage.getItem('menuCollapsed')\n  //** Parse stored json or if none return initialValue\n  return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed\n}\n\n// ** Initial State\nconst initialState = {\n  isRTL: themeConfig.layout.isRTL,\n  menuCollapsed: initialMenuCollapsed(),\n  menuHidden: themeConfig.layout.menu.isHidden,\n  contentWidth: themeConfig.layout.contentWidth\n}\n\nconst layoutReducer = (state = initialState, action) => {\n  switch (action.type) {\n    case 'HANDLE_CONTENT_WIDTH':\n      return { ...state, contentWidth: action.value }\n    case 'HANDLE_MENU_COLLAPSED':\n      window.localStorage.setItem('menuCollapsed', action.value)\n      return { ...state, menuCollapsed: action.value }\n    case 'HANDLE_MENU_HIDDEN':\n      return { ...state, menuHidden: action.value }\n    case 'HANDLE_RTL':\n      return { ...state, isRTL: action.value }\n    default:\n      return state\n  }\n}\n\nexport default layoutReducer\n","import { combineReducers } from 'redux'\nimport auth from './auth'\nimport navbar from './navbar'\nimport layout from './layout'\n\nconst rootReducer = combineReducers({\n  auth,\n  navbar,\n  layout\n})\n\nexport default rootReducer\n","// ** Redux, Thunk & Root Reducer Imports\nimport thunk from 'redux-thunk'\nimport createDebounce from 'redux-debounced'\nimport rootReducer from '../reducers/rootReducer'\nimport { createStore, applyMiddleware, compose } from 'redux'\n\n// ** init middleware\nconst middleware = [thunk, createDebounce()]\n\n// ** Dev Tools\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\n// ** Create store\nconst store = createStore(rootReducer, {}, composeEnhancers(applyMiddleware(...middleware)))\n\nexport { store }\n","// ** React Imports\nimport { useEffect, useState, createContext } from 'react'\n\n// ** Create Context\nconst ThemeColors = createContext()\n\nconst ThemeContext = ({ children }) => {\n  // ** State\n  const [colors, setColors] = useState({})\n\n  //** ComponentDidMount\n  useEffect(() => {\n    if (window !== 'undefined') {\n      //** Get variable value\n      const getHex = color => window.getComputedStyle(document.body).getPropertyValue(color).trim()\n\n      //** Colors obj\n      const obj = {\n        primary: {\n          light: getHex('--primary').concat('1a'),\n          main: getHex('--primary')\n        },\n        secondary: {\n          light: getHex('--secondary').concat('1a'),\n          main: getHex('--secondary')\n        },\n        success: {\n          light: getHex('--success').concat('1a'),\n          main: getHex('--success')\n        },\n        danger: {\n          light: getHex('--danger').concat('1a'),\n          main: getHex('--danger')\n        },\n        warning: {\n          light: getHex('--warning').concat('1a'),\n          main: getHex('--warning')\n        },\n        info: {\n          light: getHex('--info').concat('1a'),\n          main: getHex('--info')\n        },\n        dark: {\n          light: getHex('--dark').concat('1a'),\n          main: getHex('--dark')\n        }\n      }\n\n      setColors({ ...obj })\n    }\n  }, [])\n\n  return <ThemeColors.Provider value={{ colors }}>{children}</ThemeColors.Provider>\n}\n\nexport { ThemeColors, ThemeContext }\n","import React, { useState, useEffect } from 'react'\nimport { getCompanyConfig } from \"@utils\"\nimport logo from '@src/assets/images/logo/logo.png'\nimport themeConfig from '@configs/themeConfig'\n\nconst SpinnerComponent = () => {\n  const [companyLogo, setCompanyLogo] = useState(themeConfig.app.appsilkReloLogo)\n\n  useEffect(() => {\n    if (getCompanyConfig()?.company_Logo) {\n      setCompanyLogo(getCompanyConfig()?.company_Logo)\n    }\n  }, [])\n  return (\n    <div className='fallback-spinner vh-100 d-flex justify-content-center align-items-center'>\n      <img className='' src={companyLogo || logo} alt='logo' style={{ maxHeight: \"100px\" }} />\n      <div className='loading'>\n        <div className='effect-1 effects'></div>\n        <div className='effect-2 effects'></div>\n        <div className='effect-3 effects'></div>\n      </div>\n    </div>\n  )\n}\n\nexport default SpinnerComponent\n","// ** Third Party Components\nimport PropTypes from 'prop-types'\nimport { Button } from 'reactstrap'\nimport Ripples from 'react-ripples'\n\n// ** Theme Colors Object\nconst baseColors = {\n  primary: 'rgba(115, 103, 240, .2)',\n  secondary: 'rgba(130, 134, 139, .2)',\n  success: 'rgba(40, 199, 111, .2)',\n  warning: 'rgba(255, 159, 67, .2)',\n  danger: 'rgba(234, 84, 85, .2)',\n  info: 'rgba(0, 207, 232, .2)',\n  dark: 'rgba(30, 30, 30, .2)',\n  light: 'rgba(246, 246, 246, .2)'\n}\n\nconst RippleButton = ({ color, className, during, outline, block, ...rest }) => {\n  // ** Return Button Color Based On Variant\n  const btnColor = () => {\n    if (outline) {\n      return baseColors[color]\n    } else if (color !== undefined && color.startsWith('flat')) {\n      return baseColors[color.substring(5)]\n    } else {\n      return 'rgba(255, 255, 255, .5)'\n    }\n  }\n\n  return (\n    <Ripples color={btnColor()} during={during} className={`${block ? 'd-block' : ''}`}>\n      <Button className={className} color={color} block={block} outline={outline} {...rest} />\n    </Ripples>\n  )\n}\n\n// ** PropTypes\nRippleButton.propTypes = {\n  ...Button.propTypes,\n  rippleColor: PropTypes.string,\n  during: PropTypes.number\n}\n\nButton.Ripple = RippleButton\n","/*eslint-disable */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n  window.location.hostname === 'localhost' ||\n    // [::1] is the IPv6 localhost address.\n    window.location.hostname === '[::1]' ||\n    // 127.0.0.1/8 is considered localhost for IPv4.\n    window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n)\n\nexport function register(config) {\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n    // The URL constructor is available in all browsers that support SW.\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n    if (publicUrl.origin !== window.location.origin) {\n      // Our service worker won't work if PUBLIC_URL is on a different origin\n      // from what our page is served on. This might happen if a CDN is used to\n      // serve assets see https://github.com/facebook/create-react-app/issues/2374\n      return\n    }\n\n    window.addEventListener('load', () => {\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n      if (isLocalhost) {\n        // This is running on localhost. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config)\n\n        // Add some additional logging to localhost, pointing developers to the\n        // service worker/PWA documentation.\n        navigator.serviceWorker.ready.then(() => {\n          console.log(\n            'This web app is being served cache-first by a service ' +\n              'worker. To learn more, visit https://bit.ly/CRA-PWA'\n          )\n        })\n      } else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config)\n      }\n    })\n  }\n}\n\nfunction registerValidSW(swUrl, config) {\n  navigator.serviceWorker\n    .register(swUrl)\n    .then(registration => {\n      registration.onupdatefound = () => {\n        const installingWorker = registration.installing\n        if (installingWorker === null) {\n          return\n        }\n        installingWorker.onstatechange = () => {\n          if (installingWorker.state === 'installed') {\n            if (navigator.serviceWorker.controller) {\n              // At this point, the updated precached content has been fetched,\n              // but the previous service worker will still serve the older\n              // content until all client tabs are closed.\n              console.log(\n                'New content is available and will be used when all ' +\n                  'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n              )\n\n              // Execute callback\n              if (config && config.onUpdate) {\n                config.onUpdate(registration)\n              }\n            } else {\n              // At this point, everything has been precached.\n              // It's the perfect time to display a\n              // \"Content is cached for offline use.\" message.\n              console.log('Content is cached for offline use.')\n\n              // Execute callback\n              if (config && config.onSuccess) {\n                config.onSuccess(registration)\n              }\n            }\n          }\n        }\n      }\n    })\n    .catch(error => {\n      console.error('Error during service worker registration:', error)\n    })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n  // Check if the service worker can be found. If it can't reload the page.\n  fetch(swUrl)\n    .then(response => {\n      // Ensure service worker exists, and that we really are getting a JS file.\n      const contentType = response.headers.get('content-type')\n      if (response.status === 404 || (contentType !== null && contentType.indexOf('javascript') === -1)) {\n        // No service worker found. Probably a different app. Reload the page.\n        navigator.serviceWorker.ready.then(registration => {\n          registration.unregister().then(() => {\n            window.location.reload()\n          })\n        })\n      } else {\n        // Service worker found. Proceed as normal.\n        registerValidSW(swUrl, config)\n      }\n    })\n    .catch(() => {\n      console.log('No internet connection found. App is running in offline mode.')\n    })\n}\n\nexport function unregister() {\n  if ('serviceWorker' in navigator) {\n    navigator.serviceWorker.ready.then(registration => {\n      registration.unregister()\n    })\n  }\n}\n","// ** React Imports\nimport { Suspense, lazy } from 'react'\nimport ReactDOM from 'react-dom'\n\n// ** Redux Imports\nimport { Provider } from 'react-redux'\nimport { store } from './redux/storeConfig/store'\n\n// ** Toast & ThemeColors Context\nimport { ToastContainer } from 'react-toastify'\nimport { ThemeContext } from './utility/context/ThemeColors'\n\n// ** Spinner (Splash Screen)\nimport Spinner from './@core/components/spinner/Fallback-spinner'\n\n// ** Ripple Button\nimport './@core/components/ripple-button'\n\n// ** PrismJS\nimport 'prismjs'\nimport 'prismjs/themes/prism-tomorrow.css'\nimport 'prismjs/components/prism-jsx.min'\n\n// ** React Perfect Scrollbar\nimport 'react-perfect-scrollbar/dist/css/styles.css'\n\n// ** React Toastify\nimport '@styles/react/libs/toastify/toastify.scss'\n\n// ** Core styles\nimport './@core/assets/fonts/feather/iconfont.css'\nimport './@core/scss/core.scss'\nimport './assets/scss/style.scss'\n\n// ** Service Worker\nimport * as serviceWorker from './serviceWorker'\n\n// ** Lazy load app\nconst LazyApp = lazy(() => import('./App'))\n\nReactDOM.render(\n  <Provider store={store}>\n    <Suspense fallback={<Spinner />}>\n      <ThemeContext>\n        <LazyApp />\n        <ToastContainer newestOnTop />\n      </ThemeContext>\n    </Suspense>\n  </Provider>,\n  document.getElementById('root')\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n","// You can customize the template with the help of this file\nimport { getCompanyConfig } from \"@utils\"\n\n//Template config options\nconst themeConfig = {\n  app: {\n    appName: `Meeting Management`,\n    appNameUnbreak: `Meeting Management`,\n    appLogoImage: require('@src/assets/images/logo/logo.png').default,\n    appsilkReloLogo: getCompanyConfig()?.company_Logo || require('@src/assets/images/logo/logo.png').default\n  },\n  layout: {\n    isRTL: false,\n    skin: 'light', // light, dark, bordered, semi-dark\n    routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\n    type: 'vertical', // vertical, horizontal\n    contentWidth: 'full', // full, boxed\n    menu: {\n      isHidden: false,\n      isCollapsed: false\n    },\n    navbar: {\n      // ? For horizontal menu, navbar type will work for navMenu type\n      type: 'floating', // static , sticky , floating, hidden\n      backgroundColor: getCompanyConfig()?.theme_Color || \"#8dc454\" // BS color options [primary, success, etc]\n    },\n    footer: {\n      type: 'static' // static, sticky, hidden\n    },\n    customizer: false,\n    scrollTop: true // Enable scroll to top button\n  }\n}\n\nexport default themeConfig\n"],"sourceRoot":""}