{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///IWT.min.js","webpack:///webpack/bootstrap a29a95197f852b37af47","webpack:///./index.js","webpack:///./config.js","webpack:///./src (.*)index\\.js$","webpack:///./src/components/form/index.js","webpack:///external \"jQuery\"","webpack:///./src/components/table/index.js","webpack:///./~/throttle-debounce/throttle.js","webpack:///./src/modules/accordion/index.js","webpack:///./~/fr-accordion/accordion.js","webpack:///./src/modules/carousel/index.js","webpack:///./~/owl.carousel/dist/owl.carousel.js","webpack:///./src/modules/carousel/a11y.js","webpack:///./src/modules/cookiebar/index.js","webpack:///./~/jquery.cookie/jquery.cookie.js","webpack:///./src/modules/cookiebar/cookiebar.js","webpack:///./src/modules/dialog/index.js","webpack:///./~/fr-dialogmodal/dialogmodal.js","webpack:///./src/modules/dropdown/index.js","webpack:///./src/modules/dropdown/dropdown.js","webpack:///./src/modules/header/index.js","webpack:///./~/headroom.js/dist/headroom.js","webpack:///./src/modules/masonry/index.js","webpack:///./~/salvattore/dist/salvattore.js","webpack:///./src/modules/megamenu/index.js","webpack:///./src/modules/megamenu/megamenu.js","webpack:///./src/modules/offcanvas/index.js","webpack:///./~/fr-offcanvas/offcanvas.js","webpack:///./src/modules/random/index.js","webpack:///./src/modules/scrolltop/index.js","webpack:///./src/modules/skiplinks/index.js","webpack:///./~/fr-bypasslinks/bypasslinks.js","webpack:///./src/modules/tooltip/index.js","webpack:///./~/fr-tooltip/tooltip.js","webpack:///./src/modules/treeview/index.js","webpack:///./src/scripts/index.js","webpack:///./src/scripts/console.js","webpack:///./src/scripts/ehnance.js","webpack:///./src/scripts/scrollto.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_findIndex","ar","predicate","index","length","requireAll","requireContext","keys","forEach","filename","dirname","replace","exclude","Config","excludes","v","match","RegExp","include","includes","push","map","Object","defineProperty","value","CONFIG","webpackContext","req","webpackContextResolve","Error","./components/form/index.js","./components/table/index.js","./modules/accordion/index.js","./modules/carousel/index.js","./modules/cookiebar/index.js","./modules/dialog/index.js","./modules/dropdown/index.js","./modules/header/index.js","./modules/masonry/index.js","./modules/megamenu/index.js","./modules/offcanvas/index.js","./modules/random/index.js","./modules/scrolltop/index.js","./modules/skiplinks/index.js","./modules/tooltip/index.js","./modules/treeview/index.js","./scripts/index.js","resolve","_interopRequireDefault","obj","__esModule","default","_jquery","_jquery2","document","ready","on","is","closest","find","removeClass","addClass","_throttle","_throttle2","defaultOpts","responsiveTableSelector","responsiveTableClass","responsiveTableBreakpoint","initResponsiveTables","opts","window","resize","width","delay","noTrailing","callback","debounceMode","wrapper","exec","lastExec","Number","Date","apply","self","args","clear","timeoutID","undefined","elapsed","arguments","clearTimeout","setTimeout","_frAccordion","_frAccordion2","_accordion","accordion","headerIdPrefix","panelIdPrefix","firstPanelsOpenByDefault","multiselectable","readyClass","Fraccordion","_addA11y","accordionContainer","accordionHeaders","_q","headerSelector","accordionPanels","panelSelector","setAttribute","accordionHeader","accordionPanel","_removeA11y","removeAttribute","_getPanelHeight","panel","style","height","offsetHeight","_setPanelHeight","panelHeight","getBoundingClientRect","transition","transitionLength","_unsetPanelHeight","_hideAllPanels","siblingHeaders","siblingPanels","header","getAttribute","_hidePanel","target","activePanel","doc","getElementById","_showPanel","_bindAccordionEvents","parentNode","_togglePanel","thisContainer","_unbindAccordionEvents","_giveHeaderFocus","headerSet","i","focus","_eventHeaderClick","e","currentTarget","_eventHeaderKeydown","currentHeader","isModifierKey","metaKey","altKey","theseHeaders","currentHeaderIndex","indexOf","keyCode","preventDefault","previousHeaderIndex","nextHeaderIndex","addEventListener","removeEventListener","destroy","accordionContainers","classList","remove","init","querySelector","add","_ref","_ref$selector","selector","_ref$headerSelector","_ref$headerIdPrefix","_ref$panelSelector","_ref$panelIdPrefix","_ref$firstPanelsOpenB","_ref$multiselectable","_ref$readyClass","_ref$transitionLength","docEl","documentElement","el","ctx","slice","querySelectorAll","_owl","_a11y","owlPrev","owlNext","owlItem","jsSelector","owlOpts","nav","items","dots","loop","margin","mouseDrag","URLhashListener","startPosition","responsive","0","768","992","$owl","click","trigger","event","namespace","carousel","relatedTarget","element","current","toggleClass","maximum","minimum","owlCarousel","_typeof","Symbol","iterator","constructor","prototype","$","Owl","options","settings","extend","Defaults","$element","_handlers","_plugins","_supress","_current","_speed","_coordinates","_breakpoint","_width","_items","_clones","_mergers","_widths","_invalidated","_pipe","_drag","time","pointer","stage","start","direction","_states","tags","initializing","animating","dragging","each","proxy","handler","Plugins","key","plugin","charAt","toLowerCase","Workers","priority","worker","filter","run","setup","initialize","center","rewind","touchDrag","pullDrag","freeDrag","stagePadding","merge","mergeFit","autoWidth","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Width","Default","Inner","Outer","Type","Event","State","cache","relative","$stage","children","grid","css","margin-left","margin-right","toFixed","widths","Math","min","clones","view","max","size","ceil","repeat","append","prepend","normalize","outerHTML","appendTo","prependTo","previous","coordinates","padding","abs","padding-left","padding-right","eq","removeAttr","reset","animate","inner","outer","n","begin","end","matches","op","join","enter","imgs","nestedSelector","preloadAutoWidthImages","wrap","parent","not","refresh","invalidate","registerEventHandlers","leave","viewport","overwrites","breakpoint","attr","property","name","optionsLogic","prepare","item","content","data","update","all","grep","dimension","onThrottledResize","resizeTimer","onResize","isDefaultPrevented","support","onTransitionEnd","onDragStart","onDragEnd","which","transform","split","x","y","position","left","top","stop","type","speed","getTime","one","delta","difference","onDragMove","pull","off","coordinate","transform3d","state","part","suppress","release","isNumeric","reciprocalItemsWidth","elementWidth","mergers","odd","even","multiplier","newPosition","duration","from","to","factor","revert","distance","next","prev","stopPropagation","srcElement","originalTarget","get","innerWidth","clientWidth","empty","jQuery","nodeType","addBack","after","before","splice","images","Image","src","unwrap","contents","removeData","a","o","b","listener","capture","attachEvent","detachEvent","status","count","camelCase","onTrigger","register","concat","object","special","owl","_default","tag","inArray","events","result","originalEvent","touches","changedTouches","pageX","pageY","clientX","clientY","number","isNaN","parseFloat","first","second","fn","option","Array","$this","Constructor","Zepto","AutoRefresh","_core","_interval","_visible","initialized.owl.carousel","autoRefresh","watch","autoRefreshInterval","setInterval","clearInterval","getOwnPropertyNames","Lazy","_loaded","initialized.owl.carousel change.owl.carousel resized.owl.carousel","lazyLoad","load","$item","$elements","image","url","devicePixelRatio","onload","background-image","opacity","handlers","AutoHeight","initialized.owl.carousel refreshed.owl.carousel","autoHeight","changed.owl.carousel","loaded.owl.lazy","autoHeightClass","visible","toArray","heights","maxheight","Video","_videos","_playing","resize.owl.carousel","video","isInFullScreen","refreshed.owl.carousel","prepared.owl.carousel","fetch","play","videoHeight","videoWidth","thumbnail","tnLink","icon","path","dimensions","customTn","srcType","lazyClass","create","ajax","jsonp","dataType","success","thumbnail_large","framegrab_url","html","insertAfter","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","hasClass","Animate","scope","core","swapping","change.owl.carousel","drag.owl.carousel dragged.owl.carousel translated.owl.carousel","translate.owl.carousel","animateOut","animateIn","swap","animation","incoming","outgoing","Autoplay","_timeout","_paused","autoplay","_setAutoPlayInterval","play.owl.autoplay","t","s","stop.owl.autoplay","mouseover.owl.autoplay","autoplayHoverPause","pause","mouseleave.owl.autoplay","touchstart.owl.core","touchend.owl.core","autoplayTimeout","autoplaySpeed","timeout","_getNextTimeout","hidden","Navigation","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","added.owl.carousel","pop","remove.owl.carousel","draw","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dotsEach","dotsSpeed","dotsContainer","override","$relative","$previous","$next","prop","$absolute","control","overides","j","k","lower","upper","disabled","page","getPosition","successor","standard","Hash","_hashes","hash","location","substring","test","prefixed","toUpperCase","prefixes","WebkitTransition","MozTransition","OTransition","WebkitAnimation","MozAnimation","OAnimation","tests","csstransforms","csstransforms3d","csstransitions","cssanimations","String","Owl2A11y","_options","defaults","setCurrent","setupRoot","setupFocus","setupKeyboard","translated.owl.carousel","resized.owl.carousel","eventHandlers","getDocumentKeyUp","eventTarg","targ","focused","action","tabindex","bind","data-owl-carousel-focused","aria-live","navigation","navPlugin","toFocus","$indicators","unbind","documentKeyUp","focusableElems","elem","adjustFocus","elems","enable","newTabIndex","storeTabIndex","currentTabIndex","storedTabIndex","data-owl-temp-tabindex","offs","offset","scrollTo","parseInt","focusable","newFocus","_jquery3","_cookiebar","acceptButton","secure","domain","cookieBar","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","encode","config","raw","encodeURIComponent","decode","decodeURIComponent","stringifyCookieValue","json","JSON","stringify","parseCookieValue","pluses","parse","read","converter","isFunction","cookie","expires","days","setTime","toUTCString","cookies","l","parts","shift","removeCookie","threshold","_hide","$cookiebar","hide","_show","show","_accept","isAccepted","scrollTop","_dialogmodal","_dialogmodal2","_dialogmodal3","dialog","modalSelector","openSelector","closeSelector","isAlert","activeClass","Frdialogmodal","_defer","container","modal","role","_showModal","focusableElements","focusableSelectors","_bindDocKey","_bindClosePointer","_bindContainerPointer","_hideModal","returnfocus","parentElement","_unbindDocKey","_unbindClosePointer","_unbindContainerPointer","currButtonOpen","_handleTabEvent","focusedIndex","activeElement","shiftKey","_eventOpenPointer","button","currModal","_eventClosePointer","_eventContainerPointer","_eventDocKey","_bindOpenPointers","buttons","_unbindOpenPointers","containers","_ref$modalSelector","_ref$openSelector","_ref$closeSelector","_ref$isAlert","_ref$activeClass","_dropdown","Menu","Menutrigger","_classCallCheck","instance","TypeError","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","at","ariaHidden","selectClass","focusables","opened","componentName","keycodes","38","moveSelected","40","37","39","13","selectActive","9","27","close","placement","$nextSelected","$items","$selected","$focusChild","getSelectedElement","text","keyDown","sendFocus","$trigger","_bindKeyHandling","$menu","menu","toggle","open","_bindbehavior","_headroom","_headroom2","myElement","tolerance","up","down","classes","initial","pinned","unpinned","notTop","bottom","notBottom","scroller","onPin","onUnpin","onTop","onNotTop","onBottom","onNotBottom","headroom","headroomFixed","INTERVAL","windowWidth","headerHeight","_adjustPadding","paddingTop","newWindowWidth","$el","Headroom","Debouncer","ticking","isDOMElement","replacement","normalizeTolerance","lastKnownScrollY","initialised","features","rAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","requestTick","rafCallback","handleEvent","cutsTheMustard","debouncer","getScrollY","unpin","contains","pin","pageYOffset","body","getViewportHeight","innerHeight","clientHeight","getElementPhysicalHeight","elm","getScrollerPhysicalHeight","getDocumentHeight","scrollHeight","getElementHeight","getScrollerHeight","isOutOfBounds","currentScrollY","pastTop","pastBottom","toleranceExceeded","shouldUnpin","scrollingDown","pastOffset","shouldPin","scrollingUp","scrollDirection","Masonry","matchMedia","styleMedia","media","createElement","script","getElementsByTagName","insertBefore","getComputedStyle","currentStyle","matchMedium","styleSheet","cssText","textContent","addListener","localMatchMedia","hasMediaQueries","isListening","queries","handleChange","evt","il","mql","listeners","jl","removeListener","lastTime","vendors","cancelAnimationFrame","currTime","timeToCall","CustomEvent","params","bubbles","cancelable","detail","createEvent","initCustomEvent","salvattore","global","grids","mediaRules","mediaQueries","add_to_dataset","dataset","obtainGridSettings","computedStyle","getPropertyValue","matchResult","numberOfColumns","columnClasses","addColumns","columnsItems","columnsFragment","createDocumentFragment","rows","column","rowsFragment","className","row","appendChild","removeColumns","range","createRange","selectNodeContents","columns","extractContents","childNodes","node","HTMLElement","numberOfRowsInFirstColumn","sortedRows","columnIndex","rowIndex","child","recreateColumns","columnsChange","dispatchEvent","mediaQueryChange","getCSSRules","stylesheet","cssRules","sheet","rules","getStylesheets","inlineStyleBlocks","idx","mediaRuleHasColumnsSelector","rule","selectorText","scanMediaQueries","newMediaRules","oldRules","mediaText","rescanMediaQueries","nextElementColumnIndex","fragments","currentRowCount","lowestRowCount","createFragmentsList","quantity","appendElements","elements","prependElements","fragment","firstChild","numberOfColumnsToExtract","lastChild","registerGrid","display","innerHTML","head","gridElements","append_elements","prepend_elements","register_grid","recreate_columns","rescan_media_queries","_megamenu","_megamenu2","addCloseButton","closeButtonClass","closeButtonTemplate","openOnClick","uuidPrefix","menuClass","menuListClass","topNavItemClass","panelClass","panelGroupClass","hoverClass","focusClass","openClass","listToMegaMenu","$ul","_opts","attrs","clone","li","wrapAll","rel","accessibleMegaMenu","Megamenu","AccessibleMegaMenu","_defaults","_name","pluginName","mouseTimeoutID","focusTimeoutID","mouseFocused","justFocused","expr","filters","parents","isTabIndexNotNaN","mapName","img","nodeName","href","Keyboard","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","keyMap","48","49","50","51","52","53","54","55","56","57","59","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","96","97","98","99","100","101","102","103","104","105","190","_getPlugin","_addUniqueId","_clickHandler","_clickOutsideHandler","_DOMAttrModifiedHandler","_focusInHandler","_focusOutHandler","_keyDownHandler","_mouseDownHandler","_mouseOverHandler","_mouseOutHandler","_toggleExpandedEventHandlers","uuid","keydownTimeoutDuration","keydownSearchString","isTouch","hasOwnProperty","newfocus","that","topli","has","siblings","attrName","newValue","panels","cvox","Api","getCurrentNode","_event","label","regex","topnavitems","tabbables","panelGroups","currentPanelGroup","keycode","found","newString","isTopNavItem","opera","toString","ctrlKey","keydownTimeoutID","reverse","trim","topNavItems","topnavitem","topnavitemlink","topnavitempanel","aria-haspopup","aria-controls","aria-expanded","aria-hidden","getDefaults","getOption","opt","getAllOptions","setOption","reinitialize","createPseudo","dataName","tabbable","tabIndex","isTabIndexNaN","_offcanvas","_offcanvas2","_offcanvas3","contentSelector","_handleModalScroll","_scrollTop","_handleModal","_exports","Froffcanvas","offcanvas","Element","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","_closest","_getPanelId","visibility","_unbindOpenPointer","_bindDocClick","currPanel","blur","_unbindDocClick","_bindOpenPointer","panelId","_eventDocClick","isPanel","isPanelChild","openButtons","closeButton","shuffle","random","CONTAINER_SELECTOR","EXCLUDE_SELECTOR","$container","_toggleScrolltop","scroll","_frBypasslinks","_frBypasslinks2","_bypasslinks","bypassLinks","Frbypasslinks","_addFocusability","link","_removeFocusability","_unbindPointerClick","currTarget","_unbindTargetBlur","_eventPointerClick","_bindTargetBlur","_eventTargetBlur","_bindPointerClick","_frTooltip","_frTooltip2","_tooltip","tooltipSelector","toggleSelector","tooltipIdPrefix","tooltip","Frtooltip","replaceChild","span","_showTooltip","tooltipId","currTooltip","_hideTooltip","tooltipContainers","_unbindToggleEvents","_eventTogglePointer","previousElementSibling","nextElementSibling","_eventTogglePointerLeave","isTooltip","isTooltipchild","_bindToggleEvents","_ref$tooltipSelector","_ref$toggleSelector","_ref$tooltipIdPrefix","Treeview","_collapseAll","treeview","$parents","$visibleItems","_expandGroup","$group","slideDown","animationMs","_collapseGroup","slideUp","_collapseSiblings","classParent","_toggleGroup","_updateStyling","classFocused","_handleKeyDown","curNdx","tab","$activeItem","home","last","space","classMenuHandler","$itemUL","$itemParent","right","$prev","asterisk","_handleKeyPress","chr","fromCharCode","bMatch","itemNdx","itemCnt","$curItem","titleChr","_handleClick","$parent","_bindEvents","$handlers","keydown","keypress","$li","styleMenuHandlerStandalone","ariaLabelHandler","styleMenuHandler","containsExpandedLink","hasAttribute","_","treeviewContainer","_ref$classFocused","_ref$classParent","_ref$classMenuHandler","_ref$styleMenuHandler","_ref$styleMenuHandler2","_ref$ariaLabelHandler","_ref$animationMs","pageup","pagedown","method","noop","methods","console","$header"],"mappings":"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","file":"IWT.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jQuery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"IWT\", [\"jQuery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"IWT\"] = factory(require(\"jQuery\"));\n\telse\n\t\troot[\"IWT\"] = factory(root[\"jQuery\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jQuery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"IWT\", [\"jQuery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"IWT\"] = factory(require(\"jQuery\"));\n\telse\n\t\troot[\"IWT\"] = factory(root[\"jQuery\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar Config = __webpack_require__(1);\n\t\n\tfunction _findIndex(ar, predicate) {\n\t for (var index = 0; index < ar.length; index++) {\n\t if (predicate(ar[index])) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t}\n\t/*\n\t *\tEvery index.js found in src/** directory will be required.\n\t *\n\t * \tToo exclude components or modules\n\t * \t@see config.js\n\t */\n\tfunction requireAll(requireContext) {\n\t var keys = [];\n\t\n\t requireContext.keys().forEach(function (filename) {\n\t var dirname = filename.replace(/\\\\/g, '/').replace(/\\/[^\\/]*$/, '');\n\t\n\t var exclude = -1 !== _findIndex(Config.excludes, function (v) {\n\t return dirname.match(new RegExp(v)) !== null;\n\t });\n\t\n\t var include = !exclude && (Config.includes.length === 0 || -1 !== _findIndex(Config.includes, function (v) {\n\t return dirname.match(new RegExp(v)) !== null;\n\t }));\n\t\n\t if (include) {\n\t // console.log('including: %s', dirname)\n\t keys.push(filename);\n\t } else {\n\t // console.log('excluding: %s', dirname)\n\t }\n\t });\n\t return keys.map(requireContext);\n\t}\n\t\n\texports['default'] = requireAll(__webpack_require__(2));\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tvar CONFIG = {};\n\t\n\t/*\n\t * Whitelist: use this array of RegEx to include ONLY specific components\n\t * or modules into the final build.\n\t *\n\t * __Example, to include just header + search form + offcanvas:\n\t *\n\t * CONFIG.includes = [\n\t * '(.*)base(.*)',\n\t * '(.*)button(.*)',\n\t * '(.*)components(.*)',\n\t * '(.*)theme(.*)',\n\t * '(.*)utils(.*)',\n\t * '(.*)icons(.*)',\n\t * '(.*)hamburger(.*)',\n\t * '(.*)offcanvas(.*)',\n\t * '(.*)linklist(.*)',\n\t * '(.*)treeview(.*)',\n\t * '(.*)skiplinks(.*)',\n\t * '(.*)form(.*)',\n\t * '(.*)header(.*)'\n\t * ]\n\t *\n\t * @see index.css for possible values\n\t *\n\t */\n\tCONFIG.includes = [];\n\t\n\t/*\n\t * Blacklist: use this array of RegEx to exclude specific omponents\n\t * or modules from the final build.\n\t *\n\t * ie. to exclude all global CSS:\n\t *\n\t * CONFIG.excludes = [ '(.*)base(.*)', '(.*)normalize(.*)' ]\n\t *\n\t * @see index.css for possible values\n\t *\n\t */\n\tCONFIG.excludes = [];\n\t\n\tmodule.exports = CONFIG;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar map = {\n\t\t\"./components/form/index.js\": 3,\n\t\t\"./components/table/index.js\": 5,\n\t\t\"./modules/accordion/index.js\": 7,\n\t\t\"./modules/carousel/index.js\": 13,\n\t\t\"./modules/cookiebar/index.js\": 16,\n\t\t\"./modules/dialog/index.js\": 19,\n\t\t\"./modules/dropdown/index.js\": 23,\n\t\t\"./modules/header/index.js\": 25,\n\t\t\"./modules/masonry/index.js\": 27,\n\t\t\"./modules/megamenu/index.js\": 29,\n\t\t\"./modules/offcanvas/index.js\": 31,\n\t\t\"./modules/random/index.js\": 35,\n\t\t\"./modules/scrolltop/index.js\": 36,\n\t\t\"./modules/skiplinks/index.js\": 37,\n\t\t\"./modules/tooltip/index.js\": 41,\n\t\t\"./modules/treeview/index.js\": 45,\n\t\t\"./scripts/index.js\": 46\n\t};\n\tfunction webpackContext(req) {\n\t\treturn __webpack_require__(webpackContextResolve(req));\n\t};\n\tfunction webpackContextResolve(req) {\n\t\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n\t};\n\twebpackContext.keys = function webpackContextKeys() {\n\t\treturn Object.keys(map);\n\t};\n\twebpackContext.resolve = webpackContextResolve;\n\tmodule.exports = webpackContext;\n\twebpackContext.id = 2;\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _jquery = __webpack_require__(4);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t(0, _jquery2['default'])(document).ready(function () {\n\t (0, _jquery2['default'])(':radio, :checkbox').on('change', function () {\n\t if ((0, _jquery2['default'])(this).is(':radio')) {\n\t (0, _jquery2['default'])(this).closest('.Form-field').find('.Form-label.is-checked').removeClass('is-checked');\n\t }\n\t if ((0, _jquery2['default'])(this).is(':checked')) {\n\t (0, _jquery2['default'])(this).closest('.Form-label').addClass('is-checked');\n\t } else {\n\t (0, _jquery2['default'])(this).closest('.Form-label').removeClass('is-checked');\n\t }\n\t });\n\t});\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _jquery = __webpack_require__(4);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tvar _throttle = __webpack_require__(6);\n\t\n\tvar _throttle2 = _interopRequireDefault(_throttle);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar defaultOpts = {\n\t responsiveTableSelector: '.js-tableFlip',\n\t responsiveTableClass: 'Table--flip',\n\t responsiveTableBreakpoint: 768\n\t};\n\t\n\tvar initResponsiveTables = function initResponsiveTables(opts) {\n\t (0, _jquery2['default'])(document).ready(function () {\n\t if ((0, _jquery2['default'])(opts.responsiveTableSelector).length > 0) {\n\t (0, _jquery2['default'])(window).resize((0, _throttle2['default'])(250, function () {\n\t if ((0, _jquery2['default'])(window).width() < opts.responsiveTableBreakpoint) {\n\t (0, _jquery2['default'])(opts.responsiveTableSelector).addClass(opts.responsiveTableClass);\n\t } else {\n\t (0, _jquery2['default'])(opts.responsiveTableSelector).removeClass(opts.responsiveTableClass);\n\t }\n\t }));\n\t }\n\t });\n\t};\n\t\n\tinitResponsiveTables(defaultOpts);\n\t\n\texports['default'] = { defaultOpts: defaultOpts, initResponsiveTables: initResponsiveTables };\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\t\n\t/**\n\t * Throttle execution of a function. Especially useful for rate limiting\n\t * execution of handlers on events like resize and scroll.\n\t *\n\t * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n\t * @param {Boolean} noTrailing Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n\t * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n\t * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n\t * the internal counter is reset)\n\t * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n\t * to `callback` when the throttled-function is executed.\n\t * @param {Boolean} debounceMode If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n\t * schedule `callback` to execute after `delay` ms.\n\t *\n\t * @return {Function} A new, throttled, function.\n\t */\n\tmodule.exports = function (delay, noTrailing, callback, debounceMode) {\n\t\n\t\t// After wrapper has stopped being called, this timeout ensures that\n\t\t// `callback` is executed at the proper times in `throttle` and `end`\n\t\t// debounce modes.\n\t\tvar timeoutID;\n\t\n\t\t// Keep track of the last time `callback` was executed.\n\t\tvar lastExec = 0;\n\t\n\t\t// `noTrailing` defaults to falsy.\n\t\tif (typeof noTrailing !== 'boolean') {\n\t\t\tdebounceMode = callback;\n\t\t\tcallback = noTrailing;\n\t\t\tnoTrailing = undefined;\n\t\t}\n\t\n\t\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t\t// functionality and when executed will limit the rate at which `callback`\n\t\t// is executed.\n\t\tfunction wrapper() {\n\t\n\t\t\tvar self = this;\n\t\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\t\tvar args = arguments;\n\t\n\t\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\t\tfunction exec() {\n\t\t\t\tlastExec = Number(new Date());\n\t\t\t\tcallback.apply(self, args);\n\t\t\t}\n\t\n\t\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t\t// to allow future `callback` executions.\n\t\t\tfunction clear() {\n\t\t\t\ttimeoutID = undefined;\n\t\t\t}\n\t\n\t\t\tif (debounceMode && !timeoutID) {\n\t\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\t\texec();\n\t\t\t}\n\t\n\t\t\t// Clear any existing timeout.\n\t\t\tif (timeoutID) {\n\t\t\t\tclearTimeout(timeoutID);\n\t\t\t}\n\t\n\t\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t\t// `callback`.\n\t\t\t\texec();\n\t\t\t} else if (noTrailing !== true) {\n\t\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t\t// recent execution.\n\t\t\t\t//\n\t\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t\t// after `delay` ms.\n\t\t\t\t//\n\t\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t\t// execute after `delay` ms.\n\t\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t\t}\n\t\t}\n\t\n\t\t// Return the wrapper function.\n\t\treturn wrapper;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\t\n\tvar _frAccordion = __webpack_require__(8);\n\t\n\tvar _frAccordion2 = _interopRequireDefault(_frAccordion);\n\t\n\tvar _accordion = __webpack_require__(9);\n\t\n\tvar _accordion2 = _interopRequireDefault(_accordion);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/* eslint-enable */\n\t\n\tvar accordion = (0, _frAccordion2['default'])({\n\t\t// String - Use header id on element to tie each accordion panel to its header - see panelIdPrefix\n\t\theaderIdPrefix: 'accordion-header',\n\t\t// String - Use panel id on element to tie each accordion header to its panel - see headerIdPrefix\n\t\tpanelIdPrefix: 'accordion-panel',\n\t\t// Boolean - If set to false, all accordion panels will be closed on init()\n\t\tfirstPanelsOpenByDefault: false,\n\t\t// Boolean - If set to false, each accordion instance will only allow a single panel to be open at a time\n\t\tmultiselectable: true,\n\t\t// String - Class name that will be added to the selector when the component has been initialised\n\t\treadyClass: 'fr-accordion--is-ready'\n\t});\n\t\n\t/* eslint-disable no-unused-vars */\n\t\n\texports['default'] = { accordion: accordion, Fraccordion: _frAccordion2['default'] };\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 8 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\r\n\t * @param {object} options Object containing configuration overrides\r\n\t */\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\tvar Fraccordion = function Fraccordion() {\n\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t _ref$selector = _ref.selector,\n\t\t selector = _ref$selector === undefined ? '.js-fr-accordion' : _ref$selector,\n\t\t _ref$headerSelector = _ref.headerSelector,\n\t\t headerSelector = _ref$headerSelector === undefined ? '.js-fr-accordion__header' : _ref$headerSelector,\n\t\t _ref$headerIdPrefix = _ref.headerIdPrefix,\n\t\t headerIdPrefix = _ref$headerIdPrefix === undefined ? 'accordion-header' : _ref$headerIdPrefix,\n\t\t _ref$panelSelector = _ref.panelSelector,\n\t\t panelSelector = _ref$panelSelector === undefined ? '.js-fr-accordion__panel' : _ref$panelSelector,\n\t\t _ref$panelIdPrefix = _ref.panelIdPrefix,\n\t\t panelIdPrefix = _ref$panelIdPrefix === undefined ? 'accordion-panel' : _ref$panelIdPrefix,\n\t\t _ref$firstPanelsOpenB = _ref.firstPanelsOpenByDefault,\n\t\t firstPanelsOpenByDefault = _ref$firstPanelsOpenB === undefined ? true : _ref$firstPanelsOpenB,\n\t\t _ref$multiselectable = _ref.multiselectable,\n\t\t multiselectable = _ref$multiselectable === undefined ? true : _ref$multiselectable,\n\t\t _ref$readyClass = _ref.readyClass,\n\t\t readyClass = _ref$readyClass === undefined ? 'fr-accordion--is-ready' : _ref$readyClass,\n\t\t _ref$transitionLength = _ref.transitionLength,\n\t\t transitionLength = _ref$transitionLength === undefined ? 250 : _ref$transitionLength;\n\t\n\t\t// CONSTANTS\n\t\tvar doc = document;\n\t\tvar docEl = doc.documentElement;\n\t\tvar _q = function _q(el) {\n\t\t\tvar ctx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : doc;\n\t\t\treturn [].slice.call(ctx.querySelectorAll(el));\n\t\t};\n\t\n\t\t// SUPPORTS\n\t\tif (!('querySelector' in doc) || !('addEventListener' in window) || !docEl.classList) return;\n\t\n\t\t// SETUP\n\t\t// set accordion element NodeLists\n\t\tvar accordionContainers = _q(selector);\n\t\n\t\t// A11Y\n\t\tfunction _addA11y(accordionContainer) {\n\t\t\t// get accordion elements\n\t\t\tvar accordionHeaders = _q(headerSelector, accordionContainer);\n\t\t\tvar accordionPanels = _q(panelSelector, accordionContainer);\n\t\n\t\t\t// add relevant roles and properties\n\t\t\taccordionContainer.setAttribute('role', 'tablist');\n\t\t\taccordionContainer.setAttribute('aria-multiselectable', multiselectable);\n\t\n\t\t\taccordionHeaders.forEach(function (accordionHeader) {\n\t\t\t\taccordionHeader.setAttribute('role', 'tab');\n\t\t\t\taccordionHeader.setAttribute('aria-controls', accordionHeader.id.replace(headerIdPrefix, panelIdPrefix));\n\t\t\t\t// make headers focusable, this is preferred over wrapping contents in native button element\n\t\t\t\taccordionHeader.setAttribute('tabindex', 0);\n\t\t\t});\n\t\n\t\t\taccordionPanels.forEach(function (accordionPanel) {\n\t\t\t\taccordionPanel.setAttribute('role', 'tabpanel');\n\t\t\t\taccordionPanel.setAttribute('aria-labelledby', accordionPanel.id.replace(panelIdPrefix, headerIdPrefix));\n\t\t\t\t// make tabpanel focusable\n\t\t\t\taccordionPanel.setAttribute('tabindex', 0);\n\t\t\t});\n\t\t}\n\t\tfunction _removeA11y(accordionContainer) {\n\t\t\t// get accordion elements\n\t\t\tvar accordionHeaders = _q(headerSelector, accordionContainer);\n\t\t\tvar accordionPanels = _q(panelSelector, accordionContainer);\n\t\n\t\t\t// remove roles and properties\n\t\t\taccordionContainer.removeAttribute('role');\n\t\t\taccordionContainer.removeAttribute('aria-multiselectable');\n\t\n\t\t\taccordionHeaders.forEach(function (accordionHeader) {\n\t\t\t\taccordionHeader.removeAttribute('role');\n\t\t\t\taccordionHeader.removeAttribute('aria-controls');\n\t\t\t\taccordionHeader.removeAttribute('aria-selected');\n\t\t\t\taccordionHeader.removeAttribute('aria-expanded');\n\t\t\t\t// remove headers focusablility\n\t\t\t\taccordionHeader.removeAttribute('tabindex');\n\t\t\t});\n\t\n\t\t\taccordionPanels.forEach(function (accordionPanel) {\n\t\t\t\taccordionPanel.removeAttribute('role');\n\t\t\t\taccordionPanel.removeAttribute('aria-labelledby');\n\t\t\t\taccordionPanel.removeAttribute('aria-hidden');\n\t\t\t\t// remove tabpanel focusablibility\n\t\t\t\taccordionPanel.removeAttribute('tabindex');\n\t\t\t});\n\t\t}\n\t\n\t\t//\tUTILS\n\t\tfunction _getPanelHeight(panel) {\n\t\t\t//\tset auto height and read offsetHeight\n\t\t\tpanel.style.height = 'auto';\n\t\t\tvar height = panel.offsetHeight;\n\t\t\t//\tremove style\n\t\t\tpanel.style.height = '';\n\t\t\treturn height;\n\t\t}\n\t\tfunction _setPanelHeight(panel) {\n\t\t\t//\tget panel height\n\t\t\tvar panelHeight = _getPanelHeight(panel);\n\t\t\t//\trecalc style and layout\n\t\t\tpanel.getBoundingClientRect();\n\t\t\t//\tset height on panel, reset to 'auto' on transition complete\n\t\t\tpanel.style.height = panelHeight + 'px';\n\t\t\tsetTimeout(function () {\n\t\t\t\tpanel.style.transition = 'none';\n\t\t\t\tpanel.style.height = 'auto';\n\t\t\t\t//\trecalc style and layout\n\t\t\t\tpanel.getBoundingClientRect();\n\t\t\t\tpanel.style.transition = '';\n\t\t\t}, transitionLength);\n\t\t}\n\t\tfunction _unsetPanelHeight(panel) {\n\t\t\t//\tget panel height\n\t\t\tvar panelHeight = _getPanelHeight(panel);\n\t\t\t//\tset panel height from 'auto' to px\n\t\t\tpanel.style.height = panelHeight + 'px';\n\t\t\t//\trecalc style and layout\n\t\t\tpanel.getBoundingClientRect();\n\t\t\t//\treset height\n\t\t\tpanel.style.height = 0;\n\t\t}\n\t\n\t\t// ACTIONS\n\t\tfunction _hideAllPanels(accordionContainer) {\n\t\t\t// get accordion elements\n\t\t\tvar siblingHeaders = _q(headerSelector, accordionContainer);\n\t\t\tvar siblingPanels = _q(panelSelector, accordionContainer);\n\t\n\t\t\t// set inactives\n\t\t\tsiblingHeaders.forEach(function (header) {\n\t\t\t\theader.setAttribute('tabindex', -1);\n\t\t\t\theader.setAttribute('aria-selected', 'false');\n\t\t\t\theader.setAttribute('aria-expanded', 'false');\n\t\t\t});\n\t\t\tsiblingPanels.forEach(function (panel) {\n\t\t\t\tif (panel.getAttribute('aria-hidden') === 'false') _unsetPanelHeight(panel);\n\t\t\t\t//\ttoggle aria-hidden\n\t\t\t\tpanel.setAttribute('aria-hidden', 'true');\n\t\t\t});\n\t\t}\n\t\tfunction _hidePanel(target) {\n\t\t\t//\tget panel\n\t\t\tvar activePanel = doc.getElementById(target.getAttribute('aria-controls'));\n\t\t\ttarget.setAttribute('aria-selected', 'false');\n\t\t\ttarget.setAttribute('aria-expanded', 'false');\n\t\t\t//\ttoggle aria-hidden\n\t\t\t_unsetPanelHeight(activePanel);\n\t\t\tactivePanel.setAttribute('aria-hidden', 'true');\n\t\t}\n\t\tfunction _showPanel(target) {\n\t\t\t//\tget panel\n\t\t\tvar activePanel = doc.getElementById(target.getAttribute('aria-controls'));\n\t\t\t//\tset attributes on header\n\t\t\ttarget.setAttribute('tabindex', 0);\n\t\t\ttarget.setAttribute('aria-selected', 'true');\n\t\t\ttarget.setAttribute('aria-expanded', 'true');\n\t\t\t//\ttoggle aria-hidden and set height on panel\n\t\t\t_setPanelHeight(activePanel);\n\t\t\tactivePanel.setAttribute('aria-hidden', 'false');\n\t\t\tsetTimeout(function () {\n\t\t\t\treturn _bindAccordionEvents(target.parentNode);\n\t\t\t}, transitionLength);\n\t\t}\n\t\tfunction _togglePanel(target) {\n\t\t\t// get context of accordion container and its children\n\t\t\tvar thisContainer = target.parentNode;\n\t\t\t// close target panel if already active\n\t\t\tif (target.getAttribute('aria-selected') === 'true') {\n\t\t\t\t_hidePanel(target);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// if not multiselectable hide all, then show target\n\t\t\tif (!multiselectable) _hideAllPanels(thisContainer);\n\t\n\t\t\t_showPanel(target);\n\t\t\tif (transitionLength > 0) _unbindAccordionEvents(thisContainer);\n\t\t}\n\t\tfunction _giveHeaderFocus(headerSet, i) {\n\t\t\t// remove focusability from inactives\n\t\t\theaderSet.forEach(function (header) {\n\t\t\t\theader.setAttribute('tabindex', -1);\n\t\t\t});\n\t\t\t// set active focus\n\t\t\theaderSet[i].setAttribute('tabindex', 0);\n\t\t\theaderSet[i].focus();\n\t\t}\n\t\n\t\t//\tEVENTS\n\t\tfunction _eventHeaderClick(e) {\n\t\t\t_togglePanel(e.currentTarget);\n\t\t}\n\t\tfunction _eventHeaderKeydown(e) {\n\t\t\t// collect header targets, and their prev/next\n\t\t\tvar currentHeader = e.currentTarget;\n\t\t\tvar isModifierKey = e.metaKey || e.altKey;\n\t\t\t// get context of accordion container and its children\n\t\t\tvar thisContainer = currentHeader.parentNode;\n\t\t\tvar theseHeaders = _q(headerSelector, thisContainer);\n\t\t\tvar currentHeaderIndex = [].indexOf.call(theseHeaders, currentHeader);\n\t\n\t\t\t// don't catch key events when ⌘ or Alt modifier is present\n\t\t\tif (isModifierKey) return;\n\t\n\t\t\t// catch enter/space, left/right and up/down arrow key events\n\t\t\t// if new panel show it, if next/prev move focus\n\t\t\tswitch (e.keyCode) {\n\t\t\t\tcase 13:\n\t\t\t\tcase 32:\n\t\t\t\t\t_togglePanel(currentHeader);\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37:\n\t\t\t\tcase 38:\n\t\t\t\t\t{\n\t\t\t\t\t\tvar previousHeaderIndex = currentHeaderIndex === 0 ? theseHeaders.length - 1 : currentHeaderIndex - 1;\n\t\t\t\t\t\t_giveHeaderFocus(theseHeaders, previousHeaderIndex);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 39:\n\t\t\t\tcase 40:\n\t\t\t\t\t{\n\t\t\t\t\t\tvar nextHeaderIndex = currentHeaderIndex < theseHeaders.length - 1 ? currentHeaderIndex + 1 : 0;\n\t\t\t\t\t\t_giveHeaderFocus(theseHeaders, nextHeaderIndex);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\n\t\t//\tBIND EVENTS\n\t\tfunction _bindAccordionEvents(accordionContainer) {\n\t\t\tvar accordionHeaders = _q(headerSelector, accordionContainer);\n\t\t\t// bind all accordion header click and keydown events\n\t\t\taccordionHeaders.forEach(function (accordionHeader) {\n\t\t\t\taccordionHeader.addEventListener('click', _eventHeaderClick);\n\t\t\t\taccordionHeader.addEventListener('keydown', _eventHeaderKeydown);\n\t\t\t});\n\t\t}\n\t\n\t\t//\tUNBIND EVENTS\n\t\tfunction _unbindAccordionEvents(accordionContainer) {\n\t\t\tvar accordionHeaders = _q(headerSelector, accordionContainer);\n\t\t\t// unbind all accordion header click and keydown events\n\t\t\taccordionHeaders.forEach(function (accordionHeader) {\n\t\t\t\taccordionHeader.removeEventListener('click', _eventHeaderClick);\n\t\t\t\taccordionHeader.removeEventListener('keydown', _eventHeaderKeydown);\n\t\t\t});\n\t\t}\n\t\n\t\t// DESTROY\n\t\tfunction destroy() {\n\t\t\taccordionContainers.forEach(function (accordionContainer) {\n\t\t\t\t_removeA11y(accordionContainer);\n\t\t\t\t_unbindAccordionEvents(accordionContainer);\n\t\t\t\taccordionContainer.classList.remove(readyClass);\n\t\t\t});\n\t\t}\n\t\n\t\t// INIT\n\t\tfunction init() {\n\t\t\tif (accordionContainers.length) {\n\t\t\t\taccordionContainers.forEach(function (accordionContainer) {\n\t\t\t\t\t_addA11y(accordionContainer);\n\t\t\t\t\t_bindAccordionEvents(accordionContainer);\n\t\t\t\t\t_hideAllPanels(accordionContainer);\n\t\t\t\t\t// set all first accordion panels active on init if required (default behaviour)\n\t\t\t\t\t// otherwise make sure first accordion header for each is focusable\n\t\t\t\t\tif (firstPanelsOpenByDefault) {\n\t\t\t\t\t\t_togglePanel(accordionContainer.querySelector(headerSelector));\n\t\t\t\t\t} else {\n\t\t\t\t\t\taccordionContainer.querySelector(headerSelector).setAttribute('tabindex', 0);\n\t\t\t\t\t}\n\t\t\t\t\t// set ready style hook\n\t\t\t\t\taccordionContainer.classList.add(readyClass);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tinit();\n\t\n\t\t// REVEAL API\n\t\treturn {\n\t\t\tinit: init,\n\t\t\tdestroy: destroy\n\t\t};\n\t};\n\t\n\t// module exports\n\texports['default'] = Fraccordion;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _jquery = __webpack_require__(4);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tvar _owl = __webpack_require__(14);\n\t\n\tvar _owl2 = _interopRequireDefault(_owl);\n\t\n\tvar _a11y = __webpack_require__(15);\n\t\n\tvar _a11y2 = _interopRequireDefault(_a11y);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/* eslint-enable no-unused-vars */\n\t\n\t/* eslint-disable no-unused-vars */\n\t\n\tvar opts = {\n\t owlPrev: '.owl-prev',\n\t owlNext: '.owl-next',\n\t owlItem: '.owl-item',\n\t jsSelector: '.owl-carousel',\n\t owlOpts: {\n\t nav: false,\n\t // navText: ['precedente', 'successivo'],\n\t items: 3,\n\t dots: false,\n\t loop: false,\n\t margin: 16,\n\t mouseDrag: true,\n\t URLhashListener: true,\n\t startPosition: 'URLHash',\n\t responsive: {\n\t 0: {\n\t items: 1\n\t },\n\t 768: {\n\t items: 2\n\t },\n\t 992: {\n\t items: 3\n\t }\n\t }\n\t }\n\t};\n\t\n\tvar init = function init() {\n\t var $owl = (0, _jquery2['default'])(opts.jsSelector);\n\t\n\t (0, _jquery2['default'])(opts.owlPrev).click(function () {\n\t return $owl.trigger('prev.owl.carousel');\n\t });\n\t (0, _jquery2['default'])(opts.owlNext).click(function () {\n\t return $owl.trigger('next.owl.carousel');\n\t });\n\t\n\t $owl.on('initialized.owl.carousel changed.owl.carousel refreshed.owl.carousel', function (event) {\n\t if (!event.namespace) return;\n\t\n\t var carousel = event.relatedTarget,\n\t element = event.target,\n\t current = carousel.current();\n\t\n\t (0, _jquery2['default'])(opts.owlNext + '[aria-controls=\\'' + element.id + '\\']').toggleClass('u-visibilityHidden', current === carousel.maximum());\n\t\n\t (0, _jquery2['default'])(opts.owlPrev + '[aria-controls=\\'' + element.id + '\\']').toggleClass('u-visibilityHidden', current === carousel.minimum());\n\t });\n\t\n\t // must be called after events initialization\n\t $owl.owlCarousel(opts.owlOpts);\n\t};\n\t\n\t(0, _jquery2['default'])(document).ready(init);\n\t\n\texports['default'] = {\n\t opts: opts,\n\t init: init\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * Owl Carousel v2.2.0\n\t * Copyright 2013-2016 David Deutsch\n\t * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE)\n\t */\n\t/**\n\t * Owl carousel\n\t * @version 2.1.6\n\t * @author Bartosz Wojciechowski\n\t * @author David Deutsch\n\t * @license The MIT License (MIT)\n\t * @todo Lazy Load Icon\n\t * @todo prevent animationend bubling\n\t * @todo itemsScaleUp\n\t * @todo Test Zepto\n\t * @todo stagePadding calculate wrong active classes\n\t */\n\t;(function ($, window, document, undefined) {\n\t\n\t\t/**\n\t * Creates a carousel.\n\t * @class The Owl Carousel.\n\t * @public\n\t * @param {HTMLElement|jQuery} element - The element to create the carousel for.\n\t * @param {Object} [options] - The options\n\t */\n\t\tfunction Owl(element, options) {\n\t\n\t\t\t/**\n\t * Current settings for the carousel.\n\t * @public\n\t */\n\t\t\tthis.settings = null;\n\t\n\t\t\t/**\n\t * Current options set by the caller including defaults.\n\t * @public\n\t */\n\t\t\tthis.options = $.extend({}, Owl.Defaults, options);\n\t\n\t\t\t/**\n\t * Plugin element.\n\t * @public\n\t */\n\t\t\tthis.$element = $(element);\n\t\n\t\t\t/**\n\t * Proxied event handlers.\n\t * @protected\n\t */\n\t\t\tthis._handlers = {};\n\t\n\t\t\t/**\n\t * References to the running plugins of this carousel.\n\t * @protected\n\t */\n\t\t\tthis._plugins = {};\n\t\n\t\t\t/**\n\t * Currently suppressed events to prevent them from beeing retriggered.\n\t * @protected\n\t */\n\t\t\tthis._supress = {};\n\t\n\t\t\t/**\n\t * Absolute current position.\n\t * @protected\n\t */\n\t\t\tthis._current = null;\n\t\n\t\t\t/**\n\t * Animation speed in milliseconds.\n\t * @protected\n\t */\n\t\t\tthis._speed = null;\n\t\n\t\t\t/**\n\t * Coordinates of all items in pixel.\n\t * @todo The name of this member is missleading.\n\t * @protected\n\t */\n\t\t\tthis._coordinates = [];\n\t\n\t\t\t/**\n\t * Current breakpoint.\n\t * @todo Real media queries would be nice.\n\t * @protected\n\t */\n\t\t\tthis._breakpoint = null;\n\t\n\t\t\t/**\n\t * Current width of the plugin element.\n\t */\n\t\t\tthis._width = null;\n\t\n\t\t\t/**\n\t * All real items.\n\t * @protected\n\t */\n\t\t\tthis._items = [];\n\t\n\t\t\t/**\n\t * All cloned items.\n\t * @protected\n\t */\n\t\t\tthis._clones = [];\n\t\n\t\t\t/**\n\t * Merge values of all items.\n\t * @todo Maybe this could be part of a plugin.\n\t * @protected\n\t */\n\t\t\tthis._mergers = [];\n\t\n\t\t\t/**\n\t * Widths of all items.\n\t */\n\t\t\tthis._widths = [];\n\t\n\t\t\t/**\n\t * Invalidated parts within the update process.\n\t * @protected\n\t */\n\t\t\tthis._invalidated = {};\n\t\n\t\t\t/**\n\t * Ordered list of workers for the update process.\n\t * @protected\n\t */\n\t\t\tthis._pipe = [];\n\t\n\t\t\t/**\n\t * Current state information for the drag operation.\n\t * @todo #261\n\t * @protected\n\t */\n\t\t\tthis._drag = {\n\t\t\t\ttime: null,\n\t\t\t\ttarget: null,\n\t\t\t\tpointer: null,\n\t\t\t\tstage: {\n\t\t\t\t\tstart: null,\n\t\t\t\t\tcurrent: null\n\t\t\t\t},\n\t\t\t\tdirection: null\n\t\t\t};\n\t\n\t\t\t/**\n\t * Current state information and their tags.\n\t * @type {Object}\n\t * @protected\n\t */\n\t\t\tthis._states = {\n\t\t\t\tcurrent: {},\n\t\t\t\ttags: {\n\t\t\t\t\t'initializing': ['busy'],\n\t\t\t\t\t'animating': ['busy'],\n\t\t\t\t\t'dragging': ['interacting']\n\t\t\t\t}\n\t\t\t};\n\t\n\t\t\t$.each(['onResize', 'onThrottledResize'], $.proxy(function (i, handler) {\n\t\t\t\tthis._handlers[handler] = $.proxy(this[handler], this);\n\t\t\t}, this));\n\t\n\t\t\t$.each(Owl.Plugins, $.proxy(function (key, plugin) {\n\t\t\t\tthis._plugins[key.charAt(0).toLowerCase() + key.slice(1)] = new plugin(this);\n\t\t\t}, this));\n\t\n\t\t\t$.each(Owl.Workers, $.proxy(function (priority, worker) {\n\t\t\t\tthis._pipe.push({\n\t\t\t\t\t'filter': worker.filter,\n\t\t\t\t\t'run': $.proxy(worker.run, this)\n\t\t\t\t});\n\t\t\t}, this));\n\t\n\t\t\tthis.setup();\n\t\t\tthis.initialize();\n\t\t}\n\t\n\t\t/**\n\t * Default options for the carousel.\n\t * @public\n\t */\n\t\tOwl.Defaults = {\n\t\t\titems: 3,\n\t\t\tloop: false,\n\t\t\tcenter: false,\n\t\t\trewind: false,\n\t\n\t\t\tmouseDrag: true,\n\t\t\ttouchDrag: true,\n\t\t\tpullDrag: true,\n\t\t\tfreeDrag: false,\n\t\n\t\t\tmargin: 0,\n\t\t\tstagePadding: 0,\n\t\n\t\t\tmerge: false,\n\t\t\tmergeFit: true,\n\t\t\tautoWidth: false,\n\t\n\t\t\tstartPosition: 0,\n\t\t\trtl: false,\n\t\n\t\t\tsmartSpeed: 250,\n\t\t\tfluidSpeed: false,\n\t\t\tdragEndSpeed: false,\n\t\n\t\t\tresponsive: {},\n\t\t\tresponsiveRefreshRate: 200,\n\t\t\tresponsiveBaseElement: window,\n\t\n\t\t\tfallbackEasing: 'swing',\n\t\n\t\t\tinfo: false,\n\t\n\t\t\tnestedItemSelector: false,\n\t\t\titemElement: 'div',\n\t\t\tstageElement: 'div',\n\t\n\t\t\trefreshClass: 'owl-refresh',\n\t\t\tloadedClass: 'owl-loaded',\n\t\t\tloadingClass: 'owl-loading',\n\t\t\trtlClass: 'owl-rtl',\n\t\t\tresponsiveClass: 'owl-responsive',\n\t\t\tdragClass: 'owl-drag',\n\t\t\titemClass: 'owl-item',\n\t\t\tstageClass: 'owl-stage',\n\t\t\tstageOuterClass: 'owl-stage-outer',\n\t\t\tgrabClass: 'owl-grab'\n\t\t};\n\t\n\t\t/**\n\t * Enumeration for width.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\t\tOwl.Width = {\n\t\t\tDefault: 'default',\n\t\t\tInner: 'inner',\n\t\t\tOuter: 'outer'\n\t\t};\n\t\n\t\t/**\n\t * Enumeration for types.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\t\tOwl.Type = {\n\t\t\tEvent: 'event',\n\t\t\tState: 'state'\n\t\t};\n\t\n\t\t/**\n\t * Contains all registered plugins.\n\t * @public\n\t */\n\t\tOwl.Plugins = {};\n\t\n\t\t/**\n\t * List of workers involved in the update process.\n\t */\n\t\tOwl.Workers = [{\n\t\t\tfilter: ['width', 'settings'],\n\t\t\trun: function run() {\n\t\t\t\tthis._width = this.$element.width();\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'items', 'settings'],\n\t\t\trun: function run(cache) {\n\t\t\t\tcache.current = this._items && this._items[this.relative(this._current)];\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['items', 'settings'],\n\t\t\trun: function run() {\n\t\t\t\tthis.$stage.children('.cloned').remove();\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'items', 'settings'],\n\t\t\trun: function run(cache) {\n\t\t\t\tvar margin = this.settings.margin || '',\n\t\t\t\t grid = !this.settings.autoWidth,\n\t\t\t\t rtl = this.settings.rtl,\n\t\t\t\t css = {\n\t\t\t\t\t'width': 'auto',\n\t\t\t\t\t'margin-left': rtl ? margin : '',\n\t\t\t\t\t'margin-right': rtl ? '' : margin\n\t\t\t\t};\n\t\n\t\t\t\t!grid && this.$stage.children().css(css);\n\t\n\t\t\t\tcache.css = css;\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'items', 'settings'],\n\t\t\trun: function run(cache) {\n\t\t\t\tvar width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,\n\t\t\t\t merge = null,\n\t\t\t\t iterator = this._items.length,\n\t\t\t\t grid = !this.settings.autoWidth,\n\t\t\t\t widths = [];\n\t\n\t\t\t\tcache.items = {\n\t\t\t\t\tmerge: false,\n\t\t\t\t\twidth: width\n\t\t\t\t};\n\t\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\tmerge = this._mergers[iterator];\n\t\t\t\t\tmerge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;\n\t\n\t\t\t\t\tcache.items.merge = merge > 1 || cache.items.merge;\n\t\n\t\t\t\t\twidths[iterator] = !grid ? this._items[iterator].width() : width * merge;\n\t\t\t\t}\n\t\n\t\t\t\tthis._widths = widths;\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['items', 'settings'],\n\t\t\trun: function run() {\n\t\t\t\tvar clones = [],\n\t\t\t\t items = this._items,\n\t\t\t\t settings = this.settings,\n\t\t\t\t view = Math.max(settings.items * 2, 4),\n\t\t\t\t size = Math.ceil(items.length / 2) * 2,\n\t\t\t\t repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,\n\t\t\t\t append = '',\n\t\t\t\t prepend = '';\n\t\n\t\t\t\trepeat /= 2;\n\t\n\t\t\t\twhile (repeat--) {\n\t\t\t\t\tclones.push(this.normalize(clones.length / 2, true));\n\t\t\t\t\tappend = append + items[clones[clones.length - 1]][0].outerHTML;\n\t\t\t\t\tclones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\n\t\t\t\t\tprepend = items[clones[clones.length - 1]][0].outerHTML + prepend;\n\t\t\t\t}\n\t\n\t\t\t\tthis._clones = clones;\n\t\n\t\t\t\t$(append).addClass('cloned').appendTo(this.$stage);\n\t\t\t\t$(prepend).addClass('cloned').prependTo(this.$stage);\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'items', 'settings'],\n\t\t\trun: function run() {\n\t\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\t size = this._clones.length + this._items.length,\n\t\t\t\t iterator = -1,\n\t\t\t\t previous = 0,\n\t\t\t\t current = 0,\n\t\t\t\t coordinates = [];\n\t\n\t\t\t\twhile (++iterator < size) {\n\t\t\t\t\tprevious = coordinates[iterator - 1] || 0;\n\t\t\t\t\tcurrent = this._widths[this.relative(iterator)] + this.settings.margin;\n\t\t\t\t\tcoordinates.push(previous + current * rtl);\n\t\t\t\t}\n\t\n\t\t\t\tthis._coordinates = coordinates;\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'items', 'settings'],\n\t\t\trun: function run() {\n\t\t\t\tvar padding = this.settings.stagePadding,\n\t\t\t\t coordinates = this._coordinates,\n\t\t\t\t css = {\n\t\t\t\t\t'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\n\t\t\t\t\t'padding-left': padding || '',\n\t\t\t\t\t'padding-right': padding || ''\n\t\t\t\t};\n\t\n\t\t\t\tthis.$stage.css(css);\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'items', 'settings'],\n\t\t\trun: function run(cache) {\n\t\t\t\tvar iterator = this._coordinates.length,\n\t\t\t\t grid = !this.settings.autoWidth,\n\t\t\t\t items = this.$stage.children();\n\t\n\t\t\t\tif (grid && cache.items.merge) {\n\t\t\t\t\twhile (iterator--) {\n\t\t\t\t\t\tcache.css.width = this._widths[this.relative(iterator)];\n\t\t\t\t\t\titems.eq(iterator).css(cache.css);\n\t\t\t\t\t}\n\t\t\t\t} else if (grid) {\n\t\t\t\t\tcache.css.width = cache.items.width;\n\t\t\t\t\titems.css(cache.css);\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['items'],\n\t\t\trun: function run() {\n\t\t\t\tthis._coordinates.length < 1 && this.$stage.removeAttr('style');\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'items', 'settings'],\n\t\t\trun: function run(cache) {\n\t\t\t\tcache.current = cache.current ? this.$stage.children().index(cache.current) : 0;\n\t\t\t\tcache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));\n\t\t\t\tthis.reset(cache.current);\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['position'],\n\t\t\trun: function run() {\n\t\t\t\tthis.animate(this.coordinates(this._current));\n\t\t\t}\n\t\t}, {\n\t\t\tfilter: ['width', 'position', 'items', 'settings'],\n\t\t\trun: function run() {\n\t\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\t padding = this.settings.stagePadding * 2,\n\t\t\t\t begin = this.coordinates(this.current()) + padding,\n\t\t\t\t end = begin + this.width() * rtl,\n\t\t\t\t inner,\n\t\t\t\t outer,\n\t\t\t\t matches = [],\n\t\t\t\t i,\n\t\t\t\t n;\n\t\n\t\t\t\tfor (i = 0, n = this._coordinates.length; i < n; i++) {\n\t\t\t\t\tinner = this._coordinates[i - 1] || 0;\n\t\t\t\t\touter = Math.abs(this._coordinates[i]) + padding * rtl;\n\t\n\t\t\t\t\tif (this.op(inner, '<=', begin) && this.op(inner, '>', end) || this.op(outer, '<', begin) && this.op(outer, '>', end)) {\n\t\t\t\t\t\tmatches.push(i);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\tthis.$stage.children('.active').removeClass('active');\n\t\t\t\tthis.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');\n\t\n\t\t\t\tif (this.settings.center) {\n\t\t\t\t\tthis.$stage.children('.center').removeClass('center');\n\t\t\t\t\tthis.$stage.children().eq(this.current()).addClass('center');\n\t\t\t\t}\n\t\t\t}\n\t\t}];\n\t\n\t\t/**\n\t * Initializes the carousel.\n\t * @protected\n\t */\n\t\tOwl.prototype.initialize = function () {\n\t\t\tthis.enter('initializing');\n\t\t\tthis.trigger('initialize');\n\t\n\t\t\tthis.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);\n\t\n\t\t\tif (this.settings.autoWidth && !this.is('pre-loading')) {\n\t\t\t\tvar imgs, nestedSelector, width;\n\t\t\t\timgs = this.$element.find('img');\n\t\t\t\tnestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;\n\t\t\t\twidth = this.$element.children(nestedSelector).width();\n\t\n\t\t\t\tif (imgs.length && width <= 0) {\n\t\t\t\t\tthis.preloadAutoWidthImages(imgs);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tthis.$element.addClass(this.options.loadingClass);\n\t\n\t\t\t// create stage\n\t\t\tthis.$stage = $('<' + this.settings.stageElement + ' class=\"' + this.settings.stageClass + '\"/>').wrap('
');\n\t\n\t\t\t// append stage\n\t\t\tthis.$element.append(this.$stage.parent());\n\t\n\t\t\t// append content\n\t\t\tthis.replace(this.$element.children().not(this.$stage.parent()));\n\t\n\t\t\t// check visibility\n\t\t\tif (this.$element.is(':visible')) {\n\t\t\t\t// update view\n\t\t\t\tthis.refresh();\n\t\t\t} else {\n\t\t\t\t// invalidate width\n\t\t\t\tthis.invalidate('width');\n\t\t\t}\n\t\n\t\t\tthis.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass);\n\t\n\t\t\t// register event handlers\n\t\t\tthis.registerEventHandlers();\n\t\n\t\t\tthis.leave('initializing');\n\t\t\tthis.trigger('initialized');\n\t\t};\n\t\n\t\t/**\n\t * Setups the current settings.\n\t * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\n\t * @todo Support for media queries by using `matchMedia` would be nice.\n\t * @public\n\t */\n\t\tOwl.prototype.setup = function () {\n\t\t\tvar viewport = this.viewport(),\n\t\t\t overwrites = this.options.responsive,\n\t\t\t match = -1,\n\t\t\t settings = null;\n\t\n\t\t\tif (!overwrites) {\n\t\t\t\tsettings = $.extend({}, this.options);\n\t\t\t} else {\n\t\t\t\t$.each(overwrites, function (breakpoint) {\n\t\t\t\t\tif (breakpoint <= viewport && breakpoint > match) {\n\t\t\t\t\t\tmatch = Number(breakpoint);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tsettings = $.extend({}, this.options, overwrites[match]);\n\t\t\t\tif (typeof settings.stagePadding === 'function') {\n\t\t\t\t\tsettings.stagePadding = settings.stagePadding();\n\t\t\t\t}\n\t\t\t\tdelete settings.responsive;\n\t\n\t\t\t\t// responsive class\n\t\t\t\tif (settings.responsiveClass) {\n\t\t\t\t\tthis.$element.attr('class', this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\\\S+\\\\s', 'g'), '$1' + match));\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tthis.trigger('change', { property: { name: 'settings', value: settings } });\n\t\t\tthis._breakpoint = match;\n\t\t\tthis.settings = settings;\n\t\t\tthis.invalidate('settings');\n\t\t\tthis.trigger('changed', { property: { name: 'settings', value: this.settings } });\n\t\t};\n\t\n\t\t/**\n\t * Updates option logic if necessery.\n\t * @protected\n\t */\n\t\tOwl.prototype.optionsLogic = function () {\n\t\t\tif (this.settings.autoWidth) {\n\t\t\t\tthis.settings.stagePadding = false;\n\t\t\t\tthis.settings.merge = false;\n\t\t\t}\n\t\t};\n\t\n\t\t/**\n\t * Prepares an item before add.\n\t * @todo Rename event parameter `content` to `item`.\n\t * @protected\n\t * @returns {jQuery|HTMLElement} - The item container.\n\t */\n\t\tOwl.prototype.prepare = function (item) {\n\t\t\tvar event = this.trigger('prepare', { content: item });\n\t\n\t\t\tif (!event.data) {\n\t\t\t\tevent.data = $('<' + this.settings.itemElement + '/>').addClass(this.options.itemClass).append(item);\n\t\t\t}\n\t\n\t\t\tthis.trigger('prepared', { content: event.data });\n\t\n\t\t\treturn event.data;\n\t\t};\n\t\n\t\t/**\n\t * Updates the view.\n\t * @public\n\t */\n\t\tOwl.prototype.update = function () {\n\t\t\tvar i = 0,\n\t\t\t n = this._pipe.length,\n\t\t\t filter = $.proxy(function (p) {\n\t\t\t\treturn this[p];\n\t\t\t}, this._invalidated),\n\t\t\t cache = {};\n\t\n\t\t\twhile (i < n) {\n\t\t\t\tif (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {\n\t\t\t\t\tthis._pipe[i].run(cache);\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\n\t\t\tthis._invalidated = {};\n\t\n\t\t\t!this.is('valid') && this.enter('valid');\n\t\t};\n\t\n\t\t/**\n\t * Gets the width of the view.\n\t * @public\n\t * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.\n\t * @returns {Number} - The width of the view in pixel.\n\t */\n\t\tOwl.prototype.width = function (dimension) {\n\t\t\tdimension = dimension || Owl.Width.Default;\n\t\t\tswitch (dimension) {\n\t\t\t\tcase Owl.Width.Inner:\n\t\t\t\tcase Owl.Width.Outer:\n\t\t\t\t\treturn this._width;\n\t\t\t\tdefault:\n\t\t\t\t\treturn this._width - this.settings.stagePadding * 2 + this.settings.margin;\n\t\t\t}\n\t\t};\n\t\n\t\t/**\n\t * Refreshes the carousel primarily for adaptive purposes.\n\t * @public\n\t */\n\t\tOwl.prototype.refresh = function () {\n\t\t\tthis.enter('refreshing');\n\t\t\tthis.trigger('refresh');\n\t\n\t\t\tthis.setup();\n\t\n\t\t\tthis.optionsLogic();\n\t\n\t\t\tthis.$element.addClass(this.options.refreshClass);\n\t\n\t\t\tthis.update();\n\t\n\t\t\tthis.$element.removeClass(this.options.refreshClass);\n\t\n\t\t\tthis.leave('refreshing');\n\t\t\tthis.trigger('refreshed');\n\t\t};\n\t\n\t\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\t\tOwl.prototype.onThrottledResize = function () {\n\t\t\twindow.clearTimeout(this.resizeTimer);\n\t\t\tthis.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);\n\t\t};\n\t\n\t\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\t\tOwl.prototype.onResize = function () {\n\t\t\tif (!this._items.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\tif (this._width === this.$element.width()) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\tif (!this.$element.is(':visible')) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\tthis.enter('resizing');\n\t\n\t\t\tif (this.trigger('resize').isDefaultPrevented()) {\n\t\t\t\tthis.leave('resizing');\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\tthis.invalidate('width');\n\t\n\t\t\tthis.refresh();\n\t\n\t\t\tthis.leave('resizing');\n\t\t\tthis.trigger('resized');\n\t\t};\n\t\n\t\t/**\n\t * Registers event handlers.\n\t * @todo Check `msPointerEnabled`\n\t * @todo #261\n\t * @protected\n\t */\n\t\tOwl.prototype.registerEventHandlers = function () {\n\t\t\tif ($.support.transition) {\n\t\t\t\tthis.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));\n\t\t\t}\n\t\n\t\t\tif (this.settings.responsive !== false) {\n\t\t\t\tthis.on(window, 'resize', this._handlers.onThrottledResize);\n\t\t\t}\n\t\n\t\t\tif (this.settings.mouseDrag) {\n\t\t\t\tthis.$element.addClass(this.options.dragClass);\n\t\t\t\tthis.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));\n\t\t\t\tthis.$stage.on('dragstart.owl.core selectstart.owl.core', function () {\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tif (this.settings.touchDrag) {\n\t\t\t\tthis.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));\n\t\t\t\tthis.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));\n\t\t\t}\n\t\t};\n\t\n\t\t/**\n\t * Handles `touchstart` and `mousedown` events.\n\t * @todo Horizontal swipe threshold as option\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\t\tOwl.prototype.onDragStart = function (event) {\n\t\t\tvar stage = null;\n\t\n\t\t\tif (event.which === 3) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ($.support.transform) {\n\t\t\t\tstage = this.$stage.css('transform').replace(/.*\\(|\\)| /g, '').split(',');\n\t\t\t\tstage = {\n\t\t\t\t\tx: stage[stage.length === 16 ? 12 : 4],\n\t\t\t\t\ty: stage[stage.length === 16 ? 13 : 5]\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tstage = this.$stage.position();\n\t\t\t\tstage = {\n\t\t\t\t\tx: this.settings.rtl ? stage.left + this.$stage.width() - this.width() + this.settings.margin : stage.left,\n\t\t\t\t\ty: stage.top\n\t\t\t\t};\n\t\t\t}\n\t\n\t\t\tif (this.is('animating')) {\n\t\t\t\t$.support.transform ? this.animate(stage.x) : this.$stage.stop();\n\t\t\t\tthis.invalidate('position');\n\t\t\t}\n\t\n\t\t\tthis.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');\n\t\n\t\t\tthis.speed(0);\n\t\n\t\t\tthis._drag.time = new Date().getTime();\n\t\t\tthis._drag.target = $(event.target);\n\t\t\tthis._drag.stage.start = stage;\n\t\t\tthis._drag.stage.current = stage;\n\t\t\tthis._drag.pointer = this.pointer(event);\n\t\n\t\t\t$(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));\n\t\n\t\t\t$(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function (event) {\n\t\t\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event));\n\t\n\t\t\t\t$(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));\n\t\n\t\t\t\tif (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tevent.preventDefault();\n\t\n\t\t\t\tthis.enter('dragging');\n\t\t\t\tthis.trigger('drag');\n\t\t\t}, this));\n\t\t};\n\t\n\t\t/**\n\t * Handles the `touchmove` and `mousemove` events.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\t\tOwl.prototype.onDragMove = function (event) {\n\t\t\tvar minimum = null,\n\t\t\t maximum = null,\n\t\t\t pull = null,\n\t\t\t delta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\t stage = this.difference(this._drag.stage.start, delta);\n\t\n\t\t\tif (!this.is('dragging')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tevent.preventDefault();\n\t\n\t\t\tif (this.settings.loop) {\n\t\t\t\tminimum = this.coordinates(this.minimum());\n\t\t\t\tmaximum = this.coordinates(this.maximum() + 1) - minimum;\n\t\t\t\tstage.x = ((stage.x - minimum) % maximum + maximum) % maximum + minimum;\n\t\t\t} else {\n\t\t\t\tminimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\n\t\t\t\tmaximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\n\t\t\t\tpull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\n\t\t\t\tstage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\n\t\t\t}\n\t\n\t\t\tthis._drag.stage.current = stage;\n\t\n\t\t\tthis.animate(stage.x);\n\t\t};\n\t\n\t\t/**\n\t * Handles the `touchend` and `mouseup` events.\n\t * @todo #261\n\t * @todo Threshold for click event\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\t\tOwl.prototype.onDragEnd = function (event) {\n\t\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\t stage = this._drag.stage.current,\n\t\t\t direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';\n\t\n\t\t\t$(document).off('.owl.core');\n\t\n\t\t\tthis.$element.removeClass(this.options.grabClass);\n\t\n\t\t\tif (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\n\t\t\t\tthis.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);\n\t\t\t\tthis.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));\n\t\t\t\tthis.invalidate('position');\n\t\t\t\tthis.update();\n\t\n\t\t\t\tthis._drag.direction = direction;\n\t\n\t\t\t\tif (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {\n\t\t\t\t\tthis._drag.target.one('click.owl.core', function () {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (!this.is('dragging')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tthis.leave('dragging');\n\t\t\tthis.trigger('dragged');\n\t\t};\n\t\n\t\t/**\n\t * Gets absolute position of the closest item for a coordinate.\n\t * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\n\t * @protected\n\t * @param {Number} coordinate - The coordinate in pixel.\n\t * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.\n\t * @return {Number} - The absolute position of the closest item.\n\t */\n\t\tOwl.prototype.closest = function (coordinate, direction) {\n\t\t\tvar position = -1,\n\t\t\t pull = 30,\n\t\t\t width = this.width(),\n\t\t\t coordinates = this.coordinates();\n\t\n\t\t\tif (!this.settings.freeDrag) {\n\t\t\t\t// check closest item\n\t\t\t\t$.each(coordinates, $.proxy(function (index, value) {\n\t\t\t\t\t// on a left pull, check on current index\n\t\t\t\t\tif (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {\n\t\t\t\t\t\tposition = index;\n\t\t\t\t\t\t// on a right pull, check on previous index\n\t\t\t\t\t\t// to do so, subtract width from value and set position = index + 1\n\t\t\t\t\t} else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {\n\t\t\t\t\t\tposition = index + 1;\n\t\t\t\t\t} else if (this.op(coordinate, '<', value) && this.op(coordinate, '>', coordinates[index + 1] || value - width)) {\n\t\t\t\t\t\tposition = direction === 'left' ? index + 1 : index;\n\t\t\t\t\t}\n\t\t\t\t\treturn position === -1;\n\t\t\t\t}, this));\n\t\t\t}\n\t\n\t\t\tif (!this.settings.loop) {\n\t\t\t\t// non loop boundries\n\t\t\t\tif (this.op(coordinate, '>', coordinates[this.minimum()])) {\n\t\t\t\t\tposition = coordinate = this.minimum();\n\t\t\t\t} else if (this.op(coordinate, '<', coordinates[this.maximum()])) {\n\t\t\t\t\tposition = coordinate = this.maximum();\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn position;\n\t\t};\n\t\n\t\t/**\n\t * Animates the stage.\n\t * @todo #270\n\t * @public\n\t * @param {Number} coordinate - The coordinate in pixels.\n\t */\n\t\tOwl.prototype.animate = function (coordinate) {\n\t\t\tvar animate = this.speed() > 0;\n\t\n\t\t\tthis.is('animating') && this.onTransitionEnd();\n\t\n\t\t\tif (animate) {\n\t\t\t\tthis.enter('animating');\n\t\t\t\tthis.trigger('translate');\n\t\t\t}\n\t\n\t\t\tif ($.support.transform3d && $.support.transition) {\n\t\t\t\tthis.$stage.css({\n\t\t\t\t\ttransform: 'translate3d(' + coordinate + 'px,0px,0px)',\n\t\t\t\t\ttransition: this.speed() / 1000 + 's'\n\t\t\t\t});\n\t\t\t} else if (animate) {\n\t\t\t\tthis.$stage.animate({\n\t\t\t\t\tleft: coordinate + 'px'\n\t\t\t\t}, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));\n\t\t\t} else {\n\t\t\t\tthis.$stage.css({\n\t\t\t\t\tleft: coordinate + 'px'\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\n\t\t/**\n\t * Checks whether the carousel is in a specific state or not.\n\t * @param {String} state - The state to check.\n\t * @returns {Boolean} - The flag which indicates if the carousel is busy.\n\t */\n\t\tOwl.prototype.is = function (state) {\n\t\t\treturn this._states.current[state] && this._states.current[state] > 0;\n\t\t};\n\t\n\t\t/**\n\t * Sets the absolute position of the current item.\n\t * @public\n\t * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.\n\t * @returns {Number} - The absolute position of the current item.\n\t */\n\t\tOwl.prototype.current = function (position) {\n\t\t\tif (position === undefined) {\n\t\t\t\treturn this._current;\n\t\t\t}\n\t\n\t\t\tif (this._items.length === 0) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\n\t\t\tposition = this.normalize(position);\n\t\n\t\t\tif (this._current !== position) {\n\t\t\t\tvar event = this.trigger('change', { property: { name: 'position', value: position } });\n\t\n\t\t\t\tif (event.data !== undefined) {\n\t\t\t\t\tposition = this.normalize(event.data);\n\t\t\t\t}\n\t\n\t\t\t\tthis._current = position;\n\t\n\t\t\t\tthis.invalidate('position');\n\t\n\t\t\t\tthis.trigger('changed', { property: { name: 'position', value: this._current } });\n\t\t\t}\n\t\n\t\t\treturn this._current;\n\t\t};\n\t\n\t\t/**\n\t * Invalidates the given part of the update routine.\n\t * @param {String} [part] - The part to invalidate.\n\t * @returns {Array.Licensed under the Apache License, Version 2.0 (the “License”)\n\t * Licensed under the Apache License, Version 2.0 (the “License”)\n *
Copyright © 2013 Adobe Systems Incorporated.\n\t *
Project page https://github.com/adobe-accessibility/Accessible-Mega-Menu\n\t * @version 0.1\n\t * @author Michael Jordan\n\t * @requires jquery\n\t */\n\t\n\t/*jslint browser: true, devel: true, plusplus: true, nomen: true */\n\t/*global jQuery */\n\t(function ($, window, document) {\n\t var pluginName = 'accessibleMegaMenu',\n\t defaults = {\n\t openOnClick: false,\n\t uuidPrefix: 'accessible-megamenu', // unique ID's are required to indicate aria-owns, aria-controls and aria-labelledby\n\t menuClass: 'accessible-megamenu', // default css class used to define the megamenu styling\n\t topNavItemClass: 'accessible-megamenu-top-nav-item', // default css class for a top-level navigation item in the megamenu\n\t panelClass: 'accessible-megamenu-panel', // default css class for a megamenu panel\n\t panelGroupClass: 'accessible-megamenu-panel-group', // default css class for a group of items within a megamenu panel\n\t hoverClass: 'hover', // default css class for the hover state\n\t focusClass: 'focus', // default css class for the focus state\n\t openClass: 'open' // default css class for the open state\n\t },\n\t Keyboard = {\n\t BACKSPACE: 8,\n\t COMMA: 188,\n\t DELETE: 46,\n\t DOWN: 40,\n\t END: 35,\n\t ENTER: 13,\n\t ESCAPE: 27,\n\t HOME: 36,\n\t LEFT: 37,\n\t PAGE_DOWN: 34,\n\t PAGE_UP: 33,\n\t PERIOD: 190,\n\t RIGHT: 39,\n\t SPACE: 32,\n\t TAB: 9,\n\t UP: 38,\n\t keyMap: {\n\t 48: '0',\n\t 49: '1',\n\t 50: '2',\n\t 51: '3',\n\t 52: '4',\n\t 53: '5',\n\t 54: '6',\n\t 55: '7',\n\t 56: '8',\n\t 57: '9',\n\t 59: '',\n\t 65: 'a',\n\t 66: 'b',\n\t 67: 'c',\n\t 68: 'd',\n\t 69: 'e',\n\t 70: 'f',\n\t 71: 'g',\n\t 72: 'h',\n\t 73: 'i',\n\t 74: 'j',\n\t 75: 'k',\n\t 76: 'l',\n\t 77: 'm',\n\t 78: 'n',\n\t 79: 'o',\n\t 80: 'p',\n\t 81: 'q',\n\t 82: 'r',\n\t 83: 's',\n\t 84: 't',\n\t 85: 'u',\n\t 86: 'v',\n\t 87: 'w',\n\t 88: 'x',\n\t 89: 'y',\n\t 90: 'z',\n\t 96: '0',\n\t 97: '1',\n\t 98: '2',\n\t 99: '3',\n\t 100: '4',\n\t 101: '5',\n\t 102: '6',\n\t 103: '7',\n\t 104: '8',\n\t 105: '9',\n\t 190: '.'\n\t }\n\t };\n\t /**\n\t * @desc Creates a new accessible mega menu instance.\n\t * @param {jquery} element\n\t * @param {object} [options] Mega Menu options\n\t * @param {string} [options.uuidPrefix=accessible-megamenu] - Prefix for generated unique id attributes, which are required to indicate aria-owns, aria-controls and aria-labelledby\n\t * @param {string} [options.menuClass=accessible-megamenu] - CSS class used to define the megamenu styling\n\t * @param {string} [options.topNavItemClass=accessible-megamenu-top-nav-item] - CSS class for a top-level navigation item in the megamenu\n\t * @param {string} [options.panelClass=accessible-megamenu-panel] - CSS class for a megamenu panel\n\t * @param {string} [options.panelGroupClass=accessible-megamenu-panel-group] - CSS class for a group of items within a megamenu panel\n\t * @param {string} [options.hoverClass=hover] - CSS class for the hover state\n\t * @param {string} [options.focusClass=focus] - CSS class for the focus state\n\t * @param {string} [options.openClass=open] - CSS class for the open state\n\t * @constructor\n\t */\n\t function AccessibleMegaMenu(element, options) {\n\t this.element = element;\n\t\n\t // merge optional settings and defaults into settings\n\t this.settings = $.extend({}, defaults, options);\n\t\n\t this._defaults = defaults;\n\t this._name = pluginName;\n\t\n\t this.mouseTimeoutID = null;\n\t this.focusTimeoutID = null;\n\t this.mouseFocused = false;\n\t this.justFocused = false;\n\t\n\t this.init();\n\t }\n\t\n\t AccessibleMegaMenu.prototype = function () {\n\t\n\t /* private attributes and methods ------------------------ */\n\t var uuid = 0,\n\t keydownTimeoutDuration = 1000,\n\t keydownSearchString = '',\n\t isTouch = typeof window.hasOwnProperty === 'function' && !!window.hasOwnProperty('ontouchstart'),\n\t _getPlugin,\n\t _addUniqueId,\n\t _togglePanel,\n\t _clickHandler,\n\t _clickOutsideHandler,\n\t _DOMAttrModifiedHandler,\n\t _focusInHandler,\n\t _focusOutHandler,\n\t _keyDownHandler,\n\t _mouseDownHandler,\n\t _mouseOverHandler,\n\t _mouseOutHandler,\n\t _toggleExpandedEventHandlers;\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_getPlugin\n\t * @desc Returns the parent accessibleMegaMenu instance for a given element\n\t * @param {jQuery} element\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _getPlugin = function _getPlugin(element) {\n\t return $(element).closest(':data(plugin_' + pluginName + ')').data('plugin_' + pluginName);\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_addUniqueId\n\t * @desc Adds a unique id and element.\n\t * The id string starts with the\n\t * string defined in settings.uuidPrefix.\n\t * @param {jQuery} element\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _addUniqueId = function _addUniqueId(element) {\n\t element = $(element);\n\t var settings = this.settings;\n\t if (!element.attr('id')) {\n\t element.attr('id', settings.uuidPrefix + '-' + new Date().getTime() + '-' + ++uuid);\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_togglePanel\n\t * @desc Toggle the display of mega menu panels in response to an event.\n\t * The optional boolean value 'hide' forces all panels to hide.\n\t * @param {event} event\n\t * @param {Boolean} [hide] Hide all mega menu panels when true\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _togglePanel = function _togglePanel(event, hide) {\n\t var target = $(event.target),\n\t that = this,\n\t settings = this.settings,\n\t menu = this.menu,\n\t topli = target.closest('.' + settings.topNavItemClass),\n\t panel = target.hasClass(settings.panelClass) ? target : target.closest('.' + settings.panelClass),\n\t newfocus;\n\t\n\t _toggleExpandedEventHandlers.call(this, true);\n\t\n\t if (hide) {\n\t topli = menu.find('.' + settings.topNavItemClass + ' .' + settings.openClass + ':first').closest('.' + settings.topNavItemClass);\n\t if (!(topli.is(event.relatedTarget) || topli.has(event.relatedTarget).length > 0)) {\n\t if ((event.type === 'mouseout' || event.type === 'focusout') && topli.has(document.activeElement).length > 0) {\n\t return;\n\t }\n\t topli.find('[aria-expanded]').attr('aria-expanded', 'false').removeClass(settings.openClass).filter('.' + settings.panelClass).attr('aria-hidden', 'true');\n\t if (event.type === 'keydown' && event.keyCode === Keyboard.ESCAPE || event.type === 'DOMAttrModified') {\n\t newfocus = topli.find(':tabbable:first');\n\t setTimeout(function () {\n\t menu.find('[aria-expanded].' + that.settings.panelClass).off('DOMAttrModified.accessible-megamenu');\n\t newfocus.focus();\n\t that.justFocused = false;\n\t }, 99);\n\t }\n\t } else if (topli.length === 0) {\n\t menu.find('[aria-expanded=true]').attr('aria-expanded', 'false').removeClass(settings.openClass).filter('.' + settings.panelClass).attr('aria-hidden', 'true');\n\t }\n\t } else {\n\t clearTimeout(that.focusTimeoutID);\n\t topli.siblings().find('[aria-expanded]').attr('aria-expanded', 'false').removeClass(settings.openClass).filter('.' + settings.panelClass).attr('aria-hidden', 'true');\n\t topli.find('[aria-expanded]').attr('aria-expanded', 'true').addClass(settings.openClass).filter('.' + settings.panelClass).attr('aria-hidden', 'false');\n\t if (event.type === 'mouseover' && target.is(':tabbable') && topli.length === 1 && panel.length === 0 && menu.has(document.activeElement).length > 0) {\n\t target.focus();\n\t that.justFocused = false;\n\t }\n\t\n\t _toggleExpandedEventHandlers.call(that);\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_clickHandler\n\t * @desc Handle click event on mega menu item\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _clickHandler = function _clickHandler(event) {\n\t var target = $(event.currentTarget),\n\t topli = target.closest('.' + this.settings.topNavItemClass),\n\t panel = target.closest('.' + this.settings.panelClass);\n\t if (topli.length === 1 && panel.length === 0 && topli.find('.' + this.settings.panelClass).length === 1) {\n\t if (!target.hasClass(this.settings.openClass)) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t _togglePanel.call(this, event);\n\t this.justFocused = false;\n\t } else {\n\t if (this.justFocused) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t this.justFocused = false;\n\t } else if (isTouch) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t _togglePanel.call(this, event, target.hasClass(this.settings.openClass));\n\t }\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_clickOutsideHandler\n\t * @desc Handle click event outside of a the megamenu\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _clickOutsideHandler = function _clickOutsideHandler(event) {\n\t if ($(event.target).closest(this.menu).length === 0) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t _togglePanel.call(this, event, true);\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_DOMAttrModifiedHandler\n\t * @desc Handle DOMAttrModified event on panel to respond to Windows 8 Narrator ExpandCollapse pattern\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _DOMAttrModifiedHandler = function _DOMAttrModifiedHandler(event) {\n\t if (event.originalEvent.attrName === 'aria-expanded' && event.originalEvent.newValue === 'false' && $(event.target).hasClass(this.settings.openClass)) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t _togglePanel.call(this, event, true);\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_focusInHandler\n\t * @desc Handle focusin event on mega menu item.\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _focusInHandler = function _focusInHandler(event) {\n\t clearTimeout(this.focusTimeoutID);\n\t var target = $(event.target),\n\t panel = target.closest('.' + this.settings.panelClass);\n\t target.addClass(this.settings.focusClass).on('click.accessible-megamenu', $.proxy(_clickHandler, this));\n\t this.justFocused = !this.mouseFocused;\n\t this.mouseFocused = false;\n\t if (this.panels.not(panel).filter('.' + this.settings.openClass).length) {\n\t _togglePanel.call(this, event);\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_focusOutHandler\n\t * @desc Handle focusout event on mega menu item.\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _focusOutHandler = function _focusOutHandler(event) {\n\t this.justFocused = false;\n\t var that = this,\n\t target = $(event.target),\n\t topli = target.closest('.' + this.settings.topNavItemClass);\n\t\n\t target\n\t // .removeClass(this.settings.focusClass)\n\t .off('click.accessible-megamenu');\n\t\n\t if (window.cvox) {\n\t // If ChromeVox is running...\n\t that.focusTimeoutID = setTimeout(function () {\n\t window.cvox.Api.getCurrentNode(function (node) {\n\t if (topli.has(node).length) {\n\t // and the current node being voiced is in\n\t // the mega menu, clearTimeout,\n\t // so the panel stays open.\n\t clearTimeout(that.focusTimeoutID);\n\t } else {\n\t that.focusTimeoutID = setTimeout(function (scope, _event, hide) {\n\t _togglePanel.call(scope, _event, hide);\n\t }, 275, that, event, true);\n\t }\n\t });\n\t }, 25);\n\t } else {\n\t that.focusTimeoutID = setTimeout(function () {\n\t _togglePanel.call(that, event, true);\n\t }, 300);\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_keyDownHandler\n\t * @desc Handle keydown event on mega menu.\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _keyDownHandler = function _keyDownHandler(event) {\n\t var that = this.constructor === AccessibleMegaMenu ? this : _getPlugin(this),\n\t // determine the AccessibleMegaMenu plugin instance\n\t settings = that.settings,\n\t target = $($(this).is('.' + settings.hoverClass + ':tabbable') ? this : event.target),\n\t // if the element is hovered the target is this, otherwise, its the focused element\n\t menu = that.menu,\n\t topnavitems = that.topnavitems,\n\t topli = target.closest('.' + settings.topNavItemClass),\n\t tabbables = menu.find(':tabbable'),\n\t panel = target.hasClass(settings.panelClass) ? target : target.closest('.' + settings.panelClass),\n\t panelGroups = panel.find('.' + settings.panelGroupClass),\n\t currentPanelGroup = target.closest('.' + settings.panelGroupClass),\n\t next,\n\t keycode = event.keyCode || event.which,\n\t start,\n\t i,\n\t o,\n\t label,\n\t found = false,\n\t newString = Keyboard.keyMap[event.keyCode] || '',\n\t regex,\n\t isTopNavItem = topli.length === 1 && panel.length === 0;\n\t\n\t if (target.is('input:focus, select:focus, textarea:focus, button:focus')) {\n\t // if the event target is a form element we should handle keydown normally\n\t return;\n\t }\n\t\n\t if (target.is('.' + settings.hoverClass + ':tabbable')) {\n\t $('html').off('keydown.accessible-megamenu');\n\t }\n\t\n\t switch (keycode) {\n\t case Keyboard.ESCAPE:\n\t _togglePanel.call(that, event, true);\n\t break;\n\t case Keyboard.DOWN:\n\t event.preventDefault();\n\t if (isTopNavItem) {\n\t _togglePanel.call(that, event);\n\t found = topli.find('.' + settings.panelClass + ' :tabbable:first').focus().length === 1;\n\t } else {\n\t found = tabbables.filter(':gt(' + tabbables.index(target) + '):first').focus().length === 1;\n\t }\n\t\n\t if (!found && window.opera && opera.toString() === '[object Opera]' && (event.ctrlKey || event.metaKey)) {\n\t tabbables = $(':tabbable');\n\t i = tabbables.index(target);\n\t found = $(':tabbable:gt(' + $(':tabbable').index(target) + '):first').focus().length === 1;\n\t }\n\t break;\n\t case Keyboard.UP:\n\t event.preventDefault();\n\t if (isTopNavItem && target.hasClass(settings.openClass)) {\n\t _togglePanel.call(that, event, true);\n\t next = topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last');\n\t if (next.children('.' + settings.panelClass).length) {\n\t found = next.children().attr('aria-expanded', 'true').addClass(settings.openClass).filter('.' + settings.panelClass).attr('aria-hidden', 'false').find(':tabbable:last').focus() === 1;\n\t }\n\t } else if (!isTopNavItem) {\n\t found = tabbables.filter(':lt(' + tabbables.index(target) + '):last').focus().length === 1;\n\t }\n\t\n\t if (!found && window.opera && opera.toString() === '[object Opera]' && (event.ctrlKey || event.metaKey)) {\n\t tabbables = $(':tabbable');\n\t i = tabbables.index(target);\n\t found = $(':tabbable:lt(' + $(':tabbable').index(target) + '):first').focus().length === 1;\n\t }\n\t break;\n\t case Keyboard.RIGHT:\n\t event.preventDefault();\n\t if (isTopNavItem) {\n\t found = topnavitems.filter(':gt(' + topnavitems.index(topli) + '):first').find(':tabbable:first').focus().length === 1;\n\t } else {\n\t if (panelGroups.length && currentPanelGroup.length) {\n\t // if the current panel contains panel groups, and we are able to focus the first tabbable element of the next panel group\n\t found = panelGroups.filter(':gt(' + panelGroups.index(currentPanelGroup) + '):first').find(':tabbable:first').focus().length === 1;\n\t }\n\t\n\t if (!found) {\n\t found = topli.find(':tabbable:first').focus().length === 1;\n\t }\n\t }\n\t break;\n\t case Keyboard.LEFT:\n\t event.preventDefault();\n\t if (isTopNavItem) {\n\t found = topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last').find(':tabbable:first').focus().length === 1;\n\t } else {\n\t if (panelGroups.length && currentPanelGroup.length) {\n\t // if the current panel contains panel groups, and we are able to focus the first tabbable element of the previous panel group\n\t found = panelGroups.filter(':lt(' + panelGroups.index(currentPanelGroup) + '):last').find(':tabbable:first').focus().length === 1;\n\t }\n\t\n\t if (!found) {\n\t found = topli.find(':tabbable:first').focus().length === 1;\n\t }\n\t }\n\t break;\n\t case Keyboard.TAB:\n\t i = tabbables.index(target);\n\t if (event.shiftKey && isTopNavItem && target.hasClass(settings.openClass)) {\n\t _togglePanel.call(that, event, true);\n\t next = topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last');\n\t if (next.children('.' + settings.panelClass).length) {\n\t found = next.children().attr('aria-expanded', 'true').addClass(settings.openClass).filter('.' + settings.panelClass).attr('aria-hidden', 'false').find(':tabbable:last').focus();\n\t }\n\t } else if (event.shiftKey && i > 0) {\n\t found = tabbables.filter(':lt(' + i + '):last').focus().length === 1;\n\t } else if (!event.shiftKey && i < tabbables.length - 1) {\n\t found = tabbables.filter(':gt(' + i + '):first').focus().length === 1;\n\t } else if (window.opera && opera.toString() === '[object Opera]') {\n\t tabbables = $(':tabbable');\n\t i = tabbables.index(target);\n\t if (event.shiftKey) {\n\t found = $(':tabbable:lt(' + $(':tabbable').index(target) + '):last').focus().length === 1;\n\t } else {\n\t found = $(':tabbable:gt(' + $(':tabbable').index(target) + '):first').focus().length === 1;\n\t }\n\t }\n\t\n\t if (found) {\n\t event.preventDefault();\n\t }\n\t break;\n\t case Keyboard.SPACE:\n\t if (isTopNavItem) {\n\t event.preventDefault();\n\t _clickHandler.call(that, event);\n\t } else {\n\t return;\n\t }\n\t break;\n\t case Keyboard.ENTER:\n\t return;\n\t break;\n\t default:\n\t // alphanumeric filter\n\t clearTimeout(this.keydownTimeoutID);\n\t\n\t keydownSearchString += newString !== keydownSearchString ? newString : '';\n\t\n\t if (keydownSearchString.length === 0) {\n\t return;\n\t }\n\t\n\t this.keydownTimeoutID = setTimeout(function () {\n\t keydownSearchString = '';\n\t }, keydownTimeoutDuration);\n\t\n\t if (isTopNavItem && !target.hasClass(settings.openClass)) {\n\t tabbables = tabbables.filter(':not(.' + settings.panelClass + ' :tabbable)');\n\t } else {\n\t tabbables = topli.find(':tabbable');\n\t }\n\t\n\t if (event.shiftKey) {\n\t tabbables = $(tabbables.get().reverse());\n\t }\n\t\n\t for (i = 0; i < tabbables.length; i++) {\n\t o = tabbables.eq(i);\n\t if (o.is(target)) {\n\t start = keydownSearchString.length === 1 ? i + 1 : i;\n\t break;\n\t }\n\t }\n\t\n\t regex = new RegExp('^' + keydownSearchString.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&'), 'i');\n\t\n\t for (i = start; i < tabbables.length; i++) {\n\t o = tabbables.eq(i);\n\t label = $.trim(o.text());\n\t if (regex.test(label)) {\n\t found = true;\n\t o.focus();\n\t break;\n\t }\n\t }\n\t if (!found) {\n\t for (i = 0; i < start; i++) {\n\t o = tabbables.eq(i);\n\t label = $.trim(o.text());\n\t if (regex.test(label)) {\n\t o.focus();\n\t break;\n\t }\n\t }\n\t }\n\t break;\n\t }\n\t that.justFocused = false;\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_mouseDownHandler\n\t * @desc Handle mousedown event on mega menu.\n\t * @param {event} Event object\n\t * @memberof accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _mouseDownHandler = function _mouseDownHandler(event) {\n\t if ($(event.target).is(this.settings.panelClass) || $(event.target).closest(':focusable').length) {\n\t this.mouseFocused = true;\n\t }\n\t this.mouseTimeoutID = setTimeout(function () {\n\t clearTimeout(this.focusTimeoutID);\n\t }, 1);\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_mouseOverHandler\n\t * @desc Handle mouseover event on mega menu.\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _mouseOverHandler = function _mouseOverHandler(event) {\n\t clearTimeout(this.mouseTimeoutID);\n\t $(event.target).addClass(this.settings.hoverClass);\n\t _togglePanel.call(this, event);\n\t if ($(event.target).is(':tabbable')) {\n\t $('html').on('keydown.accessible-megamenu', $.proxy(_keyDownHandler, event.target));\n\t }\n\t };\n\t\n\t /**\n\t * @name jQuery.fn.accessibleMegaMenu~_mouseOutHandler\n\t * @desc Handle mouseout event on mega menu.\n\t * @param {event} Event object\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @inner\n\t * @private\n\t */\n\t _mouseOutHandler = function _mouseOutHandler(event) {\n\t var that = this;\n\t $(event.target).removeClass(that.settings.hoverClass);\n\t\n\t that.mouseTimeoutID = setTimeout(function () {\n\t _togglePanel.call(that, event, true);\n\t }, 250);\n\t if ($(event.target).is(':tabbable')) {\n\t $('html').off('keydown.accessible-megamenu');\n\t }\n\t };\n\t\n\t _toggleExpandedEventHandlers = function _toggleExpandedEventHandlers(hide) {\n\t var menu = this.menu;\n\t if (hide) {\n\t $('html').off('mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu, pointerup.outside-accessible-megamenu');\n\t\n\t menu.find('[aria-expanded].' + this.settings.panelClass).off('DOMAttrModified.accessible-megamenu');\n\t } else {\n\t $('html').on('mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu, pointerup.outside-accessible-megamenu', $.proxy(_clickOutsideHandler, this));\n\t\n\t /* Narrator in Windows 8 automatically toggles the aria-expanded property on double tap or click.\n\t To respond to the change to collapse the panel, we must add a listener for a DOMAttrModified event. */\n\t menu.find('[aria-expanded=true].' + this.settings.panelClass).on('DOMAttrModified.accessible-megamenu', $.proxy(_DOMAttrModifiedHandler, this));\n\t }\n\t };\n\t\n\t /* public attributes and methods ------------------------- */\n\t return {\n\t constructor: AccessibleMegaMenu,\n\t\n\t /**\n\t * @lends jQuery.fn.accessibleMegaMenu\n\t * @desc Initializes an instance of the accessibleMegaMenu plugins\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @instance\n\t */\n\t init: function init() {\n\t var settings = this.settings,\n\t nav = $(this.element),\n\t menu = nav.children().first(),\n\t\n\t // Only filter to those items with the selector class\n\t topnavitems = this.settings.topNavItems ? menu.children(this.settings.topNavItems) : menu.children();\n\t this.start(settings, nav, menu, topnavitems);\n\t },\n\t\n\t start: function start(settings, nav, menu, topnavitems) {\n\t var that = this;\n\t this.settings = settings;\n\t this.menu = menu;\n\t this.topnavitems = topnavitems;\n\t\n\t nav.attr('role', 'navigation');\n\t menu.addClass(settings.menuClass);\n\t topnavitems.each(function (i, topnavitem) {\n\t var topnavitemlink, topnavitempanel;\n\t topnavitem = $(topnavitem);\n\t // @FIXME: Add classed manually !!!\n\t // topnavitem.addClass(settings.topNavItemClass)\n\t topnavitemlink = topnavitem.find(':tabbable:first');\n\t topnavitempanel = topnavitem.children(':not(:tabbable):last');\n\t _addUniqueId.call(that, topnavitemlink);\n\t if (topnavitempanel.length) {\n\t _addUniqueId.call(that, topnavitempanel);\n\t topnavitemlink.attr({\n\t 'aria-haspopup': true,\n\t 'aria-controls': topnavitempanel.attr('id'),\n\t 'aria-expanded': false\n\t });\n\t\n\t topnavitempanel.attr({\n\t 'role': 'group',\n\t 'aria-expanded': false,\n\t 'aria-hidden': true\n\t }).addClass(settings.panelClass).not('[aria-labelledby]').attr('aria-labelledby', topnavitemlink.attr('id'));\n\t }\n\t });\n\t\n\t this.panels = menu.find('.' + settings.panelClass);\n\t\n\t menu.on('focusin.accessible-megamenu', ':focusable, .' + settings.panelClass, $.proxy(_focusInHandler, this)).on('focusout.accessible-megamenu', ':focusable, .' + settings.panelClass, $.proxy(_focusOutHandler, this)).on('keydown.accessible-megamenu', $.proxy(_keyDownHandler, this)).on('mousedown.accessible-megamenu', $.proxy(_mouseDownHandler, this));\n\t\n\t if (!settings.openOnClick) {\n\t menu.on('mouseover.accessible-megamenu', $.proxy(_mouseOverHandler, this)).on('mouseout.accessible-megamenu', $.proxy(_mouseOutHandler, this));\n\t } else {\n\t menu.on('click.accessible-megamenu', $.proxy(_mouseOverHandler, this));\n\t }\n\t\n\t if (isTouch) {\n\t menu.on('touchstart.accessible-megamenu', $.proxy(_clickHandler, this));\n\t }\n\t\n\t menu.find('hr').attr('role', 'separator');\n\t\n\t if ($(document.activeElement).closest(menu).length) {\n\t $(document.activeElement).trigger('focusin.accessible-megamenu');\n\t }\n\t },\n\t\n\t /**\n\t * @desc Get default values\n\t * @example $(selector).accessibleMegaMenu('getDefaults')\n\t * @return {object}\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @instance\n\t */\n\t getDefaults: function getDefaults() {\n\t return this._defaults;\n\t },\n\t\n\t /**\n\t * @desc Get any option set to plugin using its name (as string)\n\t * @example $(selector).accessibleMegaMenu('getOption', some_option)\n\t * @param {string} opt\n\t * @return {string}\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @instance\n\t */\n\t getOption: function getOption(opt) {\n\t return this.settings[opt];\n\t },\n\t\n\t /**\n\t * @desc Get all options\n\t * @example $(selector).accessibleMegaMenu('getAllOptions')\n\t * @return {object}\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @instance\n\t */\n\t getAllOptions: function getAllOptions() {\n\t return this.settings;\n\t },\n\t\n\t /**\n\t * @desc Set option\n\t * @example $(selector).accessibleMegaMenu('setOption', 'option_name', 'option_value', reinitialize)\n\t * @param {string} opt - Option name\n\t * @param {string} val - Option value\n\t * @param {boolean} [reinitialize] - boolean to re-initialize the menu.\n\t * @memberof jQuery.fn.accessibleMegaMenu\n\t * @instance\n\t */\n\t setOption: function setOption(opt, value, reinitialize) {\n\t this.settings[opt] = value;\n\t if (reinitialize) {\n\t this.init();\n\t }\n\t }\n\t };\n\t }();\n\t\n\t /*\n\t * @param {object} [options] Mega Menu options\n\t * @param {string} [options.uuidPrefix=accessible-megamenu] - Prefix for generated unique id attributes, which are required to indicate aria-owns, aria-controls and aria-labelledby\n\t * @param {string} [options.menuClass=accessible-megamenu] - CSS class used to define the megamenu styling\n\t * @param {string} [options.topNavItemClass=accessible-megamenu-top-nav-item] - CSS class for a top-level navigation item in the megamenu\n\t * @param {string} [options.panelClass=accessible-megamenu-panel] - CSS class for a megamenu panel\n\t * @param {string} [options.panelGroupClass=accessible-megamenu-panel-group] - CSS class for a group of items within a megamenu panel\n\t * @param {string} [options.hoverClass=hover] - CSS class for the hover state\n\t * @param {string} [options.focusClass=focus] - CSS class for the focus state\n\t * @param {string} [options.openClass=open] - CSS class for the open state\n\t */\n\t $.fn[pluginName] = function (options) {\n\t return this.each(function () {\n\t if (!$.data(this, 'plugin_' + pluginName)) {\n\t $.data(this, 'plugin_' + pluginName, new $.fn[pluginName].AccessibleMegaMenu(this, options));\n\t }\n\t });\n\t };\n\t\n\t $.fn[pluginName].AccessibleMegaMenu = AccessibleMegaMenu;\n\t\n\t /* :focusable and :tabbable selectors from\n\t https://raw.github.com/jquery/jquery-ui/master/ui/jquery.ui.core.js */\n\t\n\t /**\n\t * @private\n\t */\n\t function visible(element) {\n\t return $.expr.filters.visible(element) && !$(element).parents().addBack().filter(function () {\n\t return $.css(this, 'visibility') === 'hidden';\n\t }).length;\n\t }\n\t\n\t /**\n\t * @private\n\t */\n\t function _focusable(element, isTabIndexNotNaN) {\n\t var map,\n\t mapName,\n\t img,\n\t nodeName = element.nodeName.toLowerCase();\n\t if ('area' === nodeName) {\n\t map = element.parentNode;\n\t mapName = map.name;\n\t if (!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {\n\t return false;\n\t }\n\t img = $('img[usemap=#' + mapName + ']')[0];\n\t return !!img && visible(img);\n\t }\n\t return (/input|select|textarea|button|object/.test(nodeName) ? !element.disabled : 'a' === nodeName ? element.href || isTabIndexNotNaN : isTabIndexNotNaN) &&\n\t // the element and all of its ancestors must be visible\n\t visible(element);\n\t }\n\t\n\t $.extend($.expr[':'], {\n\t data: $.expr.createPseudo ? $.expr.createPseudo(function (dataName) {\n\t return function (elem) {\n\t return !!$.data(elem, dataName);\n\t };\n\t }) : // support: jQuery <1.8\n\t function (elem, i, match) {\n\t return !!$.data(elem, match[3]);\n\t },\n\t\n\t focusable: function focusable(element) {\n\t return _focusable(element, !isNaN($.attr(element, 'tabindex')));\n\t },\n\t\n\t tabbable: function tabbable(element) {\n\t var tabIndex = $.attr(element, 'tabindex'),\n\t isTabIndexNaN = isNaN(tabIndex);\n\t return (isTabIndexNaN || tabIndex >= 0) && _focusable(element, !isTabIndexNaN);\n\t }\n\t });\n\t})(jQuery, window, document);\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _jquery = __webpack_require__(4);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tvar _offcanvas = __webpack_require__(32);\n\t\n\tvar _offcanvas2 = _interopRequireDefault(_offcanvas);\n\t\n\tvar _offcanvas3 = __webpack_require__(33);\n\t\n\tvar _offcanvas4 = _interopRequireDefault(_offcanvas3);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/* eslint-enable */\n\t\n\tvar opts = {\n\t // String - panel\n\t panelSelector: '.Offcanvas',\n\t\n\t // String - content\n\t contentSelector: '.Offcanvas-content',\n\t\n\t // String - content\n\t modalSelector: '.Offcanvas--modal',\n\t\n\t // String - trigger\n\t jsSelector: '.js-fr-offcanvas-open',\n\t\n\t // String - Selector for the open button(s)\n\t openSelector: '.js-fr-offcanvas-open',\n\t\n\t // String - Selector for the close button\n\t closeSelector: '.js-fr-offcanvas-close',\n\t\n\t // String - Class name that will be added to the selector when the component has been initialised\n\t readyClass: 'is-ready',\n\t\n\t // String - Class name that will be added to the selector when the panel is visible\n\t activeClass: 'is-active'\n\t};\n\t\n\t/*\n\t * Prevent scroll on body when offcanvas is visible\n\t * (the touchmove handler targets iOS devices)\n\t */\n\t\n\t\n\t/* eslint-disable no-unused-vars */\n\t\n\tvar _handleModalScroll = function _handleModalScroll() {\n\t (0, _jquery2['default'])(opts.contentSelector).on('transitionend', function () {\n\t if (!(0, _jquery2['default'])(opts.panelSelector).hasClass(opts.activeClass)) {\n\t (0, _jquery2['default'])(window).off('scroll.offcanvas');\n\t (0, _jquery2['default'])(document).off('touchmove.offcanvas');\n\t } else {\n\t var _scrollTop = (0, _jquery2['default'])(window).scrollTop();\n\t (0, _jquery2['default'])(window).on('scroll.offcanvas', function () {\n\t return (0, _jquery2['default'])(window).scrollTop(_scrollTop);\n\t });\n\t (0, _jquery2['default'])(document).on('touchmove.offcanvas', function () {\n\t return (0, _jquery2['default'])(window).scrollTop(_scrollTop);\n\t });\n\t }\n\t });\n\t};\n\t\n\t/*\n\t *\tFIXME: hack to show / hide the background panel\n\t */\n\tvar _handleModal = function _handleModal(e) {\n\t if (e && (0, _jquery2['default'])(opts.panelSelector).hasClass(opts.activeClass) && !(0, _jquery2['default'])(e.target).is(opts.contentSelector)) {\n\t // for some odd reason plain jquery click() does not work here\n\t // // so we add that get(0) call\n\t (0, _jquery2['default'])(opts.closeSelector).get(0).click();\n\t }\n\t // we're using \"one\" here instead of \"bind\" because\n\t // otherwise $(opts.closeSelector).click() would trigger\n\t // a click on modal again looping forever\n\t (0, _jquery2['default'])(opts.modalSelector).one('click', _handleModal);\n\t};\n\t\n\tvar _exports = {\n\t Froffcanvas: _offcanvas2['default'],\n\t opts: opts\n\t};\n\t\n\t(0, _jquery2['default'])(document).ready(function () {\n\t var _scrollTop = (0, _jquery2['default'])(window).scrollTop();\n\t\n\t (0, _jquery2['default'])(opts.openSelector).add((0, _jquery2['default'])(opts.closeSelector)).click(function (e) {\n\t _scrollTop = (0, _jquery2['default'])(window).scrollTop();\n\t e.preventDefault();\n\t });\n\t\n\t (0, _jquery2['default'])(opts.panelSelector).on('focus', function () {\n\t (0, _jquery2['default'])(window).scrollTop(_scrollTop);\n\t });\n\t\n\t _handleModal();\n\t _handleModalScroll();\n\t\n\t _exports.offcanvas = (0, _offcanvas2['default'])(opts);\n\t});\n\t\n\texports['default'] = _exports;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t// Polyfill matches as per https://github.com/jonathantneal/closest\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tElement.prototype.matches = Element.prototype.matches || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t\n\t/**\n\t * @param {object} options Object containing configuration overrides\n\t */\n\tvar Froffcanvas = function Froffcanvas() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t _ref$selector = _ref.selector,\n\t selector = _ref$selector === undefined ? '.js-fr-offcanvas' : _ref$selector,\n\t _ref$openSelector = _ref.openSelector,\n\t openSelector = _ref$openSelector === undefined ? '.js-fr-offcanvas-open' : _ref$openSelector,\n\t _ref$closeSelector = _ref.closeSelector,\n\t closeSelector = _ref$closeSelector === undefined ? '.js-fr-offcanvas-close' : _ref$closeSelector,\n\t _ref$readyClass = _ref.readyClass,\n\t readyClass = _ref$readyClass === undefined ? 'fr-offcanvas--is-ready' : _ref$readyClass,\n\t _ref$activeClass = _ref.activeClass,\n\t activeClass = _ref$activeClass === undefined ? 'fr-offcanvas--is-active' : _ref$activeClass;\n\t\n\t // CONSTANTS\n\t var doc = document;\n\t var docEl = doc.documentElement;\n\t var _q = function _q(el) {\n\t var ctx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : doc;\n\t return [].slice.call(ctx.querySelectorAll(el));\n\t };\n\t\n\t // SUPPORTS\n\t if (!('querySelector' in doc) || !('addEventListener' in window) || !docEl.classList) return;\n\t\n\t // SETUP\n\t // set offcanvas element NodeLists\n\t var panels = _q(selector);\n\t\n\t // TEMP\n\t var currButtonOpen = null;\n\t var currPanel = null;\n\t\n\t // UTILS\n\t function _defer(fn) {\n\t // wrapped in setTimeout to delay binding until previous rendering has completed\n\t if (typeof fn === 'function') setTimeout(fn, 0);\n\t }\n\t function _closest(el, selector) {\n\t while (el) {\n\t if (el.matches(selector)) break;\n\t el = el.parentElement;\n\t }\n\t return el;\n\t }\n\t function _getPanelId(panel) {\n\t return panel.getAttribute('id');\n\t }\n\t\n\t // A11Y\n\t function _addA11y(panel) {\n\t // add aria-hidden attribute\n\t panel.setAttribute('aria-hidden', true);\n\t }\n\t function _removeA11y(panel) {\n\t // remove aria-hidden attribute\n\t panel.removeAttribute('aria-hidden');\n\t }\n\t\n\t // ACTIONS\n\t function _showPanel(panel) {\n\t // set visibility to override any previous set style\n\t panel.style.visibility = 'visible';\n\t // remove aria-hidden, add focus\n\t panel.setAttribute('aria-hidden', false);\n\t panel.setAttribute('tabindex', -1);\n\t panel.focus();\n\t // sort out events\n\t _defer(_unbindOpenPointer);\n\t _defer(_bindDocKey);\n\t _defer(_bindDocClick);\n\t _defer(_bindClosePointer);\n\t // reset scroll position\n\t panel.scrollTop = 0;\n\t // add active class\n\t panel.classList.add(activeClass);\n\t }\n\t function _hidePanel() {\n\t var panel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : currPanel;\n\t var returnfocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\t\n\t // add aria-hidden, remove focus\n\t panel.setAttribute('aria-hidden', true);\n\t panel.removeAttribute('tabindex');\n\t panel.blur();\n\t // set visibility to override any previous set style\n\t panel.style.visibility = 'hidden';\n\t // sort out events\n\t _unbindClosePointer(panel);\n\t _unbindDocKey();\n\t _unbindDocClick();\n\t _bindOpenPointer(panel);\n\t // remove active class\n\t panel.classList.remove(activeClass);\n\t // return focus to button that opened the panel and reset the reference\n\t if (returnfocus) {\n\t currButtonOpen.focus();\n\t currButtonOpen = null;\n\t }\n\t }\n\t function destroy() {\n\t panels.forEach(function (panel) {\n\t // remove attributes\n\t _removeA11y(panel);\n\t // unbind local events\n\t _unbindOpenPointer(panel);\n\t _unbindClosePointer(panel);\n\t // remove class\n\t panel.classList.remove(readyClass);\n\t panel.classList.remove(activeClass);\n\t panel.style.visibility = '';\n\t });\n\t // unbind global events\n\t _unbindDocClick();\n\t _unbindDocKey();\n\t // reset temp references\n\t currButtonOpen = null;\n\t currPanel = null;\n\t }\n\t\n\t // EVENTS\n\t function _eventOpenPointer(e) {\n\t // get panel\n\t var panelId = e.currentTarget.getAttribute('aria-controls');\n\t var panel = doc.getElementById(panelId);\n\t // hide any open panels\n\t if (currPanel) _hidePanel(currPanel, false);\n\t // save temp panel/button\n\t currButtonOpen = e.currentTarget;\n\t currPanel = panel;\n\t // show\n\t _showPanel(panel);\n\t }\n\t function _eventClosePointer() {\n\t _hidePanel();\n\t }\n\t function _eventDocClick(e) {\n\t // check if target is panel or child of\n\t var isPanel = e.target === currPanel;\n\t var isPanelChild = _closest(e.target, selector);\n\t if (!isPanel && !isPanelChild) _hidePanel();\n\t }\n\t function _eventDocKey(e) {\n\t // esc key\n\t if (e.keyCode === 27) _hidePanel();\n\t }\n\t\n\t // BIND EVENTS\n\t function _bindOpenPointer(panel) {\n\t var openButtons = _q(openSelector + '[aria-controls=\"' + _getPanelId(panel) + '\"]'); // is this selector totally crazy?\n\t openButtons.forEach(function (button) {\n\t return button.addEventListener('click', _eventOpenPointer);\n\t });\n\t }\n\t function _bindClosePointer() {\n\t var panel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : currPanel;\n\t\n\t var closeButton = _q(closeSelector, panel)[0];\n\t closeButton.addEventListener('click', _eventClosePointer);\n\t }\n\t function _bindDocClick() {\n\t doc.addEventListener('click', _eventDocClick);\n\t }\n\t function _bindDocKey() {\n\t doc.addEventListener('keydown', _eventDocKey);\n\t }\n\t\n\t // UNBIND EVENTS\n\t function _unbindOpenPointer() {\n\t var panel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : currPanel;\n\t\n\t var openButtons = _q(openSelector + '[aria-controls=\"' + _getPanelId(panel) + '\"]'); // yep its totally crazy\n\t openButtons.forEach(function (button) {\n\t return button.removeEventListener('click', _eventOpenPointer);\n\t });\n\t }\n\t function _unbindClosePointer() {\n\t var panel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : currPanel;\n\t\n\t var closeButton = _q(closeSelector, panel)[0];\n\t closeButton.removeEventListener('click', _eventClosePointer);\n\t }\n\t function _unbindDocClick() {\n\t doc.removeEventListener('click', _eventDocClick);\n\t }\n\t function _unbindDocKey() {\n\t doc.removeEventListener('keydown', _eventDocKey);\n\t }\n\t\n\t // INIT\n\t function init() {\n\t if (!panels) return;\n\t // loop through each offcanvas element\n\t panels.forEach(function (panel) {\n\t _addA11y(panel);\n\t _bindOpenPointer(panel);\n\t panel.classList.add(readyClass);\n\t });\n\t }\n\t init();\n\t\n\t // REVEAL API\n\t return {\n\t init: init,\n\t destroy: destroy\n\t };\n\t};\n\t\n\t// module exports\n\texports['default'] = Froffcanvas;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 33 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 34 */,\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _jquery = __webpack_require__(4);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/*\n\t * Randomize order of children in container (.js-randomize)\n\t */\n\t(0, _jquery2['default'])(function () {\n\t var CONTAINER_SELECTOR = '.js-randomize';\n\t var EXCLUDE_SELECTOR = '.js-randomize-exclude';\n\t\n\t function shuffle(o) {\n\t for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x) {}\n\t return o;\n\t }\n\t\n\t (0, _jquery2['default'])(CONTAINER_SELECTOR).each(function (i, container) {\n\t var $container = (0, _jquery2['default'])(container);\n\t $container.html(shuffle($container.children().not(EXCLUDE_SELECTOR).get()));\n\t });\n\t});\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _jquery = __webpack_require__(4);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tvar _throttle = __webpack_require__(6);\n\t\n\tvar _throttle2 = _interopRequireDefault(_throttle);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar threshold = 100;\n\t\n\tvar _toggleScrolltop = function _toggleScrolltop() {\n\t (0, _jquery2['default'])(window).scrollTop() > threshold ? (0, _jquery2['default'])('.js-scrollTop').show() : (0, _jquery2['default'])('.js-scrollTop').hide();\n\t};\n\t\n\t(0, _jquery2['default'])(window).scroll((0, _throttle2['default'])(500, _toggleScrolltop));\n\t(0, _jquery2['default'])(document).ready(_toggleScrolltop);\n\t\n\texports['default'] = {\n\t threshold: threshold\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _frBypasslinks = __webpack_require__(38);\n\t\n\tvar _frBypasslinks2 = _interopRequireDefault(_frBypasslinks);\n\t\n\tvar _bypasslinks = __webpack_require__(39);\n\t\n\tvar _bypasslinks2 = _interopRequireDefault(_bypasslinks);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/* eslint-enable */\n\t\n\tvar bypassLinks = (0, _frBypasslinks2['default'])({\n\t selector: '.js-fr-bypasslinks'\n\t});\n\t\n\t/* eslint-disable no-unused-vars */\n\t\n\texports['default'] = { bypassLinks: bypassLinks, Frbypasslinks: _frBypasslinks2['default'] };\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 38 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * @param {object} options Object containing configuration overrides\n\t */\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\tvar Frbypasslinks = function Frbypasslinks() {\n\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t _ref$selector = _ref.selector,\n\t\t selector = _ref$selector === undefined ? '.js-fr-bypasslinks' : _ref$selector;\n\t\n\t\t//\tCONSTANTS\n\t\tvar doc = document;\n\t\tvar _q = function _q(el) {\n\t\t\tvar ctx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : doc;\n\t\t\treturn [].slice.call(ctx.querySelectorAll(el));\n\t\t};\n\t\n\t\t//\tSUPPORTS\n\t\tif (!('querySelector' in doc) || !('addEventListener' in window)) return;\n\t\n\t\t//\tSETUP\n\t\t// get bypass links NodeList\n\t\tvar container = _q(selector)[0];\n\t\n\t\t//\tTEMP\n\t\tvar currTarget = null;\n\t\n\t\t//\tACTIONS\n\t\tfunction _addFocusability(link) {\n\t\t\t//\tget target element\n\t\t\tvar id = link.getAttribute('href').slice(1);\n\t\t\tvar target = doc.getElementById(id);\n\t\t\t//\tset tabindex to allow focus\n\t\t\tif (target) target.setAttribute('tabindex', -1);\n\t\t}\n\t\tfunction _removeFocusability(link) {\n\t\t\t//\tget target element\n\t\t\tvar id = link.getAttribute('href').slice(1);\n\t\t\tvar target = doc.getElementById(id);\n\t\t\t//\tremove ability to focus (stops user highlighting element on click)\n\t\t\tif (target) target.removeAttribute('tabindex');\n\t\t}\n\t\tfunction destroy() {\n\t\t\t//\tloop through each bypass link and remove event bindings\n\t\t\t_q('a', container).forEach(function (link) {\n\t\t\t\t_unbindPointerClick(link);\n\t\t\t\t_addFocusability(link);\n\t\t\t});\n\t\t\tif (currTarget) _unbindTargetBlur(currTarget);\n\t\t}\n\t\n\t\t//\tEVENTS\n\t\tfunction _eventPointerClick(e) {\n\t\t\t//\tget target element\n\t\t\tvar id = e.target.getAttribute('href').slice(1);\n\t\t\tvar target = doc.getElementById(id);\n\t\n\t\t\t// don't try to apply relevant atts/focus if target isn't present\n\t\t\tif (!target) return;\n\t\t\t//\tset tabindex to allow focus\n\t\t\ttarget.setAttribute('tabindex', -1);\n\t\t\ttarget.focus();\n\t\t\t//\tsave target reference\n\t\t\tcurrTarget = target;\n\t\t\t//\tbind blur event on target\n\t\t\t_bindTargetBlur(target);\n\t\t}\n\t\tfunction _eventTargetBlur(e) {\n\t\t\t//\tremove ability to focus (stops user highlighting element on click)\n\t\t\te.target.removeAttribute('tabindex');\n\t\t\t//\tremove target reference\n\t\t\tcurrTarget = null;\n\t\t\t//\tunbind blur event\n\t\t\t_unbindTargetBlur(e.target);\n\t\t}\n\t\n\t\t//\tBIND EVENTS\n\t\tfunction _bindPointerClick(link) {\n\t\t\t//\tbind interaction event\n\t\t\tlink.addEventListener('click', _eventPointerClick);\n\t\t}\n\t\tfunction _bindTargetBlur(target) {\n\t\t\t//\tbind blur event on target element\n\t\t\ttarget.addEventListener('blur', _eventTargetBlur);\n\t\t}\n\t\n\t\t//\tUNBIND EVENTS\n\t\tfunction _unbindPointerClick(link) {\n\t\t\t//\tunbind interaction event\n\t\t\tlink.removeEventListener('click', _eventPointerClick);\n\t\t}\n\t\tfunction _unbindTargetBlur(target) {\n\t\t\t//\tunbind blur event on target element\n\t\t\ttarget.removeEventListener('blur', _eventTargetBlur);\n\t\t}\n\t\n\t\t//\tINIT\n\t\tfunction init() {\n\t\t\t//\tdetect if bypass links exist in the document\n\t\t\tif (!container) return;\n\t\t\t//\tloop through each bypass link\n\t\t\t_q('a', container).forEach(function (link) {\n\t\t\t\t_bindPointerClick(link);\n\t\t\t\t_removeFocusability(link);\n\t\t\t});\n\t\t}\n\t\tinit();\n\t\n\t\t// REVEAL API\n\t\treturn {\n\t\t\tinit: init,\n\t\t\tdestroy: destroy\n\t\t};\n\t};\n\t\n\t// module exports\n\texports['default'] = Frbypasslinks;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 40 */,\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _frTooltip = __webpack_require__(42);\n\t\n\tvar _frTooltip2 = _interopRequireDefault(_frTooltip);\n\t\n\tvar _tooltip = __webpack_require__(43);\n\t\n\tvar _tooltip2 = _interopRequireDefault(_tooltip);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/* eslint-enable */\n\t\n\tvar opts = {\n\t // String - Container selector, hook for JS init() method\n\t selector: '.js-fr-tooltip',\n\t\n\t // String - Selector to define the tooltip element\n\t tooltipSelector: '.js-fr-tooltip-tooltip',\n\t\n\t // String - Selector to define the toggle element controlling the tooltip\n\t toggleSelector: '.js-fr-tooltip-toggle',\n\t\n\t // String - Prefix for the id applied to each tooltip as a reference for the toggle\n\t tooltipIdPrefix: 'tooltip',\n\t\n\t // String - Class name that will be added to the selector when the component has been initialised\n\t readyClass: 'fr-tooltip--is-ready'\n\t};\n\t\n\t/* eslint-disable no-unused-vars */\n\t\n\tvar tooltip = (0, _frTooltip2['default'])(opts);\n\t\n\texports['default'] = {\n\t tooltip: tooltip,\n\t Frtooltip: _frTooltip2['default'],\n\t opts: opts\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t// Polyfill matches as per https://github.com/jonathantneal/closest\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\tElement.prototype.matches = Element.prototype.matches || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t\n\t/**\n\t * @param {object} options Object containing configuration overrides\n\t */\n\tvar Frtooltip = function Frtooltip() {\n\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t _ref$selector = _ref.selector,\n\t\t selector = _ref$selector === undefined ? '.js-fr-tooltip' : _ref$selector,\n\t\t _ref$tooltipSelector = _ref.tooltipSelector,\n\t\t tooltipSelector = _ref$tooltipSelector === undefined ? '.js-fr-tooltip-tooltip' : _ref$tooltipSelector,\n\t\t _ref$toggleSelector = _ref.toggleSelector,\n\t\t toggleSelector = _ref$toggleSelector === undefined ? '.js-fr-tooltip-toggle' : _ref$toggleSelector,\n\t\t _ref$tooltipIdPrefix = _ref.tooltipIdPrefix,\n\t\t tooltipIdPrefix = _ref$tooltipIdPrefix === undefined ? 'tooltip' : _ref$tooltipIdPrefix,\n\t\t _ref$readyClass = _ref.readyClass,\n\t\t readyClass = _ref$readyClass === undefined ? 'fr-tooltip--is-ready' : _ref$readyClass;\n\t\n\t\t// CONSTANTS\n\t\tvar doc = document;\n\t\tvar docEl = doc.documentElement;\n\t\tvar _q = function _q(el) {\n\t\t\tvar ctx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : doc;\n\t\t\treturn [].slice.call(ctx.querySelectorAll(el));\n\t\t};\n\t\n\t\t// SUPPORTS\n\t\tif (!('querySelector' in doc) || !('addEventListener' in window) || !docEl.classList) return;\n\t\n\t\t// SETUP\n\t\tvar tooltipContainers = _q(selector);\n\t\n\t\t//\tTEMP\n\t\tvar currTooltip = null;\n\t\n\t\t//\tUTILS\n\t\tfunction _defer(fn) {\n\t\t\t//\twrapped in setTimeout to delay binding until previous rendering has completed\n\t\t\tif (typeof fn === 'function') setTimeout(fn, 0);\n\t\t}\n\t\tfunction _closest(el, selector) {\n\t\t\twhile (el) {\n\t\t\t\tif (el.matches(selector)) break;\n\t\t\t\tel = el.parentElement;\n\t\t\t}\n\t\t\treturn el;\n\t\t}\n\t\n\t\t//\tA11Y\n\t\tfunction _addA11y(container, i) {\n\t\t\t//\tget relative elements\n\t\t\tvar toggle = _q(toggleSelector, container)[0];\n\t\t\tvar tooltip = _q(tooltipSelector, container)[0];\n\t\t\t//\tcreate new button and replace toggle\n\t\t\tvar button = doc.createElement('button');\n\t\t\tbutton.setAttribute('class', toggle.getAttribute('class'));\n\t\t\tbutton.setAttribute('aria-expanded', 'false');\n\t\t\tbutton.setAttribute('aria-describedby', '');\n\t\t\tbutton.textContent = toggle.textContent;\n\t\t\tcontainer.replaceChild(button, toggle);\n\t\t\t//\tadd tooltip attributes\n\t\t\ttooltip.setAttribute('role', 'tooltip');\n\t\t\ttooltip.setAttribute('id', tooltipIdPrefix + '-' + i);\n\t\t\ttooltip.setAttribute('aria-hidden', 'true');\n\t\t\ttooltip.setAttribute('aria-live', 'polite');\n\t\t}\n\t\tfunction _removeA11y(container) {\n\t\t\t//\tget relative elements\n\t\t\tvar toggle = _q(toggleSelector, container)[0];\n\t\t\tvar tooltip = _q(tooltipSelector, container)[0];\n\t\t\t//\tcreate new span and replace toggle\n\t\t\tvar span = doc.createElement('span');\n\t\t\tspan.setAttribute('class', toggle.getAttribute('class'));\n\t\t\tspan.textContent = toggle.textContent;\n\t\t\tcontainer.replaceChild(span, toggle);\n\t\t\t//\tremove tooltip attributes\n\t\t\ttooltip.removeAttribute('role');\n\t\t\ttooltip.removeAttribute('id');\n\t\t\ttooltip.removeAttribute('aria-hidden');\n\t\t\ttooltip.removeAttribute('aria-live');\n\t\t}\n\t\n\t\t// ACTIONS\n\t\tfunction _showTooltip(toggle, tooltip) {\n\t\t\t//\tassign describedby matching tooltip reference\n\t\t\tvar tooltipId = tooltip.getAttribute('id');\n\t\t\ttoggle.setAttribute('aria-describedby', tooltipId);\n\t\t\t//\tset visible state\n\t\t\ttoggle.setAttribute('aria-expanded', 'true');\n\t\t\ttooltip.setAttribute('aria-hidden', 'false');\n\t\t\t//\tstore temp reference to tooltip\n\t\t\tcurrTooltip = tooltip;\n\t\t\t//\tbind doc close events\n\t\t\t_defer(_bindDocClick);\n\t\t\t_defer(_bindDocKey);\n\t\t}\n\t\tfunction _hideTooltip(toggle, tooltip) {\n\t\t\t//\tremove tooltip reference\n\t\t\ttoggle.setAttribute('aria-describedby', '');\n\t\t\t//\tset visible state\n\t\t\ttoggle.setAttribute('aria-expanded', 'false');\n\t\t\ttooltip.setAttribute('aria-hidden', 'true');\n\t\t\t//\tremove tooltip temp reference\n\t\t\tcurrTooltip = null;\n\t\t\t//\tunbind doc close events\n\t\t\t_unbindDocClick();\n\t\t\t_unbindDocKey();\n\t\t}\n\t\tfunction destroy() {\n\t\t\ttooltipContainers.forEach(function (container, i) {\n\t\t\t\t_removeA11y(container, i);\n\t\t\t\t_unbindToggleEvents(container);\n\t\t\t\tcontainer.classList.remove(readyClass);\n\t\t\t});\n\t\t\t//\treset temp references\n\t\t\tcurrTooltip = null;\n\t\t\t//\tunbind global events\n\t\t\t_unbindDocClick();\n\t\t\t_unbindDocKey();\n\t\t}\n\t\n\t\t// EVENTS\n\t\tfunction _eventTogglePointer(e) {\n\t\t\t//\tclose any open tooltips\n\t\t\tif (currTooltip) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t\t\t//\tget relevant tooltip elements\n\t\t\tvar toggle = e.target;\n\t\t\tvar tooltip = toggle.nextElementSibling;\n\t\t\t//\tshow or hide if toggle is 'expanded'\n\t\t\tif (toggle.getAttribute('aria-expanded') === 'false') {\n\t\t\t\t_showTooltip(toggle, tooltip);\n\t\t\t} else {\n\t\t\t\t_hideTooltip(toggle, tooltip);\n\t\t\t}\n\t\t}\n\t\tfunction _eventTogglePointerLeave() {\n\t\t\tif (currTooltip) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t\t}\n\t\tfunction _eventDocClick(e) {\n\t\t\t//\tcheck if target is panel or child of\n\t\t\tvar isTooltip = e.target === currTooltip;\n\t\t\tvar isTooltipchild = _closest(e.target, tooltipSelector);\n\t\t\tif (!isTooltip && !isTooltipchild) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t\t}\n\t\tfunction _eventDocKey(e) {\n\t\t\t//\tesc key\n\t\t\tif (e.keyCode === 27) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t\t}\n\t\n\t\t// BIND EVENTS\n\t\tfunction _bindToggleEvents(container) {\n\t\t\tvar toggle = _q(toggleSelector, container)[0];\n\t\t\ttoggle.addEventListener('click', _eventTogglePointer);\n\t\t\ttoggle.addEventListener('mouseenter', _eventTogglePointer);\n\t\t\ttoggle.addEventListener('mouseleave', _eventTogglePointerLeave);\n\t\t}\n\t\tfunction _bindDocClick() {\n\t\t\tdoc.addEventListener('click', _eventDocClick);\n\t\t\tdoc.addEventListener('touchstart', _eventDocClick);\n\t\t}\n\t\tfunction _bindDocKey() {\n\t\t\tdoc.addEventListener('keydown', _eventDocKey);\n\t\t}\n\t\n\t\t//\tUNBIND EVENTS\n\t\tfunction _unbindToggleEvents(container) {\n\t\t\tvar toggle = _q(toggleSelector, container)[0];\n\t\t\ttoggle.removeEventListener('click', _eventTogglePointer);\n\t\t\ttoggle.removeEventListener('mouseenter', _eventTogglePointer);\n\t\t\ttoggle.removeEventListener('mouseleave', _eventTogglePointerLeave);\n\t\t}\n\t\tfunction _unbindDocClick() {\n\t\t\tdoc.removeEventListener('click', _eventDocClick);\n\t\t\tdoc.removeEventListener('touchstart', _eventDocClick);\n\t\t}\n\t\tfunction _unbindDocKey() {\n\t\t\tdoc.removeEventListener('keydown', _eventDocKey);\n\t\t}\n\t\n\t\t// INIT\n\t\tfunction init() {\n\t\t\tif (!tooltipContainers) return;\n\t\t\t//\tloop through each tooltip element\n\t\t\ttooltipContainers.forEach(function (container, i) {\n\t\t\t\t_addA11y(container, i);\n\t\t\t\t_bindToggleEvents(container);\n\t\t\t\tcontainer.classList.add(readyClass);\n\t\t\t});\n\t\t}\n\t\tinit();\n\t\n\t\t// REVEAL API\n\t\treturn {\n\t\t\tinit: init,\n\t\t\tdestroy: destroy\n\t\t};\n\t};\n\t\n\t// module exports\n\texports['default'] = Frtooltip;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 43 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 44 */,\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _jquery = __webpack_require__(4);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/*\n\t *\tTODO:\n\t *\t\t- repack as a frend _component and CSS\n\t *\t\t- refactor without jQuery\n\t */\n\t\n\t/*\n\t * Porting of http://www.oaa-accessibility.org/examplep/treeview1/\n\t */\n\tvar Treeview = function Treeview() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t _ref$selector = _ref.selector,\n\t selector = _ref$selector === undefined ? '.js-Treeview' : _ref$selector,\n\t _ref$classFocused = _ref.classFocused,\n\t classFocused = _ref$classFocused === undefined ? 'hasFocus' : _ref$classFocused,\n\t _ref$classParent = _ref.classParent,\n\t classParent = _ref$classParent === undefined ? 'Treeview-parent' : _ref$classParent,\n\t _ref$classMenuHandler = _ref.classMenuHandler,\n\t classMenuHandler = _ref$classMenuHandler === undefined ? 'js-Treeview-handler' : _ref$classMenuHandler,\n\t _ref$styleMenuHandler = _ref.styleMenuHandler,\n\t styleMenuHandler = _ref$styleMenuHandler === undefined ? 'Treeview-handler--default' : _ref$styleMenuHandler,\n\t _ref$styleMenuHandler2 = _ref.styleMenuHandlerStandalone,\n\t styleMenuHandlerStandalone = _ref$styleMenuHandler2 === undefined ? 'Treeview-handler--standalone' : _ref$styleMenuHandler2,\n\t _ref$ariaLabelHandler = _ref.ariaLabelHandler,\n\t ariaLabelHandler = _ref$ariaLabelHandler === undefined ? 'expand' : _ref$ariaLabelHandler,\n\t _ref$multiselectable = _ref.multiselectable,\n\t multiselectable = _ref$multiselectable === undefined ? true : _ref$multiselectable,\n\t _ref$animationMs = _ref.animationMs,\n\t animationMs = _ref$animationMs === undefined ? 100 : _ref$animationMs;\n\t\n\t var keys = {\n\t tab: 9,\n\t enter: 13,\n\t space: 32,\n\t pageup: 33,\n\t pagedown: 34,\n\t end: 35,\n\t home: 36,\n\t left: 37,\n\t up: 38,\n\t right: 39,\n\t down: 40,\n\t asterisk: 106\n\t };\n\t\n\t function _collapseAll(treeview) {\n\t treeview.$parents.each(function () {\n\t if ((0, _jquery2['default'])(this).attr('aria-expanded') == 'false') {\n\t (0, _jquery2['default'])(this).children('ul').attr('aria-hidden', 'true');\n\t }\n\t });\n\t treeview.$visibleItems = treeview.$el.find('li:visible');\n\t }\n\t\n\t function _expandGroup(treeview, $item) {\n\t var $group = $item.children('ul');\n\t $group.slideDown(animationMs, function () {\n\t $group.attr('aria-hidden', 'false');\n\t $item.attr('aria-expanded', 'true');\n\t treeview.$visibleItems = treeview.$el.find('li:visible');\n\t });\n\t }\n\t\n\t function _collapseGroup(treeview, $item) {\n\t var $group = $item.children('ul');\n\t $group.slideUp(animationMs, function () {\n\t $group.attr('aria-hidden', 'true');\n\t $item.attr('aria-expanded', 'false');\n\t treeview.$visibleItems = treeview.$el.find('li:visible');\n\t });\n\t }\n\t\n\t function _collapseSiblings(treeview, $item) {\n\t $item.closest('ul').find('> .' + classParent).not($item).each(function (i, el) {\n\t _collapseGroup(treeview, (0, _jquery2['default'])(el));\n\t });\n\t }\n\t\n\t function _toggleGroup(treeview, $item) {\n\t if (!multiselectable) {\n\t _collapseSiblings(treeview, $item);\n\t }\n\t if ($item.attr('aria-expanded') == 'true') {\n\t _collapseGroup(treeview, $item);\n\t } else {\n\t _expandGroup(treeview, $item);\n\t }\n\t }\n\t\n\t function _updateStyling(treeview, $item) {\n\t treeview.$items.removeClass(classFocused).attr('tabindex', '-1');\n\t $item.addClass(classFocused).attr('tabindex', '0');\n\t }\n\t\n\t function _handleKeyDown(treeview, $item, e) {\n\t var curNdx = treeview.$visibleItems.index($item);\n\t\n\t if (e.altKey || e.ctrlKey || e.shiftKey && e.keyCode != keys.tab) {\n\t return true;\n\t }\n\t\n\t // if (!$(e.currentTarget).is('.' + classMenuHandler)) {\n\t // return true\n\t // }\n\t\n\t switch (e.keyCode) {\n\t case keys.tab:\n\t {\n\t treeview.$activeItem = null;\n\t $item.removeClass(classFocused);\n\t return true;\n\t }\n\t\n\t case keys.home:\n\t {\n\t treeview.$activeItem = treeview.$parents.first();\n\t treeview.$activeItem.find(':focusable:first').focus();\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t case keys.end:\n\t {\n\t treeview.$activeItem = treeview.$visibleItems.last();\n\t treeview.$activeItem.find(':focusable:first').focus();\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t case keys.enter:\n\t case keys.space:\n\t {\n\t if ((0, _jquery2['default'])(e.currentTarget).is('.' + classMenuHandler)) {\n\t _toggleGroup(treeview, $item);\n\t e.stopPropagation();\n\t return false;\n\t }\n\t return true;\n\t }\n\t\n\t case keys.left:\n\t {\n\t if ($item.is('.' + classParent) && $item.attr('aria-expanded') == 'true') {\n\t _collapseGroup(treeview, $item);\n\t } else {\n\t var $itemUL = $item.parent();\n\t var $itemParent = $itemUL.parent();\n\t treeview.$activeItem = $itemParent;\n\t treeview.$activeItem.find(':focusable:first').focus();\n\t }\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t case keys.right:\n\t {\n\t if (!$item.is('.' + classParent)) {\n\t // do nothing\n\t } else if ($item.attr('aria-expanded') == 'false') {\n\t _expandGroup(treeview, $item);\n\t } else {\n\t treeview.$activeItem = $item.children('ul').children('li').first();\n\t treeview.$activeItem.find(':focusable:first').focus();\n\t }\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t case keys.up:\n\t {\n\t if (curNdx > 0) {\n\t var $prev = treeview.$visibleItems.eq(curNdx - 1);\n\t treeview.$activeItem = $prev;\n\t $prev.find(':focusable:first').focus();\n\t }\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t case keys.down:\n\t {\n\t if (curNdx < treeview.$visibleItems.length - 1) {\n\t var $next = treeview.$visibleItems.eq(curNdx + 1);\n\t treeview.$activeItem = $next;\n\t $next.find(':focusable:first').focus();\n\t }\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t case keys.asterisk:\n\t {\n\t treeview.$parents.each(function () {\n\t _expandGroup(treeview, (0, _jquery2['default'])(this));\n\t });\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t }\n\t return true;\n\t }\n\t\n\t function _handleKeyPress(treeview, $item, e) {\n\t if (e.altKey || e.ctrlKey || e.shiftKey) {\n\t // do nothing\n\t return true;\n\t }\n\t\n\t switch (e.keyCode) {\n\t case keys.tab:\n\t {\n\t return true;\n\t }\n\t case keys.enter:\n\t case keys.home:\n\t case keys.end:\n\t case keys.left:\n\t case keys.right:\n\t case keys.up:\n\t case keys.down:\n\t {\n\t e.stopPropagation();\n\t return false;\n\t }\n\t default:\n\t {\n\t var chr = String.fromCharCode(e.which);\n\t var bMatch = false;\n\t var itemNdx = treeview.$visibleItems.index($item);\n\t var itemCnt = treeview.$visibleItems.length;\n\t var curNdx = itemNdx + 1;\n\t\n\t // check if the active item was the last one on the list\n\t if (curNdx == itemCnt) {\n\t curNdx = 0;\n\t }\n\t\n\t // Iterate through the menu items (starting from the current item and wrapping) until a match is found\n\t // or the loop returns to the current menu item\n\t while (curNdx != itemNdx) {\n\t\n\t var $curItem = treeview.$visibleItems.eq(curNdx);\n\t var titleChr = $curItem.text().charAt(0);\n\t\n\t if ($curItem.is('.' + classParent)) {\n\t titleChr = $curItem.find('span').text().charAt(0);\n\t }\n\t\n\t if (titleChr.toLowerCase() == chr) {\n\t bMatch = true;\n\t break;\n\t }\n\t\n\t curNdx = curNdx + 1;\n\t\n\t if (curNdx == itemCnt) {\n\t // reached the end of the list, start again at the beginning\n\t curNdx = 0;\n\t }\n\t }\n\t\n\t if (bMatch == true) {\n\t treeview.$activeItem = treeview.$visibleItems.eq(curNdx);\n\t treeview.$activeItem.find(':focusable:first').focus();\n\t }\n\t\n\t e.stopPropagation();\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t }\n\t\n\t function _handleClick(treeview, $item, e) {\n\t if (e.altKey || e.ctrlKey || e.shiftKey) {\n\t // do nothing\n\t return true;\n\t }\n\t\n\t // closest('li')\n\t var $parent = $item.closest('li');\n\t\n\t treeview.$activeItem = $parent;\n\t _updateStyling(treeview, $parent);\n\t _toggleGroup(treeview, $parent);\n\t\n\t e.stopPropagation();\n\t return false;\n\t }\n\t\n\t function _bindEvents(treeview) {\n\t treeview.$handlers.click(function (e) {\n\t return _handleClick(treeview, (0, _jquery2['default'])(this), e);\n\t });\n\t\n\t treeview.$items.keydown(function (e) {\n\t return _handleKeyDown(treeview, (0, _jquery2['default'])(this), e);\n\t });\n\t\n\t treeview.$items.keypress(function (e) {\n\t return _handleKeyPress(treeview, (0, _jquery2['default'])(this), e);\n\t });\n\t\n\t treeview.$handlers.keydown(function (e) {\n\t return _handleKeyDown(treeview, (0, _jquery2['default'])(this).closest('li'), e);\n\t });\n\t\n\t treeview.$handlers.keypress(function (e) {\n\t return _handleKeyPress(treeview, (0, _jquery2['default'])(this).closest('li'), e);\n\t });\n\t\n\t (0, _jquery2['default'])(document).click(function () {\n\t if (treeview.$activeItem != null) {\n\t treeview.$activeItem.removeClass(classFocused);\n\t treeview.$activeItem = null;\n\t }\n\t return true;\n\t });\n\t }\n\t\n\t function destroy() {\n\t /* TODO */\n\t }\n\t\n\t function _addA11y($el) {\n\t $el.attr('role', 'tree');\n\t\n\t // Put role=\"treeitem\" on every LI\n\t // Put aria-expanded=\"false\" on every LI (if it has no aria-expanded attr)\n\t // Put tabindex=\"-1\" on every LI (if it's not the first one)\n\t // Put class=`)\n .end()\n .find('> ul')\n .wrapAll(``)\n })\n .end()\n}\n\n$(document).ready(function() {\n $('.js-megamenu').each((i, el) => {\n const $el = $(el)\n const rel = $(el).data('rel')\n\n if ($el.find('ul').length === 0 && rel && $(rel).length > 0) {\n let $menu = listToMegaMenu($(rel), opts)\n $el.append($menu)\n // @FIXME: make space for javascript rendered megamenu\n if ($('header').css('position') === 'fixed') {\n $('body').css({\n paddingTop: '+=' + $el.height() + 'px'\n })\n }\n }\n\n $el.accessibleMegaMenu(opts)\n\n if (opts.addCloseButton) {\n $(opts.closeButtonTemplate).appendTo($('.' + opts.panelClass))\n }\n\n $('.' + opts.closeButtonClass).on('click', function() {\n const e = $.Event('keydown')\n e.which = 27\n $('.' + opts.menuClass).trigger(e)\n return false\n })\n\n })\n})\n\nexport default {\n opts,\n listToMegaMenu,\n Megamenu\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/megamenu/index.js","/*\nCopyright © 2013 Adobe Systems Incorporated.\n\nLicensed under the Apache License, Version 2.0 (the “License”)\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an “AS IS” BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/**\n * @fileOverview accessibleMegaMenu plugin\n *\n *
Copyright © 2013 Adobe Systems Incorporated.\n *
Project page https://github.com/adobe-accessibility/Accessible-Mega-Menu\n * @version 0.1\n * @author Michael Jordan\n * @requires jquery\n */\n\n/*jslint browser: true, devel: true, plusplus: true, nomen: true */\n/*global jQuery */\n(function($, window, document) {\n var pluginName = 'accessibleMegaMenu',\n defaults = {\n openOnClick: false,\n uuidPrefix: 'accessible-megamenu', // unique ID's are required to indicate aria-owns, aria-controls and aria-labelledby\n menuClass: 'accessible-megamenu', // default css class used to define the megamenu styling\n topNavItemClass: 'accessible-megamenu-top-nav-item', // default css class for a top-level navigation item in the megamenu\n panelClass: 'accessible-megamenu-panel', // default css class for a megamenu panel\n panelGroupClass: 'accessible-megamenu-panel-group', // default css class for a group of items within a megamenu panel\n hoverClass: 'hover', // default css class for the hover state\n focusClass: 'focus', // default css class for the focus state\n openClass: 'open' // default css class for the open state\n },\n Keyboard = {\n BACKSPACE: 8,\n COMMA: 188,\n DELETE: 46,\n DOWN: 40,\n END: 35,\n ENTER: 13,\n ESCAPE: 27,\n HOME: 36,\n LEFT: 37,\n PAGE_DOWN: 34,\n PAGE_UP: 33,\n PERIOD: 190,\n RIGHT: 39,\n SPACE: 32,\n TAB: 9,\n UP: 38,\n keyMap: {\n 48: '0',\n 49: '1',\n 50: '2',\n 51: '3',\n 52: '4',\n 53: '5',\n 54: '6',\n 55: '7',\n 56: '8',\n 57: '9',\n 59: '',\n 65: 'a',\n 66: 'b',\n 67: 'c',\n 68: 'd',\n 69: 'e',\n 70: 'f',\n 71: 'g',\n 72: 'h',\n 73: 'i',\n 74: 'j',\n 75: 'k',\n 76: 'l',\n 77: 'm',\n 78: 'n',\n 79: 'o',\n 80: 'p',\n 81: 'q',\n 82: 'r',\n 83: 's',\n 84: 't',\n 85: 'u',\n 86: 'v',\n 87: 'w',\n 88: 'x',\n 89: 'y',\n 90: 'z',\n 96: '0',\n 97: '1',\n 98: '2',\n 99: '3',\n 100: '4',\n 101: '5',\n 102: '6',\n 103: '7',\n 104: '8',\n 105: '9',\n 190: '.'\n }\n }\n /**\n * @desc Creates a new accessible mega menu instance.\n * @param {jquery} element\n * @param {object} [options] Mega Menu options\n * @param {string} [options.uuidPrefix=accessible-megamenu] - Prefix for generated unique id attributes, which are required to indicate aria-owns, aria-controls and aria-labelledby\n * @param {string} [options.menuClass=accessible-megamenu] - CSS class used to define the megamenu styling\n * @param {string} [options.topNavItemClass=accessible-megamenu-top-nav-item] - CSS class for a top-level navigation item in the megamenu\n * @param {string} [options.panelClass=accessible-megamenu-panel] - CSS class for a megamenu panel\n * @param {string} [options.panelGroupClass=accessible-megamenu-panel-group] - CSS class for a group of items within a megamenu panel\n * @param {string} [options.hoverClass=hover] - CSS class for the hover state\n * @param {string} [options.focusClass=focus] - CSS class for the focus state\n * @param {string} [options.openClass=open] - CSS class for the open state\n * @constructor\n */\n function AccessibleMegaMenu(element, options) {\n this.element = element\n\n // merge optional settings and defaults into settings\n this.settings = $.extend({}, defaults, options)\n\n this._defaults = defaults\n this._name = pluginName\n\n this.mouseTimeoutID = null\n this.focusTimeoutID = null\n this.mouseFocused = false\n this.justFocused = false\n\n this.init()\n }\n\n AccessibleMegaMenu.prototype = (function() {\n\n /* private attributes and methods ------------------------ */\n var uuid = 0,\n keydownTimeoutDuration = 1000,\n keydownSearchString = '',\n isTouch = typeof window.hasOwnProperty === 'function' && !!window.hasOwnProperty('ontouchstart'),\n _getPlugin,\n _addUniqueId,\n _togglePanel,\n _clickHandler,\n _clickOutsideHandler,\n _DOMAttrModifiedHandler,\n _focusInHandler,\n _focusOutHandler,\n _keyDownHandler,\n _mouseDownHandler,\n _mouseOverHandler,\n _mouseOutHandler,\n _toggleExpandedEventHandlers\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_getPlugin\n * @desc Returns the parent accessibleMegaMenu instance for a given element\n * @param {jQuery} element\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _getPlugin = function(element) {\n return $(element).closest(':data(plugin_' + pluginName + ')').data('plugin_' + pluginName)\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_addUniqueId\n * @desc Adds a unique id and element.\n * The id string starts with the\n * string defined in settings.uuidPrefix.\n * @param {jQuery} element\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _addUniqueId = function(element) {\n element = $(element)\n var settings = this.settings\n if (!element.attr('id')) {\n element.attr('id', settings.uuidPrefix + '-' + new Date().getTime() + '-' + (++uuid))\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_togglePanel\n * @desc Toggle the display of mega menu panels in response to an event.\n * The optional boolean value 'hide' forces all panels to hide.\n * @param {event} event\n * @param {Boolean} [hide] Hide all mega menu panels when true\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _togglePanel = function(event, hide) {\n var target = $(event.target),\n that = this,\n settings = this.settings,\n menu = this.menu,\n topli = target.closest('.' + settings.topNavItemClass),\n panel = target.hasClass(settings.panelClass) ? target : target.closest('.' + settings.panelClass),\n newfocus\n\n _toggleExpandedEventHandlers.call(this, true)\n\n if (hide) {\n topli = menu.find('.' + settings.topNavItemClass + ' .' + settings.openClass + ':first').closest('.' + settings.topNavItemClass)\n if (!(topli.is(event.relatedTarget) || topli.has(event.relatedTarget).length > 0)) {\n if ((event.type === 'mouseout' || event.type === 'focusout') && topli.has(document.activeElement).length > 0) {\n return\n }\n topli.find('[aria-expanded]')\n .attr('aria-expanded', 'false')\n .removeClass(settings.openClass)\n .filter('.' + settings.panelClass)\n .attr('aria-hidden', 'true')\n if ((event.type === 'keydown' && event.keyCode === Keyboard.ESCAPE) || event.type === 'DOMAttrModified') {\n newfocus = topli.find(':tabbable:first')\n setTimeout(function() {\n menu.find('[aria-expanded].' + that.settings.panelClass).off('DOMAttrModified.accessible-megamenu')\n newfocus.focus()\n that.justFocused = false\n }, 99)\n }\n } else if (topli.length === 0) {\n menu.find('[aria-expanded=true]')\n .attr('aria-expanded', 'false')\n .removeClass(settings.openClass)\n .filter('.' + settings.panelClass)\n .attr('aria-hidden', 'true')\n }\n } else {\n clearTimeout(that.focusTimeoutID)\n topli.siblings()\n .find('[aria-expanded]')\n .attr('aria-expanded', 'false')\n .removeClass(settings.openClass)\n .filter('.' + settings.panelClass)\n .attr('aria-hidden', 'true')\n topli.find('[aria-expanded]')\n .attr('aria-expanded', 'true')\n .addClass(settings.openClass)\n .filter('.' + settings.panelClass)\n .attr('aria-hidden', 'false')\n if (event.type === 'mouseover' && target.is(':tabbable') && topli.length === 1 && panel.length === 0 && menu.has(document.activeElement).length > 0) {\n target.focus()\n that.justFocused = false\n }\n\n _toggleExpandedEventHandlers.call(that)\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_clickHandler\n * @desc Handle click event on mega menu item\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _clickHandler = function(event) {\n var target = $(event.currentTarget),\n topli = target.closest('.' + this.settings.topNavItemClass),\n panel = target.closest('.' + this.settings.panelClass)\n if (topli.length === 1 &&\n panel.length === 0 &&\n topli.find('.' + this.settings.panelClass).length === 1) {\n if (!target.hasClass(this.settings.openClass)) {\n event.preventDefault()\n event.stopPropagation()\n _togglePanel.call(this, event)\n this.justFocused = false\n } else {\n if (this.justFocused) {\n event.preventDefault()\n event.stopPropagation()\n this.justFocused = false\n } else if (isTouch) {\n event.preventDefault()\n event.stopPropagation()\n _togglePanel.call(this, event, target.hasClass(this.settings.openClass))\n }\n }\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_clickOutsideHandler\n * @desc Handle click event outside of a the megamenu\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _clickOutsideHandler = function(event) {\n if ($(event.target).closest(this.menu).length === 0) {\n event.preventDefault()\n event.stopPropagation()\n _togglePanel.call(this, event, true)\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_DOMAttrModifiedHandler\n * @desc Handle DOMAttrModified event on panel to respond to Windows 8 Narrator ExpandCollapse pattern\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _DOMAttrModifiedHandler = function(event) {\n if (event.originalEvent.attrName === 'aria-expanded' &&\n event.originalEvent.newValue === 'false' &&\n $(event.target).hasClass(this.settings.openClass)) {\n event.preventDefault()\n event.stopPropagation()\n _togglePanel.call(this, event, true)\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_focusInHandler\n * @desc Handle focusin event on mega menu item.\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _focusInHandler = function(event) {\n clearTimeout(this.focusTimeoutID)\n var target = $(event.target),\n panel = target.closest('.' + this.settings.panelClass)\n target\n .addClass(this.settings.focusClass)\n .on('click.accessible-megamenu', $.proxy(_clickHandler, this))\n this.justFocused = !this.mouseFocused\n this.mouseFocused = false\n if (this.panels.not(panel).filter('.' + this.settings.openClass).length) {\n _togglePanel.call(this, event)\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_focusOutHandler\n * @desc Handle focusout event on mega menu item.\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _focusOutHandler = function(event) {\n this.justFocused = false\n var that = this,\n target = $(event.target),\n topli = target.closest('.' + this.settings.topNavItemClass)\n\n target\n // .removeClass(this.settings.focusClass)\n .off('click.accessible-megamenu')\n\n if (window.cvox) {\n // If ChromeVox is running...\n that.focusTimeoutID = setTimeout(function() {\n window.cvox.Api.getCurrentNode(function(node) {\n if (topli.has(node).length) {\n // and the current node being voiced is in\n // the mega menu, clearTimeout,\n // so the panel stays open.\n clearTimeout(that.focusTimeoutID)\n } else {\n that.focusTimeoutID = setTimeout(function(scope, _event, hide) {\n _togglePanel.call(scope, _event, hide)\n }, 275, that, event, true)\n }\n })\n }, 25)\n } else {\n that.focusTimeoutID = setTimeout(function() {\n _togglePanel.call(that, event, true)\n }, 300)\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_keyDownHandler\n * @desc Handle keydown event on mega menu.\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _keyDownHandler = function(event) {\n var that = (this.constructor === AccessibleMegaMenu) ? this : _getPlugin(this), // determine the AccessibleMegaMenu plugin instance\n settings = that.settings,\n target = $($(this).is('.' + settings.hoverClass + ':tabbable') ? this : event.target), // if the element is hovered the target is this, otherwise, its the focused element\n menu = that.menu,\n topnavitems = that.topnavitems,\n topli = target.closest('.' + settings.topNavItemClass),\n tabbables = menu.find(':tabbable'),\n panel = target.hasClass(settings.panelClass) ? target : target.closest('.' + settings.panelClass),\n panelGroups = panel.find('.' + settings.panelGroupClass),\n currentPanelGroup = target.closest('.' + settings.panelGroupClass),\n next,\n keycode = event.keyCode || event.which,\n start,\n i,\n o,\n label,\n found = false,\n newString = Keyboard.keyMap[event.keyCode] || '',\n regex,\n isTopNavItem = (topli.length === 1 && panel.length === 0)\n\n if (target.is('input:focus, select:focus, textarea:focus, button:focus')) {\n // if the event target is a form element we should handle keydown normally\n return\n }\n\n if (target.is('.' + settings.hoverClass + ':tabbable')) {\n $('html').off('keydown.accessible-megamenu')\n }\n\n switch (keycode) {\n case Keyboard.ESCAPE:\n _togglePanel.call(that, event, true)\n break\n case Keyboard.DOWN:\n event.preventDefault()\n if (isTopNavItem) {\n _togglePanel.call(that, event)\n found = (topli.find('.' + settings.panelClass + ' :tabbable:first').focus().length === 1)\n } else {\n found = (tabbables.filter(':gt(' + tabbables.index(target) + '):first').focus().length === 1)\n }\n\n if (!found && window.opera && opera.toString() === '[object Opera]' && (event.ctrlKey || event.metaKey)) {\n tabbables = $(':tabbable')\n i = tabbables.index(target)\n found = ($(':tabbable:gt(' + $(':tabbable').index(target) + '):first').focus().length === 1)\n }\n break\n case Keyboard.UP:\n event.preventDefault()\n if (isTopNavItem && target.hasClass(settings.openClass)) {\n _togglePanel.call(that, event, true)\n next = topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last')\n if (next.children('.' + settings.panelClass).length) {\n found = (next.children()\n .attr('aria-expanded', 'true')\n .addClass(settings.openClass)\n .filter('.' + settings.panelClass)\n .attr('aria-hidden', 'false')\n .find(':tabbable:last')\n .focus() === 1)\n }\n } else if (!isTopNavItem) {\n found = (tabbables.filter(':lt(' + tabbables.index(target) + '):last').focus().length === 1)\n }\n\n if (!found && window.opera && opera.toString() === '[object Opera]' && (event.ctrlKey || event.metaKey)) {\n tabbables = $(':tabbable')\n i = tabbables.index(target)\n found = ($(':tabbable:lt(' + $(':tabbable').index(target) + '):first').focus().length === 1)\n }\n break\n case Keyboard.RIGHT:\n event.preventDefault()\n if (isTopNavItem) {\n found = (topnavitems.filter(':gt(' + topnavitems.index(topli) + '):first').find(':tabbable:first').focus().length === 1)\n } else {\n if (panelGroups.length && currentPanelGroup.length) {\n // if the current panel contains panel groups, and we are able to focus the first tabbable element of the next panel group\n found = (panelGroups.filter(':gt(' + panelGroups.index(currentPanelGroup) + '):first').find(':tabbable:first').focus().length === 1)\n }\n\n if (!found) {\n found = (topli.find(':tabbable:first').focus().length === 1)\n }\n }\n break\n case Keyboard.LEFT:\n event.preventDefault()\n if (isTopNavItem) {\n found = (topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last').find(':tabbable:first').focus().length === 1)\n } else {\n if (panelGroups.length && currentPanelGroup.length) {\n // if the current panel contains panel groups, and we are able to focus the first tabbable element of the previous panel group\n found = (panelGroups.filter(':lt(' + panelGroups.index(currentPanelGroup) + '):last').find(':tabbable:first').focus().length === 1)\n }\n\n if (!found) {\n found = (topli.find(':tabbable:first').focus().length === 1)\n }\n }\n break\n case Keyboard.TAB:\n i = tabbables.index(target)\n if (event.shiftKey && isTopNavItem && target.hasClass(settings.openClass)) {\n _togglePanel.call(that, event, true)\n next = topnavitems.filter(':lt(' + topnavitems.index(topli) + '):last')\n if (next.children('.' + settings.panelClass).length) {\n found = next.children()\n .attr('aria-expanded', 'true')\n .addClass(settings.openClass)\n .filter('.' + settings.panelClass)\n .attr('aria-hidden', 'false')\n .find(':tabbable:last')\n .focus()\n }\n } else if (event.shiftKey && i > 0) {\n found = (tabbables.filter(':lt(' + i + '):last').focus().length === 1)\n } else if (!event.shiftKey && i < tabbables.length - 1) {\n found = (tabbables.filter(':gt(' + i + '):first').focus().length === 1)\n } else if (window.opera && opera.toString() === '[object Opera]') {\n tabbables = $(':tabbable')\n i = tabbables.index(target)\n if (event.shiftKey) {\n found = ($(':tabbable:lt(' + $(':tabbable').index(target) + '):last').focus().length === 1)\n } else {\n found = ($(':tabbable:gt(' + $(':tabbable').index(target) + '):first').focus().length === 1)\n }\n }\n\n if (found) {\n event.preventDefault()\n }\n break\n case Keyboard.SPACE:\n if (isTopNavItem) {\n event.preventDefault()\n _clickHandler.call(that, event)\n } else {\n return\n }\n break\n case Keyboard.ENTER:\n return\n break\n default:\n // alphanumeric filter\n clearTimeout(this.keydownTimeoutID)\n\n keydownSearchString += newString !== keydownSearchString ? newString : ''\n\n if (keydownSearchString.length === 0) {\n return\n }\n\n this.keydownTimeoutID = setTimeout(function() {\n keydownSearchString = ''\n }, keydownTimeoutDuration)\n\n if (isTopNavItem && !target.hasClass(settings.openClass)) {\n tabbables = tabbables.filter(':not(.' + settings.panelClass + ' :tabbable)')\n } else {\n tabbables = topli.find(':tabbable')\n }\n\n if (event.shiftKey) {\n tabbables = $(tabbables.get()\n .reverse())\n }\n\n for (i = 0; i < tabbables.length; i++) {\n o = tabbables.eq(i)\n if (o.is(target)) {\n start = (keydownSearchString.length === 1) ? i + 1 : i\n break\n }\n }\n\n regex = new RegExp('^' + keydownSearchString.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&'), 'i')\n\n for (i = start; i < tabbables.length; i++) {\n o = tabbables.eq(i)\n label = $.trim(o.text())\n if (regex.test(label)) {\n found = true\n o.focus()\n break\n }\n }\n if (!found) {\n for (i = 0; i < start; i++) {\n o = tabbables.eq(i)\n label = $.trim(o.text())\n if (regex.test(label)) {\n o.focus()\n break\n }\n }\n }\n break\n }\n that.justFocused = false\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_mouseDownHandler\n * @desc Handle mousedown event on mega menu.\n * @param {event} Event object\n * @memberof accessibleMegaMenu\n * @inner\n * @private\n */\n _mouseDownHandler = function(event) {\n if ($(event.target).is(this.settings.panelClass) || $(event.target).closest(':focusable').length) {\n this.mouseFocused = true\n }\n this.mouseTimeoutID = setTimeout(function() {\n clearTimeout(this.focusTimeoutID)\n }, 1)\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_mouseOverHandler\n * @desc Handle mouseover event on mega menu.\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _mouseOverHandler = function(event) {\n clearTimeout(this.mouseTimeoutID)\n $(event.target)\n .addClass(this.settings.hoverClass)\n _togglePanel.call(this, event)\n if ($(event.target).is(':tabbable')) {\n $('html').on('keydown.accessible-megamenu', $.proxy(_keyDownHandler, event.target))\n }\n }\n\n /**\n * @name jQuery.fn.accessibleMegaMenu~_mouseOutHandler\n * @desc Handle mouseout event on mega menu.\n * @param {event} Event object\n * @memberof jQuery.fn.accessibleMegaMenu\n * @inner\n * @private\n */\n _mouseOutHandler = function(event) {\n var that = this\n $(event.target)\n .removeClass(that.settings.hoverClass)\n\n that.mouseTimeoutID = setTimeout(function() {\n _togglePanel.call(that, event, true)\n }, 250)\n if ($(event.target).is(':tabbable')) {\n $('html').off('keydown.accessible-megamenu')\n }\n }\n\n _toggleExpandedEventHandlers = function(hide) {\n var menu = this.menu\n if (hide) {\n $('html').off('mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu, pointerup.outside-accessible-megamenu')\n\n menu.find('[aria-expanded].' + this.settings.panelClass).off('DOMAttrModified.accessible-megamenu')\n } else {\n $('html').on('mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu, pointerup.outside-accessible-megamenu', $.proxy(_clickOutsideHandler, this))\n\n /* Narrator in Windows 8 automatically toggles the aria-expanded property on double tap or click.\n To respond to the change to collapse the panel, we must add a listener for a DOMAttrModified event. */\n menu.find('[aria-expanded=true].' + this.settings.panelClass).on('DOMAttrModified.accessible-megamenu', $.proxy(_DOMAttrModifiedHandler, this))\n }\n }\n\n /* public attributes and methods ------------------------- */\n return {\n constructor: AccessibleMegaMenu,\n\n /**\n * @lends jQuery.fn.accessibleMegaMenu\n * @desc Initializes an instance of the accessibleMegaMenu plugins\n * @memberof jQuery.fn.accessibleMegaMenu\n * @instance\n */\n init: function() {\n var settings = this.settings,\n nav = $(this.element),\n menu = nav.children().first(),\n // Only filter to those items with the selector class\n topnavitems = this.settings.topNavItems ?\n menu.children(this.settings.topNavItems) :\n menu.children()\n this.start(settings, nav, menu, topnavitems)\n },\n\n start: function(settings, nav, menu, topnavitems) {\n var that = this\n this.settings = settings\n this.menu = menu\n this.topnavitems = topnavitems\n\n nav.attr('role', 'navigation')\n menu.addClass(settings.menuClass)\n topnavitems.each(function(i, topnavitem) {\n var topnavitemlink, topnavitempanel\n topnavitem = $(topnavitem)\n // @FIXME: Add classed manually !!!\n // topnavitem.addClass(settings.topNavItemClass)\n topnavitemlink = topnavitem.find(':tabbable:first')\n topnavitempanel = topnavitem.children(':not(:tabbable):last')\n _addUniqueId.call(that, topnavitemlink)\n if (topnavitempanel.length) {\n _addUniqueId.call(that, topnavitempanel)\n topnavitemlink.attr({\n 'aria-haspopup': true,\n 'aria-controls': topnavitempanel.attr('id'),\n 'aria-expanded': false\n })\n\n topnavitempanel.attr({\n 'role': 'group',\n 'aria-expanded': false,\n 'aria-hidden': true\n })\n .addClass(settings.panelClass)\n .not('[aria-labelledby]')\n .attr('aria-labelledby', topnavitemlink.attr('id'))\n }\n })\n\n this.panels = menu.find('.' + settings.panelClass)\n\n menu.on('focusin.accessible-megamenu', ':focusable, .' + settings.panelClass, $.proxy(_focusInHandler, this))\n .on('focusout.accessible-megamenu', ':focusable, .' + settings.panelClass, $.proxy(_focusOutHandler, this))\n .on('keydown.accessible-megamenu', $.proxy(_keyDownHandler, this))\n .on('mousedown.accessible-megamenu', $.proxy(_mouseDownHandler, this))\n\n if (!settings.openOnClick) {\n menu.on('mouseover.accessible-megamenu', $.proxy(_mouseOverHandler, this))\n .on('mouseout.accessible-megamenu', $.proxy(_mouseOutHandler, this))\n }\n else {\n menu.on('click.accessible-megamenu', $.proxy(_mouseOverHandler, this))\n }\n\n if (isTouch) {\n menu.on('touchstart.accessible-megamenu', $.proxy(_clickHandler, this))\n }\n\n menu.find('hr').attr('role', 'separator')\n\n if ($(document.activeElement).closest(menu).length) {\n $(document.activeElement).trigger('focusin.accessible-megamenu')\n }\n },\n\n /**\n * @desc Get default values\n * @example $(selector).accessibleMegaMenu('getDefaults')\n * @return {object}\n * @memberof jQuery.fn.accessibleMegaMenu\n * @instance\n */\n getDefaults: function() {\n return this._defaults\n },\n\n /**\n * @desc Get any option set to plugin using its name (as string)\n * @example $(selector).accessibleMegaMenu('getOption', some_option)\n * @param {string} opt\n * @return {string}\n * @memberof jQuery.fn.accessibleMegaMenu\n * @instance\n */\n getOption: function(opt) {\n return this.settings[opt]\n },\n\n /**\n * @desc Get all options\n * @example $(selector).accessibleMegaMenu('getAllOptions')\n * @return {object}\n * @memberof jQuery.fn.accessibleMegaMenu\n * @instance\n */\n getAllOptions: function() {\n return this.settings\n },\n\n /**\n * @desc Set option\n * @example $(selector).accessibleMegaMenu('setOption', 'option_name', 'option_value', reinitialize)\n * @param {string} opt - Option name\n * @param {string} val - Option value\n * @param {boolean} [reinitialize] - boolean to re-initialize the menu.\n * @memberof jQuery.fn.accessibleMegaMenu\n * @instance\n */\n setOption: function(opt, value, reinitialize) {\n this.settings[opt] = value\n if (reinitialize) {\n this.init()\n }\n }\n }\n }())\n\n /*\n * @param {object} [options] Mega Menu options\n * @param {string} [options.uuidPrefix=accessible-megamenu] - Prefix for generated unique id attributes, which are required to indicate aria-owns, aria-controls and aria-labelledby\n * @param {string} [options.menuClass=accessible-megamenu] - CSS class used to define the megamenu styling\n * @param {string} [options.topNavItemClass=accessible-megamenu-top-nav-item] - CSS class for a top-level navigation item in the megamenu\n * @param {string} [options.panelClass=accessible-megamenu-panel] - CSS class for a megamenu panel\n * @param {string} [options.panelGroupClass=accessible-megamenu-panel-group] - CSS class for a group of items within a megamenu panel\n * @param {string} [options.hoverClass=hover] - CSS class for the hover state\n * @param {string} [options.focusClass=focus] - CSS class for the focus state\n * @param {string} [options.openClass=open] - CSS class for the open state\n */\n $.fn[pluginName] = function(options) {\n return this.each(function() {\n if (!$.data(this, 'plugin_' + pluginName)) {\n $.data(this, 'plugin_' + pluginName, new $.fn[pluginName].AccessibleMegaMenu(this, options))\n }\n })\n }\n\n $.fn[pluginName].AccessibleMegaMenu = AccessibleMegaMenu\n\n /* :focusable and :tabbable selectors from\n https://raw.github.com/jquery/jquery-ui/master/ui/jquery.ui.core.js */\n\n /**\n * @private\n */\n function visible(element) {\n return $.expr.filters.visible(element) && !$(element).parents().addBack().filter(function() {\n return $.css(this, 'visibility') === 'hidden'\n }).length\n }\n\n /**\n * @private\n */\n function focusable(element, isTabIndexNotNaN) {\n var map, mapName, img,\n nodeName = element.nodeName.toLowerCase()\n if ('area' === nodeName) {\n map = element.parentNode\n mapName = map.name\n if (!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {\n return false\n }\n img = $('img[usemap=#' + mapName + ']')[0]\n return !!img && visible(img)\n }\n return (/input|select|textarea|button|object/.test(nodeName) ? !element.disabled :\n 'a' === nodeName ?\n element.href || isTabIndexNotNaN :\n isTabIndexNotNaN) &&\n // the element and all of its ancestors must be visible\n visible(element)\n }\n\n $.extend($.expr[':'], {\n data: $.expr.createPseudo ? $.expr.createPseudo(function(dataName) {\n return function(elem) {\n return !!$.data(elem, dataName)\n }\n }) : // support: jQuery <1.8\n function(elem, i, match) {\n return !!$.data(elem, match[3])\n },\n\n focusable: function(element) {\n return focusable(element, !isNaN($.attr(element, 'tabindex')))\n },\n\n tabbable: function(element) {\n var tabIndex = $.attr(element, 'tabindex'),\n isTabIndexNaN = isNaN(tabIndex)\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN)\n }\n })\n}(jQuery, window, document))\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/megamenu/megamenu.js","import $ from 'jquery'\n\nimport Froffcanvas from 'fr-offcanvas/offcanvas'\n\n/* eslint-disable no-unused-vars */\n\nimport stylesheet from 'fr-offcanvas/offcanvas.css'\n\n/* eslint-enable */\n\nconst opts = {\n // String - panel\n panelSelector: '.Offcanvas',\n\n // String - content\n contentSelector: '.Offcanvas-content',\n\n // String - content\n modalSelector: '.Offcanvas--modal',\n\n // String - trigger\n jsSelector: '.js-fr-offcanvas-open',\n\n // String - Selector for the open button(s)\n openSelector: '.js-fr-offcanvas-open',\n\n // String - Selector for the close button\n closeSelector: '.js-fr-offcanvas-close',\n\n // String - Class name that will be added to the selector when the component has been initialised\n readyClass: 'is-ready',\n\n // String - Class name that will be added to the selector when the panel is visible\n activeClass: 'is-active'\n}\n\n/*\n * Prevent scroll on body when offcanvas is visible\n * (the touchmove handler targets iOS devices)\n */\nconst _handleModalScroll = () => {\n $(opts.contentSelector).on('transitionend', function() {\n if (!$(opts.panelSelector).hasClass(opts.activeClass)) {\n $(window).off('scroll.offcanvas')\n $(document).off('touchmove.offcanvas')\n } else {\n const _scrollTop = $(window).scrollTop()\n $(window).on('scroll.offcanvas', () => $(window).scrollTop(_scrollTop))\n $(document).on('touchmove.offcanvas', () => $(window).scrollTop(_scrollTop))\n }\n })\n}\n\n/*\n *\tFIXME: hack to show / hide the background panel\n */\nconst _handleModal = (e) => {\n if (e && $(opts.panelSelector).hasClass(opts.activeClass) &&\n !$(e.target).is(opts.contentSelector)) {\n // for some odd reason plain jquery click() does not work here\n // // so we add that get(0) call\n $(opts.closeSelector).get(0).click()\n }\n // we're using \"one\" here instead of \"bind\" because\n // otherwise $(opts.closeSelector).click() would trigger\n // a click on modal again looping forever\n $(opts.modalSelector).one('click', _handleModal)\n}\n\nlet _exports = {\n Froffcanvas,\n opts\n}\n\n$(document).ready(() => {\n let _scrollTop = $(window).scrollTop()\n\n $(opts.openSelector)\n .add($(opts.closeSelector))\n .click((e) => {\n _scrollTop = $(window).scrollTop()\n e.preventDefault()\n })\n\n $(opts.panelSelector).on('focus', () => {\n $(window).scrollTop(_scrollTop)\n })\n\n _handleModal()\n _handleModalScroll()\n\n _exports.offcanvas = Froffcanvas(opts)\n})\n\nexport default _exports\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/offcanvas/index.js","'use strict';\n\n// Polyfill matches as per https://github.com/jonathantneal/closest\nElement.prototype.matches = Element.prototype.matches ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n\n/**\n * @param {object} options Object containing configuration overrides\n */\nconst Froffcanvas = function({\n selector: selector = '.js-fr-offcanvas',\n openSelector: openSelector = '.js-fr-offcanvas-open',\n closeSelector: closeSelector = '.js-fr-offcanvas-close',\n readyClass: readyClass = 'fr-offcanvas--is-ready',\n activeClass: activeClass = 'fr-offcanvas--is-active'\n } = {}) {\n\n\n // CONSTANTS\n const doc = document;\n const docEl = doc.documentElement;\n const _q = (el, ctx = doc) => [].slice.call(ctx.querySelectorAll(el));\n\n\n // SUPPORTS\n if (!('querySelector' in doc) || !('addEventListener' in window) || !docEl.classList) return;\n\n\n // SETUP\n // set offcanvas element NodeLists\n const panels = _q(selector);\n\n // TEMP\n let currButtonOpen = null;\n let currPanel = null;\n\n\n // UTILS\n function _defer (fn) {\n // wrapped in setTimeout to delay binding until previous rendering has completed\n if (typeof fn === 'function') setTimeout(fn, 0);\n }\n function _closest (el, selector) {\n while (el) {\n if (el.matches(selector)) break;\n el = el.parentElement;\n }\n return el;\n }\n function _getPanelId (panel) {\n return panel.getAttribute('id');\n }\n\n\n // A11Y\n function _addA11y (panel) {\n // add aria-hidden attribute\n panel.setAttribute('aria-hidden', true);\n }\n function _removeA11y (panel) {\n // remove aria-hidden attribute\n panel.removeAttribute('aria-hidden');\n }\n\n\n // ACTIONS\n function _showPanel (panel) {\n // set visibility to override any previous set style\n panel.style.visibility = 'visible';\n // remove aria-hidden, add focus\n panel.setAttribute('aria-hidden', false);\n panel.setAttribute('tabindex', -1);\n panel.focus();\n // sort out events\n _defer(_unbindOpenPointer);\n _defer(_bindDocKey);\n _defer(_bindDocClick);\n _defer(_bindClosePointer);\n // reset scroll position\n panel.scrollTop = 0;\n // add active class\n panel.classList.add(activeClass);\n }\n function _hidePanel (panel = currPanel, returnfocus = true) {\n // add aria-hidden, remove focus\n panel.setAttribute('aria-hidden', true);\n panel.removeAttribute('tabindex');\n panel.blur();\n // set visibility to override any previous set style\n panel.style.visibility = 'hidden';\n // sort out events\n _unbindClosePointer(panel);\n _unbindDocKey();\n _unbindDocClick();\n _bindOpenPointer(panel);\n // remove active class\n panel.classList.remove(activeClass);\n // return focus to button that opened the panel and reset the reference\n if (returnfocus) {\n currButtonOpen.focus();\n currButtonOpen = null;\n }\n }\n function destroy () {\n panels.forEach((panel) => {\n // remove attributes\n _removeA11y(panel);\n // unbind local events\n _unbindOpenPointer(panel);\n _unbindClosePointer(panel);\n // remove class\n panel.classList.remove(readyClass);\n panel.classList.remove(activeClass);\n panel.style.visibility = '';\n });\n // unbind global events\n _unbindDocClick();\n _unbindDocKey();\n // reset temp references\n currButtonOpen = null;\n currPanel = null;\n }\n\n\n // EVENTS\n function _eventOpenPointer (e) {\n // get panel\n let panelId = e.currentTarget.getAttribute('aria-controls');\n let panel = doc.getElementById(panelId);\n // hide any open panels\n if (currPanel) _hidePanel(currPanel, false);\n // save temp panel/button\n currButtonOpen = e.currentTarget;\n currPanel = panel;\n // show\n _showPanel(panel);\n }\n function _eventClosePointer () {\n _hidePanel();\n }\n function _eventDocClick (e) {\n // check if target is panel or child of\n let isPanel = e.target === currPanel;\n let isPanelChild = _closest(e.target, selector);\n if (!isPanel && !isPanelChild) _hidePanel();\n }\n function _eventDocKey (e) {\n // esc key\n if (e.keyCode === 27) _hidePanel();\n }\n\n\n // BIND EVENTS\n function _bindOpenPointer (panel) {\n const openButtons = _q(`${openSelector}[aria-controls=\"${_getPanelId(panel)}\"]`); // is this selector totally crazy?\n openButtons.forEach((button) => button.addEventListener('click', _eventOpenPointer));\n }\n function _bindClosePointer (panel = currPanel) {\n var closeButton = _q(closeSelector, panel)[0];\n closeButton.addEventListener('click', _eventClosePointer);\n }\n function _bindDocClick () {\n doc.addEventListener('click', _eventDocClick);\n }\n function _bindDocKey () {\n doc.addEventListener('keydown', _eventDocKey);\n }\n\n\n // UNBIND EVENTS\n function _unbindOpenPointer (panel = currPanel) {\n const openButtons = _q(`${openSelector}[aria-controls=\"${_getPanelId(panel)}\"]`); // yep its totally crazy\n openButtons.forEach((button) => button.removeEventListener('click', _eventOpenPointer));\n }\n function _unbindClosePointer (panel = currPanel) {\n var closeButton = _q(closeSelector, panel)[0];\n closeButton.removeEventListener('click', _eventClosePointer);\n }\n function _unbindDocClick () {\n doc.removeEventListener('click', _eventDocClick);\n }\n function _unbindDocKey () {\n doc.removeEventListener('keydown', _eventDocKey);\n }\n\n\n // INIT\n function init () {\n if (!panels) return;\n // loop through each offcanvas element\n panels.forEach((panel) => {\n _addA11y(panel);\n _bindOpenPointer(panel);\n panel.classList.add(readyClass);\n });\n }\n init();\n\n\n // REVEAL API\n return {\n init,\n destroy\n }\n}\n\n\n// module exports\nexport default Froffcanvas;\n\n\n\n// WEBPACK FOOTER //\n// ./~/fr-offcanvas/offcanvas.js","import $ from 'jquery'\n\n/*\n * Randomize order of children in container (.js-randomize)\n */\n$(() => {\n const CONTAINER_SELECTOR = '.js-randomize'\n const EXCLUDE_SELECTOR = '.js-randomize-exclude'\n\n function shuffle(o) {\n for (let j, x, i = o.length; i; j = parseInt(Math.random() * i),\n x = o[--i], o[i] = o[j], o[j] = x);\n return o\n }\n\n $(CONTAINER_SELECTOR).each((i, container) => {\n let $container = $(container)\n $container.html(shuffle($container.children().not(EXCLUDE_SELECTOR).get()))\n })\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/random/index.js","import $ from 'jquery'\nimport debounce from 'throttle-debounce/throttle'\n\nconst threshold = 100\n\nconst _toggleScrolltop = () => {\n ($(window).scrollTop() > threshold) ?\n $('.js-scrollTop').show() :\n $('.js-scrollTop').hide()\n}\n\n$(window).scroll(debounce(500, _toggleScrolltop))\n$(document).ready(_toggleScrolltop)\n\nexport default {\n threshold\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/scrolltop/index.js","import Frbypasslinks from 'fr-bypasslinks'\n\n/* eslint-disable no-unused-vars */\n\nimport stylesheet from 'fr-bypasslinks/bypasslinks.css'\n\n/* eslint-enable */\n\nconst bypassLinks = Frbypasslinks({\n selector: '.js-fr-bypasslinks'\n})\n\nexport default { bypassLinks, Frbypasslinks }\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/skiplinks/index.js","'use strict';\n\n/**\n * @param {object} options Object containing configuration overrides\n */\nconst Frbypasslinks = function({\n\t\tselector: selector = '.js-fr-bypasslinks'\n\t} = {}) {\n\n\n\t//\tCONSTANTS\n\tconst doc = document;\n\tconst _q = (el, ctx = doc) => [].slice.call(ctx.querySelectorAll(el));\n\n\n\t//\tSUPPORTS\n\tif (!('querySelector' in doc) || !('addEventListener' in window)) return;\n\n\n\t//\tSETUP\n\t// get bypass links NodeList\n\tconst container = _q(selector)[0];\n\n\t//\tTEMP\n\tlet currTarget = null;\n\n\n\t//\tACTIONS\n\tfunction _addFocusability (link) {\n\t\t//\tget target element\n\t\tlet id = link.getAttribute('href').slice(1);\n\t\tlet target = doc.getElementById(id);\n\t\t//\tset tabindex to allow focus\n\t\tif (target) target.setAttribute('tabindex', -1);\n\t}\n\tfunction _removeFocusability (link) {\n\t\t//\tget target element\n\t\tlet id = link.getAttribute('href').slice(1);\n\t\tlet target = doc.getElementById(id);\n\t\t//\tremove ability to focus (stops user highlighting element on click)\n\t\tif (target) target.removeAttribute('tabindex');\n\t}\n\tfunction destroy () {\n\t\t//\tloop through each bypass link and remove event bindings\n\t\t_q('a', container).forEach(link => {\n\t\t\t_unbindPointerClick(link)\n\t\t\t_addFocusability(link);\n\t\t});\n\t\tif (currTarget) _unbindTargetBlur(currTarget);\n\t}\n\n\n\t//\tEVENTS\n\tfunction _eventPointerClick (e) {\n\t\t//\tget target element\n\t\tlet id = e.target.getAttribute('href').slice(1);\n\t\tlet target = doc.getElementById(id);\n\n\t\t// don't try to apply relevant atts/focus if target isn't present\n\t\tif (!target) return;\n\t\t//\tset tabindex to allow focus\n\t\ttarget.setAttribute('tabindex', -1);\n\t\ttarget.focus();\n\t\t//\tsave target reference\n\t\tcurrTarget = target;\n\t\t//\tbind blur event on target\n\t\t_bindTargetBlur(target);\n\t}\n\tfunction _eventTargetBlur (e) {\n\t\t//\tremove ability to focus (stops user highlighting element on click)\n\t\te.target.removeAttribute('tabindex');\n\t\t//\tremove target reference\n\t\tcurrTarget = null;\n\t\t//\tunbind blur event\n\t\t_unbindTargetBlur(e.target);\n\t}\n\n\n\t//\tBIND EVENTS\n\tfunction _bindPointerClick (link) {\n\t\t//\tbind interaction event\n\t\tlink.addEventListener('click', _eventPointerClick);\n\t}\n\tfunction _bindTargetBlur (target) {\n\t\t//\tbind blur event on target element\n\t\ttarget.addEventListener('blur', _eventTargetBlur);\n\t}\n\n\n\t//\tUNBIND EVENTS\n\tfunction _unbindPointerClick (link) {\n\t\t//\tunbind interaction event\n\t\tlink.removeEventListener('click', _eventPointerClick);\n\t}\n\tfunction _unbindTargetBlur (target) {\n\t\t//\tunbind blur event on target element\n\t\ttarget.removeEventListener('blur', _eventTargetBlur);\n\t}\n\n\n\t//\tINIT\n\tfunction init () {\n\t\t//\tdetect if bypass links exist in the document\n\t\tif (!container) return;\n\t\t//\tloop through each bypass link\n\t\t_q('a', container).forEach(link => {\n\t\t\t_bindPointerClick(link);\n\t\t\t_removeFocusability(link);\n\t\t});\n\t}\n\tinit();\n\n\n\t// REVEAL API\n\treturn {\n\t\tinit,\n\t\tdestroy\n\t}\n}\n\n\n// module exports\nexport default Frbypasslinks;\n\n\n// WEBPACK FOOTER //\n// ./~/fr-bypasslinks/bypasslinks.js","import Frtooltip from 'fr-tooltip'\n\n/* eslint-disable no-unused-vars */\n\nimport stylesheet from 'fr-tooltip/tooltip.css'\n\n/* eslint-enable */\n\nconst opts = {\n // String - Container selector, hook for JS init() method\n selector: '.js-fr-tooltip',\n\n // String - Selector to define the tooltip element\n tooltipSelector: '.js-fr-tooltip-tooltip',\n\n // String - Selector to define the toggle element controlling the tooltip\n toggleSelector: '.js-fr-tooltip-toggle',\n\n // String - Prefix for the id applied to each tooltip as a reference for the toggle\n tooltipIdPrefix: 'tooltip',\n\n // String - Class name that will be added to the selector when the component has been initialised\n readyClass: 'fr-tooltip--is-ready'\n}\n\nconst tooltip = Frtooltip(opts)\n\nexport default {\n tooltip,\n Frtooltip,\n opts\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/tooltip/index.js","'use strict';\n\n// Polyfill matches as per https://github.com/jonathantneal/closest\nElement.prototype.matches = Element.prototype.matches ||\n\t\t\t\t\t\t\tElement.prototype.mozMatchesSelector ||\n\t\t\t\t\t\t\tElement.prototype.msMatchesSelector ||\n\t\t\t\t\t\t\tElement.prototype.oMatchesSelector ||\n\t\t\t\t\t\t\tElement.prototype.webkitMatchesSelector;\n\n/**\n * @param {object} options Object containing configuration overrides\n */\nconst Frtooltip = function ({\n\t\tselector: selector = '.js-fr-tooltip',\n\t\ttooltipSelector: tooltipSelector = '.js-fr-tooltip-tooltip',\n\t\ttoggleSelector: toggleSelector = '.js-fr-tooltip-toggle',\n\t\ttooltipIdPrefix: tooltipIdPrefix = 'tooltip',\n\t\treadyClass: readyClass = 'fr-tooltip--is-ready'\n\t} = {}) {\n\n\n\t// CONSTANTS\n\tconst doc = document;\n\tconst docEl = doc.documentElement;\n\tconst _q = (el, ctx = doc) => [].slice.call(ctx.querySelectorAll(el));\n\n\n\t// SUPPORTS\n\tif (!('querySelector' in doc) || !('addEventListener' in window) || !docEl.classList) return;\n\n\n\t// SETUP\n\tlet tooltipContainers = _q(selector);\n\n\t//\tTEMP\n\tlet currTooltip = null;\n\n\n\t//\tUTILS\n\tfunction _defer (fn) {\n\t\t//\twrapped in setTimeout to delay binding until previous rendering has completed\n\t\tif (typeof fn === 'function') setTimeout(fn, 0);\n\t}\n\tfunction _closest (el, selector) {\n\t\twhile (el) {\n\t\t\tif (el.matches(selector)) break;\n\t\t\tel = el.parentElement;\n\t\t}\n\t\treturn el;\n\t}\n\n\n\t//\tA11Y\n\tfunction _addA11y (container, i) {\n\t\t//\tget relative elements\n\t\tlet toggle = _q(toggleSelector, container)[0];\n\t\tlet tooltip = _q(tooltipSelector, container)[0];\n\t\t//\tcreate new button and replace toggle\n\t\tvar button = doc.createElement('button');\n\t\tbutton.setAttribute('class', toggle.getAttribute('class'));\n\t\tbutton.setAttribute('aria-expanded', 'false');\n\t\tbutton.setAttribute('aria-describedby', '');\n\t\tbutton.textContent = toggle.textContent;\n\t\tcontainer.replaceChild(button, toggle);\n\t\t//\tadd tooltip attributes\n\t\ttooltip.setAttribute('role', 'tooltip');\n\t\ttooltip.setAttribute('id', tooltipIdPrefix + '-' + i);\n\t\ttooltip.setAttribute('aria-hidden', 'true');\n\t\ttooltip.setAttribute('aria-live', 'polite');\n\t}\n\tfunction _removeA11y (container) {\n\t\t//\tget relative elements\n\t\tlet toggle = _q(toggleSelector, container)[0];\n\t\tlet tooltip = _q(tooltipSelector, container)[0];\n\t\t//\tcreate new span and replace toggle\n\t\tvar span = doc.createElement('span');\n\t\tspan.setAttribute('class', toggle.getAttribute('class'));\n\t\tspan.textContent = toggle.textContent;\n\t\tcontainer.replaceChild(span, toggle);\n\t\t//\tremove tooltip attributes\n\t\ttooltip.removeAttribute('role');\n\t\ttooltip.removeAttribute('id');\n\t\ttooltip.removeAttribute('aria-hidden');\n\t\ttooltip.removeAttribute('aria-live');\n\t}\n\n\n\t// ACTIONS\n\tfunction _showTooltip (toggle, tooltip) {\n\t\t//\tassign describedby matching tooltip reference\n\t\tlet tooltipId = tooltip.getAttribute('id');\n\t\ttoggle.setAttribute('aria-describedby', tooltipId);\n\t\t//\tset visible state\n\t\ttoggle.setAttribute('aria-expanded', 'true');\n\t\ttooltip.setAttribute('aria-hidden', 'false');\n\t\t//\tstore temp reference to tooltip\n\t\tcurrTooltip = tooltip;\n\t\t//\tbind doc close events\n\t\t_defer(_bindDocClick);\n\t\t_defer(_bindDocKey);\n\t}\n\tfunction _hideTooltip (toggle, tooltip) {\n\t\t//\tremove tooltip reference\n\t\ttoggle.setAttribute('aria-describedby', '');\n\t\t//\tset visible state\n\t\ttoggle.setAttribute('aria-expanded', 'false');\n\t\ttooltip.setAttribute('aria-hidden', 'true');\n\t\t//\tremove tooltip temp reference\n\t\tcurrTooltip = null;\n\t\t//\tunbind doc close events\n\t\t_unbindDocClick();\n\t\t_unbindDocKey();\n\t}\n\tfunction destroy () {\n\t\ttooltipContainers.forEach((container, i) => {\n\t\t\t_removeA11y(container, i);\n\t\t\t_unbindToggleEvents(container);\n\t\t\tcontainer.classList.remove(readyClass);\n\t\t});\n\t\t//\treset temp references\n\t\tcurrTooltip = null;\n\t\t//\tunbind global events\n\t\t_unbindDocClick();\n\t\t_unbindDocKey();\n\t}\n\n\n\t// EVENTS\n\tfunction _eventTogglePointer (e) {\n\t\t//\tclose any open tooltips\n\t\tif (currTooltip) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t\t//\tget relevant tooltip elements\n\t\tlet toggle = e.target;\n\t\tlet tooltip = toggle.nextElementSibling;\n\t\t//\tshow or hide if toggle is 'expanded'\n\t\tif (toggle.getAttribute('aria-expanded') === 'false') {\n\t\t\t_showTooltip(toggle, tooltip);\n\t\t} else {\n\t\t\t_hideTooltip(toggle, tooltip);\n\t\t}\n\t}\n\tfunction _eventTogglePointerLeave () {\n\t\tif (currTooltip) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t}\n\tfunction _eventDocClick (e) {\n\t\t//\tcheck if target is panel or child of\n\t\tlet isTooltip = e.target === currTooltip;\n\t\tlet isTooltipchild = _closest(e.target, tooltipSelector);\n\t\tif (!isTooltip && !isTooltipchild) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t}\n\tfunction _eventDocKey (e) {\n\t\t//\tesc key\n\t\tif (e.keyCode === 27) _hideTooltip(currTooltip.previousElementSibling, currTooltip);\n\t}\n\n\n\t// BIND EVENTS\n\tfunction _bindToggleEvents (container) {\n\t\tconst toggle = _q(toggleSelector, container)[0];\n\t\ttoggle.addEventListener('click', _eventTogglePointer);\n\t\ttoggle.addEventListener('mouseenter', _eventTogglePointer);\n\t\ttoggle.addEventListener('mouseleave', _eventTogglePointerLeave);\n\t}\n\tfunction _bindDocClick () {\n\t\tdoc.addEventListener('click', _eventDocClick);\n\t\tdoc.addEventListener('touchstart', _eventDocClick);\n\t}\n\tfunction _bindDocKey () {\n\t\tdoc.addEventListener('keydown', _eventDocKey);\n\t}\n\n\n\t//\tUNBIND EVENTS\n\tfunction _unbindToggleEvents (container) {\n\t\tconst toggle = _q(toggleSelector, container)[0];\n\t\ttoggle.removeEventListener('click', _eventTogglePointer);\n\t\ttoggle.removeEventListener('mouseenter', _eventTogglePointer);\n\t\ttoggle.removeEventListener('mouseleave', _eventTogglePointerLeave);\n\t}\n\tfunction _unbindDocClick () {\n\t\tdoc.removeEventListener('click', _eventDocClick);\n\t\tdoc.removeEventListener('touchstart', _eventDocClick);\n\t}\n\tfunction _unbindDocKey () {\n\t\tdoc.removeEventListener('keydown', _eventDocKey);\n\t}\n\n\n\t// INIT\n\tfunction init () {\n\t\tif (!tooltipContainers) return;\n\t\t//\tloop through each tooltip element\n\t\ttooltipContainers.forEach((container, i) => {\n\t\t\t_addA11y(container, i);\n\t\t\t_bindToggleEvents(container);\n\t\t\tcontainer.classList.add(readyClass);\n\t\t});\n\t}\n\tinit();\n\n\n\t// REVEAL API\n\treturn {\n\t\tinit,\n\t\tdestroy\n\t}\n}\n\n\n// module exports\nexport default Frtooltip;\n\n\n// WEBPACK FOOTER //\n// ./~/fr-tooltip/tooltip.js","import $ from 'jquery'\n\n/*\n *\tTODO:\n *\t\t- repack as a frend _component and CSS\n *\t\t- refactor without jQuery\n */\n\n/*\n * Porting of http://www.oaa-accessibility.org/examplep/treeview1/\n */\nconst Treeview = function({\n selector: selector = '.js-Treeview',\n classFocused: classFocused = 'hasFocus',\n classParent: classParent = 'Treeview-parent',\n classMenuHandler: classMenuHandler = 'js-Treeview-handler',\n styleMenuHandler: styleMenuHandler = 'Treeview-handler--default',\n styleMenuHandlerStandalone: styleMenuHandlerStandalone = 'Treeview-handler--standalone',\n ariaLabelHandler: ariaLabelHandler = 'expand',\n multiselectable: multiselectable = true,\n animationMs: animationMs = 100,\n} = {}) {\n\n const keys = {\n tab: 9,\n enter: 13,\n space: 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n asterisk: 106\n }\n\n function _collapseAll(treeview) {\n treeview.$parents.each(function() {\n if ($(this).attr('aria-expanded') == 'false') {\n $(this).children('ul').attr('aria-hidden', 'true')\n }\n })\n treeview.$visibleItems = treeview.$el.find('li:visible')\n }\n\n function _expandGroup(treeview, $item) {\n let $group = $item.children('ul')\n $group.slideDown(animationMs, () => {\n $group.attr('aria-hidden', 'false')\n $item.attr('aria-expanded', 'true')\n treeview.$visibleItems = treeview.$el.find('li:visible')\n })\n }\n\n function _collapseGroup(treeview, $item) {\n let $group = $item.children('ul')\n $group.slideUp(animationMs, () => {\n $group.attr('aria-hidden', 'true')\n $item.attr('aria-expanded', 'false')\n treeview.$visibleItems = treeview.$el.find('li:visible')\n })\n }\n\n function _collapseSiblings(treeview, $item) {\n $item.closest('ul')\n .find('> .' + classParent)\n .not($item)\n .each((i, el) => {\n _collapseGroup(treeview, $(el))\n })\n }\n\n function _toggleGroup(treeview, $item) {\n if (!multiselectable) {\n _collapseSiblings(treeview, $item)\n }\n if ($item.attr('aria-expanded') == 'true') {\n _collapseGroup(treeview, $item)\n } else {\n _expandGroup(treeview, $item)\n }\n }\n\n function _updateStyling(treeview, $item) {\n treeview.$items.removeClass(classFocused).attr('tabindex', '-1')\n $item.addClass(classFocused).attr('tabindex', '0')\n }\n\n function _handleKeyDown(treeview, $item, e) {\n let curNdx = treeview.$visibleItems.index($item)\n\n if ((e.altKey || e.ctrlKey) ||\n (e.shiftKey && e.keyCode != keys.tab)) {\n return true\n }\n\n // if (!$(e.currentTarget).is('.' + classMenuHandler)) {\n // return true\n // }\n\n switch (e.keyCode) {\n case keys.tab:\n {\n treeview.$activeItem = null\n $item.removeClass(classFocused)\n return true\n }\n\n case keys.home:\n {\n treeview.$activeItem = treeview.$parents.first()\n treeview.$activeItem.find(':focusable:first').focus()\n e.stopPropagation()\n return false\n }\n\n case keys.end:\n {\n treeview.$activeItem = treeview.$visibleItems.last()\n treeview.$activeItem.find(':focusable:first').focus()\n e.stopPropagation()\n return false\n }\n\n case keys.enter:\n case keys.space:\n {\n if ($(e.currentTarget).is('.' + classMenuHandler)) {\n _toggleGroup(treeview, $item)\n e.stopPropagation()\n return false\n }\n return true\n }\n\n case keys.left:\n {\n if ($item.is('.' + classParent) && $item.attr('aria-expanded') == 'true') {\n _collapseGroup(treeview, $item)\n } else {\n let $itemUL = $item.parent()\n let $itemParent = $itemUL.parent()\n treeview.$activeItem = $itemParent\n treeview.$activeItem.find(':focusable:first').focus()\n }\n e.stopPropagation()\n return false\n }\n\n case keys.right:\n {\n if (!$item.is('.' + classParent)) {\n // do nothing\n } else if ($item.attr('aria-expanded') == 'false') {\n _expandGroup(treeview, $item)\n } else {\n treeview.$activeItem = $item.children('ul').children('li').first()\n treeview.$activeItem.find(':focusable:first').focus()\n }\n e.stopPropagation()\n return false\n }\n\n case keys.up:\n {\n if (curNdx > 0) {\n let $prev = treeview.$visibleItems.eq(curNdx - 1)\n treeview.$activeItem = $prev\n $prev.find(':focusable:first').focus()\n }\n e.stopPropagation()\n return false\n }\n\n case keys.down:\n {\n if (curNdx < treeview.$visibleItems.length - 1) {\n let $next = treeview.$visibleItems.eq(curNdx + 1)\n treeview.$activeItem = $next\n $next.find(':focusable:first').focus()\n }\n e.stopPropagation()\n return false\n }\n\n case keys.asterisk:\n {\n treeview.$parents.each(function() {\n _expandGroup(treeview, $(this))\n })\n e.stopPropagation()\n return false\n }\n\n }\n return true\n }\n\n function _handleKeyPress(treeview, $item, e) {\n if (e.altKey || e.ctrlKey || e.shiftKey) {\n // do nothing\n return true\n }\n\n switch (e.keyCode) {\n case keys.tab:\n {\n return true\n }\n case keys.enter:\n case keys.home:\n case keys.end:\n case keys.left:\n case keys.right:\n case keys.up:\n case keys.down:\n {\n e.stopPropagation()\n return false\n }\n default:\n {\n let chr = String.fromCharCode(e.which)\n let bMatch = false\n let itemNdx = treeview.$visibleItems.index($item)\n let itemCnt = treeview.$visibleItems.length\n let curNdx = itemNdx + 1\n\n // check if the active item was the last one on the list\n if (curNdx == itemCnt) {\n curNdx = 0\n }\n\n // Iterate through the menu items (starting from the current item and wrapping) until a match is found\n // or the loop returns to the current menu item\n while (curNdx != itemNdx) {\n\n let $curItem = treeview.$visibleItems.eq(curNdx)\n let titleChr = $curItem.text().charAt(0)\n\n if ($curItem.is('.' + classParent)) {\n titleChr = $curItem.find('span').text().charAt(0)\n }\n\n if (titleChr.toLowerCase() == chr) {\n bMatch = true\n break\n }\n\n curNdx = curNdx + 1\n\n if (curNdx == itemCnt) {\n // reached the end of the list, start again at the beginning\n curNdx = 0\n }\n }\n\n if (bMatch == true) {\n treeview.$activeItem = treeview.$visibleItems.eq(curNdx)\n treeview.$activeItem.find(':focusable:first').focus()\n }\n\n e.stopPropagation()\n return false\n }\n }\n\n return true\n }\n\n function _handleClick(treeview, $item, e) {\n if (e.altKey || e.ctrlKey || e.shiftKey) {\n // do nothing\n return true\n }\n\n // closest('li')\n const $parent = $item.closest('li')\n\n treeview.$activeItem = $parent\n _updateStyling(treeview, $parent)\n _toggleGroup(treeview, $parent)\n\n e.stopPropagation()\n return false\n }\n\n function _bindEvents(treeview) {\n treeview.$handlers.click(function(e) {\n return _handleClick(treeview, $(this), e)\n })\n\n treeview.$items.keydown(function(e) {\n return _handleKeyDown(treeview, $(this), e)\n })\n\n treeview.$items.keypress(function(e) {\n return _handleKeyPress(treeview, $(this), e)\n })\n\n treeview.$handlers.keydown(function(e) {\n return _handleKeyDown(treeview, $(this).closest('li'), e)\n })\n\n treeview.$handlers.keypress(function(e) {\n return _handleKeyPress(treeview, $(this).closest('li'), e)\n })\n\n $(document).click(function() {\n if (treeview.$activeItem != null) {\n treeview.$activeItem.removeClass(classFocused)\n treeview.$activeItem = null\n }\n return true\n })\n }\n\n function destroy() {\n /* TODO */\n }\n\n function _addA11y($el) {\n $el.attr('role', 'tree')\n\n // Put role=\"treeitem\" on every LI\n // Put aria-expanded=\"false\" on every LI (if it has no aria-expanded attr)\n // Put tabindex=\"-1\" on every LI (if it's not the first one)\n // Put class=