{"version":3,"sources":["redux/rootReducer.js","redux/store.js","utility/context/ThemeColors.js","@core/components/ripple-button/index.js","serviceWorker.js","index.js","configs/themeConfig.js","redux/layout.js","redux/authentication.js","redux/wizard.js","views/dinner-solution/plan-meals-calendar/store/index.js","redux/navbar.js","views/dinner-solution/grocey-list/dinner-fridge-report/store/index.js","assets/images/logo/logo.png","@core/components/spinner/Fallback-spinner.js","assets/images/logo/logo-menu.png"],"names":["rootReducer","auth","navbar","layout","calendar","fridgeReport","wizard","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","ThemeColors","createContext","ThemeContext","children","useState","colors","setColors","useEffect","window","getHex","color","getComputedStyle","document","body","getPropertyValue","trim","obj","primary","light","concat","main","secondary","success","danger","warning","info","dark","Provider","value","Button","Ripple","className","onClick","rest","mounted","setMounted","isRippling","setIsRippling","x","y","coords","setCoords","setTimeout","classnames","e","rect","target","getBoundingClientRect","clientX","left","clientY","top","style","Boolean","location","hostname","match","LazyApp","lazy","ReactDOM","render","fallback","newestOnTop","getElementById","navigator","serviceWorker","ready","then","registration","unregister","themeConfig","app","appName","appLogoImage","require","default","isRTL","skin","routerTransition","type","contentWidth","menu","isHidden","isCollapsed","backgroundColor","footer","customizer","scrollTop","layoutSlice","createSlice","name","initialState","lastLayout","footerType","navbarType","menuHidden","menuCollapsed","navbarColor","reducers","handleRTL","state","action","payload","localStorage","setItem","JSON","stringify","handleSkin","handleLayout","handleFooterType","handleNavbarType","handleMenuHidden","handleLastLayout","handleNavbarColor","handleContentWidth","handleMenuCollapsed","handleRouterTransition","actions","authSlice","user","login","role","token","handleLogin","handleUser","handleLogout","wizardSlice","step1","step2","step3","step4","verifyEmailRoute","handleVerifyEmailRoute","fetchEvents","createAsyncThunk","calendars","axios","get","response","data","updateEvent","event","dispatch","getState","post","selectedCalendars","updateFilter","filter","includes","i","updateAllFilters","removeEvent","id","delete","appCalendarSlice","events","selectedEvent","selectEvent","addOneEvent","newArr","handleEvents","extraReducers","builder","addCase","fulfilled","splice","indexOf","push","selected","getBookmarks","a","suggestions","bookmarks","updateBookmarked","query","handleSearchQuery","objectToUpdate","find","item","isBookmarked","bookmarkIndex","findIndex","fridgeReportSlice","handleFridgeReport","SpinnerComponent","src","alt"],"mappings":"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","file":"static/js/main.9160eae8.chunk.js","sourcesContent":["// ** Reducers Imports\r\nimport navbar from './navbar'\r\nimport layout from './layout'\r\nimport auth from './authentication'\r\nimport wizard from './wizard'\r\nimport calendar from \"../views/dinner-solution/plan-meals-calendar/store\"\r\nimport fridgeReport from \"../views/dinner-solution/grocey-list/dinner-fridge-report/store\"\r\n\r\nconst rootReducer = {\r\n  auth,\r\n  navbar,\r\n  layout,\r\n  calendar,\r\n  fridgeReport,\r\n  wizard\r\n}\r\n\r\nexport default rootReducer\r\n","// ** Redux Imports\r\nimport rootReducer from './rootReducer'\r\nimport { configureStore } from '@reduxjs/toolkit'\r\n\r\nconst store = configureStore({\r\n  reducer: rootReducer,\r\n  middleware: getDefaultMiddleware => {\r\n    return getDefaultMiddleware({\r\n      serializableCheck: false\r\n    })\r\n  }\r\n})\r\n\r\nexport { store }\r\n","// ** React Imports\r\nimport { useEffect, useState, createContext } from 'react'\r\n\r\n// ** Create Context\r\nconst ThemeColors = createContext()\r\n\r\nconst ThemeContext = ({ children }) => {\r\n  // ** State\r\n  const [colors, setColors] = useState({})\r\n\r\n  //** ComponentDidMount\r\n  useEffect(() => {\r\n    if (window !== 'undefined') {\r\n      //** Get variable value\r\n      const getHex = color => window.getComputedStyle(document.body).getPropertyValue(color).trim()\r\n\r\n      //** Colors obj\r\n      const obj = {\r\n        primary: {\r\n          light: getHex('--bs-primary').concat('1a'),\r\n          main: getHex('--bs-primary')\r\n        },\r\n        secondary: {\r\n          light: getHex('--bs-secondary').concat('1a'),\r\n          main: getHex('--bs-secondary')\r\n        },\r\n        success: {\r\n          light: getHex('--bs-success').concat('1a'),\r\n          main: getHex('--bs-success')\r\n        },\r\n        danger: {\r\n          light: getHex('--bs-danger').concat('1a'),\r\n          main: getHex('--bs-danger')\r\n        },\r\n        warning: {\r\n          light: getHex('--bs-warning').concat('1a'),\r\n          main: getHex('--bs-warning')\r\n        },\r\n        info: {\r\n          light: getHex('--bs-info').concat('1a'),\r\n          main: getHex('--bs-info')\r\n        },\r\n        dark: {\r\n          light: getHex('--bs-dark').concat('1a'),\r\n          main: getHex('--bs-dark')\r\n        }\r\n      }\r\n\r\n      setColors({ ...obj })\r\n    }\r\n  }, [])\r\n\r\n  return <ThemeColors.Provider value={{ colors }}>{children}</ThemeColors.Provider>\r\n}\r\n\r\nexport { ThemeColors, ThemeContext }\r\n","// ** React Imports\r\nimport { useState, useEffect } from 'react'\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames'\r\n\r\n// ** Reactstrap Imports\r\nimport { Button } from 'reactstrap'\r\n\r\n// ** Styles\r\nimport './ripple-button.scss'\r\n\r\nconst RippleButton = ({ className, children, onClick, ...rest }) => {\r\n  // ** States\r\n  const [mounted, setMounted] = useState(false)\r\n  const [isRippling, setIsRippling] = useState(false)\r\n  const [coords, setCoords] = useState({ x: -1, y: -1 })\r\n\r\n  // ** Toggle mounted on mount & unmount\r\n  useEffect(() => {\r\n    setMounted(true)\r\n    return () => setMounted(false)\r\n  }, [])\r\n\r\n  // ** Check for coords and set ripple\r\n  useEffect(() => {\r\n    if (mounted) {\r\n      if (coords.x !== -1 && coords.y !== -1) {\r\n        setIsRippling(true)\r\n        setTimeout(() => setIsRippling(false), 500)\r\n      } else {\r\n        setIsRippling(false)\r\n      }\r\n    }\r\n  }, [coords])\r\n\r\n  // ** Reset Coords on ripple end\r\n  useEffect(() => {\r\n    if (mounted) {\r\n      if (!isRippling) setCoords({ x: -1, y: -1 })\r\n    }\r\n  }, [isRippling])\r\n\r\n  return (\r\n    <Button\r\n      className={classnames('waves-effect', {\r\n        [className]: className\r\n      })}\r\n      onClick={e => {\r\n        const rect = e.target.getBoundingClientRect()\r\n        setCoords({ x: e.clientX - rect.left, y: e.clientY - rect.top })\r\n        if (onClick) {\r\n          onClick(e)\r\n        }\r\n      }}\r\n      {...rest}\r\n    >\r\n      {children}\r\n      {isRippling ? (\r\n        <span\r\n          className='waves-ripple'\r\n          style={{\r\n            left: coords.x,\r\n            top: coords.y\r\n          }}\r\n        ></span>\r\n      ) : null}\r\n    </Button>\r\n  )\r\n}\r\n\r\n// ** PropTypes\r\nRippleButton.propTypes = {\r\n  ...Button.propTypes\r\n}\r\n\r\nButton.Ripple = RippleButton\r\n","/*eslint-disable */\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n    // [::1] is the IPv6 localhost address.\r\n    window.location.hostname === '[::1]' ||\r\n    // 127.0.0.1/8 is considered localhost for IPv4.\r\n    window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n)\r\n\r\nexport function register(config) {\r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets see https://github.com/facebook/create-react-app/issues/2374\r\n      return\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Let's check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl, config)\r\n\r\n        // Add some additional logging to localhost, pointing developers to the\r\n        // service worker/PWA documentation.\r\n        navigator.serviceWorker.ready.then(() => {\r\n          console.log(\r\n            'This web app is being served cache-first by a service ' +\r\n              'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n          )\r\n        })\r\n      } else {\r\n        // Is not localhost. Just register service worker\r\n        registerValidSW(swUrl, config)\r\n      }\r\n    })\r\n  }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then(registration => {\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing\r\n        if (installingWorker === null) {\r\n          return\r\n        }\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the updated precached content has been fetched,\r\n              // but the previous service worker will still serve the older\r\n              // content until all client tabs are closed.\r\n              console.log(\r\n                'New content is available and will be used when all ' +\r\n                  'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n              )\r\n\r\n              // Execute callback\r\n              if (config && config.onUpdate) {\r\n                config.onUpdate(registration)\r\n              }\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n              console.log('Content is cached for offline use.')\r\n\r\n              // Execute callback\r\n              if (config && config.onSuccess) {\r\n                config.onSuccess(registration)\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n    })\r\n    .catch(error => {\r\n      console.error('Error during service worker registration:', error)\r\n    })\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl)\r\n    .then(response => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      const contentType = response.headers.get('content-type')\r\n      if (response.status === 404 || (contentType !== null && contentType.indexOf('javascript') === -1)) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then(registration => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload()\r\n          })\r\n        })\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl, config)\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log('No internet connection found. App is running in offline mode.')\r\n    })\r\n}\r\n\r\nexport function unregister() {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready.then(registration => {\r\n      registration.unregister()\r\n    })\r\n  }\r\n}\r\n","// ** React Imports\r\nimport { Suspense, lazy } from 'react'\r\nimport ReactDOM from 'react-dom'\r\n\r\n// ** Redux Imports\r\nimport { Provider } from 'react-redux'\r\nimport { store } from './redux/store'\r\n\r\n// ** Intl & ThemeColors Context\r\nimport { ToastContainer } from 'react-toastify'\r\nimport { ThemeContext } from './utility/context/ThemeColors'\r\n\r\n// ** Spinner (Splash Screen)\r\nimport Spinner from './@core/components/spinner/Fallback-spinner'\r\n\r\n// ** Ripple Button\r\nimport './@core/components/ripple-button'\r\n\r\n// ** PrismJS\r\nimport 'prismjs'\r\nimport 'prismjs/themes/prism-tomorrow.css'\r\nimport 'prismjs/components/prism-jsx.min'\r\n\r\n// ** React Perfect Scrollbar\r\nimport 'react-perfect-scrollbar/dist/css/styles.css'\r\n\r\n// ** React Toastify\r\nimport '@styles/react/libs/toastify/toastify.scss'\r\n\r\n// ** Core styles\r\nimport './@core/assets/fonts/feather/iconfont.css'\r\nimport './@core/scss/core.scss'\r\nimport './assets/scss/style.scss'\r\nimport './index.scss'\r\n\r\n// ** Service Worker\r\nimport * as serviceWorker from './serviceWorker'\r\nimport { BrowserRouter } from 'react-router-dom'\r\n\r\n// ** Lazy load app\r\nconst LazyApp = lazy(() => import('./App'))\r\n\r\nReactDOM.render(\r\n  <Provider store={store}>\r\n    <Suspense fallback={<Spinner />}>\r\n      <ThemeContext>\r\n        <BrowserRouter>\r\n        <LazyApp />\r\n        </BrowserRouter>\r\n        <ToastContainer newestOnTop />\r\n      </ThemeContext>\r\n    </Suspense>\r\n  </Provider>,\r\n  document.getElementById('root')\r\n)\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister()\r\n","// You can customize the template with the help of this file\r\n\r\n//Template config options\r\nconst themeConfig = {\r\n  app: {\r\n    appName: \"Dinner Solution\",\r\n    appLogoImage: require(\"@src/assets/images/logo/logo-menu.png\").default,\r\n  },\r\n  layout: {\r\n    isRTL: false,\r\n    skin: \"light\", // light, dark, bordered, semi-dark\r\n    routerTransition: \"fadeIn\", // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\r\n    type: \"vertical\", // vertical, horizontal\r\n    contentWidth: \"boxed\", // full, boxed\r\n    menu: {\r\n      isHidden: false,\r\n      isCollapsed: false,\r\n    },\r\n    navbar: {\r\n      // ? For horizontal menu, navbar type will work for navMenu type\r\n      type: \"sticky\", // static , sticky , floating, hidden\r\n      backgroundColor: \"white\", // BS color options [primary, success, etc]\r\n    },\r\n    footer: {\r\n      type: \"static\", // static, sticky, hidden\r\n    },\r\n    customizer: false,\r\n    scrollTop: true, // Enable scroll to top button\r\n  },\r\n};\r\n\r\nexport default themeConfig;\r\n","// ** Redux Imports\r\nimport { createSlice } from '@reduxjs/toolkit'\r\n\r\n// ** ThemeConfig Import\r\nimport themeConfig from '@configs/themeConfig'\r\n\r\nexport const layoutSlice = createSlice({\r\n  name: 'layout',\r\n  initialState: {\r\n    skin: themeConfig.layout.skin,\r\n    isRTL: themeConfig.layout.isRTL,\r\n    layout: themeConfig.layout.type,\r\n    lastLayout: themeConfig.layout.type,\r\n    footerType: themeConfig.layout.footer.type,\r\n    navbarType: themeConfig.layout.navbar.type,\r\n    menuHidden: themeConfig.layout.menu.isHidden,\r\n    contentWidth: themeConfig.layout.contentWidth,\r\n    menuCollapsed: themeConfig.layout.menu.isCollapsed,\r\n    routerTransition: themeConfig.layout.routerTransition,\r\n    navbarColor: themeConfig.layout.navbar.backgroundColor\r\n  },\r\n  reducers: {\r\n    handleRTL: (state, action) => {\r\n      state.isRTL = action.payload\r\n      window.localStorage.setItem('direction', JSON.stringify(action.payload))\r\n    },\r\n    handleSkin: (state, action) => {\r\n      state.skin = action.payload\r\n      window.localStorage.setItem('skin', JSON.stringify(action.payload))\r\n    },\r\n    handleLayout: (state, action) => {\r\n      state.layout = action.payload\r\n    },\r\n    handleFooterType: (state, action) => {\r\n      state.footerType = action.payload\r\n    },\r\n    handleNavbarType: (state, action) => {\r\n      state.navbarType = action.payload\r\n    },\r\n    handleMenuHidden: (state, action) => {\r\n      state.menuHidden = action.payload\r\n    },\r\n    handleLastLayout: (state, action) => {\r\n      state.lastLayout = action.payload\r\n    },\r\n    handleNavbarColor: (state, action) => {\r\n      state.navbarColor = action.payload\r\n    },\r\n    handleContentWidth: (state, action) => {\r\n      state.contentWidth = action.payload\r\n    },\r\n    handleMenuCollapsed: (state, action) => {\r\n      state.menuCollapsed = action.payload\r\n      window.localStorage.setItem('menuCollapsed', JSON.stringify(action.payload))\r\n    },\r\n    handleRouterTransition: (state, action) => {\r\n      state.routerTransition = action.payload\r\n    }\r\n  }\r\n})\r\n\r\nexport const {\r\n  handleRTL,\r\n  handleSkin,\r\n  handleLayout,\r\n  handleLastLayout,\r\n  handleMenuHidden,\r\n  handleNavbarType,\r\n  handleFooterType,\r\n  handleNavbarColor,\r\n  handleContentWidth,\r\n  handleMenuCollapsed,\r\n  handleRouterTransition\r\n} = layoutSlice.actions\r\n\r\nexport default layoutSlice.reducer\r\n","// ** Redux Imports\r\nimport { createSlice } from '@reduxjs/toolkit'\r\n\r\n\r\nexport const authSlice = createSlice({\r\n  name: 'authentication',\r\n  initialState: {\r\n    user: null,\r\n    login: false,\r\n    role: null,\r\n    token: null,\r\n  },\r\n  reducers: {\r\n    handleLogin: (state, action) => {\r\n      state.user = action.payload.user\r\n      state.role = action.payload.role\r\n      state.login = action.payload.login\r\n      state.token = action.payload.token\r\n    },\r\n    handleUser: (state, action) => {\r\n      state.user = action.payload.user\r\n    },\r\n    handleLogout: state => {\r\n      state.user = null\r\n      state.role = null\r\n      state.login = false\r\n      state.token = null\r\n      localStorage.setItem(\"token\", \"\")\r\n    }\r\n  }\r\n})\r\n\r\nexport const { handleLogin, handleLogout, handleUser } = authSlice.actions\r\n\r\nexport default authSlice.reducer\r\n","// ** Redux Imports\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nexport const wizardSlice = createSlice({\r\n  name: \"wizard\",\r\n  initialState: {\r\n    step1: true,\r\n    step2: false,\r\n    step3: false,\r\n    step4: false,\r\n    verifyEmailRoute: false,\r\n  },\r\n  reducers: {\r\n    step1: (state, action) => {\r\n      state.step1 = action.payload;\r\n    },\r\n    step2: (state, action) => {\r\n      state.step2 = action.payload;\r\n    },\r\n    step3: (state, action) => {\r\n      state.step3 = action.payload;\r\n    },\r\n    step4: (state, action) => {\r\n      state.step4 = action.payload;\r\n    },\r\n    handleVerifyEmailRoute: (state, action) => {\r\n      state.verifyEmailRoute = action.payload;\r\n    },\r\n  },\r\n});\r\n\r\nexport const { step1, step2, step3, step4, handleVerifyEmailRoute } =\r\n  wizardSlice.actions;\r\n\r\nexport default wizardSlice.reducer;\r\n","// ** Redux Imports\r\nimport { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\r\n\r\n// ** Axios Imports\r\nimport axios from \"axios\";\r\n\r\nexport const fetchEvents = createAsyncThunk(\r\n  \"appCalendar/fetchEvents\",\r\n  async (calendars) => {\r\n    const response = await axios.get(\"/apps/calendar/events\", { calendars });\r\n    return response.data;\r\n  }\r\n);\r\n\r\nexport const addEvent = createAsyncThunk(\r\n  \"appCalendar/addEvent\",\r\n  async (event, { dispatch, getState }) => {\r\n    await axios.post(\"/apps/calendar/add-event\", { event });\r\n    await dispatch(fetchEvents(getState().calendar.selectedCalendars));\r\n    return event;\r\n  }\r\n);\r\n\r\nexport const updateEvent = createAsyncThunk(\r\n  \"appCalendar/updateEvent\",\r\n  async (event, { dispatch, getState }) => {\r\n    await axios.post(\"/apps/calendar/update-event\", { event });\r\n    await dispatch(fetchEvents(getState().calendar.selectedCalendars));\r\n    return event;\r\n  }\r\n);\r\n\r\nexport const updateFilter = createAsyncThunk(\r\n  \"appCalendar/updateFilter\",\r\n  async (filter, { dispatch, getState }) => {\r\n    if (getState().calendar.selectedCalendars.includes(filter)) {\r\n      await dispatch(\r\n        fetchEvents(\r\n          getState().calendar.selectedCalendars.filter((i) => i !== filter)\r\n        )\r\n      );\r\n    } else {\r\n      await dispatch(\r\n        fetchEvents([...getState().calendar.selectedCalendars, filter])\r\n      );\r\n    }\r\n    return filter;\r\n  }\r\n);\r\n\r\nexport const updateAllFilters = createAsyncThunk(\r\n  \"appCalendar/updateAllFilters\",\r\n  async (value, { dispatch }) => {\r\n    if (value === true) {\r\n      await dispatch(\r\n        fetchEvents([\"Personal\", \"Business\", \"Family\", \"Holiday\", \"ETC\"])\r\n      );\r\n    } else {\r\n      await dispatch(fetchEvents([]));\r\n    }\r\n    return value;\r\n  }\r\n);\r\n\r\nexport const removeEvent = createAsyncThunk(\r\n  \"appCalendar/removeEvent\",\r\n  async (id) => {\r\n    await axios.delete(\"/apps/calendar/remove-event\", { id });\r\n    return id;\r\n  }\r\n);\r\n\r\nexport const appCalendarSlice = createSlice({\r\n  name: \"appCalendar\",\r\n  initialState: {\r\n    events: [],\r\n    selectedEvent: {},\r\n    selectedCalendars: [\"Personal\", \"Business\", \"Family\", \"Holiday\", \"ETC\"],\r\n  },\r\n  reducers: {\r\n    selectEvent: (state, action) => {\r\n      state.selectedEvent = action.payload;\r\n    },\r\n    addOneEvent: (state, action) => {\r\n      const newArr = [...state.events, action.payload];\r\n      state.events = newArr;\r\n    },\r\n    handleEvents: (state, action) => {\r\n      state.events = action.payload\r\n    }\r\n  },\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(fetchEvents.fulfilled, (state, action) => {\r\n        state.events = action.payload;\r\n      })\r\n      .addCase(updateFilter.fulfilled, (state, action) => {\r\n        if (state.selectedCalendars.includes(action.payload)) {\r\n          state.selectedCalendars.splice(\r\n            state.selectedCalendars.indexOf(action.payload),\r\n            1\r\n          );\r\n        } else {\r\n          state.selectedCalendars.push(action.payload);\r\n        }\r\n      })\r\n      .addCase(updateAllFilters.fulfilled, (state, action) => {\r\n        const value = action.payload;\r\n        let selected = [];\r\n        if (value === true) {\r\n          selected = [\"Personal\", \"Business\", \"Family\", \"Holiday\", \"ETC\"];\r\n        } else {\r\n          selected = [];\r\n        }\r\n        state.selectedCalendars = selected;\r\n      });\r\n  },\r\n});\r\n\r\nexport const { selectEvent, addOneEvent, handleEvents } = appCalendarSlice.actions;\r\n\r\nexport default appCalendarSlice.reducer;\r\n","// ** Redux Imports\r\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\r\n\r\n// ** Axios Imports\r\nimport axios from 'axios'\r\n\r\nexport const getBookmarks = createAsyncThunk('layout/getBookmarks', async () => {\r\n  const response = await axios.get('/api/bookmarks/data')\r\n  return {\r\n    data: response.data.suggestions,\r\n    bookmarks: response.data.bookmarks\r\n  }\r\n})\r\n\r\nexport const updateBookmarked = createAsyncThunk('layout/updateBookmarked', async id => {\r\n  await axios.post('/api/bookmarks/update', { id })\r\n  return id\r\n})\r\n\r\nexport const layoutSlice = createSlice({\r\n  name: 'layout',\r\n  initialState: {\r\n    query: '',\r\n    bookmarks: [],\r\n    suggestions: []\r\n  },\r\n  reducers: {\r\n    handleSearchQuery: (state, action) => {\r\n      state.query = action.payload\r\n    }\r\n  },\r\n  extraReducers: builder => {\r\n    builder\r\n      .addCase(getBookmarks.fulfilled, (state, action) => {\r\n        state.suggestions = action.payload.data\r\n        state.bookmarks = action.payload.bookmarks\r\n      })\r\n      .addCase(updateBookmarked.fulfilled, (state, action) => {\r\n        let objectToUpdate\r\n\r\n        // ** find & update object\r\n        state.suggestions.find(item => {\r\n          if (item.id === action.payload) {\r\n            item.isBookmarked = !item.isBookmarked\r\n            objectToUpdate = item\r\n          }\r\n        })\r\n\r\n        // ** Get index to add or remove bookmark from array\r\n        const bookmarkIndex = state.bookmarks.findIndex(x => x.id === action.payload)\r\n\r\n        if (bookmarkIndex === -1) {\r\n          state.bookmarks.push(objectToUpdate)\r\n        } else {\r\n          state.bookmarks.splice(bookmarkIndex, 1)\r\n        }\r\n      })\r\n  }\r\n})\r\n\r\nexport const { handleSearchQuery } = layoutSlice.actions\r\n\r\nexport default layoutSlice.reducer\r\n","// ** Redux Imports\r\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\r\n\r\n// ** Axios Imports\r\nimport axios from 'axios'\r\n\r\n\r\nexport const fridgeReportSlice = createSlice({\r\n  name: 'fridgeReport',\r\n  initialState: {\r\n    events: [],\r\n    selectedEvent: {},\r\n    selectedCalendars: ['Personal', 'Business', 'Family', 'Holiday', 'ETC']\r\n  },\r\n  reducers: {\r\n    selectEvent: (state, action) => {\r\n      state.selectedEvent = action.payload\r\n    },\r\n    addOneEvent: (state, action) => {\r\n      const newArr = [...state.events, action.payload]\r\n      state.events = newArr\r\n    },\r\n    handleFridgeReport: (state, action) => {\r\n      state.events = action.payload\r\n    }\r\n  }\r\n})\r\n\r\nexport const { selectEvent, addOneEvent, handleFridgeReport } = fridgeReportSlice.actions\r\n\r\nexport default fridgeReportSlice.reducer\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAAA3CAYAAACih3wUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMS1jMDAwIDc5LmVkYTJiM2ZhYywgMjAyMS8xMS8xNy0xNzoyMzoxOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIzLjEgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGMEZDNjRBODA2NTExRURBODI5RjdEQzcyRjI4RTE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGMEZDNjRCODA2NTExRURBODI5RjdEQzcyRjI4RTE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0YwRkM2NDg4MDY1MTFFREE4MjlGN0RDNzJGMjhFMTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0YwRkM2NDk4MDY1MTFFREE4MjlGN0RDNzJGMjhFMTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz70ivw2AAALo0lEQVR42uxc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\"","// ** Logo\r\nimport logo from '@src/assets/images/logo/logo.png'\r\n\r\nconst SpinnerComponent = () => {\r\n  return (\r\n    <div className='fallback-spinner app-loader'>\r\n      <img className='fallback-logo' src={logo} alt='logo' />\r\n      <div className='loading'>\r\n        <div className='effect-1 effects'></div>\r\n        <div className='effect-2 effects'></div>\r\n        <div className='effect-3 effects'></div>\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default SpinnerComponent\r\n","export default \"data:image/png;base64,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\""],"sourceRoot":""}