{
  "version": 3,
  "sources": ["../../src/modern/features/init/index.js", "../../src/modern/utils/tracking.js", "../../src/modern/utils/config.js", "../../src/modern/utils/apiRequester.js", "../../../../../../owl-nest/common/api-client/src/compat/requester.ts", "../../src/modern/features/init/l10n.js", "../../src/modern/features/init/currency.js", "../../src/modern/utils/currency.js", "../../src/modern/features/init/user.js", "../../src/modern/features/init/location.js", "../../src/modern/utils/cookie.js", "../../src/modern/features/init/language.js", "../../src/modern/features/init/services.js"],
  "sourcesContent": ["import { setTranslations } from '@ulule/localize'\n\nimport * as consent from '@owl-nest/consent'\nimport * as logger from '@owl-nest/logger'\nimport { addTrackingListeners, sendTrackingEvent } from '$utils/tracking'\nimport config from '$utils/config'\nimport { configure as initApiRequester } from '$utils/apiRequester'\nimport { initL10nConstants } from './l10n.js'\nimport { replayLastAction } from './services.js'\n\nconst localeLoadedEvent = new CustomEvent('js:locale:loaded', {})\n\nasync function fetchLocaleFile() {\n  return fetch(window.UFE.localeFile)\n    .then((response) => {\n      if (response.ok) {\n        return response.json()\n      } else {\n        throw new Error(response.statusText)\n      }\n    })\n    .then((json) => {\n      if (json) {\n        console.info(`Locale ${window.UFE.locale} has been correctly loaded`)\n        setTranslations(json)\n        window.dispatchEvent(localeLoadedEvent)\n      }\n    })\n    .catch((error) => {\n      console.error(`Locale ${window.UFE.locale} cannot be loaded (error: ${error})`)\n      setTranslations({})\n      window.dispatchEvent(localeLoadedEvent)\n    })\n}\n\n;(function () {\n  logger.init({\n    dsn: window.UFE.sentry_public_dsn,\n    environment: window.UFE.environment,\n    user: {\n      country: window.UFE.country,\n      currency: window.CURRENCIES && window.CURRENCIES.CURRENT,\n      email: window.UFE.user && window.UFE.user.email,\n      id: window.UFE.user && window.UFE.user.id,\n      locale: window.UFE.locale,\n    },\n  })\n\n  if (!window.UFE.iframe) {\n    // HACK: listen `load` event to be able to target all nodes even those append by React\n    window.addEventListener('load', () => {\n      addTrackingListeners()\n    })\n\n    document.addEventListener('DOMContentLoaded', async () => {\n      // Initialize config utils\n      config.set(window.UFE)\n\n      // Configuration of API Requester\n      if (window.UFE.api) {\n        initApiRequester(window.UFE.api)\n      }\n\n      replayLastAction()\n\n      // Add event listeners to specific nodes\n      addTrackingListeners()\n\n      // Wait until locale file is loaded\n      await fetchLocaleFile()\n\n      // Get current currentLanguage, currentCurrency, currentLocation\n      const { currentLanguage, currentCurrency, currentLocation } = await initL10nConstants()\n      const currentCountryCode =\n        currentLocation && currentLocation.country_code ? currentLocation.country_code : window.UFE.defaultCountry\n\n      // if jQuery is embedded in HTML, we should trigger the event\n      if (window.$ !== undefined) {\n        $(window).trigger('location:loaded', currentLocation)\n      }\n\n      // Dynamic import renderComponents to avoid importing header on widget\n      import('./render-components.js').then(({ renderCommonComponents }) => {\n        // Render all React common components\n        renderCommonComponents(currentLanguage, currentCountryCode, currentCurrency)\n      })\n\n      // Send specific event for Ulule Analytics Pro\n      if (window.BRANDS_ON_PAGE && window.BRANDS_ON_PAGE.length > 0) {\n        sendTrackingEvent('Brand visibility', 'Brands on page', {\n          event: 'BRANDevent',\n          eventLabel: window.BRANDS_ON_PAGE.join(','),\n          nonInteractionEvent: true,\n        })\n      }\n\n      consent.whenGivenFor(consent.Vendor.ZENDESK, {\n        do: () => window.zE && window.zE('webWidget', 'updateSettings', { analytics: true, cookies: true }),\n        otherwise: () => window.zE && window.zE('webWidget', 'updateSettings', { analytics: false, cookies: false }),\n      })\n    })\n  } else {\n    fetchLocaleFile().then(() => {\n      const locationLoadedEvent = new CustomEvent('js:location:loaded')\n      window.dispatchEvent(locationLoadedEvent)\n    })\n  }\n})()\n", "import { safePusher } from '@owl-nest/shadow/src/ga/safePush.ts'\n\nexport const sendTrackingEvent = (eventCategory = '', eventAction = '', eventData = {}) => {\n  if (eventCategory && eventAction) {\n    dataLayer.push({\n      event: 'GAevent',\n      eventAction,\n      eventCategory,\n      nonInteractionEvent: undefined,\n      ...eventData,\n    })\n  }\n}\n\nexport const sendSocialTrackingEvent = (socialNetwork = '', socialAction = '', eventData = {}) => {\n  if (socialNetwork && socialAction) {\n    dataLayer.push({\n      event: 'socialInt',\n      ...eventData,\n    })\n  }\n}\n\nexport const addTrackingListeners = () => {\n  const projectProposalButtons = document.querySelectorAll('[data-gtm-click=project-proposal]')\n  for (let i = 0; i < projectProposalButtons.length; i++) {\n    projectProposalButtons[i].addEventListener('click', (event) => {\n      sendTrackingEvent('Project proposal', 'click')\n    })\n  }\n}\n\nexport const formTracker = (trackedFields) => {\n  const [stateVariables, errorVariables] = Object.entries(trackedFields).reduce(\n    (acc, [_, { value, error }]) => {\n      acc[0][value] = 'empty'\n      acc[1][error] = 'none'\n      return acc\n    },\n    [{}, {}]\n  )\n  dataLayer.push(stateVariables)\n  dataLayer.push(errorVariables)\n\n  const state = {}\n\n  const setState = (field, value) => {\n    if (state[field] === value) return\n\n    state[field] = value\n    dataLayer.push({ event: 'GAevent', eventCategory: 'project_form', [trackedFields[field].value]: value })\n  }\n\n  const setters = Object.keys(trackedFields).reduce((acc, key) => {\n    acc[key] = {\n      setValue: (value) => setState(key, value),\n      markFilled: () => setState(key, 'filled'),\n      markEmpty: () => setState(key, 'empty'),\n    }\n\n    return acc\n  }, {})\n\n  const onError = (errors) => {\n    const messages = {}\n    for (const [field, message] of Object.entries(errors)) {\n      if (message && trackedFields[field]) {\n        const { error } = trackedFields[field]\n        messages[error] = message\n      }\n    }\n    if (Object.keys(messages).length !== 0) {\n      dataLayer.push({\n        event: 'projectFormError',\n        ...messages,\n      })\n    }\n  }\n\n  const pushGA = ({ category, label, action }, callback) => {\n    const event = {\n      event: 'GAevent',\n      eventAction: action,\n      eventCallback: callback,\n      eventCategory: category,\n      eventLabel: label,\n    }\n    if (callback && !event.eventTimeout) {\n      event.eventTimeout = 500\n    }\n\n    safePusher(window.UFE.gtmKey)(event)\n  }\n\n  const onSubmit = (category, label, callback) => {\n    pushGA({ category, label, action: 'submit' }, callback)\n  }\n\n  return { ...setters, onError, onSubmit, pushGA }\n}\n", "class Config {\n  set(key, data) {\n    if (typeof key === 'string') {\n      this[key] = data\n    }\n\n    if (Object.prototype.toString.call(key) === '[object Object]') {\n      Object.assign(this, key)\n    }\n  }\n\n  get(key) {\n    return this[key] || ''\n  }\n}\n\nexport default new Config()\n", "import { request, requestWithAccessToken } from '@owl-nest/api-client/compat.ts'\n\nconst pool = {}\n\nconst connector = (options) => {\n  const getUrl = (url = '') => {\n    return options.url + url\n  }\n\n  const getHeaders = () => {\n    return options.headers\n  }\n\n  const get = (url = '', options = {}) => {\n    const { withAccessToken, headers } = options\n\n    const fn = withAccessToken ? requestWithAccessToken : request\n\n    return fn(getUrl(url), {\n      headers: {\n        ...getHeaders(),\n        ...headers,\n      },\n    })\n  }\n\n  const post = (url = '', options = {}) => {\n    const { withAccessToken, body, headers, type = 'json' } = options\n\n    const fn = withAccessToken ? requestWithAccessToken : request\n\n    return fn(getUrl(url), {\n      method: 'post',\n      body,\n      type,\n      headers: {\n        ...getHeaders(),\n        ...headers,\n      },\n    })\n  }\n\n  const patch = (url = '', data = {}, options = {}) => {\n    const { headers, type = 'json', withAccessToken } = options\n\n    const fn = withAccessToken ? requestWithAccessToken : request\n\n    return fn(getUrl(url), {\n      method: 'PATCH',\n      body: data.body,\n      type,\n      headers: {\n        ...getHeaders(),\n        ...headers,\n      },\n    })\n  }\n\n  const _delete = (url = '', data = {}) => {\n    return requestWithAccessToken(getUrl(url), {\n      method: 'DELETE',\n      body: data,\n      headers: getHeaders(),\n    })\n  }\n\n  const upload = (url = '', options = {}) => {\n    const { withAccessToken, body } = options\n\n    const fn = withAccessToken ? requestWithAccessToken : request\n\n    return fn(getUrl(url), {\n      method: 'post',\n      type: 'formData',\n      body,\n      headers: getHeaders(),\n    })\n  }\n\n  const me = (extraFields) => {\n    if (extraFields && extraFields.length) {\n      return requestWithAccessToken(getUrl(`/me?extra_fields=${extraFields}`), {\n        headers: getHeaders(),\n      })\n    }\n    return requestWithAccessToken(getUrl('/me'), { headers: getHeaders() })\n  }\n\n  return {\n    get: get,\n    post: post,\n    patch: patch,\n    upload: upload,\n    delete: _delete,\n    me,\n  }\n}\n\nexport const configure = (options) => {\n  Object.keys(options).forEach((apiName) => {\n    pool[apiName] = connector(options[apiName])\n  })\n}\n\nexport const api = (apiName) => {\n  return pool[apiName]\n}\n", "import { request as baseRequest, RequestOptions } from '../legacy/index.ts'\n\nexport type LegacyRequestParams = {\n  headers?: Record<string, string>\n  body?: any\n  type?: string\n  method?: string\n  mode?: string\n  credentials?: string\n} & { [s: string]: any }\n\nasync function requestCompat<BODY>(url: string, params: LegacyRequestParams, withToken: boolean): Promise<BODY> {\n  const defaultParams = {\n    type: 'json',\n    method: 'GET',\n    mode: 'cors',\n    credentials: 'same-origin',\n  }\n  const options = { ...defaultParams, ...params, withToken } as any as RequestOptions\n\n  try {\n    const response = await baseRequest<BODY>(url, options)\n    return response.doThrow().body\n  } catch (error: any) {\n    if ('body' in error) {\n      // error from left.doThrow (response.ok === false)\n      throw { statusCode: error.statusCode, url: error.url, error: error.body }\n    }\n    if ('response' in error) {\n      // body parsing error\n      throw { statusCode: error.response.status, url: error.response.url }\n    }\n    // some other error\n    throw error\n  }\n}\n\nexport async function request<BODY>(url: string, params: LegacyRequestParams): Promise<BODY> {\n  return requestCompat(url, params, false)\n}\n\nexport async function requestWithAccessToken<BODY>(url: string, params: LegacyRequestParams): Promise<BODY> {\n  return requestCompat(url, params, true)\n}\n", "import { getCurrentCurrency, initCurrencyHelper } from './currency.js'\nimport { getCurrentLocation, notify, setCurrentLocation } from './location.js'\nimport { getCurrentLanguage } from './language.js'\n\nconst DEFAULT_LOCATION = {\n  country: 'FR'\n}\n\nexport const initL10nConstants = async () => {\n  const currentLanguage = getCurrentLanguage()\n\n  let currentLocation = DEFAULT_LOCATION\n  try {\n    currentLocation = await getCurrentLocation()\n  } catch (error) {\n    console.error(error)\n  }\n\n  setCurrentLocation(currentLocation)\n\n  if (window.User) {\n    window.User.location = currentLocation\n  }\n\n  if (!window.CURRENCIES) {\n    return { currentLanguage, currentLocation }\n  }\n\n  let currentCurrency\n  try {\n    currentCurrency = await getCurrentCurrency()\n  } catch (error) {\n    console.error(error)\n  }\n\n  if (currentCurrency) {\n    initCurrencyHelper(currentLanguage, currentCurrency)\n    window.CURRENCIES.CURRENT = currentCurrency\n  }\n  notify(currentLocation)\n\n  return { currentLanguage, currentCurrency, currentLocation }\n}\n", "import Currency from '$utils/currency'\nimport { isAuthenticated } from './user.js'\nimport { getCurrentLocation } from './location.js'\nimport * as cookie from '$utils/cookie'\n\nexport const getCurrentCurrency = async () => {\n  let selectedCurrency = getSelectedCurrency()\n  if (selectedCurrency) {\n    return selectedCurrency\n  }\n\n  if (!isAuthenticated()) {\n    selectedCurrency = cookie.get(getCurrencyCookieName())\n    if (selectedCurrency) {\n      return selectedCurrency\n    }\n  }\n\n  let currentLocation\n\n  try {\n    currentLocation = await getCurrentLocation()\n  } catch (error) {\n    console.error(error)\n  }\n\n  const currentCountryCode =\n    currentLocation && currentLocation.country_code ? currentLocation.country_code : window.UFE.defaultCountry\n\n  return window.CURRENCIES.COUNTRIES[currentCountryCode]\n}\n\nexport const getSelectedCurrency = () => {\n  return window.CURRENCIES.SELECTED\n}\n\nexport const getCurrencyCookieName = () => {\n  return window.UFE.cookies.currency\n}\n\nexport const initCurrencyHelper = (lang, currency) => {\n  new Currency(\n    {\n      lang: lang,\n      currency: currency\n    },\n    {\n      regex: /(<span class=\"amount-trigram\">\\s?\\w+<\\/span>)/,\n      formatTrigram: function(trigram, separator) {\n        return '<span class=\"amount-trigram\">' + separator + trigram + '</span>'\n      },\n      formatValue: function(val) {\n        return '<span class=\"amount-text\">' + val + '</span>'\n      },\n      currencies: window.CURRENCIES.SYMBOLS,\n      rates: window.CURRENCIES.RATES\n    }\n  )\n}\n", "import accounting from 'accounting'\n\n/**\n * @param { string } lang\n * @param { string } currency        the currency destination\n * @param { object } settings\n */\nclass Currency {\n  constructor(options, settings) {\n    if (!options || !settings) {\n      throw new Error('Missing parameters')\n    }\n\n    const { lang, currency } = options\n\n    this.settings = Object.assign(this.settings, settings)\n\n    const currencies = this.settings.currencies\n\n    if (!currencies || !currencies[currency]) return\n\n    this.lang = lang\n    this.currency = currency\n\n    this.render()\n    this.afterRender()\n  }\n\n  settings = {\n    langs: {\n      fr: {\n        template: 'symbolFirstFullSpace',\n        decimal: ',',\n        thousand: ' ',\n      },\n      en: {\n        template: 'noSpace',\n        decimal: '.',\n        thousand: ',',\n      },\n      it: {\n        template: 'symbolFirstFullSpace',\n        decimal: ',',\n        thousand: '.',\n      },\n      nl: {\n        template: 'symbolFirstSpace',\n        decimal: ',',\n        thousand: '.',\n      },\n      de: {\n        template: 'valueFirstFullSpace',\n        decimal: ',',\n        thousand: '.',\n      },\n      es: {\n        template: 'valueFirstFullSpace',\n        decimal: ',',\n        thousand: '.',\n      },\n      ca: {\n        template: 'valueFirstFullSpace',\n        decimal: ',',\n        thousand: '.',\n      },\n      pt: {\n        template: 'noSpace',\n        decimal: ',',\n        thousand: '.',\n      },\n    },\n  }\n\n  templates = {\n    //'%s %v %t' // FR\n    symbolFirstFullSpace(val, currency, withTrigram, trigramPosition) {\n      const { symbol, separator, trigram } = currency\n      const html = `${this.settings.formatValue(val)} ${symbol} ${\n        withTrigram && trigram ? this.settings.formatTrigram(trigram, separator) : ''\n      }`\n\n      return this.postTemplate(trigram, trigramPosition, html)\n    },\n\n    // template: '%s$t%v' // EN - IT\n    noSpace(val, currency, withTrigram, trigramPosition) {\n      const { symbol, separator, trigram } = currency\n      const html = `${symbol}${\n        withTrigram && trigram ? this.settings.formatTrigram(trigram, separator) : ''\n      }${this.settings.formatValue(val)}`\n\n      return this.postTemplate(trigram, trigramPosition, html)\n    },\n\n    // template: '%v %s %t' // DE - ES\n    valueFirstFullSpace(val, currency, withTrigram, trigramPosition) {\n      const { symbol, separator, trigram } = currency\n      const html = `${this.settings.formatValue(val)} ${symbol}${\n        withTrigram && trigram ? this.settings.formatTrigram(trigram, separator) : ''\n      }`\n\n      return this.postTemplate(trigram, trigramPosition, html)\n    },\n\n    // template: '%s %t%v' // NL\n    symbolFirstSpace(val, currency, withTrigram, trigramPosition) {\n      const { symbol, separator, trigram } = currency\n      const html = `${symbol} ${this.settings.formatValue(val)}${\n        withTrigram && trigram ? this.settings.formatTrigram(trigram, separator) : ''\n      }`\n\n      return this.postTemplate(trigram, trigramPosition, html)\n    },\n  }\n\n  /**\n   * @param { string } trigram\n   * @param { string } trigramPosition\n   * @param { any } html\n   * @param { boolean } noSpace used for the special cases (it, nl, en, pt)\n   * @returns\n   */\n  postTemplate(trigram, trigramPosition, html) {\n    if (!trigram || !trigramPosition) return html\n\n    // const reg = /(<[\\w\\s\\S]+>)/;\n    const reg = this.settings.regex\n    const match = reg.exec(html)\n\n    if (!match) return html\n\n    html = html.replace(match[0], '')\n\n    if ('after' == trigramPosition) {\n      html = `${html} ${match[0]}`\n    }\n\n    if ('before' == trigramPosition) {\n      html = `${match[0]} ${html}`\n    }\n\n    return html\n  }\n\n  /**\n   * @param { number } amount\n   * @param { string } baseCurrency\n   * @returns\n   */\n\n  getConversion(amount = '', baseCurrency) {\n    amount = amount.replace(/,/g, '.')\n\n    if (baseCurrency == this.currency) return amount\n\n    const rate = this.settings.rates[this.currency]\n    //convert in baseCurrency\n    const inBaseCurrency = amount / this.settings.rates[baseCurrency]\n    //convert in currency\n    return inBaseCurrency * rate\n  }\n\n  render() {\n    const langOpts = this.settings.langs[this.lang] || this.settings.langs['en']\n    const currencyInfos = this.settings.currencies[this.currency]\n    const template = this.templates[langOpts.template].bind(this)\n\n    this.settings = Object.assign(this.settings, accounting.settings.number, langOpts)\n\n    const currencyNodes = Array.prototype.slice.call(document.querySelectorAll('.js-currency'))\n\n    currencyNodes.forEach((node) => {\n      const baseCurrency = node.getAttribute('data-currency')\n\n      if (baseCurrency == this.currency) return\n      const newCheckout = node.getAttribute('data-newcheckout')\n      if (newCheckout) return\n      const val = this.getConversion(node.getAttribute('data-value'), baseCurrency)\n      const withTrigram = node.getAttribute('data-trigram')\n      const trigramPosition = node.getAttribute('data-trigram-position')\n      const precision = node.getAttribute('data-precision') || 0\n\n      accounting.settings.number.precision = precision\n\n      const result = template(accounting.formatNumber(val), currencyInfos, withTrigram, trigramPosition)\n\n      node.innerHTML = result\n    })\n  }\n\n  afterRender() {\n    var event = new CustomEvent('currency:afterRender')\n    window.dispatchEvent(event)\n  }\n}\n\nexport default Currency\n\nwindow.Currency = Currency\n", "export const isAuthenticated = () => {\n  return window.UFE.user.is_authenticated\n}\n", "const GEO_API_URL = 'https://geo.ulule.com/json/'\nconst DEFAULT_LOCATION = {\n  country: 'FR'\n}\n\nconst parseData = json => {\n  return json\n}\n\nexport const notify = json => {\n  const locationLoadedEvent = new CustomEvent('js:location:loaded', { detail: json })\n  window.dispatchEvent(locationLoadedEvent)\n\n  return json\n}\n\nconst fetchLocation = () => {\n  return fetch(GEO_API_URL)\n    .then(res => res.json())\n    .then(json => parseData(json))\n}\n\nexport const setCurrentLocation = data => {\n  return (window.CURRENT_LOCATION = data)\n}\n\nexport const getCurrentLocation = async () => {\n  let locationData = window.CURRENT_LOCATION\n\n  if (locationData) {\n    return locationData\n  }\n\n  try {\n    locationData = await fetchLocation()\n  } catch (error) {\n    console.error('Oops, there is an error', error)\n    throw error\n  }\n\n  return locationData\n}\n", "export const getDocumentCookie = () => {\n  return document.cookie\n}\n\nexport const setDocumentCookie = cookie => {\n  document.cookie = cookie\n}\n\nexport const get = name => {\n  const cookie = getDocumentCookie()\n  const re = new RegExp(`${name}=(.[^;]+)?`)\n  const match = cookie.match(re)\n  return match && match.length && match[1]\n}\n\nexport const set = (name = '', value = '', options = {}) => {\n  const params = [`${name}=${value}`]\n\n  if (options.expires) {\n    params.push(`expires=${options.expires}`)\n  }\n\n  if (options.path) {\n    params.push(`path=${options.path}`)\n  }\n\n  if (options.domain) {\n    params.push(`domain=${options.domain}`)\n  }\n\n  setDocumentCookie(params.join(';'))\n}\n\nexport const remove = name => {\n  document.cookie = `${name}=path=/expires=Thu, 01-Jan-70 00:00:01 GMT;`\n}\n", "export const setCurrentLanguage = value => {\n  window.UFE.locale = value\n}\n\nexport const getCurrentLanguage = () => {\n  return window.UFE.locale\n}\n\nexport const getDefaultLanguage = () => window.UFE && window.UFE.defaultLocale\n", "import { api } from '$utils/apiRequester'\n\n/**\n * id : project id\n * action : like or unlike\n */\nexport const updateUserRole = (id = '', action = '', projectUrl) => {\n  const endpoint = `/projects/${id}/${action}`\n\n  return api('ulule')\n    .post(endpoint, {\n      withAccessToken: true,\n      body: {},\n    })\n    .then((resp) => {\n      return new Promise((resolve) => {\n        resolve({ success: true, action })\n      })\n    })\n    .catch((error) => {\n      saveAction(id, action)\n      throw error\n    })\n}\n\nexport const getChannels = (lang, country) => {\n  const endpoint = `/channels?limit=6&${lang ? `lang=${lang}&` : ''}${country ? `country=${country}` : ''}`\n\n  return api('ulule')\n    .get(endpoint)\n    .then((resp) => {\n      return new Promise((resolve) => {\n        resolve({ success: true, ...resp })\n      })\n    })\n    .catch((error) => {\n      throw error\n    })\n}\n\nexport const saveAction = (id, action) => {\n  sessionStorage.setItem('lastAction', JSON.stringify({ id, action }))\n}\n\nexport const replayLastAction = () => {\n  const entry = sessionStorage.getItem('lastAction')\n  if (entry) {\n    sessionStorage.removeItem('lastAction')\n    const { id, action } = JSON.parse(entry)\n    return updateUserRole(id, action)\n  }\n}\n"],
  "mappings": "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",
  "names": ["init_define_process_env", "init_sentry_release_injection_stub", "import_localize", "init_define_process_env", "init_sentry_release_injection_stub", "sendTrackingEvent", "eventCategory", "eventAction", "eventData", "__spreadValues", "addTrackingListeners", "projectProposalButtons", "i", "event", "sendTrackingEvent", "init_define_process_env", "init_sentry_release_injection_stub", "Config", "key", "data", "config_default", "init_define_process_env", "init_sentry_release_injection_stub", "init_define_process_env", "init_sentry_release_injection_stub", "requestCompat", "url", "params", "withToken", "options", "__spreadProps", "__spreadValues", "request", "error", "requestWithAccessToken", "pool", "connector", "options", "getUrl", "url", "getHeaders", "withAccessToken", "headers", "requestWithAccessToken", "request", "__spreadValues", "body", "type", "data", "extraFields", "configure", "apiName", "api", "init_define_process_env", "init_sentry_release_injection_stub", "init_define_process_env", "init_sentry_release_injection_stub", "init_define_process_env", "init_sentry_release_injection_stub", "import_accounting", "Currency", "options", "settings", "__publicField", "val", "currency", "withTrigram", "trigramPosition", "symbol", "separator", "trigram", "html", "lang", "currencies", "match", "amount", "baseCurrency", "rate", "langOpts", "currencyInfos", "template", "accounting", "node", "precision", "result", "event", "currency_default", "init_define_process_env", "init_sentry_release_injection_stub", "isAuthenticated", "init_define_process_env", "init_sentry_release_injection_stub", "GEO_API_URL", "parseData", "json", "notify", "locationLoadedEvent", "fetchLocation", "GEO_API_URL", "res", "setCurrentLocation", "data", "getCurrentLocation", "locationData", "error", "init_define_process_env", "init_sentry_release_injection_stub", "getDocumentCookie", "setDocumentCookie", "cookie", "get", "name", "re", "match", "set", "value", "options", "params", "getCurrentCurrency", "selectedCurrency", "getSelectedCurrency", "isAuthenticated", "get", "getCurrencyCookieName", "currentLocation", "getCurrentLocation", "error", "currentCountryCode", "initCurrencyHelper", "lang", "currency", "currency_default", "trigram", "separator", "val", "init_define_process_env", "init_sentry_release_injection_stub", "getCurrentLanguage", "getDefaultLanguage", "DEFAULT_LOCATION", "initL10nConstants", "currentLanguage", "getCurrentLanguage", "currentLocation", "getCurrentLocation", "error", "setCurrentLocation", "currentCurrency", "getCurrentCurrency", "initCurrencyHelper", "notify", "init_define_process_env", "init_sentry_release_injection_stub", "updateUserRole", "id", "action", "projectUrl", "endpoint", "api", "resp", "resolve", "error", "saveAction", "saveAction", "id", "action", "replayLastAction", "entry", "updateUserRole", "localeLoadedEvent", "fetchLocaleFile", "response", "json", "error", "init", "locationLoadedEvent", "addTrackingListeners", "config_default", "configure", "replayLastAction", "currentLanguage", "currentCurrency", "currentLocation", "initL10nConstants", "currentCountryCode", "renderCommonComponents", "sendTrackingEvent", "whenGivenFor"]
}