{
  "version": 3,
  "sources": ["../../../../../../owl-nest/common/metasettings/src/components/MetaSettingDropdown.tsx", "../../../../../../owl-nest/common/metasettings/src/utils.ts", "../../../../../../owl-nest/common/metasettings/src/services.ts"],
  "sourcesContent": ["import * as React from 'react'\nimport styled, { css } from 'styled-components'\n\nimport * as plume from '@ulule/owl-kit-components/next'\n\nimport { handleLanguageChange, handleCurrencyChange } from '../utils'\n\ntype MetaSettingDropdownProps = {\n  className?: string\n  currencies: {\n    [x: string]: {\n      separator: string\n      symbol: string\n      trigram: string\n    } & {\n      name: string\n      shortLabel: string\n    }\n  }\n  currentCurrency: string\n  currentLanguage: string\n  hasOffset?: boolean\n  languages: {\n    [code: string]: string\n  }\n  withRedirectParam?: boolean\n}\n\nfunction MetaSettingDropdownComponent({\n  className,\n  currencies,\n  currentCurrency,\n  currentLanguage,\n  hasOffset,\n  languages,\n  withRedirectParam,\n}: MetaSettingDropdownProps): React.ReactElement {\n  return (\n    <Wrapper className={className}>\n      <LangDropdown\n        hasOffset={hasOffset}\n        nativeOnMobile={true}\n        selected={[currentLanguage]}\n        mode=\"inline\"\n        onChange={(selected) => {\n          handleLanguageChange(selected[0].value)\n        }}\n      >\n        {Object.keys(languages).map((code) => {\n          return (\n            <plume.Option native={true} key={code} value={code} label={languages[code]}>\n              {languages[code]}\n            </plume.Option>\n          )\n        })}\n      </LangDropdown>\n\n      <CurrencyDropdown\n        hasOffset={hasOffset}\n        nativeOnMobile={true} \n        selected={[currentCurrency]}\n        mode=\"inline\"\n        onChange={(selected) => {\n          handleCurrencyChange(selected[0].value, withRedirectParam)\n        }}\n      >\n        {Object.keys(currencies).map((code) => {\n          return (\n            <plume.Option\n              native={true}\n              key={code}\n              value={code}\n              label={`${currencies[code].symbol} (${currencies[code].trigram})`}\n            >\n              {currencies[code].symbol} ({currencies[code].trigram})\n            </plume.Option>\n          )\n        })}\n      </CurrencyDropdown>\n    </Wrapper>\n  )\n}\nexport const MetaSettingDropdown = styled(MetaSettingDropdownComponent)``\n\nconst Wrapper = styled.div`\n  display: flex;\n  flex-wrap: wrap;\n\n  ${plume.Dropdown} {\n    margin-right: 16px;\n  }\n\n  @media screen and ${plume.BREAKPOINTS.TABLET} {\n    display: flex;\n    flex-wrap: nowrap;\n  }\n`\n\nconst LangDropdown = styled(plume.Dropdown)<{ hasOffset?: boolean }>`\n  ${({ hasOffset }) => {\n    if (hasOffset) {\n      return css`\n        ${plume.styles.select.Drawer} {\n          bottom: 280px;\n          top: auto;\n        }\n      `\n    }\n  }}\n`\n\nconst CurrencyDropdown = styled(plume.Dropdown)<{ hasOffset?: boolean }>`\n  ${({ hasOffset }) => {\n    if (hasOffset) {\n      return css`\n        ${plume.styles.select.Drawer} {\n          bottom: 335px;\n          top: auto;\n        }\n      `\n    }\n  }}\n`\n", "import { updateSettings } from './services'\n\nexport function handleCurrencyChange(currencyCode: string, withRedirectParam?: boolean): void {\n  handleMetaSettingsChange('currency_code', currencyCode, withRedirectParam)\n}\n\nexport function handleLanguageChange(languageCode: string): void {\n  handleMetaSettingsChange('language_code', languageCode)\n}\n\nasync function handleMetaSettingsChange(key: string, value: string, withRedirectParam?: boolean): Promise<void> {\n  const currentWindowLocation = encodeURI(window.location.pathname)\n  const formData = `redirect_url=${currentWindowLocation}&${key}=${value}&submit=1`\n\n  const response = await updateSettings(formData)\n\n  if (response?.status === 302) {\n    let nextLocation = response?.redirect_url\n\n    if (withRedirectParam) {\n      if (response?.redirect_url.includes('?')) {\n        nextLocation = `${response?.redirect_url}&${key}=${value}`\n      } else {\n        nextLocation = `${response?.redirect_url}?${key}=${value}`\n      }\n    }\n\n    window.location.replace(nextLocation)\n  }\n}\n\nif (process.env.NODE_ENV === 'test') {\n  module.exports.handleMetaSettingsChange = handleMetaSettingsChange\n}\n", "import * as logger from '@owl-nest/logger'\nimport * as env from '@owl-nest/config'\n\ntype Response = {\n  redirect_url: string\n  status: number\n}\n\nexport async function updateSettings(formData: BodyInit): Promise<Response> {\n  if (!formData) {\n    return Promise.reject('formData argument is required')\n  }\n\n  return fetch(`${env.ULULE_ORIGINS.fr}/metasettings/dashboard/`, {\n    method: 'POST',\n    credentials: 'include',\n    headers: {\n      Accept: 'application/json, application/xml, text/plain, text/html, *.*',\n      'Content-Type': 'application/x-www-form-urlencoded',\n      'X-Requested-With': 'XMLHttpRequest',\n    },\n    body: formData,\n  })\n    .then((response) => response.json())\n    .catch((error) => {\n      if (error.status === 200) {\n        // False alert.\n        return\n      }\n      logger.err('[user] failed to update meta settings', { error })\n    })\n}\n"],
  "mappings": "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",
  "names": ["init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "init_define_process_env", "init_sentry_release_injection_stub", "updateSettings", "formData", "ULULE_ORIGINS", "response", "error", "err", "handleCurrencyChange", "currencyCode", "withRedirectParam", "handleMetaSettingsChange", "handleLanguageChange", "languageCode", "key", "value", "currentWindowLocation", "formData", "response", "updateSettings", "nextLocation", "MetaSettingDropdownComponent", "className", "currencies", "currentCurrency", "currentLanguage", "hasOffset", "languages", "withRedirectParam", "Wrapper", "LangDropdown", "selected", "handleLanguageChange", "code", "Option", "CurrencyDropdown", "handleCurrencyChange", "_a", "MetaSettingDropdown", "src_default", "__template", "_b", "Dropdown", "breakpoints_exports", "_c", "_d", "css", "styles_exports", "_e", "_f"]
}