vendor: 4,591 bytes, lines 1-119
1/******/ (function(modules) { // webpackBootstrap 2/******/ // install a JSONP callback for chunk loading 3/******/ function webpackJsonpCallback(data) { 4/******/ var chunkIds = data[0]; 5/******/ var moreModules = data[1]; 6/******/ var executeModules = data[2]; 7/******/ 8/******/ // add "moreModules" to the modules object, 9/******/ // then flag all "chunkIds" as loaded and fire callback 10/******/ var moduleId, chunkId, i = 0, resolves = []; 11/******/ for(;i < chunkIds.length; i++) { 12/******/ chunkId = chunkIds[i]; 13/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { 14/******/ resolves.push(installedChunks[chunkId][0]); 15/******/ } 16/******/ installedChunks[chunkId] = 0; 17/******/ } 18/******/ for(moduleId in moreModules) { 19/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { 20/******/ modules[moduleId] = moreModules[moduleId]; 21/******/ } 22/******/ } 23/******/ if(parentJsonpFunction) parentJsonpFunction(data); 24/******/ 25/******/ while(resolves.length) { 26/******/ resolves.shift()(); 27/******/ } 28/******/ 29/******/ // add entry modules from loaded chunk to deferred list 30/******/ deferredModules.push.apply(deferredModules, executeModules || []); 31/******/ 32/******/ // run deferred modules when all chunks ready 33/******/ return checkDeferredModules(); 34/******/ }; 35/******/ function checkDeferredModules() { 36/******/ var result; 37/******/ for(var i = 0; i < deferredModules.length; i++) { 38/******/ var deferredModule = deferredModules[i]; 39/******/ var fulfilled = true; 40/******/ for(var j = 1; j < deferredModule.length; j++) { 41/******/ var depId = deferredModule[j]; 42/******/ if(installedChunks[depId] !== 0) fulfilled = false; 43/******/ } 44/******/ if(fulfilled) { 45/******/ deferredModules.splice(i--, 1); 46/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); 47/******/ } 48/******/ } 49/******/ 50/******/ return result; 51/******/ } 52/******/ 53/******/ // The module cache 54/******/ var installedModules = {}; 55/******/ 56/******/ // object to store loaded and loading chunks 57/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched 58/******/ // Promise = chunk loading, 0 = chunk loaded 59/******/ var installedChunks = { 60/******/ "main": 0 61/******/ }; 62/******/ 63/******/ var deferredModules = []; 64/******/ 65/******/ // The require function 66/******/ function __webpack_require__(moduleId) { 67/******/ 68/******/ // Check if module is in cache 69/******/ if(installedModules[moduleId]) { 70/******/ return installedModules[moduleId].exports; 71/******/ } 72/******/ // Create a new module (and put it into the cache) 73/******/ var module = installedModules[moduleId] = { 74/******/ i: moduleId, 75/******/ l: false, 76/******/ exports: {} 77/******/ }; 78/******/ 79/******/ // Execute the module function 80/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 81/******/ 82/******/ // Flag the module as loaded 83/******/ module.l = true; 84/******/ 85/******/ // Return the exports of the module 86/******/ return module.exports; 87/******/ } 88/******/ 89/******/ 90/******/ // expose the modules object (__webpack_modules__) 91/******/ __webpack_require__.m = modules; 92/******/ 93/******/ // expose the module cache 94/******/ __webpack_require__.c = installedModules; 95/******/ 96/******/ // define getter function for harmony exports 97/******/ __webpack_require__.d = function(exports, name, getter) { 98/******/ if(!__webpack_require__.o(exports, name)) { 99/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 100/******/ } 101/******/ }; 102/******/ 103/******/ // define __esModule on exports 104/******/ __webpack_require__.r = function(exports) { 105/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 106/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 107/******/ } 108/******/ Object.defineProperty(exports, '__esModule', { value: true }); 109/******/ }; 110/******/ 111/******/ // create a fake namespace object 112/******/ // mode & 1: value is a module id, require it 113/******/ // mode & 2: merge all properties of value into the ns 114/******/ // mode & 4: return value when already ns object 115/******/ // mode & 8|1: behave like require 116/******/ __webpack_require__.t = function(value, mode) { 117/******/ if(mode & 1) value = __webpack_require__(value); 118/******/ if(mode & 8) return value; 119/******/ if((mode & 4) && typeof value === 'object' && value && value.__esMo
119dule) return value; 120/******/ var ns = Object.create(null); 121/******/ __webpack_require__.r(ns); 122/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 123/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 124/******/ return ns; 125/******/ }; 126/******/ 127/******/ // getDefaultExport function for compatibility with non-harmony modules 128/******/ __webpack_require__.n = function(module) { 129/******/ var getter = module && module.__esModule ? 130/******/ function getDefault() { return module['default']; } : 131/******/ function getModuleExports() { return module; }; 132/******/ __webpack_require__.d(getter, 'a', getter); 133/******/ return getter; 134/******/ }; 135/******/ 136/******/ // Object.prototype.hasOwnProperty.call 137/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 138/******/ 139/******/ // __webpack_public_path__ 140/******/ __webpack_require__.p = ""; 141/******/ 142/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; 143/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); 144/******/ jsonpArray.push = webpackJsonpCallback; 145/******/ jsonpArray = jsonpArray.slice(); 146/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); 147/******/ var parentJsonpFunction = oldJsonpFunction; 148/******/ 149/******/ 150/******/ // add entry module to deferred list 151/******/ deferredModules.push(["./src/js/index.js","vendor"]); 152/******/ // run deferred modules when ready 153/******/ return checkDeferredModules(); 154/******/ }) 155/************************************************************************/ 156/******/ ({ 157
158/***/ "./src/js/index.js": 159/*!*************************!*\ 160 !*** ./src/js/index.js ***! 161 \*************************/ 162/*! no static exports found */ 163/***/ (function(module, exports, __webpack_require__) { 164 165"use strict"; 166 167 168__webpack_require__(/*! core-js/fn/array/from */ "./node_modules/core-js/fn/array/from.js"); 169 170__webpack_require__(/*! core-js/fn/promise */ "./node_modules/core-js/fn/promise.js"); 171 172var _flickity = __webpack_require__(/*! flickity */ "./node_modules/flickity/js/index.js"); 173 174var _flickity2 = _interopRequireDefault(_flickity); 175 176var _Animation = __webpack_require__(/*! nfx-design-system/js/modules/Animation */ "./node_modules/nfx-design-system/js/modules/Animation.js"); 177 178var _Animation2 = _interopRequireDefault(_Animation); 179 180var _Modal = __webpack_require__(/*! ./modules/Modal */ "./src/js/modules/Modal.js"); 181 182var _Modal2 = _interopRequireDefault(_Modal); 183 184var _Analytics = __webpack_require__(/*! nfx-design-system/js/modules/Analytics */ "./node_modules/nfx-design-system/js/modules/Analytics.js"); 185 186var _Analytics2 = _interopRequireDefault(_Analytics); 187 188var _Tabs = __webpack_require__(/*! ./modules/Tabs */ "./src/js/modules/Tabs.js"); 189 190var _Tabs2 = _interopRequireDefault(_Tabs); 191 192var _Accordion = __webpack_require__(/*! ./modules/Accordion */ "./src/js/modules/Accordion.js"); 193 194var _Accordion2 = _interopRequireDefault(_Accordion); 195 196var _SmoothScroll = __webpack_require__(/*! ./modules/SmoothScroll */ "./src/js/modules/SmoothScroll.js"); 197 198var _SmoothScroll2 = _interopRequireDefault(_SmoothScroll); 199 200var _MobileNavigation = __webpack_require__(/*! ./modules/MobileNavigation */ "./src/js/modules/MobileNavigation.js"); 201 202var _MobileNavigation2 = _interopRequireDefault(_MobileNavigation); 203 204var _Dropdown = __webpack_require__(/*! ./modules/Dropdown */ "./src/js/modules/Dropdown.js"); 205 206var _Dropdown2 = _interopRequireDefault(_Dropdown); 207 208var _Video = __webpack_require__(/*! ./modules/Video */ "./src/js/modules/Video.js"); 209 210var _Video2 = _interopRequireDefault(_Video); 211 212var _Redirect = __webpack_require__(/*! ./modules/Redirect */ "./src/js/modules/Redirect.js"); 213 214var _Redirect2 = _interopRequireDefault(_Redirect); 215 216function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 217 218_Tabs2.default.init(); 219_Accordion2.default.init(); 220_SmoothScroll2.default.init(); 221_MobileNavigation2.default.init(); 222_Dropdown2.default.init(); 223_Modal2.default.init(); 224_Animation2.default.init(); 225_Video2.default.init(); 226_Redirect2.default.init(); 227 228var analytics = new _Analytics2.default(function (event) { 229 window.dataLayer = window.dataLayer || []; 230 window.dataLayer.push(event); 231}); 232 233analytics.addCustomEvent('#account-teaser .teaser', '.button.is-primary', 'Call to Action', '', '.interest', true, true); 234analytics.addCustomEvent('body', '[data-modal-open="#modal-contact"]', 'Call to Action', 'Kontaktaufnahme', 'Kontaktformular'); 235analytics.addCustomEvent('body', '.link.icon-banking', 'Button', 'E-Banking-Login'); 236analytics.init(); 237 238var ua = window.navigator.userAgent; 239var trident = ua.indexOf('Trident/'); 240 241if (trident > 0) { 242 document.querySelector('body').classList.add('is-ie'); 243} 244 245var flickityOptions = { 246 wrapAround: true, 247 draggable: false, 248 selectedAttraction: 0.01, 249 friction: 0.15 250}; 251 252if (window.innerWidth > 1024) { 253 flickityOptions.autoPlay = 4000; 254} 255 256if (document.querySelector('.js-slider')) { 257 new _flickity2.default('.js-slider', flickityOptions); 258} 259 260document.addEventListener('DOMContentLoaded', function () { 261 document.querySelector('body').classList.add('slider-ready'); 262}); 263 264/***/ }), 265
266/***/ "./src/js/modules/Accordion.js": 267/*!*************************************!*\ 268 !*** ./src/js/modules/Accordion.js ***! 269 \*************************************/ 270/*! no static exports found */ 271/***/ (function(module, exports, __webpack_require__) { 272 273"use strict"; 274 275 276Object.defineProperty(exports, "__esModule", { 277 value: true 278}); 279var Accordion = { 280 init: function init() { 281 var accordionContainer = document.querySelectorAll('[data-accordion]'); 282 283 if (!accordionContainer) { 284 return; 285 } 286 287 var _loop = function _loop(container) { 288 accordionContainer[container].titles = accordionContainer[container].querySelectorAll('[data-accordion-title]'); 289 290 accordionContainer[container].addEventListener('keydown', function (event) { 291 if (event.key === ' ') { 292 event.preventDefault(); 293 event.target.click(); 294 } 295 }); 296 297 accordionContainer[container].addEventListener('click', function (event) { 298 var element = event.target; 299 300 if (!element.dataset.hasOwnProperty('accordionTitle')) { 301 return; 302 } 303 304 for (var title = 0; title < accordionContainer[container].titles.length; title++) { 305 if (accordionContainer[container].titles[title] !== element) { 306 accordionContainer[container].titles[title].classList.remove('is-active'); 307 accordionContainer[container].titles[title].setAttribute('aria-expanded', 'false'); 308 accordionContainer[container].titles[title].nextElementSibling.toggleAttribute('inert'); 309 } 310 } 311 312 element.classList.toggle('is-active'); 313 element.setAttribute('aria-expanded', 'true'); 314 element.nextElementSibling.toggleAttribute('inert'); 315 }); 316 }; 317 318 for (var container = 0; container < accordionContainer.length; container++) { 319 _loop(container); 320 } 321 } 322}; 323 324exports.default = Accordion; 325 326/***/ }), 327
328/***/ "./src/js/modules/Dropdown.js": 329/*!************************************!*\ 330 !*** ./src/js/modules/Dropdown.js ***! 331 \************************************/ 332/*! no static exports found */ 333/***/ (function(module, exports, __webpack_require__) { 334 335"use strict"; 336 337 338Object.defineProperty(exports, "__esModule", { 339 value: true 340}); 341 342var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 343 344function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 345 346var Dropdown = function () { 347 function Dropdown() { 348 _classCallCheck(this, Dropdown); 349 350 this.activeDropdown = null; 351 } 352 353 _createClass(Dropdown, [{ 354 key: 'init', 355 value: function init() { 356 this.bindClickEvents(); 357 this.bindKeyboardEvents(); 358 this.initializeDropdowns(); 359 } 360 }, { 361 key: 'initializeDropdowns', 362 value: function initializeDropdowns() { 363 // Set all dropdown content to inert by default 364 var dropdowns = document.querySelectorAll('.navbar-dropdown'); 365 dropdowns.forEach(function (dropdown) { 366 if (dropdown.querySelector('[data-dropdown-group]')) { 367 dropdown.setAttribute('inert', ''); 368 } 369 }); 370 } 371 }, { 372 key: 'bindClickEvents', 373 value: function bindClickEvents() { 374 document.addEventListener('click', this.handleClick.bind(this)); 375 } 376 }, { 377 key: 'bindKeyboardEvents', 378 value: function bindKeyboardEvents() { 379 document.addEventListener('keydown', this.handleKeydown.bind(this)); 380 } 381 }, { 382 key: 'handleKeydown', 383 value: function handleKeydown(event) { 384 var element = event.target; 385 386 if (event.key === 'Enter' && element.dataset.hasOwnProperty('dropdownOpen')) { 387 event.preventDefault(); 388 this.open(element); 389 } else if (event.key === 'Escape' && this.activeDropdown) { 390 this.closeAll(this.activeDropdown.dataset.dropdownGroup || false); 391 } 392 } 393 }, { 394 key: 'handleClick', 395 value: function handleClick(event) { 396 var element = event.target; 397 398 if (element.dataset.hasOwnProperty('dropdownOpen')) { 399 this.open(element); 400 } else if (this.activeDropdown && !this.activeDropdown.contains(element)) { 401 this.closeAll(this.activeDropdown.dataset.dropdownGroup || false); 402 } 403 } 404 }, { 405 key: 'open', 406 value: function open(element) { 407 var target = document.querySelector(element.dataset.dropdownOpen); 408 409 if (target) { 410 if (target === this.activeDropdown) { 411 this.closeAll(this.activeDropdown.dataset.dropdownGroup || false); 412 return; 413 } 414 415 var group = target.dataset.dropdownGroup || false; 416 417 this.closeAll(group); 418 element.parentElement.classList.add('is-active'); 419 target.classList.add('is-active'); 420 421 // Remove inert attribute from dropdown content 422 target.removeAttribute('inert'); 423 424 this.activeDropdown = target; 425 } 426 } 427 }, { 428 key: 'closeAll', 429 value: function closeAll(group) { 430 if (group) { 431 var dropdownElements = document.querySelectorAll('[data-dropdown-group="' + group + '"]'); 432 433 for (var i = 0; i < dropdownElements.length; i++) { 434 dropdownElements[i].classList.remove('is-active'); 435 436 // Add inert attribute to dropdown content 437 if (dropdownElements[i].querySelector('[data-dropdown-group]')) { 438 dropdownElements[i].querySelector('.navbar-dropdown').setAttribute('inert', ''); 439 } 440 } 441 442 this.activeDropdown = null; 443 } 444 } 445 }]); 446 447 return Dropdown; 448}(); 449 450exports.default = new Dropdown(); 451 452/***/ }), 453
454/***/ "./src/js/modules/MobileNavigation.js": 455/*!********************************************!*\ 456 !*** ./src/js/modules/MobileNavigation.js ***! 457 \********************************************/ 458/*! no static exports found */ 459/***/ (function(module, exports, __webpack_require__) { 460 461"use strict"; 462 463 464Object.defineProperty(exports, "__esModule", { 465 value: true 466}); 467 468var _focusTrap = __webpack_require__(/*! focus-trap */ "./node_modules/focus-trap/dist/focus-trap.esm.js"); 469 470var focusTrap = _interopRequireWildcard(_focusTrap); 471 472function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } 473 474var MobileNavigation = { 475 init: function init() { 476 var burger = document.querySelector('.burger'); 477 var nav = document.querySelector('#' + burger.dataset.target); 478 var search = document.querySelector('.navbar-item.mobile-search a'); 479 480 var trap = focusTrap.createFocusTrap(nav); 481 482 if (!burger) { 483 return; 484 } 485 486 burger.addEventListener('click', function () { 487 burger.classList.toggle('is-active'); 488 nav.classList.toggle('is-active'); 489 490 if (burger.classList.contains('is-active')) { 491 trap.activate(); 492 } else { 493 trap.deactivate(); 494 } 495 }); 496 497 burger.addEventListener('keydown', function (event) { 498 if (event.key === 'Enter') { 499 burger.click(); 500 } 501 }); 502 503 search.addEventListener('keydown', function (event) { 504 if (event.key === 'Enter') { 505 document.location.href = '/dynamic-search/default/search'; 506 } 507 }); 508 } 509}; 510 511exports.default = MobileNavigation; 512 513/***/ }), 514
515/***/ "./src/js/modules/Modal.js": 516/*!*********************************!*\ 517 !*** ./src/js/modules/Modal.js ***! 518 \*********************************/ 519/*! no static exports found */ 520/***/ (function(module, exports, __webpack_require__) { 521 522"use strict"; 523 524 525Object.defineProperty(exports, "__esModule", { 526 value: true 527}); 528 529var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 530 531var _focusTrap = __webpack_require__(/*! focus-trap */ "./node_modules/focus-trap/dist/focus-trap.esm.js"); 532 533var focusTrap = _interopRequireWildcard(_focusTrap); 534 535function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } 536 537function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 538 539var Modal = function () { 540 function Modal() { 541 _classCallCheck(this, Modal); 542 543 this.activeModal = null; 544 this.traps = new Map(); 545 } 546 547 _createClass(Modal, [{ 548 key: 'init', 549 value: function init() { 550 this.bindEvents(); 551 } 552 }, { 553 key: 'bindEvents', 554 value: function bindEvents() { 555 this.html = document.querySelector('html'); 556 557 document.addEventListener('click', this.handleClick.bind(this)); 558 document.addEventListener('keydown', this.handleKeydown.bind(this)); 559 this.createTraps(); 560 } 561 }, { 562 key: 'handleClick', 563 value: function handleClick(event) { 564 var element = event.target; 565 566 if (element.classList.contains('modal-close')) { 567 this.close(); 568 } 569 570 if (this.activeModal && !this.activeModal.querySelector('.modal-content').contains(element)) { 571 this.close(); 572 } 573 574 if (element.hasAttribute('href') && element.getAttribute('href').indexOf('#modal') !== -1) { 575 event.preventDefault(); 576 this.open(element); 577 } 578 } 579 }, { 580 key: 'handleKeydown', 581 value: function handleKeydown(event) { 582 if (event.key === 'Escape') { 583 this.close(); 584 } 585 } 586 }, { 587 key: 'open', 588 value: function open(element) { 589 var target = document.querySelector(element.getAttribute('href')); 590 591 if (target) { 592 //this.html.classList.add('is-clipped'); 593 target.classList.add('is-active'); 594 595 this.activeModal = target; 596 var trap = this.traps.get(target); 597 trap.activate(); 598 } 599 } 600 }, { 601 key: 'close', 602 value: function close() { 603 var _this = this; 604 605 var target = document.querySelector('.modal.is-active'); 606 607 if (target) { 608 var trap = this.traps.get(target); 609 trap.deactivate(); 610 target.classList.add('is-closing'); 611 612 var videoEl = target.querySelector('iframe'); 613 614 setTimeout(function () { 615 _this.html.classList.remove('is-clipped'); 616 target.classList.remove('is-active'); 617 target.classList.remove('is-closing'); 618 619 if (videoEl) { 620 var oVideoSrc = videoEl.src; 621 videoEl.src = ''; 622 videoEl.src = oVideoSrc; 623 } 624 }, 400); 625 626 this.activeModal = null; 627 } 628 } 629 }, {
630 key: 'createTraps', 631 value: function createTraps() { 632 var _this2 = this; 633 634 var modals = document.querySelectorAll('.modal'); 635 if (modals.length > 0) { 636 modals.forEach(function (modal) { 637 var trap = focusTrap.createFocusTrap(modal, { escapeDeactivates: false }); 638 _this2.traps.set(modal, trap); 639 }); 640 } 641 } 642 }]); 643 644 return Modal; 645}(); 646 647exports.default = new Modal(); 648 649/***/ }), 650
651/***/ "./src/js/modules/Redirect.js": 652/*!************************************!*\ 653 !*** ./src/js/modules/Redirect.js ***! 654 \************************************/ 655/*! no static exports found */ 656/***/ (function(module, exports, __webpack_require__) { 657 658"use strict"; 659 660 661Object.defineProperty(exports, "__esModule", { 662 value: true 663}); 664 665var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 666 667function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 668 669var Redirect = function () { 670 function Redirect() { 671 _classCallCheck(this, Redirect); 672 673 this.targetAnchor = document.querySelector('.js-redirect-url'); 674 } 675 676 _createClass(Redirect, [{ 677 key: 'init', 678 value: function init() { 679 var body = document.querySelector('body'); 680 681 body.addEventListener('click', this.handleClick.bind(this)); 682 } 683 }, { 684 key: 'handleClick', 685 value: function handleClick(event) { 686 var element = event.target; 687 var counter = 5; 688 689 if (document.querySelector('.js-redirect-count')) { 690 document.querySelector('.js-redirect-count').textContent = counter; 691 } 692 693 if (element.classList.contains('js-redirect')) { 694 event.preventDefault(); 695 696 var href = element.getAttribute('href'); 697 698 this.targetAnchor.href = href; 699 700 var counterInterval = setInterval(function () { 701 document.querySelector('.js-redirect-count').textContent = --counter; 702 703 if (counter <= 0) { 704 clearInterval(counterInterval); 705 document.querySelector('.modal.is-active').classList.remove('is-active'); 706 document.location.href = href; 707 } 708 }, 1000); 709 } 710 } 711 }]); 712 713 return Redirect; 714}(); 715 716exports.default = new Redirect(); 717 718/***/ }), 719
720/***/ "./src/js/modules/SmoothScroll.js": 721/*!****************************************!*\ 722 !*** ./src/js/modules/SmoothScroll.js ***! 723 \****************************************/ 724/*! no static exports found */ 725/***/ (function(module, exports, __webpack_require__) { 726 727"use strict"; 728 729 730Object.defineProperty(exports, "__esModule", { 731 value: true 732}); 733 734var _smoothscrollPolyfill = __webpack_require__(/*! smoothscroll-polyfill */ "./node_modules/smoothscroll-polyfill/dist/smoothscroll.js"); 735 736var _smoothscrollPolyfill2 = _interopRequireDefault(_smoothscrollPolyfill); 737 738function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 739 740var SmoothScroll = { 741 init: function init() { 742 _smoothscrollPolyfill2.default.polyfill(); 743 744 var headerHeight = document.querySelector("header").getBoundingClientRect().height; 745 746 if (document.location.hash.length > 0 && document.location.hash.indexOf("#modal") === -1) { 747 var target = document.querySelector(document.location.hash.replace("scrollto-", "")); 748 749 if (target) { 750 var position = void 0; 751 var clientRect = target.getBoundingClientRect(); 752 753 if (target.classList.contains("is-visible")) { 754 position = target.getBoundingClientRect().top + window.pageYOffset - headerHeight; 755 } else { 756 position = target.getBoundingClientRect().top + window.pageYOffset - headerHeight - clientRect.height; 757 } 758 759 window.scrollTo({ 760 top: position, 761 behavior: "smooth" 762 }); 763 } 764 } 765 766 document.addEventListener("click", function (event) { 767 var element = event.target; 768 769 if (element.nodeName === "A" && element.hasAttribute("href") && element.getAttribute("href").indexOf("#") === 0 && element.getAttribute("href").indexOf("#modal") === -1 && element.getAttribute("href").indexOf("#main") === -1) { 770 event.preventDefault(); 771 772 var _target = document.querySelector(event.target.getAttribute("href")); 773 774 if (_target) { 775 var _position = void 0; 776 var _clientRect = _target.getBoundingClientRect(); 777 778 if (_target.classList.contains("is-visible")) { 779 _position = _target.getBoundingClientRect().top + window.pageYOffset - headerHeight; 780 } else { 781 _position = _target.getBoundingClientRect().top + window.pageYOffset - headerHeight - _clientRect.height; 782 } 783 784 window.scrollTo({ 785 top: _position, 786 behavior: "smooth" 787 }); 788 789 _target.focus(); 790 791 if (_target.id.indexOf("faq") !== -1) { 792 var focusableElements = _target.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); 793 if (focusableElements.length > 0) { 794 focusableElements[0].focus(); 795 } 796 _target.focus(); 797 } 798 } 799 } 800 }); 801 } 802}; 803 804exports.default = SmoothScroll; 805 806/***/ }), 807
808/***/ "./src/js/modules/Tabs.js": 809/*!********************************!*\ 810 !*** ./src/js/modules/Tabs.js ***! 811 \********************************/ 812/*! no static exports found */ 813/***/ (function(module, exports, __webpack_require__) { 814 815"use strict"; 816 817 818Object.defineProperty(exports, "__esModule", { 819 value: true 820}); 821var Tabs = { 822 init: function init() { 823 var tabContainer = document.querySelector('[data-tabs]'); 824 var tabs = document.querySelectorAll('[data-tab]'); 825 var tabPanels = document.querySelectorAll('[data-tab-content]'); 826 var firstTab = tabs[0]; 827 var firstTabPanel = tabPanels[0]; 828 var lastTab = tabs[tabs.length - 1]; 829 var lastTabPanel = tabPanels[tabPanels.length - 1]; 830 831 if (!tabContainer) { 832 return; 833 } 834 835 tabContainer.addEventListener('click', function (event) { 836 var tabLink = event.target; 837 var tab = tabLink.parentNode; 838 839 if (tab.dataset.hasOwnProperty('tab')) { 840 for (var i = 0; i < tabPanels.length; i++) { 841 tabPanels[i].classList.remove('is-active'); 842 } 843 844 for (var _i = 0; _i < tabs.length; _i++) { 845 tabs[_i].classList.remove('is-active'); 846 tabs[_i].setAttribute('tabindex', '-1'); 847 } 848 849 document.querySelector('#' + tab.dataset.target).classList.add('is-active'); 850 tab.classList.add('is-active'); 851 tab.setAttribute('tabindex', '0'); 852 tab.focus(); 853 } 854 }); 855 856 tabContainer.addEventListener('keydown', function (event) { 857 if (event.key === 'ArrowRight') { 858 var currentTab = document.querySelector('[role="tab"][aria-selected="true"]'); 859 var currentTabPanel = document.querySelector('#' + currentTab.dataset.target); 860 var nextTab = currentTab.nextElementSibling; 861 862 currentTab.classList.remove('is-active'); 863 currentTab.setAttribute('tabindex', '-1'); 864 currentTab.setAttribute('aria-selected', 'false'); 865 currentTabPanel.classList.remove('is-active'); 866 currentTabPanel.setAttribute('aria-hidden', 'true'); 867 event.preventDefault(); 868 869 if (nextTab) { 870 var nextTabPanel = document.querySelector('#' + nextTab.dataset.target); 871 nextTab.focus(); 872 nextTab.classList.add('is-active'); 873 nextTab.setAttribute('aria-selected', 'true'); 874 nextTab.setAttribute('tabindex', '0'); 875 nextTabPanel.classList.add('is-active'); 876 nextTabPanel.setAttribute('aria-hidden', 'false'); 877 } else { 878 firstTab.focus(); 879 firstTab.classList.add('is-active'); 880 firstTab.setAttribute('aria-selected', 'true'); 881 firstTab.setAttribute('tabindex', '0'); 882 firstTabPanel.classList.add('is-active'); 883 firstTabPanel.setAttribute('aria-hidden', 'false'); 884 } 885 } 886 887 if (event.key === 'ArrowLeft') { 888 var _currentTab = document.querySelector('[role="tab"][aria-selected="true"]'); 889 var _currentTabPanel = document.querySelector('#' + _currentTab.dataset.target); 890 var previousTab = _currentTab.previousElementSibling; 891 892 _currentTab.classList.remove('is-active'); 893 _currentTab.setAttribute('aria-selected', 'false'); 894 _currentTab.setAttribute('tabindex', '-1'); 895 _currentTabPanel.classList.remove('is-active'); 896 _currentTabPanel.setAttribute('aria-hidden', 'true'); 897 event.preventDefault(); 898 899 if (previousTab) { 900 var previousTabPanel = document.querySelector('#' + previousTab.dataset.target); 901 previousTab.focus(); 902 previousTab.classList.add('is-active'); 903 previousTab.setAttribute('aria-selected', 'true'); 904 previousTab.setAttribute('tabindex', '0'); 905 previousTabPanel.classList.add('is-active'); 906 previousTabPanel.setAttribute('aria-hidden', 'false'); 907 } else { 908 lastTab.focus(); 909 lastTab.classList.add('is-active'); 910 lastTab.setAttribute('aria-selected', 'true'); 911 lastTab.setAttribute('tabindex', '0'); 912 lastTabPanel.classList.add('is-active'); 913 lastTabPanel.setAttribute('aria-hidden', 'false'); 914 } 915 } 916 }); 917 } 918}; 919 920exports.default = Tabs; 921 922/***/ }), 923
924/***/ "./src/js/modules/Video.js": 925/*!*********************************!*\ 926 !*** ./src/js/modules/Video.js ***! 927 \*********************************/ 928/*! no static exports found */ 929/***/ (function(module, exports, __webpack_require__) { 930 931"use strict"; 932 933 934Object.defineProperty(exports, "__esModule", { 935 value: true 936}); 937 938var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 939 940function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 941 942var Video = function () { 943 function Video() { 944 _classCallCheck(this, Video); 945 946 this.videoElement = document.querySelector('.js-video-modal'); 947 } 948 949 _createClass(Video, [{ 950 key: 'init', 951 value: function init() { 952 this.bindEvents(); 953 } 954 }, { 955 key: 'bindEvents', 956 value: function bindEvents() { 957 var body = document.querySelector('body'); 958 959 if (this.videoElement) { 960 body.addEventListener('click', this.handleClick.bind(this)); 961 } 962 } 963 }, { 964 key: 'handleClick', 965 value: function handleClick(event) { 966 var element = event.target; 967 968 if (element.classList.contains('js-video-play')) { 969 this.clearSources(); 970 971 var source = document.createElement('source'); 972 973 source.src = element.dataset.src; 974 source.type = element.dataset.type; 975 976 this.videoElement.appendChild(source); 977 this.videoElement.play(); 978 } else if (element.nodeName !== 'VIDEO') { 979 this.videoElement.pause(); 980 } 981 } 982 }, { 983 key: 'clearSources', 984 value: function clearSources() { 985 while (this.videoElement.hasChildNodes()) { 986 this.videoElement.removeChild(this.videoElement.firstChild); 987 } 988 } 989 }]); 990 991 return Video; 992}(); 993 994exports.default = new Video(); 995 996/***/ })
996 997 998/******/ }); 999//# sourceMappingURL=main.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.