{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/js/lib/device-detection.js","webpack:///./assets/js/components/qr-code.js","webpack:///./node_modules/qrcode-svg/lib/qrcode.js","webpack:///./assets/js/lib/analytics.js","webpack:///./assets/js/main.js","webpack:///./assets/js/components/language-banner.js","webpack:///./assets/js/components/banner.js","webpack:///./assets/js/components/floating-cta.js","webpack:///./assets/js/components/exit-popup.js","webpack:///./node_modules/focus-trap/index.js","webpack:///./node_modules/tabbable/index.js","webpack:///./node_modules/xtend/immutable.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","detectMobileDevice","rules","ios","android","navigator","platform","includes","document","os","test","userAgent","_qrcodeSvg","QrCode","$element","_classCallCheck","this","initialize","code","QRCode","content","getUrl","join","padding","xmlDeclaration","container","innerHTML","svg","dataset","qrCodeUrl","window","location","href","QR8bitByte","data","QRMode","MODE_8BIT_BYTE","parsedData","length","byteArray","charCodeAt","push","Array","concat","apply","unshift","QRCodeModel","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","getLength","buffer","write","put","addData","newData","isDark","row","col","Error","getModuleCount","make","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","minLostPoint","pattern","lostPoint","QRUtil","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","y","x","beginFill","moveTo","lineTo","endFill","pos","getPatternPosition","j","bits","getBCHTypeNumber","mod","Math","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","rsBlocks","QRRSBlock","getRSBlocks","QRBitBuffer","getLengthInBits","totalDataCount","dataCount","putBit","createBytes","offset","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","max","rsPoly","getErrorCorrectPolynomial","modPoly","QRPolynomial","modIndex","totalCodeCount","index","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","QRErrorCorrectLevel","L","M","Q","H","QRMaskPattern","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","digit","errorCorrectLength","a","multiply","QRMath","gexp","type","qrCode","sameCount","count","darkCount","abs","glog","LOG_TABLE","EXP_TABLE","num","shift","undefined","e","ratio","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","list","bufIndex","bit","QRCodeLimitLength","options","width","height","color","background","ecl","result","encodeURI","toString","replace","_getUTF8Length","limit","len","table","_getTypeNumber","_getErrorCorrectLevel","qrcode","opt","pretty","indent","EOL","xsize","ysize","swap","predefined","defs","bgrect","modrect","pathdata","px","py","w","h","Number","isInteger","toFixed","save","file","callback","error","writeFile","addAnalyticsParametersToUrl","url","params","arguments","currentUrl","URL","forEach","searchParams","set","encodeURIComponent","_analytics","setTimeout","querySelector","JSON","parse","languageBanner","LanguageBanner","FloatingCta","ExitPopup","querySelectorAll","element","elements","from","utm_source","storeLinkSource","utm_medium","storeLinkMedium","utm_campaign","storeLinkCampaign","_banner","banner","Banner","isDismissable","render","userLanguage","language","translation","values","find","_ref","locale","matchesLocale","matchesLanguage","substr","message","match","text","template","DEFAULTS","dismissClass","storageLifetime","renewStorage","prerendered","assign","init","forceShow","isDismissed","html","mount","$temp","createElement","children","$banner","parentNode","insertBefore","removeChild","addStatusClass","onmount","_this","link","addEventListener","dismissClickHandler","event","preventDefault","dismiss","setDismissed","classList","add","removeStatusClass","ondismiss","localStorage","getItem","getStorageKey","state","timestamp","Date","now","setItem","stringify","removeItem","documentElement","remove","SCROLL_THRESHOLD","scrollHandler","requestAnimationFrame","scrollY","innerHeight","show","removeEventListener","style","display","transform","animate","duration","easing","fill","_focusTrap","_deviceDetection","id","storageKey","dialog","closeElement","mobileDelay","exitPopupMobileDelay","parseInt","addEventListeners","focusTrap","_focusTrap2","default","initialFocus","openOnExitIntent","close","getAttribute","isOpen","setAttribute","activate","body","overflow","deactivate","_this2","isMobile","open","hasVisibleCookieDialogs","clientY","some","getComputedStyle","visibility","activeFocusDelay","trapQueue","tabbable","xtend","activeFocusTraps","activateTrap","trap","activeTrap","pause","trapIndex","indexOf","splice","deactivateTrap","unpause","delay","fn","userOptions","doc","config","returnFocusOnDeactivate","escapeDeactivates","firstTabbableNode","lastTabbableNode","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","active","paused","activateOptions","updateTabbableNodes","activeElement","onActivate","addListeners","removeListeners","deactivateOptions","clearTimeout","onDeactivate","returnFocus","previousActiveElement","tryFocus","getNodeForOption","getInitialFocusNode","checkFocusIn","checkPointerDown","capture","passive","checkClick","checkKey","optionName","optionValue","node","contains","target","clickOutsideDeactivates","isFocusable","allowOutsideClick","Document","stopImmediatePropagation","keyCode","isEscapeEvent","isTabEvent","shiftKey","checkTab","tabbableNodes","focus","tagName","toLowerCase","select","isSelectableInput","candidateSelectors","candidateSelector","matches","Element","msMatchesSelector","webkitMatchesSelector","el","candidate","candidateTabindex","regularTabbables","orderedTabbables","candidates","includeContainer","slice","isNodeMatchingSelectorTabbable","getTabindex","documentOrder","tabIndex","sort","sortOrderedTabbables","map","isNodeMatchingSelectorFocusable","isInput","isRadio","checked","nodes","getCheckedRadio","ownerDocument","isTabbableRadio","isNonTabbableRadio","disabled","isHiddenInput","offsetParent","isHidden","isTabbable","focusableCandidateSelector","tabindexAttr","isNaN","contentEditable","isContentEditable","b","source"],"mappings":"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","file":"js/main.bb2f86ee98a0cd66819c.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","/*\n * Parses the user agent string in order to detect\n * iOS and Android mobile devices\n */\nexport const detectMobileDevice = () => {\n const rules = {\n ios: /(iPhone|iPad|iPod)/,\n android: /Android/,\n };\n\n // iPadOS' Safari UA is the same as for desktop\n // macOS – only difference is the touch screen\n if(navigator.platform.includes('MacIntel') && 'ontouchend' in document) {\n return 'ios';\n }\n\n for(let os in rules) {\n let regex = rules[os];\n if(regex.test(navigator.userAgent)) {\n return os;\n }\n }\n\n return false;\n};","import QRCode from 'qrcode-svg';\n\nexport default class QrCode {\n\n constructor($element) {\n this.$element = $element;\n\n this.initialize();\n }\n\n initialize() {\n const code = new QRCode({\n content: this.getUrl(),\n join: true,\n padding: 3,\n xmlDeclaration: false,\n container: 'svg-viewbox',\n });\n\n this.$element.innerHTML = code.svg();\n }\n\n getUrl() {\n return this.$element.dataset.qrCodeUrl || window.location.href;\n }\n\n}\n","/**\n * @fileoverview\n * - modified davidshimjs/qrcodejs library for use in node.js\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n *\n * @version 0.9.1 (2016-02-12)\n * @author davidshimjs, papnkukn\n * @see http://www.d-project.com/\n * @see http://jeromeetienne.github.com/jquery-qrcode/\n * @see https://github.com/davidshimjs/qrcodejs\n */\n\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of \n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\nfunction QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE;\n this.data = data;\n this.parsedData = [];\n\n // Added to support UTF-8 Characters\n for (var i = 0, l = this.data.length; i < l; i++) {\n var byteArray = [];\n var code = this.data.charCodeAt(i);\n\n if (code > 0x10000) {\n byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n byteArray[3] = 0x80 | (code & 0x3F);\n } else if (code > 0x800) {\n byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n byteArray[2] = 0x80 | (code & 0x3F);\n } else if (code > 0x80) {\n byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n byteArray[1] = 0x80 | (code & 0x3F);\n } else {\n byteArray[0] = code;\n }\n\n this.parsedData.push(byteArray);\n }\n\n this.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n if (this.parsedData.length != this.data.length) {\n this.parsedData.unshift(191);\n this.parsedData.unshift(187);\n this.parsedData.unshift(239);\n }\n}\n\nQR8bitByte.prototype = {\n getLength: function (buffer) {\n return this.parsedData.length;\n },\n write: function (buffer) {\n for (var i = 0, l = this.parsedData.length; i < l; i++) {\n buffer.put(this.parsedData[i], 8);\n }\n }\n};\n\nfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber;\n this.errorCorrectLevel = errorCorrectLevel;\n this.modules = null;\n this.moduleCount = 0;\n this.dataCache = null;\n this.dataList = [];\n}\n\nQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\nreturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row=7){this.setupTypeNumber(test);}\nif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\nthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\nreturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\nfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\nfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\nthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex>>bitIndex)&1)==1);}\nvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\nthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\nrow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;itotalDataCount*8){throw new Error(\"code length overflow. (\"\n+buffer.getLengthInBits()\n+\">\"\n+totalDataCount*8\n+\")\");}\nif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\nwhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\nwhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\nbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\nbuffer.put(QRCodeModel.PAD1,8);}\nreturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r=0)?modPoly.get(modIndex):0;}}\nvar totalCodeCount=0;for(var i=0;i=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\nreturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\nreturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\nreturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i5){lostPoint+=(3+sameCount-5);}}}\nfor(var row=0;row=256){n-=255;}\nreturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\nif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\nthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\n\n/** Constructor */\nfunction QRCode(options) {\n var instance = this;\n \n //Default options\n this.options = {\n padding: 4,\n width: 256, \n height: 256,\n typeNumber: 4,\n color: \"#000000\",\n background: \"#ffffff\",\n ecl: \"M\"\n };\n \n //In case the options is string\n if (typeof options === 'string') {\n options = {\n content: options\n };\n }\n \n //Merge options\n if (options) {\n for (var i in options) {\n this.options[i] = options[i];\n }\n }\n \n if (typeof this.options.content !== 'string') {\n throw new Error(\"Expected 'content' as string!\");\n }\n \n if (this.options.content.length === 0 /* || this.options.content.length > 7089 */) {\n throw new Error(\"Expected 'content' to be non-empty!\");\n }\n \n if (!(this.options.padding >= 0)) {\n throw new Error(\"Expected 'padding' value to be non-negative!\");\n }\n \n if (!(this.options.width > 0) || !(this.options.height > 0)) {\n throw new Error(\"Expected 'width' or 'height' value to be higher than zero!\");\n }\n \n //Gets the error correction level\n function _getErrorCorrectLevel(ecl) {\n switch (ecl) {\n case \"L\":\n return QRErrorCorrectLevel.L;\n \n case \"M\":\n return QRErrorCorrectLevel.M;\n \n case \"Q\":\n return QRErrorCorrectLevel.Q;\n \n case \"H\":\n return QRErrorCorrectLevel.H;\n \n default:\n throw new Error(\"Unknwon error correction level: \" + ecl);\n }\n }\n \n //Get type number\n function _getTypeNumber(content, ecl) { \n var length = _getUTF8Length(content);\n \n var type = 1;\n var limit = 0;\n for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n var table = QRCodeLimitLength[i];\n if (!table) {\n throw new Error(\"Content too long: expected \" + limit + \" but got \" + length);\n }\n \n switch (ecl) {\n case \"L\":\n limit = table[0];\n break;\n \n case \"M\":\n limit = table[1];\n break;\n \n case \"Q\":\n limit = table[2];\n break;\n \n case \"H\":\n limit = table[3];\n break;\n \n default:\n throw new Error(\"Unknwon error correction level: \" + ecl);\n }\n \n if (length <= limit) {\n break;\n }\n \n type++;\n }\n \n if (type > QRCodeLimitLength.length) {\n throw new Error(\"Content too long\");\n }\n \n return type;\n }\n\n //Gets text length\n function _getUTF8Length(content) {\n var result = encodeURI(content).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n return result.length + (result.length != content ? 3 : 0);\n }\n \n //Generate QR Code matrix\n var content = this.options.content;\n var type = _getTypeNumber(content, this.options.ecl);\n var ecl = _getErrorCorrectLevel(this.options.ecl);\n this.qrcode = new QRCodeModel(type, ecl);\n this.qrcode.addData(content);\n this.qrcode.make();\n}\n\n/** Generates QR Code as SVG image */\nQRCode.prototype.svg = function(opt) {\n var options = this.options || { };\n var modules = this.qrcode.modules;\n \n if (typeof opt == \"undefined\") {\n opt = { container: options.container || \"svg\" };\n }\n \n //Apply new lines and indents in SVG?\n var pretty = typeof options.pretty != \"undefined\" ? !!options.pretty : true;\n \n var indent = pretty ? ' ' : '';\n var EOL = pretty ? '\\r\\n' : '';\n var width = options.width;\n var height = options.height;\n var length = modules.length;\n var xsize = width / (length + 2 * options.padding);\n var ysize = height / (length + 2 * options.padding);\n \n //Join (union, merge) rectangles into one shape?\n var join = typeof options.join != \"undefined\" ? !!options.join : false;\n \n //Swap the X and Y modules, pull request #2\n var swap = typeof options.swap != \"undefined\" ? !!options.swap : false;\n \n //Apply declaration in SVG?\n var xmlDeclaration = typeof options.xmlDeclaration != \"undefined\" ? !!options.xmlDeclaration : true;\n \n //Populate with predefined shape instead of \"rect\" elements, thanks to @kkocdko\n var predefined = typeof options.predefined != \"undefined\" ? !!options.predefined : false;\n var defs = predefined ? indent + '' + EOL : '';\n \n //Background rectangle\n var bgrect = indent + '' + EOL;\n \n //Rectangles representing modules\n var modrect = '';\n var pathdata = '';\n\n for (var y = 0; y < length; y++) {\n for (var x = 0; x < length; x++) {\n var module = modules[x][y];\n if (module) {\n \n var px = (x * xsize + options.padding * xsize);\n var py = (y * ysize + options.padding * ysize);\n \n //Some users have had issues with the QR Code, thanks to @danioso for the solution\n if (swap) {\n var t = px;\n px = py;\n py = t;\n }\n \n if (join) {\n //Module as a part of svg path data, thanks to @danioso\n var w = xsize + px\n var h = ysize + py\n\n px = (Number.isInteger(px))? Number(px): px.toFixed(2);\n py = (Number.isInteger(py))? Number(py): py.toFixed(2);\n w = (Number.isInteger(w))? Number(w): w.toFixed(2);\n h = (Number.isInteger(h))? Number(h): h.toFixed(2);\n\n pathdata += ('M' + px + ',' + py + ' V' + h + ' H' + w + ' V' + py + ' H' + px + ' Z ');\n }\n else if (predefined) {\n //Module as a predefined shape, thanks to @kkocdko\n modrect += indent + '' + EOL;\n }\n else {\n //Module as rectangle element\n modrect += indent + '' + EOL;\n }\n }\n }\n }\n \n if (join) {\n modrect = indent + '';\n }\n\n var svg = \"\";\n switch (opt.container) {\n //Wrapped in SVG document\n case \"svg\":\n if (xmlDeclaration) {\n svg += '' + EOL;\n }\n svg += '';\n break;\n \n //Viewbox for responsive use in a browser, thanks to @danioso\n case \"svg-viewbox\":\n if (xmlDeclaration) {\n svg += '' + EOL;\n }\n svg += '';\n break;\n \n \n //Wrapped in group element \n case \"g\":\n svg += '' + EOL;\n svg += defs + bgrect + modrect;\n svg += '';\n break;\n \n //Without a container\n default:\n svg += (defs + bgrect + modrect).replace(/^\\s+/, \"\"); //Clear indents on each line\n break;\n }\n \n return svg;\n};\n\n/** Writes QR Code image to a file */\nQRCode.prototype.save = function(file, callback) {\n var data = this.svg();\n if (typeof callback != \"function\") {\n callback = function(error, result) { };\n }\n try {\n //Package 'fs' is available in node.js but not in a web browser\n var fs = require('fs');\n fs.writeFile(file, data, callback);\n }\n catch (e) {\n //Sorry, 'fs' is not available\n callback(e);\n }\n};\n\nif (typeof module != \"undefined\") {\n module.exports = QRCode;\n}\n","/*\n * Takes a URL and adds the values of common analytics\n * parameters (like `utm_medium` etc.) of the current page.\n */\nexport const addAnalyticsParametersToUrl = (url, params = {}) => {\n\tconst keys = ['utm_source', 'utm_medium', 'utm_campaign'];\n\tconst currentUrl = new URL(window.location.href);\n\turl = new URL(url);\n\n\tkeys.forEach(key => {\n\t const value = currentUrl.searchParams.get(key) || params[key];\n\t if(!value) return;\n\n\t url.searchParams.set(key, encodeURIComponent(value));\n\t});\n\n\treturn url;\n};","/**\n *\n * Project: MyTherapy App Marketing Website\n * Main JavaScript Bundle\n * \n */\n\nimport LanguageBanner from './components/language-banner.js';\nimport FloatingCta from './components/floating-cta.js';\nimport ExitPopup from './components/exit-popup.js';\nimport QrCode from './components/qr-code.js';\nimport { addAnalyticsParametersToUrl } from './lib/analytics.js';\n\n/*\n * Language Banner\n */\nsetTimeout(() => {\n const $element = document.querySelector('[data-language-banner]');\n if(!$element) return;\n\n const data = JSON.parse($element.dataset.languageBanner);\n const languageBanner = new LanguageBanner($element, data);\n}, 0);\n\n/*\n * Floating CTA\n */\n\nsetTimeout(() => {\n const $element = document.querySelector('[data-floating-cta]');\n if(!$element) return;\n new FloatingCta($element);\n}, 0);\n\n/*\n * Exit popup\n */\nsetTimeout(() => {\n const $element = document.querySelector('[data-exit-popup]');\n\n if(!$element) {\n return;\n }\n\n new ExitPopup($element);\n});\n\n/**\n * Dynamically generate QRCode\n */\n\nsetTimeout(() => {\n document.querySelectorAll('.c-qr-code').forEach(element => {\n new QrCode(element);\n });\n}, 0);\n\n/*\n * Pass on Google Analytics parameters to App stores\n */\nsetTimeout(() => {\n const elements = document.querySelectorAll('[data-store-link]');\n \n Array.from(elements).forEach($element => {\n $element.href = addAnalyticsParametersToUrl($element.href, {\n 'utm_source': $element.dataset.storeLinkSource,\n 'utm_medium': $element.dataset.storeLinkMedium,\n 'utm_campaign': $element.dataset.storeLinkCampaign,\n });\n });\n}, 0);\n","import Banner from './banner.js';\n\nconst template = translation => {\n let message = translation.message.replace(/\\{(.+)\\}/, (match, text) => {\n return `${ text }`;\n });\n\n return `\n \n `;\n};\n\nexport default class LanguageBanner {\n\n constructor($element, data = {}) {\n this.banner = new Banner('language-banner', $element, {\n\n isDismissable: false,\n\n render() {\n const userLanguage = navigator.language.replace('-', '_');\n\n const translation = Object.values(data).find(({ locale }) => {\n const matchesLocale = locale === userLanguage;\n const matchesLanguage = locale.substr(0, 2) === userLanguage;\n\n return matchesLocale || matchesLanguage;\n });\n\n if(!translation) {\n return;\n }\n\n return template(translation);\n },\n\n });\n }\n\n};\n","const DEFAULTS = {\n isDismissable: true,\n dismissClass: 'is-dismissed',\n storageLifetime: 2 * 24 * 365,\n renewStorage: true,\n prerendered: false,\n};\n\nconst DISMISSED = 'DISMISSED';\n\nexport default class Banner {\n\n constructor(name = 'banner', $element, options = {}) {\n this.name = name;\n this.$element = $element;\n this.options = Object.assign({}, DEFAULTS, options);\n\n this.init();\n }\n\n getStorageKey() {\n return `${this.name}_state`;\n }\n\n init() {\n if(this.options.renewStorage) {\n this.renewStorage();\n }\n\n if(\n !this.options.forceShow &&\n this.isDismissable() &&\n this.isDismissed()\n ) {\n return;\n }\n\n const html = this.render();\n\n if(!html && !this.options.prerendered) {\n return;\n }\n\n this.mount(html);\n }\n\n render() {\n if(this.options.render) {\n return this.options.render(this);\n }\n }\n\n mount(html) {\n if(html) {\n let $temp = document.createElement('div');\n $temp.innerHTML = html;\n if($temp.children.length === 0) return;\n\n let $banner = $temp.children[0];\n this.$element.parentNode.insertBefore($banner, this.$element);\n\n this.$element.parentNode.removeChild(this.$element);\n this.$element = $banner;\n }\n\n this.addStatusClass();\n this.onmount();\n }\n\n onmount() {\n const dismissLinks = this.$element.querySelectorAll('[data-banner-dismiss]');\n\n dismissLinks.forEach(link => {\n link.addEventListener('click', this.dismissClickHandler.bind(this));\n });\n\n if(this.options.onmount) {\n this.options.onmount(this);\n }\n }\n\n dismissClickHandler(event) {\n event.preventDefault();\n this.dismiss();\n }\n\n dismiss() {\n if(!this.isDismissable()) return;\n\n this.setDismissed();\n this.$element.classList.add(this.options.dismissClass);\n\n this.removeStatusClass();\n this.ondismiss();\n }\n\n ondismiss() {\n if(this.options.ondismiss) {\n this.options.ondismiss(this);\n }\n }\n\n isDismissed() {\n if(!this.isDismissable()) {\n return false;\n }\n\n const data = localStorage.getItem(this.getStorageKey());\n const { state, timestamp } = JSON.parse(data) || {};\n\n if(state !== DISMISSED) {\n return false;\n }\n\n if(timestamp < (Date.now() - this.options.storageLifetime * 24 * 60 * 60 * 1000)) {\n return false;\n }\n\n return true;\n }\n\n setDismissed() {\n if(!this.isDismissable()) return;\n\n localStorage.setItem(\n this.getStorageKey(),\n JSON.stringify({\n state: DISMISSED,\n timestamp: Date.now(),\n })\n );\n }\n\n unsetDismissed() {\n localStorage.removeItem(this.getStorageKey());\n }\n\n isDismissable() {\n return this.options.isDismissable === true;\n }\n\n renewStorage() {\n if(this.isDismissed()) {\n this.setDismissed();\n }\n }\n\n addStatusClass() {\n document.documentElement.classList.add(`has-${ this.name }`);\n }\n\n removeStatusClass() {\n document.documentElement.classList.remove(`has-${ this.name }`);\n }\n\n};","const TRANSITION_DURATION = 250;\nconst SCROLL_THRESHOLD = 0.05;\n\nexport default class FloatingCta {\n\n constructor(element) {\n this.element = element;\n\n const scrollHandler = () => {\n requestAnimationFrame(() => {\n if (window.scrollY < window.innerHeight * SCROLL_THRESHOLD) {\n return;\n }\n\n this.show();\n window.removeEventListener('scroll', scrollHandler);\n });\n };\n\n window.addEventListener('scroll', scrollHandler);\n }\n\n show() {\n this.element.style.display = 'block';\n this.element.style.transform = 'translateY(300%)';\n\n const animation = this.element.animate({\n transform: 'translateY(0)',\n }, {\n duration: TRANSITION_DURATION,\n easing: 'cubic-bezier(.165, .84, .44, 1)',\n fill: 'forwards',\n });\n }\n\n}\n","import createFocusTrap from 'focus-trap';\nimport { detectMobileDevice } from '../lib/device-detection.js';\n\nexport default class ExitPopup {\n\n constructor(element = null) {\n this.element = element;\n this.id = this.element.id;\n this.storageKey = 'exit-popup';\n this.dialog = this.element.querySelector('.c-exit-popup__dialog');\n this.closeElement = this.element.querySelector('.c-exit-popup__close');\n this.mobileDelay = this.element.dataset.exitPopupMobileDelay || 45;\n this.mobileDelay = parseInt(this.mobileDelay, 10);\n\n this.addEventListeners();\n\n this.focusTrap = createFocusTrap(this.dialog, {\n initialFocus: this.closeElement,\n });\n\n this.openOnExitIntent();\n }\n\n addEventListeners() {\n this.closeElement.addEventListener('click', event => {\n event.preventDefault();\n this.close();\n })\n\n window.addEventListener('keydown', event => {\n if(event.key !== 'Escape' && event.key !== 'Esc') {\n return;\n }\n\n this.close();\n });\n }\n\n isOpen() {\n return this.element.getAttribute('aria-hidden') === 'false';\n }\n\n isDismissed() {\n return localStorage.getItem(this.storageKey) === 'DISMISSED';\n }\n\n open() {\n if(this.isOpen()) {\n return;\n }\n\n this.element.setAttribute('aria-hidden', 'false');\n this.focusTrap.activate();\n document.body.style.overflow = 'hidden';\n }\n\n close() {\n if(!this.isOpen()) {\n return;\n }\n\n this.element.setAttribute('aria-hidden', 'true');\n this.focusTrap.deactivate();\n document.body.style.overflow = null;\n localStorage.setItem(this.storageKey, 'DISMISSED');\n }\n\n openOnExitIntent() {\n const isMobile = detectMobileDevice() !== false;\n\n const open = () => {\n if (!this.isDismissed() && !this.hasVisibleCookieDialogs()) {\n this.open();\n }\n };\n\n document.documentElement.addEventListener('mouseleave', (event) => {\n const padding = 50;\n\n if (event.clientY < (window.innerHeight - padding)) {\n open();\n }\n });\n\n if (isMobile) {\n setTimeout(open, this.mobileDelay * 1000);\n }\n }\n\n hasVisibleCookieDialogs() {\n // This is a workaround to check that neither the initial CookieHub dialog\n // nor the settings dialog is open.\n const dialogs = Array.from(document.querySelectorAll('.ch2-dialog, .ch2-settings'));\n\n return dialogs.some((dialog) => {\n const style = getComputedStyle(dialog);\n return style.visibility !== 'hidden' && style.display !== 'none';\n });\n }\n\n}\n","var tabbable = require('tabbable');\nvar xtend = require('xtend');\n\nvar activeFocusDelay;\n\nvar activeFocusTraps = (function() {\n var trapQueue = [];\n return {\n activateTrap: function(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap: function(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n})();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n clearTimeout(activeFocusDelay);\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n activeFocusDelay = delay(function() {\n tryFocus(getInitialFocusNode());\n });\n\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n 'Your focus-trap needs to have at least one focusable element'\n );\n }\n\n return node;\n }\n\n function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus');\n return node ? node : previousActiveElement;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n return;\n }\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (config.allowOutsideClick && config.allowOutsideClick(e)) {\n return;\n }\n e.preventDefault();\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n if (config.allowOutsideClick && config.allowOutsideClick(e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n","var candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node) {\n if (\n !isNodeMatchingSelectorFocusable(node)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node);\n}\n\nfunction isNodeMatchingSelectorFocusable(node) {\n if (\n node.disabled\n || isHiddenInput(node)\n || isHidden(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\nfunction isHidden(node) {\n // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,\n // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.\n return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n"],"sourceRoot":""}