{"version":3,"file":"cookieConsentEditor.min.js","mappings":"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","sources":["webpack://ecommerce/./src/common/common.js","webpack://ecommerce/./src/config/config.inwild.js","webpack://ecommerce/./src/config/config.js","webpack://ecommerce/./src/config/config.production.inwild.js","webpack://ecommerce/./src/config/config.production.js","webpack://ecommerce/./src/config/config.production.runkd.js","webpack://ecommerce/./src/config/config.runkd.js","webpack://ecommerce/./src/config/config.staging.inwild.js","webpack://ecommerce/./src/config/config.staging.js","webpack://ecommerce/./src/config/config.staging.runkd.js","webpack://ecommerce/./src/config/index.js","webpack://ecommerce/./src/services/cookieService.js","webpack://ecommerce/./src/services/data/dataPageService.js","webpack://ecommerce/./src/services/marketingAndAnalytics/adsService.js","webpack://ecommerce/./src/services/marketingAndAnalytics/consentModePrivacyService.js","webpack://ecommerce/./src/services/marketingAndAnalytics/facebookService.js","webpack://ecommerce/./src/services/marketingAndAnalytics/ga4Service.js","webpack://ecommerce/./src/services/marketingAndAnalytics/gtagAndFqbInitService.js","webpack://ecommerce/./src/services/marketingAndAnalytics/marketingAndAnalyticsService.js","webpack://ecommerce/./src/tracing.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://ecommerce/./node_modules/i18next/dist/es/logger.js","webpack://ecommerce/./node_modules/i18next/dist/es/EventEmitter.js","webpack://ecommerce/./node_modules/i18next/dist/es/utils.js","webpack://ecommerce/./node_modules/i18next/dist/es/ResourceStore.js","webpack://ecommerce/./node_modules/i18next/dist/es/postProcessor.js","webpack://ecommerce/./node_modules/i18next/dist/es/Translator.js","webpack://ecommerce/./node_modules/i18next/dist/es/LanguageUtils.js","webpack://ecommerce/./node_modules/i18next/dist/es/PluralResolver.js","webpack://ecommerce/./node_modules/i18next/dist/es/Interpolator.js","webpack://ecommerce/./node_modules/i18next/dist/es/BackendConnector.js","webpack://ecommerce/./node_modules/i18next/dist/es/defaults.js","webpack://ecommerce/./node_modules/i18next/dist/es/i18next.js","webpack://ecommerce/./src/common/translateService.js","webpack://ecommerce/./node_modules/i18next/dist/es/index.js","webpack://ecommerce/./src/components/CookieConsentEditor.jsx","webpack://ecommerce/./src/views/statics/cookieConsentEditor.js","webpack://ecommerce/./src/yacc.js","webpack://ecommerce/./wwwroot/js/modernizr-custom-mq.js","webpack://ecommerce/./node_modules/object-assign/index.js","webpack://ecommerce/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://ecommerce/./node_modules/scheduler/index.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/typeof.js","webpack://ecommerce/./node_modules/@babel/runtime/regenerator/index.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ecommerce/webpack/bootstrap","webpack://ecommerce/webpack/runtime/chunk loaded","webpack://ecommerce/webpack/runtime/compat get default export","webpack://ecommerce/webpack/runtime/define property getters","webpack://ecommerce/webpack/runtime/global","webpack://ecommerce/webpack/runtime/harmony module decorator","webpack://ecommerce/webpack/runtime/hasOwnProperty shorthand","webpack://ecommerce/webpack/runtime/make namespace object","webpack://ecommerce/webpack/runtime/node module decorator","webpack://ecommerce/webpack/runtime/runtimeId","webpack://ecommerce/webpack/runtime/jsonp chunk loading","webpack://ecommerce/webpack/startup"],"sourcesContent":["const configHelper = require('../config/index');\r\nimport { reduce, replace, isNil, some, startsWith, isEmpty } from 'lodash';\r\n\r\nrequire('../../wwwroot/js/modernizr-custom-mq.js');\r\nconst trimTrailingSlash = (virtualdir = '') => {\r\n return virtualdir.length > 0 && virtualdir[virtualdir.length - 1] === '/'\r\n ? virtualdir.slice(0, virtualdir.length - 1)\r\n : virtualdir;\r\n};\r\nconst getSiteUrl = (virtualdir = window.$pathBase) => {\r\n if (virtualdir === undefined) {\r\n throw new Error(\r\n 'common.getSiteUrl: virtualdir undefined. Should be emtpy or set.'\r\n );\r\n }\r\n if (window.location.port === '') {\r\n return trimTrailingSlash(\r\n window.location.protocol +\r\n '//' +\r\n window.location.hostname +\r\n virtualdir\r\n );\r\n }\r\n return trimTrailingSlash(\r\n window.location.protocol +\r\n '//' +\r\n window.location.hostname +\r\n ':' +\r\n window.location.port +\r\n virtualdir\r\n );\r\n};\r\nconst getSiteCommercialName = () => {\r\n const siteName = {\r\n lordgun: 'LordGun',\r\n runkd: 'RUNKD',\r\n inwild: 'INWILD',\r\n };\r\n return siteName[SITE.toLowerCase()];\r\n};\r\nconst contentFromCdn = ({ path, keepUrlAsIs }) => {\r\n try {\r\n if (keepUrlAsIs === true) {\r\n return path;\r\n }\r\n const config = configHelper.getConfig();\r\n const { useCdn, cdnImagesUrl, cdnImagesFallbackUrl, cms } = config;\r\n\r\n if (cms && cms.cmsUrl && !isNil(cms.cmsUrl) && !isEmpty(cms.cmsUrl)) {\r\n if (startsWith(path, cms.cmsUrl)) {\r\n return path;\r\n }\r\n }\r\n\r\n if (some([useCdn, cdnImagesUrl, cdnImagesFallbackUrl], isNil)) {\r\n throw new Error('Some config for contentFromCdn is missing');\r\n }\r\n let transformedPath = replace(path.toLowerCase(), '~', '');\r\n transformedPath = replace(\r\n transformedPath,\r\n '/content/products',\r\n '/products'\r\n );\r\n transformedPath = replace(transformedPath, '/content/kits', '/kits');\r\n transformedPath = replace(transformedPath, '/content/img/', '/img/');\r\n transformedPath = replace(transformedPath, '/content/img', '/img');\r\n transformedPath = replace(transformedPath, 'content/img/', '/img/');\r\n transformedPath = replace(transformedPath, 'content/', '');\r\n transformedPath = replace(transformedPath, cdnImagesUrl, '');\r\n transformedPath = replace(transformedPath, cdnImagesFallbackUrl, '');\r\n let siteUrl = getSiteUrl().toLowerCase();\r\n transformedPath = transformedPath.replace(siteUrl, '');\r\n transformedPath = replace(\r\n transformedPath,\r\n window.$pathBase.toLowerCase(),\r\n ''\r\n );\r\n transformedPath = transformedPath.startsWith('/')\r\n ? transformedPath.slice(1, transformedPath.length)\r\n : transformedPath;\r\n if (useCdn && startsWith(transformedPath, cdnImagesUrl.toLowerCase())) {\r\n transformedPath = replace(\r\n transformedPath,\r\n cdnImagesUrl.toLowerCase(),\r\n ''\r\n );\r\n }\r\n if (\r\n useCdn === false &&\r\n startsWith(transformedPath, cdnImagesFallbackUrl.toLowerCase())\r\n ) {\r\n transformedPath = replace(\r\n transformedPath,\r\n cdnImagesFallbackUrl.toLowerCase(),\r\n ''\r\n );\r\n }\r\n\r\n let finalPath = useCdn\r\n ? `${cdnImagesUrl}/${transformedPath}`\r\n : `${cdnImagesFallbackUrl}/${transformedPath}`;\r\n return finalPath;\r\n } catch (error) {\r\n console.error('contentFromCdn. Set content from Cdn', error);\r\n }\r\n};\r\nconst getPartnersByCulture = ({ culture, partners }) => {\r\n const items = reduce(\r\n partners,\r\n (acc, el) => {\r\n return el.Culture === culture ? acc.concat(el) : acc;\r\n },\r\n []\r\n );\r\n return reduce(\r\n items,\r\n (acc, p) => {\r\n acc.push({\r\n title: p.Name,\r\n url: p.Url,\r\n culture: p.Culture,\r\n logo: contentFromCdn({\r\n path: `/Content/img/${p.Logo}`,\r\n keepUrlAsIs: false,\r\n }),\r\n });\r\n return acc;\r\n },\r\n []\r\n );\r\n};\r\nconst getParameterByName = function (name, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n};\r\nexport default {\r\n getSiteUrl,\r\n getLang: () => document.documentElement.lang,\r\n isTouch: () => Modernizr.touch || window.innerWidth <= 768,\r\n isDesktop: () => Modernizr.mq('(min-width: 64em)'),\r\n getSite: () => SITE.trim().toLowerCase(),\r\n getSiteCommercialName,\r\n contentFromCdn,\r\n getPartnersByCulture,\r\n getParameterByName,\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'http://localhost/JSport.RealtimeServiceWeb/api/Token',\r\n paymentHubUrl: 'http://localhost/JSport.RealtimeServiceWeb/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d26ztvr3v93474.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.inwild.com:4433',\r\n cdnCmsAssetsUrl: 'https://d19sv9e4y8qwzh.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'http://localhost:1339',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'http://localhost/JSport.RealtimeServiceWeb/api/Token',\r\n paymentHubUrl: 'http://localhost/JSport.RealtimeServiceWeb/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d3n8mmvj9ns1ml.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.lordgunbicycles.com:4433',\r\n cdnCmsAssetsUrl: 'https://d2umopxfu128sk.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n 'en-AU',\r\n 'ko-KR',\r\n ],\r\n cms: {\r\n cmsUrl: 'http://localhost:1337',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: false,\r\n realtime: {\r\n tokenUrl: 'https://api.inwild.com/realtime/api/Token',\r\n paymentHubUrl: 'https://api.inwild.com/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: true,\r\n cdnImagesUrl: 'https://d26ztvr3v93474.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.inwild.com:4433',\r\n cdnCmsAssetsUrl: 'https://d19sv9e4y8qwzh.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://news.inwild.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: false,\r\n realtime: {\r\n tokenUrl: 'https://api.lordgunbicycles.com/realtime/api/Token',\r\n paymentHubUrl: 'https://api.lordgunbicycles.com/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: true,\r\n cdnImagesUrl: 'https://d3n8mmvj9ns1ml.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.lordgunbicycles.com:4433',\r\n cdnCmsAssetsUrl: 'https://d2umopxfu128sk.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n 'en-AU',\r\n 'ko-KR',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://news.lordgun.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: false,\r\n realtime: {\r\n tokenUrl: 'https://api.runkd.com/realtime/api/Token',\r\n paymentHubUrl: 'https://api.runkd.com/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: true,\r\n cdnImagesUrl: 'https://dufrl78eaxiu3.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.runkd.com:4433',\r\n cdnCmsAssetsUrl: 'https://d218t1pkbrmetd.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://news.runkd.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'http://localhost/JSport.RealtimeServiceWeb/api/Token',\r\n paymentHubUrl: 'http://localhost/JSport.RealtimeServiceWeb/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://dufrl78eaxiu3.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.runkd.com:4433',\r\n cdnCmsAssetsUrl: 'https://d218t1pkbrmetd.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'http://localhost:1338',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'https://staging.lordgunbicycles.com/inwild/webapi/realtime/api/Token',\r\n paymentHubUrl: 'https://staging.lordgunbicycles.com/inwild/webapi/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d26ztvr3v93474.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.inwild.com:4433',\r\n cdnCmsAssetsUrl: 'https://d19sv9e4y8qwzh.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://lnxtest.lordgunbicycles.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'https://staging.lordgunbicycles.com/webapi/realtime/api/Token',\r\n paymentHubUrl: 'https://staging.lordgunbicycles.com/webapi/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d3n8mmvj9ns1ml.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.lordgunbicycles.com:4433',\r\n cdnCmsAssetsUrl: 'https://d2umopxfu128sk.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n 'en-AU',\r\n 'ko-KR',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://lnxtest.lordgunbicycles.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'https://staging.lordgunbicycles.com/runkd/webapi/realtime/api/Token',\r\n paymentHubUrl: 'https://staging.lordgunbicycles.com/runkd/webapi/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://dufrl78eaxiu3.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.runkd.com:4433',\r\n cdnCmsAssetsUrl: 'https://d218t1pkbrmetd.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://lnxtest.lordgunbicycles.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","const config_lordgun = require('./config');\r\nconst config_staging_lordgun = require('./config.staging');\r\nconst config_production_lordgun = require('./config.production');\r\n// RUNKD\r\nconst config_runkd = require('./config.runkd');\r\nconst config_staging_runkd = require('./config.staging.runkd');\r\nconst config_production_runkd = require('./config.production.runkd');\r\n// INWILD\r\nconst config_inwild = require('./config.inwild');\r\nconst config_staging_inwild = require('./config.staging.inwild');\r\nconst config_production_inwild = require('./config.production.inwild');\r\n\r\nconst config = {\r\n lordgun: {\r\n development: config_lordgun,\r\n staging: config_staging_lordgun,\r\n production: config_production_lordgun,\r\n },\r\n runkd: {\r\n development: config_runkd,\r\n staging: config_staging_runkd,\r\n production: config_production_runkd,\r\n },\r\n inwild: {\r\n development: config_inwild,\r\n staging: config_staging_inwild,\r\n production: config_production_inwild,\r\n },\r\n};\r\n\r\nconst isEnvironmentSet =\r\n NODE_ENV !== null && NODE_ENV !== undefined && NODE_ENV !== '';\r\n\r\nlet environment = isEnvironmentSet\r\n ? NODE_ENV.toLowerCase().trim()\r\n : 'production';\r\n\r\nlet configObj = {\r\n getConfig: () => config[SITE.toLowerCase()][environment],\r\n};\r\n\r\nmodule.exports = configObj;\r\n","import { logError } from '../tracing';\r\nconst _defaultCookieConsent = {\r\n name: 'cookiesConsent',\r\n exists: false,\r\n firstParty: false,\r\n thirdParty: false,\r\n marketingParty: false,\r\n showBanner: true,\r\n expirationDays: 180, // 6 mesi\r\n};\r\n\r\nconst getDefaultCookieConsentValues = () => _defaultCookieConsent;\r\n\r\nconst _getCookieConsent = () => {\r\n const name = _defaultCookieConsent.name;\r\n return decodeURIComponent(\r\n document.cookie.replace(\r\n new RegExp(\r\n '(?:(?:^|.*;)\\\\s*' +\r\n encodeURIComponent(name).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') +\r\n '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\r\n ),\r\n '$1'\r\n )\r\n );\r\n};\r\n\r\nconst existsCookieConsent = () => _getCookieConsent() || null;\r\n\r\nconst _removeCookies = (cookieNames) => {\r\n //Works only for cookie without \"httponly\" attribute\r\n if (!cookieNames || cookieNames.length === 0) return;\r\n for (var i = 0; i < cookieNames.length; i++) {\r\n var cookie = cookieNames[i];\r\n if (existsCookieConsent(cookie.name))\r\n document.cookie = btoa(\r\n `${encodeURIComponent(\r\n cookie.name\r\n )}=; expires=Thu, 01 Jan 1970 00:00:00 GMT${\r\n cookie.domain ? '; domain=' + cookie.domain : ''\r\n }; path=/`\r\n );\r\n }\r\n};\r\n\r\nconst removeCookieConsent = () =>\r\n _removeCookies([{ name: _defaultCookieConsent.name }]);\r\n\r\nconst cookiesEnabled = () => {\r\n //navigator.cookieEnabled proved to be not reliable at all\r\n return (\r\n 'cookie' in document &&\r\n (document.cookie.length > 0 ||\r\n (document.cookie = 'test').indexOf.call(document.cookie, 'test') >\r\n -1)\r\n );\r\n};\r\n\r\nconst _setCookieConsent = ({\r\n name,\r\n showBanner,\r\n firstParty,\r\n thirdParty,\r\n marketingParty,\r\n}) => {\r\n /*jshint validthis:true */\r\n const cookieName =\r\n !name || /^(?:expires|max\\-age|path|domain|secure)$/i.test(name)\r\n ? _defaultCookieConsent.name\r\n : name;\r\n\r\n var expires = '';\r\n var date = new Date();\r\n date.setTime(\r\n date.getTime() +\r\n _defaultCookieConsent.expirationDays * 24 * 60 * 60 * 1000\r\n );\r\n expires = '; expires=' + date.toUTCString();\r\n\r\n // NOTA: properties pascalCase per deserializzazione lato server!!\r\n var value = JSON.stringify({\r\n FirstParty: firstParty, // NOTA: properties pascalCase per deserializzazione lato server!!\r\n ThirdParty: thirdParty, // NOTA: properties pascalCase per deserializzazione lato server!!\r\n MarketingParty: marketingParty, // NOTA: properties pascalCase per deserializzazione lato server!!\r\n ShowBanner: showBanner, // NOTA: properties pascalCase per deserializzazione lato server!!\r\n });\r\n document.cookie =\r\n `${encodeURIComponent(cookieName)}=` +\r\n btoa(`${value}`) +\r\n `${expires}; path=/`;\r\n return true;\r\n};\r\n\r\nconst acceptAllAndDontShowBanner = () =>\r\n _setCookieConsent({\r\n showBanner: false,\r\n firstParty: true,\r\n thirdParty: true,\r\n marketingParty: true,\r\n });\r\n\r\nconst getDecodedCookieConsentValues = () => {\r\n try {\r\n const cookie = _getCookieConsent();\r\n var asciiVal = atob(cookie);\r\n let values = JSON.parse(asciiVal);\r\n return values;\r\n } catch (error) {\r\n console.error(\r\n 'getDecodedCookieValues: Cannot decode or parse cookie ',\r\n error\r\n );\r\n return null;\r\n }\r\n};\r\n\r\nconst setCookieConsent = ({\r\n showBanner,\r\n firstParty,\r\n thirdParty,\r\n marketingParty,\r\n}) => _setCookieConsent({ showBanner, firstParty, thirdParty, marketingParty });\r\n\r\nconst getMarketingParty = () => {\r\n const cookieConsentValues = getDecodedCookieConsentValues();\r\n let partyConsent =\r\n cookieConsentValues === null ||\r\n cookieConsentValues === undefined ||\r\n cookieConsentValues.MarketingParty === null ||\r\n cookieConsentValues.MarketingParty === undefined\r\n ? false\r\n : cookieConsentValues.MarketingParty === true;\r\n return partyConsent;\r\n};\r\n\r\nconst getThirdParty = () => {\r\n const cookieConsentValues = getDecodedCookieConsentValues();\r\n let partyConsent =\r\n cookieConsentValues === null ||\r\n cookieConsentValues === undefined ||\r\n cookieConsentValues.ThirdParty === null ||\r\n cookieConsentValues.ThirdParty === undefined\r\n ? false\r\n : cookieConsentValues.ThirdParty === true;\r\n return partyConsent;\r\n};\r\n\r\nconst _getCookie = function (cname) {\r\n let name = cname + '=';\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return '';\r\n};\r\n\r\nconst getUserProfileOptions = () => {\r\n const userProfileCookieKey = 'userProfile';\r\n try {\r\n const cookie = _getCookie(userProfileCookieKey);\r\n if (cookie) {\r\n const parsedCookie = JSON.parse(atob(cookie));\r\n return {\r\n countryCode: parsedCookie.CountryCode,\r\n currencyCode: parsedCookie.CurrencyCode,\r\n name: parsedCookie.Name,\r\n };\r\n }\r\n throw new Error(\r\n `Cookie ${userProfileCookieKey} not found, falling back to defaults`\r\n );\r\n } catch (error) {\r\n logError(`Error decoding cookie ${userProfileCookieKey}`, error);\r\n return {\r\n countryCode: 'ITA',\r\n currencyCode: 'EUR',\r\n name: userProfileCookieKey,\r\n };\r\n }\r\n};\r\n\r\nexport default {\r\n getDefaultCookieConsentValues,\r\n removeCookieConsent,\r\n existsCookieConsent,\r\n cookiesEnabled,\r\n acceptAllAndDontShowBanner,\r\n getDecodedCookieConsentValues,\r\n setCookieConsent,\r\n getMarketingParty,\r\n getThirdParty,\r\n getUserProfileOptions,\r\n};\r\n","import {\r\n logDebug,\r\n logInfo,\r\n logWarn,\r\n logError,\r\n logEvent,\r\n} from '../../tracing.js';\r\n\r\nconst validateGoogleData = (prop, defaultValue) => {\r\n if (!window.googleData) {\r\n throw new Error('window.googleData is not defined');\r\n }\r\n if (\r\n window.googleData[prop] === null ||\r\n window.googleData[prop] === undefined\r\n ) {\r\n if (defaultValue !== undefined) {\r\n logWarn(\r\n `${prop} is not defined on window.googleData. Falling back ${defaultValue}`\r\n );\r\n return defaultValue;\r\n } else {\r\n throw new Error(`${prop} is not defined on window.googleData`);\r\n }\r\n }\r\n logDebug(\r\n `Google data prop found. Retrieving prop ${prop} with value ${window.googleData[prop]}`\r\n );\r\n return window.googleData[prop];\r\n};\r\nconst validateEcommerceData = (prop, defaultValue) => {\r\n if (!window.ecommerceData) {\r\n throw new Error('window.ecommerceData is not defined');\r\n }\r\n if (\r\n window.ecommerceData[prop] === null ||\r\n window.ecommerceData[prop] === undefined\r\n ) {\r\n if (defaultValue !== undefined) {\r\n logWarn(\r\n `${prop} is not defined on window.ecommerceData. Falling back ${defaultValue}`\r\n );\r\n return defaultValue;\r\n } else {\r\n throw new Error(`${prop} is not defined on window.ecommerceData`);\r\n }\r\n }\r\n logDebug(\r\n `Ecommerce data prop found. Retrieving prop ${prop} with value ${window.ecommerceData[prop]}`\r\n );\r\n return window.ecommerceData[prop];\r\n};\r\n\r\nconst extractAdwordsConfiguration = () => {\r\n const adwordsConfiguration = validateGoogleData('adwordsConfiguration');\r\n const ads = JSON.parse(adwordsConfiguration.replace(/"/g, '\"'));\r\n return ads;\r\n};\r\nexport {\r\n validateGoogleData,\r\n extractAdwordsConfiguration,\r\n validateEcommerceData,\r\n};\r\n","// https://developers.google.com/analytics/devguides/collection/ga4/reference/events\r\nimport {\r\n logDebug,\r\n logInfo,\r\n logWarn,\r\n logError,\r\n logEvent,\r\n} from '../../tracing.js';\r\nimport {\r\n map,\r\n reduce,\r\n isArray,\r\n uniq,\r\n intersection,\r\n find,\r\n some,\r\n isNil,\r\n isEmpty,\r\n includes,\r\n hasIn,\r\n result,\r\n} from 'lodash';\r\nimport { validateGoogleData } from '../data/dataPageService.js';\r\n\r\nimport cookieService from '../cookieService.js';\r\n\r\nimport {\r\n extractAdwordsConfiguration,\r\n validateEcommerceData,\r\n} from '../data/dataPageService.js';\r\n\r\nconst _prefix = 'ADS';\r\n\r\nconst _getDestinationId = (property) => {\r\n try {\r\n const adwordsConfiguration = extractAdwordsConfiguration();\r\n const countryCode = cookieService.getUserProfileOptions().countryCode;\r\n const defaultCountryCode = validateEcommerceData('defaultCountryCode');\r\n if (!adwordsConfiguration[property]) {\r\n logError(`${_prefix} ${property} is not defined`);\r\n throw new Error(` ${property} is not defined`);\r\n }\r\n\r\n const valueForSelectedCountry =\r\n adwordsConfiguration[property][countryCode];\r\n if (\r\n isNil(valueForSelectedCountry) ||\r\n isEmpty(valueForSelectedCountry)\r\n ) {\r\n logInfo(\r\n `${_prefix} ${property} for ${countryCode} is not defined...falling back to default.`\r\n );\r\n const valueForDefaultCountry =\r\n adwordsConfiguration[property][defaultCountryCode];\r\n\r\n if (\r\n isNil(valueForDefaultCountry) ||\r\n isEmpty(valueForDefaultCountry)\r\n ) {\r\n throw new Error(\r\n `${property} for defaultCountryCode ${defaultCountryCode} is not defined`\r\n );\r\n }\r\n return valueForDefaultCountry;\r\n }\r\n return valueForSelectedCountry;\r\n } catch (error) {\r\n logError(`${_prefix} ${error.message}`);\r\n throw new Error(error.message);\r\n }\r\n};\r\n\r\nconst _getConversionId = () => _getDestinationId('conversionId');\r\nconst _getConversionLabel = () => _getDestinationId('conversionLabel');\r\nconst _getInitiateCheckoutLabel = () =>\r\n _getDestinationId('initiateCheckoutLabel');\r\nconst _getAddToCartLabel = () => _getDestinationId('addToCartLabel');\r\nconst _getNewsletterLabel = () => _getDestinationId('newsletterLabel');\r\nconst _getValuePropertyForCountryWithFallback = ({\r\n property,\r\n fallbackValue,\r\n}) => {\r\n const adwordsConfiguration = extractAdwordsConfiguration();\r\n const countryCode = cookieService.getUserProfileOptions().countryCode;\r\n const defaultCountryCode = validateEcommerceData('defaultCountryCode');\r\n if (!hasIn(adwordsConfiguration, property)) {\r\n logError(`${_prefix} ${property} is not defined`);\r\n return fallbackValue;\r\n }\r\n\r\n if (!hasIn(adwordsConfiguration, property + '.' + countryCode)) {\r\n logWarn(\r\n `${property} not found for countryCode ${countryCode}. Falling back to ${defaultCountryCode}`\r\n );\r\n const resultFromDefaultCountryCode =\r\n result(adwordsConfiguration, property + '.' + defaultCountryCode) ||\r\n fallbackValue;\r\n logDebug(\r\n `Using value ${resultFromDefaultCountryCode} for property ${property}`\r\n );\r\n return resultFromDefaultCountryCode;\r\n }\r\n const resultFromMatchedCountryCode =\r\n result(adwordsConfiguration, property + '.' + countryCode) ||\r\n fallbackValue;\r\n return resultFromMatchedCountryCode;\r\n};\r\n\r\nconst _getCategoriesConversionLabel = (conversionLabel) => {\r\n let fallbackValue = conversionLabel;\r\n try {\r\n const property = 'categoriesConversionLabel';\r\n return _getValuePropertyForCountryWithFallback({\r\n property,\r\n fallbackValue,\r\n });\r\n } catch (error) {\r\n logDebug(\r\n `${_prefix} no retrieval of categories conversion label. Maybe there is none? I will return empty string.`\r\n );\r\n return fallbackValue;\r\n }\r\n};\r\nconst _getTrackedCategories = () => {\r\n let fallbackValue = [];\r\n try {\r\n const property = 'trackedCategories';\r\n return _getValuePropertyForCountryWithFallback({\r\n property,\r\n fallbackValue,\r\n });\r\n } catch (error) {\r\n logDebug(\r\n `${_prefix} no retrieval of tracked categories. Maybe there are none? I will return empty tracked categories.`\r\n );\r\n return fallbackValue;\r\n }\r\n};\r\n\r\nconst _validateGtag = () => {\r\n if (!window.gtag) {\r\n throw new Error('window.gtag is null or undefined');\r\n }\r\n};\r\n\r\nconst _mapItemsForDynamicRemarketing = (items) =>\r\n map(items, (item) => ({\r\n id: item.googleId,\r\n google_business_vertical: 'retail',\r\n }));\r\n\r\nconst beginCheckout = ({ cartId, currency, totaleuro, items }) => {\r\n _validateGtag();\r\n const conversionId = _getConversionId();\r\n const initiateCheckoutLabel = _getInitiateCheckoutLabel();\r\n if (!isNil(initiateCheckoutLabel) && !isEmpty(initiateCheckoutLabel)) {\r\n const beginCheckoutObj = {\r\n transaction_id: cartId, // transaction_id è documentato solo per purchase...?\r\n send_to: `${conversionId}/${initiateCheckoutLabel}`,\r\n currency,\r\n value: totaleuro,\r\n items: map(items, (item) => ({\r\n item_id: item.googleId,\r\n item_name: item.slug,\r\n })),\r\n };\r\n logEvent(`${_prefix} begin_checkout`, beginCheckoutObj);\r\n gtag('event', 'begin_checkout', beginCheckoutObj);\r\n }\r\n};\r\n\r\nconst purchaseDynamicRemarketing = ({ value, items }) => {\r\n _validateGtag();\r\n const conversionId = _getConversionId();\r\n const obj = {\r\n send_to: conversionId,\r\n value,\r\n items: _mapItemsForDynamicRemarketing(items),\r\n };\r\n logEvent(`${_prefix} purchase dynamic remarketing`, obj);\r\n gtag('event', 'purchase', obj);\r\n};\r\n\r\nconst purchaseConversion = ({ orderId, currency, totalEuro, items }) => {\r\n try {\r\n _validateGtag();\r\n // O quella della country o quella di default\r\n const conversionId = _getConversionId();\r\n // O quella della country o quella di default\r\n const conversionLabel = _getConversionLabel();\r\n logDebug(\r\n `conversionId ${conversionId} and conversionLabel ${conversionLabel}`\r\n );\r\n // O quella della country o quella di default\r\n const categoriesConversionLabel =\r\n _getCategoriesConversionLabel(conversionLabel);\r\n // Quelle della country o quelle di default\r\n const trackedCategories = _getTrackedCategories();\r\n\r\n logDebug(\r\n `categoriesConversionLabel and trackedCategories`,\r\n categoriesConversionLabel,\r\n trackedCategories\r\n );\r\n\r\n const orderCategories = uniq(\r\n reduce(\r\n items,\r\n (acc, item) => {\r\n const itms = map(\r\n item.categories,\r\n (category) => category.slug\r\n );\r\n acc = acc.concat(itms);\r\n return acc;\r\n },\r\n []\r\n )\r\n );\r\n let send_to_address_label = conversionLabel || '';\r\n const foundMatchingCategories =\r\n intersection(orderCategories, trackedCategories).length > 0;\r\n if (foundMatchingCategories) {\r\n logDebug(\r\n `Tracked category found. TrackedCategories: ${trackedCategories}, Order categories: ${orderCategories}`\r\n );\r\n send_to_address_label = categoriesConversionLabel;\r\n }\r\n\r\n let conversionData = {\r\n transaction_id: orderId,\r\n send_to: `${conversionId}/${send_to_address_label}`,\r\n value: totalEuro,\r\n currency,\r\n items: map(items, (item) => {\r\n return {\r\n id: item.googleId,\r\n quantity: item.quantity,\r\n price: item.price,\r\n };\r\n }),\r\n };\r\n logEvent('conversion', conversionData);\r\n if (window.enhanced_conversion_data) {\r\n console.log(\r\n 'Enhanced conversion data',\r\n window.enhanced_conversion_data\r\n );\r\n\r\n logEvent('EnhancedConversionData', window.enhanced_conversion_data);\r\n }\r\n return window.gtag('event', 'conversion', conversionData);\r\n } catch (error) {\r\n logError(`purchaseConversion: ${error.message}`);\r\n throw new Error(`purchaseConversion: ${error.message}`);\r\n }\r\n};\r\n\r\nconst newsletterRegistration = ({ url, email }) => {\r\n try {\r\n _validateGtag();\r\n const conversionId = _getConversionId();\r\n const newsletterLabel = _getNewsletterLabel();\r\n\r\n if (!isNil(newsletterLabel) && !isEmpty(newsletterLabel)) {\r\n let obj = {\r\n send_to: `${conversionId}/${newsletterLabel}`,\r\n url: url === undefined ? window.location.href : url,\r\n email,\r\n value: 1,\r\n };\r\n logEvent(`${_prefix} CompleteRegistration`, obj);\r\n gtag('event', 'CompleteRegistration', obj);\r\n }\r\n } catch (error) {\r\n logError(`${_prefix} ${error.message}`);\r\n throw new Error(error.message);\r\n }\r\n};\r\n\r\nconst adsSearchItemResultsDynamicRemarketing = ({ searchterm, items }) => {\r\n _validateGtag();\r\n const viewItemObject = {\r\n search_term: searchterm,\r\n items: _mapItemsForDynamicRemarketing(items),\r\n };\r\n\r\n logEvent(\r\n `${_prefix} view_search_results dynamic remarketing`,\r\n viewItemObject\r\n );\r\n gtag('event', 'view_search_results', viewItemObject);\r\n};\r\n\r\nconst adsViewItemListDynamicRemarketing = ({ items }) => {\r\n _validateGtag();\r\n const conversionId = _getConversionId();\r\n\r\n const obj = {\r\n send_to: conversionId,\r\n items: _mapItemsForDynamicRemarketing(items),\r\n };\r\n\r\n logEvent(`${_prefix} view_item_list dynamic remarketing`, obj);\r\n gtag('event', 'view_item_list', obj);\r\n};\r\n\r\nconst adsViewItemDynamicRemarketing = ({ value, items }) => {\r\n _validateGtag();\r\n const conversionId = _getConversionId();\r\n const obj = {\r\n send_to: conversionId,\r\n value,\r\n items: _mapItemsForDynamicRemarketing(items),\r\n };\r\n\r\n logEvent(`${_prefix} view_item dynamic remarketing`, obj);\r\n gtag('event', 'view_item', obj);\r\n};\r\n\r\nconst adsAddToCartDynamicRemarketing = ({ id, price }) => {\r\n _validateGtag();\r\n const conversionId = _getConversionId();\r\n const obj = {\r\n send_to: conversionId,\r\n value: price,\r\n items: [\r\n {\r\n id,\r\n google_business_vertical: 'retail',\r\n },\r\n ],\r\n };\r\n\r\n logEvent(`${_prefix} add_to_cart dynamic remarketing`, obj);\r\n gtag('event', 'add_to_cart', obj);\r\n};\r\n\r\nconst adsAddToCartConversion = ({\r\n id,\r\n currency,\r\n price,\r\n items,\r\n transactionId,\r\n}) => {\r\n _validateGtag();\r\n const conversionId = _getConversionId();\r\n const addToCartLabel = _getAddToCartLabel();\r\n if (!isNil(addToCartLabel) && !isEmpty(addToCartLabel)) {\r\n if (!some(items, (item) => item.googleId === id)) {\r\n logWarn(\r\n `Mismatch between serverside ids and current clientside id ${id} on add_to_cart. Serverside ids: ${map(\r\n items,\r\n (i) => i.googleId\r\n )}`\r\n );\r\n }\r\n\r\n let obj = {\r\n send_to: `${conversionId}/${addToCartLabel}`,\r\n currency,\r\n value: price,\r\n };\r\n if (!isNil(transactionId) && !isEmpty(transactionId)) {\r\n obj.transaction_id = transactionId;\r\n }\r\n\r\n logEvent(`${_prefix} add_to_cart conversion`, obj);\r\n gtag('event', 'add_to_cart', obj);\r\n }\r\n};\r\n\r\nconst initConversions = () => {\r\n const conversionId = _getConversionId();\r\n const analytics4EnableDebug = validateGoogleData(\r\n 'analytics4EnableDebug',\r\n false\r\n );\r\n\r\n const configAlreadySetConversionId = some(\r\n dataLayer,\r\n (d) => includes(d, 'config') && includes(d, conversionId)\r\n );\r\n if (!configAlreadySetConversionId) {\r\n if (analytics4EnableDebug === true) {\r\n gtag('config', conversionId, {\r\n debug_mode: analytics4EnableDebug, // Per ora uso lo stesso config\r\n });\r\n } else {\r\n gtag('config', conversionId);\r\n }\r\n logEvent(`Setting \\'config\\' with conversionId ${conversionId}`);\r\n }\r\n};\r\n\r\nexport {\r\n beginCheckout,\r\n purchaseDynamicRemarketing,\r\n purchaseConversion,\r\n newsletterRegistration,\r\n adsSearchItemResultsDynamicRemarketing,\r\n adsViewItemListDynamicRemarketing,\r\n adsViewItemDynamicRemarketing,\r\n adsAddToCartDynamicRemarketing,\r\n adsAddToCartConversion,\r\n initConversions,\r\n};\r\n","import { logInfo } from \"../../tracing\";\r\n\r\nconst _setGranted = () => ({\r\n 'ad_storage': 'granted',\r\n 'ad_user_data': 'granted',\r\n 'ad_personalization': 'granted',\r\n 'analytics_storage': 'granted',\r\n 'wait_for_update': 500\r\n});\r\n\r\nconst _setDenied = () => ({\r\n 'ad_storage': 'denied',\r\n 'ad_user_data': 'denied',\r\n 'ad_personalization': 'denied',\r\n 'analytics_storage': 'denied',\r\n 'wait_for_update': 500\r\n});\r\n\r\nconst _consentGrantedAdStorage= (gtag) => {\r\n gtag('consent', 'update', _setGranted());\r\n logInfo('ConsentModePrivacyService update consent set to TRUE.');\r\n}\r\nconst _consentDeniedAdStorage= (gtag) => {\r\n gtag('consent', 'update', _setDenied());\r\n logInfo('ConsentModePrivacyService update consent set to FALSE.');\r\n}\r\n\r\nconst setDefault = ({gtag}) => {\r\n gtag('consent', 'default', _setDenied());\r\n logInfo('ConsentModePrivacyService default consent set.');\r\n}\r\n\r\nconst setConsent = ({accept,gtag}) => accept === true ? _consentGrantedAdStorage(gtag) : _consentDeniedAdStorage(gtag);\r\n\r\nexport default {\r\n setDefault,\r\n setConsent\r\n}","import {\r\n logDebug,\r\n logInfo,\r\n logWarn,\r\n logError,\r\n logEvent,\r\n} from '../../tracing.js';\r\n\r\nimport { map } from 'lodash';\r\nconst _prefix = 'FBQ';\r\n\r\nconst _validateFbq = () => {\r\n if (!fbq) {\r\n throw new Error('fbq is null or undefined');\r\n }\r\n};\r\n\r\nconst _validateFbqData = (prop) => {\r\n if (!window.facebookData) {\r\n throw new Error(`${_prefix} window.facebookData is not defined`);\r\n }\r\n if (!window.facebookData[prop]) {\r\n throw new Error(\r\n `${_prefix} ${prop} is not defined on window.facebookData`\r\n );\r\n }\r\n};\r\n\r\nconst fbqPixelId = () => {\r\n _validateFbqData('pixelId');\r\n _validateFbqData('fbCulture');\r\n _validateFbq();\r\n logDebug(\r\n `PixelId: ${window.facebookData.pixelId} fbCulture: ${window.facebookData.fbCulture} `\r\n );\r\n logDebug('Firing pixelId', window.facebookData.pixelId);\r\n fbq('init', window.facebookData.pixelId);\r\n};\r\n\r\nconst init = () => {\r\n //Facebook pixelId\r\n !(function (f, b, e, v, n, t, s) {\r\n if (f.fbq) return;\r\n n = f.fbq = function () {\r\n n.callMethod\r\n ? n.callMethod.apply(n, arguments)\r\n : n.queue.push(arguments);\r\n };\r\n if (!f._fbq) f._fbq = n;\r\n n.push = n;\r\n n.loaded = !0;\r\n n.version = '2.0';\r\n n.queue = [];\r\n t = b.createElement(e);\r\n t.async = !0;\r\n t.src = v;\r\n s = b.getElementsByTagName(e)[0];\r\n s.parentNode.insertBefore(t, s);\r\n })(\r\n window,\r\n document,\r\n 'script',\r\n 'https://connect.facebook.net/en_US/fbevents.js'\r\n );\r\n};\r\n\r\nconst addToCart = ({ isKit, id, quantity, currency, price, eventId }) => {\r\n _validateFbq();\r\n const addToCartObject = {\r\n content_name: isKit\r\n ? `${window.$pathBase}Cart/AddKitToCartNew`\r\n : `${window.$pathBase}Cart/AddProductToCartNew`,\r\n content_type: 'product',\r\n contents: [\r\n {\r\n id,\r\n quantity: Number(quantity),\r\n },\r\n ],\r\n currency: currency,\r\n value: price,\r\n };\r\n\r\n logEvent(`${_prefix} AddToCart Facebook`, addToCartObject);\r\n fbq('track', 'AddToCart', addToCartObject, { eventID: eventId });\r\n};\r\n\r\nconst pageView = () => {\r\n _validateFbq();\r\n logEvent(`${_prefix} PageView Facebook`);\r\n fbq('track', 'PageView');\r\n};\r\n\r\nconst beginCheckout = ({ currency, value, items, eventId }) => {\r\n logDebug('_sendFbqInitiateCheckout');\r\n _validateFbq();\r\n const initiateCheckoutData = {\r\n currency,\r\n value,\r\n num_items: items.length,\r\n contents: map(items, (item) => ({\r\n id: item.facebookId,\r\n quantity: item.quantity,\r\n })),\r\n };\r\n logEvent(`${_prefix} InitiateCheckout Facebook`, initiateCheckoutData);\r\n fbq('track', 'InitiateCheckout', initiateCheckoutData, {\r\n eventID: eventId,\r\n });\r\n};\r\n\r\nconst newsletterRegistration = ({ url, email }) => {\r\n logDebug('_sendFbqRegistration');\r\n _validateFbq();\r\n const completeRegistrationObj = {\r\n status: true,\r\n content_name: url === undefined ? window.location.href : url,\r\n value: email,\r\n };\r\n logEvent(\r\n `${_prefix} CompleteRegistration Facebook`,\r\n completeRegistrationObj\r\n );\r\n fbq('track', 'CompleteRegistration', completeRegistrationObj);\r\n};\r\n\r\nconst contact = () => {\r\n _validateFbq();\r\n\r\n logEvent(`${_prefix} Contact Facebook`);\r\n fbq('track', 'Contact');\r\n};\r\n\r\nconst search = ({ searchterm }) => {\r\n _validateFbq();\r\n logEvent(`${_prefix} Search Facebook`, searchterm);\r\n fbq('track', 'Search', {\r\n search_string: searchterm,\r\n });\r\n};\r\n\r\nconst addPaymentInfo = ({ currency, value, items, eventId }) => {\r\n _validateFbq();\r\n const paymentObj = {\r\n currency,\r\n value,\r\n contents: map(items, (item) => ({\r\n id: item.googleId,\r\n quantity: item.quantity,\r\n })),\r\n };\r\n logEvent(`${_prefix} AddPaymentInfo Facebook`, paymentObj);\r\n fbq('track', 'AddPaymentInfo', paymentObj, { eventID: eventId });\r\n};\r\n\r\nconst viewItem = ({ slug, guid, options, currencyCode, isKit }) => {\r\n _validateFbq();\r\n fbqPixelId();\r\n const viewItemObject = {\r\n content_name: `${window.$pathBase}${slug}`,\r\n content_ids: isKit\r\n ? [`${guid}`]\r\n : map(options, (o) => `${guid}-${o.sourceId}`),\r\n currency: currencyCode,\r\n };\r\n logEvent(`${_prefix} ViewContent Facebook`, viewItemObject);\r\n fbq('track', 'ViewContent', viewItemObject);\r\n};\r\n\r\nconst purchase = ({ currency, value, items, eventId }) => {\r\n _validateFbq();\r\n let purchaseData = {\r\n contents: items.map((li) => ({\r\n id: li.facebookId,\r\n quantity: li.quantity,\r\n })),\r\n content_type: 'product',\r\n value,\r\n currency,\r\n };\r\n logEvent(`${_prefix} Purchase Facebook`, purchaseData);\r\n fbq('track', 'Purchase', purchaseData, { eventID: eventId });\r\n};\r\n\r\nexport {\r\n init,\r\n addToCart,\r\n fbqPixelId,\r\n pageView,\r\n beginCheckout,\r\n newsletterRegistration,\r\n contact,\r\n search,\r\n addPaymentInfo,\r\n viewItem,\r\n purchase,\r\n};\r\n","// https://developers.google.com/analytics/devguides/collection/ga4/reference/events\r\nimport { logDebug, logWarn, logError, logEvent } from '../../tracing.js';\r\n\r\nimport {\r\n map,\r\n isArray,\r\n find,\r\n some,\r\n includes,\r\n forEach,\r\n isNil,\r\n isEmpty,\r\n} from 'lodash';\r\n\r\nimport { validateGoogleData } from '../data/dataPageService.js';\r\n\r\nconst _prefix = 'GA4';\r\nconst _validateGtag = () => {\r\n if (!window.gtag) {\r\n throw new Error('window.gtag is null or undefined');\r\n }\r\n};\r\n\r\nconst _setCategories = ({ itemObj, categories }) => {\r\n forEach(categories, (category, index) => {\r\n itemObj[`item_category${index === 0 ? '' : index}`] = category;\r\n });\r\n return itemObj;\r\n};\r\n\r\nconst _mapItems = (items) =>\r\n map(items, (item) => {\r\n const itemObj = {\r\n item_id: item.googleId,\r\n item_name: item.slug,\r\n };\r\n if (!isNil(item.quantity)) {\r\n itemObj.quantity = item.quantity;\r\n }\r\n if (!isNil(item.currency)) {\r\n itemObj.currency = item.currency;\r\n }\r\n if (!isNil(item.price)) {\r\n itemObj.price = item.price;\r\n }\r\n if (!isNil(item.disciplines)) {\r\n itemObj.disciplines = item.disciplines;\r\n }\r\n if (!isNil(item.brandName)) {\r\n itemObj.item_brand = item.brandName;\r\n }\r\n if (\r\n !isNil(item.categories) &&\r\n item.categories &&\r\n item.categories.length > 0\r\n ) {\r\n return _setCategories({ itemObj, categories: item.categories });\r\n }\r\n return itemObj;\r\n });\r\n\r\nconst beginCheckout = ({ currency, totaleuro, items }) => {\r\n _validateGtag();\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n const obj = {\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n // transaction_id: cartId, // CREDO NON sia passabile, non è documentato e non mi pare registrare l'evento se lo aggiungo.\r\n currency,\r\n value: totaleuro,\r\n items: _mapItems(items),\r\n };\r\n logEvent(`${_prefix} begin_checkout`, obj);\r\n gtag('event', 'begin_checkout', obj);\r\n};\r\n\r\nconst purchase = ({ transaction_id, currency, value, shipping, items }) => {\r\n _validateGtag();\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n let obj = {\r\n transaction_id,\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n currency,\r\n value,\r\n shipping,\r\n items: items.map((li) => ({\r\n item_id: li.googleId,\r\n item_name: li.slug,\r\n item_category:\r\n li.categories &&\r\n isArray(li.categories) &&\r\n li.categories.length > 0\r\n ? li.categories[0]\r\n : '',\r\n item_brand:\r\n isNil(li.brandName) || isEmpty(li.brandName)\r\n ? ''\r\n : li.brandName,\r\n price: li.price,\r\n quantity: li.quantity,\r\n })),\r\n };\r\n logEvent(`${_prefix} purchase`, obj);\r\n gtag('event', 'purchase', obj);\r\n};\r\n\r\nconst newsletterRegistration = ({ url, email }) => {\r\n _validateGtag();\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n let obj = {\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n url: url === undefined ? window.location.href : url,\r\n email,\r\n };\r\n logEvent(`${_prefix} CompleteRegistration`, obj);\r\n gtag('event', 'CompleteRegistration', obj);\r\n};\r\n\r\nconst viewItem = ({ currency, value, items }) => {\r\n _validateGtag();\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n const obj = {\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n\r\n currency,\r\n value,\r\n items: _mapItems(items),\r\n };\r\n\r\n logEvent(`${_prefix} view_item`, obj);\r\n gtag('event', 'view_item', obj);\r\n};\r\n\r\nconst searchItemsResults = ({ searchterm }) => {\r\n // NOTA: abbiamo disabilitato l'enhancement measure su GA4 (stream web)\r\n // al fine di evitare duplicazione di questi eventi.\r\n // Disabilitandolo, nei report ne risulta uno,\r\n // anche se comunque ne vengono sparati due (uno dal nostro codice e uno by default da Google)\r\n _validateGtag();\r\n const obj = {\r\n search_term: searchterm,\r\n };\r\n\r\n logEvent(`${_prefix} search`, obj);\r\n gtag('event', 'search', obj);\r\n};\r\n\r\nconst viewItemList = ({ items }) => {\r\n _validateGtag();\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n const obj = {\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n items: _mapItems(items),\r\n };\r\n\r\n logEvent(`${_prefix} view_item_list`, obj);\r\n gtag('event', 'view_item_list', obj);\r\n};\r\n\r\nconst viewCart = ({ cartId, currency, totaleuro, items }) => {\r\n _validateGtag();\r\n const obj = {\r\n // transaction_id: cartId,\r\n currency,\r\n value: parseFloat(totaleuro),\r\n items: _mapItems(items),\r\n };\r\n\r\n logEvent(`${_prefix} view_cart`, obj);\r\n gtag('event', 'view_cart', obj);\r\n};\r\n\r\nconst addShippingInfo = ({ cartId, currency, value, items, shipping_tier }) => {\r\n _validateGtag();\r\n const obj = {\r\n // transaction_id: cartId, // NON SI PUO' METTERE o NON REGISTRA L'EVENTO\r\n currency,\r\n value: parseFloat(value),\r\n items: _mapItems(items),\r\n shipping_tier: shipping_tier,\r\n };\r\n logEvent(`${_prefix} add_shipping_info`, obj);\r\n gtag('event', 'add_shipping_info', obj);\r\n};\r\n\r\nconst addToCart = ({\r\n id,\r\n quantity,\r\n currency,\r\n price,\r\n items,\r\n disciplines,\r\n categories,\r\n brandName,\r\n}) => {\r\n _validateGtag();\r\n\r\n if (!some(items, (item) => item.googleId === id)) {\r\n logWarn(\r\n `Mismatch between serverside ids and current clientside id ${id} on add_to_cart. Serverside ids: ${map(\r\n items,\r\n (i) => i.googleId\r\n )}`\r\n );\r\n }\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n const obj = {\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n currency,\r\n value: find(items, (item) => item.googleId === id).price,\r\n items: _mapItems([\r\n {\r\n googleId: id,\r\n slug: find(items, (item) => item.googleId === id).slug,\r\n quantity,\r\n currency,\r\n price: find(items, (item) => item.googleId === id).price,\r\n disciplines,\r\n brandName,\r\n categories,\r\n },\r\n ]),\r\n };\r\n\r\n logEvent(`${_prefix} add_to_cart`, obj);\r\n gtag('event', 'add_to_cart', obj);\r\n};\r\n\r\nconst addPaymentInfo = ({ currency, value, items, payment }) => {\r\n _validateGtag();\r\n const obj = {\r\n currency,\r\n value,\r\n payment_type: payment,\r\n items: _mapItems(items),\r\n };\r\n logEvent(`${_prefix} add_payment_info`, obj);\r\n gtag('event', 'add_payment_info', obj);\r\n};\r\n\r\nconst closePopUp = () => {\r\n _validateGtag();\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n const obj = {\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n content_type: 'close pop up',\r\n };\r\n\r\n logEvent(`${_prefix} select_content`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst popUpButtonClick = () => {\r\n _validateGtag();\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n const obj = {\r\n send_to: [analytics4MeasurementId, analytics4MeasurementGlobalId],\r\n content_type: 'pop up button click',\r\n };\r\n\r\n logEvent(`${_prefix} select_content`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst init = ({ debug }) => {\r\n // Analytics 4\r\n if (!window.dataLayer) {\r\n logDebug('window.dataLayer does not exist. Creating it as empty array');\r\n }\r\n window.dataLayer = window.dataLayer || [];\r\n logDebug('window.dataLayer set...');\r\n function gtag() {\r\n dataLayer.push(arguments);\r\n }\r\n window.gtag = gtag;\r\n _validateGtag();\r\n logDebug('window.gtag set...');\r\n gtag('js', new Date());\r\n};\r\nconst setConfigGoogleAnalytics4 = ({ debug }) => {\r\n _validateGtag();\r\n // Questo config in automatico, per default, setta send_page_view a true per GA4 (con dei parametri di default).\r\n const analytics4MeasurementId = validateGoogleData(\r\n 'analytics4MeasurementId'\r\n );\r\n\r\n const configAlreadySetAnalytics4MeasurementId = some(\r\n dataLayer,\r\n (d) => includes(d, 'config') && includes(d, analytics4MeasurementId)\r\n );\r\n if (!configAlreadySetAnalytics4MeasurementId) {\r\n if (debug === true) {\r\n gtag('config', analytics4MeasurementId, {\r\n debug_mode: debug,\r\n });\r\n } else {\r\n gtag('config', analytics4MeasurementId);\r\n }\r\n logEvent(\r\n `GA4 pageview via \\'config\\' for measurement id ${analytics4MeasurementId}`\r\n );\r\n }\r\n\r\n const analytics4MeasurementGlobalId = validateGoogleData(\r\n 'analytics4MeasurementGlobalId'\r\n );\r\n\r\n const configAlreadySetAnalytics4MeasurementGlobalId = some(\r\n dataLayer,\r\n (d) =>\r\n includes(d, 'config') && includes(d, analytics4MeasurementGlobalId)\r\n );\r\n if (!configAlreadySetAnalytics4MeasurementGlobalId) {\r\n if (debug === true) {\r\n gtag('config', configAlreadySetAnalytics4MeasurementGlobalId, {\r\n debug_mode: debug,\r\n });\r\n } else {\r\n gtag('config', configAlreadySetAnalytics4MeasurementGlobalId);\r\n }\r\n logEvent(\r\n `GA4 pageview via \\'config\\' for Global measurement id ${analytics4MeasurementGlobalId}`\r\n );\r\n }\r\n};\r\n\r\nconst recordGA4BannerClick = ({ linkUrl, title, index }) => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'banner',\r\n item_id: linkUrl,\r\n title,\r\n index,\r\n };\r\n logEvent(\r\n `GA4 custom event BANNER CLICK: ${linkUrl} ${title} ${index}`,\r\n obj\r\n );\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst recordGA4PromoImagesClick = ({\r\n linkUrl,\r\n promoMessage,\r\n index,\r\n imageSrc,\r\n}) => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'promoImages',\r\n item_id: linkUrl,\r\n promoMessage,\r\n index,\r\n imageSrc,\r\n };\r\n logEvent(\r\n `GA4 custom event PROMO IMAGES CLICK: ${linkUrl} ${promoMessage.message} ${index}`,\r\n obj\r\n );\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst recordGA4InfoboxClick = ({ linkUrl }) => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'infobox',\r\n item_id: linkUrl,\r\n };\r\n logEvent(`GA4 custom event INFOBOX CLICK: ${linkUrl}`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst recordGA4NewsHomepageClick = () => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'news',\r\n };\r\n logEvent(`GA4 custom event NEWS HOMEPAGE`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst recordGA4HelpClick = () => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'help',\r\n };\r\n logEvent(`GA4 custom event HELP PAGE`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst recordGA4CategoryClick = ({ linkUrl }) => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'category',\r\n item_id: linkUrl,\r\n };\r\n logEvent(`GA4 custom event CATEGORY CLICK: ${linkUrl}`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst recordGA4LogonClick = ({ linkUrl }) => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'logon',\r\n item_id: linkUrl,\r\n };\r\n logEvent(`GA4 custom event LOGON CLICK: ${linkUrl}`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nconst recordGA4RegisterClick = ({ linkUrl }) => {\r\n _validateGtag();\r\n const obj = {\r\n content_type: 'register',\r\n item_id: linkUrl,\r\n };\r\n logEvent(`GA4 custom event REGISTER CLICK: ${linkUrl}`, obj);\r\n gtag('event', 'select_content', obj);\r\n};\r\n\r\nexport {\r\n beginCheckout,\r\n purchase,\r\n newsletterRegistration,\r\n viewItem,\r\n searchItemsResults,\r\n viewItemList,\r\n viewCart,\r\n addShippingInfo,\r\n addToCart,\r\n addPaymentInfo,\r\n closePopUp,\r\n popUpButtonClick,\r\n init,\r\n setConfigGoogleAnalytics4,\r\n recordGA4BannerClick,\r\n recordGA4PromoImagesClick,\r\n recordGA4InfoboxClick,\r\n recordGA4NewsHomepageClick,\r\n recordGA4HelpClick,\r\n recordGA4CategoryClick,\r\n recordGA4LogonClick,\r\n recordGA4RegisterClick,\r\n};\r\n","import { logDebug } from \"../../tracing\";\r\n\r\nconst initLibs = () => {\r\n // https://support.google.com/analytics/answer/7201382?hl=en\r\n\r\n return new Promise((resolve, reject) => {\r\n if (window.gtag && window.fbq) {\r\n logDebug('window.gtag && window.fbq ALL INITIALIZED!');\r\n return resolve({\r\n gtag: window.gtag,\r\n fbq: window.fbq\r\n });\r\n }\r\n let retryCount = 4;\r\n const interval = setInterval(function () {\r\n try {\r\n logDebug('--> Run analytics script');\r\n\r\n if (window.gtag && window.fbq) {\r\n logDebug('--> ga gtag and fbq ALL DEFINED');\r\n\r\n clearInterval(interval);\r\n return resolve({\r\n gtag: window.gtag,\r\n fbq: window.fbq\r\n });\r\n }\r\n if (retryCount === 0) {\r\n clearInterval(interval);\r\n return reject('Some function is not defined');\r\n }\r\n\r\n retryCount = retryCount - 1;\r\n } catch (error) {\r\n reject(error);\r\n }\r\n }, 1000);\r\n });\r\n};\r\n\r\nexport default {initLibs}","import cookieService from '../cookieService.js';\r\nimport {\r\n beginCheckout as ga4BeginCheckout,\r\n purchase as ga4Purchase,\r\n newsletterRegistration as ga4NewsletterRegistration,\r\n viewItem as ga4ViewItem,\r\n searchItemsResults as ga4SearchItemsResults,\r\n viewItemList as ga4ViewItemList,\r\n viewCart as ga4ViewCart,\r\n addShippingInfo as ga4AddShippingInfo,\r\n addToCart as ga4AddToCart,\r\n addPaymentInfo as ga4AddPaymentInfo,\r\n closePopUp as ga4ClosePopUp,\r\n popUpButtonClick as ga4PopUpButtonClick,\r\n init as initGoogleAnalytics4,\r\n setConfigGoogleAnalytics4,\r\n recordGA4BannerClick,\r\n recordGA4PromoImagesClick,\r\n recordGA4InfoboxClick,\r\n recordGA4NewsHomepageClick,\r\n recordGA4HelpClick,\r\n recordGA4CategoryClick,\r\n recordGA4LogonClick,\r\n recordGA4RegisterClick,\r\n} from './ga4Service.js';\r\nimport {\r\n beginCheckout as adsBeginCheckoutSendConversion,\r\n purchaseDynamicRemarketing,\r\n purchaseConversion,\r\n adsSearchItemResultsDynamicRemarketing,\r\n adsViewItemListDynamicRemarketing,\r\n adsViewItemDynamicRemarketing,\r\n adsAddToCartDynamicRemarketing,\r\n adsAddToCartConversion,\r\n newsletterRegistration as adsNewsletterRegistrationSendConversion,\r\n initConversions,\r\n} from './adsService.js';\r\nimport {\r\n init as initFbq,\r\n addToCart as fbqAddToCart,\r\n fbqPixelId,\r\n pageView as fbqPageView,\r\n beginCheckout as fbqBeginCheckout,\r\n newsletterRegistration as fbqNewsletterRegistration,\r\n contact as fbqContact,\r\n search as fbqSearch,\r\n addPaymentInfo as fbqAddPaymentInfo,\r\n viewItem as fbqViewItem,\r\n purchase as fbqPurchase,\r\n} from './facebookService.js';\r\n\r\nimport { logDebug, logWarn, logError, logEvent } from '../../tracing.js';\r\nimport { isArray } from 'lodash';\r\nimport { validateGoogleData } from '../data/dataPageService.js';\r\n\r\nconst pageTypes = {\r\n view_item: 'view_item',\r\n view_item_list: 'view_item_list',\r\n cart: 'cart',\r\n view_search_results: 'view_search_results',\r\n registration: 'registration',\r\n contact: 'contact',\r\n view_cart: 'view_cart',\r\n add_shipping_info: 'add_shipping_info',\r\n add_payment_info: 'add_payment_info',\r\n purchase: 'purchase',\r\n};\r\n\r\nconst _validateEcommPageType = () => {\r\n if (!window.ecomm_pagetype) {\r\n throw new Error('window.ecomm_pagetype is not defined');\r\n }\r\n return window.ecomm_pagetype;\r\n};\r\nconst _validateEcommTransactionId = () => {\r\n if (!window.ecomm_transactionid) {\r\n logError('window.ecomm_transactionid is not defined');\r\n throw new Error('window.ecomm_transactionid is not defined');\r\n }\r\n\r\n if (window.ecomm_transactionid === '00000000-0000-0000-0000-000000000000') {\r\n logError(\r\n 'Skipping because orderId happens to be 00000000-0000-0000-0000-000000000000'\r\n );\r\n throw new Error(\r\n 'Skipping because orderId happens to be 00000000-0000-0000-0000-000000000000'\r\n );\r\n }\r\n return window.ecomm_transactionid;\r\n};\r\nconst _validateEcommTotalValue = () => {\r\n if (!window.ecomm_totalvalue) {\r\n logError('window.ecomm_totalvalue is not defined');\r\n throw new Error('window.ecomm_totalvalue is not defined');\r\n }\r\n return window.ecomm_totalvalue;\r\n};\r\nconst _validateEcommTotalValueEuro = () => {\r\n if (!window.ecomm_totalvalueeuro) {\r\n logError('window.ecomm_totalvalueeuro is not defined');\r\n throw new Error('window.ecomm_totalvalueeuro is not defined');\r\n }\r\n return window.ecomm_totalvalueeuro;\r\n};\r\n\r\nconst _validateEcommCurrency = () => {\r\n if (!window.ecomm_currency) {\r\n logError('window.ecomm_currency is undefined');\r\n throw new Error('window.ecomm_currency is undefined');\r\n }\r\n return window.ecomm_currency;\r\n};\r\n\r\nconst _validateEcommSearchTerm = () => {\r\n if (!window.ecomm_searchterm) {\r\n logError('window.ecomm_searchterm is undefined');\r\n throw new Error('window.ecomm_searchterm is undefined');\r\n }\r\n if (window.ecomm_searchterm === '') {\r\n logWarn('window.ecomm_searchterm is empty');\r\n }\r\n return window.ecomm_searchterm;\r\n};\r\nconst _validateEcommItems = () => {\r\n if (!window.ecomm_items) {\r\n logError('window.ecomm_items is undefined');\r\n throw new Error('window.ecomm_items is undefined');\r\n }\r\n if (isArray(window.ecomm_items) && window.ecomm_items.length === 0) {\r\n logWarn('window.ecomm_items is empty');\r\n }\r\n return window.ecomm_items;\r\n};\r\nconst _validateEcommShippingOptionName = () => {\r\n if (!window.ecomm_shippingoptionname) {\r\n logError('window.ecomm_shippingoptionname is undefined');\r\n throw new Error('window.ecomm_shippingoptionname is undefined');\r\n }\r\n if (window.ecomm_shippingoptionname === '') {\r\n logWarn('window.ecomm_shippingoptionname is empty');\r\n }\r\n return window.ecomm_shippingoptionname;\r\n};\r\nconst _validateEcommShippingFeesEuro = () => {\r\n if (!window.ecomm_shippingfeeseuro) {\r\n logError('window.ecomm_shippingfeeseuro is undefined');\r\n throw new Error('window.ecomm_shippingfeeseuro is undefined');\r\n }\r\n if (window.ecomm_shippingfeeseuro === '') {\r\n logWarn('window.ecomm_shippingfeeseuro is empty');\r\n }\r\n return window.ecomm_shippingfeeseuro;\r\n};\r\nconst _validateEcommEmail = () => {\r\n if (!window.ecomm_email) {\r\n logError('window.ecomm_email is undefined');\r\n throw new Error('window.ecomm_email is undefined');\r\n }\r\n return window.ecomm_email;\r\n};\r\n\r\nconst _sendInitiateCheckout = () => {\r\n if (window.ecomm_pagetype && window.ecomm_pagetype === pageTypes.cart) {\r\n const cartId = _validateEcommTransactionId();\r\n const totaleuro = _validateEcommTotalValueEuro();\r\n const currency = _validateEcommCurrency();\r\n const items = _validateEcommItems();\r\n fbqBeginCheckout({\r\n currency,\r\n value: totaleuro,\r\n items,\r\n eventId: cartId,\r\n });\r\n\r\n ga4BeginCheckout({\r\n currency,\r\n totaleuro,\r\n items,\r\n });\r\n adsBeginCheckoutSendConversion({\r\n cartId,\r\n currency,\r\n totaleuro,\r\n items,\r\n });\r\n }\r\n};\r\n\r\nconst _sendNewsletterRegistration = ({ url, email }) => {\r\n logDebug('_sendRegistration');\r\n fbqNewsletterRegistration({ url, email });\r\n ga4NewsletterRegistration({\r\n url,\r\n email,\r\n });\r\n adsNewsletterRegistrationSendConversion({\r\n email,\r\n });\r\n};\r\n\r\nconst sendRegistration = ({ url, email }) => {\r\n return initLibs()\r\n .then(() => {\r\n try {\r\n _sendNewsletterRegistration({ url, email });\r\n } catch (error) {\r\n throw new Error(error.message);\r\n }\r\n })\r\n .catch((err) => {\r\n logError('sendRegistration from form ', err.message, url, email);\r\n return err;\r\n });\r\n};\r\n\r\nconst _sendRegistration = () => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.registration\r\n ) {\r\n const email = _validateEcommEmail();\r\n _sendNewsletterRegistration({ url: window.location.href, email });\r\n }\r\n};\r\n\r\nconst _sendFbqContact = () => {\r\n if (window.ecomm_pagetype && window.ecomm_pagetype === pageTypes.contact) {\r\n logDebug('_sendFbqContact');\r\n fbqContact();\r\n }\r\n};\r\n\r\nconst _sendViewItem = () => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.view_item\r\n ) {\r\n logDebug('_sendGoogleAnalyticsFourViewItem');\r\n const currency = _validateEcommCurrency();\r\n const value = _validateEcommTotalValue();\r\n const items = _validateEcommItems();\r\n\r\n // Commentato per evitare eventi duplicati, essendoci dynamic remarketing\r\n ga4ViewItem({\r\n currency,\r\n value,\r\n items,\r\n });\r\n adsViewItemDynamicRemarketing({ value, items });\r\n }\r\n};\r\n\r\nconst _sendSearchItemResults = () => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.view_search_results\r\n ) {\r\n logDebug('_sendSearchItemResults');\r\n const searchterm = _validateEcommSearchTerm();\r\n const items = _validateEcommItems();\r\n\r\n fbqSearch({ searchterm });\r\n ga4SearchItemsResults({ searchterm });\r\n adsSearchItemResultsDynamicRemarketing({ searchterm, items });\r\n }\r\n};\r\n\r\nconst _sendViewItemList = () => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.view_item_list\r\n ) {\r\n logDebug('_sendViewItemList');\r\n const items = _validateEcommItems();\r\n ga4ViewItemList({\r\n items,\r\n });\r\n adsViewItemListDynamicRemarketing({ items });\r\n }\r\n};\r\n\r\nconst _sendViewCart = () => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.view_cart\r\n ) {\r\n logDebug('_sendViewCart');\r\n const cartId = _validateEcommTransactionId();\r\n const currency = _validateEcommCurrency();\r\n const totaleuro = _validateEcommTotalValueEuro();\r\n const items = _validateEcommItems();\r\n ga4ViewCart({ cartId, currency, totaleuro, items });\r\n }\r\n};\r\n\r\nconst _sendShippingInfo = () => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.add_shipping_info\r\n ) {\r\n logDebug('_sendGoogleAnalyticsFourShippingInfo');\r\n const cartId = _validateEcommTransactionId();\r\n const currency = _validateEcommCurrency();\r\n const value = _validateEcommTotalValue();\r\n const items = _validateEcommItems();\r\n const shipping_tier = _validateEcommShippingOptionName();\r\n ga4AddShippingInfo({ cartId, currency, value, items, shipping_tier });\r\n }\r\n};\r\n\r\nconst addPaymentInfo = ({ payment, value }) => {\r\n logDebug('addPaymentInfo');\r\n return initLibs().then(() => {\r\n const cartId = _validateEcommTransactionId();\r\n const currency = _validateEcommCurrency();\r\n const items = _validateEcommItems();\r\n fbqAddPaymentInfo({ currency, value, items, eventId: cartId });\r\n ga4AddPaymentInfo({ currency, value, items, payment });\r\n return payment;\r\n });\r\n};\r\n\r\nconst closePopUp = () => {\r\n logDebug('closePopUp');\r\n return initLibs().then(() => {\r\n ga4ClosePopUp();\r\n return;\r\n });\r\n};\r\n\r\nconst popUpButtonClick = () => {\r\n logDebug('popUpButtonClick');\r\n return initLibs().then(() => {\r\n ga4PopUpButtonClick();\r\n return;\r\n });\r\n};\r\n\r\nconst initLibs = () => {\r\n // https://support.google.com/analytics/answer/7201382?hl=en\r\n\r\n return new Promise((resolve, reject) => {\r\n if (window.gtag && window.fbq) {\r\n logDebug('window.gtag && window.fbq ALL INITIALIZED!');\r\n \r\n const analytics4EnableDebug = validateGoogleData(\r\n 'analytics4EnableDebug',\r\n false\r\n );\r\n return resolve({\r\n gtag: window.gtag,\r\n fbq: window.fbq,\r\n analytics4EnableDebug,\r\n });\r\n }\r\n let retryCount = 4;\r\n const interval = setInterval(function () {\r\n try {\r\n logDebug('--> Run analytics script');\r\n\r\n const analytics4EnableDebug = validateGoogleData(\r\n 'analytics4EnableDebug',\r\n false\r\n );\r\n\r\n if (!window.gtag) {\r\n initGoogleAnalytics4({ debug: analytics4EnableDebug });\r\n }\r\n // FACEBOOK\r\n if (!window.fbq) {\r\n initFbq();\r\n }\r\n\r\n if (window.gtag && window.fbq) {\r\n logDebug('--> ga gtag and fbq ALL DEFINED');\r\n\r\n clearInterval(interval);\r\n return resolve({\r\n gtag: window.gtag,\r\n fbq: window.fbq,\r\n analytics4EnableDebug,\r\n });\r\n }\r\n if (retryCount === 0) {\r\n clearInterval(interval);\r\n return reject('Some function is not defined');\r\n }\r\n\r\n retryCount = retryCount - 1;\r\n } catch (error) {\r\n reject(error);\r\n }\r\n }, 1000);\r\n });\r\n};\r\n\r\nconst addToCart = ({\r\n isKit,\r\n guid,\r\n quantity,\r\n options,\r\n currency,\r\n price,\r\n disciplines,\r\n categories,\r\n brandName,\r\n transactionId,\r\n}) => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.view_item\r\n ) {\r\n initLibs().then(() => {\r\n const id = isKit ? guid : `${guid}-${options[0].optionId}`;\r\n fbqAddToCart({\r\n isKit,\r\n id,\r\n quantity,\r\n currency,\r\n price,\r\n eventId: transactionId,\r\n });\r\n const items = _validateEcommItems();\r\n\r\n // Commentato per evitare eventi duplicati, essendoci dynamic remarketing\r\n ga4AddToCart({\r\n id,\r\n quantity,\r\n currency,\r\n price,\r\n items,\r\n disciplines,\r\n categories,\r\n brandName,\r\n });\r\n\r\n adsAddToCartDynamicRemarketing({\r\n id,\r\n price,\r\n });\r\n adsAddToCartConversion({\r\n id,\r\n currency,\r\n price,\r\n items,\r\n transactionId,\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst viewItemFbq = async ({ slug, guid, options, currencyCode, isKit }) => {\r\n if (\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.view_item\r\n ) {\r\n await initLibs();\r\n\r\n fbqViewItem({ slug, guid, options, currencyCode, isKit });\r\n }\r\n};\r\n\r\nconst _sendPurchase = () => {\r\n if (window.ecomm_pagetype && window.ecomm_pagetype === pageTypes.purchase) {\r\n const transaction_id = _validateEcommTransactionId();\r\n const currency = _validateEcommCurrency();\r\n const value = _validateEcommTotalValue();\r\n const items = _validateEcommItems();\r\n const shipping = _validateEcommShippingFeesEuro();\r\n const valueDecimal = parseFloat(value);\r\n const shippingDecimal = parseFloat(shipping);\r\n fbqPurchase({ currency, value, items, eventId: transaction_id });\r\n ga4Purchase({\r\n transaction_id,\r\n currency,\r\n value: valueDecimal,\r\n shipping: shippingDecimal,\r\n items,\r\n });\r\n purchaseDynamicRemarketing({\r\n value: valueDecimal,\r\n items,\r\n });\r\n\r\n logDebug(`Preparing purchaseConversion data...`);\r\n logDebug(`transaction_id ${transaction_id}`);\r\n const totalEuro = parseFloat(_validateEcommTotalValueEuro());\r\n logDebug(`totalEuro ${totalEuro}`);\r\n purchaseConversion({\r\n orderId: transaction_id,\r\n currency,\r\n totalEuro,\r\n items,\r\n });\r\n }\r\n};\r\n\r\nconst sendGoogleSurvey = ({\r\n enableGoogleSurvey,\r\n merchantId,\r\n orderId,\r\n userEmail,\r\n deliveryCountry,\r\n estimatedDeliveryDate,\r\n surveyoptin,\r\n}) => {\r\n const handleSurvey =\r\n window.ecomm_pagetype &&\r\n window.ecomm_pagetype === pageTypes.purchase &&\r\n enableGoogleSurvey;\r\n console.log('handleSurvey', handleSurvey);\r\n if (handleSurvey) {\r\n console.log('handle');\r\n\r\n const surveyObj = {\r\n merchant_id: merchantId,\r\n order_id: orderId,\r\n email: userEmail,\r\n delivery_country: deliveryCountry,\r\n estimated_delivery_date: estimatedDeliveryDate,\r\n };\r\n logEvent('gooogle survey', surveyObj);\r\n if (!surveyoptin) {\r\n logError('window.gapi.surveyoptin is not defined');\r\n return;\r\n }\r\n console.log('surveyoptin');\r\n surveyoptin.render(surveyObj);\r\n } else {\r\n logDebug(\r\n `Google survey script is disabled for merchantId ${merchantId}. Delivery country: ${deliveryCountry} Order id: ${orderId}`\r\n );\r\n }\r\n};\r\n\r\nconst run = () => {\r\n try {\r\n logDebug('Starting marketing and analytics service...');\r\n initLibs()\r\n .then(({ gtag, fbq, analytics4EnableDebug }) => {\r\n try {\r\n logDebug('window.googleData', window.googleData);\r\n logDebug('window.facebookData', window.facebookData);\r\n\r\n setConfigGoogleAnalytics4({ debug: analytics4EnableDebug });\r\n initConversions();\r\n let thirdPartyConsent = cookieService.getThirdParty();\r\n let marketingPartyConsent =\r\n cookieService.getMarketingParty();\r\n\r\n if (thirdPartyConsent) {\r\n logDebug('Executing actions for thirdPartyConsent...');\r\n fbqPixelId();\r\n fbqPageView();\r\n } else {\r\n logDebug(`No third party consent given`);\r\n }\r\n if (marketingPartyConsent) {\r\n logDebug(\r\n 'Executing actions for marketingPartyConsent...'\r\n );\r\n\r\n _sendInitiateCheckout();\r\n _sendPurchase();\r\n\r\n _sendRegistration();\r\n _sendFbqContact();\r\n _sendViewItem();\r\n _sendSearchItemResults();\r\n _sendViewItemList();\r\n _sendViewCart();\r\n _sendShippingInfo();\r\n } else {\r\n logDebug(`No marketing consent given`);\r\n }\r\n } catch (error) {\r\n logError(`Error on run. ${error}`);\r\n }\r\n })\r\n .catch((err) => {\r\n logError(`Error on run after initializing libs. ${err}`);\r\n });\r\n } catch (error) {\r\n logError(`Error on run() : ${error}`);\r\n }\r\n};\r\n\r\nconst recordBannerClick = async ({ linkUrl, title, index }) => {\r\n try {\r\n await initLibs();\r\n recordGA4BannerClick({ linkUrl, title, index });\r\n } catch (error) {\r\n logError(\r\n `Error recording banner click for url: ${linkUrl} - title: ${title} - index: ${index}`,\r\n error.message\r\n );\r\n }\r\n};\r\n\r\nconst recordPromoImagesClick = async ({\r\n linkUrl,\r\n promoMessage,\r\n index,\r\n imageSrc,\r\n}) => {\r\n try {\r\n await initLibs();\r\n recordGA4PromoImagesClick({\r\n linkUrl,\r\n promoMessage,\r\n index,\r\n imageSrc,\r\n });\r\n } catch (error) {\r\n logError(\r\n `Error recording promo images click for url: ${linkUrl} - promoMessage: ${promoMessage} - index: ${index} - imageSrc: ${imageSrc}`,\r\n error.message\r\n );\r\n }\r\n};\r\n\r\nconst recordInfoboxClick = async ({ linkUrl }) => {\r\n try {\r\n await initLibs();\r\n recordGA4InfoboxClick({\r\n linkUrl,\r\n });\r\n } catch (error) {\r\n logError(\r\n `Error recording infoboxes click for url: ${linkUrl}`,\r\n error.message\r\n );\r\n }\r\n};\r\n\r\nconst recordNewsHomepageClick = async () => {\r\n try {\r\n await initLibs();\r\n recordGA4NewsHomepageClick();\r\n } catch (error) {\r\n logError(`Error recording news homepage click.`, error.message);\r\n }\r\n};\r\n\r\nconst recordHelpClick = async () => {\r\n try {\r\n await initLibs();\r\n recordGA4HelpClick();\r\n } catch (error) {\r\n logError(`Error recording news homepage click.`, error.message);\r\n }\r\n};\r\nconst recordCategoryClick = async ({ linkUrl }) => {\r\n try {\r\n await initLibs();\r\n recordGA4CategoryClick({ linkUrl });\r\n } catch (error) {\r\n logError(\r\n `Error recording category click for ${linkUrl}`,\r\n error.message\r\n );\r\n }\r\n};\r\n\r\nconst recordLogonClick = async ({ linkUrl }) => {\r\n try {\r\n await initLibs();\r\n recordGA4LogonClick({ linkUrl });\r\n } catch (error) {\r\n logError(`Error recording logon click for ${linkUrl}`, error.message);\r\n }\r\n};\r\n\r\nconst recordRegisterClick = async ({ linkUrl }) => {\r\n try {\r\n await initLibs();\r\n recordGA4RegisterClick({ linkUrl });\r\n } catch (error) {\r\n logError(\r\n `Error recording register click for ${linkUrl}`,\r\n error.message\r\n );\r\n }\r\n};\r\n\r\nexport default {\r\n run,\r\n initLibs,\r\n addToCart,\r\n viewItemFbq,\r\n addPaymentInfo,\r\n closePopUp,\r\n popUpButtonClick,\r\n sendGoogleSurvey,\r\n sendRegistration,\r\n recordBannerClick,\r\n recordPromoImagesClick,\r\n recordInfoboxClick,\r\n recordNewsHomepageClick,\r\n recordHelpClick,\r\n recordCategoryClick,\r\n recordLogonClick,\r\n recordRegisterClick,\r\n};\r\n","import * as Sentry from '@sentry/browser';\r\nimport { JL } from 'jsnlog';\r\nimport { Integrations } from '@sentry/tracing';\r\nimport common from './common/common';\r\nconst configHelper = require('./config/index');\r\n\r\nconst initTracing = () => {\r\n const site = common.getSite();\r\n if (configHelper.getConfig().debug === false) {\r\n Sentry.init({\r\n dsn: configHelper.getConfig().tracingUrl,\r\n integrations: [new Integrations.BrowserTracing()],\r\n\r\n // Set tracesSampleRate to 1.0 to capture 100%\r\n // of transactions for performance monitoring.\r\n // We recommend adjusting this value in production\r\n tracesSampleRate: NODE_ENV.toLowerCase() === 'development' ? 1.0 : 0.5,\r\n environment: NODE_ENV,\r\n });\r\n Sentry.setTag('SITE', site);\r\n Sentry.setTag('getSiteUrl', common.getSiteUrl());\r\n Sentry.setTag('lang', common.getLang());\r\n Sentry.setTag('isTouch', common.isTouch());\r\n Sentry.setTag('isDesktop', common.isDesktop());\r\n }\r\n};\r\nlet initializedLoggers = [];\r\nconst _initJsNlog = ({ loggerName }) => {\r\n if (initializedLoggers.indexOf(loggerName) === -1) {\r\n const defaultLoggingUrl = window.$pathBase + 'jsnlog.logger';\r\n var appender = JL.createAjaxAppender('mycustomappender.' + loggerName);\r\n var consoleAppender = JL.createConsoleAppender(\r\n 'consoleAppender.' + loggerName\r\n );\r\n appender.setOptions({\r\n bufferSize: 80,\r\n maxBatchSize: 80,\r\n url: defaultLoggingUrl,\r\n });\r\n JL.setOptions({\r\n defaultAjaxUrl: defaultLoggingUrl,\r\n });\r\n JL(loggerName).setOptions({\r\n appenders: [appender, consoleAppender],\r\n });\r\n if (typeof window !== 'undefined') {\r\n let _oldOnErrorHandler = window.onerror || null;\r\n window.onerror = function (msg, url, line, column, error) {\r\n let sourceUrl =\r\n window && window.location && window.location.href\r\n ? `${url} window.location.href: ${window.location.href}`\r\n : url;\r\n JL('onerrorLogger').fatalException(\r\n {\r\n msg: 'Uncaught Exception',\r\n errorMsg: `onerror: ${msg}`,\r\n url: sourceUrl,\r\n 'line number': line,\r\n column: column,\r\n },\r\n error\r\n );\r\n if (_oldOnErrorHandler) {\r\n // eslint-disable-next-line prefer-rest-params\r\n return _oldOnErrorHandler.apply(this, arguments);\r\n }\r\n return false;\r\n };\r\n let _oldOnUnhandledRejectionHandler =\r\n window.onunhandledrejection || null;\r\n window.onunhandledrejection = function (event) {\r\n // How to test this handler: window.setTimeout(function() {throw new Error('abc')}, 0);\r\n let sourceUrl =\r\n window && window.location && window.location.href\r\n ? ` window.location.href: ${window.location.href}`\r\n : '';\r\n let reasonMessage =\r\n event.reason && event.reason.message\r\n ? event.reason.message\r\n : '';\r\n JL('onerrorLogger').fatal(\r\n `Reason message: ${reasonMessage} SourceUrl: ${sourceUrl}`\r\n );\r\n JL('onerrorLogger').fatalException(\r\n {\r\n msg: 'unhandledrejection',\r\n errorMsg: `onunhandledrejection: ${reasonMessage} SourceUrl: ${sourceUrl}`,\r\n },\r\n event.reason\r\n );\r\n if (_oldOnUnhandledRejectionHandler) {\r\n // eslint-disable-next-line prefer-rest-params\r\n return _oldOnUnhandledRejectionHandler.apply(\r\n this,\r\n arguments\r\n );\r\n }\r\n return false;\r\n };\r\n }\r\n initializedLoggers.push(loggerName);\r\n }\r\n};\r\nconst logDebug = function (...args) {\r\n _initJsNlog({ loggerName: 'jsnlogfile' });\r\n JL('jsnlogfile').debug(args);\r\n};\r\nconst logInfo = function (...args) {\r\n _initJsNlog({ loggerName: 'jsnlogfile' });\r\n JL('jsnlogfile').info(args);\r\n};\r\nconst logEvent = function (...args) {\r\n _initJsNlog({ loggerName: 'jsnlogfile' });\r\n _initJsNlog({ loggerName: 'jsnlogeventfile' });\r\n JL('jsnlogeventfile').debug(args);\r\n JL('jsnlogfile').debug(args);\r\n};\r\nconst logWarn = function (...args) {\r\n console.warn(args);\r\n _initJsNlog({ loggerName: 'jsnlogfile' });\r\n JL('jsnlogfile').warn(args);\r\n};\r\nconst logError = function (...args) {\r\n console.error(args);\r\n _initJsNlog({ loggerName: 'jsnlogfile' });\r\n JL('jsnlogfile').error(args);\r\n};\r\nexport { initTracing, logDebug, logInfo, logWarn, logError, logEvent };\r\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar consoleLogger = {\n type: 'logger',\n\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n var _console;\n\n /* eslint no-console: 0 */\n if (console && console[type]) (_console = console)[type].apply(_console, _toConsumableArray(args));\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n Logger.prototype.init = function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n };\n\n Logger.prototype.setDebug = function setDebug(bool) {\n this.debug = bool;\n };\n\n Logger.prototype.log = function log() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n };\n\n Logger.prototype.warn = function warn() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n };\n\n Logger.prototype.error = function error() {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n };\n\n Logger.prototype.deprecate = function deprecate() {\n for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n };\n\n Logger.prototype.forward = function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = '' + prefix + this.prefix + ' ' + args[0];\n return this.logger[lvl](args);\n };\n\n Logger.prototype.create = function create(moduleName) {\n return new Logger(this.logger, _extends({ prefix: this.prefix + ':' + moduleName + ':' }, this.options));\n };\n\n return Logger;\n}();\n\nexport default new Logger();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n EventEmitter.prototype.on = function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n _this.observers[event].push(listener);\n });\n return this;\n };\n\n EventEmitter.prototype.off = function off(event, listener) {\n var _this2 = this;\n\n if (!this.observers[event]) {\n return;\n }\n\n this.observers[event].forEach(function () {\n if (!listener) {\n delete _this2.observers[event];\n } else {\n var index = _this2.observers[event].indexOf(listener);\n if (index > -1) {\n _this2.observers[event].splice(index, 1);\n }\n }\n });\n };\n\n EventEmitter.prototype.emit = function emit(event) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(undefined, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n };\n\n return EventEmitter;\n}();\n\nexport default EventEmitter;","export function makeString(object) {\n if (object == null) return '';\n /* eslint prefer-template: 0 */\n return '' + object;\n}\n\nexport function copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nexport function setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\n\nexport function pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\n\nexport function getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\n\nexport function deepExtend(target, source, overwrite) {\n /* eslint no-restricted-syntax: 0 */\n for (var prop in source) {\n if (prop in target) {\n // If we reached a leaf string in target or source then replace with source or skip depending on the 'overwrite' switch\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n return target;\n}\n\nexport function regexEscape(str) {\n /* eslint no-useless-escape: 0 */\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n\n/* eslint-disable */\nvar _entityMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': '"',\n \"'\": ''',\n \"/\": '/'\n};\n/* eslint-enable */\n\nexport function escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport EventEmitter from './EventEmitter.js';\nimport * as utils from './utils.js';\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { ns: ['translation'], defaultNS: 'translation' };\n\n _classCallCheck(this, ResourceStore);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n return _this;\n }\n\n ResourceStore.prototype.addNamespaces = function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n };\n\n ResourceStore.prototype.removeNamespaces = function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n };\n\n ResourceStore.prototype.getResource = function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return utils.getPath(this.data, path);\n };\n\n ResourceStore.prototype.addResource = function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : { silent: false };\n\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n\n utils.setPath(this.data, path, value);\n\n if (!options.silent) this.emit('added', lng, ns, key, value);\n };\n\n ResourceStore.prototype.addResources = function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { silent: false };\n\n /* eslint no-restricted-syntax: 0 */\n for (var m in resources) {\n if (typeof resources[m] === 'string') this.addResource(lng, ns, m, resources[m], { silent: true });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n };\n\n ResourceStore.prototype.addResourceBundle = function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : { silent: false };\n\n var path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n\n var pack = utils.getPath(this.data, path) || {};\n\n if (deep) {\n utils.deepExtend(pack, resources, overwrite);\n } else {\n pack = _extends({}, pack, resources);\n }\n\n utils.setPath(this.data, path, pack);\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n };\n\n ResourceStore.prototype.removeResourceBundle = function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n\n this.emit('removed', lng, ns);\n };\n\n ResourceStore.prototype.hasResourceBundle = function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n };\n\n ResourceStore.prototype.getResourceBundle = function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n\n // COMPATIBILITY: remove extend in v2.1.0\n if (this.options.compatibilityAPI === 'v1') return _extends({}, this.getResource(lng, ns));\n\n return this.getResource(lng, ns);\n };\n\n ResourceStore.prototype.getDataByLanguage = function getDataByLanguage(lng) {\n return this.data[lng];\n };\n\n ResourceStore.prototype.toJSON = function toJSON() {\n return this.data;\n };\n\n return ResourceStore;\n}(EventEmitter);\n\nexport default ResourceStore;","export default {\n\n processors: {},\n\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n\n return value;\n }\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport baseLogger from './logger.js';\nimport EventEmitter from './EventEmitter.js';\nimport postProcessor from './postProcessor.js';\nimport * as utils from './utils.js';\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n utils.copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat'], services, _this);\n\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n Translator.prototype.changeLanguage = function changeLanguage(lng) {\n if (lng) this.language = lng;\n };\n\n Translator.prototype.exists = function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { interpolation: {} };\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n };\n\n Translator.prototype.extractFromKey = function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var namespaces = options.ns || this.options.defaultNS;\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n\n return {\n key: key,\n namespaces: namespaces\n };\n };\n\n Translator.prototype.translate = function translate(keys, options) {\n var _this2 = this;\n\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object' && this.options.overloadTranslationOptionHandler) {\n /* eslint prefer-rest-params: 0 */\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (!options) options = {};\n\n // non valid keys handling\n if (keys === undefined || keys === null || keys === '') return '';\n if (typeof keys === 'number') keys = String(keys);\n if (typeof keys === 'string') keys = [keys];\n\n // separators\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n // get namespace(s)\n\n var _extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _extractFromKey.key,\n namespaces = _extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n\n // return key on CIMode\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n // resolve from store\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n\n // object\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(joinArrays && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : 'key \\'' + key + ' (' + this.language + ')\\' returned an object instead of string.';\n }\n\n // if we got a separator we loop over children - else we just return object as is\n // as having it set to false means no hierarchy so no lookup for nested values\n if (keySeparator) {\n var copy = resType === '[object Array]' ? [] : {}; // apply child translation on a copy\n\n /* eslint no-restricted-syntax: 0 */\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = '' + resUsedKey + keySeparator + m;\n copy[m] = this.translate(deepKey, _extends({}, options, { joinArrays: false, ns: namespaces }));\n if (copy[m] === deepKey) copy[m] = res[m]; // if nothing found use orginal value as fallback\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && joinArrays && resType === '[object Array]') {\n // array special treatment\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options);\n } else {\n // string, empty or null\n var usedDefault = false;\n var usedKey = false;\n\n // fallback value\n if (!this.isValidLookup(res) && options.defaultValue !== undefined) {\n usedDefault = true;\n\n if (options.count !== undefined) {\n var suffix = this.pluralResolver.getSuffix(lng, options.count);\n res = options['defaultValue' + suffix];\n }\n if (!res) res = options.defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n // save missing\n var updateMissing = options.defaultValue && options.defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? options.defaultValue : res);\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n }\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (l) {\n var plurals = _this2.pluralResolver.getPluralFormsOfKey(l, key);\n\n plurals.forEach(function (p) {\n return send([l], p);\n });\n });\n } else {\n send(lngs, key);\n }\n }\n }\n\n // extend\n res = this.extendTranslation(res, keys, options, resolved);\n\n // append namespace if still key\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = namespace + ':' + key;\n\n // parseMissingKeyHandler\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n // return\n return res;\n };\n\n Translator.prototype.extendTranslation = function extendTranslation(res, key, options, resolved) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, { resolved: resolved });\n } else if (!options.skipInterpolation) {\n // i18next.parsing\n if (options.interpolation) this.interpolator.init(_extends({}, options, { interpolation: _extends({}, this.options.interpolation, options.interpolation) }));\n\n // interpolate\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _extends({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n // nesting\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n return _this3.translate.apply(_this3, arguments);\n }, options);\n\n if (options.interpolation) this.interpolator.reset();\n }\n\n // post process\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, options, this);\n }\n\n return res;\n };\n\n Translator.prototype.resolve = function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var found = void 0;\n var usedKey = void 0;\n var usedLng = void 0;\n var usedNS = void 0;\n\n if (typeof keys === 'string') keys = [keys];\n\n // forEach possible key\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n var extracted = _this4.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix = void 0;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n\n // fallback for plural if context not found\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n\n // get key for context if needed\n if (needsContextHandling) finalKeys.push(finalKey += '' + _this4.options.contextSeparator + options.context);\n\n // get key for plural if needed\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n // iterate over finalKeys starting with most specific pluralkey (-> contextkey only) -> singularkey only\n var possibleKey = void 0;\n /* eslint no-cond-assign: 0 */\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n\n return { res: found, usedKey: usedKey, usedLng: usedLng, usedNS: usedNS };\n };\n\n Translator.prototype.isValidLookup = function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n };\n\n Translator.prototype.getResource = function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n };\n\n return Translator;\n}(EventEmitter);\n\nexport default Translator;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport baseLogger from './logger.js';\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n\n this.whitelist = this.options.whitelist || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n LanguageUtil.prototype.getScriptPartFromCode = function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n return this.formatLanguageCode(p.join('-'));\n };\n\n LanguageUtil.prototype.getLanguagePartFromCode = function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n };\n\n LanguageUtil.prototype.formatLanguageCode = function formatLanguageCode(code) {\n // http://www.iana.org/assignments/language-tags/language-tags.xhtml\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n\n // if lenght 2 guess it's a country\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n };\n\n LanguageUtil.prototype.isWhitelisted = function isWhitelisted(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitWhitelist) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.whitelist || !this.whitelist.length || this.whitelist.indexOf(code) > -1;\n };\n\n LanguageUtil.prototype.getFallbackCodes = function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n\n if (!code) return fallbacks.default || [];\n\n // asume we have an object defining fallbacks\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks.default;\n\n return found || [];\n };\n\n LanguageUtil.prototype.toResolveHierarchy = function toResolveHierarchy(code, fallbackCode) {\n var _this = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\n if (_this.isWhitelisted(c)) {\n codes.push(c);\n } else {\n _this.logger.warn('rejecting non-whitelisted language code: ' + c);\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this.formatLanguageCode(fc));\n });\n\n return codes;\n };\n\n return LanguageUtil;\n}();\n\nexport default LanguageUtil;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport baseLogger from './logger.js';\n\n// definition http://translate.sourceforge.net/wiki/l10n/pluralforms\n/* eslint-disable */\nvar sets = [{ lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'], nr: [1, 2], fc: 1 }, { lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'he', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'], nr: [1, 2], fc: 2 }, { lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'], nr: [1], fc: 3 }, { lngs: ['be', 'bs', 'dz', 'hr', 'ru', 'sr', 'uk'], nr: [1, 2, 5], fc: 4 }, { lngs: ['ar'], nr: [0, 1, 2, 3, 11, 100], fc: 5 }, { lngs: ['cs', 'sk'], nr: [1, 2, 5], fc: 6 }, { lngs: ['csb', 'pl'], nr: [1, 2, 5], fc: 7 }, { lngs: ['cy'], nr: [1, 2, 3, 8], fc: 8 }, { lngs: ['fr'], nr: [1, 2], fc: 9 }, { lngs: ['ga'], nr: [1, 2, 3, 7, 11], fc: 10 }, { lngs: ['gd'], nr: [1, 2, 3, 20], fc: 11 }, { lngs: ['is'], nr: [1, 2], fc: 12 }, { lngs: ['jv'], nr: [0, 1], fc: 13 }, { lngs: ['kw'], nr: [1, 2, 3, 4], fc: 14 }, { lngs: ['lt'], nr: [1, 2, 10], fc: 15 }, { lngs: ['lv'], nr: [1, 2, 0], fc: 16 }, { lngs: ['mk'], nr: [1, 2], fc: 17 }, { lngs: ['mnk'], nr: [0, 1, 2], fc: 18 }, { lngs: ['mt'], nr: [1, 2, 11, 20], fc: 19 }, { lngs: ['or'], nr: [2, 1], fc: 2 }, { lngs: ['ro'], nr: [1, 2, 20], fc: 20 }, { lngs: ['sl'], nr: [5, 1, 2, 3], fc: 21 }];\n\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n === 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n/* eslint-enable */\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n\n this.logger = baseLogger.create('pluralResolver');\n\n this.rules = createRules();\n }\n\n PluralResolver.prototype.addRule = function addRule(lng, obj) {\n this.rules[lng] = obj;\n };\n\n PluralResolver.prototype.getRule = function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n };\n\n PluralResolver.prototype.needsPlural = function needsPlural(code) {\n var rule = this.getRule(code);\n\n return rule && rule.numbers.length > 1;\n };\n\n PluralResolver.prototype.getPluralFormsOfKey = function getPluralFormsOfKey(code, key) {\n var _this = this;\n\n var ret = [];\n\n var rule = this.getRule(code);\n\n if (!rule) return ret;\n\n rule.numbers.forEach(function (n) {\n var suffix = _this.getSuffix(code, n);\n ret.push('' + key + suffix);\n });\n\n return ret;\n };\n\n PluralResolver.prototype.getSuffix = function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n // if (rule.numbers.length === 1) return ''; // only singular\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n // special treatment for lngs only having singular and plural\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n // COMPATIBILITY JSON\n // v1\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return '_plural_' + suffix.toString();\n return returnSuffix();\n } else if ( /* v2 */this.options.compatibilityJSON === 'v2' && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n } else if ( /* v3 - gettext index */this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn('no plural rule found for: ' + code);\n return '';\n };\n\n return PluralResolver;\n}();\n\nexport default PluralResolver;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport * as utils from './utils.js';\nimport baseLogger from './logger.js';\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n\n this.init(options, true);\n }\n\n /* eslint no-param-reassign: 0 */\n\n\n Interpolator.prototype.init = function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var reset = arguments[1];\n\n if (reset) {\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n }\n if (!options.interpolation) options.interpolation = { escapeValue: true };\n\n var iOpts = options.interpolation;\n\n this.escape = iOpts.escape !== undefined ? iOpts.escape : utils.escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n\n this.prefix = iOpts.prefix ? utils.regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? utils.regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n\n this.nestingPrefix = iOpts.nestingPrefix ? utils.regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || utils.regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? utils.regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || utils.regexEscape(')');\n\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n\n // the regexp\n this.resetRegExp();\n };\n\n Interpolator.prototype.reset = function reset() {\n if (this.options) this.init(this.options);\n };\n\n Interpolator.prototype.resetRegExp = function resetRegExp() {\n // the regexp\n var regexpStr = this.prefix + '(.+?)' + this.suffix;\n this.regexp = new RegExp(regexpStr, 'g');\n\n var regexpUnescapeStr = '' + this.prefix + this.unescapePrefix + '(.+?)' + this.unescapeSuffix + this.suffix;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n\n var nestingRegexpStr = this.nestingPrefix + '(.+?)' + this.nestingSuffix;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n };\n\n Interpolator.prototype.interpolate = function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match = void 0;\n var value = void 0;\n var replaces = void 0;\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) return utils.getPath(data, key);\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n\n return _this.format(utils.getPath(data, k), f, lng);\n };\n\n this.resetRegExp();\n\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n\n replaces = 0;\n // unescape if has unescapePrefix/Suffix\n /* eslint no-cond-assign: 0 */\n while (match = this.regexpUnescape.exec(str)) {\n value = handleFormat(match[1].trim());\n str = str.replace(match[0], value);\n this.regexpUnescape.lastIndex = 0;\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n replaces = 0;\n // regular escape on demand\n while (match = this.regexp.exec(str)) {\n value = handleFormat(match[1].trim());\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match);\n value = typeof temp === 'string' ? temp : '';\n } else {\n this.logger.warn('missed to pass in variable ' + match[1] + ' for interpolating ' + str);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = utils.makeString(value);\n }\n value = this.escapeValue ? regexSafe(this.escape(value)) : regexSafe(value);\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n return str;\n };\n\n Interpolator.prototype.nest = function nest(str, fc) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var match = void 0;\n var value = void 0;\n\n var clonedOptions = _extends({}, options);\n clonedOptions.applyPostProcessor = false; // avoid post processing on nested lookup\n\n // if value is something like \"myKey\": \"lorem $(anotherKey, { \"count\": {{aValueInOptions}} })\"\n function handleHasOptions(key, inheritedOptions) {\n if (key.indexOf(',') < 0) return key;\n\n var p = key.split(',');\n key = p.shift();\n var optionsString = p.join(',');\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n\n if (inheritedOptions) clonedOptions = _extends({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.error('failed parsing options string in nesting for key ' + key, e);\n }\n\n return key;\n }\n\n // regular escape on demand\n while (match = this.nestingRegexp.exec(str)) {\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n\n // is only the nesting key (key1 = '$(key2)') return the value without stringify\n if (value && match[0] === str && typeof value !== 'string') return value;\n\n // no string to include or empty\n if (typeof value !== 'string') value = utils.makeString(value);\n if (!value) {\n this.logger.warn('missed to resolve ' + match[1] + ' for nesting ' + str);\n value = '';\n }\n // Nested keys should not be escaped by default #854\n // value = this.escapeValue ? regexSafe(utils.escape(value)) : regexSafe(value);\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n };\n\n return Interpolator;\n}();\n\nexport default Interpolator;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport * as utils from './utils.js';\nimport baseLogger from './logger.js';\nimport EventEmitter from './EventEmitter.js';\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n _this.backend = backend;\n _this.store = store;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n\n Connector.prototype.queueLoad = function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n // find what needs to be loaded\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n\n namespaces.forEach(function (ns) {\n var name = lng + '|' + ns;\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2; // loaded\n } else if (_this2.state[name] < 0) {\n // nothing to do for err\n } else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1; // pending\n\n hasAllNamespaces = false;\n\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n };\n\n Connector.prototype.loaded = function loaded(name, err, data) {\n var _name$split = name.split('|'),\n _name$split2 = _slicedToArray(_name$split, 2),\n lng = _name$split2[0],\n ns = _name$split2[1];\n\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n // set loaded\n this.state[name] = err ? -1 : 2;\n\n // consolidated loading done in this run - only emit once for a loaded namespace\n var loaded = {};\n\n // callback if ready\n this.queue.forEach(function (q) {\n utils.pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n // only do once per loaded -> this.emit('loaded', q.loaded);\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n\n /* eslint no-param-reassign: 0 */\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n\n // emit consolidated loaded event\n this.emit('loaded', loaded);\n\n // remove done load requests\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n };\n\n Connector.prototype.read = function read(lng, ns, fcName) {\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n var _this3 = this;\n\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n var callback = arguments[5];\n\n if (!lng.length) return callback(null, {}); // noting to load\n\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data /* = retryFlag */ && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n });\n };\n\n /* eslint consistent-return: 0 */\n\n\n Connector.prototype.prepareLoading = function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments[3];\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback(); // nothing to load and no pendings...callback now\n return null; // pendings will trigger callback\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n };\n\n Connector.prototype.load = function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n };\n\n Connector.prototype.reload = function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, { reload: true }, callback);\n };\n\n Connector.prototype.loadOne = function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var _name$split3 = name.split('|'),\n _name$split4 = _slicedToArray(_name$split3, 2),\n lng = _name$split4[0],\n ns = _name$split4[1];\n\n this.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) _this5.logger.warn(prefix + 'loading namespace ' + ns + ' for language ' + lng + ' failed', err);\n if (!err && data) _this5.logger.log(prefix + 'loaded namespace ' + ns + ' for language ' + lng, data);\n\n _this5.loaded(name, err, data);\n });\n };\n\n Connector.prototype.saveMissing = function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null /* unused callback */, _extends({}, options, { isUpdate: isUpdate }));\n }\n\n // write to store to avoid resending\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n };\n\n return Connector;\n}(EventEmitter);\n\nexport default Connector;","export { get };\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false, // string or array of namespaces\n\n whitelist: false, // array with whitelisted languages\n nonExplicitWhitelist: false,\n load: 'all', // | currentOnly | languageOnly\n preload: false, // array with preload languages\n\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n\n saveMissing: false, // enable to send missing values\n updateMissing: false, // enable to update default values if different from translated value (only useful on initial development, or when keeping code as source of truth)\n saveMissingTo: 'fallback', // 'current' || 'all'\n saveMissingPlurals: true, // will save all forms not only singular key\n missingKeyHandler: false, // function(lng, ns, key, fallbackValue) -> override if prefer on handling\n missingInterpolationHandler: false, // function(str, match)\n\n postProcess: false, // string or array of postProcessor names\n returnNull: true, // allows null value as valid translation\n returnEmptyString: true, // allows empty string value as valid translation\n returnObjects: false,\n joinArrays: false, // or string to join array\n returnedObjectHandler: function returnedObjectHandler() {}, // function(key, value, options) triggered if key returns object but returnObjects is set to false\n parseMissingKeyHandler: false, // function(key) parsed a key that was not found in t() before returning\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (args[1]) ret.defaultValue = args[1];\n if (args[2]) ret.tDescription = args[2];\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n // prefixEscaped: '{{',\n // suffixEscaped: '}}',\n // unescapeSuffix: '',\n unescapePrefix: '-',\n\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n // nestingPrefixEscaped: '$t(',\n // nestingSuffixEscaped: ')',\n // defaultVariables: undefined // object that can have values to interpolate on - extends passed in interpolation data\n maxReplaces: 1000 // max replaces to prevent endless loop\n }\n };\n}\n\n/* eslint no-param-reassign: 0 */\nexport function transformOptions(options) {\n // create namespace object if namespace is passed in as string\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n // extend whitelist with cimode\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n return options;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport baseLogger from './logger.js';\nimport EventEmitter from './EventEmitter.js';\nimport ResourceStore from './ResourceStore.js';\nimport Translator from './Translator.js';\nimport LanguageUtils from './LanguageUtils.js';\nimport PluralResolver from './PluralResolver.js';\nimport Interpolator from './Interpolator.js';\nimport BackendConnector from './BackendConnector.js';\nimport { get as getDefaults, transformOptions } from './defaults.js';\nimport postProcessor from './postProcessor.js';\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n _classCallCheck(this, I18n);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = { external: [] };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n var _ret;\n\n // https://github.com/i18next/i18next/issues/879\n if (!_this.options.initImmediate) return _ret = _this.init(options, callback), _possibleConstructorReturn(_this, _ret);\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n\n I18n.prototype.init = function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n this.options = _extends({}, getDefaults(), this.options, transformOptions(options));\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n // init services\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtils(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, { prepend: this.options.pluralSeparator, compatibilityJSON: this.options.compatibilityJSON, simplifyPluralSuffix: this.options.simplifyPluralSuffix });\n s.interpolator = new Interpolator(this.options);\n\n s.backendConnector = new BackendConnector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n // pipe events from backendConnector\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n // pipe events from translator\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n // append api\n var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _store;\n\n return (_store = _this2.store)[fcName].apply(_store, arguments);\n };\n });\n\n var load = function load() {\n _this2.changeLanguage(_this2.options.lng, function (err, t) {\n _this2.isInitialized = true;\n _this2.logger.log('initialized', _this2.options);\n _this2.emit('initialized', _this2.options);\n\n callback(err, t);\n });\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return this;\n };\n\n /* eslint consistent-return: 0 */\n\n\n I18n.prototype.loadResources = function loadResources() {\n var _this3 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (!this.options.resources) {\n if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode\n\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!this.language) {\n // at least load fallbacks in this case\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(this.language);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, callback);\n } else {\n callback(null);\n }\n };\n\n I18n.prototype.reloadResources = function reloadResources(lngs, ns, callback) {\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = function callback() {};\n this.services.backendConnector.reload(lngs, ns, callback);\n };\n\n I18n.prototype.use = function use(module) {\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n };\n\n I18n.prototype.changeLanguage = function changeLanguage(lng, callback) {\n var _this4 = this;\n\n var done = function done(err, l) {\n _this4.translator.changeLanguage(l);\n\n if (l) {\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n }\n\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n };\n\n I18n.prototype.getFixedT = function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n for (var _len3 = arguments.length, rest = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n var options = _extends({}, opts);\n if ((typeof opts === 'undefined' ? 'undefined' : _typeof(opts)) !== 'object') {\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n return fixedT;\n };\n\n I18n.prototype.t = function t() {\n var _translator;\n\n return this.translator && (_translator = this.translator).translate.apply(_translator, arguments);\n };\n\n I18n.prototype.exists = function exists() {\n var _translator2;\n\n return this.translator && (_translator2 = this.translator).exists.apply(_translator2, arguments);\n };\n\n I18n.prototype.setDefaultNamespace = function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n };\n\n I18n.prototype.loadNamespaces = function loadNamespaces(ns, callback) {\n var _this6 = this;\n\n if (!this.options.ns) return callback && callback();\n if (typeof ns === 'string') ns = [ns];\n\n ns.forEach(function (n) {\n if (_this6.options.ns.indexOf(n) < 0) _this6.options.ns.push(n);\n });\n\n this.loadResources(callback);\n };\n\n I18n.prototype.loadLanguages = function loadLanguages(lngs, callback) {\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n // Exit early if all given languages are already preloaded\n if (!newLngs.length) return callback();\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(callback);\n };\n\n I18n.prototype.dir = function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n };\n\n /* eslint class-methods-use-this: 0 */\n\n\n I18n.prototype.createInstance = function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n return new I18n(options, callback);\n };\n\n I18n.prototype.cloneInstance = function cloneInstance() {\n var _this7 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _extends({}, this.options, options, { isClone: true });\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this7[m];\n });\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options; // sync options\n\n return clone;\n };\n\n return I18n;\n}(EventEmitter);\n\nexport default new I18n();","import i18next from 'i18next';\r\nimport keys from 'lodash/keys';\r\nimport reduce from 'lodash/reduce';\r\nimport common from './common';\r\nimport commonTranslation from '../translations/common';\r\nimport reviewImages from '../translations/reviewImages';\r\nimport customFeesLordgun from '../translations/customFees.lordgun';\r\nimport customFeesRunkd from '../translations/customFees.runkd';\r\nimport customFeesInwild from '../translations/customFees.inwild';\r\nimport cartStep1 from '../translations/cartStep1';\r\nimport cartStep2Lordgun from '../translations/cartStep2.lordgun';\r\nimport cartStep2Inwild from '../translations/cartStep2.inwild';\r\nimport cartStep2Runkd from '../translations/cartStep2.runkd';\r\nimport reassortmentNotification from '../translations/reassortmentNotification';\r\nimport paymentInfo from '../translations/paymentInfo';\r\nimport nicknameValidator from '../translations/nicknameValidator';\r\nimport disbursementSimulator from '../translations/disbursementSimulator';\r\nimport cookieConsentLordgun from '../translations/cookieConsent.lordgun';\r\nimport cookieConsentRunkd from '../translations/cookieConsent.runkd';\r\nimport cookieConsentInwild from '../translations/cookieConsent.inwild';\r\nimport socialLinks from '../translations/socialLinks';\r\nimport blog from '../translations/blog/blog';\r\nimport productCard from '../translations/productCard';\r\nimport recentlyViewedProducts from '../translations/product/recentlyViewedProducts';\r\nimport productDetail from '../translations/product/detail';\r\nimport carousel from '../translations/carousel';\r\nimport topBrands from '../translations/brands/topBrands';\r\nimport cartRightSummary from '../translations/cartRightSummary';\r\nimport topBlogPosts from '../translations/blog/topBlogPosts';\r\nimport serviceLinks from '../translations/serviceLinks';\r\nimport reviews from '../translations/reviews/reviews';\r\nimport questions from '../translations/questionAndAnswers/questions';\r\nimport feedbacks from '../translations/feedbacks/feedbacks';\r\nimport bannerRedirectLordgun from '../translations/bannerRedirect.lordgun';\r\nimport bannerRedirectRunkd from '../translations/bannerRedirect.runkd';\r\nimport bannerRedirectInwild from '../translations/bannerRedirect.inwild';\r\nimport form from '../translations/form/form';\r\nimport home from '../translations/home/homeTranslations';\r\nimport orders from '../translations/orders/orders';\r\nimport returns from '../translations/returns/returns';\r\nimport search from '../translations/search';\r\nimport newsletter from '../translations/newsletter';\r\nimport lowerPrice from '../translations/product/lowerPrice';\r\n\r\nconst configHelper = require('../config/index.js');\r\n\r\nlet initialized = false;\r\nconst commonTranslations = [\r\n { reviewImages },\r\n { common: commonTranslation },\r\n { cartStep1 },\r\n { reassortmentNotification },\r\n { nicknameValidator },\r\n { disbursementSimulator },\r\n { paymentInfo },\r\n { socialLinks },\r\n { blog },\r\n { productCard },\r\n { recentlyViewedProducts },\r\n { carousel },\r\n { topBrands },\r\n { cartRightSummary },\r\n { topBlogPosts },\r\n { serviceLinks },\r\n { productDetail },\r\n { reviews },\r\n { questions },\r\n { feedbacks },\r\n { form },\r\n { home },\r\n { orders },\r\n { returns },\r\n { search },\r\n { newsletter },\r\n { lowerPrice },\r\n];\r\nconst translationsForLordgun = commonTranslations.concat([\r\n { customFees: customFeesLordgun },\r\n { cookieConsent: cookieConsentLordgun },\r\n { bannerRedirect: bannerRedirectLordgun },\r\n { cartStep2: cartStep2Lordgun },\r\n]);\r\nconst translationsForRunkd = commonTranslations.concat([\r\n { customFees: customFeesRunkd },\r\n { cookieConsent: cookieConsentRunkd },\r\n { bannerRedirect: bannerRedirectRunkd },\r\n { cartStep2: cartStep2Runkd },\r\n]);\r\nconst translationsForInwild = commonTranslations.concat([\r\n { customFees: customFeesInwild },\r\n { cookieConsent: cookieConsentInwild },\r\n { bannerRedirect: bannerRedirectInwild },\r\n { cartStep2: cartStep2Inwild },\r\n]);\r\nlet translations;\r\n\r\nswitch (common.getSite()) {\r\n case 'lordgun':\r\n translations = translationsForLordgun;\r\n break;\r\n case 'runkd':\r\n translations = translationsForRunkd;\r\n break;\r\n case 'inwild':\r\n translations = translationsForInwild;\r\n break;\r\n}\r\n\r\nconst getMappedTranslation = (culture, translations) => {\r\n const mappedTranslation = reduce(\r\n translations,\r\n (acc, translation) => {\r\n let key = keys(translation)[0];\r\n acc[key] = translation[key][culture];\r\n return acc;\r\n },\r\n {}\r\n );\r\n return mappedTranslation;\r\n};\r\n\r\nconst init = () => {\r\n if (initialized === false) {\r\n let staticResources = reduce(\r\n configHelper.getConfig().supportedCultures(),\r\n (acc, culture) => {\r\n acc[culture] = {\r\n translation: getMappedTranslation(culture, translations),\r\n };\r\n return acc;\r\n },\r\n {}\r\n );\r\n i18next.init({\r\n lng: common.getLang(),\r\n resources: staticResources,\r\n });\r\n initialized = true;\r\n }\r\n return initialized;\r\n};\r\n\r\nexport default {\r\n get: (key) => {\r\n if (init()) {\r\n const translation = i18next.t(key);\r\n return translation;\r\n }\r\n throw new Error('translateService not initialized');\r\n },\r\n interpolate: (key, params) => {\r\n if (init()) {\r\n let translation = i18next.t(key);\r\n translation = _.reduce(\r\n _.keys(params),\r\n (acc, paramKey) => {\r\n acc = _.replace(\r\n acc,\r\n `{${paramKey}}`,\r\n `${params[paramKey]}`\r\n );\r\n return acc;\r\n },\r\n translation\r\n );\r\n return translation;\r\n }\r\n throw new Error('translateService not initialized');\r\n },\r\n};\r\n","import i18next from './i18next.js';\n\nexport default i18next;\n\nexport var changeLanguage = i18next.changeLanguage.bind(i18next);\nexport var cloneInstance = i18next.cloneInstance.bind(i18next);\nexport var createInstance = i18next.createInstance.bind(i18next);\nexport var dir = i18next.dir.bind(i18next);\nexport var exists = i18next.exists.bind(i18next);\nexport var getFixedT = i18next.getFixedT.bind(i18next);\nexport var init = i18next.init.bind(i18next);\nexport var loadLanguages = i18next.loadLanguages.bind(i18next);\nexport var loadNamespaces = i18next.loadNamespaces.bind(i18next);\nexport var loadResources = i18next.loadResources.bind(i18next);\nexport var off = i18next.off.bind(i18next);\nexport var on = i18next.on.bind(i18next);\nexport var setDefaultNamespace = i18next.setDefaultNamespace.bind(i18next);\nexport var t = i18next.t.bind(i18next);\nexport var use = i18next.use.bind(i18next);","import React, { useState } from \"react\";\r\nimport Yacc from \"../yacc.js\";\r\nimport translateService from \"../common/translateService\";\r\nimport cookieService from \"../services/cookieService\";\r\n\r\nimport \"./CookieConsentEditor.scss\";\r\nimport gtagAndFqbInitService from \"../services/marketingAndAnalytics/gtagAndFqbInitService.js\";\r\nimport consentModePrivacyService from \"../services/marketingAndAnalytics/consentModePrivacyService.js\";\r\nfunction CookieConsentEditor() {\r\n var prefix = \"cookieConsent\";\r\n\r\n var yaccInstance = new Yacc({\r\n cookiePageUrl: cookiePageUrl,\r\n });\r\n yaccInstance.handleBanner();\r\n\r\n const cookieValues = cookieService.getDecodedCookieConsentValues();\r\n\r\n const [data, setData] = useState({\r\n showBanner:\r\n cookieValues === null\r\n ? true\r\n : cookieValues.ShowBanner === null ||\r\n cookieValues.ShowBanner === undefined\r\n ? true\r\n : cookieValues.ShowBanner,\r\n firstParty: true,\r\n thirdParty: cookieService.getThirdParty(),\r\n marketingParty: cookieService.getMarketingParty(),\r\n });\r\n\r\n function handleClick(e, cookieType) {\r\n e.preventDefault();\r\n if (cookieType === \"thirdPartyAccepted\") {\r\n var accept = data.thirdParty;\r\n let newCookies = {\r\n ...data,\r\n thirdParty: !accept,\r\n marketingParty: accept === true ? false : data.marketingParty, // se sto togliendo autorizzazione 3rdParty, tolgo anche marketingParty\r\n };\r\n cookieService.setCookieConsent(newCookies);\r\n setData(newCookies);\r\n }\r\n if (cookieType === \"marketingPartyAccepted\") {\r\n var accept = !data.marketingParty;\r\n let newCookies = {\r\n ...data,\r\n thirdParty: accept === true ? true : data.thirdParty, // se sto mettendo marketing, metto anche 3rdParty\r\n marketingParty: accept,\r\n };\r\n gtagAndFqbInitService.initLibs().then(({ gtag }) => {\r\n consentModePrivacyService.setConsent({ gtag, accept });\r\n });\r\n cookieService.setCookieConsent(newCookies);\r\n setData(newCookies);\r\n }\r\n }\r\n\r\n const consent = translateService.get(`common.consent`);\r\n\r\n const firstParty = translateService.get(`${prefix}.firstParty`);\r\n\r\n const firstPartyAccepted = translateService.get(\r\n `${prefix}.firstPartyAccepted`\r\n );\r\n const firstPartyAcceptedExplanation = translateService.get(\r\n `${prefix}.firstPartyAcceptedExplanation`\r\n );\r\n\r\n const marketingParty = translateService.get(`${prefix}.marketingParty`);\r\n const marketingPartyAccepted = translateService.get(\r\n `${prefix}.marketingPartyAccepted`\r\n );\r\n const marketingPartyAcceptedExplanation = translateService.get(\r\n `${prefix}.marketingPartyAcceptedExplanation`\r\n );\r\n\r\n const thirdParty = translateService.get(`${prefix}.thirdParty`);\r\n const thirdPartyAccepted = translateService.get(\r\n `${prefix}.thirdPartyAccepted`\r\n );\r\n const thirdPartyAcceptedExplanation = translateService.get(\r\n `${prefix}.thirdPartyAcceptedExplanation`\r\n );\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n {firstParty}\r\n \r\n
    \r\n
  • \r\n handleClick(e, \"firstPartyAccepted\")}>\r\n {consent} \r\n \r\n
  • \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {marketingParty}\r\n \r\n
    \r\n
  • \r\n handleClick(e, \"marketingPartyAccepted\")}>\r\n {consent} \r\n \r\n
  • \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {thirdParty}\r\n \r\n
    \r\n
  • \r\n handleClick(e, \"thirdPartyAccepted\")}>\r\n {consent} \r\n \r\n
  • \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\nexport default CookieConsentEditor;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport _ from 'lodash';\r\n\r\nimport CookieConsentEditor from '../../components/CookieConsentEditor.jsx';\r\n\r\nconst cookieConsentEditor = document.getElementById('cookie-consent-editor');\r\nif (cookieConsentEditor !== null && cookieConsentEditor !== undefined) {\r\n ReactDOM.render(, cookieConsentEditor);\r\n}","import common from './common/common';\r\nimport cookieService from './services/cookieService.js';\r\nimport consentModePrivacyService from './services/marketingAndAnalytics/consentModePrivacyService.js';\r\nimport gtagAndFqbInitService from './services/marketingAndAnalytics/gtagAndFqbInitService.js';\r\nimport marketingAndAnalyticsService from './services/marketingAndAnalytics/marketingAndAnalyticsService.js';\r\nimport { logError } from './tracing.js';\r\n/*!\r\n * YACC (Yet Another Cookie Consent plugin) - Handle the EU cookie law with pure framework agnostic javascript\r\n */\r\n\r\nif (!Function.prototype.bind) {\r\n Function.prototype.bind = function (oThis) {\r\n if (typeof this !== 'function')\r\n throw new TypeError(\r\n 'Function.prototype.bind - what is trying to be bound is not callable'\r\n );\r\n var aArgs = Array.prototype.slice.call(arguments, 1),\r\n fToBind = this,\r\n fNOP = function () {},\r\n fBound = function () {\r\n return fToBind.apply(\r\n this instanceof fNOP && oThis ? this : oThis,\r\n aArgs.concat(Array.prototype.slice.call(arguments))\r\n );\r\n };\r\n fNOP.prototype = this.prototype;\r\n fBound.prototype = new fNOP();\r\n return fBound;\r\n };\r\n}\r\n\r\nclass Yacc {\r\n constructor(opts) {\r\n const extendDefaults = (source, properties) => {\r\n var property;\r\n for (property in properties) {\r\n if (properties.hasOwnProperty(property))\r\n source[property] = properties[property];\r\n }\r\n return source;\r\n };\r\n\r\n this.cookie = cookieService.getDefaultCookieConsentValues();\r\n\r\n const documentLang = common.getLang();\r\n var defaults = {\r\n debug: true,\r\n cookieExpirationDays: 180, // 6 mesi\r\n cookiePageUrl: '/cookies.html',\r\n culture: documentLang.includes('-')\r\n ? documentLang.split('-')[0]\r\n : documentLang,\r\n };\r\n this.options = defaults;\r\n if (opts && typeof opts === 'object')\r\n this.options = extendDefaults(defaults, opts);\r\n this.#log(this.options);\r\n\r\n this.#initialize(this.options);\r\n this.#log('Module loaded');\r\n }\r\n\r\n //Private methods ////////////////////////////////////////////////////////////////////////////\r\n\r\n #isCookiesPolicyPage(cookiePageUrl) {\r\n return window.location.pathname === cookiePageUrl;\r\n }\r\n\r\n #log() {\r\n if (this.options.debug) console.log(...arguments);\r\n }\r\n\r\n #error() {\r\n console.error(...arguments);\r\n logError(...arguments);\r\n }\r\n\r\n #initialize(options) {\r\n /*jshint validthis:true */\r\n\r\n const initializeBannerNoCookies = (options) => {\r\n /*jshint validthis:true */\r\n\r\n const createBannerNoCookiesText = (culture) => {\r\n const bannerNoCookiesText = {\r\n it: '',\r\n en: '',\r\n de: '',\r\n es: '',\r\n fr: '',\r\n };\r\n let message = bannerNoCookiesText[culture]\r\n ? bannerNoCookiesText[culture]\r\n : bannerNoCookiesText.en;\r\n return message;\r\n };\r\n\r\n var banner = document.getElementById('bannerNoCookies');\r\n this.#log('Showing the no cookies banner...');\r\n if (banner === null) {\r\n banner = document.createElement('div');\r\n banner.setAttribute('id', 'bannerNoCookies');\r\n banner.innerHTML = createBannerNoCookiesText(options.culture);\r\n document.body.appendChild(banner);\r\n this.#log('...no cookies banner created');\r\n } else\r\n this.#log(\r\n '...no cookies banner already present. Doing nothing.'\r\n );\r\n };\r\n\r\n if (!cookieService.cookiesEnabled()) {\r\n this.#log('Cookies are not enabled...');\r\n //it is a waste to bind javascript to links and scroll, knowing that we cannot save the cookie.\r\n this.cookie.firstParty = false;\r\n this.cookie.thirdParty = false;\r\n this.cookie.showBanner = false;\r\n initializeBannerNoCookies(options);\r\n marketingAndAnalyticsService.initLibs().then(({gtag})=> {\r\n consentModePrivacyService.setDefault({gtag});\r\n });\r\n } else {\r\n this.#log('Cookies are enabled...');\r\n this.#getCookie();\r\n this.#initializeProperties();\r\n this.cookie.showBanner = this.#isGoogleBot()\r\n ? false\r\n : this.cookie.showBanner;\r\n this.handleBanner();\r\n }\r\n }\r\n\r\n #isGoogleBot() {\r\n var isGoogleBot =\r\n navigator.userAgent !== undefined\r\n ? /googlebot/i.test(navigator.userAgent)\r\n : false;\r\n this.#log('Is GoogleBot? ' + isGoogleBot);\r\n return isGoogleBot;\r\n }\r\n\r\n handleBanner() {\r\n /*jshint validthis:true */\r\n if (this.#isCookiesPolicyPage(this.options.cookiePageUrl)) {\r\n this.#log('In cookies policy page, so no need to show the banner');\r\n return;\r\n }\r\n\r\n const createBannerText = ({\r\n culture,\r\n buttonOkId,\r\n buttonCloseId,\r\n cookiePageUrl,\r\n }) => {\r\n let bannerText = {\r\n it: `
Questo sito utilizza cookie, anche di terze parti, per abilitare le funzionalità del sito necessarie, tra cui analisi, targeting e personalizzazione. 
\r\n Per saperne di più o modificare le tue preferenze clicca qui.\r\n
\r\n
\r\n Accetta\r\n Rifiuta\r\n
\r\n
\r\n
`,\r\n en: `
This site uses cookies, including third party cookies, to enable necessary site functionality, including analytics, targeting and personalisation.
\r\n To find out more or change your preferences click here.\r\n
\r\n
\r\n Accept\r\n Reject\r\n
\r\n
\r\n
`,\r\n de:\r\n '
Diese Seite nutzt Cookies, einschließlich Cookies von Dritten, um Ihre Browser-Erfahrung zu verbessern. Wenn Sie mehr erfahren oder Ihre Einstellungen ändern möchten, klicken Sie hier .
Durch Schließen dieses Banners, Scrollen oder durch Anklicken eines seiner Elemente, erklären Sie sich mit der Verwendung einverstanden. Ok, verstanden Ablehnen
',\r\n es: `
Este sitio utiliza cookie, incluyendo las de terceros, para permitir las funciones necesarias del sitio, tales como análisis, orientación y personalización.
\r\n Para obtener más información o cambiar tus preferencias haz clic aquí.\r\n
\r\n
\r\n Aceptar\r\n Rechazar\r\n
\r\n
\r\n `,\r\n fr: `
Ce site utilise des cookies, y compris des tiers, pour améliorer votre expérience de navigation.\r\n Si vous voulez en savoir plus o modifier vos préférences cliquez ici .
\r\n
\r\n
\r\n Accepter\r\n Refuser\r\n
\r\n
\r\n `,\r\n };\r\n let message = bannerText[culture]\r\n ? bannerText[culture]\r\n : bannerText.en;\r\n const bannerCssClass = 'cookie-consent';\r\n const bannerAcceptClass = 'cookie-consent__button--accept';\r\n return message\r\n .replace('{{bannerCssClass}}', bannerCssClass)\r\n .replace(/{{bannerAcceptClass}}/g, bannerAcceptClass)\r\n .replace('{{cookiePageUrl}}', cookiePageUrl);\r\n };\r\n\r\n if (this.cookie.showBanner) {\r\n this.#log('Showing the banner...');\r\n var banner = document.getElementById('bannerCookiesConsent');\r\n if (banner === null) {\r\n banner = document.createElement('div');\r\n banner.setAttribute('id', 'bannerCookiesConsent');\r\n banner.innerHTML = createBannerText({\r\n culture: this.options.culture,\r\n buttonOkId: 'btnCookieBannerOk',\r\n buttonCloseId: 'btnCookieBannerClose',\r\n cookiePageUrl: this.options.cookiePageUrl,\r\n });\r\n document.body.appendChild(banner);\r\n //After the creation of the banner or the bind on buttons will not work\r\n this.#initializeEvents({\r\n buttonOkId: 'btnCookieBannerOk',\r\n buttonCloseId: 'btnCookieBannerClose',\r\n cookiePageUrl: this.options.cookiePageUrl,\r\n });\r\n this.#log('...banner created');\r\n } else this.#log('...banner already present. Doing nothing.');\r\n } else {\r\n this.#closeBannerCookiesConsent();\r\n }\r\n }\r\n\r\n #closeBannerCookiesConsent() {\r\n var banner = document.getElementById('bannerCookiesConsent');\r\n if (banner) {\r\n banner.parentNode.removeChild(banner);\r\n }\r\n }\r\n\r\n #processScripts(elements) {\r\n if (elements && elements.length > 0) {\r\n var script = null;\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i].getAttribute('type') === 'text/plain') {\r\n if (elements[i].getAttribute('src') === null) {\r\n //eval() of code in script or IE8 will blow away with \"Unknown runtime error\", it does not like the innerHTML in