(window["webpackJsonpLIS"] = window["webpackJsonpLIS"] || []).push([[4],{

/***/ "./node_modules/@newland/assets-neos/Scripts/common/lock.class.js":
/*!************************************************************************!*\
  !*** ./node_modules/@newland/assets-neos/Scripts/common/lock.class.js ***!
  \************************************************************************/
/*! exports provided: Lock */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Lock\", function() { return Lock; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Lock = /*#__PURE__*/function () {\n  function Lock() {\n    _classCallCheck(this, Lock);\n\n    /** @member {boolean} */\n    this.isLocked = false;\n    /** @member Function[] */\n\n    this.queue = [];\n  }\n\n  _createClass(Lock, [{\n    key: \"acquire\",\n    value: function () {\n      var _acquire = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        var _this = this;\n\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if (this.isLocked) {\n                  _context.next = 3;\n                  break;\n                }\n\n                this.isLocked = true;\n                return _context.abrupt(\"return\");\n\n              case 3:\n                _context.next = 5;\n                return new Promise(function (resolve) {\n                  _this.queue.push(resolve);\n                });\n\n              case 5:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      function acquire() {\n        return _acquire.apply(this, arguments);\n      }\n\n      return acquire;\n    }()\n  }, {\n    key: \"release\",\n    value: function release() {\n      this.isLocked = false;\n\n      if (this.queue.length === 0) {\n        return;\n      }\n\n      var next = this.queue.splice(0, 1)[0];\n      next();\n    }\n  }, {\n    key: \"lock\",\n    value: function () {\n      var _lock = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(callback) {\n        var resultOrPromise, result;\n        return regeneratorRuntime.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                _context2.next = 2;\n                return this.acquire();\n\n              case 2:\n                resultOrPromise = callback();\n\n                if (!(resultOrPromise instanceof Promise)) {\n                  _context2.next = 9;\n                  break;\n                }\n\n                _context2.next = 6;\n                return resultOrPromise;\n\n              case 6:\n                _context2.t0 = _context2.sent;\n                _context2.next = 10;\n                break;\n\n              case 9:\n                _context2.t0 = resultOrPromise;\n\n              case 10:\n                result = _context2.t0;\n                this.release();\n                return _context2.abrupt(\"return\", result);\n\n              case 13:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, this);\n      }));\n\n      function lock(_x) {\n        return _lock.apply(this, arguments);\n      }\n\n      return lock;\n    }()\n  }]);\n\n  return Lock;\n}();\n\n//# sourceURL=webpack://LIS/./node_modules/@newland/assets-neos/Scripts/common/lock.class.js?");

/***/ }),

/***/ "./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-geolocation-handler.js":
/*!************************************************************************************************************!*\
  !*** ./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-geolocation-handler.js ***!
  \************************************************************************************************************/
/*! exports provided: GeolocationHandler */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GeolocationHandler\", function() { return GeolocationHandler; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utilities */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-map/utilities.js\");\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\nvar GeolocationHandler = /*#__PURE__*/function () {\n  function GeolocationHandler(map, options) {\n    _classCallCheck(this, GeolocationHandler);\n\n    this.map = map;\n    this.enableControl();\n\n    if (!options.waitForUserIntent) {\n      this.onGeolocationIntent();\n    }\n  }\n\n  _createClass(GeolocationHandler, [{\n    key: \"onGeolocationIntent\",\n    value: function onGeolocationIntent() {\n      var _this = this;\n\n      Object(_utilities__WEBPACK_IMPORTED_MODULE_0__[\"getCurrentUserLocation\"])().then(function (position) {\n        _this.position = position;\n\n        _this.map.panTo(position);\n\n        _this.drawLocationMarker();\n      }).catch(console.warn);\n    }\n  }, {\n    key: \"enableControl\",\n    value: function enableControl() {\n      var _this2 = this;\n\n      var geolocationControlDiv = document.createElement('div');\n      geolocationControlDiv.className = 'tb-map-custom-control tb-map-custom-control--google';\n      geolocationControlDiv.title = 'Map auf aktuellem Standort zentrieren';\n      geolocationControlDiv.innerHTML = \"\\n            <svg class=\\\"c-icon tb-map-custom-control__icon\\\">\\n                <use xlink:href=\\\"#tb-map-geolocation\\\"></use>\\n            </svg>\\n        \";\n      google.maps.event.addDomListener(geolocationControlDiv, 'click', function () {\n        return _this2.onGeolocationIntent();\n      });\n      this.map.controls[google.maps.ControlPosition.RIGHT_TOP].push(geolocationControlDiv);\n    }\n  }, {\n    key: \"drawLocationMarker\",\n    value: function () {\n      var _drawLocationMarker = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        var _yield$import, GeolocationMarker;\n\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if (this.marker) {\n                  _context.next = 6;\n                  break;\n                }\n\n                _context.next = 3;\n                return __webpack_require__.e(/*! import() | google-geolocation-marker */ \"google-geolocation-marker\").then(__webpack_require__.t.bind(null, /*! exports-loader?GeolocationMarker!./google-geolocation-marker */ \"./node_modules/exports-loader/lib/index.js?GeolocationMarker!./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-geolocation-marker.js\", 7));\n\n              case 3:\n                _yield$import = _context.sent;\n                GeolocationMarker = _yield$import.default;\n                this.marker = new GeolocationMarker(this.position, this.map);\n\n              case 6:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      function drawLocationMarker() {\n        return _drawLocationMarker.apply(this, arguments);\n      }\n\n      return drawLocationMarker;\n    }()\n  }]);\n\n  return GeolocationHandler;\n}();\n\n//# sourceURL=webpack://LIS/./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-geolocation-handler.js?");

