{"version":3,"sources":["webpack:///../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","webpack:///./Scripts/Components/SubNavigation.js"],"names":["module","exports","polyfill","w","window","d","document","documentElement","style","__forceSmoothScrollPolyfill__","userAgent","Element","HTMLElement","original","scroll","scrollTo","scrollBy","elementScroll","prototype","scrollElement","scrollIntoView","now","performance","bind","Date","ROUNDING_TOLERANCE","navigator","RegExp","join","test","undefined","arguments","shouldBailOut","smoothScroll","call","body","left","scrollX","pageXOffset","top","scrollY","pageYOffset","this","scrollLeft","scrollTop","SyntaxError","behavior","scrollableParent","findScrollableParent","parentRects","getBoundingClientRect","clientRects","getComputedStyle","position","x","y","firstArg","TypeError","hasScrollableSpace","el","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","parentNode","host","step","context","value","currentX","currentY","k","elapsed","startTime","Math","cos","PI","startX","startY","method","scrollable","requestAnimationFrame","SubNavigation","props","links","JSON","parse","decodeHtml","FilterList","React","createRef","ListContainer","SCROLL_AMOUNT","handleArrowClick","_timeout","handleScroll","state","showArrowRight","showArrowLeft","htmlString","txt","createElement","innerHTML","selectedItem","querySelector","allListElements","querySelectorAll","containerWidth","current","list","paddingLeft","getPropertyValue","selectedItemPosition","offsetLeft","moveList","length","setState","smoothscroll","scrollAmnt","offsetWidth","dir","clearTimeout","toggleArrows","className","onClick","e","href","ref","onScroll","item","index","key","isSelected","url","name","Component"],"mappings":"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","file":"3.cdf0e52cd16bf42f787c.js","sourcesContent":["/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n  'use strict';\n\n  // polyfill\n  function polyfill() {\n    // aliases\n    var w = window;\n    var d = document;\n\n    // return if scroll behavior is supported and polyfill is not forced\n    if (\n      'scrollBehavior' in d.documentElement.style &&\n      w.__forceSmoothScrollPolyfill__ !== true\n    ) {\n      return;\n    }\n\n    // globals\n    var Element = w.HTMLElement || w.Element;\n    var SCROLL_TIME = 468;\n\n    // object gathering original scroll methods\n    var original = {\n      scroll: w.scroll || w.scrollTo,\n      scrollBy: w.scrollBy,\n      elementScroll: Element.prototype.scroll || scrollElement,\n      scrollIntoView: Element.prototype.scrollIntoView\n    };\n\n    // define timing method\n    var now =\n      w.performance && w.performance.now\n        ? w.performance.now.bind(w.performance)\n        : Date.now;\n\n    /**\n     * indicates if a the current browser is made by Microsoft\n     * @method isMicrosoftBrowser\n     * @param {String} userAgent\n     * @returns {Boolean}\n     */\n    function isMicrosoftBrowser(userAgent) {\n      var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n      return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n    }\n\n    /*\n     * IE has rounding bug rounding down clientHeight and clientWidth and\n     * rounding up scrollHeight and scrollWidth causing false positives\n     * on hasScrollableSpace\n     */\n    var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n    /**\n     * changes scroll position inside an element\n     * @method scrollElement\n     * @param {Number} x\n     * @param {Number} y\n     * @returns {undefined}\n     */\n    function scrollElement(x, y) {\n      this.scrollLeft = x;\n      this.scrollTop = y;\n    }\n\n    /**\n     * returns result of applying ease math function to a number\n     * @method ease\n     * @param {Number} k\n     * @returns {Number}\n     */\n    function ease(k) {\n      return 0.5 * (1 - Math.cos(Math.PI * k));\n    }\n\n    /**\n     * indicates if a smooth behavior should be applied\n     * @method shouldBailOut\n     * @param {Number|Object} firstArg\n     * @returns {Boolean}\n     */\n    function shouldBailOut(firstArg) {\n      if (\n        firstArg === null ||\n        typeof firstArg !== 'object' ||\n        firstArg.behavior === undefined ||\n        firstArg.behavior === 'auto' ||\n        firstArg.behavior === 'instant'\n      ) {\n        // first argument is not an object/null\n        // or behavior is auto, instant or undefined\n        return true;\n      }\n\n      if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n        // first argument is an object and behavior is smooth\n        return false;\n      }\n\n      // throw error when behavior is not supported\n      throw new TypeError(\n        'behavior member of ScrollOptions ' +\n          firstArg.behavior +\n          ' is not a valid value for enumeration ScrollBehavior.'\n      );\n    }\n\n    /**\n     * indicates if an element has scrollable space in the provided axis\n     * @method hasScrollableSpace\n     * @param {Node} el\n     * @param {String} axis\n     * @returns {Boolean}\n     */\n    function hasScrollableSpace(el, axis) {\n      if (axis === 'Y') {\n        return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n      }\n\n      if (axis === 'X') {\n        return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n      }\n    }\n\n    /**\n     * indicates if an element has a scrollable overflow property in the axis\n     * @method canOverflow\n     * @param {Node} el\n     * @param {String} axis\n     * @returns {Boolean}\n     */\n    function canOverflow(el, axis) {\n      var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n      return overflowValue === 'auto' || overflowValue === 'scroll';\n    }\n\n    /**\n     * indicates if an element can be scrolled in either axis\n     * @method isScrollable\n     * @param {Node} el\n     * @param {String} axis\n     * @returns {Boolean}\n     */\n    function isScrollable(el) {\n      var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n      var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n      return isScrollableY || isScrollableX;\n    }\n\n    /**\n     * finds scrollable parent of an element\n     * @method findScrollableParent\n     * @param {Node} el\n     * @returns {Node} el\n     */\n    function findScrollableParent(el) {\n      while (el !== d.body && isScrollable(el) === false) {\n        el = el.parentNode || el.host;\n      }\n\n      return el;\n    }\n\n    /**\n     * self invoked function that, given a context, steps through scrolling\n     * @method step\n     * @param {Object} context\n     * @returns {undefined}\n     */\n    function step(context) {\n      var time = now();\n      var value;\n      var currentX;\n      var currentY;\n      var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n      // avoid elapsed times higher than one\n      elapsed = elapsed > 1 ? 1 : elapsed;\n\n      // apply easing to elapsed time\n      value = ease(elapsed);\n\n      currentX = context.startX + (context.x - context.startX) * value;\n      currentY = context.startY + (context.y - context.startY) * value;\n\n      context.method.call(context.scrollable, currentX, currentY);\n\n      // scroll more if we have not reached our destination\n      if (currentX !== context.x || currentY !== context.y) {\n        w.requestAnimationFrame(step.bind(w, context));\n      }\n    }\n\n    /**\n     * scrolls window or element with a smooth behavior\n     * @method smoothScroll\n     * @param {Object|Node} el\n     * @param {Number} x\n     * @param {Number} y\n     * @returns {undefined}\n     */\n    function smoothScroll(el, x, y) {\n      var scrollable;\n      var startX;\n      var startY;\n      var method;\n      var startTime = now();\n\n      // define scroll context\n      if (el === d.body) {\n        scrollable = w;\n        startX = w.scrollX || w.pageXOffset;\n        startY = w.scrollY || w.pageYOffset;\n        method = original.scroll;\n      } else {\n        scrollable = el;\n        startX = el.scrollLeft;\n        startY = el.scrollTop;\n        method = scrollElement;\n      }\n\n      // scroll looping over a frame\n      step({\n        scrollable: scrollable,\n        method: method,\n        startTime: startTime,\n        startX: startX,\n        startY: startY,\n        x: x,\n        y: y\n      });\n    }\n\n    // ORIGINAL METHODS OVERRIDES\n    // w.scroll and w.scrollTo\n    w.scroll = w.scrollTo = function() {\n      // avoid action when no arguments are passed\n      if (arguments[0] === undefined) {\n        return;\n      }\n\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0]) === true) {\n        original.scroll.call(\n          w,\n          arguments[0].left !== undefined\n            ? arguments[0].left\n            : typeof arguments[0] !== 'object'\n              ? arguments[0]\n              : w.scrollX || w.pageXOffset,\n          // use top prop, second argument if present or fallback to scrollY\n          arguments[0].top !== undefined\n            ? arguments[0].top\n            : arguments[1] !== undefined\n              ? arguments[1]\n              : w.scrollY || w.pageYOffset\n        );\n\n        return;\n      }\n\n      // LET THE SMOOTHNESS BEGIN!\n      smoothScroll.call(\n        w,\n        d.body,\n        arguments[0].left !== undefined\n          ? ~~arguments[0].left\n          : w.scrollX || w.pageXOffset,\n        arguments[0].top !== undefined\n          ? ~~arguments[0].top\n          : w.scrollY || w.pageYOffset\n      );\n    };\n\n    // w.scrollBy\n    w.scrollBy = function() {\n      // avoid action when no arguments are passed\n      if (arguments[0] === undefined) {\n        return;\n      }\n\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0])) {\n        original.scrollBy.call(\n          w,\n          arguments[0].left !== undefined\n            ? arguments[0].left\n            : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n          arguments[0].top !== undefined\n            ? arguments[0].top\n            : arguments[1] !== undefined ? arguments[1] : 0\n        );\n\n        return;\n      }\n\n      // LET THE SMOOTHNESS BEGIN!\n      smoothScroll.call(\n        w,\n        d.body,\n        ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n        ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n      );\n    };\n\n    // Element.prototype.scroll and Element.prototype.scrollTo\n    Element.prototype.scroll = Element.prototype.scrollTo = function() {\n      // avoid action when no arguments are passed\n      if (arguments[0] === undefined) {\n        return;\n      }\n\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0]) === true) {\n        // if one number is passed, throw error to match Firefox implementation\n        if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n          throw new SyntaxError('Value could not be converted');\n        }\n\n        original.elementScroll.call(\n          this,\n          // use left prop, first number argument or fallback to scrollLeft\n          arguments[0].left !== undefined\n            ? ~~arguments[0].left\n            : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n          // use top prop, second argument or fallback to scrollTop\n          arguments[0].top !== undefined\n            ? ~~arguments[0].top\n            : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n        );\n\n        return;\n      }\n\n      var left = arguments[0].left;\n      var top = arguments[0].top;\n\n      // LET THE SMOOTHNESS BEGIN!\n      smoothScroll.call(\n        this,\n        this,\n        typeof left === 'undefined' ? this.scrollLeft : ~~left,\n        typeof top === 'undefined' ? this.scrollTop : ~~top\n      );\n    };\n\n    // Element.prototype.scrollBy\n    Element.prototype.scrollBy = function() {\n      // avoid action when no arguments are passed\n      if (arguments[0] === undefined) {\n        return;\n      }\n\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0]) === true) {\n        original.elementScroll.call(\n          this,\n          arguments[0].left !== undefined\n            ? ~~arguments[0].left + this.scrollLeft\n            : ~~arguments[0] + this.scrollLeft,\n          arguments[0].top !== undefined\n            ? ~~arguments[0].top + this.scrollTop\n            : ~~arguments[1] + this.scrollTop\n        );\n\n        return;\n      }\n\n      this.scroll({\n        left: ~~arguments[0].left + this.scrollLeft,\n        top: ~~arguments[0].top + this.scrollTop,\n        behavior: arguments[0].behavior\n      });\n    };\n\n    // Element.prototype.scrollIntoView\n    Element.prototype.scrollIntoView = function() {\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0]) === true) {\n        original.scrollIntoView.call(\n          this,\n          arguments[0] === undefined ? true : arguments[0]\n        );\n\n        return;\n      }\n\n      // LET THE SMOOTHNESS BEGIN!\n      var scrollableParent = findScrollableParent(this);\n      var parentRects = scrollableParent.getBoundingClientRect();\n      var clientRects = this.getBoundingClientRect();\n\n      if (scrollableParent !== d.body) {\n        // reveal element inside parent\n        smoothScroll.call(\n          this,\n          scrollableParent,\n          scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n          scrollableParent.scrollTop + clientRects.top - parentRects.top\n        );\n\n        // reveal parent in viewport unless is fixed\n        if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n          w.scrollBy({\n            left: parentRects.left,\n            top: parentRects.top,\n            behavior: 'smooth'\n          });\n        }\n      } else {\n        // reveal element in viewport\n        w.scrollBy({\n          left: clientRects.left,\n          top: clientRects.top,\n          behavior: 'smooth'\n        });\n      }\n    };\n  }\n\n  if (typeof exports === 'object' && typeof module !== 'undefined') {\n    // commonjs\n    module.exports = { polyfill: polyfill };\n  } else {\n    // global\n    polyfill();\n  }\n\n}());\n","import React, { Component, Fragment } from 'react';\r\nimport smoothscroll from 'smoothscroll-polyfill';\r\n\r\nclass SubNavigation extends Component {\r\n    constructor(props) {\r\n        super(props);\r\n        this.links = JSON.parse(this.decodeHtml(props.links));\r\n        this.FilterList = React.createRef();\r\n        this.ListContainer = React.createRef();\r\n        this.SCROLL_AMOUNT = 200;\r\n\r\n        this.handleArrowClick = this.handleArrowClick.bind(this);\r\n        this._timeout = null;\r\n        this.handleScroll = this.handleScroll.bind(this);\r\n\r\n        this.state = {\r\n            showArrowRight: false,\r\n            showArrowLeft: false,\r\n        };\r\n    }\r\n\r\n    decodeHtml(htmlString) {\r\n        var txt = document.createElement('textarea');\r\n        txt.innerHTML = htmlString;\r\n        return txt.value;\r\n    }\r\n\r\n    componentDidMount() {\r\n        const selectedItem = document.querySelector(\".sub-navigation__list-item--active\");\r\n        const allListElements = document.querySelectorAll(\".sub-navigation__list-item\");\r\n        const containerWidth = this.ListContainer.current.clientWidth;\r\n        const list = this.FilterList.current;\r\n\r\n        if (selectedItem != null) {\r\n            const paddingLeft = window.getComputedStyle(allListElements[0], null).getPropertyValue('padding-left');\r\n            const selectedItemPosition = selectedItem.offsetLeft - parseInt(paddingLeft, 10) - 16;\r\n            this.moveList(selectedItemPosition);\r\n        }\r\n\r\n        if (containerWidth < list.scrollWidth && allListElements.length > 1) {\r\n            this.setState(() => ({\r\n                showArrowRight: true,\r\n            }));\r\n        }\r\n        smoothscroll.polyfill(); //For smooth scroll in Safari\r\n    }\r\n\r\n    moveList(scrollAmnt) {\r\n        const list = this.FilterList.current;\r\n        const scroll = (left, callback) => list.scroll({ left, top: 0, behavior: \"smooth\" })\r\n\r\n        scroll(scrollAmnt);\r\n    }\r\n\r\n    toggleArrows() {\r\n        const list = this.FilterList.current;\r\n\r\n        setTimeout(() => {\r\n            if ((list.scrollLeft <= 0)) {\r\n                this.setState(() => ({\r\n                    showArrowLeft: false,\r\n                }));\r\n            }\r\n            else {\r\n                this.setState(() => ({\r\n                    showArrowLeft: true,\r\n                }));\r\n            }\r\n\r\n            if ((list.scrollLeft + list.offsetWidth >= list.scrollWidth - this.SCROLL_AMOUNT / 4)) {\r\n                this.setState(() => ({\r\n                    showArrowRight: false,\r\n                }));\r\n            }\r\n\r\n            else {\r\n                this.setState(() => ({\r\n                    showArrowRight: true,\r\n                }));\r\n            }\r\n        }, 750)\r\n\r\n    }\r\n\r\n    handleArrowClick(dir) {\r\n        const list = this.FilterList.current;\r\n        const scrollLeft = list.scrollLeft;\r\n        const scrollAmnt = scrollLeft + (dir * this.SCROLL_AMOUNT)\r\n        this.moveList(scrollAmnt)\r\n    }\r\n\r\n    handleScroll() {\r\n        if (this._timeout) { //if there is already a timeout in process cancel it\r\n            clearTimeout(this._timeout);\r\n        }\r\n        this._timeout = setTimeout(() => {\r\n            this._timeout = null;\r\n            this.toggleArrows();\r\n        }, 150);\r\n    }\r\n\r\n    render() {\r\n        return (\r\n            <Fragment>\r\n                {this.links &&\r\n                    <div className=\"sub-navigation row\">\r\n                        <button\r\n                            className={`sub-navigation__arrow sub-navigation__arrow--left ${this.state.showArrowLeft ? \"sub-navigation__arrow--active\" : \"\"}`}\r\n                            onClick={(e) => this.handleArrowClick(-1)}>\r\n                            <svg className=\"sub-navigation__icon\">\r\n                                <use href=\"/ui/images/tibergs-svg/sprite/sprite.svg#arrow-right\"></use>\r\n                            </svg>\r\n                        </button>\r\n                        <div className=\"sub-navigation__list-container\" ref={this.ListContainer}>\r\n                            <ul className=\"sub-navigation__list\" ref={this.FilterList} onScroll={() => this.handleScroll()}>\r\n                                {this.links && this.links.map((item, index) => {\r\n                                    return (\r\n                                        <li key={index} className={`sub-navigation__list-item ${item.isSelected ? \"sub-navigation__list-item--active\" : \"\"}`}>\r\n                                            <a href={item.url} className={`sub-navigation__link ${item.isSelected ? \"sub-navigation__link--active\" : \"\"}`}> {item.name}</a></li>)\r\n                                })}\r\n                            </ul>\r\n                            <div className=\"sub-navigation__fade--left  sub-navigation__fade\"></div>\r\n                            <div className=\"sub-navigation__fade--right sub-navigation__fade\" ></div>\r\n                        </div>\r\n                        <button\r\n                            className={`sub-navigation__arrow ${this.state.showArrowRight ? \"sub-navigation__arrow--active\" : \"\"}`}\r\n                            onClick={(e) => this.handleArrowClick(1)}>\r\n                            <svg className=\"sub-navigation__icon\"><use href=\"/ui/images/tibergs-svg/sprite/sprite.svg#arrow-right\"></use></svg>\r\n                        </button>\r\n                    </div>\r\n                }\r\n            </Fragment>\r\n        );\r\n    }\r\n}\r\n\r\nexport default SubNavigation;"],"sourceRoot":""}