{"version":3,"sources":["ip-redirect.js"],"names":["$","document","querySelector","name","parts","cookie","split","length","pop","shift","getCookie","countryCodes","US","MX","CA","DO","PR","fetchRequest","method","credentials","headers","langRedirect","countryCode","dropdownRequest","body","fetch","ajaxurl","then","res","status","url","lang","langSwitch","queryString","window","location","search","substring","langUrl","href","getLangUrl","modal","catch","error","showRedirectModal","redirectData","content","response","redirectModal","modalBody","continueBtn","cancelBtn","redirectCountry","country","redirectText","innerHTML","message","continue","cancel","addEventListener","e","preventDefault","responseData","logRequest","JSON","stringify","logResponse","browser_lang","navigator","language","redirectRequest","wpml_lang","json","default_rfc_country","localStorage","setItem","redirect","jQuery"],"mappings":"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","file":"../ip-redirect.js","sourcesContent":["(function($) {\n\n\tif ( ! document.querySelector('.redirect-modal') ) {\n\t\treturn;\n\t}\n\n\tconst getCookie = (name) => {\n\n\t\tconst value = '; ' + document.cookie;\n\t\tconst parts = value.split('; ' + name + '=');\n\n\t\tif ( parts.length == 2 ) {\n\t\t\treturn parts.pop().split(';').shift();\n\t\t}\n }\n\n if ( getCookie('STYXKEY_ca_no_redirect') ) {\n return;\n\t}\n\n\tconst countryCodes = {\n\t\t'US': 0,\n\t\t'MX': 1,\n\t\t'CA': 2,\n\t\t'DO': 3,\n\t\t'PR': 4,\n\t}\n\n\tconst fetchRequest = {\n\t\tmethod : 'POST',\n\t\tcredentials: 'same-origin',\n\t\theaders : {\n\t\t\t'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'\n\t\t}\n\t}\n\n\tconst logResponse = (responseData) => {\n\n\t\tif ( ! responseData ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst logRequest = fetchRequest;\n\t\tlogRequest.body = 'action=log_redirect_ips';\n\t\tlogRequest.body += '&response_data=' + JSON.stringify(responseData);\n\n\t\tfetch(ajaxurl, logRequest).catch(error => {\n\t\t\tconsole.log(error);\n\t\t});\n\t}\n\n\tconst getLangUrl = (lang) => {\n\n\t\tconst langSwitch = document.querySelector('.wpml-lang-selector');\n\n\t\tif ( ! langSwitch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet queryString = '';\n\n\t\tif ( window.location.search.substring(1) !== '' ) {\n\t\t\tqueryString = '?' + window.location.search.substring(1);\n\t\t}\n\n\t\tlet langUrl = '#';\n\n\t\tif ( langSwitch.querySelector('.icl-' + lang + ' > a') ) {\n\t\t\tlangUrl = langSwitch.querySelector('.icl-' + lang + ' > a').href + queryString;\n\t\t}\n\n\t\treturn langUrl;\n\t}\n\n\tconst langRedirect = (countryCode) => {\n\n\t\tif ( ! countryCode ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst dropdownRequest = fetchRequest;\n\t\tdropdownRequest.body = 'action=add_dropdown_cookie';\n\t\tdropdownRequest.body += '&index=' + countryCodes[countryCode];\n\n\t\tfetch(ajaxurl, dropdownRequest).then(res => {\n\n\t\t\tif ( res.status !== 200 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst url = getLangUrl('es');\n\n\t\t\tif ( url && url !== window.location.href && url !== '#' ) {\n\t\t\t\twindow.location.href = url;\n\t\t\t}\n\n\t\t\t$('.redirect-modal').modal('hide');\n\n\t\t\treturn;\n\t\t})\n\t\t.catch(error => {\n\t\t\tconsole.log(error);\n\t\t});\n\t}\n\n\tconst showRedirectModal = (redirectData) => {\n\n\t\tif ( ! redirectData.content || ! redirectData.response ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst redirectModal = document.querySelector('.redirect-modal');\n\n\t\tconst modalBody = redirectModal.querySelector('.modal-body');\n\t\tconst continueBtn = redirectModal.querySelector('.btn--continue');\n\t\tconst cancelBtn = redirectModal.querySelector('.btn--cancel .content');\n\n\t\tconst redirectCountry = redirectData.response.country;\n\t\tconst redirectText = redirectData.content;\n\n\t\tmodalBody.innerHTML = '
' + redirectText.message + '
';\n\t\tcontinueBtn.innerHTML = redirectText.continue;\n\t\tcancelBtn.innerHTML = redirectText.cancel;\n\n\t\tif ( modalBody.querySelector('.country-name') ) {\n\t\t\tconst countryName = modalBody.querySelector('.country-name');\n\t\t\tcountryName.innerHTML = redirectCountry;\n\t\t}\n\n\t\t// Open Bootstrap Modal\n\t\t$('.redirect-modal').modal();\n\n\t\tcontinueBtn.addEventListener('click', e => {\n\n\t\t\te.preventDefault();\n\n\t\t\tlogResponse(redirectData.response);\n\n\t\t\tif ( redirectData.url ) {\n\t\t\t\twindow.location.href = redirectData.url;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlangRedirect(redirectData.response.countryCode);\n\t\t});\n\t}\n\n\tlet browser_lang = navigator.language;\n\n\tif ( browser_lang.split('-')[0].length ) {\n\t\tbrowser_lang = browser_lang.split('-')[0];\n\t}\n\n\tconst redirectRequest = fetchRequest;\n\tredirectRequest.body = 'action=check_user_location';\n\tredirectRequest.body += '&wpml_lang=' + wpml_lang;\n\tredirectRequest.body += '&browser_lang=' + browser_lang;\n\n\tfetch(ajaxurl, redirectRequest).then(res => {\n\n\t\tif ( res.status !== 200 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tres.json().then(json => {\n\n\t\t\tif ( json.default_rfc_country) {\n\t\t\t\tlocalStorage.setItem('default_rfc_country', json.default_rfc_country);\n\t\t\t\t// console.log('ip redirect saving default_rfc_country: ', json.default_rfc_country);\n\t\t\t}\n\n\t\t\tif ( ! json.redirect ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tshowRedirectModal(json);\n\t\t});\n\t})\n\t.catch(error => {\n\t\tconsole.log(error);\n\t});\n\n})(jQuery); // Use jQuery for Bootstrap Modal\n"]}