/***/ }),

/***/ "./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-map.js":
/*!********************************************************************************************!*\
  !*** ./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-map.js ***!
  \********************************************************************************************/
/*! exports provided: GoogleMap */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GoogleMap\", function() { return GoogleMap; });\n/* harmony import */ var _abstract_map_with_markers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract-map-with-markers */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/abstract-map-with-markers.js\");\n/* harmony import */ var _common_load_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/load-utilities */ \"./node_modules/@newland/assets-neos/Scripts/common/load-utilities.js\");\n/* harmony import */ var _common_string_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../common/string-utilities */ \"./node_modules/@newland/assets-neos/Scripts/common/string-utilities.js\");\n/* harmony import */ var _common_lock_class__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/lock.class */ \"./node_modules/@newland/assets-neos/Scripts/common/lock.class.js\");\n/* harmony import */ var _tour_drawer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tour-drawer */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/tour-drawer.js\");\n/* harmony import */ var _google_geolocation_handler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./google-geolocation-handler */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-geolocation-handler.js\");\n/* harmony import */ var _info_window_handler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./info-window-handler */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/info-window-handler.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n/**\n * @implements { MapWithTour }\n * @implements { MapWithInfoWindow }\n */\n\nvar GoogleMap = /*#__PURE__*/function (_AbstractMapWithMarke) {\n  _inherits(GoogleMap, _AbstractMapWithMarke);\n\n  var _super = _createSuper(GoogleMap);\n\n  function GoogleMap() {\n    _classCallCheck(this, GoogleMap);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(GoogleMap, [{\n    key: \"prepareOptions\",\n\n    /**\n     * @param {object} options\n     * @returns {object}\n     * @protected\n     */\n    value: function prepareOptions(options) {\n      options = _get(_getPrototypeOf(GoogleMap.prototype), \"prepareOptions\", this).call(this, options);\n      options.googleMapStyle = options.googleMapStyle || ['roadmap'];\n      options.googleMapsApiVersion = options.googleMapsApiVersion || 'quarterly';\n\n      if (!options.googleMapsApiKey) {\n        console.warn(Object(_common_string_utilities__WEBPACK_IMPORTED_MODULE_2__[\"stripMultilineIndention\"])(\"\\n                ## Toubiz Map Configuration Warning\\n                No google maps api key supplied\\n            \"));\n      }\n\n      return options;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.renderLock = new _common_lock_class__WEBPACK_IMPORTED_MODULE_3__[\"Lock\"]();\n      this.polylines = [];\n    }\n    /**\n     * @protected\n     * @returns {Promise}\n     */\n\n  }, {\n    key: \"render\",\n    value: function render(markers) {\n      var _this = this;\n\n      return this.renderLock.lock( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        var mapMarkers, _iterator, _step, marker;\n\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if (_this.map) {\n                  _context.next = 14;\n                  break;\n                }\n\n                _context.next = 3;\n                return _this.initializeMap();\n\n              case 3:\n                _this.map = _context.sent;\n                _context.next = 6;\n                return _this.initializeSpiderfier();\n\n              case 6:\n                _this.spiderfier = _context.sent;\n\n                if (_this.options.clustering.disabled) {\n                  _context.next = 11;\n                  break;\n                }\n\n                _context.next = 10;\n                return _this.initializeMarkerClusterer();\n\n              case 10:\n                _this.markerClusterer = _context.sent;\n\n              case 11:\n                _this.tourDrawer = new _tour_drawer__WEBPACK_IMPORTED_MODULE_4__[\"TourDrawer\"](_this.map);\n                _this.infoWindowHandler = new _info_window_handler__WEBPACK_IMPORTED_MODULE_6__[\"InfoWindowHandler\"](_this.map, _this.markerClusterer || null);\n\n                if (_this.options.geolocation && _this.options.geolocation.enabled) {\n                  _this.geolocationHandler = new _google_geolocation_handler__WEBPACK_IMPORTED_MODULE_5__[\"GeolocationHandler\"](_this.map, _this.options.geolocation);\n                }\n\n              case 14:\n                _context.next = 16;\n                return _this.initializeMapsMarkers(markers);\n\n              case 16:\n                mapMarkers = _context.sent;\n\n                _this.spiderfier.clearMarkers();\n\n                if (!_this.options.clustering.disabled) {\n                  _this.markerClusterer.clearMarkers();\n                }\n\n                _iterator = _createForOfIteratorHelper(mapMarkers);\n\n                try {\n                  for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                    marker = _step.value;\n\n                    _this.spiderfier.addMarker(marker);\n\n                    if (!_this.options.clustering.disabled) {\n                      _this.markerClusterer.addMarker(marker);\n                    }\n                  }\n                } catch (err) {\n                  _iterator.e(err);\n                } finally {\n                  _iterator.f();\n                }\n\n              case 21:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee);\n      })));\n    }\n    /**\n     * @public\n     * @returns {Promise|void}\n     */\n\n  }, {\n    key: \"centerMapOnMarkers\",\n    value: function centerMapOnMarkers(markers) {\n      var _this2 = this;\n\n      if (!this.map) {\n        setTimeout(function () {\n          return _this2.centerMapOnMarkers(markers);\n        }, 250);\n        return;\n      }\n\n      if (!markers || markers.length === 0) {\n        return;\n      }\n\n      if (markers.length === 1) {\n        this.map.setCenter(this.coordinatesToLatLng(markers[0].coordinates));\n        this.map.setZoom(this.options.zoom * 18 / 100);\n        return;\n      }\n\n      var bounds = new google.maps.LatLngBounds();\n\n      var _iterator2 = _createForOfIteratorHelper(markers),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var marker = _step2.value;\n          bounds.extend(this.coordinatesToLatLng(marker.coordinates));\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      this.map.fitBounds(bounds);\n    }\n  }, {\n    key: \"drawTourOntoMap\",\n    value: function drawTourOntoMap(marker, fitBounds) {\n      this.tourDrawer.drawTourOntoMap(marker, fitBounds);\n    }\n  }, {\n    key: \"clearTours\",\n    value: function clearTours() {\n      this.tourDrawer.clearTours();\n    }\n    /**\n     * @param {Marker} marker\n     * @param {string} content\n     */\n\n  }, {\n    key: \"openInfoWindow\",\n    value: function openInfoWindow(marker, content) {\n      if (this.infoWindowHandler) {\n        this.infoWindowHandler.openInfoWindow(marker, content);\n      }\n    }\n  }, {\n    key: \"closeInfoWindow\",\n    value: function closeInfoWindow() {\n      if (this.infoWindowHandler) {\n        this.infoWindowHandler.closeInfoWindow();\n      }\n    }\n    /**\n     * @private\n     * @returns {Promise<void>}\n     */\n\n  }, {\n    key: \"initializeMarkerClusterer\",\n    value: function () {\n      var _initializeMarkerClusterer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n        var MarkerClusterer, markerClusterer;\n        return regeneratorRuntime.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                _context2.next = 2;\n                return __webpack_require__.e(/*! import() | google-maps */ \"vendors~google-maps\").then(__webpack_require__.bind(null, /*! ./marker-clusterer.override */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/marker-clusterer.override.js\")).then(function (module) {\n                  return module.MarkerClusterer;\n                });\n\n              case 2:\n                MarkerClusterer = _context2.sent;\n                markerClusterer = new MarkerClusterer(this.map, [], {\n                  gridSize: 60,\n                  size: 36,\n                  zoomOnClick: true,\n                  clusterClass: 'tb-map-marker-cluster',\n                  imageSizes: [36, 45, 54, 63],\n                  maxZoom: 14\n                });\n                markerClusterer.setClusterColors(this.options.clustering.color, this.options.clustering.backgroundColor);\n                return _context2.abrupt(\"return\", markerClusterer);\n\n              case 6:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, this);\n      }));\n\n      function initializeMarkerClusterer() {\n        return _initializeMarkerClusterer.apply(this, arguments);\n      }\n\n      return initializeMarkerClusterer;\n    }()\n    /**\n     * @private\n     * @returns {Promise<google.maps.Map>}\n     */\n\n  }, {\n    key: \"initializeMap\",\n    value: function () {\n      var _initializeMap = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n        var url, apiVersionPart, config, mapCenterLatLng;\n        return regeneratorRuntime.wrap(function _callee3$(_context3) {\n          while (1) {\n            switch (_context3.prev = _context3.next) {\n              case 0:\n                url = 'https://maps.googleapis.com/maps/api/js';\n\n                if (this.options.googleMapsApiKey) {\n                  url += \"?key=\".concat(this.options.googleMapsApiKey);\n                }\n\n                apiVersionPart = '';\n\n                if (this.options.googleMapsApiVersion) {\n                  apiVersionPart = \"\".concat(this.options.googleMapsApiKey ? '&' : '?', \"v=\").concat(this.options.googleMapsApiVersion);\n                }\n\n                url += apiVersionPart;\n                _context3.next = 7;\n                return Object(_common_load_utilities__WEBPACK_IMPORTED_MODULE_1__[\"loadScript\"])(url, 'google-maps');\n\n              case 7:\n                config = {\n                  zoom: Math.round(this.options.zoom / 100 * 18),\n                  mapTypeId: this.options.googleMapStyle[0].identifier,\n                  mapTypeControl: false,\n                  zoomControlOptions: {\n                    position: google.maps.ControlPosition.RIGHT_TOP\n                  },\n                  clickableIcons: false,\n                  scaleControl: true\n                };\n                mapCenterLatLng = this.coordinatesToLatLng(this.options.center);\n\n                if (mapCenterLatLng) {\n                  config.center = mapCenterLatLng;\n                }\n\n                if (this.options.googleMapStyle.length > 1) {\n                  config.mapTypeControl = true;\n                  config.mapTypeControlOptions = {\n                    mapTypeIds: this.options.googleMapStyle.map(function (style) {\n                      return style.identifier;\n                    }),\n                    position: google.maps.ControlPosition.TOP_RIGHT,\n                    style: google.maps.MapTypeControlStyle.DROPDOWN_MENU\n                  };\n                }\n\n                return _context3.abrupt(\"return\", new google.maps.Map(this.node, config));\n\n              case 12:\n              case \"end\":\n                return _context3.stop();\n            }\n          }\n        }, _callee3, this);\n      }));\n\n      function initializeMap() {\n        return _initializeMap.apply(this, arguments);\n      }\n\n      return initializeMap;\n    }()\n    /**\n     * @private\n     * @returns {google.maps.Marker[]}\n     */\n\n  }, {\n    key: \"initializeMapsMarkers\",\n    value: function initializeMapsMarkers(markers) {\n      var _this3 = this;\n\n      var mapMarkers = [];\n\n      var _iterator3 = _createForOfIteratorHelper(markers),\n          _step3;\n\n      try {\n        var _loop = function _loop() {\n          var marker = _step3.value;\n\n          if (!marker.latLng) {\n            marker.latLng = new google.maps.LatLng(_this3.coordinatesToLatLng(marker.coordinates));\n          }\n\n          if (!marker.mapsMarker) {\n            marker.mapsMarker = new google.maps.Marker({\n              position: marker.latLng,\n              optimized: false\n            });\n            marker.mapsMarker.setMap(_this3.map);\n\n            _this3.spiderfier.addListener('click', function (mapsMarker) {\n              if (mapsMarker === marker.mapsMarker) {\n                _this3.callMarkerClickListeners(marker);\n              }\n            });\n\n            marker.mapsMarker.addListener('spider_format', function (status) {\n              if (!_this3.options.clustering.spiderficationIcon) {\n                return;\n              }\n\n              switch (status) {\n                case 'SPIDERFIABLE':\n                  _this3.setMarkerIcon(marker, _this3.options.clustering.spiderficationIcon);\n\n                  break;\n\n                case 'UNSPIDERFIED':\n                case 'SPIDERFIED':\n                  _this3.setMarkerIcon(marker);\n\n              }\n            });\n          }\n\n          _this3.setMarkerIcon(marker);\n\n          mapMarkers.push(marker.mapsMarker);\n        };\n\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          _loop();\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      return mapMarkers;\n    }\n    /**\n     * @private\n     * @returns {Promise<OverlappingMarkerSpiderfier>}\n     */\n\n  }, {\n    key: \"initializeSpiderfier\",\n    value: function () {\n      var _initializeSpiderfier = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {\n        var module, OverlappingMarkerSpiderfier, spiderfier;\n        return regeneratorRuntime.wrap(function _callee4$(_context4) {\n          while (1) {\n            switch (_context4.prev = _context4.next) {\n              case 0:\n                _context4.next = 2;\n                return __webpack_require__.e(/*! import() | google-maps */ \"vendors~google-maps\").then(__webpack_require__.t.bind(null, /*! exports-loader?this.OverlappingMarkerSpiderfier!../../../vendor/googlemaps/spiderfier */ \"./node_modules/exports-loader/lib/index.js?this.OverlappingMarkerSpiderfier!./node_modules/@newland/assets-neos/Scripts/vendor/googlemaps/spiderfier.js\", 7));\n\n              case 2:\n                module = _context4.sent;\n                OverlappingMarkerSpiderfier = module.default;\n                spiderfier = new OverlappingMarkerSpiderfier(this.map, {\n                  legWeight: 3,\n                  markersWontHide: true,\n                  basicFormatEvents: true,\n                  keepSpiderfied: true,\n                  nudgeStackedMarkers: false,\n                  nearbyDistance: 65\n                });\n                return _context4.abrupt(\"return\", spiderfier);\n\n              case 6:\n              case \"end\":\n                return _context4.stop();\n            }\n          }\n        }, _callee4, this);\n      }));\n\n      function initializeSpiderfier() {\n        return _initializeSpiderfier.apply(this, arguments);\n      }\n\n      return initializeSpiderfier;\n    }()\n    /**\n     * @param {Marker~Coordinates} coordinates\n     * @returns {{lat: number, lng: number}}\n     * @private\n     */\n\n  }, {\n    key: \"coordinatesToLatLng\",\n    value: function coordinatesToLatLng(coordinates) {\n      if (!coordinates || isNaN(coordinates.latitude) || isNaN(coordinates.longitude)) {\n        console.warn(Object(_common_string_utilities__WEBPACK_IMPORTED_MODULE_2__[\"stripMultilineIndention\"])(\"\\n                ## Toubiz Map Warning\\n                Invalid coordinates when transforming to LatLng\\n            \"));\n        return null;\n      }\n\n      return {\n        lat: coordinates.latitude,\n        lng: coordinates.longitude\n      };\n    }\n    /**\n     * @private\n     * @param {Marker} marker\n     * @param {string} iconUrl\n     */\n\n  }, {\n    key: \"setMarkerIcon\",\n    value: function setMarkerIcon(marker) {\n      var iconUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n      if (!iconUrl && !marker.style.iconUrl) {\n        return;\n      }\n\n      marker.mapsMarker.setIcon({\n        url: iconUrl || marker.style.iconUrl,\n        scaledSize: new google.maps.Size(marker.style.width, marker.style.height),\n        anchor: new google.maps.Point(marker.style.offsetX, marker.style.offsetY)\n      });\n    }\n  }]);\n\n  return GoogleMap;\n}(_abstract_map_with_markers__WEBPACK_IMPORTED_MODULE_0__[\"AbstractMapWithMarkers\"]);\n\n//# sourceURL=webpack://LIS/./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/google-map.js?");

