{"version":3,"sources":["webpack:///./src/feature/accordion-2-cols/accordion-2-cols.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./src/foundation/utilities/detectBrowsers.js"],"names":["Accordion2Cols","element","el","wrapper","querySelectorAll","allContentLinks","document","deepLink","accordionIframe","activeClass","panes","window","location","hash","substring","i","clickItem","querySelector","accordionItem","forEach","iframe","setAttribute","link","classList","add","addEventListener","setClasses","contains","setClass","toggle","elementItemLinks","elementIframe","e","code","remove","activeElement","preventDefault","setTimeout","click","delay","detectBrowser","Browsers","IE","this","length","els","className","fnName","BaseFeature","$","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","target","stat","forced","sham","getPrototypeOf","it","getBuiltIn","aConstructor","anObject","isObject","create","bind","nativeConstruct","NEW_TARGET_BUG","F","ARGS_BUG","FORCED","construct","Target","args","newTarget","arguments","$args","push","apply","proto","prototype","instance","Object","result","Function","call","aCallable","slice","factories","C","argsLength","list","join","module","exports","that","fn","partArgs","boundFunction","concat","PROPER_FUNCTION_NAME","PROPER","redefine","$toString","flags","RegExpPrototype","RegExp","nativeToString","NOT_GENERIC","source","INCORRECT_NAME","name","R","p","rf","undefined","unsafe","Edge","Firefox","Chrome","Safari","browser","isOpera","opr","addons","opera","navigator","userAgent","indexOf","isFirefox","InstallTrigger","isIE","test","HTMLElement","safari","pushNotification","toString","documentMode","isEdge","StyleMedia","isChrome","chrome","webstore","CSS"],"mappings":"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","file":"11-e5180c5d.pkg.js","sourcesContent":["import BaseFeature from '../../foundation/base/base';\r\nimport { detectBrowser, Browsers } from '../../foundation/utilities/detectBrowsers';\r\n\r\nclass Accordion2Cols extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.el = element;\r\n\t\tthis.wrapper = this.el.querySelectorAll('.o-accordion-2-cols__wrapper');\r\n\t\tthis.allContentLinks = document.querySelectorAll('.o-accordion-2-cols__content a');\r\n\t\tthis.deepLink = document.querySelectorAll('.o-accordion-2-cols a');\r\n\t\tthis.accordionIframe = document.querySelectorAll('.o-accordion-2-cols__content iframe');\r\n\t\tthis.activeClass = 'o-accordion-2-cols__wrapper--active';\r\n\t\tthis.panes();\r\n\t}\r\n\r\n\tpanes() {\r\n\t\tconst deepLink = window.location.hash.substring(1);\r\n\r\n\t\tfor (let i = 0; i < this.wrapper.length; i++) {\r\n\t\t\tconst clickItem = this.wrapper[i].querySelector('.o-accordion-2-cols__header');\r\n\t\t\tconst accordionItem = this.wrapper[i];\r\n\r\n\t\t\t// Make iframe NonTabable\r\n\t\t\tthis.accordionIframe.forEach((iframe) => {\r\n\t\t\t\tiframe.setAttribute('tabindex', '-1');\r\n\t\t\t});\r\n\r\n\t\t\t// Make deep links NonTabable\r\n\t\t\tthis.deepLink.forEach((link) => {\r\n\t\t\t\tlink.setAttribute('tabindex', '-1');\r\n\t\t\t});\r\n\r\n\t\t\t// Make the links inside accordion NonTabable\r\n\t\t\tthis.allContentLinks.forEach((link) => {\r\n\t\t\t\tlink.setAttribute('tabindex', '-1');\r\n\t\t\t});\r\n\r\n\t\t\tclickItem.classList.add('o-accordion-2-cols__header--hide-outline');\r\n\r\n\t\t\tclickItem.addEventListener('click', () => {\r\n\t\t\t\tclickItem.classList.add('o-accordion-2-cols__header--hide-outline');\r\n\r\n\t\t\t\tconst setClasses = !accordionItem.classList.contains(this.activeClass);\r\n\t\t\t\t// this removes all activeClass instances so that other panes will close\r\n\t\t\t\t// when opening other panes\r\n\t\t\t\t// also if user clicks on open pane it closes which is the acceptance criteria\r\n\t\t\t\tthis.setClass(this.wrapper, this.activeClass, 'remove');\r\n\t\t\t\tclickItem.setAttribute('aria-expanded', 'false');\r\n\r\n\r\n\t\t\t\tif (setClasses) {\r\n\t\t\t\t\taccordionItem.classList.toggle(this.activeClass);\r\n\t\t\t\t\tclickItem.setAttribute('aria-expanded', 'true');\r\n\t\t\t\t\tthis.wrapper[i].querySelectorAll('a').forEach((elementItemLinks) => {\r\n\t\t\t\t\t\telementItemLinks.setAttribute('tabindex', '0');\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.wrapper[i].querySelectorAll('iframe').forEach((elementIframe) => {\r\n\t\t\t\t\t\telementIframe.setAttribute('tabindex', '0');\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.wrapper[i].querySelectorAll('a').forEach((elementItemLinks) => {\r\n\t\t\t\t\t\telementItemLinks.setAttribute('tabindex', '-1');\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.wrapper[i].querySelectorAll('iframe').forEach((elementIframe) => {\r\n\t\t\t\t\t\telementIframe.setAttribute('tabindex', '-1');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tclickItem.addEventListener('keyup', (e) => {\r\n\t\t\t\tif (e.code === 'Tab') {\r\n\t\t\t\t\tclickItem.classList.remove('o-accordion-2-cols__header--hide-outline');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// WCAG\r\n\t\t\twindow.addEventListener('keyup', (e) => {\r\n\t\t\t\tconst isFocused = document.activeElement === clickItem;\r\n\t\t\t\tif (isFocused && e.code === 'Enter') {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t// Remove all the tabindex first\r\n\t\t\t\t\tthis.allContentLinks.forEach((link) => {\r\n\t\t\t\t\t\tlink.setAttribute('tabindex', '-1');\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.accordionIframe.forEach((iframe) => {\r\n\t\t\t\t\t\tiframe.setAttribute('tabindex', '-1');\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// Add the click event\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tclickItem.click();\r\n\t\t\t\t\t}, 5);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// Because of IE11 we have to have this setTimeout.\r\n\t\t\t// otherwise accordions stops working in IE11\r\n\t\t\tconst isIE = detectBrowser(Browsers.IE);\r\n\t\t\tlet delay;\r\n\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\tisIE ? delay = 300 : delay = 0;\r\n\r\n\t\t\twindow.setTimeout(() => {\r\n\t\t\t\tif (accordionItem.classList.contains(deepLink)) {\r\n\t\t\t\t\taccordionItem.classList.add(this.activeClass);\r\n\t\t\t\t}\r\n\t\t\t}, delay);\r\n\t\t}\r\n\t}\r\n\r\n\t// eslint-disable-next-line class-methods-use-this\r\n\tsetClass(els, className, fnName) {\r\n\t\tfor (let i = 0; i < els.length; i++) {\r\n\t\t\tels[i].classList[fnName](className);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\nexport default Accordion2Cols;\r\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aCallable(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","/* eslint-disable func-names */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-undef */\r\n/* eslint-disable consistent-return */\r\n// https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\r\n\r\nexport const Browsers = {\r\n\tIE: 'ie',\r\n\tEdge: 'Edge',\r\n\tFirefox: 'Firefox',\r\n\tChrome: 'Chrome',\r\n\tSafari: 'Safari'\r\n};\r\n\r\nexport function detectBrowser(browser) {\r\n\t// Opera 8.0+\r\n\tconst isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n\r\n\t// Firefox 1.0+\r\n\tconst isFirefox = typeof InstallTrigger !== 'undefined';\r\n\r\n\t// Safari 3.0+ \"[object HTMLElementConstructor]\"\r\n\tconst isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === '[object SafariRemoteNotification]'; }(!window.safari || (typeof safari !== 'undefined' && safari.pushNotification)));\r\n\r\n\t// Internet Explorer 6-11\r\n\tconst isIE = /* @cc_on!@ */false || !!document.documentMode;\r\n\r\n\t// Edge 20+\r\n\tconst isEdge = !isIE && !!window.StyleMedia;\r\n\r\n\t// Chrome 1+\r\n\tconst isChrome = !!window.chrome && !!window.chrome.webstore;\r\n\r\n\t// Blink engine detection\r\n\tconst isBlink = (isChrome || isOpera) && !!window.CSS;\r\n\r\n\tswitch (browser) {\r\n\tcase Browsers.IE:\r\n\t\treturn isIE;\r\n\tcase Browsers.Edge:\r\n\t\treturn isEdge;\r\n\tcase Browsers.Firefox:\r\n\t\treturn isFirefox;\r\n\tcase Browsers.Chrome:\r\n\t\treturn isChrome;\r\n\tdefault:\r\n\t}\r\n}\r\n"],"sourceRoot":""}