{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./ResourcePackages/Theme/assets/src/js/components/map.js","webpack:///./ResourcePackages/Theme/assets/src/js/googleMaps.js","webpack:///./node_modules/smoothscroll-polyfill/dist/smoothscroll.js"],"names":["require","polyfill","colorWater","colorText","colorPark","colorLand","colorRoads","window","_gmaps","map","markers","currentMarker","infowindow","gmaps","infoWindow","googleMapsStyle","elementType","stylers","color","featureType","defaultMapValues","zoom","center","lat","lng","markerIconDefault","markerIconYellow","markerIconBlue","markerConfig","showMarker","marker","assignedToMap","getMap","setMap","hideMarker","setCurrentMarkerIcon","markerIcon","setIcon","url","scaledSize","origin","anchor","removeDefaultInfoWindow","removeWindow","gmStyleIw","document","querySelector","previousElementSibling","parentNode","removeChild","google","maps","event","addListenerOnce","loopCounter","interval","setInterval","clearInterval","fitMarkersIntoScreen","visibleMarkers","length","setCenter","setZoom","bounds","LatLngBounds","visibleMarkerIdx","extend","getPosition","fitBounds","getZoom","getElementsByClassName","onclick","e","target","className","hideMarkerInfo","close","showMarkerInfo","directionUrl","data","coordinates","toString","template","getElementById","innerHTML","replace","name","address","phoneNumber","openingTime","email","InfoWindow","content","maxWidth","open","generateMarkers","stores","forEach","store","serviceType","serviceTypeFleet","Marker","position","animation","Animation","DROP","icon","addListener","push","updateMarkerConfig","Size","Point","resizeResponsiveMarkers","setTimeout","initMap","initMapInner","Map","scrollwheel","gesture","mapTypeControl","zoomControl","streetViewControl","fullscreenControl","clickableIcons","styles","gestureHandling","addEventListener","currentZoom","setCurrentLocation","readyState","filterMarkers","isSelected","isMarkerSelectedVal","selectMarker","dataId","trigger","find","id","handleLocationError","browserHasGeolocation","pos","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","rad","x","Math","PI","find_closest_marker","R","distances","closest","i","mlat","mlng","dLat","dLong","a","sin","cos","c","atan2","sqrt","d","currentPlace","LatLng","closestPlace","getCenter","initiateMap","w","documentElement","style","__forceSmoothScrollPolyfill__","Element","HTMLElement","SCROLL_TIME","original","scroll","scrollTo","scrollBy","elementScroll","prototype","scrollElement","scrollIntoView","now","performance","bind","Date","isMicrosoftBrowser","userAgent","userAgentPatterns","RegExp","join","test","ROUNDING_TOLERANCE","y","scrollLeft","scrollTop","ease","k","shouldBailOut","firstArg","behavior","undefined","TypeError","hasScrollableSpace","el","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","getComputedStyle","isScrollable","isScrollableY","isScrollableX","findScrollableParent","body","host","step","context","time","value","currentX","currentY","elapsed","startTime","startX","startY","method","call","scrollable","requestAnimationFrame","smoothScroll","scrollX","pageXOffset","scrollY","pageYOffset","arguments","left","top","SyntaxError","scrollableParent","parentRects","getBoundingClientRect","clientRects","exports","module"],"mappings":"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","file":"googleMaps.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/* global google, stores */\r\n/* eslint no-underscore-dangle: off */\r\nrequire('smoothscroll-polyfill').polyfill();\r\n\r\nconst colorWater = '#cddbe3';\r\nconst colorText = '#5B867E';\r\nconst colorPark = '#E5E5E5';\r\nconst colorLand = '#f2f5f6';\r\nconst colorRoads = '#ffffff';\r\n\r\nwindow._gmaps = window._gmaps || {\r\n map: null,\r\n markers: [],\r\n currentMarker: null,\r\n infowindow: null\r\n};\r\nconst gmaps = window._gmaps;\r\n\r\nlet infoWindow = null;\r\nconst googleMapsStyle = [\r\n { elementType: 'geometry', stylers: [{ color: colorLand }] },\r\n { elementType: 'labels.text.stroke', stylers: [{ color: '#FFFFFF' }] },\r\n { elementType: 'labels.text.fill', stylers: [{ color: colorText }] }, {\r\n featureType: 'administrative.locality',\r\n elementType: 'labels.text.fill',\r\n stylers: [{ color: colorText }]\r\n }, {\r\n featureType: 'administrative.land_parcel',\r\n elementType: 'geometry.stroke',\r\n stylers: [{ color: '#FF0000' }]\r\n }, {\r\n featureType: 'road',\r\n elementType: 'geometry',\r\n stylers: [{ color: colorRoads }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry',\r\n stylers: [{ color: colorRoads }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.stroke',\r\n stylers: [{ color: colorRoads }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'labels.text.fill',\r\n stylers: [{ color: colorText }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [{ color: colorWater }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels.text.fill',\r\n stylers: [{ color: colorText }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels.text.stroke',\r\n stylers: [{ color: '#FFFFFF' }]\r\n }, {\r\n featureType: 'poi.park',\r\n elementType: 'geometry.fill',\r\n stylers: [{ color: colorPark }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: colorRoads\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'labels.text.fill',\r\n stylers: [{\r\n color: colorText\r\n }]\r\n }\r\n];\r\nconst defaultMapValues = {\r\n zoom: 11,\r\n center: { lat: 25.0971648, lng: 55.1541504 }\r\n};\r\nconst markerIconDefault = '/ResourcePackages/Theme/assets/dist/images/icons/marker-default.svg';\r\nconst markerIconYellow = '/ResourcePackages/Theme/assets/dist/images/icons/marker-yellow.svg';\r\nconst markerIconBlue = '/ResourcePackages/Theme/assets/dist/images/icons/marker-blue.svg';\r\nlet markerConfig;\r\n\r\nconst showMarker = (marker) => {\r\n const assignedToMap = !!marker.getMap();\r\n\r\n if (!assignedToMap) {\r\n marker.setMap(gmaps.map);\r\n }\r\n};\r\nconst hideMarker = (marker) => {\r\n const assignedToMap = !!marker.getMap();\r\n\r\n if (assignedToMap) {\r\n marker.setMap(null);\r\n }\r\n};\r\n\r\nconst setCurrentMarkerIcon = (markerIcon) => {\r\n if (markerConfig && gmaps.currentMarker !== null) {\r\n gmaps.currentMarker.setIcon({\r\n url: markerIcon,\r\n scaledSize: markerConfig.scaledSize,\r\n origin: markerConfig.origin,\r\n anchor: markerConfig.anchor\r\n });\r\n }\r\n};\r\n\r\nconst removeDefaultInfoWindow = () => {\r\n const removeWindow = () => {\r\n const gmStyleIw = document.querySelector('.gm-style-iw');\r\n if (gmStyleIw && gmStyleIw.previousElementSibling) {\r\n gmStyleIw.parentNode.removeChild(gmStyleIw.previousElementSibling);\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n google.maps.event.addListenerOnce(gmaps.map, 'idle', () => {\r\n if (!removeWindow()) {\r\n let loopCounter = 0;\r\n const interval = setInterval(() => {\r\n if (removeWindow()) {\r\n clearInterval(interval);\r\n }\r\n\r\n loopCounter += 1;\r\n if (loopCounter >= 500) {\r\n clearInterval(interval);\r\n }\r\n }, 5);\r\n }\r\n });\r\n};\r\n\r\nconst fitMarkersIntoScreen = (visibleMarkers) => {\r\n if (visibleMarkers.length === 0) {\r\n gmaps.map.setCenter(defaultMapValues.center);\r\n gmaps.map.setZoom(defaultMapValues.zoom);\r\n return;\r\n }\r\n\r\n const bounds = new google.maps.LatLngBounds();\r\n\r\n for (let visibleMarkerIdx = 0; visibleMarkerIdx < visibleMarkers.length; visibleMarkerIdx += 1) {\r\n bounds.extend(visibleMarkers[visibleMarkerIdx].getPosition());\r\n }\r\n\r\n gmaps.map.fitBounds(bounds);\r\n\r\n // remove one zoom level to ensure no marker is on the edge\r\n gmaps.map.setZoom(gmaps.map.getZoom() - 1);\r\n\r\n // set a minimum zoom\r\n if (gmaps.map.getZoom() > 15) {\r\n gmaps.map.setZoom(15);\r\n }\r\n};\r\n\r\n// hide the marker info if click outside the info box\r\nif (document.getElementsByClassName(\"locations-section\") && document.getElementsByClassName(\"locations-section\")[0]) {\r\n document.getElementsByClassName(\"locations-section\")[0].onclick = function(e) {\r\n if (e.target.parentNode.parentNode.className === \"gm-style\") {\r\n hideMarkerInfo();\r\n }\r\n };\r\n}\r\n\r\n\r\nconst hideMarkerInfo = () => {\r\n //setCurrentMarkerIcon(markerIconDefault);\r\n if (gmaps.infowindow) {\r\n gmaps.infowindow.close();\r\n }\r\n gmaps.currentMarker = null;\r\n};\r\n\r\nconst showMarkerInfo = (marker) => {\r\n //setCurrentMarkerIcon(markerIconDefault);\r\n if (gmaps.infowindow) {\r\n gmaps.infowindow.close();\r\n }\r\n\r\n const directionUrl = `https://www.google.com/maps?saddr=My+Location&daddr=${marker.data.coordinates.lat.toString()},${marker.data.coordinates.lng.toString()}`;\r\n let template = document.getElementById('map-template-infowindow').innerHTML;\r\n\r\n template = template\r\n .replace(/\\[\\[name\\]\\]/g, marker.data.name)\r\n .replace(/\\[\\[address\\]\\]/g, marker.data.address)\r\n .replace(/\\[\\[phone\\]\\]/g, marker.data.phoneNumber)\r\n .replace(/\\[\\[hours\\]\\]/g, marker.data.openingTime)\r\n .replace(/\\[\\[email\\]\\]/g, marker.data.email)\r\n .replace(/\\[\\[directionurl\\]\\]/g, directionUrl);\r\n if (marker.data.email === null || marker.data.email === \"\") {\r\n template = template\r\n .replace(/\\[\\[emailclass\\]\\]/g, 'hidden');\r\n }\r\n else {\r\n template = template\r\n .replace(/\\[\\[emailclass\\]\\]/g, '');\r\n }\r\n\r\n if (marker.data.phoneNumber === null || marker.data.phoneNumber === \"\") {\r\n template = template\r\n .replace(/\\[\\[phoneclass\\]\\]/g, 'hidden');\r\n }\r\n else {\r\n template = template\r\n .replace(/\\[\\[phoneclass\\]\\]/g, '');\r\n }\r\n\r\n if (marker.data.openingTime === null || marker.data.openingTime === \"\") {\r\n template = template\r\n .replace(/\\[\\[hoursclass\\]\\]/g, 'hidden');\r\n }\r\n else {\r\n template = template\r\n .replace(/\\[\\[hoursclass\\]\\]/g, '');\r\n }\r\n\r\n gmaps.infowindow = new google.maps.InfoWindow({\r\n content: template.toString(),\r\n maxWidth: 369\r\n });\r\n\r\n removeDefaultInfoWindow();\r\n\r\n gmaps.infowindow.open(gmaps.map, marker);\r\n\r\n\r\n gmaps.currentMarker = marker;\r\n\r\n gmaps.map.setCenter(marker.getPosition());\r\n};\r\n\r\nconst generateMarkers = () => {\r\n\r\n // Yellow markers\r\n stores.forEach((store) => {\r\n if (store.serviceType > store.serviceTypeFleet) {\r\n var markerIcon = markerIconYellow;\r\n\r\n const marker = new google.maps.Marker({\r\n position: store.coordinates,\r\n animation: google.maps.Animation.DROP,\r\n map: gmaps.map,\r\n icon: {\r\n url: markerIcon,\r\n scaledSize: markerConfig.scaledSize,\r\n origin: markerConfig.origin,\r\n anchor: markerConfig.anchor\r\n },\r\n data: store,\r\n serviceType: 'individual'\r\n });\r\n\r\n marker.addListener('click', () => showMarkerInfo(marker));\r\n\r\n gmaps.markers.push(marker);\r\n }\r\n });\r\n\r\n // Red markers\r\n stores.forEach((store) => {\r\n\r\n if (store.serviceTypeFleet.length > 0) {\r\n var markerIcon = markerIconDefault;\r\n\r\n const marker = new google.maps.Marker({\r\n position: store.coordinates,\r\n animation: google.maps.Animation.DROP,\r\n map: gmaps.map,\r\n icon: {\r\n url: markerIcon,\r\n scaledSize: markerConfig.scaledSize,\r\n origin: markerConfig.origin,\r\n anchor: markerConfig.anchor\r\n },\r\n data: store,\r\n serviceType: 'fleet'\r\n });\r\n\r\n marker.addListener('click', () => showMarkerInfo(marker));\r\n\r\n gmaps.markers.push(marker);\r\n }\r\n });\r\n\r\n};\r\n\r\nconst updateMarkerConfig = () => {\r\n\r\n markerConfig = {\r\n scaledSize: new google.maps.Size(18, 26),\r\n origin: new google.maps.Point(0, 0),\r\n anchor: new google.maps.Point(9, 26)\r\n };\r\n};\r\n\r\nconst resizeResponsiveMarkers = () => {\r\n setTimeout(() => {\r\n updateMarkerConfig();\r\n\r\n gmaps.markers.forEach((marker) => {\r\n marker.setIcon({\r\n url: marker.icon.url,\r\n scaledSize: markerConfig.scaledSize,\r\n origin: markerConfig.origin,\r\n anchor: markerConfig.anchor\r\n });\r\n });\r\n }, 500);\r\n};\r\n\r\n\r\nconst initMap = () => {\r\n var initMapInner = function() {\r\n if (document.getElementById('map') === null) {\r\n return;\r\n }\r\n infoWindow = new google.maps.InfoWindow;\r\n gmaps.map = new google.maps.Map(document.getElementById('map'), {\r\n scrollwheel: gesture === 'cooperative' ? null : false,\r\n zoom: defaultMapValues.zoom,\r\n center: defaultMapValues.center,\r\n mapTypeControl: false,\r\n zoomControl: false,\r\n streetViewControl: false,\r\n fullscreenControl: false,\r\n clickableIcons: false,\r\n styles: googleMapsStyle,\r\n gestureHandling: gesture\r\n });\r\n\r\n updateMarkerConfig();\r\n\r\n // Event handlers\r\n document.querySelector('[data-zoom-in]').addEventListener('click', () => {\r\n const currentZoom = gmaps.map.getZoom();\r\n gmaps.map.setZoom(currentZoom + 1);\r\n });\r\n\r\n document.querySelector('[data-zoom-out]').addEventListener('click', () => {\r\n const currentZoom = gmaps.map.getZoom();\r\n gmaps.map.setZoom(currentZoom - 1);\r\n });\r\n\r\n window.addEventListener('orientationchange', resizeResponsiveMarkers);\r\n\r\n generateMarkers();\r\n fitMarkersIntoScreen(gmaps.markers);\r\n setCurrentLocation();\r\n }\r\n if (document.readyState === 'loading') {\r\n document.addEventListener('DOMContentLoaded', initMapInner); // Document still loading so DomContentLoaded can still fire :)\r\n } else {\r\n initMapInner();\r\n }\r\n};\r\n\r\nconst filterMarkers = (isSelected) => {\r\n const visibleMarkers = [];\r\n\r\n hideMarkerInfo();\r\n\r\n gmaps.markers.forEach((marker) => {\r\n const isMarkerSelectedVal = isSelected(marker);\r\n if (isMarkerSelectedVal) {\r\n showMarker(marker);\r\n visibleMarkers.push(marker);\r\n } else {\r\n hideMarker(marker);\r\n }\r\n });\r\n\r\n fitMarkersIntoScreen(visibleMarkers);\r\n\r\n return visibleMarkers.map(marker => marker.data);\r\n};\r\n\r\nconst selectMarker = (dataId) => {\r\n google.maps.event.trigger(gmaps.markers.find(marker => marker.data.id === dataId), 'click');\r\n};\r\nconst handleLocationError =(browserHasGeolocation, infoWindow, pos) => {\r\n}\r\nconst setCurrentLocation = () => {\r\n \r\n // Try HTML5 geolocation.\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(function(position) {\r\n var pos = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n };\r\n\r\n gmaps.map.setCenter(pos);\r\n\r\n const marker = new google.maps.Marker({\r\n position: pos,\r\n animation: google.maps.Animation.DROP,\r\n map: gmaps.map,\r\n icon: {\r\n url: markerIconBlue,\r\n scaledSize: markerConfig.scaledSize,\r\n origin: markerConfig.origin,\r\n anchor: markerConfig.anchor\r\n }\r\n });\r\n function rad(x) {return x*Math.PI/180;}\r\n function find_closest_marker( lat,lng ) {\r\n var R = 6371; // radius of earth in km\r\n var distances = [];\r\n var closest = -1;\r\n for(var i=0;i 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":""}