{"version":3,"sources":["webpack:///./scripts/Components/Filterbar/styles|lazy|/^\\.\\/.*\\.scss$/|groupOptions: {}|namespace object","webpack:///./scripts/Components/Filterbar/FilterTogglerButton.js","webpack:///./scripts/Components/Filterbar/ListingLayoutTogglers.js","webpack:///./scripts/Actions/ProductsView.action.js","webpack:///./scripts/Components/Filterbar/FilterBar.js","webpack:///./scripts/Components/SideMenu.js","webpack:///./styles/exports/wtg.module.scss","webpack:///./scripts/Hooks/useIsMobile.js","webpack:///./scripts/Hooks/useWindowSize.js","webpack:///../node_modules/clsx/dist/clsx.mjs"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","keys","Object","module","exports","FilterTogglerButton","facetedSearchState","useSelector","state","facetedSearch","activeFiltersCount","facetFilters","f","selectedOptions","length","reduce","a","b","filterMenuOpen","setFilterMenuOpen","useState","activeFilterGroup","setActiveFilterGroup","isLoading","setIsLoading","isMobile","useIsMobile","filterGroups","dispatch","useDispatch","headerRef","React","className","onClick","translate","footer","clearSelectedFilters","forEach","submitSearchFacet","totalCount","filterGroup","key","label","openSpecificFilterGroup","filtergrpId","SideMenu","open","onClosed","FacetedSearch","openedFacet","window","__litium","themeName","TogglerOption","activeOption","text","icon","iconActive","ListingLayoutTogglers","listType","productsView","setActiveOption","post","type","PRODUCTS_SET_LIST_TYPE","payload","setListType","LIST_TYPE_GALLERY","Icon","iconCode","iconClass","LIST_TYPE_TABLE","FilterBar","forwardRef","duration","from","showCloseButton","children","title","disableClosing","closeButton","languageSwitcher","messageBar","ref","slideIn","setSlideIn","timeoutId","setTimeoutId","close","useCallback","useEffect","updateOverlay","clearTimeout","newTimeoutId","setTimeout","undefined","substr","removeOverlay","addOverlay","ReactDOM","style","transitionDuration","cloneElement","props","currentChannel","document","body","breakpoint","parseInt","breakpoints","replace","windowWidth","initialWidth","innerWidth","initialHeight","innerHeight","size","setSize","useLayoutEffect","updateSize","addEventListener","removeEventListener","useWindowSize","setIsMobile","r","t","n","Array","isArray","arguments"],"mappings":"6EAAA,IAAIA,EAAM,CACT,aAAc,CACb,MACA,MAED,cAAe,CACd,MACA,MAED,kBAAmB,CAClB,KACA,MAED,iBAAkB,CACjB,MACA,KAED,aAAc,CACb,MACA,OAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,KAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,CAAC,IAIT,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,IAClCJ,EAAoBS,IAE7B,CACAX,EAAoBY,KAAO,IAAOC,OAAOD,KAAKb,GAC9CC,EAAoBW,GAAK,MACzBG,EAAOC,QAAUf,C,yJCzBjB,MA8FA,EA9F4BgB,KAC1B,MAAMC,GAAqBC,SAAaC,GAAUA,EAAMC,gBAClDC,EAAqBJ,EAAmBK,aAC3CvB,KAAKwB,GAAMA,EAAEC,gBAAgBC,SAC7BC,QAAO,CAACC,EAAGC,IAAMD,EAAIC,GAAG,IACpBC,EAAgBC,IAAqBC,eAAS,IAC9CC,EAAmBC,IAAwBF,cAAS,OACpDG,EAAWC,IAAgBJ,eAAS,GACrCK,GAAWC,SACXC,EAAerB,EAAmBK,aAClCiB,GAAWC,UASXC,EACJC,gBAAA,OAAKC,UAAU,oBAAoBC,QAASA,IAAMd,GAAkB,KACjEe,OAAU,oBASTC,EACJJ,gBAAA,OAAKC,UAAU,+BACbD,gBAAA,UAAQC,UAAU,mBAAmBC,QArBZG,KAE3BZ,GAAa,GACbG,EAAaU,SAASzB,GAAOA,EAAEC,gBAAkB,KACjDe,GAASU,OAAkBX,IAC3BR,GAAkB,EAAM,IAiBnBe,OAAU,qCAEbH,gBAAA,UACEC,UAAU,gDACVC,QAASA,IAAMd,GAAkB,IAG/BY,gBAAA,aACGG,OAAU,eAAgB,IAC1B5B,EAAmBiC,WAAa,GAC/B,IAAMjC,EAAmBiC,WAAa,OAOlD,OACER,2BAAA,KACGN,EACCM,gBAAA,OACEC,UAAU,mBACVC,QAASA,IAAMd,GAAmBD,KAEjCgB,OAAU,mBACVxB,EAAqB,GACpBqB,gBAAA,QAAMC,UAAU,yBAAyBtB,IAI7CqB,2BAAA,KACGJ,EAAavC,KAAKoD,GACjBT,gBAAA,OACEU,IAAK,kBAAoBD,EAAYE,MACrCV,UAAU,mBACVC,QAASA,KAAMU,OA3CMC,EA2CkBJ,EAAYxC,GA1C7DsB,EAAqBsB,QACrBzB,GAAmBD,GAFY0B,KA2CkC,GAEtDJ,EAAYE,MAAO,IACnBF,EAAY3B,gBAAgBC,OAAS,EACpCiB,gBAAA,QAAMC,UAAU,yBACbQ,EAAY3B,gBAAgBC,QAE7B,SAKZiB,gBAACc,IAAQ,CACP7C,GAAG,cACHgC,UAAU,qBACVF,UAAWA,EACXK,OAAQA,EACRW,KAAM5B,EACN6B,SAAUA,IAAM5B,GAAkB,IAElCY,gBAACiB,IAAa,CAACC,YAAa5B,KAE7B,E,mCC7FP,SAAO,KAAY6B,OAAOC,SAASC,kBAEnC,MAAMC,EAAgBA,EACpBrD,KACAiC,UACAqB,eACAC,OACAC,OACAC,gBAGE1B,gBAAA,OACE/B,GAAIA,EACJiC,QAASA,IAAMA,EAAQjC,GACvBgC,UACEsB,GAAgBtD,EACZ,sFACA,yCAGLsD,GAAgBtD,EAAKyD,EAAaD,EAClCD,GAuCP,EAlC8BG,KAC5B,MAAM,SAAEC,IAAapD,SAAaC,GAAUA,EAAMoD,eAC5ChC,GAAWC,UAEXgC,EAAmB7D,IACvB4B,EClCwB+B,MAE1BG,QAAK,0CAA0CH,KAExC,CACLI,KAAMC,KACNC,QAAS,CACPN,cD2BOO,CAAYlE,GAAI,EAG3B,OACE+B,2BAAA,KACEA,gBAACsB,EAAa,CACZrD,GAAImE,KACJb,aAAcK,EACdJ,KAAM,GACNC,KAAMzB,gBAACqC,IAAI,CAACC,SAAS,cACrBZ,WACE1B,gBAACqC,IAAI,CAACC,SAAS,YAAYC,UAAU,0BAEvCrC,QAAUjC,GAAO6D,EAAgB7D,KAEnC+B,gBAACsB,EAAa,CACZrD,GAAIuE,KACJjB,aAAcK,EACdJ,KAAM,GACNC,KAAMzB,gBAACqC,IAAI,CAACC,SAAS,cACrBZ,WACE1B,gBAACqC,IAAI,CAACC,SAAS,YAAYC,UAAU,0BAEvCrC,QAAUjC,GAAO6D,EAAgB7D,KAElC,EE7DP,SAAO,KAAYkD,OAAOC,SAASC,kBAEnC,MAqBA,EArBkBoB,KAChB,MAAMlE,GAAqBC,SAAaC,GAAUA,EAAMC,gBAExD,OACEsB,2BAAA,KACEA,gBAAA,OAAKC,UAAU,kCACbD,gBAAC1B,EAAmB,OAEtB0B,gBAAA,OAAKC,UAAU,4BACbD,gBAAA,OAAKC,UAAU,kCACZ1B,GAAoBiC,WAAY,KAChCL,OAAU,4BAEbH,gBAAA,OAAKC,UAAU,gDACbD,gBAAC2B,EAAqB,QAGzB,C,0GCLP,SAAee,iBACb,EAEIzE,KACA0E,WAAW,OACXC,OAAO,QACP3C,YACAc,OACAC,WACA6B,mBAAkB,EAClBC,WACAC,QACAhD,YACAK,SACA4C,kBAAiB,EACjBC,cAAc,KACdC,mBAAmB,KACnBC,aAAa,MAEfC,KAEA,MAAOC,EAASC,IAAcjE,iBACvBkE,EAAWC,IAAgBnE,gBAC5BQ,GAAWC,UAEjB,IAAK7B,GAAY,IAANA,EACT,MAAM,IAAIH,MACR,iEAIJ,MAAM2F,GAAQC,kBAAY,KACnBV,IAEHM,GAAW,IACJ,IAKR,CAACN,IAmCJ,OAjCAW,gBAAU,KACR9D,GAAS+D,QAAc3F,EAAIwF,GAAO,GACjC,CAAC5D,EAAU4D,EAAOxF,KAErB0F,gBAAU,KACR,IAAKN,EAAS,CAERE,GAEFM,aAAaN,GAGf,IAAIO,EAAeC,YAAW,KAC5BP,OAAaQ,GACbhD,GAAYA,GAAU,GACqB,IAA1C2B,EAASsB,OAAO,EAAGtB,EAAS5D,OAAS,IAExCyE,EAAaM,GACbjE,GAASqE,QAAcjG,GACzB,IACC,CAACoF,KAEJM,gBAAU,KAIRI,YAAW,IAAMT,EAAWvC,IAAO,GAE/BA,GACFlB,GAASsE,QAAWlG,EAAIwF,GAC1B,GACC,CAAC1C,IAEGA,EACHqD,eACEpE,gBAAA,OACEC,UACE,aACCoD,EAAU,mBAAqB,IAC/B,SAAWT,GACX3C,EAAY,IAAMA,EAAY,IAEjCmD,IAAKA,EACLiB,MAAO,CAAEC,mBAAoB3B,IAE5B5C,GACCC,gBAAA,OAAKC,UAAU,qBACZ4C,IACEG,IACCC,GAOAsB,kBAAatB,EAAa,CACxB/C,QAASuD,IAPXzD,gBAACqC,IAAI,CACHC,SAAS,QACTpC,QAASuD,EACTlB,UAAU,2BAOfW,GAAkBsB,MAAMC,eACrBvB,EACA,KACHnD,IAGHA,GACA8C,IACCG,IACCC,GAOAsB,kBAAatB,EAAa,CACxB/C,QAASuD,IAPXzD,gBAACqC,IAAI,CACHC,SAAS,QACTpC,QAASuD,EACTlB,UAAU,2BAOfQ,GAAS/C,gBAAA,MAAIC,UAAU,oBAAoB8C,GAC3CI,GACCnD,gBAAA,OAAKC,UAAU,0BAA0BkD,GAE3CnD,gBAAA,OAAKC,UAAU,sBAAsB6C,GACpC1C,GAAUJ,gBAAA,OAAKC,UAAU,qBAAqBG,IAEjDsE,SAASC,MAEX,IAAI,G,+DCrJZ,SAAgB,OAAS,IAAI,MAAQ,QAAQ,OAAS,QAAQ,MAAQ,SAAS,OAAS,SAAS,UAAY,SAAS,QAAU,UCGhI,MAeA,EAboBhF,CAACiF,EAFK,WAGxBA,EAAaC,SAASC,EAAYF,GAAYG,QAAQ,KAAM,KAE5D,MAAOC,GCPM,WACb,IAAIC,EAAe9D,QAAUA,OAAO+D,WAAa/D,OAAO+D,WAAa,EACjEC,EAAgBhE,QAAUA,OAAOiE,YAAcjE,OAAOiE,YAAc,EACxE,MAAOC,EAAMC,IAAWjG,cAAS,CAAC4F,EAAcE,IAShD,OARAI,sBAAgB,KACd,SAASC,IACPF,EAAQ,CAACnE,OAAO+D,WAAY/D,OAAOiE,aACrC,CAGA,OAFAjE,OAAOsE,iBAAiB,SAAUD,GAClCA,IACO,IAAMrE,OAAOuE,oBAAoB,SAAUF,EAAW,GAC5D,IACIH,CACT,CDNwBM,IACfjG,EAAUkG,GAAe5F,WAAegF,GAAeJ,EAAa,GAM3E,OAJAjB,gBAAU,KACRiC,EAAYZ,GAAeJ,EAAa,EAAE,GACzC,CAACI,EAAaJ,IAEVlF,CAAQ,C,+BEhBjB,SAASmG,EAAEhI,GAAG,IAAIiI,EAAEjH,EAAEkH,EAAE,GAAG,GAAG,iBAAiBlI,GAAG,iBAAiBA,EAAEkI,GAAGlI,OAAO,GAAG,iBAAiBA,EAAE,GAAGmI,MAAMC,QAAQpI,GAAG,CAAC,IAAIJ,EAAEI,EAAEkB,OAAO,IAAI+G,EAAE,EAAEA,EAAErI,EAAEqI,IAAIjI,EAAEiI,KAAKjH,EAAEgH,EAAEhI,EAAEiI,OAAOC,IAAIA,GAAG,KAAKA,GAAGlH,EAAE,MAAM,IAAIA,KAAKhB,EAAEA,EAAEgB,KAAKkH,IAAIA,GAAG,KAAKA,GAAGlH,GAAG,OAAOkH,CAAC,C,iBAAgI,QAAxH,WAAgB,IAAI,IAAIlI,EAAEiI,EAAEjH,EAAE,EAAEkH,EAAE,GAAGtI,EAAEyI,UAAUnH,OAAOF,EAAEpB,EAAEoB,KAAKhB,EAAEqI,UAAUrH,MAAMiH,EAAED,EAAEhI,MAAMkI,IAAIA,GAAG,KAAKA,GAAGD,GAAG,OAAOC,CAAC,C","file":"6738.d363a27493d3faec3846.js","sourcesContent":["var map = {\n\t\"./alf.scss\": [\n\t\t41451,\n\t\t1451\n\t],\n\t\"./main.scss\": [\n\t\t28785,\n\t\t8785\n\t],\n\t\"./oh-poppy.scss\": [\n\t\t1242,\n\t\t1242\n\t],\n\t\"./vincent.scss\": [\n\t\t30106,\n\t\t106\n\t],\n\t\"./wtg.scss\": [\n\t\t79236,\n\t\t9236\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 76172;\nmodule.exports = webpackAsyncContext;","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n  searchFacetChange,\n  submitSearchFacet,\n  updateFilterOption,\n} from '../../Actions/FacetedSearch.action';\nimport SideMenu from '../SideMenu';\nimport FacetedSearch from '../FacetedSearch';\nimport Icon from '../IconBase/Icon';\nimport { translate } from '../../Services/translation';\nimport useIsMobile from '../../Hooks/useIsMobile';\n\nconst FilterTogglerButton = () => {\n  const facetedSearchState = useSelector((state) => state.facetedSearch);\n  const activeFiltersCount = facetedSearchState.facetFilters\n    .map((f) => f.selectedOptions.length)\n    .reduce((a, b) => a + b, 0);\n  const [filterMenuOpen, setFilterMenuOpen] = useState(false);\n  const [activeFilterGroup, setActiveFilterGroup] = useState(null);\n  const [isLoading, setIsLoading] = useState(false);\n  const isMobile = useIsMobile();\n  const filterGroups = facetedSearchState.facetFilters;\n  const dispatch = useDispatch();\n  const clearSelectedFilters = () => {\n    // Set all selectedOptions to an empty array\n    setIsLoading(true);\n    filterGroups.forEach((f) => (f.selectedOptions = []));\n    dispatch(submitSearchFacet(filterGroups));\n    setFilterMenuOpen(false);\n  };\n\n  const headerRef = (\n    <div className=\"filter-menu__back\" onClick={() => setFilterMenuOpen(false)}>\n      {translate('category.filter')}\n    </div>\n  );\n\n  const openSpecificFilterGroup = (filtergrpId) => {\n    setActiveFilterGroup(filtergrpId);\n    setFilterMenuOpen(!filterMenuOpen);\n  };\n\n  const footer = (\n    <div className=\"filter-menu__footer-buttons\">\n      <button className=\"btn btn--outline\" onClick={clearSelectedFilters}>\n        {translate('mobile-filter-menu.clear-filters')}\n      </button>\n      <button\n        className=\"btn btn--black filter-menu__show-products-btn\"\n        onClick={() => setFilterMenuOpen(false)}\n      >\n        {\n          <span>\n            {translate('global.show')}{' '}\n            {facetedSearchState.totalCount > 0 &&\n              '(' + facetedSearchState.totalCount + ')'}\n          </span>\n        }\n      </button>\n    </div>\n  );\n\n  return (\n    <>\n      {isMobile ? (\n        <div\n          className=\"btn btn--outline\"\n          onClick={() => setFilterMenuOpen(!filterMenuOpen)}\n        >\n          {translate('category.filter')}\n          {activeFiltersCount > 0 && (\n            <span className=\"filter-trigger__count\">{activeFiltersCount}</span>\n          )}\n        </div>\n      ) : (\n        <>\n          {filterGroups.map((filterGroup) => (\n            <div\n              key={`filter-trigger-` + filterGroup.label}\n              className=\"btn btn--outline\"\n              onClick={() => openSpecificFilterGroup(filterGroup.id)}\n            >\n              {filterGroup.label}{' '}\n              {filterGroup.selectedOptions.length > 0 ? (\n                <span className=\"filter-trigger__count\">\n                  {filterGroup.selectedOptions.length}\n                </span>\n              ) : null}\n            </div>\n          ))}\n        </>\n      )}\n      <SideMenu\n        id=\"filter-menu\"\n        className=\"side-menu--filters\"\n        headerRef={headerRef}\n        footer={footer}\n        open={filterMenuOpen}\n        onClosed={() => setFilterMenuOpen(false)}\n      >\n        <FacetedSearch openedFacet={activeFilterGroup} />\n      </SideMenu>\n    </>\n  );\n};\n\nexport default FilterTogglerButton;\n","import React, { useState } from 'react';\nimport Icon from '../IconBase/Icon';\nimport { translate } from '../../Services/translation';\nimport {\n  LIST_TYPE_GALLERY,\n  LIST_TYPE_LIST,\n  LIST_TYPE_TABLE,\n} from '../ProductsView/ProductsView';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setListType } from '../../Actions/ProductsView.action';\nimport(`./styles/${window.__litium.themeName}.scss`);\n\nconst TogglerOption = ({\n  id,\n  onClick,\n  activeOption,\n  text,\n  icon,\n  iconActive,\n}) => {\n  return (\n    <div\n      id={id}\n      onClick={() => onClick(id)}\n      className={\n        activeOption == id\n          ? 'product-sorting__view-options--button product-sorting__view-options--button--active'\n          : 'product-sorting__view-options--button'\n      }\n    >\n      {activeOption == id ? iconActive : icon}\n      {text}\n    </div>\n  );\n};\n\nconst ListingLayoutTogglers = () => {\n  const { listType } = useSelector((state) => state.productsView);\n  const dispatch = useDispatch();\n\n  const setActiveOption = (id) => {\n    dispatch(setListType(id));\n  };\n\n  return (\n    <>\n      <TogglerOption\n        id={LIST_TYPE_GALLERY}\n        activeOption={listType}\n        text={''}\n        icon={<Icon iconCode=\"grid_view\" />}\n        iconActive={\n          <Icon iconCode=\"grid_view\" iconClass=\"layout-toggle__active\" />\n        }\n        onClick={(id) => setActiveOption(id)}\n      />\n      <TogglerOption\n        id={LIST_TYPE_TABLE}\n        activeOption={listType}\n        text={''}\n        icon={<Icon iconCode=\"view_list\" />}\n        iconActive={\n          <Icon iconCode=\"view_list\" iconClass=\"layout-toggle__active\" />\n        }\n        onClick={(id) => setActiveOption(id)}\n      />\n    </>\n  );\n};\n\nexport default ListingLayoutTogglers;\n","import { post } from '../Services/http';\nimport {\n  PRODUCTS_RECEIVE_PRODUCTS_WRAPPER,\n  PRODUCTS_SET_LIST_TYPE,\n  PRODUCTS_SET_IS_LOADING,\n} from '../constants';\n\nexport const setListType = (listType) => {\n  // Fire and forget\n  post(`/api/productsview/setListType?listType=${listType}`);\n\n  return {\n    type: PRODUCTS_SET_LIST_TYPE,\n    payload: {\n      listType,\n    },\n  };\n};\n\nexport const receiveProductsWrapper = (productsWrapper) => ({\n  type: PRODUCTS_RECEIVE_PRODUCTS_WRAPPER,\n  payload: {\n    productsWrapper,\n  },\n});\n\nexport const setProductsLoading = (isLoading) => ({\n  type: PRODUCTS_SET_IS_LOADING,\n  payload: {\n    isLoading,\n  },\n});\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { translate } from '../../Services/translation';\nimport FilterTogglerButton from './FilterTogglerButton';\nimport ListingLayoutTogglers from './ListingLayoutTogglers';\nimport(`./styles/${window.__litium.themeName}.scss`);\n\nconst FilterBar = () => {\n  const facetedSearchState = useSelector((state) => state.facetedSearch);\n\n  return (\n    <>\n      <div className=\"product-sorting__filter-button\">\n        <FilterTogglerButton />\n      </div>\n      <div className=\"product-sorting__layouts\">\n        <div className=\"product-sorting__result-amount\">\n          {facetedSearchState?.totalCount}{' '}\n          {translate('category-filter.results')}\n        </div>\n        <div className=\"product-sorting__view-options show-for-large\">\n          <ListingLayoutTogglers />\n        </div>\n      </div>\n    </>\n  );\n};\n\nexport default FilterBar;\n","import React, {\n  cloneElement,\n  createElement,\n  createRef,\n  forwardRef,\n  useCallback,\n  useEffect,\n  useState,\n} from 'react';\nimport ReactDOM, { render } from 'react-dom';\nimport { useDispatch } from 'react-redux';\nimport {\n  addOverlay,\n  removeOverlay,\n  updateOverlay,\n} from '../Actions/Overlay.action';\nimport Icon from './IconBase/Icon';\n// import colors from 'Exports/colors.scss';\n\nexport default forwardRef(\n  (\n    {\n      id,\n      duration = '0.2s',\n      from = 'right',\n      className,\n      open,\n      onClosed,\n      showCloseButton = true,\n      children,\n      title,\n      headerRef,\n      footer,\n      disableClosing = false,\n      closeButton = null,\n      languageSwitcher = null,\n      messageBar = null,\n    },\n    ref\n  ) => {\n    const [slideIn, setSlideIn] = useState();\n    const [timeoutId, setTimeoutId] = useState();\n    const dispatch = useDispatch();\n\n    if (!id || id == '') {\n      throw new Error(\n        'A unique side-menu \"id\" must be passed to side menu component'\n      );\n    }\n\n    const close = useCallback(() => {\n      if (!disableClosing) {\n        // Just sets \"slideIn\" to false, which triggers the animation to close it\n        setSlideIn(false);\n        return true;\n      }\n\n      // False disables overlay click\n      return false;\n    }, [disableClosing]);\n\n    useEffect(() => {\n      dispatch(updateOverlay(id, close));\n    }, [dispatch, close, id]);\n\n    useEffect(() => {\n      if (!slideIn) {\n        // If not slide in, slide out :^)\n        if (timeoutId) {\n          // Clear previous timeout to avoid animation delay bug\n          clearTimeout(timeoutId);\n        }\n\n        var newTimeoutId = setTimeout(() => {\n          setTimeoutId(undefined);\n          onClosed && onClosed();\n        }, duration.substr(0, duration.length - 1) * 1000);\n\n        setTimeoutId(newTimeoutId);\n        dispatch(removeOverlay(id));\n      }\n    }, [slideIn]);\n\n    useEffect(() => {\n      // Triggered every time \"open\" is changed, initially as well\n      // Timeout to not trigger on the same frame as the render, to enable the slide-in\n\n      setTimeout(() => setSlideIn(open), 1);\n\n      if (open) {\n        dispatch(addOverlay(id, close));\n      }\n    }, [open]);\n\n    return open\n      ? ReactDOM.createPortal(\n          <div\n            className={\n              'side-menu' +\n              (slideIn ? ' side-menu--open' : '') +\n              (' from-' + from) +\n              (className ? ' ' + className : '')\n            }\n            ref={ref}\n            style={{ transitionDuration: duration }}\n          >\n            {headerRef && (\n              <div className=\"side-menu__header\">\n                {showCloseButton &&\n                  !disableClosing &&\n                  (!closeButton ? (\n                    <Icon\n                      iconCode=\"close\"\n                      onClick={close}\n                      iconClass=\"side-menu__close-icon\"\n                    />\n                  ) : (\n                    cloneElement(closeButton, {\n                      onClick: close,\n                    })\n                  ))}\n                {languageSwitcher?.props.currentChannel\n                  ? languageSwitcher\n                  : null}\n                {headerRef}\n              </div>\n            )}\n            {!headerRef &&\n              showCloseButton &&\n              !disableClosing &&\n              (!closeButton ? (\n                <Icon\n                  iconCode=\"close\"\n                  onClick={close}\n                  iconClass=\"side-menu__close-icon\"\n                />\n              ) : (\n                cloneElement(closeButton, {\n                  onClick: close,\n                })\n              ))}\n            {title && <h3 className=\"side-menu__title\">{title}</h3>}\n            {messageBar && (\n              <div className=\"side-menu__message-bar\">{messageBar}</div>\n            )}\n            <div className=\"side-menu__content\">{children}</div>\n            {footer && <div className=\"side-menu__footer\">{footer}</div>}\n          </div>,\n          document.body\n        )\n      : null;\n  }\n);\n","// extracted by mini-css-extract-plugin\nexport default {\"xsmall\":\"0\",\"small\":\"480px\",\"medium\":\"768px\",\"large\":\"1024px\",\"xlarge\":\"1440px\",\"sitelarge\":\"1656px\",\"xxlarge\":\"1920px\"};","import React, { useEffect } from 'react';\nimport breakpoints from '../../styles/exports/wtg.module.scss';\nimport useWindowSize from './useWindowSize';\n\nconst MOBILE_BREAKPOINT = 'large'; // below large = mobile\n\nconst useIsMobile = (breakpoint = MOBILE_BREAKPOINT) => {\n  breakpoint = parseInt(breakpoints[breakpoint].replace('px', ''));\n\n  const [windowWidth] = useWindowSize();\n  const [isMobile, setIsMobile] = React.useState(windowWidth <= breakpoint - 1);\n\n  useEffect(() => {\n    setIsMobile(windowWidth <= breakpoint - 1);\n  }, [windowWidth, breakpoint]);\n\n  return isMobile;\n};\n\nexport default useIsMobile;\n","import { useState, useLayoutEffect } from 'react';\n\nexport default function () {\n  var initialWidth = window && window.innerWidth ? window.innerWidth : 0;\n  var initialHeight = window && window.innerHeight ? window.innerHeight : 0;\n  const [size, setSize] = useState([initialWidth, initialHeight]);\n  useLayoutEffect(() => {\n    function updateSize() {\n      setSize([window.innerWidth, window.innerHeight]);\n    }\n    window.addEventListener('resize', updateSize);\n    updateSize();\n    return () => window.removeEventListener('resize', updateSize);\n  }, []);\n  return size;\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;"],"sourceRoot":""}