/***/ }),

/***/ "./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/info-window-handler.js":
/*!*****************************************************************************************************!*\
  !*** ./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/info-window-handler.js ***!
  \*****************************************************************************************************/
/*! exports provided: InfoWindowHandler */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InfoWindowHandler\", function() { return InfoWindowHandler; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utilities */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-map/utilities.js\");\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/** @implements {MapWithInfoWindow} */\n\nvar InfoWindowHandler = /*#__PURE__*/function () {\n  function InfoWindowHandler(map, markerClusterer) {\n    var _this = this;\n\n    _classCallCheck(this, InfoWindowHandler);\n\n    this.map = map;\n\n    if (markerClusterer) {\n      this.markerClusterer = markerClusterer;\n    }\n\n    this.initializeInfoBox().then(function (infoBox) {\n      return _this.infoWindow = infoBox;\n    });\n  }\n  /**\n   * @public\n   * @param {Marker} marker\n   * @param {string} content\n   */\n\n\n  _createClass(InfoWindowHandler, [{\n    key: \"openInfoWindow\",\n    value: function openInfoWindow(marker, content) {\n      var _this2 = this;\n\n      if (!this.infoWindow) {\n        setTimeout(function () {\n          return _this2.openInfoWindow(marker, content);\n        }, 250);\n        return;\n      }\n\n      this.infoWindow.currentMarker = marker;\n      this.updateMapItemPositions(marker);\n      this.infoWindow.setContent(content);\n      this.infoWindow.open(this.map, marker.mapsMarker); // NOTE: temporarily disabling the `setMap` method because `removeMarker` will use it to remove the\n      //       marker from the map inducing a blank of about 250ms before it is re-added to the map.\n\n      this.temporarilyDisableMapSetterOnMarker(marker.mapsMarker, function () {\n        if (_this2.markerClusterer) {\n          _this2.markerClusterer.removeMarker(marker.mapsMarker, true);\n        }\n      });\n      marker.mapsMarker.setMap(this.map);\n      Object(_utilities__WEBPACK_IMPORTED_MODULE_0__[\"trackOutdoorActiveIfConfigured\"])(marker);\n    }\n  }, {\n    key: \"closeInfoWindow\",\n    value: function closeInfoWindow() {\n      if (!this.infoWindow) {\n        return;\n      }\n\n      this.infoWindow.close();\n\n      if (this.infoWindow.currentMarker) {\n        if (this.markerClusterer) {\n          this.markerClusterer.addMarker(this.infoWindow.currentMarker.mapsMarker);\n        }\n\n        this.infoWindow.currentMarker = null;\n      }\n    }\n    /**\n     * @private\n     * @param {Marker} marker\n     */\n\n  }, {\n    key: \"updateMapItemPositions\",\n    value: function updateMapItemPositions(marker) {\n      this.infoWindow.setOptions({\n        pixelOffset: _construct(google.maps.Size, _toConsumableArray(this.getInfoWindowOffset(marker)))\n      });\n    }\n    /**\n     * @private\n     * @returns {Promise<InfoBox>}\n     */\n\n  }, {\n    key: \"initializeInfoBox\",\n    value: function () {\n      var _initializeInfoBox = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        var _yield$import, InfoBox;\n\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                _context.next = 2;\n                return __webpack_require__.e(/*! import() | google-maps */ \"vendors~google-maps\").then(__webpack_require__.t.bind(null, /*! exports-loader?InfoBox!../../../vendor/googlemaps/infobox */ \"./node_modules/exports-loader/lib/index.js?InfoBox!./node_modules/@newland/assets-neos/Scripts/vendor/googlemaps/infobox.js\", 7));\n\n              case 2:\n                _yield$import = _context.sent;\n                InfoBox = _yield$import.default;\n                return _context.abrupt(\"return\", new InfoBox({\n                  alignBottom: true,\n                  disableAutoPan: false,\n                  infoBoxClearance: new google.maps.Size(60, 40),\n                  boxClass: 'tb-map-info-window-wrapper',\n                  boxStyle: {\n                    overflow: 'hidden'\n                  },\n                  closeBoxURL: ''\n                }));\n\n              case 5:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee);\n      }));\n\n      function initializeInfoBox() {\n        return _initializeInfoBox.apply(this, arguments);\n      }\n\n      return initializeInfoBox;\n    }()\n    /**\n     * TODO: Remove magic number if possible.\n     *\n     * Currently the width of info windows is set to 266px\n     * via CSS. We need to offset the horizontal position\n     * by 50% of that to keep horizontal center.\n     *\n     * The vertical offset is the height of the marker.\n     *\n     * @param {Marker} marker\n     * @returns {number[]}\n     * @private\n     */\n\n  }, {\n    key: \"getInfoWindowOffset\",\n    value: function getInfoWindowOffset(marker) {\n      var infoWindowWidth = 266;\n      var infoWindowTriangleOffset = 18;\n      return [-1 * (infoWindowWidth / 2), -1 * (marker.style.height + infoWindowTriangleOffset)];\n    }\n    /**\n     * @param {google.Maps.Marker} mapsMarker\n     * @param {function} cb\n     * @private\n     */\n\n  }, {\n    key: \"temporarilyDisableMapSetterOnMarker\",\n    value: function temporarilyDisableMapSetterOnMarker(mapsMarker, cb) {\n      var setMapOriginal = mapsMarker.setMap;\n\n      mapsMarker.setMap = function () {};\n\n      cb();\n      mapsMarker.setMap = setMapOriginal;\n    }\n  }]);\n\n  return InfoWindowHandler;\n}();\n\n//# sourceURL=webpack://LIS/./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/info-window-handler.js?");

