{"version":3,"sources":["webpack:///./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:///./node_modules/micromodal/dist/micromodal.es.js","webpack:///./src/js/components/GenericModal.js","webpack:///./src/js/modules/timeline.js","webpack:///./src/js/utils.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","Thumbs","init","thumbsParams","params","thumbs","initialized","SwiperClass","constructor","swiper","originalParams","watchSlidesProgress","slideToClickedSlide","watchSlidesVisibility","swiperCreated","$el","addClass","thumbsContainerClass","on","onThumbClick","thumbsSwiper","clickedIndex","clickedSlide","hasClass","slideThumbActiveClass","slideToIndex","loop","parseInt","attr","currentIndex","activeIndex","slides","eq","slideDuplicateClass","loopFix","_clientLeft","$wrapperEl","clientLeft","prevIndex","prevAll","index","nextIndex","nextAll","slideTo","update","initial","slidesPerView","slidesPerViewDynamic","autoScrollOffset","useOffset","realIndex","newThumbsIndex","direction","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","slidesPerGroup","previousIndex","visibleSlidesIndexes","indexOf","centeredSlides","Math","floor","undefined","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","removeClass","virtual","enabled","children","_i","name","create","beforeInit","slideChange","resize","observerUpdate","setTransition","duration","beforeDestroy","destroy","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","o","minLen","n","toString","slice","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","FOCUSABLE_ELEMENTS","Modal","activeModal","validateModalPresence","validateArgs","MicroModal","_ref","targetModal","_ref$triggers","triggers","_ref$onShow","onShow","_ref$onClose","onClose","_ref$openTrigger","openTrigger","_ref$closeTrigger","closeTrigger","_ref$openClass","openClass","_ref$disableScroll","disableScroll","_ref$disableFocus","disableFocus","_ref$awaitCloseAnimat","awaitCloseAnimation","_ref$awaitOpenAnimati","awaitOpenAnimation","_ref$debugMode","debugMode","instance","Constructor","_classCallCheck","modal","document","getElementById","config","registerTriggers","onClick","bind","onKeydown","protoProps","staticProps","value","_this","_len","_key","filter","Boolean","forEach","trigger","addEventListener","event","showModal","_this2","activeElement","setAttribute","classList","add","scrollBehaviour","addEventListeners","handler","removeEventListener","setFocusToFirstNode","removeEventListeners","focus","remove","closeModal","toggle","body","querySelector","style","overflow","hasAttribute","keyCode","retainFocus","nodes","querySelectorAll","_this3","focusableNodes","getFocusableNodes","nodesWhichAreNotCloseTargets","node","offsetParent","contains","focusedItemIndex","shiftKey","preventDefault","id","console","warn","concat","triggerMap","validateTriggerPresence","options","triggerAttr","attributes","push","generateTriggerMap","show","close","closeModalById","window","GenericModal","el","modalId","join","modalConfig","hideModal","renderBaseModal","scrollManager","ScrollManager","modalElement","createElement","innerHTML","append","title","content","titleElement","contentElement","innerText","setModalContent","forceClose","enableScroll","Component","Swiper","use","Timeline","isExpEditor","getAttribute","dom","headingSlider","contentSlider","contentSlides","slidesCount","collapsibleMaxHeight","tablet","image","regular","tabletLandscape","laptop","desktop","wide","fullHd","renderHeadingSlider","setupCollapsibleCards","setType","contentSlide","renderModal","innerWidth","breakpoints","map","dataset","sliderHeading","sliderHeadingCopy","headingSwiper","spaceBetween","loopedSlides","contentSwiper","slideToLoop","updateType","updateSlideType","isImageSlide","isInitialized","contentCopyHeight","offsetHeight","collapsibleMaxHeightKeys","keys","makeCollapsible","some","breakpoint","maxWidth","viewportCheck","maxHeight","updateCollapsibleCardsState","mediaContainer","linksContainer","updateHomepageDynamicStyles","homePageLeftBorder","homeMastheadMediaContainer","headerExpandedShortcuts","svgHeight","borderTopPosition","offsetTop","top","height","mastheadMediaTop","getBoundingClientRect","offset","calculateLeftBorderHeight","leftBorderElement","updateTop","defaultResolver","element","leftBorderTop","footerResolver","visualStoryRowResolver","leftBorderHeight","exploreAllFourResolver","leaf","fullScreenModules","selector","selectorType","elementClass","resolver","elementDataModule","getFullScreenModulesSelector","module","fullScreenElement","stopper","find","scrollTop","scrollLeft","scrolledPosition","scrollY","position","pageXOffset","documentElement","scrollTo"],"mappings":"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","file":"51.1ef48de3e139c27e2f70.js","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n  init: function init() {\n    var swiper = this;\n    var thumbsParams = swiper.params.thumbs;\n    if (swiper.thumbs.initialized) return false;\n    swiper.thumbs.initialized = true;\n    var SwiperClass = swiper.constructor;\n\n    if (thumbsParams.swiper instanceof SwiperClass) {\n      swiper.thumbs.swiper = thumbsParams.swiper;\n      extend(swiper.thumbs.swiper.originalParams, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      });\n      extend(swiper.thumbs.swiper.params, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      });\n    } else if (isObject(thumbsParams.swiper)) {\n      swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n        watchSlidesVisibility: true,\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      }));\n      swiper.thumbs.swiperCreated = true;\n    }\n\n    swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n    swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n    return true;\n  },\n  onThumbClick: function onThumbClick() {\n    var swiper = this;\n    var thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper) return;\n    var clickedIndex = thumbsSwiper.clickedIndex;\n    var clickedSlide = thumbsSwiper.clickedSlide;\n    if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n    var slideToIndex;\n\n    if (thumbsSwiper.params.loop) {\n      slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n    } else {\n      slideToIndex = clickedIndex;\n    }\n\n    if (swiper.params.loop) {\n      var currentIndex = swiper.activeIndex;\n\n      if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n        swiper.loopFix(); // eslint-disable-next-line\n\n        swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n        currentIndex = swiper.activeIndex;\n      }\n\n      var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n      var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n      if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n    }\n\n    swiper.slideTo(slideToIndex);\n  },\n  update: function update(initial) {\n    var swiper = this;\n    var thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper) return;\n    var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n    var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n    var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n      var currentThumbsIndex = thumbsSwiper.activeIndex;\n      var newThumbsIndex;\n      var direction;\n\n      if (thumbsSwiper.params.loop) {\n        if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n          thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n          thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n          currentThumbsIndex = thumbsSwiper.activeIndex;\n        } // Find actual thumbs index to slide to\n\n\n        var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n        var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n\n        if (typeof prevThumbsIndex === 'undefined') {\n          newThumbsIndex = nextThumbsIndex;\n        } else if (typeof nextThumbsIndex === 'undefined') {\n          newThumbsIndex = prevThumbsIndex;\n        } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n          newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n        } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n          newThumbsIndex = nextThumbsIndex;\n        } else {\n          newThumbsIndex = prevThumbsIndex;\n        }\n\n        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n      } else {\n        newThumbsIndex = swiper.realIndex;\n        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n      }\n\n      if (useOffset) {\n        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n      }\n\n      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n        if (thumbsSwiper.params.centeredSlides) {\n          if (newThumbsIndex > currentThumbsIndex) {\n            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n          } else {\n            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n          }\n        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n        }\n\n        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n      }\n    } // Activate thumbs\n\n\n    var thumbsToActivate = 1;\n    var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n      thumbsToActivate = swiper.params.slidesPerView;\n    }\n\n    if (!swiper.params.thumbs.multipleActiveThumbs) {\n      thumbsToActivate = 1;\n    }\n\n    thumbsToActivate = Math.floor(thumbsToActivate);\n    thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n      for (var i = 0; i < thumbsToActivate; i += 1) {\n        thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n      }\n    } else {\n      for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n        thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n      }\n    }\n  }\n};\nexport default {\n  name: 'thumbs',\n  params: {\n    thumbs: {\n      swiper: null,\n      multipleActiveThumbs: true,\n      autoScrollOffset: 0,\n      slideThumbActiveClass: 'swiper-slide-thumb-active',\n      thumbsContainerClass: 'swiper-container-thumbs'\n    }\n  },\n  create: function create() {\n    var swiper = this;\n    bindModuleMethods(swiper, {\n      thumbs: _extends({\n        swiper: null,\n        initialized: false\n      }, Thumbs)\n    });\n  },\n  on: {\n    beforeInit: function beforeInit(swiper) {\n      var thumbs = swiper.params.thumbs;\n      if (!thumbs || !thumbs.swiper) return;\n      swiper.thumbs.init();\n      swiper.thumbs.update(true);\n    },\n    slideChange: function slideChange(swiper) {\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    update: function update(swiper) {\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    resize: function resize(swiper) {\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    observerUpdate: function observerUpdate(swiper) {\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    setTransition: function setTransition(swiper, duration) {\n      var thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper) return;\n      thumbsSwiper.setTransition(duration);\n    },\n    beforeDestroy: function beforeDestroy(swiper) {\n      var thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper) return;\n\n      if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n        thumbsSwiper.destroy();\n      }\n    }\n  }\n};","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(n);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar MicroModal = function () {\n\n  var FOCUSABLE_ELEMENTS = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])', 'select:not([disabled]):not([aria-hidden])', 'textarea:not([disabled]):not([aria-hidden])', 'button:not([disabled]):not([aria-hidden])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^=\"-\"])'];\n\n  var Modal = /*#__PURE__*/function () {\n    function Modal(_ref) {\n      var targetModal = _ref.targetModal,\n          _ref$triggers = _ref.triggers,\n          triggers = _ref$triggers === void 0 ? [] : _ref$triggers,\n          _ref$onShow = _ref.onShow,\n          onShow = _ref$onShow === void 0 ? function () {} : _ref$onShow,\n          _ref$onClose = _ref.onClose,\n          onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n          _ref$openTrigger = _ref.openTrigger,\n          openTrigger = _ref$openTrigger === void 0 ? 'data-micromodal-trigger' : _ref$openTrigger,\n          _ref$closeTrigger = _ref.closeTrigger,\n          closeTrigger = _ref$closeTrigger === void 0 ? 'data-micromodal-close' : _ref$closeTrigger,\n          _ref$openClass = _ref.openClass,\n          openClass = _ref$openClass === void 0 ? 'is-open' : _ref$openClass,\n          _ref$disableScroll = _ref.disableScroll,\n          disableScroll = _ref$disableScroll === void 0 ? false : _ref$disableScroll,\n          _ref$disableFocus = _ref.disableFocus,\n          disableFocus = _ref$disableFocus === void 0 ? false : _ref$disableFocus,\n          _ref$awaitCloseAnimat = _ref.awaitCloseAnimation,\n          awaitCloseAnimation = _ref$awaitCloseAnimat === void 0 ? false : _ref$awaitCloseAnimat,\n          _ref$awaitOpenAnimati = _ref.awaitOpenAnimation,\n          awaitOpenAnimation = _ref$awaitOpenAnimati === void 0 ? false : _ref$awaitOpenAnimati,\n          _ref$debugMode = _ref.debugMode,\n          debugMode = _ref$debugMode === void 0 ? false : _ref$debugMode;\n\n      _classCallCheck(this, Modal);\n\n      // Save a reference of the modal\n      this.modal = document.getElementById(targetModal); // Save a reference to the passed config\n\n      this.config = {\n        debugMode: debugMode,\n        disableScroll: disableScroll,\n        openTrigger: openTrigger,\n        closeTrigger: closeTrigger,\n        openClass: openClass,\n        onShow: onShow,\n        onClose: onClose,\n        awaitCloseAnimation: awaitCloseAnimation,\n        awaitOpenAnimation: awaitOpenAnimation,\n        disableFocus: disableFocus\n      }; // Register click events only if pre binding eventListeners\n\n      if (triggers.length > 0) this.registerTriggers.apply(this, _toConsumableArray(triggers)); // pre bind functions for event listeners\n\n      this.onClick = this.onClick.bind(this);\n      this.onKeydown = this.onKeydown.bind(this);\n    }\n    /**\n     * Loops through all openTriggers and binds click event\n     * @param  {array} triggers [Array of node elements]\n     * @return {void}\n     */\n\n\n    _createClass(Modal, [{\n      key: \"registerTriggers\",\n      value: function registerTriggers() {\n        var _this = this;\n\n        for (var _len = arguments.length, triggers = new Array(_len), _key = 0; _key < _len; _key++) {\n          triggers[_key] = arguments[_key];\n        }\n\n        triggers.filter(Boolean).forEach(function (trigger) {\n          trigger.addEventListener('click', function (event) {\n            return _this.showModal(event);\n          });\n        });\n      }\n    }, {\n      key: \"showModal\",\n      value: function showModal() {\n        var _this2 = this;\n\n        var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n        this.activeElement = document.activeElement;\n        this.modal.setAttribute('aria-hidden', 'false');\n        this.modal.classList.add(this.config.openClass);\n        this.scrollBehaviour('disable');\n        this.addEventListeners();\n\n        if (this.config.awaitOpenAnimation) {\n          var handler = function handler() {\n            _this2.modal.removeEventListener('animationend', handler, false);\n\n            _this2.setFocusToFirstNode();\n          };\n\n          this.modal.addEventListener('animationend', handler, false);\n        } else {\n          this.setFocusToFirstNode();\n        }\n\n        this.config.onShow(this.modal, this.activeElement, event);\n      }\n    }, {\n      key: \"closeModal\",\n      value: function closeModal() {\n        var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n        var modal = this.modal;\n        this.modal.setAttribute('aria-hidden', 'true');\n        this.removeEventListeners();\n        this.scrollBehaviour('enable');\n\n        if (this.activeElement && this.activeElement.focus) {\n          this.activeElement.focus();\n        }\n\n        this.config.onClose(this.modal, this.activeElement, event);\n\n        if (this.config.awaitCloseAnimation) {\n          var openClass = this.config.openClass; // <- old school ftw\n\n          this.modal.addEventListener('animationend', function handler() {\n            modal.classList.remove(openClass);\n            modal.removeEventListener('animationend', handler, false);\n          }, false);\n        } else {\n          modal.classList.remove(this.config.openClass);\n        }\n      }\n    }, {\n      key: \"closeModalById\",\n      value: function closeModalById(targetModal) {\n        this.modal = document.getElementById(targetModal);\n        if (this.modal) this.closeModal();\n      }\n    }, {\n      key: \"scrollBehaviour\",\n      value: function scrollBehaviour(toggle) {\n        if (!this.config.disableScroll) return;\n        var body = document.querySelector('body');\n\n        switch (toggle) {\n          case 'enable':\n            Object.assign(body.style, {\n              overflow: ''\n            });\n            break;\n\n          case 'disable':\n            Object.assign(body.style, {\n              overflow: 'hidden'\n            });\n            break;\n        }\n      }\n    }, {\n      key: \"addEventListeners\",\n      value: function addEventListeners() {\n        this.modal.addEventListener('touchstart', this.onClick);\n        this.modal.addEventListener('click', this.onClick);\n        document.addEventListener('keydown', this.onKeydown);\n      }\n    }, {\n      key: \"removeEventListeners\",\n      value: function removeEventListeners() {\n        this.modal.removeEventListener('touchstart', this.onClick);\n        this.modal.removeEventListener('click', this.onClick);\n        document.removeEventListener('keydown', this.onKeydown);\n      }\n    }, {\n      key: \"onClick\",\n      value: function onClick(event) {\n        if (event.target.hasAttribute(this.config.closeTrigger)) {\n          this.closeModal(event);\n        }\n      }\n    }, {\n      key: \"onKeydown\",\n      value: function onKeydown(event) {\n        if (event.keyCode === 27) this.closeModal(event); // esc\n\n        if (event.keyCode === 9) this.retainFocus(event); // tab\n      }\n    }, {\n      key: \"getFocusableNodes\",\n      value: function getFocusableNodes() {\n        var nodes = this.modal.querySelectorAll(FOCUSABLE_ELEMENTS);\n        return Array.apply(void 0, _toConsumableArray(nodes));\n      }\n      /**\n       * Tries to set focus on a node which is not a close trigger\n       * if no other nodes exist then focuses on first close trigger\n       */\n\n    }, {\n      key: \"setFocusToFirstNode\",\n      value: function setFocusToFirstNode() {\n        var _this3 = this;\n\n        if (this.config.disableFocus) return;\n        var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n        if (focusableNodes.length === 0) return; // remove nodes on whose click, the modal closes\n        // could not think of a better name :(\n\n        var nodesWhichAreNotCloseTargets = focusableNodes.filter(function (node) {\n          return !node.hasAttribute(_this3.config.closeTrigger);\n        });\n        if (nodesWhichAreNotCloseTargets.length > 0) nodesWhichAreNotCloseTargets[0].focus();\n        if (nodesWhichAreNotCloseTargets.length === 0) focusableNodes[0].focus();\n      }\n    }, {\n      key: \"retainFocus\",\n      value: function retainFocus(event) {\n        var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n        if (focusableNodes.length === 0) return;\n        /**\n         * Filters nodes which are hidden to prevent\n         * focus leak outside modal\n         */\n\n        focusableNodes = focusableNodes.filter(function (node) {\n          return node.offsetParent !== null;\n        }); // if disableFocus is true\n\n        if (!this.modal.contains(document.activeElement)) {\n          focusableNodes[0].focus();\n        } else {\n          var focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n          if (event.shiftKey && focusedItemIndex === 0) {\n            focusableNodes[focusableNodes.length - 1].focus();\n            event.preventDefault();\n          }\n\n          if (!event.shiftKey && focusableNodes.length > 0 && focusedItemIndex === focusableNodes.length - 1) {\n            focusableNodes[0].focus();\n            event.preventDefault();\n          }\n        }\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * Modal prototype ends.\n   * Here on code is responsible for detecting and\n   * auto binding event handlers on modal triggers\n   */\n  // Keep a reference to the opened modal\n\n\n  var activeModal = null;\n  /**\n   * Generates an associative array of modals and it's\n   * respective triggers\n   * @param  {array} triggers     An array of all triggers\n   * @param  {string} triggerAttr The data-attribute which triggers the module\n   * @return {array}\n   */\n\n  var generateTriggerMap = function generateTriggerMap(triggers, triggerAttr) {\n    var triggerMap = [];\n    triggers.forEach(function (trigger) {\n      var targetModal = trigger.attributes[triggerAttr].value;\n      if (triggerMap[targetModal] === undefined) triggerMap[targetModal] = [];\n      triggerMap[targetModal].push(trigger);\n    });\n    return triggerMap;\n  };\n  /**\n   * Validates whether a modal of the given id exists\n   * in the DOM\n   * @param  {number} id  The id of the modal\n   * @return {boolean}\n   */\n\n\n  var validateModalPresence = function validateModalPresence(id) {\n    if (!document.getElementById(id)) {\n      console.warn(\"MicroModal: \\u2757Seems like you have missed %c'\".concat(id, \"'\"), 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'ID somewhere in your code. Refer example below to resolve it.');\n      console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"<div class=\\\"modal\\\" id=\\\"\".concat(id, \"\\\"></div>\"));\n      return false;\n    }\n  };\n  /**\n   * Validates if there are modal triggers present\n   * in the DOM\n   * @param  {array} triggers An array of data-triggers\n   * @return {boolean}\n   */\n\n\n  var validateTriggerPresence = function validateTriggerPresence(triggers) {\n    if (triggers.length <= 0) {\n      console.warn(\"MicroModal: \\u2757Please specify at least one %c'micromodal-trigger'\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'data attribute.');\n      console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"<a href=\\\"#\\\" data-micromodal-trigger=\\\"my-modal\\\"></a>\");\n      return false;\n    }\n  };\n  /**\n   * Checks if triggers and their corresponding modals\n   * are present in the DOM\n   * @param  {array} triggers   Array of DOM nodes which have data-triggers\n   * @param  {array} triggerMap Associative array of modals and their triggers\n   * @return {boolean}\n   */\n\n\n  var validateArgs = function validateArgs(triggers, triggerMap) {\n    validateTriggerPresence(triggers);\n    if (!triggerMap) return true;\n\n    for (var id in triggerMap) {\n      validateModalPresence(id);\n    }\n\n    return true;\n  };\n  /**\n   * Binds click handlers to all modal triggers\n   * @param  {object} config [description]\n   * @return void\n   */\n\n\n  var init = function init(config) {\n    // Create an config object with default openTrigger\n    var options = Object.assign({}, {\n      openTrigger: 'data-micromodal-trigger'\n    }, config); // Collects all the nodes with the trigger\n\n    var triggers = _toConsumableArray(document.querySelectorAll(\"[\".concat(options.openTrigger, \"]\"))); // Makes a mappings of modals with their trigger nodes\n\n\n    var triggerMap = generateTriggerMap(triggers, options.openTrigger); // Checks if modals and triggers exist in dom\n\n    if (options.debugMode === true && validateArgs(triggers, triggerMap) === false) return; // For every target modal creates a new instance\n\n    for (var key in triggerMap) {\n      var value = triggerMap[key];\n      options.targetModal = key;\n      options.triggers = _toConsumableArray(value);\n      activeModal = new Modal(options); // eslint-disable-line no-new\n    }\n  };\n  /**\n   * Shows a particular modal\n   * @param  {string} targetModal [The id of the modal to display]\n   * @param  {object} config [The configuration object to pass]\n   * @return {void}\n   */\n\n\n  var show = function show(targetModal, config) {\n    var options = config || {};\n    options.targetModal = targetModal; // Checks if modals and triggers exist in dom\n\n    if (options.debugMode === true && validateModalPresence(targetModal) === false) return; // clear events in case previous modal wasn't close\n\n    if (activeModal) activeModal.removeEventListeners(); // stores reference to active modal\n\n    activeModal = new Modal(options); // eslint-disable-line no-new\n\n    activeModal.showModal();\n  };\n  /**\n   * Closes the active modal\n   * @param  {string} targetModal [The id of the modal to close]\n   * @return {void}\n   */\n\n\n  var close = function close(targetModal) {\n    targetModal ? activeModal.closeModalById(targetModal) : activeModal.closeModal();\n  };\n\n  return {\n    init: init,\n    show: show,\n    close: close\n  };\n}();\nwindow.MicroModal = MicroModal;\n\nexport default MicroModal;\n","import { Component } from '@verndale/core';\nimport MicroModal from 'micromodal';\nimport { ScrollManager } from '../utils';\n\nclass GenericModal extends Component {\n  constructor(el) {\n    super(el);\n  }\n  setupDefaults() {\n    this.modalId = `${Array.from(this.el.classList).join('-')}--modal`;\n    this.modalConfig = {\n      openClass: 'is-open',\n      onClose: () => this.hideModal(false)\n    }\n    this.renderBaseModal();\n    this.scrollManager = new ScrollManager();\n  }\n\n  renderBaseModal() {\n    this.modalElement = document.createElement('div');\n    this.modalElement.setAttribute('id', this.modalId);\n    this.modalElement.setAttribute('aria-hidden', true);\n    this.modalElement.classList.add('modal');\n    this.modalElement.innerHTML = `\n      <div class=\"modal__overlay\" tabindex=\"-1\" data-micromodal-close>\n        <div class=\"modal__container\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"${this.modalId}-title\" >\n          <div class='modal__container__shadow'></div>\n          <button class=\"modal__close\" aria-label=\"Close modal\" data-micromodal-close>\n            <svg><use xlink:href=\"#close\"/></svg>\n          </button>\n          <div class='modal__container__inner'>\n            <header class=\"modal__header\">\n              <h3 class=\"modal__title\" id=\"${this.modalId}-title\"></h3>\n            </header>\n            <div class='modal__content rtf'></div>\n          </div>\n        </div>\n      </div>\n    `;\n    this.el.append(this.modalElement);\n    MicroModal.init(this.modalConfig);\n    this.modalElement.querySelector('[data-micromodal-close]').addEventListener(\n      'click',\n      () => this.hideModal()\n    )\n  }\n\n  setModalContent({ title, content }) {\n    const titleElement = this.modalElement.querySelector('.modal__title');\n    const contentElement = this.modalElement.querySelector('.modal__content');\n    titleElement.innerText = title;\n    contentElement.innerHTML = content;\n  }\n\n  showModal({ title, content }) {\n    this.scrollManager.disableScroll();\n    this.setModalContent({ title, content });\n    MicroModal.show(this.modalId, this.modalConfig);\n  }\n\n  hideModal(forceClose=true) {\n    this.scrollManager.enableScroll();\n    if (forceClose) MicroModal.close(this.modalId);\n    this.setModalContent({ title: '', content: '' });\n  }\n}\n\nexport default GenericModal;\n","import { Component } from '@verndale/core';\nimport Swiper, { Thumbs } from 'swiper';\nimport { breakpoints } from '../helpers/constants';\nimport GenericModal from '../components/GenericModal';\n\nSwiper.use([Thumbs]);\n\nclass Timeline extends Component {\n  setupDefaults() {\n    this.isExpEditor = Boolean(this.el.getAttribute('sc-part-of'));\n    this.dom = {\n      headingSlider: this.el.querySelector('.timeline__heading__slider'),\n      contentSlider: this.el.querySelector('.timeline__content__slider'),\n      contentSlides: [...this.el.querySelectorAll('.timeline__content__slide')]\n    };\n    this.slidesCount = this.dom.contentSlides.length;\n    this.collapsibleMaxHeight = {\n      tablet: {\n        image: 268,\n        regular: 400\n      },\n      tabletLandscape: {\n        image: 160,\n        regular: 190\n      },\n      laptop: {\n        image: 160,\n        regular: 206\n      },\n      desktop: {\n        image: 220,\n        regular: 228\n      },\n      wide: {\n        image: 220,\n        regular: 250\n      },\n      fullHd: {\n        image: 256,\n        regular: 312\n      }\n    };\n    this.renderHeadingSlider();\n    this.modal = new GenericModal(this.el);\n  }\n\n  addListeners() {\n    window.addEventListener('resize', () =>\n      this.setupCollapsibleCards({ setType: false })\n    );\n    this.dom.contentSlides.forEach(contentSlide => {\n      const collapseButton = contentSlide.querySelector(\n        '.timeline__content__slide__content__expand-btn'\n      );\n      collapseButton.addEventListener('click', () =>\n        this.renderModal(contentSlide)\n      );\n    });\n  }\n\n  renderModal(contentSlide) {\n    if (window.innerWidth > breakpoints.tablet) {\n      const title = contentSlide.querySelector('h3').innerText;\n      const content = contentSlide.querySelector(\n        '.timeline__content__slide__content__copy'\n      ).innerHTML;\n      this.modal.showModal({ title, content });\n    } else {\n      contentSlide.classList.toggle('collapsed');\n    }\n  }\n\n  renderHeadingSlider() {\n    this.dom.headingSlider.querySelector(\n      '.swiper-wrapper'\n    ).innerHTML = this.dom.contentSlides\n      .map((contentSlide, index) => {\n        const { sliderHeading, sliderHeadingCopy } = contentSlide.dataset;\n        return `\n        <button class='timeline__heading__slide swiper-slide'>\n          <h5 class='timeline__slide__heading'>${sliderHeading}</h5>\n            <span class='timeline__slide__copy'>${sliderHeadingCopy}</span>\n        </button>\n      `;\n      })\n      .join('');\n    this.headingSwiper = new Swiper(this.dom.headingSlider, {\n      slidesPerView: 1.3,\n      spaceBetween: 32,\n      loop: true,\n      loopedSlides: this.slidesCount,\n      slideToClickedSlide: true,\n      breakpoints: {\n        [breakpoints.tablet]: {\n          slidesPerView: 3.3,\n          spaceBetween: 20\n        },\n        [breakpoints.tabletLandscape]: {\n          slidesPerView: 4.3,\n          spaceBetween: 24\n        },\n        [breakpoints.laptop]: {\n          slidesPerView: 4.3,\n          spaceBetween: 32\n        },\n        [breakpoints.desktop]: {\n          slidesPerView: 4.3,\n          spaceBetween: 40\n        },\n        [breakpoints.wide]: {\n          slidesPerView: 4.3,\n          spaceBetween: 48\n        },\n        [breakpoints.fullHd]: {\n          slidesPerView: 4.3,\n          spaceBetween: 68\n        }\n      }\n    });\n\n    this.headingSwiper.on('activeIndexChange', swiper => {\n      const { realIndex } = swiper;\n\n      this.contentSwiper.slideToLoop(realIndex, 300, false);\n    });\n\n    this.contentSwiper = new Swiper(this.dom.contentSlider, {\n      spaceBetween: 20,\n      slidesPerView: 1,\n      loop: true,\n      loopedSlides: this.slidesCount,\n      breakpoints: {\n        [breakpoints.tablet]: {\n          spaceBetween: 40\n        }\n      }\n    });\n\n    this.contentSwiper.on('activeIndexChange', swiper => {\n      const { realIndex } = swiper;\n\n      this.headingSwiper.slideToLoop(realIndex, 300, false);\n    });\n\n    this.setupCollapsibleCards({ setType: true });\n  }\n\n  updateCollapsibleCardsState(contentSlide, updateType) {\n    if (updateType) this.updateSlideType(contentSlide);\n    const isImageSlide = contentSlide.classList.contains('image-slide');\n    const isInitialized = contentSlide.classList.contains('collapsible');\n    const contentCopy = contentSlide.querySelector(\n      '.timeline__content__slide__content__inner'\n    );\n    const contentCopyHeight = contentCopy.offsetHeight;\n    const maxHeight = breakpoint =>\n      this.collapsibleMaxHeight[breakpoint][isImageSlide ? 'image' : 'regular'];\n    const collapsibleMaxHeightKeys = Object.keys(this.collapsibleMaxHeight);\n    // Check if any of the conditions are true\n    const makeCollapsible = collapsibleMaxHeightKeys.some(\n      (breakpoint, index) => {\n        const { innerWidth } = window;\n        // Check if viewport has maxWidth check\n        const maxWidth =\n          index < collapsibleMaxHeightKeys.length - 1\n            ? innerWidth < breakpoints[collapsibleMaxHeightKeys[index + 1]]\n            : true;\n        // Get viewportCheck base on breakpoint\n        const viewportCheck =\n          breakpoint !== 'tablet'\n            ? innerWidth >= breakpoints[breakpoint] && maxWidth\n            : innerWidth <= breakpoints.tablet;\n        // Conditional to make or not a collapsible element\n        return (\n          !isInitialized &&\n          viewportCheck &&\n          contentCopyHeight - 40 > maxHeight(breakpoint)\n        );\n      }\n    );\n    contentSlide.classList.toggle('collapsible', makeCollapsible);\n    contentSlide.classList.toggle('collapsed', makeCollapsible);\n  }\n\n  setupCollapsibleCards({ setType = true }) {\n    document\n      .querySelectorAll('.timeline__content__slider .timeline__content__slide')\n      .forEach(contentSlide => {\n        this.updateCollapsibleCardsState(contentSlide, setType);\n      });\n  }\n\n  updateSlideType(contentSlide) {\n    const mediaContainer = contentSlide.querySelector(\n      '.timeline__content__slide__media-container'\n    );\n    const linksContainer = contentSlide.querySelector(\n      '.timeline__content__slide__links'\n    );\n    if (mediaContainer) {\n      return contentSlide.classList.add('image-slide');\n    } else if (linksContainer) {\n      return linksContainer.children.length > 0\n        ? contentSlide.classList.add('links-slide')\n        : linksContainer.remove();\n    }\n  }\n}\n\nexport default Timeline;\n","import { breakpoints } from './helpers/constants';\n\nexport const updateHomepageDynamicStyles = () => {\n  const homePageLeftBorder = document.querySelector(\n    '.homepage-masthead__left-border'\n  );\n  const homeMastheadMediaContainer = document.querySelector(\n    '.homepage-masthead__media-container'\n  );\n  const headerExpandedShortcuts = document.querySelector(\n    '.header__expanded-shortcuts'\n  );\n  if (window.innerWidth < breakpoints.tabletLandscape) {\n    if (homeMastheadMediaContainer && homePageLeftBorder) {\n      const svgHeight = document.querySelector(\n        '.homepage-masthead__header-logo'\n      ).offsetHeight;\n      const borderTopPosition =\n        homeMastheadMediaContainer.offsetTop - svgHeight / 2;\n      // Update left border top value\n      homePageLeftBorder.style.top = `${borderTopPosition}px`;\n      homePageLeftBorder.style.height = 'auto';\n    }\n  } else {\n    // Update header expanded shortcuts nav height\n    if (homeMastheadMediaContainer && headerExpandedShortcuts) {\n      const {\n        top: mastheadMediaTop\n      } = homeMastheadMediaContainer.getBoundingClientRect();\n      const offset = window.innerWidth > breakpoints.desktop ? 140 : 100;\n      headerExpandedShortcuts.style.height = `${mastheadMediaTop - offset}px`;\n    }\n  }\n};\n\nexport const calculateLeftBorderHeight = (leftBorderElement, update = true) => {\n  const updateTop = () => {\n    const headerOffset = document.querySelector('header').offsetTop;\n    const offset = window.innerWidth < breakpoints.laptop ? 32 : 44;\n    const top = headerOffset + offset;\n    leftBorderElement.style.top = `${top}px`;\n    return top;\n  };\n\n  const defaultResolver = (element, update) => {\n    const top = element.offsetTop;\n    const leftBorderTop = updateTop();\n    if (update) leftBorderElement.style.height = `${top - leftBorderTop}px`;\n    return top;\n  };\n\n  const footerResolver = (element, update) => {\n    const top = element.offsetTop;\n    const height = element.offsetHeight;\n    const leftBorderTop = updateTop();\n    if (window.innerWidth < breakpoints.desktop) {\n      if (update) leftBorderElement.style.height = `${top - leftBorderTop}px`;\n    } else {\n      if (update)\n        leftBorderElement.style.height = `${\n          top + Math.floor(height / 2) - 50 - leftBorderTop\n        }px`;\n    }\n  };\n\n  const visualStoryRowResolver = (element, update) => {\n    const top = element.offsetTop;\n    const offset = element.querySelector('.visual-story-row__image').offsetTop;\n    const leftBorderTop = updateTop();\n    const leftBorderHeight = top + offset - leftBorderTop;\n    if (update) leftBorderElement.style.height = `${leftBorderHeight}px`;\n    return leftBorderHeight;\n  };\n\n  const exploreAllFourResolver = (element, update) => {\n    const leaf = element.querySelector('.explore-all-four__leaf');\n    const top = element.offsetTop;\n    const height = leaf.offsetHeight;\n    const leftBorderTop = updateTop();\n    const leftBorderHeight = top + Math.floor(height / 2) - leftBorderTop;\n    if (update) leftBorderElement.style.height = `${leftBorderHeight}px`;\n    return leftBorderHeight;\n  };\n\n  const fullScreenModules = [\n    {\n      selector: '.timeline',\n      selectorType: 'class',\n      elementClass: 'timeline',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.values',\n      selectorType: 'class',\n      elementClass: 'values',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.quick-statistics',\n      selectorType: 'class',\n      elementClass: 'quick-statistics',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.flexible-carousel--dark',\n      selectorType: 'class',\n      elementClass: 'flexible-carousel--dark',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.featured-content-row',\n      selectorType: 'class',\n      elementClass: 'featured-content-row',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.featured-vertical-cards:not(.featured-vertical-cards--light)',\n      selectorType: 'class',\n      elementClass: 'featured-vertical-cards',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.who-we-are:not(.who-we-are--light)',\n      selectorType: 'class',\n      elementClass: 'who-we-are',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.footer',\n      selectorType: 'class',\n      elementClass: 'footer',\n      resolver: footerResolver\n    },\n    {\n      selector: '[data-module=\"filterContentModule\"]',\n      selectorType: 'dataModule',\n      elementDataModule: 'filterContentModule',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.visual-story-row',\n      selectorType: 'class',\n      elementClass: 'visual-story-row',\n      resolver: visualStoryRowResolver\n    },\n    {\n      selector: '.explore-all-four',\n      selectorType: 'class',\n      elementClass: 'explore-all-four',\n      resolver: exploreAllFourResolver\n    },\n    {\n      selector: '.up-cards.up-cards--dark',\n      selectorType: 'class',\n      elementClass: 'up-cards',\n      resolver: defaultResolver\n    },\n    {\n      selector: '.event-finder',\n      selectorType: 'class',\n      elementClass: 'event-finder',\n      resolver: defaultResolver\n    }\n  ];\n\n  const getFullScreenModulesSelector = () =>\n    fullScreenModules.map(module => module.selector).join(', ');\n  // Get first full screen element\n  const fullScreenElement = document.querySelector(\n    getFullScreenModulesSelector()\n  );\n\n  // Return if there are no full screen elements\n  if (!fullScreenElement) return;\n  // Get the full screen module that would be the stopper of the left border\n  const stopper = fullScreenModules.find(module => {\n    if (module.selectorType === 'class') {\n      return fullScreenElement.classList.contains(module.elementClass);\n    } else if (module.selectorType === 'dataModule') {\n      return fullScreenElement.dataset.module === module.elementDataModule;\n    }\n  });\n  // Check resolver type\n  if (window.innerWidth >= breakpoints.tabletLandscape) {\n    return stopper.resolver(fullScreenElement, update);\n  }\n};\n\nexport class ScrollManager {\n  constructor() {\n    this.scrollTop = 0;\n    this.scrollLeft = 0;\n  }\n\n  disableScroll() {\n    const scrolledPosition = window.scrollY;\n    document.body.style.position = 'fixed';\n    document.body.style.top = `-${scrolledPosition}px`;\n    this.scrollTop = scrolledPosition;\n    this.scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n  }\n\n  enableScroll() {\n    document.body.style.position = '';\n    window.scrollTo(this.scrollLeft, this.scrollTop);\n  }\n}\n"],"sourceRoot":""}