{"version":3,"file":"/js/units/languagebar.js","mappings":"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","sources":["webpack:///./src/js/units/languagebar.js"],"sourcesContent":["/**\n * IIFE for creating a language bar, this waits for the geolocation data to be present\n */\nTNZ = window.TNZ || {};\n\n(function () {\n  // Constant for the cookie to determine if the language bar has been shown before\n  var displayOnceCookie = \"tnz_languagebar_shown\";\n\n  /**\n   * Options to display in the languagebar\n   */\n  var languageBarOptions = [\n    \"en\",\n    \"au\",\n    \"us\",\n    \"gb\",\n    \"in\",\n    \"sg\",\n    \"de\",\n    \"jp\",\n    \"cn\",\n    \"kr\",\n  ];\n\n  var domainName = window.location.hostname;\n\n  // translations for the bar display\n  var translationData = {\n    en: {\n      desktop1: \"<strong>Kia ora</strong>. You are visiting the \",\n      desktop2: ` edition of ${domainName}`,\n      desktop3: \"Switch to \",\n      mobile1: \"You are viewing the \",\n      mobile2: \" edition.\",\n      mobile3: \"Switch to \",\n      select: \"Please select\",\n      countries: {\n        en: \"International English\",\n        au: \"Australia\",\n        us: \"North America\",\n        gb: \"UK & Europe\",\n        in: \"India\",\n        sg: \"South East Asia\",\n        de: \"Europe (German)\",\n        cn: \"China\",\n        jp: \"Japan\",\n        kr: \"Korea\",\n      },\n    },\n    zh: {\n      desktop1: `<strong>Kia Ora</strong>，你好！你正在访问${domainName} `,\n      desktop2: \" 版。\",\n      desktop3: \"转至 \",\n      mobile1: \"你正在访问 \",\n      mobile2: \" 版。\",\n      mobile3: \"转至 \",\n      select: \"请选择\",\n      countries: {\n        en: \"国际英语\",\n        au: \"澳大利亚\",\n        us: \"北美\",\n        gb: \"欧洲\",\n        in: \"印度\",\n        sg: \"东南亚\",\n        de: \"德语\",\n        cn: \"中国\",\n        jp: \"日本\",\n        kr: \"韩国\",\n      },\n    },\n    ja: {\n      desktop1: `<strong>キアオラ</strong>, ${domainName}の `,\n      desktop2: \" 版をご覧いただいています。\",\n      desktop3: \"バージョンを変更: \",\n      mobile1: \"\",\n      mobile2: \" 版をご覧いただいています。\",\n      mobile3: \"バージョンを変更: \",\n      select: \"選択してください\",\n      countries: {\n        en: \"英語\",\n        au: \"オーストラリア\",\n        us: \"北米\",\n        gb: \"ヨーロッパ\",\n        in: \"インド\",\n        sg: \"東南アジア\",\n        de: \"ドイツ人\",\n        cn: \"中国\",\n        jp: \"日本\",\n        kr: \"韩国\",\n      },\n    },\n    ko: {\n      desktop1: `<strong>키아 오라</strong>, 안녕하세요. 현재 ${domainName}의 `,\n      desktop2: \" 판에 접속 중입니다. \",\n      desktop3: \" 변경하기 \",\n      mobile1: \"현재 \",\n      mobile2: \" 판을 보고 계십니다. \",\n      mobile3: \"변경하기 \",\n      select: \"선택하십시오\",\n      countries: {\n        en: \"인터내셔널 영어\",\n        au: \"호주\",\n        us: \"북아메리카\",\n        gb: \"유럽\",\n        in: \"인도\",\n        sg: \"동남아시아\",\n        de: \"독일 사람\",\n        cn: \"중국\",\n        jp: \"일본\",\n        kr: \"한국\",\n      },\n    },\n    de: {\n      desktop1: \"<strong>Kia ora</strong>. Diese Seite ist Version \",\n      desktop2: ` von ${domainName}.`,\n      desktop3: \"Wechsel Zu Version \",\n      mobile1: \"Du befindest dich in der Version \",\n      mobile2: \". dieser Website.\",\n      mobile3: \"Wechsel Zu Version \",\n      select: \"Bitte Auswählen\",\n      countries: {\n        en: \"Englisch\",\n        au: \"Australien\",\n        us: \"Nordamerika\",\n        gb: \"Europa\",\n        in: \"Indien\",\n        sg: \"Südostasien\",\n        de: \"Deutsch\",\n        cn: \"China\",\n        jp: \"Japan\",\n        kr: \"Korea\",\n      },\n    },\n  };\n\n  /**\n   * This is used to determine where the user is from and match it to\n   * edition data above\n   *\n   * @returns {?Edition}\n   */\n  function getUsersLocaleInfo() {\n    // First we need to get the users \"market\" which is the market we would choose to show them by default\n    var localeInformation = TNZ.MarketEditionsData.getEditionData();\n    // This will be set to the two character code for the country e.g. AU\n    var usersCountryCode = TNZ.GeoLocation.getCountryCode();\n    var usersContinentCode = TNZ.GeoLocation.getContinentCode();\n    // This will now be an object that looks like: {country_code:'AR',mf:'ar',m:'ar',lang:'es',edition:'Argentina'}\n    var usersLocaleInfo = TNZ.Util.findObjectInArrayByKey(localeInformation, \"country_code\", usersCountryCode);\n\n    // We didn't find a match of country_code, so now let's check if there are any matches on continent_code\n    if (!usersLocaleInfo) {\n      usersLocaleInfo = TNZ.Util.findObjectInArrayByKey(localeInformation, \"continent_code\", usersContinentCode);\n    }\n\n    // If we don't find their market we will return null so we can detect an unknown locale\n    return usersLocaleInfo;\n  }\n\n  /**\n   *\n   * @param {string} marketFolder\n   *\n   * @returns {string}\n   */\n  function getPageFromEditionSwitcher(marketFolder) {\n    var fallback = marketFolder + \"/\";\n\n    var switcherList = document.querySelector(\"#js-trk-edition-crtl-mobile\");\n\n    if (!switcherList) {\n      return fallback;\n    }\n\n    // We don't have a mapping for `$LocaleCountryCode` which is used on the template\n    // Therefore we are going to map the exceptions here\n    // The french locales market folder is different from it's `LocaleCountryCode`\n    if (marketFolder === \"nouvelle-z%C3%A9lande\") {\n      marketFolder = \"fr\";\n    }\n    // The Netherland locales market folder is different from it's `LocaleCountryCode`\n    if (marketFolder === \"nieuw-zeeland\") {\n      marketFolder = \"nl\";\n    }\n\n    var matcher = new RegExp(\"^js-edsw-mob-\" + marketFolder + \"$\");\n\n    for (var i = 0; i < switcherList.length; ++i) {\n      var option = switcherList.options[i];\n      var id = option.id;\n      var link = option.value;\n      // return first matching href\n      if (matcher.test(id)) {\n        return link;\n      }\n    }\n\n    // return fallback on no match\n    return fallback;\n  }\n\n  /**\n   * determine what language to display the message in\n   * uses the browser language and falls back to country code if browser language not detected\n   * will default to english if language is not supported\n   *\n   * @returns {string} - user language abbreviation\n   */\n  function getUserLanguage() {\n    // default to english if no matches\n    var lang = \"en\";\n\n    if (navigator) {\n      // IE fallback to userLanguage\n      var browserLang = navigator.language || navigator.userLanguage;\n\n      if (browserLang) {\n        var langMatch = new RegExp(/^(\\w\\w)-?/);\n        var matches = browserLang.match(langMatch);\n\n        if (matches.length > 1) {\n          browserLang = matches[1];\n\n          // check if we support translations for this language\n          if (browserLang in translationData) {\n            return browserLang;\n          }\n        }\n      }\n    }\n\n    // try country code match\n    var userLocale = getUsersLocaleInfo();\n\n    if (!userLocale) {\n      return lang;\n    }\n\n    // use language defined in edition data\n    return userLocale.lang;\n  }\n\n  /**\n   * Get translations for a given language\n   * falls back to english if no translations found\n   *\n   * @param {string} lang - lanugage string eg en,fr\n   * @returns {object} - translation data\n   */\n  function getTranslationsByLang(lang) {\n    var translation = translationData[lang];\n    // default to en if language not found\n    if (!translation) translation = translationData[\"en\"];\n\n    return translation;\n  }\n\n  /**\n   * Provides translated \"You are in x locale\" message\n   *\n   * @param {string} context - desktop|mobile\n   * @returns {string}\n   */\n  function getCurrentLocaleMessage(context) {\n    var lang = getUserLanguage();\n    var translation = getTranslationsByLang(lang);\n    // check do I need null here?\n    var pageEdition = TNZ.MarketEditionsData.getEditionFromUrl();\n    var pageEditionLocalised = translation.countries[pageEdition.m];\n\n    if (context === \"mobile\") {\n      return translation.mobile1.concat(\"<strong>\", pageEditionLocalised, \"</strong>\", translation.mobile2);\n    }\n\n    return translation.desktop1.concat(\"<strong>\", pageEditionLocalised, \"</strong>\", translation.desktop2);\n  }\n\n  /**\n   * Provides translated \"switch to x locale\" message\n   *\n   * @param {string} context - desktop|mobile\n   * @returns {string}\n   */\n  function getSwitchToMessage(context) {\n    var lang = getUserLanguage();\n    var translation = getTranslationsByLang(lang);\n    // check do I need null here?\n    var userEdition = getUsersLocaleInfo();\n\n    var userEditionLocalised = translation.countries[userEdition.m];\n\n    if (context === \"mobile\") {\n      return translation.mobile3 + userEditionLocalised;\n    }\n\n    return translation.desktop3 + userEditionLocalised;\n  }\n\n  /**\n   * Wrap the contents of the language bar with the close button etc\n   */\n  function wrapLanguageBarContents(contents) {\n    return (\n      '<div class=\"language-bar\" id=\"js-tnz-language-bar-switcher-wrapper\" lang=\"' +\n      getUserLanguage() +\n      '\">' +\n      '<div class=\"constrained-wrapper\">' +\n      contents +\n      \"</div>\" +\n      '<button class=\"language-bar__close\" id=\"js-language-bar-switcher-close\" type=\"button\" >' +\n      '<i class=\"o-icon js-icon  o-icon--small \"><svg class=\"icon cross\" role=\"img\" aria-label=\"Close\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\"><title>Close</title><path d=\"M25.333 6q0.573 0 0.953 0.38t0.38 0.953q0 0.563-0.385 0.948l-8.396 8.385 8.396 8.385q0.385 0.385 0.385 0.948 0 0.573-0.38 0.953t-0.953 0.38q-0.563 0-0.948-0.385l-8.385-8.396-8.385 8.396q-0.385 0.385-0.948 0.385-0.573 0-0.953-0.38t-0.38-0.953q0-0.563 0.385-0.948l8.396-8.385-8.396-8.385q-0.385-0.385-0.385-0.948 0-0.573 0.38-0.953t0.953-0.38q0.563 0 0.948 0.385l8.385 8.396 8.385-8.396q0.385-0.385 0.948-0.385z\" ></path></svg></i>' +\n      \"</button>\" +\n      \"</div>\"\n    );\n  }\n\n  function addContentsToPage(content) {\n    // Wrap the content in boiler plate code\n    content = wrapLanguageBarContents(content);\n\n    var div = document.createElement(\"div\");\n    div.innerHTML = content;\n    document.querySelector(\"#js-global-header\").prepend(div.firstChild);\n\n    // We've now displayed the bar and can once again send it into hiding\n    TNZ.Cookie.set(displayOnceCookie, 1, 0);\n\n    //Listener to close language bar\n    document.getElementById(\"js-language-bar-switcher-close\").addEventListener(\"click\", function (e) {\n      document.getElementById(\"js-tnz-language-bar-switcher-wrapper\").remove();\n    });\n  }\n\n  /**\n   * This is a redirect link to the users market\n   *\n   * @param {object} usersLocaleInfo {{mf: string, edition: string, label: ?string}}\n   */\n  function displayRedirectToMarket(usersLocaleInfo) {\n    var href = getPageFromEditionSwitcher(usersLocaleInfo.mf);\n\n    addContentsToPage(\n      '<div class=\"language-bar__inner\">' +\n      '<span class=\"language-bar__text u-hide@tablet+\">' +\n      getCurrentLocaleMessage(\"mobile\") +\n      \"</span>\" +\n      '<span class=\"language-bar__text u-hide@tablet-\">' +\n      getCurrentLocaleMessage(\"desktop\") +\n      \"</span>\" +\n      '<div class=\"language-bar__action\">' +\n      '<a class=\"o-button o-button--wide\" href=\"' +\n      href +\n      '\">' +\n      '<span class=\"u-hide@tablet+\">' +\n      getSwitchToMessage(\"mobile\") +\n      \"</span>\" +\n      '<span class=\"u-hide@tablet-\">' +\n      getSwitchToMessage(\"desktop\") +\n      \"</span>\" +\n      \"</a>\" +\n      '<i class=\"o-icon js-icons thin-arrow-right\"><svg width=\"11\" height=\"12\" viewBox=\"0 0 11 12\" fill=\"none\" class=\"icon thin-arrow-right\" role=\"img\" aria-label=\"thin-arrow-right\" xmlns=\"http://www.w3.org/2000/svg\"><title>thin-arrow-right</title><path d=\"M0 5.93262H9.69358\" stroke=\"white\"/><path d=\"M5.76172 1L9.95354 5.93254L5.76172 10.8651\" stroke=\"white\" fill=\"none\"/></svg></i>' +\n      \"</div>\" +\n      \"</div>\"\n    );\n  }\n\n  function displayDropdownList() {\n    var lang = getUserLanguage();\n    var translation = getTranslationsByLang(lang);\n\n    var optionsString = languageBarOptions.map(function (option) {\n      var edition = TNZ.Util.findObjectInArrayByKey(TNZ.MarketEditionsData.getEditionData(), \"m\", option);\n\n      // We should be able to find all editions, but better to skip than break if we can't find one or more\n      if (!edition) {\n        return;\n      }\n\n      var href = getPageFromEditionSwitcher(edition.mf);\n\n      return (\n        '<option value=\"' +\n        href +\n        '\" data-name_key=\"' +\n        edition.m +\n        '\">' +\n        translation.countries[edition.m] +\n        \"</option>\"\n      );\n    });\n\n    addContentsToPage(\n      '<div class=\"language-bar__inner language-bar__inner--dropdown\">' +\n      '<span class=\"language-bar__text u-hide@tablet+\">' +\n      getCurrentLocaleMessage(\"mobile\") +\n      \"</span>\" +\n      '<span class=\"language-bar__text u-hide@tablet-\">' +\n      getCurrentLocaleMessage(\"desktop\") +\n      \"</span>\" +\n      '<div class=\"language-bar__action\">' +\n      '<strong class=\"u-hide@tablet+\">' +\n      translation.mobile3.trim() +\n      \":</strong>\" +\n      '<strong class=\"u-hide@tablet-\">' +\n      translation.desktop3.trim() +\n      \":</strong>\" +\n      '<select id=\"js-language-bar-marketlanguage-select\" class=\"trk-language-bar-marketlanguage-select\">' +\n      '<option disabled value=\"\" selected>' +\n      translation.select +\n      \"</option>\" +\n      optionsString.join() +\n      \"</select>\" +\n      \"</div>\" +\n      \"<span>\" +\n      \"</span>\" +\n      \"</div>\"\n    );\n\n    // We can now attach our listener to the page to listen for the dropdown changing\n    document.getElementById(\"js-language-bar-marketlanguage-select\").addEventListener(\"change\", function (e) {\n      document.location.href = this.value;\n    });\n  }\n\n  // Running this function will check if the language bar should be shown and if so it will show it\n  var init = function () {\n    // If the page has a cid then we will never show the language bar\n    if (typeof TNZ.URL.get(\"cid\") === \"string\") {\n      return;\n    }\n\n    // We set a cookie after showing the language bar, if it's set then we won't show the bar again\n    // as it should only be shown once for a user\n    if (!!TNZ.Cookie.get(displayOnceCookie) !== false) {\n      return;\n    }\n\n    var usersLocaleInfo = getUsersLocaleInfo();\n    var usersMarket = usersLocaleInfo ? usersLocaleInfo.m : null;\n\n    // Now we need to know what the pages locale is\n    var pageInfo = TNZ.MarketEditionsData.getEditionFromUrl();\n    // The market will equal `en` for en_001 as an fyi\n    var pageMarket = pageInfo.m;\n\n    // At this point we check if the locale is allready correct so we can not show the language bar as it's not needed\n    // @see TNZ.MarketEditionsData.getEditionFromUrl()\n    if (pageMarket === usersMarket) {\n      return;\n    }\n\n    // Check if we can suggest the user go to the appropriate edition based on where they are from\n    var editions = TNZ.MarketEditionsData.getEditionData();\n    var supportedMarkets = editions.map(function (edition) {\n      return edition.m;\n    });\n\n    // We know that we don't need the Language bar if there is 0 or 1 supported markets\n    // Backwards compatability: If marketCount has not been defined, then we'll continue on, which follows the original\n    // paradigm\n    if (TNZ.initialRequestConfig.hasOwnProperty('marketCount') && TNZ.initialRequestConfig.marketCount <= 1) {\n      return;\n    }\n\n    // We have a supported locale which we can direct the user to\n    if (supportedMarkets.indexOf(usersMarket) !== -1) {\n      displayRedirectToMarket(usersLocaleInfo);\n\n      return;\n    }\n\n    // If a user is from a non-TNZ supported locale and not on en_001 page then we will show a dropdown list of editions\n    // with the English edition set to take them to en_001\n    if (pageMarket !== \"en\") {\n      displayDropdownList(false);\n    }\n  };\n\n  TNZ.JSLib.requireLoadEvent([\"/global/geolocation.js\", \"docready\", \"jqready\"], function () {\n    init();\n  });\n})();\n"],"names":["TNZ","window","displayOnceCookie","languageBarOptions","domainName","location","hostname","translationData","en","desktop1","desktop2","concat","desktop3","mobile1","mobile2","mobile3","select","countries","au","us","gb","in","sg","de","cn","jp","kr","zh","ja","ko","getUsersLocaleInfo","localeInformation","MarketEditionsData","getEditionData","usersCountryCode","GeoLocation","getCountryCode","usersContinentCode","getContinentCode","usersLocaleInfo","Util","findObjectInArrayByKey","getPageFromEditionSwitcher","marketFolder","fallback","switcherList","document","querySelector","matcher","RegExp","i","length","option","options","id","link","value","test","getUserLanguage","navigator","browserLang","language","userLanguage","langMatch","matches","match","userLocale","lang","getTranslationsByLang","translation","getCurrentLocaleMessage","context","pageEdition","getEditionFromUrl","pageEditionLocalised","m","getSwitchToMessage","userEdition","userEditionLocalised","addContentsToPage","content","contents","div","createElement","innerHTML","prepend","firstChild","Cookie","set","getElementById","addEventListener","e","remove","JSLib","requireLoadEvent","URL","get","usersMarket","pageMarket","optionsString","supportedMarkets","map","edition","initialRequestConfig","hasOwnProperty","marketCount","indexOf","mf","trim","join","href","this","displayRedirectToMarket","init"],"sourceRoot":""}