{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./scripts/components/gas-calculator.js","webpack:///./scripts/components/calculator.js","webpack:///./scripts/components/figure-modal.js","webpack:///./scripts/components/payment-capabilities-map.js","webpack:///./scripts/components/glossary.js","webpack:///./scripts/components/header.js","webpack:///./scripts/constants/constants.js","webpack:///./scripts/components/tabs-accord.js","webpack:///./scripts/components/tabs-filter.js","webpack:///./scripts/components/secondary-nav.js","webpack:///./scripts/components/country-picker.js","webpack:///./scripts/components/forms.js","webpack:///./scripts/components/find-a-wubs.js","webpack:///./scripts/components/find-an-office.js","webpack:///./scripts/components/promo-card.js","webpack:///./scripts/components/resources.js","webpack:///./scripts/components/mass-pay-menu.js","webpack:///./scripts/components/intelligence-form.js","webpack:///./scripts/components/cookie-consent.js","webpack:///./scripts/imports.js","webpack:///./scripts/gpm.js","webpack:///./scripts/library/common/library.common.helpers.js","webpack:///./scripts/library/composite/library.composite.helpers.js","webpack:///./scripts/global-pay-me/gpm.CurrencyRatesBoard.js","webpack:///./scripts/global-pay-me/gpm.FormBuilder.BankSearch.js","webpack:///./scripts/global-pay-me/gpm.FormBuilder.PayerIsRemitter.js","webpack:///./scripts/global-pay-me/gpm.FormBuilder.QuoteBox.js","webpack:///./scripts/global-pay-me/gpm.RefundForm.js","webpack:///../.modernizrrc"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","callGTM","ename","eobj","gtmstr","keys","constructor","currPairCode","amount","from","to","eval","$","each","el","$el","$rateForm","find","$Amount","$SellCurrency","$BuyCurrency","$outputSuccess","$outputError","$outputCalc","$calculatorSpinner","$InvertCurrency","$CalculateBtn","calcAPI","isReversed","templateSelectionCurrency","country","notList","id","text","countryCode","element","toLowerCase","countrySym","countryName","lastIndexOf","trim","templateResultCurrency","getRate","show","val","fromCurrency","toCurrency","select2","templateResult","templateSelection","ajax","method","url","done","json","hide","FromCurrencyAmount","FromCurrency","FromCurrencySymbol","FromCurrencyName","ToCurrencyAmount","Rate","toFixed","ToCurrency","ToCurrencySymbol","ToCurrencyName","InverseRate","calculatorResultTemplate","template","Handlebars","compile","html","parseHTML","fail","inputmask","on","e","addClass","attr","$calculators","$currencyValueFrom","$currencyKindFrom","$currencyKindTo","$currencyRateText","$outputValueFrom","$outputKindFrom","$outputValueTo","$outputKindTo","$outputUnitRate","$outputInvUnitRate","$currencySwap","ResultFrom","ResultTo","$alertRate","ResultUnitConversion","ResultUnitConversionReverse","updateRateUI","$alertForm","$alertEmail","$alertBtn","$alertMessage","validate","errorClass","submitHandler","email","substring","targetRate","removeClass","removeAttr","console","log","$ctaBtn","$alertSection","isOpen","click","height","preventDefault","animate","outerHeight","css","_","youtubeEl","src","$payments","$paymentCapCountry","$paymentSelect","$mapContainer","continentArr","countryArr","chart","sortOrder","setCountryList","queryString","objCountry","$country","specialSortVal","sort","specialSort","unshift","matchCustom","params","term","filteredChildren","curr","substr","toUpperCase","indexOf","extend","sortResults","results","a","b","showModal","$modalCurr","continentCode","parents","modal","formatModalCaps","addCurrency","scrollTop","offset","top","colsCard","children","$paymentFooterLink","drawRegionMap","countryText","countryTitle","resultArr","google","visualization","DataTable","addColumn","index","addRows","options","GeoChart","document","getElementById","events","addListener","selectHandler","draw","getSelection","selectedItem","getValue","row","regex","replace","charts","load","setOnLoadCallback","elCh","headContinent","linkText","placeholder","matcher","sorter","allowClear","this","target","prev","toggleClass","indexEl","getElementsByClassName","contentEl","mainTopOffset","offsetTop","offsetParent","getOffsetTop","onscroll","documentElement","body","offsetHeight","classList","add","remove","scrollFunction","$window","$header","$headerNav","$searchDropdownWrap","$searchDropdownBtn","$searchDropdown","$searchDropdownInput","closeSearchDropdown","hasClass","focus","$mobileNav","$menuBtn","$items","heights","depth","isMobile","reset","checkWindowSize","width","resize","bindLinks","depthIndex","$parent","$list","$childItems","makeCurrent","itemIndex","newHeight","newDepth","left","slideMenuTo","pop","itemEl","$item","$link","$subLinks","navItemIndex","navItemEl","$navItem","$dropdown","hover","stop","openDropDown","$scroller","$tabBarList","$tabBtns","$prevBtn","$nextBtn","$toggleBtns","$contentItems","currentIndex","windowWidth","outerWidth","hideItem","$body","showItem","scrollTabBar","direction","newScrollLeft","scrollLeft","checkScrollPosition","btnIndex","btnEl","$btn","accordionScrollEl","parent","scrollIntoView","scrollTo","scrollX","scrollY","tabScrollEl","$dropDownBtn","$dropDownBtnLabel","$dropDown","closeDropDown","toggleDropDown","$currentTabBtns","style","overflow","$secondaryNav","isSticky","bottomEdge","$label","is","ready","language","containerCssClass","form","errorPlacement","error","appendTo","thisForm","submit","$countryPicker","switchLocations","selectedCountry","item","$statePicker","selectedState","$moreBtn","$fullDescription","$resources","$loadMoreBtn","layout","absoluteImagePaths","API_ROOT","apiRoot","pageIndex","renderResources","totalRecords","formattedData","map","resource","resourceData","imgPath","Image","append","Last","getResources","defaultIndustry","industry","resourcesApi","resourcesCulture","resourcesSize","dataAttributes","resTmpl","requiredParams","makeAPICall","formData","serializeArray","reduce","acc","filters","forEach","fltr","dataType","contentType","tmpl","main","total","datamain","selectEle","change","registerHelper","attributes","hash","escapedKey","escapeExpression","escapedValue","escapedOutput","join","SafeString","toggler","Array","isArray","tog","addEventListener","parentElement","querySelector","toggle","$visualOptions","$form","npt","checked","$daily","$monthly","prop","trigger","popover","tooltip","gpm","version","culture","createOption","option","Id","Title","Url","quoteBox","gpmQuoteBox","bankSearch","gpmBankSearch","payerIsRemitter","gpmPayerIsRemitter","currencyRatesBoard","gpmCurrencyRatesBoard","refundForm","gpmRefundForm","LibraryCommonHelpers","test","parseISO8601String","dateString","resultDate","exec","utcdate","Date","UTC","parseInt","parseFloat","offsetMinutes","toMyTimeZoneDate","date","current","getTime","getTimezoneOffset","LibraryCompositeHelpers","undefined","self","count","pluginName","defaults","Plugin","settings","_defaults","_name","init","lct","String","format","args","arguments","Product","Currency","PopularCurrencies","OtherCurrencies","currencyRate","escapeMarkup","currencies","rate","currency","JSON","parse","getCurrencyData","Target","setCurrenciesAttributes","event","btnid","ProductChanged","setInputWidth","proxy","CurrencyChanged","keyup","addCommas","removeCommas","rates","empty","Option","setAttribute","getListOfRates","getRateCalculated","getUpdatedDate","curr_to_check","resultTo","resultFrom","toVal","fromVal","Code","currentDate","font","extraW","inputextTo","inputextFrom","wF","getTextWidth","wT","flag","context","canvas","createElement","getContext","measureText","nStr","x","split","x1","x2","rgx","str","newVal","charAt","formatCurrency","fn","jQuery","Form","Culture","ClientId","ProjectId","QuoteBox","RemitterBankCountry","PaymentCurrency","PaymentAmount","SettlementCurrency","ClientRate","SettlementCurrency2","SettlementAmount","PaymentCurrency2","ClientRate2","ErrorLog","RefreshQuote","FeeAmount","Total","FirstName","LastName","RemitterCountry","linkedCurrencies","dependent","currenciesChanged","isPayment","amountType","type","success","status","clientRate","settlementAmount","paymentAmount","feeAmount","itemsTotal","loadData","apiUrl","group","defaultValue","Address1","City","State","Zip","Country","Email","PayerIsRemitter","RemitterName","RemitterAddress1","RemitterCity","RemitterState","RemitterZip","RemitterEmail","getPayerDetailsToRemitter","amountTypeChanged","getCurrencies","getQuote","resetForm","paymentCurrency","code","precision","isDefault","settlementCurrency","valid","size","BankCountry","BankState","AccountNumber","RoutingCode","abbr","unbind","BankCountryChanged","CountryChanged","loadCurrencies","loadCountries","setTimeout","ProcessData","setDropDownValue","countryFieldsData","fieldName","fieldProperties","attributeName","attributeValue","setMask","setRegExpr","setHelp","setShow","setReadOnly","setRequired","setEnabledOptions","loadStates","CurrencyCode","state","stateOption","stateGroup","countryValue","field","fieldData","Show","control","clearMaskOnLostFocus","removeMaskOnSubmit","greedy","clearIncomplete","showMaskOnHover","validator","addMethod","label","v","regExpr","RegExp","optional","setDisabled","setHtml","values","hadGlobal","oldGlobal","Modernizr","createElementNS","fake","getComputedStyle","getPropertyValue","currentStyle","u","_version","_config","classPrefix","enableClasses","enableJSClass","usePrefixes","_q","addTest","addAsyncTest","f","nodeName","h","_prefixes","matchMedia","msMatchMedia","matches","appendChild","styleSheet","cssText","createTextNode","background","parentNode","removeChild","mq","TouchEvent","DocumentTouch","aliases","Boolean","className","baseVal"],"mappings":"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","file":"gpm.suWUBS.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([66,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import $ from 'jquery';\r\nimport 'select2';\r\nimport 'jquery.easing';\r\nimport 'Inputmask';\r\nimport 'jquery-validation';\r\nimport Handlebars from 'handlebars/dist/cjs/handlebars';\r\n\r\n// 2021.09.30\r\n\r\n$('.gas-calculator').each((i, el) => {\r\n const $el = $(el);\r\n\r\n // Calculator functionality\r\n // ------------------------------------------------------------------------ //\r\n\r\n // Inputs\r\n const $rateForm = $el.find('.calculator-converter-form');\r\n const $Amount = $el.find('#Amount');\r\n const $SellCurrency = $el.find('#SellCurrency');\r\n const $BuyCurrency = $el.find('#BuyCurrency');\r\n\r\n // Outputs\r\n const $outputSuccess = $el.find('.calculator-output-success');\r\n const $outputError = $el.find('.calculator-output-error');\r\n const $outputCalc = $el.find('.gas-calculator-output');\r\n const $calculatorSpinner = $el.find('.gas-calculator-spinner');\r\n // Actions\r\n const $InvertCurrency = $el.find('#InvertCurrency');\r\n const $CalculateBtn = $el.find('#CalculateBtn');\r\n // API URL build\r\n const calcAPI = $rateForm.data('api-root') + $rateForm.data('api-url');\r\n // Keep track if taking values from left to right with form inputs or the other way\r\n let isReversed = false;\r\n\r\n // Auto-format inputs to currency\r\n $Amount.inputmask();\r\n\r\n // Enable select2\r\n $SellCurrency.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n\r\n $BuyCurrency.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n\r\n function templateSelectionCurrency(country, notList) {\r\n notList = notList ? true : false;\r\n if (!country.id) {\r\n return country.text;\r\n }\r\n var countryCode = country.element.value.toLowerCase();\r\n var countrySym = country.id;\r\n var countryName = country.text.slice(country.text.lastIndexOf('-') + 1).trim();\r\n var $country = $(\r\n '' + countrySym + (notList ? '' : ' - ') + '' + countryName + ''\r\n );\r\n return $country;\r\n }\r\n\r\n function templateResultCurrency(country) {\r\n return templateSelectionCurrency(country, false);\r\n }\r\n\r\n function showRateError() {\r\n $outputSuccess.hide();\r\n $outputError.show();\r\n }\r\n\r\n function clearRateError() {\r\n $outputSuccess.show();\r\n $outputError.hide();\r\n }\r\n\r\n function getRate() {\r\n $calculatorSpinner.show();\r\n const amount = $Amount.val();\r\n const fromCurrency = isReversed ? $BuyCurrency.val() : $SellCurrency.val();\r\n const toCurrency = isReversed ? $SellCurrency.val() : $BuyCurrency.val();\r\n\r\n if (isReversed) {\r\n $SellCurrency.val(fromCurrency);\r\n $SellCurrency.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n\r\n $BuyCurrency.val(toCurrency);\r\n $BuyCurrency.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n\r\n isReversed = false;\r\n }\r\n\r\n // call API\r\n $.ajax({\r\n method: 'GET',\r\n url: `${calcAPI}${fromCurrency}/${toCurrency}`\r\n })\r\n .done(json => {\r\n $calculatorSpinner.hide();\r\n clearRateError();\r\n var data = json[0];\r\n data.FromCurrencyAmount = amount;\r\n data.FromCurrency = fromCurrency;\r\n data.FromCurrencySymbol = $SellCurrency.find(\":selected\").data(\"symbol\");\r\n data.FromCurrencyName = $SellCurrency.find(\":selected\").text();\r\n data.ToCurrencyAmount = (data.Rate * data.FromCurrencyAmount).toFixed(2);\r\n data.ToCurrency = toCurrency;\r\n data.ToCurrencySymbol = $BuyCurrency.find(\":selected\").data(\"symbol\");\r\n data.ToCurrencyName = $BuyCurrency.find(\":selected\").text();\r\n data.InverseRate = (1 / data.Rate).toFixed(8);\r\n\r\n let calculatorResultTemplate = $('#gas-calculator-result-template');\r\n var template = Handlebars.compile(calculatorResultTemplate.html());\r\n $outputSuccess.html($.parseHTML(template(data)));\r\n // Handlebars.compile(tmpl.html())\r\n\r\n //// Left output\r\n //$outputValueFrom.html(data.ResultFrom);\r\n //$outputKindFrom.html($('#currency-kind-from option:selected').text());\r\n //// Right output\r\n //$outputValueTo.html(data.ResultTo);\r\n //$outputKindTo.html($('#currency-kind-to option:selected').text());\r\n //// Rate\r\n //$outputUnitRate.html(data.ResultUnitConversion);\r\n //$outputInvUnitRate.html(data.ResultUnitConversionReverse);\r\n\r\n })\r\n .fail(() => {\r\n $calculatorSpinner.hide();\r\n showRateError();\r\n });\r\n\r\n // call GTM\r\n var eobj = { amount: amount, from: fromCurrency, to: toCurrency };\r\n callGTM('getRate', eobj);\r\n }\r\n\r\n // Bind\r\n // ----------------------------------------- //\r\n $CalculateBtn.on('click', e => {\r\n isReversed = false;\r\n getRate();\r\n $outputCalc.addClass('is-open');\r\n // WCAG\r\n $outputCalc.attr('aria-hidden', false);\r\n $CalculateBtn.attr('aria-expanded', true);\r\n });\r\n // Swap\r\n $InvertCurrency.on('click', () => {\r\n isReversed = true;\r\n getRate();\r\n });\r\n\r\n // Open close functionality\r\n // ------------------------------------------------------------------------ //\r\n const $ctaBtn = $el.find('.calculator-cta');\r\n let isOpen = false;\r\n});\r\n\r\n// Send data to Google Tag Manager via event\r\nfunction callGTM(ename, eobj) {\r\n var gtmstr = 'window.dataLayer = window.dataLayer || [];';\r\n gtmstr += 'window.dataLayer.push({';\r\n if (typeof eobj != \"undefined\") {\r\n gtmstr += \"'event': '\" + ename + \"',\";\r\n if (Object.keys(eobj).length > 0 && eobj.constructor === Object) {\r\n var currPairCode = eobj.amount + \"-\" + eobj.from + \"-to-\" + eobj.to;\r\n gtmstr += \"'currPairCode': '\" + currPairCode + \"',\";\r\n gtmstr += \"'currVal': '\" + eobj.amount + \"',\";\r\n gtmstr += \"'currFrom': '\" + eobj.from + \"',\";\r\n gtmstr += \"'currTo': '\" + eobj.to + \"',\";\r\n }\r\n } else if (ename == \"rateAlertSuccess\") {\r\n gtmstr += \"'event':'\" + ename + \"',\";\r\n }\r\n gtmstr += '});'; //some arbitrary name for the page/state\r\n if (typeof gtmstr !== 'undefined' && gtmstr.length > 0)\r\n eval(gtmstr);\r\n}\r\n","import $ from 'jquery';\r\nimport 'select2';\r\nimport 'jquery.easing';\r\nimport 'Inputmask';\r\nimport 'jquery-validation';\r\n\r\nconst $calculators = $('.calculator');\n\r\n$calculators.each((i, el) => {\r\n const $el = $(el);\r\n\r\n // Calculator functionality\r\n // ------------------------------------------------------------------------ //\r\n\r\n // Inputs\r\n const $rateForm = $el.find('.calculator-converter-form');\r\n const $currencyValueFrom = $el.find('#currency-value-from');\r\n const $currencyKindFrom = $el.find('#currency-kind-from');\r\n const $currencyKindTo = $el.find('#currency-kind-to');\n const $currencyRateText = $el.find('#alert-rate');\r\n // Outputs\r\n const $outputValueFrom = $el.find('.calculator-output-value-from');\r\n const $outputKindFrom = $el.find('.calculator-output-kind-from');\r\n const $outputValueTo = $el.find('.calculator-output-value-to');\r\n const $outputKindTo = $el.find('.calculator-output-kind-to');\r\n const $outputSuccess = $el.find('.calculator-output-success');\r\n const $outputError = $el.find('.calculator-output-error');\n const $outputCalc = $el.find('.calculator-output');\n const $outputUnitRate = $el.find('.calculator-unit-rate');\n const $outputInvUnitRate = $el.find('.calculator-inv-unit-rate');\r\n // Actions\r\n const $rateCalculate = $el.find('.calculator-rate');\r\n const $currencySwap = $el.find('.calculator-converter-swap');\n // API URL build\n const calcAPI = $rateForm.data('api-root') + $rateForm.data('api-url');\n // Keep track if taking values from left to right with form inputs or the other way\r\n let isReversed = false;\r\n\r\n // Auto-format inputs to currency\r\n $currencyValueFrom.inputmask();\r\n\r\n // Enable select2\r\n $currencyKindFrom.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n\r\n $currencyKindTo.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n\r\n function templateSelectionCurrency(country, notList) {\n notList = notList ? true : false;\r\n if (!country.id) {\r\n return country.text;\r\n }\r\n var countryCode = country.element.value.toLowerCase();\r\n var countrySym = country.id;\r\n var countryName = country.text.slice(country.text.lastIndexOf('-') + 1).trim();\r\n var $country = $(\n '' + countrySym + (notList ? '' : ' - ') + '' + countryName + ''\r\n );\r\n return $country;\r\n }\r\n\r\n function templateResultCurrency(country) {\r\n return templateSelectionCurrency(country, false);\r\n }\n\n function updateRateUI(data) {\r\n if (isReversed) {\r\n // Update Select Values\r\n $currencyKindFrom.val(data.FromCurrency);\r\n $currencyKindTo.val(data.ToCurrency);\r\n // Update view via select2\r\n $currencyKindFrom.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n $currencyKindTo.select2({\r\n templateResult: templateResultCurrency,\r\n templateSelection: templateSelectionCurrency\r\n });\r\n }\n // Left output\r\n $outputValueFrom.html(data.ResultFrom);\r\n $outputKindFrom.html($('#currency-kind-from option:selected').text());\r\n // Right output\r\n $outputValueTo.html(data.ResultTo);\r\n $outputKindTo.html($('#currency-kind-to option:selected').text());\n // Alert\n $alertRate.attr('placeholder', $currencyRateText.data('text-alert') + ' ' + data.FromCurrency + ' > _ ' + data.ToCurrency);\r\n // Rate\r\n $outputUnitRate.html(data.ResultUnitConversion);\r\n $outputInvUnitRate.html(data.ResultUnitConversionReverse);\r\n }\r\n\r\n function showRateError() {\r\n $outputSuccess.hide();\r\n $outputError.show();\r\n }\r\n\r\n function clearRateError() {\r\n $outputSuccess.show();\r\n $outputError.hide();\r\n }\r\n\r\n function getRate() {\r\n const val = $currencyValueFrom.val();\r\n const from = isReversed ? $currencyKindTo.val() : $currencyKindFrom.val();\r\n const to = isReversed ? $currencyKindFrom.val() : $currencyKindTo.val();\r\n // call GTM\n var eobj = { amount: val, from: from, to: to };\r\n callGTM('getRate', eobj);\n\n // call API\r\n $.ajax({\r\n method: 'GET',\r\n url: `${calcAPI}${val}/${from}/${to}/`\r\n })\r\n .done(data => {\r\n clearRateError();\r\n updateRateUI(data);\r\n })\r\n .fail(() => {\r\n showRateError();\r\n });\r\n }\r\n\r\n // Bind\r\n // ----------------------------------------- //\n $('#btn-calculate').on('click', e => {\n isReversed = false;\r\n getRate();\n $outputCalc.addClass('is-open');\n // WCAG\n $outputCalc.attr('aria-hidden', false);\n $('#btn-calculate').attr('aria-expanded', true);\n });\n // Swap\r\n $currencySwap.on('click', () => {\r\n isReversed = true;\r\n getRate();\r\n });\n\n // Set Rate Alert functionality\r\n // ------------------------------------------------------------------------ //\r\n const alertAPI = 'https://business.westernunion.com/api/converter/alert/';\r\n const $alertForm = $el.find('.calculator-alert-form');\r\n const $alertEmail = $alertForm.find('#alert-email');\r\n const $alertRate = $alertForm.find('#alert-rate');\r\n const $alertBtn = $alertForm.find('.calculator-alert-btn');\r\n const $alertMessage = $el.find('.calculator-alert-message');\r\n const $alertSuccess = $el.find('.calculator-alert-message-success');\n\n $alertRate.inputmask();\n\r\n function showAlertSuccess() {\r\n $alertMessage.addClass('show-success');\r\n }\r\n\r\n function showAlertError() {\r\n $alertMessage.addClass('show-error');\r\n }\r\n\r\n function resetAlertForm() {\r\n $alertEmail.val('');\r\n $alertRate.val('');\r\n }\n\r\n $alertForm.validate({\r\n errorClass: 'is-invalid',\n submitHandler: () => {\n const email = $alertEmail.val();\r\n const country = $currencyKindFrom.val().substring(0, 2);\r\n const targetRate = $alertRate.val();\r\n const fromCurrency = $currencyKindFrom.val();\r\n const toCurrency = $currencyKindTo.val();\r\n $alertMessage.removeClass('show-success').removeClass('show-error');\r\n $alertBtn.addClass('is-loading').attr('disabled', 'disabled');\r\n\r\n $.ajax({\r\n method: 'GET',\r\n url: `${alertAPI}${email}/${country}/${targetRate}/${fromCurrency}/${toCurrency}`\r\n })\r\n .done(() => {\n callGTM('rateAlertSuccess');\r\n showAlertSuccess();\r\n resetAlertForm();\r\n $alertBtn.removeClass('is-loading').removeAttr('disabled');\r\n })\r\n .fail(data => {\r\n console.log('error', data);\r\n showAlertError();\r\n $alertBtn.removeClass('is-loading').removeAttr('disabled');\r\n });\r\n\r\n return false;\r\n }\r\n });\r\n\r\n // Open close functionality\r\n // ------------------------------------------------------------------------ //\r\n const $ctaBtn = $el.find('.calculator-cta');\r\n const $alertSection = $el.find('.calculator-alert');\r\n let isOpen = false;\r\n\r\n function openAlert() {\r\n // Get height of alert section\r\n // (which is absolutely positioned off the left of the screen)\r\n const height = $alertSection.outerHeight();\r\n // Make height 0\r\n $alertSection.css('height', 0);\r\n // Bring alert onto the screen\n $el.addClass('is-open');\n // Animate the height of the alert section\r\n $alertSection.animate(\r\n {\r\n height\r\n },\r\n 400,\r\n 'easeOutQuad',\r\n () => {\r\n // clear out the inline styles so things work responsively\r\n $alertSection.attr('style', '');\r\n }\r\n );\r\n // Set things as open\r\n isOpen = true;\r\n }\r\n\r\n function closeAlert() {\r\n // Animate the height of the alert section\r\n $alertSection.animate(\r\n {\r\n height: 0\r\n },\r\n 400,\r\n 'easeOutQuad',\r\n () => {\n // Hide alert on screen\r\n $el.removeClass('is-open');\r\n // clear out the inline styles so things work responsively\r\n $alertSection.attr('style', '');\n }\r\n );\r\n // Set things as closed\r\n isOpen = false;\r\n }\r\n\r\n $ctaBtn.click(e => {\r\n e.preventDefault();\r\n if (isOpen) {\r\n closeAlert();\r\n } else {\r\n openAlert();\r\n }\r\n });\r\n});\r\n\n// Send data to Google Tag Manager via event\r\nfunction callGTM(ename, eobj) {\n var gtmstr = 'window.dataLayer = window.dataLayer || [];';\r\n gtmstr += 'window.dataLayer.push({';\n if (typeof eobj != \"undefined\") {\n gtmstr += \"'event': '\" + ename + \"',\";\n if (Object.keys(eobj).length > 0 && eobj.constructor === Object) {\n var currPairCode = eobj.amount + \"-\" + eobj.from + \"-to-\" + eobj.to;\n gtmstr += \"'currPairCode': '\" + currPairCode + \"',\";\r\n gtmstr += \"'currVal': '\" + eobj.amount + \"',\";\r\n gtmstr += \"'currFrom': '\" + eobj.from + \"',\";\r\n gtmstr += \"'currTo': '\" + eobj.to + \"',\";\r\n }\n } else if (ename == \"rateAlertSuccess\") {\n gtmstr += \"'event':'\" + ename + \"',\";\r\n }\r\n gtmstr += '});'; //some arbitrary name for the page/state\r\n if (typeof gtmstr !== 'undefined' && gtmstr.length > 0)\r\n eval(gtmstr);\r\n}\n","const $figureModal = $(\".figure-modal\");\n\n\n$figureModal.each((_, el) => {\n const $el = $(el);\n\n $el.find('.close').on('click', function () {\n\n var youtubeEl = $el.find('iframe[src*=\"youtube\"]');\n\n // if iframe with video exists\n if (youtubeEl.length > 0) {\n // store src of element\n var src = youtubeEl.attr('src');\n\n // empty the iframe's src attribute\n youtubeEl.attr('src', '');\n\n // Again ready to be played\n youtubeEl.attr('src', src);\n }\n });\n});\n","import $ from 'jquery';\r\nimport 'select2';\r\nimport 'jquery.easing';\r\nimport 'Inputmask';\r\nimport 'jquery-validation';\r\n\r\nconst $payments = $('.payments-cap-container');\r\nconst $paymentCapCountry = $('.payment-country-list .country-body a');\r\nconst $paymentSelect = $('.payment-country-select');\nconst $mapContainer = $('#regions-map');\r\nvar continentArr = '';\r\nvar countryArr = [];\r\nvar data;\r\nvar chart;\r\nvar sortOrder = 0;\n\n// Iterate through payment blocks on page\r\n$payments.each((i, el) => {\n // add class to body to restrict styles to this page only\n $('body').attr('class', 'payments-cap-main')\r\n // create continent array from string\r\n const regex = /'/gi;\r\n continentArr = eval($payments.attr('data-continents').replace(regex, '\"'));\r\n // Prepare the country list\r\n setCountryList();\r\n // Load the Visualization API and the piechart package.\r\n google.charts.load('current', {\r\n 'packages': ['geochart'], 'mapsApiKey': $payments.attr('data-maps-api-key')\r\n });\r\n // Set a callback to run when the Google Visualization API is loaded.\r\n google.charts.setOnLoadCallback(drawRegionMap);\n});\n\r\n// Iterate through continent header to replace continent names in list\r\n$('.payment-country-list .continent-header').each((i, elCh) => {\r\n var headContinent = $(elCh).find('a span');\r\n var linkText = headContinent.text();\r\n\r\n if (continentArr.indexOf(linkText)) {\r\n if (continentArr[0].hasOwnProperty(linkText)) {\r\n headContinent.text(continentArr[0][linkText]);\r\n }\r\n }\r\n});\n\n//select2 config\r\n$paymentSelect.select2({\r\n placeholder: $paymentSelect.attr('data-placeholder'),\r\n data: countryArr,\n matcher: matchCustom,\r\n sorter: sortResults,\n allowClear: true,\n});\n\n// On country search select\r\n$paymentSelect.on('change', function (e) {\r\n const countryCode = $(this).val();\n // show modal\n if (countryCode.length > 0)\r\n showModal(countryCode);\r\n});\n\n// select list icon class behaviour\n$('.payment-country-list').on('hide.bs.collapse show.bs.collapse', e => {\n $(e.target).prev().toggleClass('active');\n $(e.target)\r\n .prev()\r\n .find(\"i:last-child\")\r\n .toggleClass(\"fa-chevron-down fa-chevron-up\");\n});\n\n// On country click\r\n$paymentCapCountry.on('click', function () {\r\n const countryCode = $(this).data('country-code');\n // show modal\r\n if (countryCode.length > 0)\r\n showModal(countryCode);\r\n});\n\n// Prepare Country list array\r\nfunction setCountryList() {\r\n var queryString = '';\r\n var objCountry = {};\n $paymentCapCountry.each((i, country) => {\r\n const $country = $(country);\n var specialSortVal = $country.attr('data-country-sort') ? $country.attr('data-country-sort') : -1;\r\n queryString = $country.attr('data-country-title') + ' - ' + $country.attr('data-currency-title') + ' - ' + $country.attr('data-currency-code');\n objCountry = { id: $country.attr('data-country-code'), text: queryString, sort: 0, specialSort: specialSortVal };\n countryArr.push(objCountry);\r\n });\n // have empty option with default text to show\n countryArr.unshift({ id: '', text: $paymentSelect.attr('data-placeholder') });\n}\n\n// Match criterion for select2 search, loops throught data arr for each search term\nfunction matchCustom(params, data) {\n // If there are no search terms, return all of the data\r\n if ($.trim(params.term) === '') {\n sortOrder = 0;\r\n return data;\r\n }\r\n // Do not display the item if there is no 'text' property\r\n if (typeof data.text === 'undefined') {\n sortOrder = 0;\r\n return null;\r\n }\r\n var filteredChildren = [];\r\n // `params.term` should be the term that is used for searching; `data.text` is the text that is displayed for the data object\n // countryArr.length is items in country arr; \r\n var curr = data.text.substr(data.text.lastIndexOf(' - ') + 3);\n sortOrder = sortOrder + 1;\n if (data.text.toUpperCase().indexOf(params.term.toUpperCase()) > -1) {\n // search match from begining of term\n if (data.text.toUpperCase().indexOf(params.term.toUpperCase()) == 0) {\r\n data.sort = sortOrder;\n filteredChildren.push(data);\n }\n // currency exact match with term\n else if (params.term.toUpperCase() == curr.toUpperCase()) {\n // for special data items to show on top\n if (data.specialSort >= 0) {\n data.sort = data.specialSort;\n filteredChildren.push(data);\n } else {\n data.sort = (sortOrder + countryArr.length);\n filteredChildren.push(data);\r\n }\n }\n // all other terms\n else if (data.text.toUpperCase().indexOf(params.term.toUpperCase()) > 0) {\n data.sort = (sortOrder + (countryArr.length * 2));\n filteredChildren.push(data);\r\n }\r\n\n if (filteredChildren.length) {\r\n var modifiedData = $.extend({}, data, true);\r\n // You can return modified objects from here\r\n return modifiedData;\r\n }\r\n }\n // Return `null` if the term should not be displayed\r\n return null;\r\n}\n\n// sort the select2 list results\nfunction sortResults(results) {\n return results.sort(function (a, b) {\r\n if (a.sort > b.sort) {\r\n return 1;\r\n } else if (a.sort < b.sort) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n}\n\r\n// Modal related\r\nfunction showModal(countryCode) {\n var $modalCurr = $('#modal-' + countryCode);\n var continentCode = $modalCurr.parents('.collapse').attr('aria-labelledby');\n // simulate the accordion click\n if ($('#' + continentCode + ' a[aria-expanded=true]').length == 0) {\n $('#' + $modalCurr.parents('.collapse').attr('aria-labelledby')).find('a').click();\r\n }\n // trigger modal\r\n $modalCurr.modal();\n // format Modal\n formatModalCaps(countryCode);\n // call to add currency code\n addCurrency(countryCode);\n // scroll to map region\n $('html, body').animate({\r\n scrollTop: $mapContainer.offset().top - 0\r\n }, 'slow');\n}\n\n// Modal format for 2 col\r\nfunction formatModalCaps(countryCode) {\n var colsCard = $('#modal-' + countryCode).find('div[data-row=2nd] div[data-cap-col=1]');\n // for 2 or more columns of capability groups\n if (colsCard.length > 1) {\n colsCard.addClass('col-md-6');\n colsCard.children('.row').css('margin-right', '1px');\r\n }\n}\n\n// add currency code in modal\nfunction addCurrency(countryCode) {\n var $paymentFooterLink = $('#modal-' + countryCode).find('.modal-footer a.payment-link');\n if ($paymentFooterLink.attr('data-currency-added') != 1) {\n $paymentFooterLink.html(($paymentFooterLink.html()).trim() + ' ' + $('#modal-' + countryCode).attr('data-currency-code'));\n $paymentFooterLink.attr('data-currency-added', 1);\r\n }\n}\n\r\n// Google geo charts for map draw\r\nfunction drawRegionMap() {\r\n var countryColor = '#fd0';\r\n var countryText = '';\r\n var countryCode = '';\r\n var countryTitle = '';\r\n var resultArr = [];\r\n\r\n data = new google.visualization.DataTable();\r\n data.addColumn('string', 'Country');\r\n data.addColumn('string', 'Title');\r\n\r\n if (countryArr.length) {\n for (var index in countryArr) {\r\n countryText = countryArr[index].text;\r\n countryCode = countryArr[index].id;\r\n countryTitle = countryText.slice(0, countryText.indexOf(' - ')).trim();\r\n resultArr.push([countryCode, countryTitle]);\r\n }\r\n }\r\n\r\n data.addRows(\r\n resultArr\r\n );\r\n\r\n // Set chart options\r\n var options = {\r\n 'title': 'Payment Capabilities, WUBS',\r\n 'width': '100%',\r\n 'height': 698,\r\n 'defaultColor': countryColor,\r\n 'domain': 'IN'\r\n };\r\n\r\n // Instantiate and draw our chart, passing in some options.\r\n chart = new google.visualization.GeoChart(document.getElementById('regions-map'));\r\n google.visualization.events.addListener(chart, 'select', selectHandler);\r\n console.log(' draw region map :-/ ');\r\n chart.draw(data, options);\r\n}\r\n\r\n// select handler geo charts click\r\nfunction selectHandler() {\r\n if (typeof chart.getSelection()[0] != 'undefined') {\r\n var selectedItem = chart.getSelection()[0];\r\n var value = data.getValue(selectedItem.row, 0);\n if (value.length > 0)\n showModal(value);\r\n }\r\n}\n","// Glossary script\r\n\r\nconst indexEl = document.getElementsByClassName(\"glossary-index\")[0];\r\nconst contentEl = document.getElementsByClassName(\"glossary-content\")[0];\r\nconst marginBottom = 45; // static margin of term element\r\n\r\n// Get Y coordinate of content part\r\nconst mainTopOffset = getOffsetTop(contentEl);\r\n\r\n// call function on scroll if glossary element present\r\nif (document.getElementsByClassName(\"glossary\").length > 0) {\r\n window.onscroll = function () { scrollFunction() };\r\n}\r\n\r\n// on scroll change DOM for glossary index and content\r\nfunction scrollFunction() {\r\n // case 1: when scroll on glossary part begins and scrolling over the content part\r\n if ((document.documentElement.scrollTop > mainTopOffset && document.body.scrollTop < (contentEl.offsetHeight - marginBottom))) {\r\n indexEl.classList.add(\"fixed-desktop\");\r\n indexEl.classList.remove(\"stick-left\");\r\n // change position \r\n contentEl.classList.add(\"offset-1\");\r\n contentEl.classList.add(\"offset-sm-0\");\r\n } else {\r\n //case default\r\n indexEl.classList.remove(\"fixed-desktop\");\r\n contentEl.classList.remove(\"offset-1\");\r\n contentEl.classList.remove(\"offset-sm-0\");\r\n }\r\n // case 2: when glossary part is scrolled over\r\n if (document.documentElement.scrollTop >= (contentEl.offsetHeight - marginBottom)) {\r\n indexEl.classList.remove(\"fixed-desktop\");\r\n indexEl.classList.add(\"stick-left\");\r\n } \r\n}\r\n\r\n// returns top offset of an element\r\nfunction getOffsetTop(element) {\r\n let offsetTop = 0;\r\n while (element) {\r\n offsetTop += element.offsetTop;\r\n element = element.offsetParent;\r\n }\r\n return offsetTop;\r\n}\r\n","import $ from 'jquery';\r\nimport 'jquery.easing';\r\n\r\nimport { LG_BREAKPOINT } from '../constants/constants';\r\n\r\nconst $window = $(window);\r\nconst $header = $('header.header');\r\nconst $headerNav = $('.header-nav');\r\n\r\n// Search\r\n// ------------------------------------------------------------------------ //\r\nconst $searchDropdownWrap = $('.search-dropdown');\nconst $searchDropdownBtn = $('.header-search-btn');\r\nconst $searchDropdown = $('.search-dropdown-form');\r\nconst $searchDropdownInput = $('.search-dropdown-input');\r\n\r\nfunction openSearchDropdown() {\r\n $searchDropdown.css('height', 0);\r\n $searchDropdown.addClass('is-open');\n $searchDropdownBtn.attr('aria-expanded', true);\n $searchDropdownWrap.attr('aria-hidden', false);\n $searchDropdown.animate(\r\n {\r\n height: 83\r\n },\r\n 300,\r\n 'easeOutQuad',\r\n () => {\r\n $searchDropdown.attr('style', '');\n $searchDropdownInput.focus();\r\n }\r\n );\r\n}\r\n\r\nfunction closeSearchDropdown() {\n $searchDropdownBtn.attr('aria-expanded', false);\n $searchDropdownWrap.attr('aria-hidden', true);\r\n $searchDropdown.animate(\r\n {\r\n height: 0\r\n },\r\n 300,\r\n 'easeOutQuad',\r\n () => {\r\n $searchDropdown.removeClass('is-open');\r\n $searchDropdown.attr('style', '');\n }\r\n );\r\n}\r\n\r\n$searchDropdownBtn.click(e => {\r\n e.preventDefault();\r\n if ($searchDropdown.hasClass('is-open')) {\r\n closeSearchDropdown();\r\n } else {\r\n openSearchDropdown();\r\n }\r\n});\r\n\r\n// Mobile Nav\r\n// ------------------------------------------------------------------------ //\r\n$header.each((_, el) => {\r\n const $el = $(el);\r\n const $mobileNav = $el.find('.mobile-nav');\r\n const $menuBtn = $el.find('.header-menu-btn');\r\n const $items = $mobileNav.find('.mobile-nav-item');\r\n let heights = [$mobileNav.height()];\r\n let depth = 0;\r\n let windowWidth = 0;\r\n let isMobile = true;\r\n let isOpen = false;\r\n\r\n // Methods\r\n // ----------------------------------------- //\r\n function slideMenuTo(newDepth, newHeight) {\r\n $mobileNav.css({\r\n height: newHeight,\r\n left: `-${100 * newDepth}%`\r\n });\r\n heights.push(newHeight);\r\n depth = newDepth;\r\n }\r\n\r\n function slideBack() {\r\n depth -= 1;\r\n heights.pop();\r\n $mobileNav.css({\r\n height: heights[heights.length - 1],\r\n left: `-${100 * depth}%`\r\n });\r\n }\r\n\r\n function reset() {\r\n $mobileNav.attr('style', '');\r\n $items.removeClass('is-open');\r\n heights = [$mobileNav.height()];\r\n depth = 0;\r\n }\r\n\r\n // Track window size\r\n // ------------------------------------------------------------------------ //\r\n function checkWindowSize() {\r\n windowWidth = $window.width();\r\n\r\n if (windowWidth >= LG_BREAKPOINT) {\r\n if (isMobile) {\r\n isMobile = false;\r\n reset();\r\n }\r\n } else if (isMobile === false) {\r\n isMobile = true;\r\n reset();\r\n }\r\n }\r\n $window.resize(() => {\r\n checkWindowSize();\r\n });\r\n\r\n // Do this first time page loads\r\n checkWindowSize();\r\n\r\n // Recursive dig down and get index for each nav list\r\n // ----------------------------------------- //\r\n function bindLinks(depthIndex, $parent) {\r\n const $list = $parent.children('.mobile-nav-list');\r\n const $header = $parent\r\n .children('.mobile-nav-sub-header')\r\n .children('.mobile-nav-sub-header-link');\r\n const $childItems = $list.children('.mobile-nav-item');\r\n\r\n function makeCurrent(itemIndex, newHeight) {\r\n $childItems.removeClass('is-open');\r\n $($childItems[itemIndex]).addClass('is-open');\r\n slideMenuTo(depthIndex + 1, newHeight);\r\n }\r\n\r\n if ($header.length > 0) {\r\n $header.click(e => {\r\n e.preventDefault();\r\n slideBack();\r\n });\r\n }\r\n\r\n // Bind links\r\n $childItems.each((itemIndex, itemEl) => {\r\n const $item = $(itemEl);\r\n const $link = $item.children('.mobile-nav-link');\r\n const $subLinks = $item.children('.mobile-nav-sub');\r\n\r\n if ($subLinks.length > 0) {\r\n $link.click(e => {\r\n e.preventDefault();\r\n makeCurrent(itemIndex, $subLinks.height());\r\n });\r\n // Go deeper\r\n bindLinks(depthIndex + 1, $subLinks);\r\n }\r\n });\r\n }\r\n\r\n // Start at the top list\r\n bindLinks(0, $mobileNav);\r\n\r\n // Menu Btn\r\n // ------------------------------------------------------------------------ //\r\n $menuBtn.click(e => {\r\n e.preventDefault();\r\n if (isOpen) {\r\n $header.removeClass('is-open');\r\n reset();\r\n isOpen = false;\r\n } else {\r\n $header.addClass('is-open');\r\n reset();\r\n isOpen = true;\r\n }\r\n });\r\n});\r\n\r\n// Nav\r\n// ------------------------------------------------------------------------ //\r\n$headerNav.each((_, el) => {\r\n const $el = $(el);\r\n const $navItems = $el.find('.header-nav-item');\r\n\r\n // Nav Items\r\n // ------------------------------------------------------------------------ //\r\n $navItems.each((navItemIndex, navItemEl) => {\r\n const $navItem = $(navItemEl);\r\n const $dropdown = $navItem.find('.header-dropdown');\r\n\r\n function openDropDown() {\r\n closeSearchDropdown(); // breaks encapsulation, need better way.\r\n\r\n // Get height of dropdown\r\n const height = $dropdown.height();\r\n // Collapse the dropdown\r\n $dropdown.height(0);\r\n // Bring the dropdown forward\r\n $navItem.addClass('is-open');\n // WCAG\n $navItem.attr('aria-expanded', true);\r\n // Animate the height of the dropdown\r\n $dropdown.stop().animate(\r\n {\r\n height\r\n },\r\n 300,\r\n 'easeOutQuad',\r\n () => {\r\n // Clear out the inline styles so things work responsively\r\n $dropdown.attr('style', '');\n $dropdown.attr('aria-hidden', false);\r\n }\r\n );\r\n }\r\n\r\n function closeDropdown() {\r\n // Animate the height of the dropdown\r\n $dropdown.stop().animate(\r\n {\r\n height: 0\r\n },\r\n 200,\r\n 'easeOutQuad',\r\n () => {\r\n // Clear out the inline styles so things work responsively\r\n $dropdown.attr('style', '');\r\n // Move the dropdown to the back\n $dropdown.attr('aria-hidden', true);\r\n $navItem.removeClass('is-open');\n $navItem.attr('aria-expanded', false);\n }\r\n );\r\n }\r\n\r\n if ($dropdown.length > 0) {\r\n $navItem.hover(\r\n () => {\r\n openDropDown();\r\n },\r\n () => {\r\n closeDropdown();\r\n }\r\n );\n }\r\n });\r\n});\r\n","export const LG_BREAKPOINT = 992;\r\n\r\nexport default LG_BREAKPOINT;\r\n","import $ from 'jquery';\r\nimport 'jquery.easing';\r\n\r\nimport { LG_BREAKPOINT } from '../constants/constants';\r\n\r\nconst $window = $(window);\r\nconst $tabs = $('.tabs-accord');\r\n\r\n$tabs.each((_, el) => {\r\n const $el = $(el);\r\n const $refContainer = $el.find('.tabs-accord-bar-ref-container'); // used to calculate responsive width\r\n const $scroller = $el.find('.tabs-accord-bar-scroller');\r\n const $tabBarList = $el.find('.tabs-accord-bar-list');\r\n const $tabBtns = $el.find('.tabs-accord-bar-btn');\r\n const $prevBtn = $el.find('.tabs-accord-bar-control-prev');\r\n const $nextBtn = $el.find('.tabs-accord-bar-control-next');\r\n const $toggleBtns = $el.find('.tabs-accord-content-toggle-btn');\r\n const $contentItems = $el.find('.tabs-accord-content-item');\r\n const isFullWidth = $el.hasClass('tabs-accord-full-width');\r\n let currentIndex = null;\r\n let windowWidth = 0;\r\n let isMobile = true;\r\n\r\n // Track window size\r\n // ------------------------------------------------------------------------ //\r\n function checkWindowSize() {\r\n windowWidth = $window.width();\r\n\r\n if (windowWidth >= LG_BREAKPOINT) {\r\n isMobile = false;\r\n } else {\r\n isMobile = true;\r\n }\r\n\r\n // Show/hide the tab bar prev/next arrows\r\n if ($tabBarList.outerWidth() > $scroller.outerWidth()) {\r\n $el.addClass('is-scrollable');\r\n } else {\r\n $el.removeClass('is-scrollable');\r\n }\r\n }\r\n $window.resize(() => {\r\n checkWindowSize();\r\n });\r\n\r\n // Do this first time page loads\r\n checkWindowSize();\r\n\r\n // Tab/Accordion Functionality\r\n // ------------------------------------------------------------------------ //\r\n function hideItem(itemIndex) {\r\n if (itemIndex !== null) {\r\n const $item = $($contentItems[itemIndex]);\r\n const $body = $item.find('.tabs-accord-content-body');\r\n\r\n if (isMobile) {\r\n // Accordion functionality for mobile\r\n $item.removeClass('is-current');\r\n $($tabBtns[itemIndex]).removeClass('is-current');\r\n // WCAG\r\n $($toggleBtns[itemIndex]).attr('aria-selected', false);\r\n $($toggleBtns[itemIndex]).attr('tabindex', '-1');\r\n // Animate the height of the alert section\r\n $body.animate({ height: 0 }, 400, 'easeOutQuad', () => {\r\n // Hide alert on screen\r\n $item.removeClass('is-on-screen');\r\n // clear out the inline styles so things work responsively\r\n $body.attr('style', '');\r\n });\r\n } else {\r\n $item.removeClass('is-current');\r\n $($tabBtns[itemIndex]).removeClass('is-current');\r\n // WCAG\r\n $($tabBtns[itemIndex]).attr('aria-selected', false);\r\n $($tabBtns[itemIndex]).attr('tabindex', '-1');\r\n $item.removeClass('is-on-screen');\r\n }\r\n // If hiding the current item reset the currentIndex\r\n if (itemIndex === currentIndex) {\r\n currentIndex = null;\r\n }\r\n }\r\n }\r\n\r\n function showItem(itemIndex) {\r\n const $item = $($contentItems[itemIndex]);\r\n const $body = $item.find('.tabs-accord-content-body');\r\n if (isMobile) {\r\n // Accordion functionality for mobile\r\n // Get height of body\r\n // (which is absolutely positioned off the left of the screen)\r\n const height = $body.outerHeight();\r\n // Make height 0\r\n $body.css('height', 0);\r\n // Bring body onto the screen\r\n $item.addClass('is-current');\r\n $item.addClass('is-on-screen');\r\n // Update the current tab\r\n $($tabBtns[itemIndex]).addClass('is-current');\r\n // WCAG\r\n $($toggleBtns[itemIndex]).attr('aria-selected', true);\r\n $($toggleBtns[itemIndex]).removeAttr('tabindex');;\r\n // Animate the height of the body\r\n $body.animate({ height }, 400, 'easeOutQuad', () => {\r\n // clear out the inline styles so things work responsively\r\n $body.attr('style', '');\r\n });\r\n } else {\r\n $item.addClass('is-current');\r\n $item.addClass('is-on-screen');\r\n $($tabBtns[itemIndex]).addClass('is-current');\r\n // WCAG\r\n $($tabBtns[itemIndex]).attr('aria-selected', true);\r\n $($tabBtns[itemIndex]).removeAttr('tabindex');\r\n }\r\n // Hide the current item\r\n hideItem(currentIndex);\r\n // Update the index\r\n currentIndex = itemIndex;\r\n }\r\n\r\n function toggleItem(itemIndex) {\r\n // Hide item if the item is already visible\r\n if (itemIndex === currentIndex) {\r\n hideItem(itemIndex);\r\n // Otherwise show it\r\n } else {\r\n showItem(itemIndex);\r\n }\r\n }\r\n\r\n // The accordion toggle buttons that are only visible on mobile/tablet\r\n $toggleBtns.each((btnIndex, btnEl) => {\r\n const $btn = $(btnEl);\r\n $btn.click(e => {\n // get element and scroll to it\r\n var accordionScrollEl = document.getElementById($btn.parent('a').attr('data-scroll-id'));\n if (accordionScrollEl) {\n accordionScrollEl.scrollIntoView();\r\n }\r\n // scroll to adjust for fixed header on mobile\n if (document.getElementsByClassName('header-top')[0]) {\n window.scrollTo(window.scrollX, window.scrollY - document.getElementsByClassName('header-top')[0].offsetHeight);\r\n }\n e.preventDefault();\r\n toggleItem(btnIndex);\r\n });\r\n });\r\n\r\n // The tab bar buttons that are only visible on desktop\r\n $tabBtns.each((btnIndex, btnEl) => {\r\n const $btn = $(btnEl);\r\n $btn.click(e => {\n // get element and scroll to it\r\n var tabScrollEl = document.getElementById($btn.parent('a').attr('data-scroll-id'));\n if (tabScrollEl) {\n tabScrollEl.scrollIntoView();\r\n }\r\n e.preventDefault();\r\n if (btnIndex !== currentIndex) {\r\n showItem(btnIndex);\r\n }\r\n });\r\n });\r\n\r\n // Show the first item\r\n showItem(0);\r\n\r\n // Tab bar scroll functionality\r\n // ------------------------------------------------------------------------ //\r\n function scrollTabBar(direction) {\r\n let newScrollLeft = 0;\r\n if (direction === 'right') {\r\n newScrollLeft = $scroller.scrollLeft() + windowWidth / 2;\r\n } else {\r\n newScrollLeft = $scroller.scrollLeft() - windowWidth / 2;\r\n }\r\n\r\n $scroller.animate({ scrollLeft: newScrollLeft }, 400, 'easeInOutQuad');\r\n }\r\n\r\n function checkScrollPosition() {\r\n const scrollLeft = $scroller.scrollLeft();\r\n if (scrollLeft > 0) {\r\n $prevBtn.addClass('is-enabled');\r\n } else {\r\n $prevBtn.removeClass('is-enabled');\r\n }\r\n\r\n if (scrollLeft < $tabBarList.outerWidth() - windowWidth) {\r\n $nextBtn.addClass('is-enabled');\r\n } else {\r\n $nextBtn.removeClass('is-enabled');\r\n }\r\n }\r\n\r\n $scroller.on('scroll', () => {\r\n checkScrollPosition();\r\n });\r\n\r\n checkScrollPosition();\r\n\r\n $prevBtn.click(e => {\r\n e.preventDefault();\r\n scrollTabBar('left');\r\n });\r\n\r\n $nextBtn.click(e => {\r\n e.preventDefault();\r\n scrollTabBar('right');\r\n });\r\n});\r\n","import $ from 'jquery';\r\nimport 'jquery.easing';\r\n\r\nimport { LG_BREAKPOINT } from '../constants/constants';\r\n\r\nconst $window = $(window);\r\nconst $tabs = $('.tabs-filter');\r\n\r\n$tabs.each((_, el) => {\r\n const $el = $(el);\r\n const $scroller = $el.find('.tabs-filter-bar-scroller');\r\n const $tabBarList = $el.find('.tabs-filter-bar-list');\r\n const $tabBtns = $el.find('.tabs-filter-bar-btn');\r\n const $prevBtn = $el.find('.tabs-filter-bar-control-prev');\r\n const $nextBtn = $el.find('.tabs-filter-bar-control-next');\r\n const $contentItems = $el.find('.tabs-filter-content-item');\r\n const $dropDownBtn = $el.find('.tabs-filter-bar-select-btn');\r\n const $dropDownBtnLabel = $dropDownBtn.find('.tabs-filter-bar-select-label');\r\n const $dropDown = $el.find('.tabs-filter-bar-scroller');\r\n let currentIndex = null;\r\n let windowWidth = 0;\r\n let isMobile = true;\r\n let isOpen = false;\r\n\r\n // Track window size\r\n // ------------------------------------------------------------------------ //\r\n function checkWindowSize() {\r\n windowWidth = $window.width();\r\n\r\n if (windowWidth >= LG_BREAKPOINT) {\r\n isMobile = false;\r\n } else {\r\n isMobile = true;\r\n }\r\n\r\n // Show/hide the tab bar prev/next arrows\r\n if ($tabBarList.outerWidth() > $scroller.outerWidth()) {\r\n $el.addClass('is-scrollable');\r\n } else {\r\n $el.removeClass('is-scrollable');\r\n }\r\n }\r\n $window.resize(() => {\r\n checkWindowSize();\r\n });\r\n\r\n // Do this first time page loads\r\n checkWindowSize();\r\n\r\n // Dropdown functionality\r\n // ------------------------------------------------------------------------ //\r\n function closeDropDown() {\r\n if (isMobile) {\r\n isOpen = false;\r\n // Animate the height of the drop down\r\n $dropDown.animate({ height: 0 }, 250, 'easeInOutQuad', () => {\r\n // Move drop down off screen\r\n $el.removeClass('is-open');\r\n // clear out the inline styles so things work responsively\r\n $dropDown.attr('style', '');\r\n\r\n $dropDownBtn.focus();\r\n });\r\n }\r\n }\r\n\r\n function openDropDown() {\r\n if (isMobile) {\r\n isOpen = true;\r\n // Get height of drop down\r\n // (which is absolutely positioned off the left of the screen)\r\n const height = $dropDown.outerHeight();\r\n // Make height 0\r\n $dropDown.css('height', 0);\r\n // Bring drop down onto the screen\r\n $el.addClass('is-open');\r\n // Animate the height of the drop down\r\n $dropDown.animate({ height }, 250, 'easeInOutQuad', () => {\r\n // clear out the inline styles so things work responsively\r\n $dropDown.attr('style', '');\r\n });\r\n }\r\n }\r\n\r\n function toggleDropDown() {\r\n if (isOpen) {\r\n closeDropDown();\r\n } else {\r\n openDropDown();\r\n }\r\n }\r\n\r\n // Tab/filter Functionality\r\n // ------------------------------------------------------------------------ //\r\n function hideItem(itemIndex) {\r\n if (itemIndex !== null) {\r\n const $item = $($contentItems[itemIndex]);\r\n\r\n $item.removeClass('is-current');\n $($tabBtns[itemIndex]).removeClass('is-current');\n // WCAG\n $($tabBtns[itemIndex]).attr('aria-selected', false);\n $($tabBtns[itemIndex]).attr('tabindex', -1);\r\n\r\n // If hiding the current item reset the currentIndex\r\n if (itemIndex === currentIndex) {\r\n currentIndex = null;\r\n }\r\n }\r\n }\r\n\r\n function showItem(itemIndex) {\r\n const $item = $($contentItems[itemIndex]);\r\n const $currentTabBtns = $($tabBtns[itemIndex]);\r\n\r\n $item.addClass('is-current');\n $currentTabBtns.addClass('is-current');\n // WCAG \n $currentTabBtns.attr('aria-selected', true);\n $($tabBtns[itemIndex]).removeAttr('tabindex');\r\n\r\n // Update the dropdown button\r\n $dropDownBtnLabel.text(\r\n $currentTabBtns.find('.tabs-filter-bar-label').text()\r\n );\r\n\r\n closeDropDown();\r\n\r\n // Hide the current item\r\n hideItem(currentIndex);\r\n // Update the index\r\n currentIndex = itemIndex;\r\n }\r\n\r\n // Show the first item\r\n showItem(0);\r\n\r\n // Tab bar scroll functionality\r\n // ------------------------------------------------------------------------ //\r\n function scrollTabBar(direction) {\r\n let newScrollLeft = 0;\r\n if (direction === 'right') {\r\n newScrollLeft = $scroller.scrollLeft() + windowWidth / 2;\r\n } else {\r\n newScrollLeft = $scroller.scrollLeft() - windowWidth / 2;\r\n }\r\n\r\n $scroller.animate({ scrollLeft: newScrollLeft }, 400, 'easeInOutQuad');\r\n }\r\n\r\n function checkScrollPosition() {\r\n const scrollLeft = $scroller.scrollLeft();\r\n if (scrollLeft > 0) {\r\n $prevBtn.addClass('is-enabled');\r\n } else {\r\n $prevBtn.removeClass('is-enabled');\r\n }\r\n\r\n if (scrollLeft < $tabBarList.outerWidth() - windowWidth) {\r\n $nextBtn.addClass('is-enabled');\r\n } else {\r\n $nextBtn.removeClass('is-enabled');\r\n }\r\n }\r\n\r\n $scroller.on('scroll', () => {\r\n checkScrollPosition();\r\n });\r\n\r\n checkScrollPosition();\r\n\r\n $prevBtn.click(e => {\r\n e.preventDefault();\r\n scrollTabBar('left');\r\n });\r\n\r\n $nextBtn.click(e => {\r\n e.preventDefault();\r\n scrollTabBar('right');\r\n });\r\n\r\n // The tab bar buttons that also double as the drop down\r\n $tabBtns.each((btnIndex, btnEl) => {\r\n const $btn = $(btnEl);\r\n $btn.click(e => {\n // unset value for scroll to not disturb the page\n if (document.getElementsByClassName('page-body')[0]) {\n document.getElementsByClassName('page-body')[0].style.overflow = 'unset';\r\n }\n // scroll to the tabs top\n var tabScrollEl = document.getElementById($btn.parent('a').attr('data-scroll-id'));\n if (tabScrollEl) {\n tabScrollEl.scrollIntoView(); \r\n }\r\n e.preventDefault();\r\n if (btnIndex !== currentIndex) {\r\n showItem(btnIndex);\r\n }\r\n });\r\n });\r\n\r\n // Dropdown button\r\n $dropDownBtn.click(e => {\n e.preventDefault();\r\n toggleDropDown();\r\n });\r\n});\r\n","import $ from 'jquery';\r\nimport 'jquery.easing';\r\n\r\nconst $secondaryNav = $('.secondary-nav');\r\nconst $secondaryNavSelect = $('.secondary-nav-select');\r\n\r\n// Mobile dropdown functionality\r\n// ------------------------------------------------------------------------ //\r\n$secondaryNavSelect.each((_, el) => {\r\n const $el = $(el);\r\n const $btn = $el.find('.secondary-nav-btn');\r\n const $dropDown = $el.find('.secondary-nav-drop-down');\r\n let isOpen = false;\r\n\r\n function closeDropDown() {\r\n isOpen = false;\r\n // Animate the height of the drop down\r\n $dropDown.animate({ height: 0 }, 250, 'easeInOutQuad', () => {\r\n // Move drop down off screen\r\n $el.removeClass('is-open');\r\n // clear out the inline styles so things work responsively\r\n $dropDown.attr('style', '');\r\n });\r\n }\r\n\r\n function openDropDown() {\r\n isOpen = true;\r\n // Get height of drop down\r\n // (which is absolutely positioned off the left of the screen)\r\n const height = $dropDown.outerHeight();\r\n // Make height 0\r\n $dropDown.css('height', 0);\r\n // Bring drop down onto the screen\r\n $el.addClass('is-open');\r\n // Animate the height of the drop down\r\n $dropDown.animate({ height }, 250, 'easeInOutQuad', () => {\r\n // clear out the inline styles so things work responsively\r\n $dropDown.attr('style', '');\r\n });\r\n }\r\n\r\n function toggleDropDown() {\r\n if (isOpen) {\r\n closeDropDown();\r\n } else {\r\n openDropDown();\r\n }\r\n }\r\n\r\n $btn.click(e => {\r\n e.preventDefault();\r\n toggleDropDown();\r\n });\r\n\r\n $btn.on('blur', () => {\r\n closeDropDown();\r\n });\r\n});\r\n\r\n// Sticky Nav functionality\r\n// ------------------------------------------------------------------------ //\r\n$secondaryNav.each((i, el) => {\r\n const $el = $(el);\r\n const $body = $el.find('.secondary-nav-body');\r\n const $window = $(window);\r\n let isSticky = false;\r\n let bottomEdge = $el.offset().top + $body.height();\r\n\r\n function stick() {\r\n isSticky = true;\r\n $el.addClass('is-sticky');\r\n }\r\n\r\n function unStick() {\r\n isSticky = false;\r\n $el.removeClass('is-sticky');\r\n }\r\n\r\n function checkScrollPosition() {\r\n if ($window.scrollTop() > bottomEdge) {\r\n if (isSticky === false) {\r\n stick();\r\n }\r\n } else if (isSticky) {\r\n unStick();\r\n }\r\n }\r\n\r\n $window.on('scroll', () => {\r\n checkScrollPosition();\r\n });\r\n\r\n $window.on('resize', () => {\r\n bottomEdge = $el.offset().top + $body.height();\r\n });\r\n\r\n checkScrollPosition();\r\n});\r\n","import $ from 'jquery';\r\n\r\nconst $countryPicker = $('.country-picker');\r\n\r\n$countryPicker.each((i, el) => {\r\n const $el = $(el);\r\n const $btn = $el.find('.country-picker-btn');\n const $dropdown = $el.find('.country-picker-dropdown');\r\n let isOpen = false;\n\r\n function openDropdown() {\r\n isOpen = true;\r\n $el.addClass('is-open');\n $dropdown.attr('aria-hidden', false);\n $btn.attr('aria-expanded', true);\r\n }\r\n\r\n function closeDropdown() {\r\n isOpen = false;\r\n $el.removeClass('is-open');\n $dropdown.attr('aria-hidden', true);\n $btn.attr('aria-expanded', false);\r\n }\r\n\r\n $btn.click(e => {\r\n e.preventDefault();\r\n if (isOpen) {\r\n closeDropdown();\r\n } else {\r\n openDropdown();\r\n }\r\n });\r\n});\r\n","import $ from 'jquery';\r\nimport 'select2';\nimport 'Inputmask';\r\nimport 'jquery-validation';\r\n\r\n// Check boxes\r\n// ------------------------------------------------------------------------ //\r\nconst $checkBoxes = $('.form-group.CheckBox');\r\n\r\n$checkBoxes.each((i, el) => {\r\n const $el = $(el);\r\n const $label = $el.find('label');\r\n\r\n $label.click(e => {\n const $checkBox = $label.find('input[type=\"checkbox\"]');\n // e.preventDefault();\r\n if ($checkBox.is(':checked')) {\r\n $el.addClass('is-checked');\r\n } else {\r\n $el.removeClass('is-checked');\r\n }\r\n });\r\n});\r\n\r\n// Fancy Select Boxes\r\n// ------------------------------------------------------------------------ //\r\n$(document).ready(function () {\r\n $('form.formbuilder select.form-control').each((i, el) => {\r\n const $el = $(el);\r\n\r\n if ($el.hasClass('form-control-light')) {\r\n $el.select2({\r\n language: $('html').attr('select2-lang'),\r\n containerCssClass: 'form-control-light',\r\n width: '100%',\r\n placeholder: $el.attr('placeholder'),\r\n allowClear: true\r\n });\r\n } else {\r\n $el.select2({\r\n language: $('html').attr('select2-lang'),\r\n width: '100%',\r\n placeholder: $el.attr('placeholder'),\r\n allowClear: true\r\n });\r\n }\r\n });\r\n})\r\n\r\n// Form validation\r\n// ------------------------------------------------------------------------ //\r\nconst $formBuilderForms = $('form.formbuilder');\r\n\r\n$formBuilderForms.each((i, form) => {\r\n const $form = $(form);\r\n\r\n $form.validate({\r\n errorPlacement: (error, element) => {\r\n error.appendTo(element.parent());\r\n },\r\n submitHandler: thisForm => {\r\n // do other things for a valid form\r\n thisForm.submit();\r\n }\r\n });\r\n});\r\n","import $ from 'jquery';\r\n\r\nconst $findAWUBS = $('.find-a-wubs');\r\n\r\n$findAWUBS.each((i, el) => {\r\n const $el = $(el);\r\n const $countryPicker = $el.find('.find-a-wubs-country-picker');\r\n const $items = $el.find('.find-a-wubs-item');\r\n\r\n function switchLocations() {\r\n const selectedCountry = $countryPicker.val();\r\n\r\n $items.each((itemIndex, item) => {\r\n const $item = $(item);\r\n const country = $item.attr('data-country');\r\n if (country === selectedCountry) {\r\n $item.addClass('is-current');\r\n } else {\r\n $item.removeClass('is-current');\r\n }\r\n });\r\n }\r\n\r\n $countryPicker.on('change', e => {\r\n e.preventDefault();\r\n switchLocations();\r\n });\r\n\r\n switchLocations();\r\n});\r\n","import $ from 'jquery';\r\n\r\nconst $complaintsContact = $('.find-an-office');\r\n\r\n$complaintsContact.each((i, el) => {\r\n const $el = $(el);\r\n const $statePicker = $el.find('.find-an-office-state-picker');\r\n const $items = $el.find('.find-an-office-item');\r\n\r\n function switchLocations() {\r\n const selectedState = $statePicker.val();\r\n\r\n $items.each((itemIndex, item) => {\r\n const $item = $(item);\r\n const state = $item.attr('data-state');\r\n if (state === selectedState) {\r\n $item.addClass('is-current');\r\n } else {\r\n $item.removeClass('is-current');\r\n }\r\n });\r\n }\r\n\r\n $statePicker.on('change', e => {\r\n e.preventDefault();\r\n switchLocations();\r\n });\r\n\r\n switchLocations();\r\n});\r\n","import $ from 'jquery';\r\nimport 'jquery.easing';\r\n\r\nconst $promoCards = $('.promo-card');\r\n\r\n$promoCards.each((i, el) => {\r\n const $el = $(el);\r\n const $moreBtn = $el.find('.promo-card-more-btn');\r\n const $fullDescription = $el.find('.promo-card-full-description');\r\n let isOpen = false;\r\n\r\n function closeMore() {\r\n isOpen = false;\r\n\r\n $fullDescription.animate(\r\n {\r\n height: 0\r\n },\r\n 200,\r\n 'easeInOutQuad',\r\n () => {\r\n $el.removeClass('is-open');\r\n $fullDescription.attr('style', '');\r\n }\r\n );\r\n }\r\n\r\n function openMore() {\r\n // Get height of description\r\n const height = $fullDescription.height();\r\n // Then collapse it\r\n $fullDescription.height(0);\r\n // Then show it\r\n $el.addClass('is-open');\r\n isOpen = true;\r\n // Then animate the height\r\n $fullDescription.animate(\r\n {\r\n height\r\n },\r\n 300,\r\n 'easeInOutQuad',\r\n () => {\r\n // Remove inline styles so things work responsively\r\n $fullDescription.attr('style', '');\r\n }\r\n );\r\n }\r\n\r\n $moreBtn.click(e => {\r\n e.preventDefault();\r\n if (isOpen) {\r\n closeMore();\r\n } else {\r\n openMore();\r\n }\r\n });\r\n});\r\n","import $ from 'jquery';\r\nimport Handlebars from 'handlebars/dist/cjs/handlebars';\r\n\r\nconst $resources = $('.resources');\r\n$resources.each((i, el) => {\r\n const $el = $(el);\r\n const $list = $el.find('.resources-list');\r\n const $loadMoreBtn = $el.find('.resources-more-btn');\r\n let { layout, absoluteImagePaths, apiRoot: API_ROOT } = $el.data();\r\n let pageIndex = 1;\r\n\r\n function renderResources(data, template, replace, totalRecords) {\r\n let formattedData = [];\r\n\r\n // If there are results\r\n if (data.length > 0) {\r\n // $(data).each((_, resource) => {\r\n formattedData = data.map(resource => {\r\n // Date: \"Sep 11, 2018\"\r\n // Description: \"\"\r\n // Image: \"/media(c0a4168c-5597-4a29-9a80-01585793b776)\"\r\n // ImageTitle: \"\"\r\n // Last: false\r\n // Link: \"\"\r\n // Misc: \"\"\r\n // PageId: \"7bc48a4d-1108-4597-af4e-91c721d46571\"\r\n // Pillar: \"International Payments\"\r\n // Tags: \"\"\r\n // Title: \"Heads Up: The Market Is Shifting\"\r\n // Type: \"Case Studies\"\r\n // Url: \"/en-us/Resources/Case-Studies/Heads-Up-The-Market-Is-Shifting\"\r\n // Video: \"\"\r\n\r\n const resourceData = { ...resource };\r\n let imgPath = '/Frontend/Images/suWUBS/placeholder.gif';\r\n\r\n if (resourceData.Image) {\r\n if (absoluteImagePaths) {\r\n imgPath = `${API_ROOT}/${resourceData.Image}`;\r\n } else {\r\n imgPath = resourceData.Image;\r\n }\r\n } else {\r\n imgPath = null;\r\n }\r\n\r\n resourceData.imgPath = imgPath;\r\n resourceData.layout = layout;\r\n return resourceData;\r\n });\r\n\r\n if (replace) {\r\n $list.html($.parseHTML(template(formattedData)));\r\n } else {\r\n $list.append($.parseHTML(template(formattedData)));\r\n }\r\n // If at the end of the results. We support here 2 cases - JSON with Last value or JSON with Total Records\r\n if (totalRecords >= 0 ? totalRecords / $resources.data('resources-size') <= pageIndex : data[data.length - 1].Last) {\r\n // Hide the load more button\r\n $el.addClass('has-all-results');\r\n }\r\n }\r\n\r\n $el.removeClass('is-loading');\r\n }\r\n\r\n function getResources(replace) {\r\n // get data attributes\r\n const {\r\n // these properties will not get copied to dataAttributes object\r\n industry: defaultIndustry,\r\n layout,\r\n resourcesApi,\r\n apiRoot,\r\n resourcesCulture: c,\r\n resourcesSize: s,\r\n absoluteImagePaths,\r\n // the rest of the properties\r\n ...dataAttributes\r\n } = $el.data();\r\n\r\n // add renamed properties\r\n dataAttributes.c = c;\r\n dataAttributes.s = s;\r\n\n let resTmpl = $('#resource-item-template');\r\n let requiredParams = (typeof (resTmpl.data('required')) === 'undefined') ? '' : resTmpl.data('required');\r\n let makeAPICall = true;\r\n // get form data\r\n const { ...formData } = $el.serializeArray()\r\n .reduce((acc, curr) => {\r\n acc[curr.name] = curr.value;\r\n if (requiredParams.length > 0) {\r\n //if param exists\r\n if ((requiredParams).indexOf(curr.name)!= -1) {\r\n //do check value\r\n if (curr.value.trim() === '') {\r\n makeAPICall = false;\r\n }\r\n }\r\n }\n return acc;\r\n }, {})\r\n\r\n // allow attribute level industry to be set\r\n formData.industry = defaultIndustry || formData.industry;\r\n\r\n let url = `${API_ROOT}${resourcesApi}?p=${pageIndex}`;\r\n\r\n // Reset everything\r\n $el.removeClass('is-loading has-error has-all-results has-no-results');\r\n\r\n if (replace) {\r\n pageIndex = 1;\r\n }\r\n\r\n // merge filters, and then add the filters to url\r\n const filters = { ...dataAttributes, ...formData };\r\n Object.keys(filters).forEach((fltr) => {\r\n if (filters[fltr] != null && filters[fltr] !== '' && filters[fltr] !== 'null') {\r\n url += `&${fltr}=${filters[fltr]}`;\r\n }\r\n });\r\n\r\n if (!makeAPICall) {\r\n $el.addClass('has-all-results');\r\n } else {\n $.ajax({\r\n method: 'GET',\r\n url,\r\n dataType: 'json',\r\n contentType: 'application/json'\r\n })\r\n .done(data => {\n let tmpl = $('#resource-item-template');\n let main = tmpl.data('main');\r\n let total = tmpl.data('total');\n let datamain = data[main] ? data[main] : '';\n \r\n if (typeof main === 'undefined' ? data.length > 0 : datamain.length > 0) {\r\n renderResources(\r\n typeof main === 'undefined' ? data : datamain,\r\n Handlebars.compile(tmpl.html()),\r\n replace,\r\n typeof total === 'undefined' ? -1 : data[total]\r\n );\r\n } else {\n $list.html('');\r\n $el.addClass('has-no-results');\r\n $el.addClass('has-all-results');\r\n }\r\n })\r\n .fail(data => {\r\n console.log('fail', data);\r\n $el.addClass('has-error');\r\n });\n }\r\n }\n\n function nextPage() {\r\n pageIndex += 1;\r\n getResources();\r\n }\r\n\r\n // Bind events\r\n // ------------------------------------------------------------------------ //\r\n\r\n // Bind event to any select change\r\n $(el).find('select').each((_, selectEle) => {\r\n $(selectEle).select2();\r\n $(selectEle).change(e => getResources(true));\r\n })\r\n\r\n $loadMoreBtn.on('click', e => {\r\n e.preventDefault();\r\n nextPage();\r\n });\r\n\n Handlebars.registerHelper(\"audioSrc\", function (find, replace, options) {\r\n var attributes = [];\r\n Object.keys(options.hash).forEach(key => {\r\n var escapedKey = Handlebars.escapeExpression(key);\r\n var escapedValue = Handlebars.escapeExpression(options.hash[key]).replace(find, replace);\n attributes.push(escapedKey + '=\"' + escapedValue + '\"');\r\n })\r\n var escapedOutput = \"\";\r\n return new Handlebars.SafeString(escapedOutput);\r\n }); \n\r\n // Get the initial content\r\n // ------------------------------------------------------------------------ //\r\n getResources();\r\n});\r\n","import $ from 'jquery';\r\nimport 'jquery.easing';\r\n\r\nconst toggler = $('.secondary-nav-tree .caret');\r\n//\r\n// $(toggler).each((_, tog) => {\r\n// $(tog).on('click', function(e) {\r\n// console.log('whyyy', this)\r\n// $('.secondary-nav-tree li').removeClass('active');\r\n// $(this)\r\n// .find('.nested')\r\n// .toggleClass('active')\r\n//\r\n// $(this).toggleClass('.caret-down');\r\n// });\r\n// });\n\r\nif (Array.isArray(toggler)) {\n Array.from(toggler).forEach(tog => {\r\n tog.addEventListener(\"click\", function () {\r\n this.parentElement.querySelector(\".nested\").classList.toggle(\"active\");\r\n this.classList.toggle(\"caret-down\");\r\n });\r\n })\r\n}\r\n","import $ from 'jquery';\r\n\r\nconst $visualOptions = $('.intel-signup-options');\r\nconst $form = $('#DailyCurrencyMarketAnalysis').parents('form');\r\n\r\n$visualOptions.find('input').each((_, npt) => {\r\n $(npt).on('keydown click', e => {\r\n const { id } = e.target;\r\n const checked = $(e.target).is(':checked');\r\n const $daily = $($form).find('#DailyCurrencyMarketAnalysis');\r\n const $monthly = $($form).find('#MonthlyCurrencyOutlook');\r\n\r\n if (id.indexOf('daily') > -1) {\r\n $daily.prop('checked', checked).trigger('change');\r\n } else {\r\n $monthly.prop('checked', checked).trigger('change');\r\n }\r\n });\r\n});\r\n\r\n$form.on('submit', e => {\r\n e.preventDefault();\r\n // Add submission code and ajax\r\n})\r\n","import $ from 'jquery';\r\nimport 'jquery.easing';\r\n\r\nconst $cookieConsent = $('.cookie-consent');\r\n\r\n// 2019.03.08\r\n$cookieConsent.each((i, el) => {\r\n const $el = $(el);\r\n const cookieConsentAPI = '/api/cookie/consent';\r\n\r\n function cookieConsentGrant() {\r\n $.ajax({\r\n method: 'GET',\r\n url: `${cookieConsentAPI}/grant`\r\n });\r\n }\r\n\r\n// function cookieConsentRevoke() {\r\n// $.ajax({\r\n// method: 'GET',\r\n// url: `${cookieConsentAPI}/revoke`\r\n// });\r\n// }\r\n\r\n $el.find('button.close').click(e => {\n e.preventDefault();\r\n cookieConsentGrant();\r\n });\r\n});\r\n","// Import Modernizr and the Bootstrap components that are needed\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable import/no-unresolved */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport Modernizr from 'modernizr';\r\n\r\n// Bootstrap components\r\nimport Alert from 'Alert';\r\nimport Button from 'Button';\r\nimport Carousel from 'Carousel';\r\nimport Collapse from 'Collapse';\r\nimport Dropdown from 'Dropdown';\r\nimport Modal from 'Modal';\r\nimport Popover from 'Popover';\r\nimport Scrollspy from 'Scrollspy';\r\nimport Tab from 'Tab';\r\nimport Tooltip from 'Tooltip';\r\nimport Util from 'Util';\r\n/* eslint-enable import/no-extraneous-dependencies */\r\n/* eslint-enable import/no-unresolved */\r\n/* eslint-enable no-unused-vars */\r\n\r\nimport $ from 'jquery';\r\nimport Inputmask from 'Inputmask';\r\n\r\n// Custom Components\r\nimport './components/header';\r\nimport './components/gas-calculator';\r\nimport './components/calculator';\r\nimport './components/tabs-accord';\r\nimport './components/tabs-filter';\r\nimport './components/secondary-nav';\r\nimport './components/country-picker';\r\nimport './components/forms';\r\nimport './components/find-a-wubs';\r\nimport './components/find-an-office';\r\nimport './components/promo-card';\r\nimport './components/resources';\r\nimport './components/mass-pay-menu';\r\nimport './components/intelligence-form';\r\nimport './components/cookie-consent';\r\nimport './components/figure-modal';\r\nimport './components/payment-capabilities-map';\r\n//import './components/edge-journey';\r\nimport './components/glossary';\r\n\r\n$('[data-toggle=\"popover\"]').popover();\r\n\r\n$('[data-toggle=\"tooltip\"]').tooltip();\r\n","// Import all the global imports\nimport './imports';\nimport './library/common/library.common.helpers.js';\nimport './library/composite/library.composite.helpers.js';\nimport './global-pay-me/gpm.CurrencyRatesBoard';\nimport './global-pay-me/gpm.FormBuilder.BankSearch';\nimport './global-pay-me/gpm.FormBuilder.PayerIsRemitter';\nimport './global-pay-me/gpm.FormBuilder.QuoteBox';\nimport './global-pay-me/gpm.RefundForm';\n\n$(window).ready(function () {\n window.gpm = window.gpm || {\n version: 'gpm: 2021.08.20',\n culture: $('body').data('culture'),\n createOption: function (option) {\n return $('