{"version":3,"file":"chunks/64e7f718bd419d.js","mappings":"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","sources":["webpack:///./resources/js/components/shared/language-switcher-nav.ts","webpack:///./resources/js/customer-experience/modules/atl-storage.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport axios from 'axios';\nimport Storage from '../../customer-experience/modules/atl-storage';\nimport Environment from '../../common/environment';\nimport { Segment } from '../../common/tracking/platforms';\n\nexport default class LanguageSwitcherNav {\n componentRoot: JQuery;\n params: any;\n storage: any;\n currentLocale: string;\n preferredLocale: null;\n bannerDismissStorageKey: string;\n preferredLocaleStorageKey: string;\n activeBannerClass: string;\n dissmissButton: any;\n selectTrigger: any;\n preferredLocaleLink: any;\n preferredLocaleLabel: any;\n \n constructor(componentRoot: HTMLElement, params: any) {\n this.componentRoot = $(componentRoot);\n this.params = { ...params };\n\n this.storage = new Storage();\n\n this.currentLocale = this.getCurrentLocale();\n this.preferredLocale = null;\n\n this.bannerDismissStorageKey = 'language-selector-banner-dismissed';\n this.preferredLocaleStorageKey = 'language-selector-preferred';\n this.activeBannerClass = 'language-selector-banner--open';\n\n this.dissmissButton = this.componentRoot.find('.language-selector-banner__close-banner');\n this.selectTrigger = this.componentRoot.find('.language-selector-banner__language-selector__trigger');\n this.preferredLocaleLink = this.componentRoot.find('.language-selector-banner__language-suggestion > a');\n this.preferredLocaleLabel = this.preferredLocaleLink.find('.preferred-locale-detected');\n\n this.init();\n }\n\n init () {\n this.fixLanguageBannerForCloudSignup();\n this.preselectFooterLanguage(this.currentLocale);\n\n if (!this.languageSelectorDismissed()) {\n this.checkLocales();\n }\n }\n\n checkLocales() {\n return this.detectBrowserLocale().then(locale => {\n this.storage.session.set(this.preferredLocaleStorageKey, locale);\n this.preferredLocale = locale;\n\n if (this.isLocaleDifferent()) {\n this.bindEvents();\n this.preselectBannerLanguage(locale);\n }\n })\n .catch(() => {\n Segment.track({\n category: 'bxp',\n action: 'language-selector.api.error',\n label: 'language-selector',\n });\n });\n\n }\n\n /**\n * This is required for WPI-1600, since gateway removes all query params\n * before proxying to Magnolia. Hence in the language switcher, Magnolia loses\n * context of which signup landing page it was in. This fix will add the browser\n * query params to Language switcher\n */\n fixLanguageBannerForCloudSignup() {\n if (window.location.pathname.includes(\"/try/cloud/signup\") || window.location.pathname.includes(\"/signup/rename/site\")) {\n this.componentRoot.find('.language-selector-banner__language-selector__options__list__item a').each(function() {\n $(this).attr(\"data-locale-url\", $(this).attr(\"data-locale-url\") + window.location.search);\n $(this).attr(\"href\", $(this).attr(\"href\") + window.location.search);\n });\n }\n\n }\n\n preselectFooterLanguage(locale) {\n const footer = $('#footer');\n const footerLanguageLabel = footer.find('.language-selector--text');\n const selectableOption = footer.find(`.language-selector option[data-lang=\"${locale}\"]`);\n\n if (selectableOption.length) {\n selectableOption.prop('selected', true);\n footerLanguageLabel.html(selectableOption.text());\n }\n }\n\n preselectBannerLanguage(preferredLocale) {\n const availableLanguagesCurrentLanguage = this.componentRoot.find(`[data-lang=\"${this.currentLocale}\"]`);\n const availableLanguagesPreferredLanguage = this.componentRoot.find(`[data-lang=\"${preferredLocale}\"]`);\n\n if (availableLanguagesCurrentLanguage.length) {\n availableLanguagesCurrentLanguage.parent().addClass('language-selector-banner__language-selector__options__list__item--selected');\n }\n\n if (availableLanguagesPreferredLanguage.length) {\n const preferredLocaleHref = availableLanguagesPreferredLanguage.data('locale-url');\n const preferredLocaleLabel = availableLanguagesPreferredLanguage.text();\n\n this.preferredLocaleLink.attr('href', preferredLocaleHref);\n this.preferredLocaleLabel.text(preferredLocaleLabel);\n\n this.showBanner();\n } else {\n Segment.track({\n category: 'bxp',\n action: `language-selector.preferredLocaleNotAvailable_${preferredLocale}`,\n label: 'language-selector',\n });\n }\n\n }\n\n languageSelectorDismissed() {\n return this.storage.local.get(this.bannerDismissStorageKey);\n }\n\n detectBrowserLocale() {\n const preferredLocale = this.getPreferredLocale();\n if (this.getPreferredLocale()) {\n return Promise.resolve(preferredLocale);\n }\n\n return axios.get(`${Environment.getWacIntegrationUrl()}/endpoint/info/lang`)\n .then(response => {\n return response.data;\n });\n }\n\n getCurrentLocale() {\n const i18nLocale = Environment.getInternationalSubdomain() || Environment.getInternationalSubdirectory();\n\n return i18nLocale ? i18nLocale : 'en';\n }\n\n getPreferredLocale() {\n const preferredLocale = this.storage.session.get(this.preferredLocaleStorageKey);\n if (preferredLocale) {\n return Promise.resolve(preferredLocale);\n }\n return null;\n }\n\n isLocaleDifferent() {\n return this.currentLocale !== this.preferredLocale;\n }\n\n bindEvents() {\n this.selectTrigger.on('click', (event) => {\n event.stopPropagation();\n this.toggleSelect();\n });\n\n this.dissmissButton.on('click', () => {\n this.dismissBanner();\n });\n\n $(document).on('click', () => {\n this.hideSelect();\n })\n }\n\n hideSelect() {\n this.componentRoot.removeClass(this.activeBannerClass);\n }\n\n toggleSelect() {\n this.componentRoot.toggleClass(this.activeBannerClass);\n }\n\n showBanner() {\n this.componentRoot.show();\n Segment.track({\n category: 'bxp',\n action: `language-selector.shown.preferredLocale_${this.preferredLocale}.currentLocale_${this.currentLocale}`,\n label: 'language-selector',\n });\n }\n\n\n dismissBanner() {\n this.storage.local.set(this.bannerDismissStorageKey, 1);\n this.componentRoot.hide();\n Segment.track({\n category: 'bxp',\n action: `language-selector.dismissed.preferredLocale_${this.preferredLocale}.currentLocale_${this.currentLocale}`,\n label: 'language-selector',\n });\n }\n}\n","import _ from 'underscore';\n\n/*\n * Abstraction library for storing data in the browser. Handles all the actual\n * browser interaction for localStorage, sessionStorage and cookies.\n */\nexport default class AtlStorage {\n constructor() {\n /*\n * Create a storage prefix key to use for local/session storage\n * Use a reverse of the site host. ie: atlassian.com prefix will\n * be com.atlassian.angular.storage\n */\n var prefix = window.location.hostname\n .split('.')\n .reverse()\n .join('.') + '.bxp.storage',\n\n $window = window,\n browserSupport = {},\n stringify = JSON.stringify,\n\n supports = function (storageType: string) {\n if (_.has(browserSupport, storageType)) {\n return browserSupport[storageType];\n }\n if (_.contains(['localStorage', 'sessionStorage'], storageType)) {\n try {\n browserSupport[storageType] = typeof $window[storageType] === 'object' &&\n typeof $window[storageType].setItem === 'function' &&\n typeof $window[storageType].getItem === 'function' &&\n typeof $window[storageType].clear === 'function';\n } catch (e) {\n browserSupport[storageType] = false;\n }\n }\n return browserSupport[storageType];\n };\n\n /*\n * Abstraction over local and session storage. If write error occurs, catch it\n * then clear the storage and disable browserSupport property for that storage\n * type so any further attempts to write to that browser storage don't work.\n * If local/session storage is unsupported, and the stringified value really small\n * then attempt to save it to a cookie as a fallback mechanism\n */\n var setItem = function (storageType: string, key: string, value: string) {\n var storageKey = [prefix, key].join('.'),\n outputString = stringify(value);\n\n if (supports(storageType)) {\n try {\n $window[storageType].setItem(storageKey, outputString);\n } catch (e) {\n browserSupport[storageType] = false;\n }\n } else if (outputString.length < 150) {\n this.cookie.set(storageKey, value);\n }\n };\n\n /*\n * Read in the value of a given key from local/session storage.\n * Fallback to cookies instituted here as well should local/session be\n * unavailable\n */\n var getItem = function (storageType: string, key: string) {\n var storageKey = [prefix, key].join('.');\n if (supports(storageType)) {\n return JSON.parse($window[storageType].getItem(storageKey));\n } else {\n this.cookie.get(storageKey);\n }\n };\n\n /*\n * Wipe out an item from local/session storage with cookie fallback\n */\n var removeItem = function (storageType: string, key: string) {\n var storageKey = [prefix, key].join('.');\n if (supports(storageType)) {\n $window[storageType].removeItem(storageKey);\n } else {\n this.cookie.remove(storageKey);\n }\n };\n\n /*\n * Clear all local/session storage data for the app\n */\n var clear = function (storageType: string) {\n if (supports(storageType)) {\n $window[storageType].clear();\n }\n };\n\n /*\n * In-memory cache\n */\n var SESSION_STORAGE = {};\n var LOCAL_STORAGE = {\n timestamp: getItem('localStorage', 'timestamp')\n };\n\n if (LOCAL_STORAGE.timestamp && _.isNumber(LOCAL_STORAGE.timestamp)) {\n var timestamp = new Date(LOCAL_STORAGE.timestamp),\n ageInDays = (new Date() - timestamp) / 1000 / 60 / 60 / 24;\n if (ageInDays > 30) {\n clear('localStorage');\n }\n } else {\n LOCAL_STORAGE = { timestamp: Date.parse(new Date()) };\n setItem('localStorage', 'timestamp', LOCAL_STORAGE.timestamp);\n }\n\n /*\n * Public API\n */\n return {\n local: {\n set(key: string, value: any) {\n // don't add null or undefined, but 0 and '' and false are okay\n if (!value && value !== 0 && value !== '' && value !== false) {\n return false;\n }\n LOCAL_STORAGE[key] = value;\n setItem('localStorage', key, value);\n },\n get(key: string) {\n LOCAL_STORAGE[key] = getItem('localStorage', key);\n return LOCAL_STORAGE[key] || null;\n },\n remove(key: string) {\n delete LOCAL_STORAGE[key];\n removeItem('localStorage', key);\n },\n clear() {\n LOCAL_STORAGE = {};\n clear('localStorage');\n }\n },\n session: {\n set(key: string, value: any) {\n // don't add null or undefined, but 0 and '' and false are okay\n if (!value && value !== 0 && value !== '' && value !== false) {\n return false;\n }\n SESSION_STORAGE[key] = value;\n setItem('sessionStorage', key, value);\n },\n get(key: string) {\n SESSION_STORAGE[key] = getItem('sessionStorage', key);\n return SESSION_STORAGE[key] || null;\n },\n remove(key: string) {\n delete SESSION_STORAGE[key];\n removeItem('sessionStorage', key);\n },\n clear() {\n SESSION_STORAGE = {};\n clear('sessionStorage');\n }\n },\n cookie: {\n set(key: string, value: string, days: number) {\n let date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\n if (!days) {\n days = 30;\n }\n let expires = \"; expires=\" + date.toUTCString();\n\n document.cookie = key + \"=\" + value + expires + \"; path=/\";\n },\n get(key: string) {\n const encodedName = encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\");\n const regex = new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodedName + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\");\n return decodeURIComponent(document.cookie.replace(regex, \"$1\")) || null;\n },\n remove(key: string) {\n this.cookie.set(key, '', -1);\n }\n },\n support: browserSupport\n };\n }\n}\n"],"names":["LanguageSwitcherNav","componentRoot","params","_classCallCheck","this","$","_objectSpread","storage","Storage","currentLocale","getCurrentLocale","preferredLocale","bannerDismissStorageKey","preferredLocaleStorageKey","activeBannerClass","dissmissButton","find","selectTrigger","preferredLocaleLink","preferredLocaleLabel","init","key","value","fixLanguageBannerForCloudSignup","preselectFooterLanguage","languageSelectorDismissed","checkLocales","_this","detectBrowserLocale","then","locale","session","set","isLocaleDifferent","bindEvents","preselectBannerLanguage","Segment","category","action","label","window","location","pathname","includes","each","attr","search","footer","footerLanguageLabel","selectableOption","concat","length","prop","html","text","availableLanguagesCurrentLanguage","availableLanguagesPreferredLanguage","parent","addClass","preferredLocaleHref","data","showBanner","local","get","getPreferredLocale","Promise","resolve","axios","Environment","response","_this2","on","event","stopPropagation","toggleSelect","dismissBanner","document","hideSelect","removeClass","toggleClass","show","hide","AtlStorage","_createClass","prefix","hostname","split","reverse","join","$window","browserSupport","stringify","JSON","supports","storageType","_","_typeof","setItem","getItem","clear","e","storageKey","outputString","cookie","parse","removeItem","remove","SESSION_STORAGE","LOCAL_STORAGE","timestamp","Date","days","date","setTime","getTime","expires","toUTCString","encodedName","encodeURIComponent","replace","regex","RegExp","decodeURIComponent","support"],"sourceRoot":""}