{"version":3,"sources":["webpack:///./modules/ScrollToBtn.ts","webpack:///C:/agentEucerin/_work/343/s/Eucerin/Foundation/Eucerin.Foundation.Core/node_modules/smoothscroll-polyfill/dist/smoothscroll.js"],"names":["__webpack_require__","r","__webpack_exports__","smoothscroll_polyfill__WEBPACK_IMPORTED_MODULE_0__","smoothscroll_polyfill__WEBPACK_IMPORTED_MODULE_0___default","n","ScrollToBtn","element","this","scrollBtn","querySelector","getAttribute","charAt","scrollTo","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","_this","addEventListener","currentTarget","split","target","smoothScrollTo","y","getBoundingClientRect","top","window","scrollY","a","polyfill","scroll","behavior","module","exports","w","d","documentElement","style","__forceSmoothScrollPolyfill__","Element","HTMLElement","SCROLL_TIME","original","scrollBy","elementScroll","scrollElement","scrollIntoView","now","performance","bind","Date","ROUNDING_TOLERANCE","userAgent","RegExp","join","test","isMicrosoftBrowser","navigator","undefined","arguments","shouldBailOut","smoothScroll","call","body","left","scrollX","pageXOffset","pageYOffset","scrollLeft","scrollTop","SyntaxError","scrollableParent","el","isScrollable","parentNode","host","findScrollableParent","parentRects","clientRects","getComputedStyle","position","x","firstArg","TypeError","hasScrollableSpace","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","step","context","value","currentX","currentY","elapsed","startTime","k","Math","cos","PI","ease","startX","startY","method","scrollable","requestAnimationFrame"],"mappings":"2FAAAA,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,KAAAI,EAAAJ,EAAAK,EAAAF,GAGAG,EAAA,WAYI,SAAAA,EAAmBC,GAAAC,KAAAD,UACfC,KAAKC,UAAYD,KAAKD,QAAQG,cAAc,SAAWF,KAAKD,QACxDC,KAAKC,WAAaD,KAAKC,UAAUE,aAAa,SACO,KAAjDH,KAAKC,UAAUE,aAAa,QAAQC,OAAO,IAC3CJ,KAAKK,WAuBrB,OAlCWP,EAAAQ,MAAP,SAAaC,QAAA,IAAAA,MARM,+BASfC,MAAMC,KAAKC,SAASC,iBAAiBJ,IAAWK,OAAO,SAACC,GAAsB,OAACA,EAAKC,QAAQC,oBAAmBC,QAAQ,SAACjB,GACpH,IAAID,EAAYC,GAChBA,EAAQe,QAAQC,kBAAoB,UAapCjB,EAAAmB,UAAAZ,SAAR,eAAAa,EAAAlB,KACIA,KAAKC,UAAUkB,iBAAiB,QAAS,WACrC,IAAMC,EAAgBF,EAAKjB,UAAUE,aAAa,QAAQkB,MAAM,KAAK,GACjEC,EAASZ,SAASR,cAAc,iCAAiCkB,EAAa,KAC9EE,GACAJ,EAAKK,eAAeD,MAKxBxB,EAAAmB,UAAAM,eAAR,SAAuBD,GACnB,IAAME,EAAIF,EAAOG,wBAAwBC,IAAMC,OAAOC,QACtDhC,EAAAiC,EAAaC,WACbH,OAAOI,QACHL,IAAKF,EACLQ,SAAU,YAGtBlC,EAvCA,eAyCA,IAAIA,EAAYQ,4BC3ChB,WACA,aAwaA2B,EAAAC,SAAsBJ,SAratB,WAEA,IAAAK,EAAAR,OACAS,EAAA1B,SAGA,KACA,mBAAA0B,EAAAC,gBAAAC,QACA,IAAAH,EAAAI,+BAFA,CAQA,IAAAC,EAAAL,EAAAM,aAAAN,EAAAK,QACAE,EAAA,IAGAC,GACAZ,OAAAI,EAAAJ,QAAAI,EAAA9B,SACAuC,SAAAT,EAAAS,SACAC,cAAAL,EAAAvB,UAAAc,QAAAe,EACAC,eAAAP,EAAAvB,UAAA8B,gBAIAC,EACAb,EAAAc,aAAAd,EAAAc,YAAAD,IACAb,EAAAc,YAAAD,IAAAE,KAAAf,EAAAc,aACAE,KAAAH,IAmBAI,EAXA,SAAAC,GAGA,WAAAC,QAFA,4BAEAC,KAAA,MAAAC,KAAAH,GAQAI,CAAAtB,EAAAuB,UAAAL,WAAA,IA0LAlB,EAAAJ,OAAAI,EAAA9B,SAAA,gBAEAsD,IAAAC,UAAA,MAKA,IAAAC,EAAAD,UAAA,IAoBAE,EAAAC,KACA5B,EACAC,EAAA4B,UACAL,IAAAC,UAAA,GAAAK,OACAL,UAAA,GAAAK,KACA9B,EAAA+B,SAAA/B,EAAAgC,iBACAR,IAAAC,UAAA,GAAAlC,MACAkC,UAAA,GAAAlC,IACAS,EAAAP,SAAAO,EAAAiC,aA3BAzB,EAAAZ,OAAAgC,KACA5B,OACAwB,IAAAC,UAAA,GAAAK,KACAL,UAAA,GAAAK,KACA,iBAAAL,UAAA,GACAA,UAAA,GACAzB,EAAA+B,SAAA/B,EAAAgC,iBAEAR,IAAAC,UAAA,GAAAlC,IACAkC,UAAA,GAAAlC,SACAiC,IAAAC,UAAA,GACAA,UAAA,GACAzB,EAAAP,SAAAO,EAAAiC,eAoBAjC,EAAAS,SAAA,gBAEAe,IAAAC,UAAA,KAKAC,EAAAD,UAAA,IACAjB,EAAAC,SAAAmB,KACA5B,OACAwB,IAAAC,UAAA,GAAAK,KACAL,UAAA,GAAAK,KACA,iBAAAL,UAAA,GAAAA,UAAA,UACAD,IAAAC,UAAA,GAAAlC,IACAkC,UAAA,GAAAlC,SACAiC,IAAAC,UAAA,GAAAA,UAAA,MAOAE,EAAAC,KACA5B,EACAC,EAAA4B,OACAJ,UAAA,GAAAK,MAAA9B,EAAA+B,SAAA/B,EAAAgC,eACAP,UAAA,GAAAlC,KAAAS,EAAAP,SAAAO,EAAAiC,gBAKA5B,EAAAvB,UAAAc,OAAAS,EAAAvB,UAAAZ,SAAA,WAEA,QAAAsD,IAAAC,UAAA,GAKA,QAAAC,EAAAD,UAAA,KAqBA,IAAAK,EAAAL,UAAA,GAAAK,KACAvC,EAAAkC,UAAA,GAAAlC,IAGAoC,EAAAC,KACA/D,KACAA,UACA,IAAAiE,EAAAjE,KAAAqE,aAAAJ,OACA,IAAAvC,EAAA1B,KAAAsE,YAAA5C,OA7BA,CAEA,oBAAAkC,UAAA,SAAAD,IAAAC,UAAA,GACA,UAAAW,YAAA,gCAGA5B,EAAAE,cAAAkB,KACA/D,UAEA2D,IAAAC,UAAA,GAAAK,OACAL,UAAA,GAAAK,KACA,iBAAAL,UAAA,KAAAA,UAAA,GAAA5D,KAAAqE,gBAEAV,IAAAC,UAAA,GAAAlC,MACAkC,UAAA,GAAAlC,SACAiC,IAAAC,UAAA,KAAAA,UAAA,GAAA5D,KAAAsE,aAmBA9B,EAAAvB,UAAA2B,SAAA,gBAEAe,IAAAC,UAAA,MAKA,IAAAC,EAAAD,UAAA,IAcA5D,KAAA+B,QACAkC,OAAAL,UAAA,GAAAK,KAAAjE,KAAAqE,WACA3C,MAAAkC,UAAA,GAAAlC,IAAA1B,KAAAsE,UACAtC,SAAA4B,UAAA,GAAA5B,WAhBAW,EAAAE,cAAAkB,KACA/D,UACA2D,IAAAC,UAAA,GAAAK,OACAL,UAAA,GAAAK,KAAAjE,KAAAqE,aACAT,UAAA,GAAA5D,KAAAqE,gBACAV,IAAAC,UAAA,GAAAlC,MACAkC,UAAA,GAAAlC,IAAA1B,KAAAsE,YACAV,UAAA,GAAA5D,KAAAsE,aAcA9B,EAAAvB,UAAA8B,eAAA,WAEA,QAAAc,EAAAD,UAAA,KAUA,IAAAY,EAzOA,SAAAC,GACA,KAAAA,IAAArC,EAAA4B,OAAA,IAAAU,EAAAD,IACAA,IAAAE,YAAAF,EAAAG,KAGA,OAAAH,EAoOAI,CAAA7E,MACA8E,EAAAN,EAAA/C,wBACAsD,EAAA/E,KAAAyB,wBAEA+C,IAAApC,EAAA4B,MAEAF,EAAAC,KACA/D,KACAwE,EACAA,EAAAH,WAAAU,EAAAd,KAAAa,EAAAb,KACAO,EAAAF,UAAAS,EAAArD,IAAAoD,EAAApD,KAIA,UAAAS,EAAA6C,iBAAAR,GAAAS,UACA9C,EAAAS,UACAqB,KAAAa,EAAAb,KACAvC,IAAAoD,EAAApD,IACAM,SAAA,YAKAG,EAAAS,UACAqB,KAAAc,EAAAd,KACAvC,IAAAqD,EAAArD,IACAM,SAAA,gBAnCAW,EAAAI,eAAAgB,KACA/D,UACA2D,IAAAC,UAAA,IAAAA,UAAA,KAnUA,SAAAd,EAAAoC,EAAA1D,GACAxB,KAAAqE,WAAAa,EACAlF,KAAAsE,UAAA9C,EAmBA,SAAAqC,EAAAsB,GACA,GACA,OAAAA,GACA,iBAAAA,QACAxB,IAAAwB,EAAAnD,UACA,SAAAmD,EAAAnD,UACA,YAAAmD,EAAAnD,SAIA,SAGA,oBAAAmD,GAAA,WAAAA,EAAAnD,SAEA,SAIA,UAAAoD,UACA,oCACAD,EAAAnD,SACA,yDAWA,SAAAqD,EAAAZ,EAAAa,GACA,YAAAA,EACAb,EAAAc,aAAAnC,EAAAqB,EAAAe,aAGA,MAAAF,EACAb,EAAAgB,YAAArC,EAAAqB,EAAAiB,iBADA,EAYA,SAAAC,EAAAlB,EAAAa,GACA,IAAAM,EAAAzD,EAAA6C,iBAAAP,EAAA,iBAAAa,GAEA,eAAAM,GAAA,WAAAA,EAUA,SAAAlB,EAAAD,GACA,IAAAoB,EAAAR,EAAAZ,EAAA,MAAAkB,EAAAlB,EAAA,KACAqB,EAAAT,EAAAZ,EAAA,MAAAkB,EAAAlB,EAAA,KAEA,OAAAoB,GAAAC,EAuBA,SAAAC,EAAAC,GACA,IACAC,EACAC,EACAC,EACAC,GAJApD,IAIAgD,EAAAK,WAAA3D,EAMAuD,EA/GA,SAAAK,GACA,YAAAC,KAAAC,IAAAD,KAAAE,GAAAH,IA8GAI,CAHAN,IAAA,IAAAA,GAKAF,EAAAF,EAAAW,QAAAX,EAAAd,EAAAc,EAAAW,QAAAV,EACAE,EAAAH,EAAAY,QAAAZ,EAAAxE,EAAAwE,EAAAY,QAAAX,EAEAD,EAAAa,OAAA9C,KAAAiC,EAAAc,WAAAZ,EAAAC,GAGAD,IAAAF,EAAAd,GAAAiB,IAAAH,EAAAxE,GACAW,EAAA4E,sBAAAhB,EAAA7C,KAAAf,EAAA6D,IAYA,SAAAlC,EAAAW,EAAAS,EAAA1D,GACA,IAAAsF,EACAH,EACAC,EACAC,EACAR,EAAArD,IAGAyB,IAAArC,EAAA4B,MACA8C,EAAA3E,EACAwE,EAAAxE,EAAA+B,SAAA/B,EAAAgC,YACAyC,EAAAzE,EAAAP,SAAAO,EAAAiC,YACAyC,EAAAlE,EAAAZ,SAEA+E,EAAArC,EACAkC,EAAAlC,EAAAJ,WACAuC,EAAAnC,EAAAH,UACAuC,EAAA/D,GAIAiD,GACAe,aACAD,SACAR,YACAM,SACAC,SACA1B,IACA1D,SAxOA","file":"./modules/ScrollToBtn.f6d5fe5a.js","sourcesContent":["const moduleSelector = '[data-module=\"ScrollToBtn\"]';\r\nimport smoothscroll from 'smoothscroll-polyfill';\r\n\r\nexport default class ScrollToBtn {\r\n scrollBtn;\r\n form;\r\n formSection;\r\n formSectionId;\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new ScrollToBtn(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.scrollBtn = this.element.querySelector(\".btn\") || this.element\r\n if (this.scrollBtn && this.scrollBtn.getAttribute(\"href\")) {\r\n if (this.scrollBtn.getAttribute(\"href\").charAt(0) == \"#\") {\r\n this.scrollTo();\r\n }\r\n }\r\n }\r\n\r\n private scrollTo() {\r\n this.scrollBtn.addEventListener('click', () => {\r\n const currentTarget = this.scrollBtn.getAttribute('href').split('#')[1];\r\n let target = document.querySelector(`[data-anchor-navigation-title=${currentTarget}]`);\r\n if (target) {\r\n this.smoothScrollTo(target);\r\n }\r\n })\r\n }\r\n\r\n private smoothScrollTo(target) {\r\n const y = target.getBoundingClientRect().top + window.scrollY;\r\n smoothscroll.polyfill();\r\n window.scroll({\r\n top: y,\r\n behavior: 'smooth'\r\n });\r\n }\r\n}\r\n\r\nnew ScrollToBtn.setup();","/* 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"],"sourceRoot":""}