/***/ }),

/***/ "./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/tour-drawer.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/tour-drawer.js ***!
  \*********************************************************************************************/
/*! exports provided: TourDrawer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TourDrawer\", function() { return TourDrawer; });\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar TourDrawer = /*#__PURE__*/function () {\n  function TourDrawer(map) {\n    _classCallCheck(this, TourDrawer);\n\n    this.map = map;\n    this.polylines = [];\n  }\n  /**\n   * @public\n   * @param {Marker} marker\n   * @param {boolean} fitBounds\n   * @returns {void}\n   */\n\n\n  _createClass(TourDrawer, [{\n    key: \"drawTourOntoMap\",\n    value: function drawTourOntoMap(marker, fitBounds) {\n      marker.polyline = marker.polyline || this.initializePolyline(marker.tour.color);\n      var path = marker.tour.polygon.map(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            lat = _ref2[0],\n            lng = _ref2[1];\n\n        return {\n          lat: lat,\n          lng: lng\n        };\n      });\n      marker.polyline.setPath(path);\n      marker.polyline.setMap(this.map);\n      this.polylines.push(marker.polyline);\n\n      if (fitBounds) {\n        this.fitBounds(path);\n      }\n    }\n    /**\n     * @public\n     */\n\n  }, {\n    key: \"clearTours\",\n    value: function clearTours() {\n      var _iterator = _createForOfIteratorHelper(this.polylines),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var polyline = _step.value;\n          polyline.setMap(null);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      this.polylines = [];\n    }\n    /**\n     * @private\n     * @param {Array} path\n     */\n\n  }, {\n    key: \"fitBounds\",\n    value: function fitBounds(path) {\n      var bounds = new google.maps.LatLngBounds();\n\n      var _iterator2 = _createForOfIteratorHelper(path),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var coordinates = _step2.value;\n          bounds.extend(coordinates);\n        } // fit to bounds but leave 80px of space around\n\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      this.map.fitBounds(bounds, 80);\n    }\n    /**\n     * @private\n     * @param {string} color\n     * @returns {google.maps.Polyline}\n     */\n\n  }, {\n    key: \"initializePolyline\",\n    value: function initializePolyline(color) {\n      return new google.maps.Polyline({\n        path: [],\n        geodesic: true,\n        strokeColor: color || '#FF6347',\n        strokeOpacity: 1.0,\n        strokeWeight: 3\n      });\n    }\n  }]);\n\n  return TourDrawer;\n}();\n\n//# sourceURL=webpack://LIS/./node_modules/@newland/assets-neos/Scripts/toubiz-map/map/google-maps/tour-drawer.js?");

/***/ }),

/***/ "./node_modules/@newland/assets-neos/Scripts/toubiz-map/utilities.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@newland/assets-neos/Scripts/toubiz-map/utilities.js ***!
  \***************************************************************************/
/*! exports provided: trackOutdoorActiveIfConfigured, loadMapToolkit, loadLeaflet, loadLeafletClusterer, getCurrentUserLocation */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trackOutdoorActiveIfConfigured\", function() { return trackOutdoorActiveIfConfigured; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadMapToolkit\", function() { return loadMapToolkit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadLeaflet\", function() { return loadLeaflet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadLeafletClusterer\", function() { return loadLeafletClusterer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCurrentUserLocation\", function() { return getCurrentUserLocation; });\n/* harmony import */ var _toubiz_poi_outdoor_active_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../toubiz-poi/outdoor-active-api */ \"./node_modules/@newland/assets-neos/Scripts/toubiz-poi/outdoor-active-api.js\");\n/* harmony import */ var _common_load_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/load-utilities */ \"./node_modules/@newland/assets-neos/Scripts/common/load-utilities.js\");\n\n\n/**\n * @param {Marker} marker\n * @private\n */\n\nfunction trackOutdoorActiveIfConfigured(marker) {\n  if (!marker.outdoorActiveTrackingId) {\n    return;\n  }\n\n  Object(_toubiz_poi_outdoor_active_api__WEBPACK_IMPORTED_MODULE_0__[\"loadOutdoorActiveForTracking\"])().then(function (oax) {\n    oax.api.trackTeaser(marker.outdoorActiveTrackingId);\n  });\n}\n/**\n * @param {string} toursprungApiKey\n * @param {string} googleMapsApiKey\n * @returns {Promise}\n */\n\nfunction loadMapToolkit(toursprungApiKey, googleMapsApiKey) {\n  var version = '8.9'; // TODO Load jQuery locally instead of from CDN\n\n  var scriptLoading = Object(_common_load_utilities__WEBPACK_IMPORTED_MODULE_1__[\"loadScript\"])('https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js', 'mtk-jquery').then(function () {\n    return Object(_common_load_utilities__WEBPACK_IMPORTED_MODULE_1__[\"loadScript\"])(\"https://static.maptoolkit.net/api/v\".concat(version, \"/mtk.de.js\"), 'mtk-script');\n  });\n  var styleLoading = Object(_common_load_utilities__WEBPACK_IMPORTED_MODULE_1__[\"loadStyle\"])(\"https://static.maptoolkit.net/api/v\".concat(version, \"/mtk.css\"), 'mtk-style'); // MTK also provides leaflet\n\n  Object(_common_load_utilities__WEBPACK_IMPORTED_MODULE_1__[\"ensureLoadingPromiseOnlyExistsOnce\"])('leaflet', function () {\n    return scriptLoading.then(function () {\n      return window.L;\n    });\n  });\n  return Promise.all([scriptLoading, styleLoading]).then(function () {\n    var initConfig = {\n      apiKey: toursprungApiKey\n    };\n\n    if (googleMapsApiKey) {\n      initConfig.googleApiKey = googleMapsApiKey;\n    }\n\n    window.MTK.init(initConfig);\n    return window.MTK;\n  });\n}\n/**\n * @returns {Promise}\n */\n\nfunction loadLeaflet() {\n  return Object(_common_load_utilities__WEBPACK_IMPORTED_MODULE_1__[\"ensureLoadingPromiseOnlyExistsOnce\"])('leaflet', function () {\n    Promise.all(/*! import() | leaflet */[__webpack_require__.e(\"vendors~leaflet~leaflet-fullscreen\"), __webpack_require__.e(\"vendors~leaflet\")]).then(__webpack_require__.t.bind(null, /*! leaflet/dist/leaflet.css */ \"./node_modules/leaflet/dist/leaflet.css\", 7));\n    Promise.all(/*! import() | leaflet-fullscreen */[__webpack_require__.e(\"vendors~leaflet~leaflet-fullscreen\"), __webpack_require__.e(\"leaflet-fullscreen\")]).then(__webpack_require__.t.bind(null, /*! leaflet-fullscreen/dist/leaflet.fullscreen.css */ \"./node_modules/leaflet-fullscreen/dist/leaflet.fullscreen.css\", 7));\n    Promise.all(/*! import() | leaflet-fullscreen */[__webpack_require__.e(\"vendors~leaflet~leaflet-fullscreen\"), __webpack_require__.e(\"leaflet-fullscreen\")]).then(__webpack_require__.t.bind(null, /*! leaflet-fullscreen */ \"./node_modules/leaflet-fullscreen/dist/Leaflet.fullscreen.js\", 7));\n    return Promise.all(/*! import() | leaflet */[__webpack_require__.e(\"vendors~leaflet~leaflet-fullscreen\"), __webpack_require__.e(\"vendors~leaflet\")]).then(__webpack_require__.t.bind(null, /*! leaflet */ \"./node_modules/leaflet/dist/leaflet-src.js\", 7));\n  });\n}\n/**\n * @returns {Promise}\n */\n\nfunction loadLeafletClusterer() {\n  return Object(_common_load_utilities__WEBPACK_IMPORTED_MODULE_1__[\"ensureLoadingPromiseOnlyExistsOnce\"])('leaflet-marker-cluster', function () {\n    __webpack_require__.e(/*! import() | leaflet-cluster */ \"vendors~leaflet-cluster\").then(__webpack_require__.t.bind(null, /*! leaflet.markercluster/dist/MarkerCluster.css */ \"./node_modules/leaflet.markercluster/dist/MarkerCluster.css\", 7));\n    __webpack_require__.e(/*! import() | leaflet-cluster */ \"vendors~leaflet-cluster\").then(__webpack_require__.t.bind(null, /*! leaflet.markercluster/dist/MarkerCluster.Default.css */ \"./node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css\", 7));\n    return __webpack_require__.e(/*! import() | leaflet-cluster */ \"vendors~leaflet-cluster\").then(__webpack_require__.t.bind(null, /*! imports-loader?L=>window.L!leaflet.markercluster */ \"./node_modules/imports-loader/index.js?L=>window.L!./node_modules/leaflet.markercluster/dist/leaflet.markercluster-src.js\", 7));\n  });\n}\n/**\n * @returns {Promise}\n */\n\nvar getCurrentUserLocation = function getCurrentUserLocation() {\n  return new Promise(function (resolve, reject) {\n    if (navigator.geolocation) {\n      navigator.geolocation.getCurrentPosition(function (position) {\n        resolve({\n          lat: position.coords.latitude,\n          lng: position.coords.longitude\n        });\n      }, function () {\n        reject('Geolocation not enabled by User');\n      });\n    } else {\n      reject('Browser doesnt support Geolocation');\n    }\n  });\n};\n\n//# sourceURL=webpack://LIS/./node_modules/@newland/assets-neos/Scripts/toubiz-map/utilities.js?");

/***/ })

}]);