waygo-maps 1.1.45 → 1.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.js CHANGED
@@ -581,7 +581,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
581
581
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
582
582
 
583
583
  "use strict";
584
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_ContentPlacementView_ContentDetails__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/ContentPlacementView/ContentDetails */ \"./src/components/ContentPlacementView/ContentDetails.js\");\n/* harmony import */ var _core_Control__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/Control */ \"./src/core/Control.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }\nfunction _get() { return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); }\nfunction _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n\n\nvar ContentPlacementControl = /*#__PURE__*/function (_Control) {\n function ContentPlacementControl() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, ContentPlacementControl);\n _this = _callSuper(this, ContentPlacementControl, [options]);\n _this.map = null;\n _this.contentPlacementIds = [];\n _this.currentContentPlacement = null;\n _this.contentPlacementView = null;\n _this.currentTop = window.innerHeight;\n _this.startingY = 0;\n _this.scrollConfiguration = {\n initialHeight: 0.45,\n // percent of the map container height\n minDistFromBottom: 110 // 185 // in px\n };\n _this.isDragging = false;\n _this.isAtTop = false;\n _this.velocity = 0;\n _this.decelerationFactor = 0.95;\n _this.minVelocity = 0.1;\n return _this;\n }\n _inherits(ContentPlacementControl, _Control);\n return _createClass(ContentPlacementControl, [{\n key: \"onAdd\",\n value: function onAdd(map) {\n this.map = map;\n this.container = document.createElement('div');\n this.container.className = 'content-details-control-container';\n this.initializeEventListeners();\n this._attachResizeListener();\n this._initialize();\n this.hide();\n return this.container;\n }\n }, {\n key: \"onRemove\",\n value: function onRemove() {\n _superPropGet(ContentPlacementControl, \"onRemove\", this, 3)([]);\n }\n }, {\n key: \"initializeEventListeners\",\n value: function initializeEventListeners() {\n this.map.on('state:default', this._handleDefaultState.bind(this));\n this.map.on('state:search', this._handleSearchState.bind(this));\n this.map.on('state:selectedContent', this._handleSelectedContentState.bind(this));\n this.map.on('state:directions', this._handleDirectionsState.bind(this));\n this.map.on('state:setup', this._handleSetupState.bind(this));\n this.map.on('initiate:back', this._handleMapInitiateBack.bind(this));\n this.map.map.on('mousedown', this._handleMapFocus.bind(this));\n this.map.map.on('touchstart', this._handleMapFocus.bind(this));\n this.container.addEventListener('mousedown', function (e) {\n return e.stopPropagation();\n });\n this.container.addEventListener('click', function (e) {\n return e.stopPropagation();\n });\n this.container.addEventListener('dblclick', function (e) {\n return e.stopPropagation();\n });\n // this.container.addEventListener('touchstart', (e) => e.stopPropagation());\n\n this.container.addEventListener('touchstart', this.handleTouchStart.bind(this));\n this.container.addEventListener('touchmove', this.handleTouchMove.bind(this));\n this.container.addEventListener('touchend', this.handleTouchEnd.bind(this));\n this.container.addEventListener('wheel', this.handleWheelScroll.bind(this));\n }\n }, {\n key: \"_handleMapFocus\",\n value: function _handleMapFocus(e) {\n if (this.currentViewType === 'desktop') return;\n var features = this.map.map.queryRenderedFeatures(e.point);\n var symbolFeatures = features.filter(function (feature) {\n return feature.layer.type === 'symbol';\n });\n if (symbolFeatures.length === 0) {\n this.scrollToMin(true);\n }\n }\n }, {\n key: \"handleTouchStart\",\n value: function handleTouchStart(event) {\n event.stopPropagation();\n this.startingY = event.touches[0].clientY;\n this.isDragging = true;\n this.velocity = 0;\n }\n }, {\n key: \"handleScrolling\",\n value: function handleScrolling(scrollAmount) {\n var element = this.contentPlacementView.getElement();\n var elementHeight = element.offsetHeight;\n var rect = this.map.mapContainer.getBoundingClientRect();\n var containerBottom = rect.bottom;\n var newTop = null;\n if (scrollAmount <= 0) {\n newTop = Math.max(containerBottom - elementHeight - rect.top, this.currentTop + scrollAmount);\n } else if (scrollAmount > 0) {\n newTop = Math.min(containerBottom - this.scrollConfiguration.minDistFromBottom - rect.top, this.currentTop + scrollAmount);\n }\n this.scrollTo(newTop);\n }\n }, {\n key: \"handleTouchMove\",\n value: function handleTouchMove(event) {\n if (this.currentViewType === 'desktop') return;\n if (!this.isDragging) return;\n var touchY = event.touches[0].clientY;\n var scrollAmount = -1 * (this.startingY - touchY);\n this.velocity = scrollAmount;\n this.handleScrolling(scrollAmount);\n this.startingY = touchY;\n }\n }, {\n key: \"handleTouchEnd\",\n value: function handleTouchEnd() {\n this.isDragging = false;\n this._applyInertia();\n }\n }, {\n key: \"_applyInertia\",\n value: function _applyInertia() {\n var _this2 = this;\n var rect = this.map.mapContainer.getBoundingClientRect();\n var element = this.contentPlacementView.getElement();\n var elementHeight = element.offsetHeight;\n var containerBottom = rect.bottom;\n var upperLimit = containerBottom - elementHeight - rect.top; // Upper scroll boundary\n var lowerLimit = containerBottom - this.scrollConfiguration.minDistFromBottom - rect.top;\n var initialVelocity = this.velocity;\n var duration = 400; // Duration of inertia in milliseconds (tweak this value)\n var startTime = performance.now(); // Start time of the inertia\n\n var _inertia = function inertia() {\n var currentTime = performance.now();\n var elapsedTime = currentTime - startTime;\n if (elapsedTime >= duration || Math.abs(_this2.velocity) < _this2.minVelocity) {\n _this2.velocity = 0;\n return;\n }\n ; // Stop when velocity is too low\n\n var progress = elapsedTime / duration; // Normalize time to [0, 1]\n var easingFactor = 1 - Math.pow(1 - progress, 2);\n _this2.velocity = initialVelocity * (1 - easingFactor);\n var newTop = _this2.currentTop + _this2.velocity;\n if (newTop <= upperLimit) {\n _this2.scrollTo(upperLimit);\n _this2.velocity = 0; // Stop inertia\n return;\n } else if (newTop >= lowerLimit) {\n _this2.scrollTo(lowerLimit);\n _this2.velocity = 0; // Stop inertia\n return;\n }\n\n // this.velocity *= this.decelerationFactor; // Apply deceleration\n // const easingFactor = Math.max(0.1, 1 - time / 100); // Easing factor decreases over time (clamped at 0.1)\n // this.velocity *= this.decelerationFactor * easingFactor;\n\n _this2.scrollTo(newTop); // Update position\n\n // time++;\n requestAnimationFrame(_inertia);\n };\n _inertia();\n }\n }, {\n key: \"handleWheelScroll\",\n value: function handleWheelScroll(event) {\n if (this.currentViewType === 'desktop') return;\n var scrollAmount = -event.deltaY;\n this.handleScrolling(scrollAmount);\n }\n\n // handleScroll() {\n // if (this.container.classList.contains('mobile-view')) {\n // // Get current scroll position\n // const scrollAmount = this.container.scrollTop;\n\n // // Adjust bottom position based on scroll amount\n // // As the user scrolls up, the container moves up (increase the bottom offset)\n // this.container.style.bottom = `${Math.min(45 + scrollAmount / 10, 100)}%`;\n\n // // If you want the container to reset to the bottom when done scrolling, add this:\n // clearTimeout(this.isScrolling);\n // this.isScrolling = setTimeout(() => {\n // this.container.style.bottom = '0px'; // Reset position when scrolling stops\n // }, 200);\n // }\n // }\n }, {\n key: \"_renderDesktopView\",\n value: function _renderDesktopView() {\n if (!this.contentPlacementView) {\n return;\n }\n var element = this.contentPlacementView.getElement();\n this.container.appendChild(element);\n this.container.classList.remove('mobile-view');\n this.container.classList.add('desktop-view');\n }\n }, {\n key: \"_renderMobileView\",\n value: function _renderMobileView() {\n if (!this.contentPlacementView) {\n return;\n }\n var element = this.contentPlacementView.getElement();\n this.container.appendChild(element);\n this.container.classList.remove('desktop-view');\n this.container.classList.add('mobile-view');\n }\n }, {\n key: \"_handleMapInitiateBack\",\n value: function _handleMapInitiateBack() {\n var currentState = this.map._stateCoordinator.state;\n if (currentState === 'selectedContent') {\n if (this.contentPlacementIds.length === 0) return;else if (this.contentPlacementIds.length === 1) {\n var stateHistory = this.map._stateCoordinator.stateHistory;\n var previousMapState = stateHistory[stateHistory.length - 2];\n stateHistory.pop();\n stateHistory.pop();\n if (previousMapState === 'search') {\n this.map.initiateSetToSearchState();\n } else {\n this.map.setToDefaultState();\n }\n } else {\n this.contentPlacementIds.pop();\n this.map.setToSelectedContentState(this.contentPlacementIds);\n }\n } else if (currentState === 'directions') {\n this.map.setToSelectedContentState(this.contentPlacementIds);\n }\n }\n }, {\n key: \"_handleSelectChildContentPlacement\",\n value: function _handleSelectChildContentPlacement(data) {\n var placementId = data.placementId;\n this.contentPlacementIds.push(placementId);\n this.map.setToSelectedContentState(this.contentPlacementIds);\n }\n }, {\n key: \"_handleDefaultState\",\n value: function () {\n var _handleDefaultState2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(this.currentViewType === 'mobile')) {\n _context.next = 3;\n break;\n }\n _context.next = 3;\n return this._scrollToBottom(true, {\n duration: 50\n });\n case 3:\n this.hide();\n this.contentPlacementIds = [];\n this.currentContentPlacement = null;\n this._clearViews();\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function _handleDefaultState() {\n return _handleDefaultState2.apply(this, arguments);\n }\n return _handleDefaultState;\n }()\n }, {\n key: \"_handleSearchState\",\n value: function _handleSearchState(_) {\n this.hide();\n this.contentPlacementIds = [];\n this.currentContentPlacement = null;\n this._clearViews();\n if (this.currentViewType === 'mobile') {\n this._scrollToBottom();\n }\n }\n }, {\n key: \"_handleSelectedContentState\",\n value: function _handleSelectedContentState(data) {\n var contentPlacementIds = data.contentPlacementIds,\n selectedContentPlacement = data.selectedContentPlacement;\n this.contentPlacementIds = contentPlacementIds;\n this.currentContentPlacement = selectedContentPlacement;\n this._updateContentViews();\n this.show();\n }\n }, {\n key: \"_handleDirectionsState\",\n value: function _handleDirectionsState(_) {\n this.hide();\n }\n }, {\n key: \"_handleSetupState\",\n value: function _handleSetupState() {\n this.hide();\n }\n }, {\n key: \"_handleSelectDirectionsButton\",\n value: function () {\n var _handleSelectDirectionsButton2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {\n var placementId;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n placementId = data.placementId;\n _context2.next = 3;\n return this.map.setToDirectionsState(null, placementId);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function _handleSelectDirectionsButton(_x) {\n return _handleSelectDirectionsButton2.apply(this, arguments);\n }\n return _handleSelectDirectionsButton;\n }()\n }, {\n key: \"_handleSelectShareButton\",\n value: function () {\n var _handleSelectShareButton2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {\n var _this3 = this;\n var placementId, floor, accountId, mapId, mapViewId, center, longitude, latitude, pitch, bearing, zoom, textToCopy;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n placementId = data.placementId;\n floor = this.map.getCurrentFloor();\n accountId = this.map.mapData.account_id;\n mapId = this.map.mapData.map_id;\n mapViewId = this.map.mapData.map_view_id;\n center = this.map.map.getCenter(); // Returns a LngLat object\n longitude = center.lng.toFixed(6);\n latitude = center.lat.toFixed(6);\n pitch = this.map.map.getPitch().toFixed(2); // Returns the pitch (tilt angle)\n bearing = this.map.map.getBearing().toFixed(2); // Returns the bearing (rotation angle)\n zoom = this.map.map.getZoom().toFixed(2);\n textToCopy = \"https://maps.waygomaps.com/\".concat(mapId, \"/\").concat(mapViewId, \"/selected-content/\").concat(placementId, \"/f\").concat(floor, \"@\").concat(longitude, \",\").concat(latitude, \",\").concat(zoom, \",\").concat(pitch, \",\").concat(bearing);\n navigator.clipboard.writeText(textToCopy).then(function () {\n _this3.contentPlacementView.showCopyPopup();\n })[\"catch\"](function (err) {\n return console.error('Failed to copy text:', err);\n });\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, this);\n }));\n function _handleSelectShareButton(_x2) {\n return _handleSelectShareButton2.apply(this, arguments);\n }\n return _handleSelectShareButton;\n }()\n }, {\n key: \"_handleSelectPhotos\",\n value: function _handleSelectPhotos(data) {\n var _this4 = this;\n var placementId = data.placementId,\n images = data.images;\n var currentImageIndex = 0;\n var totalImages = images.length;\n if (this.currentViewType === 'desktop' || this.currentViewType === 'mobile') {\n this.map.showModal(\"\\n <div class=\\\"waygo-map-modal-content photo-modal\\\">\\n <button class=\\\"modal-close-button\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke-width=\\\"1.5\\\" stroke=\\\"currentColor\\\">\\n <path stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" d=\\\"M6 18L18 6M6 6l12 12\\\" />\\n </svg>\\n </button>\\n \\n <div class=\\\"modal-counter\\\">\\n <span id=\\\"imageCounter\\\">\".concat(currentImageIndex + 1, \" / \").concat(totalImages, \"</span>\\n </div>\\n \\n <div class=\\\"modal-image-container\\\">\\n <button id=\\\"prevButton\\\" class=\\\"modal-nav-button prev\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke-width=\\\"1.5\\\" stroke=\\\"currentColor\\\">\\n <path stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" d=\\\"M15.75 19.5L8.25 12l7.5-7.5\\\" />\\n </svg>\\n </button>\\n \\n <div class=\\\"modal-image-wrapper\\\">\\n <img id=\\\"modalImage\\\" src=\\\"\").concat(images[currentImageIndex], \"\\\" class=\\\"modal-image\\\">\\n </div>\\n \\n <button id=\\\"nextButton\\\" class=\\\"modal-nav-button next\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke-width=\\\"1.5\\\" stroke=\\\"currentColor\\\">\\n <path stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" d=\\\"M8.25 4.5l7.5 7.5-7.5 7.5\\\" />\\n </svg>\\n </button>\\n </div>\\n </div>\\n \"));\n\n // Add close button listener\n var closeButton = document.querySelector('.modal-close-button');\n closeButton.addEventListener('click', function () {\n return _this4.map.hideModal();\n });\n } else {\n this.map.showModal(\"\\n <div class=\\\"waygo-map-modal-content photo-modal\\\">\\n <img src=\\\"\".concat(images[currentImageIndex], \"\\\" class=\\\"modal-image\\\">\\n </div>\\n \"));\n }\n\n // Add event listeners after modal is shown\n var modalImage = document.getElementById('modalImage');\n var prevButton = document.getElementById('prevButton');\n var nextButton = document.getElementById('nextButton');\n var imageCounter = document.getElementById('imageCounter');\n prevButton.onclick = function () {\n currentImageIndex = (currentImageIndex - 1 + images.length) % images.length;\n modalImage.src = images[currentImageIndex];\n imageCounter.textContent = \"\".concat(currentImageIndex + 1, \" / \").concat(totalImages);\n };\n nextButton.onclick = function () {\n currentImageIndex = (currentImageIndex + 1) % images.length;\n modalImage.src = images[currentImageIndex];\n imageCounter.textContent = \"\".concat(currentImageIndex + 1, \" / \").concat(totalImages);\n };\n }\n }, {\n key: \"_updateContentViews\",\n value: function _updateContentViews() {\n this._clearViews();\n this._render();\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.container.scrollTop = 0;\n if (!this.container) {\n return;\n }\n this.container.style.display = 'none';\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(targetHeight) {\n var _this5 = this;\n var animation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var animationOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var defaultAnimationOptions = {\n duration: 150,\n easing: 'easeInOut'\n };\n var options = _objectSpread(_objectSpread({}, defaultAnimationOptions), animationOptions);\n var startHeight = this.currentTop;\n var distance = targetHeight - startHeight;\n var startTime = null;\n\n // Easing functions\n var easingFunctions = {\n linear: function linear(t) {\n return t;\n },\n easeInOut: function easeInOut(t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n },\n easeIn: function easeIn(t) {\n return t * t;\n },\n easeOut: function easeOut(t) {\n return t * (2 - t);\n }\n };\n\n // Choose easing function\n var easingFunction = easingFunctions[options.easing] || easingFunctions.easeInOut;\n var duration = options.duration;\n return new Promise(function (resolve) {\n if (!animation) {\n _this5.currentTop = targetHeight; // Set the target height immediately\n _this5.container.style.top = \"\".concat(_this5.currentTop, \"px\");\n _this5.container.style.height = \"calc(100vh - \".concat(_this5.currentTop, \"px)\"); // Update height\n resolve();\n return; // Exit the function early\n }\n\n // Animate function using requestAnimationFrame\n var _animate = function animate(currentTime) {\n if (startTime === null) startTime = currentTime;\n var elapsed = currentTime - startTime;\n var progress = Math.min(elapsed / duration, 1); // Ensure progress doesn't exceed 1\n\n // Calculate current top position based on easing function\n var easedProgress = easingFunction(progress);\n var newHeight = startHeight + easedProgress * distance;\n\n // Update the container's top position and height\n _this5.currentTop = newHeight;\n _this5.container.style.top = \"\".concat(_this5.currentTop, \"px\");\n _this5.container.style.height = \"calc(100vh - \".concat(_this5.currentTop, \"px)\");\n if (progress < 1) {\n requestAnimationFrame(_animate); // Continue animating\n } else {\n resolve();\n }\n };\n\n // Start the animation\n requestAnimationFrame(_animate);\n });\n\n // if (!animation) {\n // this.currentTop = targetHeight; // Set the target height immediately\n // this.container.style.top = `${this.currentTop}px`;\n // this.container.style.height = `calc(100vh - ${this.currentTop}px)`; // Update height\n // return; // Exit the function early\n // }\n\n // // Animate function using requestAnimationFrame\n // const animate = (currentTime) => {\n // if (startTime === null) startTime = currentTime;\n // const elapsed = currentTime - startTime;\n // const progress = Math.min(elapsed / duration, 1); // Ensure progress doesn't exceed 1\n\n // // Calculate current top position based on easing function\n // const easedProgress = easingFunction(progress);\n // const newHeight = startHeight + easedProgress * distance;\n\n // // Update the container's top position and height\n // this.currentTop = newHeight;\n // this.container.style.top = `${this.currentTop}px`;\n // this.container.style.height = `calc(100vh - ${this.currentTop}px)`;\n\n // if (progress < 1) {\n // requestAnimationFrame(animate); // Continue animating\n // }\n // };\n\n // // Start the animation\n // requestAnimationFrame(animate);\n }\n }, {\n key: \"_resetScroll\",\n value: function _resetScroll() {\n var _this6 = this;\n var rect = this.map.mapContainer.getBoundingClientRect();\n var height = this.map.mapContainer.offsetHeight;\n if (this.currentTop < rect.top) {\n this.scrollTo(rect.bottom);\n }\n var viableKeys = this.contentPlacementView.findViableAdditionalData(this.currentContentPlacement);\n var viableKeyCount = Object.keys(viableKeys).length;\n var pixelHeight = height * (1 - this.scrollConfiguration.initialHeight);\n if (viableKeyCount === 0) {\n setTimeout(function () {\n if (_this6.contentPlacementView && _this6.contentPlacementView.contentPlacementHeader) {\n var headerElem = _this6.contentPlacementView.header;\n var headerHeight = headerElem.offsetHeight;\n pixelHeight = height - headerHeight - 20;\n // console.log(height, headerHeight, pixelHeight);\n }\n _this6.scrollTo(pixelHeight, true);\n }, 50); // Delay by 100 milliseconds\n } else {\n this.scrollTo(pixelHeight, true);\n }\n }\n }, {\n key: \"_scrollToBottom\",\n value: function _scrollToBottom() {\n var animate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var animationOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rect = this.map.mapContainer.getBoundingClientRect();\n return this.scrollTo(rect.bottom, animate, animationOptions);\n }\n }, {\n key: \"scrollToMin\",\n value: function scrollToMin() {\n var animate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var rect = this.map.mapContainer.getBoundingClientRect();\n this.scrollTo(rect.bottom - this.scrollConfiguration.minDistFromBottom, animate);\n }\n }, {\n key: \"_render\",\n value: function _render() {\n if (this.contentPlacementIds.length === 0 || this.currentContentPlacement === null) return;\n\n // if (this.currentViewType === 'mobile') {\n // this._resetScroll();\n // }\n this.contentPlacementView = new _components_ContentPlacementView_ContentDetails__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n this.contentPlacementView.updateView(this.currentContentPlacement);\n this.contentPlacementView.on('selectChildContentPlacement', this._handleSelectChildContentPlacement.bind(this));\n this.contentPlacementView.on('selectDirectionsButton', this._handleSelectDirectionsButton.bind(this));\n this.contentPlacementView.on('selectShareButton', this._handleSelectShareButton.bind(this));\n this.contentPlacementView.on('selectPhotos', this._handleSelectPhotos.bind(this));\n this._initialize();\n if (this.currentViewType === 'mobile') {\n this._resetScroll();\n }\n }\n }]);\n}(_core_Control__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ContentPlacementControl);\n\n//# sourceURL=webpack://waygomaps/./src/Controls/ContentPlacementControl.js?");
584
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _components_ContentPlacementView_ContentDetails__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/ContentPlacementView/ContentDetails */ \"./src/components/ContentPlacementView/ContentDetails.js\");\n/* harmony import */ var _core_Control__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/Control */ \"./src/core/Control.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }\nfunction _get() { return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); }\nfunction _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n\n\nvar ContentPlacementControl = /*#__PURE__*/function (_Control) {\n function ContentPlacementControl() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, ContentPlacementControl);\n _this = _callSuper(this, ContentPlacementControl, [options]);\n _this.map = null;\n _this.contentPlacementIds = [];\n _this.currentContentPlacement = null;\n _this.contentPlacementView = null;\n _this.currentTop = window.innerHeight;\n _this.startingY = 0;\n _this.scrollConfiguration = {\n initialHeight: 0.5,\n // percent of the map container height\n minDistFromBottom: 110 // 185 // in px\n };\n _this.isDragging = false;\n _this.isAtTop = false;\n _this.velocity = 0;\n _this.decelerationFactor = 0.95;\n _this.minVelocity = 0.1;\n return _this;\n }\n _inherits(ContentPlacementControl, _Control);\n return _createClass(ContentPlacementControl, [{\n key: \"onAdd\",\n value: function onAdd(map) {\n this.map = map;\n this.container = document.createElement('div');\n this.container.className = 'content-details-control-container';\n this.initializeEventListeners();\n this._attachResizeListener();\n this._initialize();\n this.hide();\n return this.container;\n }\n }, {\n key: \"onRemove\",\n value: function onRemove() {\n _superPropGet(ContentPlacementControl, \"onRemove\", this, 3)([]);\n }\n }, {\n key: \"initializeEventListeners\",\n value: function initializeEventListeners() {\n this.map.on('state:default', this._handleDefaultState.bind(this));\n this.map.on('state:search', this._handleSearchState.bind(this));\n this.map.on('state:selectedContent', this._handleSelectedContentState.bind(this));\n this.map.on('state:directions', this._handleDirectionsState.bind(this));\n this.map.on('state:setup', this._handleSetupState.bind(this));\n this.map.on('initiate:back', this._handleMapInitiateBack.bind(this));\n this.map.map.on('mousedown', this._handleMapFocus.bind(this));\n this.map.map.on('touchstart', this._handleMapFocus.bind(this));\n this.container.addEventListener('mousedown', function (e) {\n return e.stopPropagation();\n });\n this.container.addEventListener('click', function (e) {\n return e.stopPropagation();\n });\n this.container.addEventListener('dblclick', function (e) {\n return e.stopPropagation();\n });\n // this.container.addEventListener('touchstart', (e) => e.stopPropagation());\n\n this.container.addEventListener('touchstart', this.handleTouchStart.bind(this));\n this.container.addEventListener('touchmove', this.handleTouchMove.bind(this));\n this.container.addEventListener('touchend', this.handleTouchEnd.bind(this));\n this.container.addEventListener('wheel', this.handleWheelScroll.bind(this));\n }\n }, {\n key: \"_handleMapFocus\",\n value: function _handleMapFocus(e) {\n if (this.currentViewType === 'desktop') return;\n var features = this.map.map.queryRenderedFeatures(e.point);\n var symbolFeatures = features.filter(function (feature) {\n return feature.layer.type === 'symbol';\n });\n if (symbolFeatures.length === 0) {\n this.scrollToMin(true);\n }\n }\n }, {\n key: \"handleTouchStart\",\n value: function handleTouchStart(event) {\n event.stopPropagation();\n this.startingY = event.touches[0].clientY;\n this.isDragging = true;\n this.velocity = 0;\n }\n }, {\n key: \"handleScrolling\",\n value: function handleScrolling(scrollAmount) {\n var element = this.contentPlacementView.getElement();\n var elementHeight = element.offsetHeight;\n var rect = this.map.mapContainer.getBoundingClientRect();\n var containerBottom = rect.bottom;\n var newTop = null;\n if (scrollAmount <= 0) {\n newTop = Math.max(containerBottom - elementHeight - rect.top, this.currentTop + scrollAmount);\n } else if (scrollAmount > 0) {\n newTop = Math.min(containerBottom - this.scrollConfiguration.minDistFromBottom - rect.top, this.currentTop + scrollAmount);\n }\n this.scrollTo(newTop);\n }\n }, {\n key: \"handleTouchMove\",\n value: function handleTouchMove(event) {\n if (this.currentViewType === 'desktop') return;\n if (!this.isDragging) return;\n var touchY = event.touches[0].clientY;\n var scrollAmount = -1 * (this.startingY - touchY);\n this.velocity = scrollAmount;\n this.handleScrolling(scrollAmount);\n this.startingY = touchY;\n }\n }, {\n key: \"handleTouchEnd\",\n value: function handleTouchEnd() {\n this.isDragging = false;\n this._applyInertia();\n }\n }, {\n key: \"_applyInertia\",\n value: function _applyInertia() {\n var _this2 = this;\n var rect = this.map.mapContainer.getBoundingClientRect();\n var element = this.contentPlacementView.getElement();\n var elementHeight = element.offsetHeight;\n var containerBottom = rect.bottom;\n var upperLimit = containerBottom - elementHeight - rect.top; // Upper scroll boundary\n var lowerLimit = containerBottom - this.scrollConfiguration.minDistFromBottom - rect.top;\n var initialVelocity = this.velocity;\n var duration = 400; // Duration of inertia in milliseconds (tweak this value)\n var startTime = performance.now(); // Start time of the inertia\n\n var _inertia = function inertia() {\n var currentTime = performance.now();\n var elapsedTime = currentTime - startTime;\n if (elapsedTime >= duration || Math.abs(_this2.velocity) < _this2.minVelocity) {\n _this2.velocity = 0;\n return;\n }\n ; // Stop when velocity is too low\n\n var progress = elapsedTime / duration; // Normalize time to [0, 1]\n var easingFactor = 1 - Math.pow(1 - progress, 2);\n _this2.velocity = initialVelocity * (1 - easingFactor);\n var newTop = _this2.currentTop + _this2.velocity;\n if (newTop <= upperLimit) {\n _this2.scrollTo(upperLimit);\n _this2.velocity = 0; // Stop inertia\n return;\n } else if (newTop >= lowerLimit) {\n _this2.scrollTo(lowerLimit);\n _this2.velocity = 0; // Stop inertia\n return;\n }\n\n // this.velocity *= this.decelerationFactor; // Apply deceleration\n // const easingFactor = Math.max(0.1, 1 - time / 100); // Easing factor decreases over time (clamped at 0.1)\n // this.velocity *= this.decelerationFactor * easingFactor;\n\n _this2.scrollTo(newTop); // Update position\n\n // time++;\n requestAnimationFrame(_inertia);\n };\n _inertia();\n }\n }, {\n key: \"handleWheelScroll\",\n value: function handleWheelScroll(event) {\n if (this.currentViewType === 'desktop') return;\n var scrollAmount = -event.deltaY;\n this.handleScrolling(scrollAmount);\n }\n\n // handleScroll() {\n // if (this.container.classList.contains('mobile-view')) {\n // // Get current scroll position\n // const scrollAmount = this.container.scrollTop;\n\n // // Adjust bottom position based on scroll amount\n // // As the user scrolls up, the container moves up (increase the bottom offset)\n // this.container.style.bottom = `${Math.min(45 + scrollAmount / 10, 100)}%`;\n\n // // If you want the container to reset to the bottom when done scrolling, add this:\n // clearTimeout(this.isScrolling);\n // this.isScrolling = setTimeout(() => {\n // this.container.style.bottom = '0px'; // Reset position when scrolling stops\n // }, 200);\n // }\n // }\n }, {\n key: \"_renderDesktopView\",\n value: function _renderDesktopView() {\n if (!this.contentPlacementView) {\n return;\n }\n var element = this.contentPlacementView.getElement();\n this.container.appendChild(element);\n this.container.classList.remove('mobile-view');\n this.container.classList.add('desktop-view');\n }\n }, {\n key: \"_renderMobileView\",\n value: function _renderMobileView() {\n if (!this.contentPlacementView) {\n return;\n }\n var element = this.contentPlacementView.getElement();\n this.container.appendChild(element);\n this.container.classList.remove('desktop-view');\n this.container.classList.add('mobile-view');\n }\n }, {\n key: \"_handleMapInitiateBack\",\n value: function _handleMapInitiateBack() {\n var currentState = this.map._stateCoordinator.state;\n if (currentState === 'selectedContent') {\n if (this.contentPlacementIds.length === 0) return;else if (this.contentPlacementIds.length === 1) {\n var stateHistory = this.map._stateCoordinator.stateHistory;\n var previousMapState = stateHistory[stateHistory.length - 2];\n stateHistory.pop();\n stateHistory.pop();\n if (previousMapState === 'search') {\n this.map.initiateSetToSearchState();\n } else {\n this.map.setToDefaultState();\n }\n } else {\n this.contentPlacementIds.pop();\n this.map.setToSelectedContentState(this.contentPlacementIds);\n }\n } else if (currentState === 'directions') {\n this.map.setToSelectedContentState(this.contentPlacementIds);\n }\n }\n }, {\n key: \"_handleSelectChildContentPlacement\",\n value: function _handleSelectChildContentPlacement(data) {\n var placementId = data.placementId;\n this.contentPlacementIds.push(placementId);\n this.map.setToSelectedContentState(this.contentPlacementIds);\n }\n }, {\n key: \"_handleDefaultState\",\n value: function () {\n var _handleDefaultState2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(this.currentViewType === 'mobile')) {\n _context.next = 3;\n break;\n }\n _context.next = 3;\n return this._scrollToBottom(true, {\n duration: 50\n });\n case 3:\n this.hide();\n this.contentPlacementIds = [];\n this.currentContentPlacement = null;\n this._clearViews();\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function _handleDefaultState() {\n return _handleDefaultState2.apply(this, arguments);\n }\n return _handleDefaultState;\n }()\n }, {\n key: \"_handleSearchState\",\n value: function _handleSearchState(_) {\n this.hide();\n this.contentPlacementIds = [];\n this.currentContentPlacement = null;\n this._clearViews();\n if (this.currentViewType === 'mobile') {\n this._scrollToBottom();\n }\n }\n }, {\n key: \"_handleSelectedContentState\",\n value: function _handleSelectedContentState(data) {\n var contentPlacementIds = data.contentPlacementIds,\n selectedContentPlacement = data.selectedContentPlacement;\n this.contentPlacementIds = contentPlacementIds;\n this.currentContentPlacement = selectedContentPlacement;\n this._updateContentViews();\n this.show();\n }\n }, {\n key: \"_handleDirectionsState\",\n value: function _handleDirectionsState(_) {\n this.hide();\n }\n }, {\n key: \"_handleSetupState\",\n value: function _handleSetupState() {\n this.hide();\n }\n }, {\n key: \"_handleSelectDirectionsButton\",\n value: function () {\n var _handleSelectDirectionsButton2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {\n var placementId;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n placementId = data.placementId;\n _context2.next = 3;\n return this.map.setToDirectionsState(null, placementId);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function _handleSelectDirectionsButton(_x) {\n return _handleSelectDirectionsButton2.apply(this, arguments);\n }\n return _handleSelectDirectionsButton;\n }()\n }, {\n key: \"_handleSelectShareButton\",\n value: function () {\n var _handleSelectShareButton2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {\n var _this3 = this;\n var placementId, floor, accountId, mapId, mapViewId, center, longitude, latitude, pitch, bearing, zoom, textToCopy;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n placementId = data.placementId;\n floor = this.map.getCurrentFloor();\n accountId = this.map.mapData.account_id;\n mapId = this.map.mapData.map_id;\n mapViewId = this.map.mapData.map_view_id;\n center = this.map.map.getCenter(); // Returns a LngLat object\n longitude = center.lng.toFixed(6);\n latitude = center.lat.toFixed(6);\n pitch = this.map.map.getPitch().toFixed(2); // Returns the pitch (tilt angle)\n bearing = this.map.map.getBearing().toFixed(2); // Returns the bearing (rotation angle)\n zoom = this.map.map.getZoom().toFixed(2);\n textToCopy = \"https://maps.waygomaps.com/\".concat(mapId, \"/\").concat(mapViewId, \"/selected-content/\").concat(placementId, \"/f\").concat(floor, \"@\").concat(longitude, \",\").concat(latitude, \",\").concat(zoom, \",\").concat(pitch, \",\").concat(bearing);\n navigator.clipboard.writeText(textToCopy).then(function () {\n _this3.contentPlacementView.showCopyPopup();\n })[\"catch\"](function (err) {\n return console.error('Failed to copy text:', err);\n });\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, this);\n }));\n function _handleSelectShareButton(_x2) {\n return _handleSelectShareButton2.apply(this, arguments);\n }\n return _handleSelectShareButton;\n }()\n }, {\n key: \"_handleSelectPhotos\",\n value: function _handleSelectPhotos(data) {\n var _this4 = this;\n var placementId = data.placementId,\n images = data.images;\n var currentImageIndex = 0;\n var totalImages = images.length;\n if (this.currentViewType === 'desktop' || this.currentViewType === 'mobile') {\n this.map.showModal(\"\\n <div class=\\\"waygo-map-modal-content photo-modal\\\">\\n <button class=\\\"modal-close-button\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke-width=\\\"1.5\\\" stroke=\\\"currentColor\\\">\\n <path stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" d=\\\"M6 18L18 6M6 6l12 12\\\" />\\n </svg>\\n </button>\\n \\n <div class=\\\"modal-counter\\\">\\n <span id=\\\"imageCounter\\\">\".concat(currentImageIndex + 1, \" / \").concat(totalImages, \"</span>\\n </div>\\n \\n <div class=\\\"modal-image-container\\\">\\n <button id=\\\"prevButton\\\" class=\\\"modal-nav-button prev\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke-width=\\\"1.5\\\" stroke=\\\"currentColor\\\">\\n <path stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" d=\\\"M15.75 19.5L8.25 12l7.5-7.5\\\" />\\n </svg>\\n </button>\\n \\n <div class=\\\"modal-image-wrapper\\\">\\n <img id=\\\"modalImage\\\" src=\\\"\").concat(images[currentImageIndex], \"\\\" class=\\\"modal-image\\\">\\n </div>\\n \\n <button id=\\\"nextButton\\\" class=\\\"modal-nav-button next\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" stroke-width=\\\"1.5\\\" stroke=\\\"currentColor\\\">\\n <path stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" d=\\\"M8.25 4.5l7.5 7.5-7.5 7.5\\\" />\\n </svg>\\n </button>\\n </div>\\n </div>\\n \"));\n\n // Add close button listener\n var closeButton = document.querySelector('.modal-close-button');\n closeButton.addEventListener('click', function () {\n return _this4.map.hideModal();\n });\n } else {\n this.map.showModal(\"\\n <div class=\\\"waygo-map-modal-content photo-modal\\\">\\n <img src=\\\"\".concat(images[currentImageIndex], \"\\\" class=\\\"modal-image\\\">\\n </div>\\n \"));\n }\n\n // Add event listeners after modal is shown\n var modalImage = document.getElementById('modalImage');\n var prevButton = document.getElementById('prevButton');\n var nextButton = document.getElementById('nextButton');\n var imageCounter = document.getElementById('imageCounter');\n prevButton.onclick = function () {\n currentImageIndex = (currentImageIndex - 1 + images.length) % images.length;\n modalImage.src = images[currentImageIndex];\n imageCounter.textContent = \"\".concat(currentImageIndex + 1, \" / \").concat(totalImages);\n };\n nextButton.onclick = function () {\n currentImageIndex = (currentImageIndex + 1) % images.length;\n modalImage.src = images[currentImageIndex];\n imageCounter.textContent = \"\".concat(currentImageIndex + 1, \" / \").concat(totalImages);\n };\n }\n }, {\n key: \"_updateContentViews\",\n value: function _updateContentViews() {\n this._clearViews();\n this._render();\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.container.scrollTop = 0;\n if (!this.container) {\n return;\n }\n this.container.style.display = 'none';\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(targetHeight) {\n var _this5 = this;\n var animation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var animationOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var defaultAnimationOptions = {\n duration: 150,\n easing: 'easeInOut'\n };\n var options = _objectSpread(_objectSpread({}, defaultAnimationOptions), animationOptions);\n var startHeight = this.currentTop;\n var distance = targetHeight - startHeight;\n var startTime = null;\n\n // Easing functions\n var easingFunctions = {\n linear: function linear(t) {\n return t;\n },\n easeInOut: function easeInOut(t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n },\n easeIn: function easeIn(t) {\n return t * t;\n },\n easeOut: function easeOut(t) {\n return t * (2 - t);\n }\n };\n\n // Choose easing function\n var easingFunction = easingFunctions[options.easing] || easingFunctions.easeInOut;\n var duration = options.duration;\n return new Promise(function (resolve) {\n if (!animation) {\n _this5.currentTop = targetHeight; // Set the target height immediately\n _this5.container.style.top = \"\".concat(_this5.currentTop, \"px\");\n _this5.container.style.height = \"calc(100vh - \".concat(_this5.currentTop, \"px)\"); // Update height\n resolve();\n return; // Exit the function early\n }\n\n // Animate function using requestAnimationFrame\n var _animate = function animate(currentTime) {\n if (startTime === null) startTime = currentTime;\n var elapsed = currentTime - startTime;\n var progress = Math.min(elapsed / duration, 1); // Ensure progress doesn't exceed 1\n\n // Calculate current top position based on easing function\n var easedProgress = easingFunction(progress);\n var newHeight = startHeight + easedProgress * distance;\n\n // Update the container's top position and height\n _this5.currentTop = newHeight;\n _this5.container.style.top = \"\".concat(_this5.currentTop, \"px\");\n _this5.container.style.height = \"calc(100vh - \".concat(_this5.currentTop, \"px)\");\n if (progress < 1) {\n requestAnimationFrame(_animate); // Continue animating\n } else {\n resolve();\n }\n };\n\n // Start the animation\n requestAnimationFrame(_animate);\n });\n\n // if (!animation) {\n // this.currentTop = targetHeight; // Set the target height immediately\n // this.container.style.top = `${this.currentTop}px`;\n // this.container.style.height = `calc(100vh - ${this.currentTop}px)`; // Update height\n // return; // Exit the function early\n // }\n\n // // Animate function using requestAnimationFrame\n // const animate = (currentTime) => {\n // if (startTime === null) startTime = currentTime;\n // const elapsed = currentTime - startTime;\n // const progress = Math.min(elapsed / duration, 1); // Ensure progress doesn't exceed 1\n\n // // Calculate current top position based on easing function\n // const easedProgress = easingFunction(progress);\n // const newHeight = startHeight + easedProgress * distance;\n\n // // Update the container's top position and height\n // this.currentTop = newHeight;\n // this.container.style.top = `${this.currentTop}px`;\n // this.container.style.height = `calc(100vh - ${this.currentTop}px)`;\n\n // if (progress < 1) {\n // requestAnimationFrame(animate); // Continue animating\n // }\n // };\n\n // // Start the animation\n // requestAnimationFrame(animate);\n }\n }, {\n key: \"_resetScroll\",\n value: function _resetScroll() {\n var _this6 = this;\n var rect = this.map.mapContainer.getBoundingClientRect();\n var height = this.map.mapContainer.offsetHeight;\n if (this.currentTop < rect.top) {\n this.scrollTo(rect.bottom);\n }\n var viableKeys = this.contentPlacementView.findViableAdditionalData(this.currentContentPlacement);\n var viableKeyCount = Object.keys(viableKeys).length;\n var childCount = Object.keys(this.currentContentPlacement.children).length;\n console.log('children count', childCount);\n var pixelHeight = height * (1 - this.scrollConfiguration.initialHeight);\n if (viableKeyCount === 0 && childCount === 0) {\n setTimeout(function () {\n if (_this6.contentPlacementView && _this6.contentPlacementView.contentPlacementHeader) {\n var headerElem = _this6.contentPlacementView.header;\n var headerHeight = headerElem.offsetHeight;\n pixelHeight = height - headerHeight - 20;\n // console.log(height, headerHeight, pixelHeight);\n }\n _this6.scrollTo(pixelHeight, true);\n }, 50); // Delay by 100 milliseconds\n } else {\n this.scrollTo(pixelHeight, true);\n }\n }\n }, {\n key: \"_scrollToBottom\",\n value: function _scrollToBottom() {\n var animate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var animationOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rect = this.map.mapContainer.getBoundingClientRect();\n return this.scrollTo(rect.bottom, animate, animationOptions);\n }\n }, {\n key: \"scrollToMin\",\n value: function scrollToMin() {\n var animate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var rect = this.map.mapContainer.getBoundingClientRect();\n this.scrollTo(rect.bottom - this.scrollConfiguration.minDistFromBottom, animate);\n }\n }, {\n key: \"_render\",\n value: function _render() {\n if (this.contentPlacementIds.length === 0 || this.currentContentPlacement === null) return;\n\n // if (this.currentViewType === 'mobile') {\n // this._resetScroll();\n // }\n this.contentPlacementView = new _components_ContentPlacementView_ContentDetails__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n this.contentPlacementView.updateView(this.currentContentPlacement);\n this.contentPlacementView.on('selectChildContentPlacement', this._handleSelectChildContentPlacement.bind(this));\n this.contentPlacementView.on('selectDirectionsButton', this._handleSelectDirectionsButton.bind(this));\n this.contentPlacementView.on('selectShareButton', this._handleSelectShareButton.bind(this));\n this.contentPlacementView.on('selectPhotos', this._handleSelectPhotos.bind(this));\n this._initialize();\n if (this.currentViewType === 'mobile') {\n this._resetScroll();\n }\n }\n }]);\n}(_core_Control__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ContentPlacementControl);\n\n//# sourceURL=webpack://waygomaps/./src/Controls/ContentPlacementControl.js?");
585
585
 
586
586
  /***/ }),
587
587
 
@@ -713,7 +713,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
713
713
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
714
714
 
715
715
  "use strict";
716
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ContentChildButton: () => (/* binding */ ContentChildButton),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_Component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/Component */ \"./src/core/Component.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n\nvar ContentChildButton = /*#__PURE__*/function (_Component) {\n function ContentChildButton(childPlacement) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, ContentChildButton);\n _this = _callSuper(this, ContentChildButton, [options]);\n _this.childPlacement = childPlacement;\n _this.maxValueLength = 50;\n _this.maxEntriesToShow = 3;\n _this._initialize();\n return _this;\n }\n _inherits(ContentChildButton, _Component);\n return _createClass(ContentChildButton, [{\n key: \"_initialize\",\n value: function _initialize() {\n this.element = document.createElement('button');\n this.element.className = 'content-details-child-view';\n this.titleElement = document.createElement('div');\n this.titleElement.className = 'content-details-child-view-title';\n var titleKey = this.childPlacement.catalog.content_title_key;\n this.titleElement.textContent = \"\".concat(this.childPlacement.content.data[titleKey], \" ->\");\n this._render();\n }\n }, {\n key: \"_truncateText\",\n value: function _truncateText(text, maxLength) {\n if (text.length > maxLength) {\n return text.slice(0, maxLength - 3) + '...'; // Truncate and append \"...\"\n }\n return text;\n }\n }, {\n key: \"findViableData\",\n value: function findViableData(contentPlacement) {\n var data = contentPlacement.content.data;\n var keys = Object.keys(data);\n var titleKey = contentPlacement.catalog.content_title_key;\n var excludedKeys = contentPlacement.excluded_child_fields || [];\n var viableData = {};\n keys.forEach(function (key) {\n var value = data[key];\n if (key !== titleKey &&\n // key !== 'Type' &&\n !key.toLowerCase().includes('description') && !excludedKeys.includes(key) && contentPlacement.catalog.data_schema[key] !== 'image' && contentPlacement.catalog.data_schema[key] !== 'url' && value !== null && value !== undefined && value !== \"\") {\n viableData[key] = value;\n }\n });\n return viableData;\n }\n }, {\n key: \"_render\",\n value: function _render() {\n var _this2 = this;\n this.element.appendChild(this.titleElement);\n var dataDict = this.findViableData(this.childPlacement);\n var entries = Object.entries(dataDict);\n if (Object.keys(dataDict).length === 0) {\n this.titleElement.style.marginBottom = \"0px\";\n }\n entries.slice(0, this.maxEntriesToShow).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n // for (const [key, value] of ) {\n var dataRow = document.createElement('div');\n dataRow.className = 'content-details-child-view-data-row';\n var keyElement = document.createElement('div');\n keyElement.className = 'content-details-child-view-data-key';\n keyElement.textContent = key.toUpperCase(); // `${key}: `;\n\n var valueElement = document.createElement('div');\n valueElement.className = 'content-details-child-view-data-value';\n valueElement.textContent = _this2._truncateText(value.toString(), _this2.maxValueLength); // value;\n\n dataRow.appendChild(keyElement);\n dataRow.appendChild(valueElement);\n _this2.element.appendChild(dataRow);\n });\n }\n }, {\n key: \"getElement\",\n value: function getElement() {\n return this.element;\n }\n }]);\n}(_core_Component__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ContentChildButton);\n\n//# sourceURL=webpack://waygomaps/./src/components/ContentPlacementView/ContentChildButton.js?");
716
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ContentChildButton: () => (/* binding */ ContentChildButton),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_Component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/Component */ \"./src/core/Component.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n\nvar ContentChildButton = /*#__PURE__*/function (_Component) {\n function ContentChildButton(childPlacement) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, ContentChildButton);\n _this = _callSuper(this, ContentChildButton, [options]);\n _this.childPlacement = childPlacement;\n _this.maxValueLength = 50;\n _this.maxEntriesToShow = 3;\n _this._initialize();\n return _this;\n }\n _inherits(ContentChildButton, _Component);\n return _createClass(ContentChildButton, [{\n key: \"_initialize\",\n value: function _initialize() {\n this.element = document.createElement('button');\n this.element.className = 'content-details-child-view';\n this.titleElement = document.createElement('div');\n this.titleElement.className = 'content-details-child-view-title';\n var titleKey = this.childPlacement.catalog.content_title_key;\n this.titleElement.textContent = \"\".concat(this.childPlacement.content.data[titleKey]);\n this._render();\n }\n }, {\n key: \"_truncateText\",\n value: function _truncateText(text, maxLength) {\n if (text.length > maxLength) {\n return text.slice(0, maxLength - 3) + '...'; // Truncate and append \"...\"\n }\n return text;\n }\n }, {\n key: \"findViableData\",\n value: function findViableData(contentPlacement) {\n var data = contentPlacement.content.data;\n var keys = Object.keys(data);\n var titleKey = contentPlacement.catalog.content_title_key;\n var excludedKeys = contentPlacement.excluded_child_fields || [];\n var viableData = {};\n keys.forEach(function (key) {\n var value = data[key];\n if (key !== titleKey &&\n // key !== 'Type' &&\n !key.toLowerCase().includes('description') && !excludedKeys.includes(key) && contentPlacement.catalog.data_schema[key] !== 'image' && contentPlacement.catalog.data_schema[key] !== 'url' && value !== null && value !== undefined && value !== \"\") {\n viableData[key] = value;\n }\n });\n return viableData;\n }\n }, {\n key: \"_render\",\n value: function _render() {\n var _this2 = this;\n this.element.appendChild(this.titleElement);\n var dataDict = this.findViableData(this.childPlacement);\n var entries = Object.entries(dataDict);\n if (Object.keys(dataDict).length === 0) {\n this.titleElement.style.marginBottom = \"0px\";\n }\n entries.slice(0, this.maxEntriesToShow).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n // for (const [key, value] of ) {\n var dataRow = document.createElement('div');\n dataRow.className = 'content-details-child-view-data-row';\n var keyElement = document.createElement('div');\n keyElement.className = 'content-details-child-view-data-key';\n keyElement.textContent = key.toUpperCase(); // `${key}: `;\n\n var valueElement = document.createElement('div');\n valueElement.className = 'content-details-child-view-data-value';\n valueElement.textContent = _this2._truncateText(value.toString(), _this2.maxValueLength); // value;\n\n dataRow.appendChild(keyElement);\n dataRow.appendChild(valueElement);\n _this2.element.appendChild(dataRow);\n });\n }\n }, {\n key: \"getElement\",\n value: function getElement() {\n return this.element;\n }\n }]);\n}(_core_Component__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ContentChildButton);\n\n//# sourceURL=webpack://waygomaps/./src/components/ContentPlacementView/ContentChildButton.js?");
717
717
 
718
718
  /***/ }),
719
719
 
@@ -801,7 +801,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
801
801
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
802
802
 
803
803
  "use strict";
804
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MapView: () => (/* binding */ MapView)\n/* harmony export */ });\n/* harmony import */ var _utils_resourceLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/resourceLoader */ \"./src/utils/resourceLoader.js\");\n/* harmony import */ var _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../WaygoMaps */ \"./src/WaygoMaps.js\");\n/* harmony import */ var _core_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/Component */ \"./src/core/Component.js\");\n/* harmony import */ var _StateCoordinator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./StateCoordinator */ \"./src/components/MapView/StateCoordinator.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../index */ \"./src/index.js\");\n/* harmony import */ var _assets_logoOutline_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../assets/logoOutline.svg */ \"./src/assets/logoOutline.svg\");\n/* harmony import */ var _assets_logoInner_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../assets/logoInner.svg */ \"./src/assets/logoInner.svg\");\nvar _defaultMapOptions;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n// import WaygoLogoUrl from \"../../assets/WaygoLogoWhite.svg\";\n// import WaygoLogoUrl from \"../../assets/WaygoIconWhite.svg\";\n\n// import { convertVerticesToCoordinates } from \"../../utils/coordinateSystems\";\n\nvar mapboxCSS = 'https://api.mapbox.com/mapbox-gl-js/v3.5.1/mapbox-gl.css';\nvar mapboxJS = 'https://api.mapbox.com/mapbox-gl-js/v3.5.1/mapbox-gl.js';\nvar accessToken = 'pk.eyJ1Ijoid2F5Z28tbWFwcyIsImEiOiJjbGtxYzZ1N3QxdG43M210bXFuYmJ4a3gxIn0.tlbznj_fRJ8La6s2UUMO6A';\nvar mock = {\n '2d1d26267da84c4b87eedc1751d71067:0dc23522b7f841ab88756a94428538d1': {\n 'steps': ['Leave Keynote Theater and make a left (73 ft)', 'Turn right at Kyndral (104 ft)', 'Turn left at SAP (182 ft)', 'Turn right at Samsung (47 ft)', 'Turn left at May Mobility (142 feet)', 'Turn right and arrive at Monta, on your left'],\n 'path': [[-81.557308010743881, -195.68687504906683], [-66.793528483184829, -195.68687504906688], [-66.793528483184829, -136.30367294932935], [-6.7541584044446665, -136.30367294932955], [-6.7541584044446195, -106.92078820451393], [81.828518760909716, -106.92078820451393], [81.828518760909716, -47.209502115275079], [140.88363687114594, -47.209502115275079]]\n }\n};\nvar mockData = {\n 'b1800bf6e3ed480cae21526e42464676:a7fa2fb07ae04049b9026c296d015d66': {\n 'steps': ['Leave Roundtable and make a left', 'Turn right after walking 177 feet', 'Turn left after walking 203 feet', 'Turn right after walking 100 feet', 'Continue straight in 242 feet', 'Arrive at Stage 4, on your left'],\n 'path': [[95.645948774511609, -118.96329432647396], [41.840174496296385, -118.96329432647379], [41.840174496296484, -56.955420310725756], [10.344111504170499, -56.955420310725756], [10.34411150417062, 18.175813285074767], [0.17350782962993705, 18.175813285074767], [0.17350782962999536, 54.265052130219125], [-25.417043351472369, 54.26505213021921]]\n },\n // ROUNDTABLE TO STAGE 4\n '529803fcdd7e4d5db5ed71b9ff1ef0e2:899969e0115b4d8da8fb51bedf7caff2': {\n 'steps': [\"Leave Startups Info Point and make a left\", \"Turn right in 12 feet\", \"Turn left in 37 feet\", \"Continue straight for 182 feet\", \"Turn right in 36 feet\", \"Turn left after 29 feet\", \"Turn right after 57 feet\", \"Turn left after walking 42 feet\", \"Arrive at Alpha 1, on your right\"],\n 'path': [[284.28160504078147, -119.85123601826949], [258.75367051155007, -119.8512360182694], [258.75367051155007, -57.515278013020058], [-40.902596633706594, -57.515278013019092], [-40.902596633706445, 19.584459519789313], [-169.83960450772221, 19.584459519789728], [-169.83960450772213, 78.311493640524645], [-215.11519505890323, 78.311493640524787]]\n },\n 'd1910e5724844b40bf8e2a721fba172a:3673b48d96b04d7aa65937dec3276d3c': {\n 'steps': [\"Leave startup lounge and make a right\", \"Continue straight for 22 feet, then turn left\", \"Turn right in 37 feet\", \"Continue straight for 143 feet, then turn left\", \"Turn right in 32 feet\", \"Continue straight for 210 feet\", \"Turn right, and continue for 5 feet\", \"Arrive at The Black Innovation Zone, on your right\"],\n 'path': [[417.35544488563073, 75.74517709550193], [356.33182283838664, 75.745177095502129], [356.33182283838653, 17.674310953769847], [121.7517703449482, 17.674310953770604], [121.75177034494808, -56.800754663027305], [-207.21694798680142, -56.80075466302624], [-207.21694798680144, -78.116837633560053]]\n }\n};\nvar defaultMapOptions = (_defaultMapOptions = {\n container: 'map',\n sourceId: '2024.2xw_YUXYS8GoDTB2AQgN3A',\n center: [0, 0],\n floor: 0,\n zoom: 13,\n bearing: 0,\n // 46.15762290134818,-25.60000000000025\n // pitch: 30,\n pitch: 46\n}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defaultMapOptions, \"bearing\", -25), \"minPitch\", 0), \"maxPitch\", 60), \"minZoom\", 10.5), \"maxZoom\", 18.5), \"bounds\", null), \"doubleClickZoom\", true), \"dragPan\", true), \"dragRotate\", true), \"scrollZoom\", true), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defaultMapOptions, \"touchPitch\", true), \"touchZoomRotate\", true), \"interactive\", true), \"trackResize\", true), \"keyboard\", true), \"defaultControls\", false), \"setup\", false));\nvar MapView = /*#__PURE__*/function (_Component) {\n function MapView() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, MapView);\n _this = _callSuper(this, MapView, [_objectSpread(_objectSpread({}, defaultMapOptions), options)]);\n _this.mapViewApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getMapViewApi();\n _this.searchApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSearchApi();\n _this.routesApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getRotuesApi();\n _this.mapContainer = document.createElement('div');\n _this.mapContainer.className = 'inner-map-container';\n _this.ready = _this._initialize(options);\n _this.initialLoad = false;\n _this.originalFilters = {};\n _this._currentFloorIndex = options.floor;\n _this.mapData = null;\n _this._stateCoordinator = new _StateCoordinator__WEBPACK_IMPORTED_MODULE_3__[\"default\"](_this);\n _this.defaultControls = options.defaultControls; // || false;\n _this.setupControl = null;\n _this.location = options.location || null;\n _this.modalContainer = null;\n return _this;\n }\n _inherits(MapView, _Component);\n return _createClass(MapView, [{\n key: \"showModal\",\n value: function showModal(content) {\n var _this2 = this;\n // Create modal container if it doesn't exist\n if (!this.modalContainer) {\n this.modalContainer = document.createElement('div');\n this.modalContainer.className = 'waygo-map-modal-container';\n this.mapContainer.appendChild(this.modalContainer);\n\n // Add click handler to close modal when clicking outside\n this.modalContainer.addEventListener('click', function (e) {\n if (e.target === _this2.modalContainer) {\n _this2.hideModal();\n }\n });\n }\n\n // Create modal content\n var modalContent = document.createElement('div');\n modalContent.className = 'waygo-map-modal-content';\n\n // Can accept HTML string or DOM element\n if (typeof content === 'string') {\n modalContent.innerHTML = content;\n } else {\n modalContent.appendChild(content);\n }\n\n // Clear existing content and add new\n this.modalContainer.innerHTML = '';\n this.modalContainer.appendChild(modalContent);\n this.modalContainer.style.display = 'flex';\n }\n }, {\n key: \"hideModal\",\n value: function hideModal() {\n if (this.modalContainer) {\n this.modalContainer.style.display = 'none';\n }\n }\n }, {\n key: \"_initialize\",\n value: function () {\n var _initialize2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _this3 = this;\n var styleId;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return this._loadMapLibraries();\n case 3:\n mapboxgl.clearStorage();\n this.render();\n _context.next = 7;\n return this._initializeMapData();\n case 7:\n if (this.mapData) {\n _context.next = 10;\n break;\n }\n console.error(\"Error initializing map data.\");\n return _context.abrupt(\"return\");\n case 10:\n styleId = this.mapData.style_id;\n if (typeof mapboxgl !== 'undefined' && styleId) {\n mapboxgl.accessToken = accessToken;\n this.map = new mapboxgl.Map({\n container: this.mapContainer,\n style: \"mapbox://styles/waygo-maps/\".concat(styleId),\n center: this.options.center,\n zoom: this.options.zoom,\n bearing: this.options.bearing,\n pitch: this.options.pitch,\n minPitch: this.options.minPitch,\n maxPitch: this.options.maxPitch,\n minZoom: this.options.minZoom,\n maxZoom: this.options.maxZoom,\n bounds: this.options.bounds,\n doubleClickZoom: this.options.doubleClickZoom,\n dragPan: this.options.dragPan,\n dragRotate: this.options.dragRotate,\n scrollZoom: this.options.scrollZoom,\n touchPitch: this.options.touchPitch,\n touchZoomRotate: this.options.touchZoomRotate,\n interactive: this.options.interactive,\n trackResize: this.options.trackResize,\n keyboard: this.options.keyboard\n });\n this.map.on('styledata', function () {\n if (!_this3.initialLoad) {\n _this3._initializeOriginalFilters();\n _this3.updateFloor(_this3.options.floor, false);\n _this3.initialLoad = true;\n }\n });\n this.map.on('load', function () {\n if (_this3.defaultControls) {\n _this3._addLogoImage();\n _this3._addDefaultControls();\n _this3.updateFloor(_this3.options.floor, false);\n }\n if (_this3.options.setup) {\n _this3.setToSetupState();\n }\n _this3.fire('load', {\n mapData: _this3.mapData\n });\n });\n this._initializeEventListeners();\n } else {\n console.error('Mapbox GL JS is not loaded.');\n }\n _context.next = 17;\n break;\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](0);\n console.error('Failed to initialize the map:', _context.t0);\n case 17:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[0, 14]]);\n }));\n function _initialize() {\n return _initialize2.apply(this, arguments);\n }\n return _initialize;\n }()\n }, {\n key: \"_addLogoImage\",\n value: function _addLogoImage() {\n var linkUrl = 'https://waygomaps.com';\n var imageContainer = document.createElement('div');\n imageContainer.className = 'logo-image-container';\n var outlineImageElement = document.createElement('img');\n outlineImageElement.className = 'logo-outline-element';\n outlineImageElement.src = _assets_logoOutline_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n outlineImageElement.alt = 'Clickable image';\n\n // Append the image to the container\n imageContainer.appendChild(outlineImageElement);\n var fillImageElement = document.createElement('img');\n fillImageElement.className = 'logo-fill-element';\n fillImageElement.src = _assets_logoInner_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n fillImageElement.alt = 'Clickable image';\n\n // Append the image to the container\n imageContainer.appendChild(fillImageElement);\n\n // Add click event to open the link\n imageContainer.addEventListener('click', function () {\n window.open(linkUrl, '_blank'); // Open link in a new tab\n });\n\n // Append the container to the map container\n this.mapContainer.appendChild(imageContainer);\n\n // const websiteContainer = document.createElement('div');\n // websiteContainer.className = 'website-container';\n // websiteContainer.textContent = '© Waygo Maps';\n // // websiteContainer.textContent = 'waygomaps.com';\n\n // websiteContainer.addEventListener('click', () => {\n // window.open(linkUrl, '_blank'); // Open link in a new tab\n // });\n\n // this.mapContainer.appendChild(websiteContainer);\n }\n }, {\n key: \"getCurrentFloor\",\n value: function getCurrentFloor() {\n return this._currentFloorIndex;\n }\n }, {\n key: \"_addDefaultControls\",\n value: function _addDefaultControls() {\n var _this4 = this;\n var controls = [\n // new waygo.ContentPlacementControl(),\n new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SearchBoxControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].FloorSelectorControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].CategoryBarControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SearchResultsControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].ContentPlacementControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].DirectionsControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].InteractionControl()\n // new waygo.FloorSelectorControl()\n ];\n controls.forEach(function (control) {\n return _this4.addControl(control);\n });\n }\n }, {\n key: \"_initializeOriginalFilters\",\n value: function _initializeOriginalFilters() {\n var _this5 = this;\n var layers = this.map.getStyle().layers;\n layers.forEach(function (layer) {\n if (layer.type !== 'background' && layer.type !== 'raster' && layer.type !== 'heatmap') {\n // Get and store the original filter, or set to null if no filter exists\n _this5.originalFilters[layer.id] = _this5.map.getFilter(layer.id) || null;\n }\n });\n }\n }, {\n key: \"_initializeEventListeners\",\n value: function _initializeEventListeners() {\n var _this6 = this;\n this.mapContainer.addEventListener('mousedown', function (event) {\n return _this6.fire('mousedown', {\n originalEvent: event\n });\n });\n // preclick\n this.mapContainer.addEventListener('click', function (event) {\n return _this6.fire('click', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('mouseover', function (event) {\n return _this6.fire('mouseover', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('mousemove', function (event) {\n return _this6.fire('mousemove', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('dblclick', function (event) {\n return _this6.fire('dblclick', {\n originalEvent: event\n });\n });\n // mouseenter\n // mouseleave\n this.mapContainer.addEventListener('mouseout', function (event) {\n return _this6.fire('mouseout', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('contextmenu', function (event) {\n return _this6.fire('contextmenu', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('wheel', function (event) {\n return _this6.fire('wheel', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchstart', function (event) {\n return _this6.fire('touchstart', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchend', function (event) {\n return _this6.fire('touchend', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchmove', function (event) {\n return _this6.fire('touchmove', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchcancel', function (event) {\n return _this6.fire('touchcancel', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('move', function (event) {\n return _this6.fire('move', {\n originalEvent: event\n });\n });\n var movementEvents = ['movestart', 'move', 'moveend', 'dragstart', 'drag', 'dragend', 'zoomstart', 'zoom', 'zoomend', 'rotatestart', 'rotate', 'rotateend', 'pitchstart', 'pitch', 'pitchend', 'boxzoomstart', 'boxzoomend', 'boxzoomcancel'];\n movementEvents.forEach(function (eventName) {\n _this6.map.on(eventName, function (event) {\n _this6.fire(eventName, {\n originalEvent: event\n });\n });\n });\n }\n }, {\n key: \"_initializeMapData\",\n value: function () {\n var _initializeMapData2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var parts, mapId, mapViewId, data;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n parts = this.options.sourceId.split('.');\n if (!(parts.length < 1 || parts.length > 2)) {\n _context2.next = 4;\n break;\n }\n console.error('The sourceId format is incorrect. It should be in the format \"mapId\" or \"mapId.mapViewId\".');\n return _context2.abrupt(\"return\");\n case 4:\n // let accountId = parts[0] || '';\n // let mapId = parts[1] || '';\n // let mapViewId = parts[2] || '';\n mapId = parts[0];\n mapViewId = parts[1]; // console.log(\"MAP ID\", mapId);\n // console.log(\"MAP VIEW ID\", mapViewId);\n // Set account id in WaygoMaps\n // waygoMaps.setAccountId(accountId);\n _context2.prev = 6;\n _context2.next = 9;\n return this.mapViewApi.loadMapView(mapId, mapViewId);\n case 9:\n data = _context2.sent;\n this.mapData = data;\n // console.log(\"DATA\", data.account_id);\n // console.log(data);\n _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setAccountId(data.account_id);\n _context2.next = 17;\n break;\n case 14:\n _context2.prev = 14;\n _context2.t0 = _context2[\"catch\"](6);\n console.error('Error fetching map style:', _context2.t0);\n case 17:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this, [[6, 14]]);\n }));\n function _initializeMapData() {\n return _initializeMapData2.apply(this, arguments);\n }\n return _initializeMapData;\n }()\n }, {\n key: \"_loadMapLibraries\",\n value: function () {\n var _loadMapLibraries2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0,_utils_resourceLoader__WEBPACK_IMPORTED_MODULE_0__.loadCSS)(mapboxCSS);\n case 2:\n _context3.next = 4;\n return (0,_utils_resourceLoader__WEBPACK_IMPORTED_MODULE_0__.loadScript)(mapboxJS);\n case 4:\n mapboxgl.clearStorage();\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function _loadMapLibraries() {\n return _loadMapLibraries2.apply(this, arguments);\n }\n return _loadMapLibraries;\n }()\n }, {\n key: \"render\",\n value: function render() {\n // this._addLogoImage();\n var targetContainer = document.getElementById(this.options.container);\n if (targetContainer) {\n targetContainer.appendChild(this.mapContainer);\n this.mapContainer.style.width = '100%';\n this.mapContainer.style.height = '100%';\n this.mapContainer.style.position = 'relative';\n } else {\n console.error(\"Container element with id \\\"\".concat(this.containerId, \"\\\" not found.\"));\n }\n }\n }, {\n key: \"updateFloor\",\n value: function updateFloor(floorIndex) {\n var _this7 = this;\n var zoomOut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var layers = this.map.getStyle().layers;\n layers.forEach(function (layer) {\n if (layer.type !== 'background' && layer.type !== 'raster' && layer.type !== 'heatmap') {\n // console.log(\"LAYER\");\n // console.log(layer);\n var originalFilter = _this7.originalFilters[layer.id];\n _this7.map.setFilter(layer.id, originalFilter);\n var floorFilter = ['==', ['get', '_floor'], floorIndex];\n if (originalFilter) {\n var combinedFilter = ['all', floorFilter, originalFilter];\n _this7.map.setFilter(layer.id, combinedFilter);\n } else {\n _this7.map.setFilter(layer.id, floorFilter);\n }\n }\n });\n this._currentFloorIndex = floorIndex;\n if (zoomOut) {\n var style = this.map.getStyle();\n var sources = Object.keys(style.sources);\n\n // console.log(\"STYLE\");\n // console.log(style);\n\n // Debug log to see available sources\n // console.log(\"Available sources:\", sources);\n\n var allFeatures = [];\n sources.forEach(function (sourceId) {\n // console.log(\"SOURCE ID\");\n // console.log(sourceId);\n var floorSourceLayer = \"\".concat(floorIndex, \"-feature\");\n var features = _this7.map.querySourceFeatures(sourceId, {\n sourceLayer: floorSourceLayer\n });\n // console.log(\"FEATURES\");\n // console.log(features);\n allFeatures = allFeatures.concat(features);\n });\n\n // console.log(\"ALL FEATURES\");\n // console.log(allFeatures.length, allFeatures);\n\n // If we have features, calculate their bounds\n if (allFeatures.length > 0) {\n var bounds = new mapboxgl.LngLatBounds();\n allFeatures.forEach(function (feature) {\n var geom = feature.geometry;\n // Handle different geometry types:\n if (geom.type === 'Point') {\n bounds.extend(geom.coordinates);\n } else if (geom.type === 'LineString') {\n geom.coordinates.forEach(function (coord) {\n return bounds.extend(coord);\n });\n } else if (geom.type === 'Polygon') {\n // For a Polygon, iterate through the outer ring (and inner rings if needed)\n geom.coordinates[0].forEach(function (coord) {\n return bounds.extend(coord);\n });\n }\n // Add cases for MultiPoint, MultiLineString, MultiPolygon as needed\n });\n var currentPitch = this.map.getPitch();\n var currentBearing = this.map.getBearing();\n\n // Fit the map to these bounds with some padding\n this.map.fitBounds(bounds, {\n padding: 50,\n duration: 1300,\n maxZoom: 15.5,\n pitch: currentPitch,\n bearing: currentBearing\n // speed: 1.2,\n });\n } else {\n // If no features found, zoom out from current center\n // console.log(\"NO FEATURES FOUND\");\n this.map.once('moveend', function () {\n console.log(\"FLY TO COMPLETE\");\n var allFeaturesAgain = [];\n sources.forEach(function (sourceId) {\n // console.log(\"SOURCE ID\");\n // console.log(sourceId);\n var floorSourceLayer = \"\".concat(floorIndex, \"-feature\");\n var features = _this7.map.querySourceFeatures(sourceId, {\n sourceLayer: floorSourceLayer\n });\n // console.log(\"FEATURES\");\n // console.log(features);\n allFeaturesAgain = allFeaturesAgain.concat(features);\n });\n if (allFeaturesAgain.length > 0) {\n var _bounds = new mapboxgl.LngLatBounds();\n allFeaturesAgain.forEach(function (feature) {\n var geom = feature.geometry;\n // Handle different geometry types:\n if (geom.type === 'Point') {\n _bounds.extend(geom.coordinates);\n } else if (geom.type === 'LineString') {\n geom.coordinates.forEach(function (coord) {\n return _bounds.extend(coord);\n });\n } else if (geom.type === 'Polygon') {\n // For a Polygon, iterate through the outer ring (and inner rings if needed)\n geom.coordinates[0].forEach(function (coord) {\n return _bounds.extend(coord);\n });\n }\n // Add cases for MultiPoint, MultiLineString, MultiPolygon as needed\n });\n var _currentPitch = _this7.map.getPitch();\n var _currentBearing = _this7.map.getBearing();\n\n // Fit the map to these bounds with some padding\n _this7.map.fitBounds(_bounds, {\n padding: 50,\n duration: 1300,\n maxZoom: 15.5,\n pitch: _currentPitch,\n bearing: _currentBearing\n // speed: 1.2,\n });\n }\n });\n // this.map.jumpTo({\n // zoom: this.map.getZoom() - 3\n // });\n this.map.flyTo({\n zoom: this.map.getZoom() - 3,\n duration: 500,\n essential: true\n });\n }\n }\n this.fire('floorChanged', {\n floorIndex: floorIndex\n });\n }\n }, {\n key: \"addHighlightedFeature\",\n value: function addHighlightedFeature(coordinates, properties) {\n var source = this.map.getSource('highlighted-content');\n var currentData = source._data;\n var newFeature = {\n 'type': 'Feature',\n 'geometry': {\n 'type': 'Point',\n 'coordinates': coordinates\n },\n 'properties': properties\n };\n currentData.features.push(newFeature);\n source.setData(currentData);\n return newFeature;\n }\n }, {\n key: \"addSelectedFeature\",\n value: function addSelectedFeature(coordinates, properties) {\n var allow_multi_select = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var source = this.map.getSource('selected-content');\n var currentData = source._data;\n var newFeature = {\n 'type': 'Feature',\n 'geometry': {\n 'type': 'Point',\n 'coordinates': coordinates\n },\n 'properties': properties\n };\n if (allow_multi_select) {\n currentData.features.push(newFeature);\n } else {\n currentData.features = [newFeature];\n }\n source.setData(currentData);\n }\n }, {\n key: \"clearSelectedContentLayer\",\n value: function clearSelectedContentLayer() {\n this.map.getSource('selected-content').setData({\n 'type': 'FeatureCollection',\n 'features': []\n });\n }\n }, {\n key: \"clearHighlightedContentLayer\",\n value: function clearHighlightedContentLayer() {\n this.map.getSource('highlighted-content').setData({\n 'type': 'FeatureCollection',\n 'features': []\n });\n }\n\n // MARK: Controls\n }, {\n key: \"addControl\",\n value: function addControl(control) {\n var container = control.onAdd(this);\n this.mapContainer.appendChild(container);\n }\n }, {\n key: \"removeControl\",\n value: function removeControl(control) {\n this.map.removeControl(control);\n }\n\n // MARK: Map states\n }, {\n key: \"getCurrentState\",\n value: function getCurrentState() {\n return this._stateCoordinator.state;\n }\n }, {\n key: \"setToDefaultState\",\n value: function setToDefaultState() {\n // console.log(\"SET TO DEFAULT STATE\", this.location);\n this._stateCoordinator.transitionTo('default');\n }\n }, {\n key: \"setToSearchState\",\n value: function () {\n var _setToSearchState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(query) {\n var skip,\n limit,\n floor,\n results,\n _args4 = arguments;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n skip = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : 0;\n limit = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : 40;\n floor = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : null;\n _context4.next = 5;\n return this.search(query, skip, limit, floor);\n case 5:\n results = _context4.sent;\n this._stateCoordinator.transitionTo('search', {\n query: query,\n results: results\n });\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, this);\n }));\n function setToSearchState(_x) {\n return _setToSearchState.apply(this, arguments);\n }\n return setToSearchState;\n }()\n }, {\n key: \"setToSelectedContentState\",\n value: function () {\n var _setToSelectedContentState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(contentPlacementIds) {\n var lastContentPlacementId, selectedContentPlacement;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n lastContentPlacementId = contentPlacementIds[contentPlacementIds.length - 1];\n _context5.next = 3;\n return this.getContentPlacementDetails(lastContentPlacementId);\n case 3:\n selectedContentPlacement = _context5.sent;\n this.updateFloor(selectedContentPlacement.floor);\n this._stateCoordinator.transitionTo('selectedContent', {\n contentPlacementIds: contentPlacementIds,\n selectedContentPlacement: selectedContentPlacement\n });\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function setToSelectedContentState(_x2) {\n return _setToSelectedContentState.apply(this, arguments);\n }\n return setToSelectedContentState;\n }()\n }, {\n key: \"setToDirectionsState\",\n value: function () {\n var _setToDirectionsState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var startContentPlacementId,\n endContentPlacementId,\n startContentPlacement,\n endContentPlacement,\n _args6 = arguments;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n startContentPlacementId = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : null;\n endContentPlacementId = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : null;\n startContentPlacement = null;\n if (!startContentPlacementId) {\n _context6.next = 7;\n break;\n }\n _context6.next = 6;\n return this.getContentPlacementDetails(startContentPlacementId);\n case 6:\n startContentPlacement = _context6.sent;\n case 7:\n endContentPlacement = null;\n if (!endContentPlacementId) {\n _context6.next = 12;\n break;\n }\n _context6.next = 11;\n return this.getContentPlacementDetails(endContentPlacementId);\n case 11:\n endContentPlacement = _context6.sent;\n case 12:\n this._stateCoordinator.transitionTo('directions', {\n startContentPlacement: startContentPlacement,\n endContentPlacement: endContentPlacement\n });\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n function setToDirectionsState() {\n return _setToDirectionsState.apply(this, arguments);\n }\n return setToDirectionsState;\n }()\n }, {\n key: \"setToSetupState\",\n value: function () {\n var _setToSetupState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n // console.log(\"SET TO SETUP STATE\");\n\n // Reset map view to default top-down perspective\n if (this.map) {\n this.map.easeTo({\n pitch: 0,\n bearing: 0,\n duration: 0\n });\n }\n if (!this.setupControl) {\n this.setupControl = new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SetupControl();\n this.addControl(this.setupControl);\n }\n this._stateCoordinator.transitionTo('setup');\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, this);\n }));\n function setToSetupState() {\n return _setToSetupState.apply(this, arguments);\n }\n return setToSetupState;\n }()\n }, {\n key: \"initiateBack\",\n value: function initiateBack() {\n this.fire('initiate:back');\n }\n }, {\n key: \"initiateSetToSearchState\",\n value: function initiateSetToSearchState() {\n this.fire('initiate:search');\n }\n }, {\n key: \"findPath\",\n value: function () {\n var _findPath = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(startContentPlacementId, endContentPlacementId) {\n var response_data;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.routesApi.findPath(this.mapData.map_id, startContentPlacementId, endContentPlacementId);\n case 2:\n response_data = _context8.sent;\n if (!response_data) {\n _context8.next = 7;\n break;\n }\n return _context8.abrupt(\"return\", response_data);\n case 7:\n console.error('Failed to find path.');\n case 8:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, this);\n }));\n function findPath(_x3, _x4) {\n return _findPath.apply(this, arguments);\n }\n return findPath;\n }()\n }, {\n key: \"findPathFromNodeToPlacement\",\n value: function () {\n var _findPathFromNodeToPlacement = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(startNodeId, endPlacementId) {\n var response_data;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.routesApi.findPathFromNodeToPlacement(this.mapData.map_id, startNodeId, endPlacementId);\n case 2:\n response_data = _context9.sent;\n if (!response_data) {\n _context9.next = 7;\n break;\n }\n return _context9.abrupt(\"return\", response_data);\n case 7:\n console.error('Failed to find path.');\n case 8:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, this);\n }));\n function findPathFromNodeToPlacement(_x5, _x6) {\n return _findPathFromNodeToPlacement.apply(this, arguments);\n }\n return findPathFromNodeToPlacement;\n }() // MARK: Map methods\n }, {\n key: \"_findFeatureByPlacementId\",\n value: function _findFeatureByPlacementId(placementId) {\n var features = this.map.queryRenderedFeatures({\n filter: ['==', ['get', 'placement_id'], placementId]\n });\n\n // Return the first feature that matches the placementId\n return features.length > 0 ? features[0] : null;\n }\n }, {\n key: \"getCenter\",\n value: function getCenter() {\n // Update to convert from lat, lon, to x, y in meters\n if (this.map) {\n return this.map.getCenter();\n } else {\n console.error('Map is not initialized.');\n }\n }\n }, {\n key: \"setCenter\",\n value: function setCenter(lngLat) {\n // Update to convert from lat, lon, to x, y in meters\n if (this.map) {\n this.map.setCenter(lngLat);\n } else {\n console.error('Map is not initialized.');\n }\n }\n }, {\n key: \"search\",\n value: function () {\n var _search = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(query) {\n var skip,\n limit,\n floor,\n _args10 = arguments;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n skip = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : 0;\n limit = _args10.length > 2 && _args10[2] !== undefined ? _args10[2] : 40;\n floor = _args10.length > 3 && _args10[3] !== undefined ? _args10[3] : null;\n if (!(query === '')) {\n _context10.next = 5;\n break;\n }\n return _context10.abrupt(\"return\");\n case 5:\n if (this.mapData) {\n _context10.next = 7;\n break;\n }\n return _context10.abrupt(\"return\");\n case 7:\n _context10.prev = 7;\n _context10.next = 10;\n return this.searchApi.search(this.mapData.map_id, this.mapData.map_view_id, query, skip, limit, floor);\n case 10:\n return _context10.abrupt(\"return\", _context10.sent);\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](7);\n if (axios.isCancel(_context10.t0)) {\n console.error('Request canceled:', _context10.t0.message);\n } else {\n console.error('Search error:', _context10.t0);\n }\n case 16:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, this, [[7, 13]]);\n }));\n function search(_x7) {\n return _search.apply(this, arguments);\n }\n return search;\n }()\n }, {\n key: \"getContentPlacementDetails\",\n value: function () {\n var _getContentPlacementDetails = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(contentPlacementId) {\n var details;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n _context11.next = 3;\n return this.searchApi.fetchContentPlacementDetails(contentPlacementId);\n case 3:\n details = _context11.sent;\n return _context11.abrupt(\"return\", details);\n case 7:\n _context11.prev = 7;\n _context11.t0 = _context11[\"catch\"](0);\n if (axios.isCancel(_context11.t0)) {\n console.error('Request canceled:', _context11.t0.message);\n } else {\n console.error('Fetching content placement details error:', _context11.t0);\n }\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, this, [[0, 7]]);\n }));\n function getContentPlacementDetails(_x8) {\n return _getContentPlacementDetails.apply(this, arguments);\n }\n return getContentPlacementDetails;\n }()\n }, {\n key: \"flyTo\",\n value: function flyTo(options) {\n // console.log('flyTo', options);\n this.map.flyTo(options);\n }\n }]);\n}(_core_Component__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n//# sourceURL=webpack://waygomaps/./src/components/MapView/MapView.js?");
804
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MapView: () => (/* binding */ MapView)\n/* harmony export */ });\n/* harmony import */ var _utils_resourceLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/resourceLoader */ \"./src/utils/resourceLoader.js\");\n/* harmony import */ var _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../WaygoMaps */ \"./src/WaygoMaps.js\");\n/* harmony import */ var _core_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/Component */ \"./src/core/Component.js\");\n/* harmony import */ var _StateCoordinator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./StateCoordinator */ \"./src/components/MapView/StateCoordinator.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../index */ \"./src/index.js\");\n/* harmony import */ var _assets_logoOutline_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../assets/logoOutline.svg */ \"./src/assets/logoOutline.svg\");\n/* harmony import */ var _assets_logoInner_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../assets/logoInner.svg */ \"./src/assets/logoInner.svg\");\nvar _defaultMapOptions;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n// import WaygoLogoUrl from \"../../assets/WaygoLogoWhite.svg\";\n// import WaygoLogoUrl from \"../../assets/WaygoIconWhite.svg\";\n\n// import { convertVerticesToCoordinates } from \"../../utils/coordinateSystems\";\n\nvar mapboxCSS = 'https://api.mapbox.com/mapbox-gl-js/v3.5.1/mapbox-gl.css';\nvar mapboxJS = 'https://api.mapbox.com/mapbox-gl-js/v3.5.1/mapbox-gl.js';\nvar accessToken = 'pk.eyJ1Ijoid2F5Z28tbWFwcyIsImEiOiJjbGtxYzZ1N3QxdG43M210bXFuYmJ4a3gxIn0.tlbznj_fRJ8La6s2UUMO6A';\nvar mock = {\n '2d1d26267da84c4b87eedc1751d71067:0dc23522b7f841ab88756a94428538d1': {\n 'steps': ['Leave Keynote Theater and make a left (73 ft)', 'Turn right at Kyndral (104 ft)', 'Turn left at SAP (182 ft)', 'Turn right at Samsung (47 ft)', 'Turn left at May Mobility (142 feet)', 'Turn right and arrive at Monta, on your left'],\n 'path': [[-81.557308010743881, -195.68687504906683], [-66.793528483184829, -195.68687504906688], [-66.793528483184829, -136.30367294932935], [-6.7541584044446665, -136.30367294932955], [-6.7541584044446195, -106.92078820451393], [81.828518760909716, -106.92078820451393], [81.828518760909716, -47.209502115275079], [140.88363687114594, -47.209502115275079]]\n }\n};\nvar mockData = {\n 'b1800bf6e3ed480cae21526e42464676:a7fa2fb07ae04049b9026c296d015d66': {\n 'steps': ['Leave Roundtable and make a left', 'Turn right after walking 177 feet', 'Turn left after walking 203 feet', 'Turn right after walking 100 feet', 'Continue straight in 242 feet', 'Arrive at Stage 4, on your left'],\n 'path': [[95.645948774511609, -118.96329432647396], [41.840174496296385, -118.96329432647379], [41.840174496296484, -56.955420310725756], [10.344111504170499, -56.955420310725756], [10.34411150417062, 18.175813285074767], [0.17350782962993705, 18.175813285074767], [0.17350782962999536, 54.265052130219125], [-25.417043351472369, 54.26505213021921]]\n },\n // ROUNDTABLE TO STAGE 4\n '529803fcdd7e4d5db5ed71b9ff1ef0e2:899969e0115b4d8da8fb51bedf7caff2': {\n 'steps': [\"Leave Startups Info Point and make a left\", \"Turn right in 12 feet\", \"Turn left in 37 feet\", \"Continue straight for 182 feet\", \"Turn right in 36 feet\", \"Turn left after 29 feet\", \"Turn right after 57 feet\", \"Turn left after walking 42 feet\", \"Arrive at Alpha 1, on your right\"],\n 'path': [[284.28160504078147, -119.85123601826949], [258.75367051155007, -119.8512360182694], [258.75367051155007, -57.515278013020058], [-40.902596633706594, -57.515278013019092], [-40.902596633706445, 19.584459519789313], [-169.83960450772221, 19.584459519789728], [-169.83960450772213, 78.311493640524645], [-215.11519505890323, 78.311493640524787]]\n },\n 'd1910e5724844b40bf8e2a721fba172a:3673b48d96b04d7aa65937dec3276d3c': {\n 'steps': [\"Leave startup lounge and make a right\", \"Continue straight for 22 feet, then turn left\", \"Turn right in 37 feet\", \"Continue straight for 143 feet, then turn left\", \"Turn right in 32 feet\", \"Continue straight for 210 feet\", \"Turn right, and continue for 5 feet\", \"Arrive at The Black Innovation Zone, on your right\"],\n 'path': [[417.35544488563073, 75.74517709550193], [356.33182283838664, 75.745177095502129], [356.33182283838653, 17.674310953769847], [121.7517703449482, 17.674310953770604], [121.75177034494808, -56.800754663027305], [-207.21694798680142, -56.80075466302624], [-207.21694798680144, -78.116837633560053]]\n }\n};\nvar defaultMapOptions = (_defaultMapOptions = {\n container: 'map',\n sourceId: '2024.2xw_YUXYS8GoDTB2AQgN3A',\n center: [0, 0],\n floor: 0,\n zoom: 13,\n bearing: 0,\n // 46.15762290134818,-25.60000000000025\n // pitch: 30,\n pitch: 46\n}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defaultMapOptions, \"bearing\", -25), \"minPitch\", 0), \"maxPitch\", 60), \"minZoom\", 10.5), \"maxZoom\", 19.5), \"bounds\", null), \"doubleClickZoom\", true), \"dragPan\", true), \"dragRotate\", true), \"scrollZoom\", true), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defaultMapOptions, \"touchPitch\", true), \"touchZoomRotate\", true), \"interactive\", true), \"trackResize\", true), \"keyboard\", true), \"defaultControls\", false), \"setup\", false));\nvar MapView = /*#__PURE__*/function (_Component) {\n function MapView() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, MapView);\n _this = _callSuper(this, MapView, [_objectSpread(_objectSpread({}, defaultMapOptions), options)]);\n _this.mapViewApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getMapViewApi();\n _this.searchApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSearchApi();\n _this.routesApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getRotuesApi();\n _this.mapContainer = document.createElement('div');\n _this.mapContainer.className = 'inner-map-container';\n _this.ready = _this._initialize(options);\n _this.initialLoad = false;\n _this.originalFilters = {};\n _this._currentFloorIndex = options.floor;\n _this.mapData = null;\n _this._stateCoordinator = new _StateCoordinator__WEBPACK_IMPORTED_MODULE_3__[\"default\"](_this);\n _this.defaultControls = options.defaultControls; // || false;\n _this.setupControl = null;\n _this.location = options.location || null;\n _this.modalContainer = null;\n return _this;\n }\n _inherits(MapView, _Component);\n return _createClass(MapView, [{\n key: \"showModal\",\n value: function showModal(content) {\n var _this2 = this;\n // Create modal container if it doesn't exist\n if (!this.modalContainer) {\n this.modalContainer = document.createElement('div');\n this.modalContainer.className = 'waygo-map-modal-container';\n this.mapContainer.appendChild(this.modalContainer);\n\n // Add click handler to close modal when clicking outside\n this.modalContainer.addEventListener('click', function (e) {\n if (e.target === _this2.modalContainer) {\n _this2.hideModal();\n }\n });\n }\n\n // Create modal content\n var modalContent = document.createElement('div');\n modalContent.className = 'waygo-map-modal-content';\n\n // Can accept HTML string or DOM element\n if (typeof content === 'string') {\n modalContent.innerHTML = content;\n } else {\n modalContent.appendChild(content);\n }\n\n // Clear existing content and add new\n this.modalContainer.innerHTML = '';\n this.modalContainer.appendChild(modalContent);\n this.modalContainer.style.display = 'flex';\n }\n }, {\n key: \"hideModal\",\n value: function hideModal() {\n if (this.modalContainer) {\n this.modalContainer.style.display = 'none';\n }\n }\n }, {\n key: \"_initialize\",\n value: function () {\n var _initialize2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _this3 = this;\n var styleId;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return this._loadMapLibraries();\n case 3:\n mapboxgl.clearStorage();\n this.render();\n _context.next = 7;\n return this._initializeMapData();\n case 7:\n if (this.mapData) {\n _context.next = 10;\n break;\n }\n console.error(\"Error initializing map data.\");\n return _context.abrupt(\"return\");\n case 10:\n styleId = this.mapData.style_id;\n if (typeof mapboxgl !== 'undefined' && styleId) {\n mapboxgl.accessToken = accessToken;\n this.map = new mapboxgl.Map({\n container: this.mapContainer,\n style: \"mapbox://styles/waygo-maps/\".concat(styleId),\n center: this.options.center,\n zoom: this.options.zoom,\n bearing: this.options.bearing,\n pitch: this.options.pitch,\n minPitch: this.options.minPitch,\n maxPitch: this.options.maxPitch,\n minZoom: this.options.minZoom,\n maxZoom: this.options.maxZoom,\n bounds: this.options.bounds,\n doubleClickZoom: this.options.doubleClickZoom,\n dragPan: this.options.dragPan,\n dragRotate: this.options.dragRotate,\n scrollZoom: this.options.scrollZoom,\n touchPitch: this.options.touchPitch,\n touchZoomRotate: this.options.touchZoomRotate,\n interactive: this.options.interactive,\n trackResize: this.options.trackResize,\n keyboard: this.options.keyboard\n });\n this.map.on('styledata', function () {\n if (!_this3.initialLoad) {\n _this3._initializeOriginalFilters();\n _this3.updateFloor(_this3.options.floor, false);\n _this3.initialLoad = true;\n }\n });\n this.map.on('load', function () {\n if (_this3.defaultControls) {\n _this3._addLogoImage();\n _this3._addDefaultControls();\n _this3.updateFloor(_this3.options.floor, false);\n }\n if (_this3.options.setup) {\n _this3.setToSetupState();\n }\n _this3.fire('load', {\n mapData: _this3.mapData\n });\n });\n this._initializeEventListeners();\n } else {\n console.error('Mapbox GL JS is not loaded.');\n }\n _context.next = 17;\n break;\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](0);\n console.error('Failed to initialize the map:', _context.t0);\n case 17:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[0, 14]]);\n }));\n function _initialize() {\n return _initialize2.apply(this, arguments);\n }\n return _initialize;\n }()\n }, {\n key: \"_addLogoImage\",\n value: function _addLogoImage() {\n var linkUrl = 'https://waygomaps.com';\n var imageContainer = document.createElement('div');\n imageContainer.className = 'logo-image-container';\n var outlineImageElement = document.createElement('img');\n outlineImageElement.className = 'logo-outline-element';\n outlineImageElement.src = _assets_logoOutline_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n outlineImageElement.alt = 'Clickable image';\n\n // Append the image to the container\n imageContainer.appendChild(outlineImageElement);\n var fillImageElement = document.createElement('img');\n fillImageElement.className = 'logo-fill-element';\n fillImageElement.src = _assets_logoInner_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n fillImageElement.alt = 'Clickable image';\n\n // Append the image to the container\n imageContainer.appendChild(fillImageElement);\n\n // Add click event to open the link\n imageContainer.addEventListener('click', function () {\n window.open(linkUrl, '_blank'); // Open link in a new tab\n });\n\n // Append the container to the map container\n this.mapContainer.appendChild(imageContainer);\n\n // const websiteContainer = document.createElement('div');\n // websiteContainer.className = 'website-container';\n // websiteContainer.textContent = '© Waygo Maps';\n // // websiteContainer.textContent = 'waygomaps.com';\n\n // websiteContainer.addEventListener('click', () => {\n // window.open(linkUrl, '_blank'); // Open link in a new tab\n // });\n\n // this.mapContainer.appendChild(websiteContainer);\n }\n }, {\n key: \"getCurrentFloor\",\n value: function getCurrentFloor() {\n return this._currentFloorIndex;\n }\n }, {\n key: \"_addDefaultControls\",\n value: function _addDefaultControls() {\n var _this4 = this;\n var controls = [\n // new waygo.ContentPlacementControl(),\n new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SearchBoxControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].FloorSelectorControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].CategoryBarControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SearchResultsControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].ContentPlacementControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].DirectionsControl(), new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].InteractionControl()\n // new waygo.FloorSelectorControl()\n ];\n controls.forEach(function (control) {\n return _this4.addControl(control);\n });\n }\n }, {\n key: \"_initializeOriginalFilters\",\n value: function _initializeOriginalFilters() {\n var _this5 = this;\n var layers = this.map.getStyle().layers;\n layers.forEach(function (layer) {\n if (layer.type !== 'background' && layer.type !== 'raster' && layer.type !== 'heatmap') {\n // Get and store the original filter, or set to null if no filter exists\n _this5.originalFilters[layer.id] = _this5.map.getFilter(layer.id) || null;\n }\n });\n }\n }, {\n key: \"_initializeEventListeners\",\n value: function _initializeEventListeners() {\n var _this6 = this;\n this.mapContainer.addEventListener('mousedown', function (event) {\n return _this6.fire('mousedown', {\n originalEvent: event\n });\n });\n // preclick\n this.mapContainer.addEventListener('click', function (event) {\n return _this6.fire('click', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('mouseover', function (event) {\n return _this6.fire('mouseover', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('mousemove', function (event) {\n return _this6.fire('mousemove', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('dblclick', function (event) {\n return _this6.fire('dblclick', {\n originalEvent: event\n });\n });\n // mouseenter\n // mouseleave\n this.mapContainer.addEventListener('mouseout', function (event) {\n return _this6.fire('mouseout', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('contextmenu', function (event) {\n return _this6.fire('contextmenu', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('wheel', function (event) {\n return _this6.fire('wheel', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchstart', function (event) {\n return _this6.fire('touchstart', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchend', function (event) {\n return _this6.fire('touchend', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchmove', function (event) {\n return _this6.fire('touchmove', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('touchcancel', function (event) {\n return _this6.fire('touchcancel', {\n originalEvent: event\n });\n });\n this.mapContainer.addEventListener('move', function (event) {\n return _this6.fire('move', {\n originalEvent: event\n });\n });\n var movementEvents = ['movestart', 'move', 'moveend', 'dragstart', 'drag', 'dragend', 'zoomstart', 'zoom', 'zoomend', 'rotatestart', 'rotate', 'rotateend', 'pitchstart', 'pitch', 'pitchend', 'boxzoomstart', 'boxzoomend', 'boxzoomcancel'];\n movementEvents.forEach(function (eventName) {\n _this6.map.on(eventName, function (event) {\n _this6.fire(eventName, {\n originalEvent: event\n });\n });\n });\n }\n }, {\n key: \"_initializeMapData\",\n value: function () {\n var _initializeMapData2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var parts, mapId, mapViewId, data;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n parts = this.options.sourceId.split('.');\n if (!(parts.length < 1 || parts.length > 2)) {\n _context2.next = 4;\n break;\n }\n console.error('The sourceId format is incorrect. It should be in the format \"mapId\" or \"mapId.mapViewId\".');\n return _context2.abrupt(\"return\");\n case 4:\n // let accountId = parts[0] || '';\n // let mapId = parts[1] || '';\n // let mapViewId = parts[2] || '';\n mapId = parts[0];\n mapViewId = parts[1]; // console.log(\"MAP ID\", mapId);\n // console.log(\"MAP VIEW ID\", mapViewId);\n // Set account id in WaygoMaps\n // waygoMaps.setAccountId(accountId);\n _context2.prev = 6;\n _context2.next = 9;\n return this.mapViewApi.loadMapView(mapId, mapViewId);\n case 9:\n data = _context2.sent;\n this.mapData = data;\n // console.log(\"DATA\", data.account_id);\n // console.log(data);\n _WaygoMaps__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setAccountId(data.account_id);\n _context2.next = 17;\n break;\n case 14:\n _context2.prev = 14;\n _context2.t0 = _context2[\"catch\"](6);\n console.error('Error fetching map style:', _context2.t0);\n case 17:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this, [[6, 14]]);\n }));\n function _initializeMapData() {\n return _initializeMapData2.apply(this, arguments);\n }\n return _initializeMapData;\n }()\n }, {\n key: \"_loadMapLibraries\",\n value: function () {\n var _loadMapLibraries2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0,_utils_resourceLoader__WEBPACK_IMPORTED_MODULE_0__.loadCSS)(mapboxCSS);\n case 2:\n _context3.next = 4;\n return (0,_utils_resourceLoader__WEBPACK_IMPORTED_MODULE_0__.loadScript)(mapboxJS);\n case 4:\n mapboxgl.clearStorage();\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function _loadMapLibraries() {\n return _loadMapLibraries2.apply(this, arguments);\n }\n return _loadMapLibraries;\n }()\n }, {\n key: \"render\",\n value: function render() {\n // this._addLogoImage();\n var targetContainer = document.getElementById(this.options.container);\n if (targetContainer) {\n targetContainer.appendChild(this.mapContainer);\n this.mapContainer.style.width = '100%';\n this.mapContainer.style.height = '100%';\n this.mapContainer.style.position = 'relative';\n } else {\n console.error(\"Container element with id \\\"\".concat(this.containerId, \"\\\" not found.\"));\n }\n }\n }, {\n key: \"updateFloor\",\n value: function updateFloor(floorIndex) {\n var _this7 = this;\n var zoomOut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var layers = this.map.getStyle().layers;\n layers.forEach(function (layer) {\n if (layer.type !== 'background' && layer.type !== 'raster' && layer.type !== 'heatmap') {\n // console.log(\"LAYER\");\n // console.log(layer);\n var originalFilter = _this7.originalFilters[layer.id];\n _this7.map.setFilter(layer.id, originalFilter);\n var floorFilter = ['==', ['get', '_floor'], floorIndex];\n if (originalFilter) {\n var combinedFilter = ['all', floorFilter, originalFilter];\n _this7.map.setFilter(layer.id, combinedFilter);\n } else {\n _this7.map.setFilter(layer.id, floorFilter);\n }\n }\n });\n this._currentFloorIndex = floorIndex;\n if (zoomOut) {\n var style = this.map.getStyle();\n var sources = Object.keys(style.sources);\n\n // console.log(\"STYLE\");\n // console.log(style);\n\n // Debug log to see available sources\n // console.log(\"Available sources:\", sources);\n\n var allFeatures = [];\n sources.forEach(function (sourceId) {\n // console.log(\"SOURCE ID\");\n // console.log(sourceId);\n var floorSourceLayer = \"\".concat(floorIndex, \"-feature\");\n var features = _this7.map.querySourceFeatures(sourceId, {\n sourceLayer: floorSourceLayer\n });\n // console.log(\"FEATURES\");\n // console.log(features);\n allFeatures = allFeatures.concat(features);\n });\n\n // console.log(\"ALL FEATURES\");\n // console.log(allFeatures.length, allFeatures);\n\n // If we have features, calculate their bounds\n if (allFeatures.length > 0) {\n var bounds = new mapboxgl.LngLatBounds();\n allFeatures.forEach(function (feature) {\n var geom = feature.geometry;\n // Handle different geometry types:\n if (geom.type === 'Point') {\n bounds.extend(geom.coordinates);\n } else if (geom.type === 'LineString') {\n geom.coordinates.forEach(function (coord) {\n return bounds.extend(coord);\n });\n } else if (geom.type === 'Polygon') {\n // For a Polygon, iterate through the outer ring (and inner rings if needed)\n geom.coordinates[0].forEach(function (coord) {\n return bounds.extend(coord);\n });\n }\n // Add cases for MultiPoint, MultiLineString, MultiPolygon as needed\n });\n var currentPitch = this.map.getPitch();\n var currentBearing = this.map.getBearing();\n\n // Fit the map to these bounds with some padding\n this.map.fitBounds(bounds, {\n padding: 50,\n duration: 1300,\n maxZoom: 15.5,\n pitch: currentPitch,\n bearing: currentBearing\n // speed: 1.2,\n });\n } else {\n // If no features found, zoom out from current center\n // console.log(\"NO FEATURES FOUND\");\n this.map.once('moveend', function () {\n console.log(\"FLY TO COMPLETE\");\n var allFeaturesAgain = [];\n sources.forEach(function (sourceId) {\n // console.log(\"SOURCE ID\");\n // console.log(sourceId);\n var floorSourceLayer = \"\".concat(floorIndex, \"-feature\");\n var features = _this7.map.querySourceFeatures(sourceId, {\n sourceLayer: floorSourceLayer\n });\n // console.log(\"FEATURES\");\n // console.log(features);\n allFeaturesAgain = allFeaturesAgain.concat(features);\n });\n if (allFeaturesAgain.length > 0) {\n var _bounds = new mapboxgl.LngLatBounds();\n allFeaturesAgain.forEach(function (feature) {\n var geom = feature.geometry;\n // Handle different geometry types:\n if (geom.type === 'Point') {\n _bounds.extend(geom.coordinates);\n } else if (geom.type === 'LineString') {\n geom.coordinates.forEach(function (coord) {\n return _bounds.extend(coord);\n });\n } else if (geom.type === 'Polygon') {\n // For a Polygon, iterate through the outer ring (and inner rings if needed)\n geom.coordinates[0].forEach(function (coord) {\n return _bounds.extend(coord);\n });\n }\n // Add cases for MultiPoint, MultiLineString, MultiPolygon as needed\n });\n var _currentPitch = _this7.map.getPitch();\n var _currentBearing = _this7.map.getBearing();\n\n // Fit the map to these bounds with some padding\n _this7.map.fitBounds(_bounds, {\n padding: 50,\n duration: 1300,\n maxZoom: 15.5,\n pitch: _currentPitch,\n bearing: _currentBearing\n // speed: 1.2,\n });\n }\n });\n // this.map.jumpTo({\n // zoom: this.map.getZoom() - 3\n // });\n this.map.flyTo({\n zoom: this.map.getZoom() - 3,\n duration: 500,\n essential: true\n });\n }\n }\n this.fire('floorChanged', {\n floorIndex: floorIndex\n });\n }\n }, {\n key: \"addHighlightedFeature\",\n value: function addHighlightedFeature(coordinates, properties) {\n var source = this.map.getSource('highlighted-content');\n var currentData = source._data;\n var newFeature = {\n 'type': 'Feature',\n 'geometry': {\n 'type': 'Point',\n 'coordinates': coordinates\n },\n 'properties': properties\n };\n currentData.features.push(newFeature);\n source.setData(currentData);\n return newFeature;\n }\n }, {\n key: \"addSelectedFeature\",\n value: function addSelectedFeature(coordinates, properties) {\n var allow_multi_select = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var source = this.map.getSource('selected-content');\n var currentData = source._data;\n var newFeature = {\n 'type': 'Feature',\n 'geometry': {\n 'type': 'Point',\n 'coordinates': coordinates\n },\n 'properties': properties\n };\n if (allow_multi_select) {\n currentData.features.push(newFeature);\n } else {\n currentData.features = [newFeature];\n }\n source.setData(currentData);\n }\n }, {\n key: \"clearSelectedContentLayer\",\n value: function clearSelectedContentLayer() {\n this.map.getSource('selected-content').setData({\n 'type': 'FeatureCollection',\n 'features': []\n });\n }\n }, {\n key: \"clearHighlightedContentLayer\",\n value: function clearHighlightedContentLayer() {\n this.map.getSource('highlighted-content').setData({\n 'type': 'FeatureCollection',\n 'features': []\n });\n }\n\n // MARK: Controls\n }, {\n key: \"addControl\",\n value: function addControl(control) {\n var container = control.onAdd(this);\n this.mapContainer.appendChild(container);\n }\n }, {\n key: \"removeControl\",\n value: function removeControl(control) {\n this.map.removeControl(control);\n }\n\n // MARK: Map states\n }, {\n key: \"getCurrentState\",\n value: function getCurrentState() {\n return this._stateCoordinator.state;\n }\n }, {\n key: \"setToDefaultState\",\n value: function setToDefaultState() {\n // console.log(\"SET TO DEFAULT STATE\", this.location);\n this._stateCoordinator.transitionTo('default');\n }\n }, {\n key: \"setToSearchState\",\n value: function () {\n var _setToSearchState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(query) {\n var skip,\n limit,\n floor,\n results,\n _args4 = arguments;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n skip = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : 0;\n limit = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : 40;\n floor = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : null;\n _context4.next = 5;\n return this.search(query, skip, limit, floor);\n case 5:\n results = _context4.sent;\n this._stateCoordinator.transitionTo('search', {\n query: query,\n results: results\n });\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, this);\n }));\n function setToSearchState(_x) {\n return _setToSearchState.apply(this, arguments);\n }\n return setToSearchState;\n }()\n }, {\n key: \"setToSelectedContentState\",\n value: function () {\n var _setToSelectedContentState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(contentPlacementIds) {\n var lastContentPlacementId, selectedContentPlacement;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n lastContentPlacementId = contentPlacementIds[contentPlacementIds.length - 1];\n _context5.next = 3;\n return this.getContentPlacementDetails(lastContentPlacementId);\n case 3:\n selectedContentPlacement = _context5.sent;\n this.updateFloor(selectedContentPlacement.floor);\n this._stateCoordinator.transitionTo('selectedContent', {\n contentPlacementIds: contentPlacementIds,\n selectedContentPlacement: selectedContentPlacement\n });\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function setToSelectedContentState(_x2) {\n return _setToSelectedContentState.apply(this, arguments);\n }\n return setToSelectedContentState;\n }()\n }, {\n key: \"setToDirectionsState\",\n value: function () {\n var _setToDirectionsState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var startContentPlacementId,\n endContentPlacementId,\n startContentPlacement,\n endContentPlacement,\n _args6 = arguments;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n startContentPlacementId = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : null;\n endContentPlacementId = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : null;\n startContentPlacement = null;\n if (!startContentPlacementId) {\n _context6.next = 7;\n break;\n }\n _context6.next = 6;\n return this.getContentPlacementDetails(startContentPlacementId);\n case 6:\n startContentPlacement = _context6.sent;\n case 7:\n endContentPlacement = null;\n if (!endContentPlacementId) {\n _context6.next = 12;\n break;\n }\n _context6.next = 11;\n return this.getContentPlacementDetails(endContentPlacementId);\n case 11:\n endContentPlacement = _context6.sent;\n case 12:\n this._stateCoordinator.transitionTo('directions', {\n startContentPlacement: startContentPlacement,\n endContentPlacement: endContentPlacement\n });\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n function setToDirectionsState() {\n return _setToDirectionsState.apply(this, arguments);\n }\n return setToDirectionsState;\n }()\n }, {\n key: \"setToSetupState\",\n value: function () {\n var _setToSetupState = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n // console.log(\"SET TO SETUP STATE\");\n\n // Reset map view to default top-down perspective\n if (this.map) {\n this.map.easeTo({\n pitch: 0,\n bearing: 0,\n duration: 0\n });\n }\n if (!this.setupControl) {\n this.setupControl = new _index__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SetupControl();\n this.addControl(this.setupControl);\n }\n this._stateCoordinator.transitionTo('setup');\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, this);\n }));\n function setToSetupState() {\n return _setToSetupState.apply(this, arguments);\n }\n return setToSetupState;\n }()\n }, {\n key: \"initiateBack\",\n value: function initiateBack() {\n this.fire('initiate:back');\n }\n }, {\n key: \"initiateSetToSearchState\",\n value: function initiateSetToSearchState() {\n this.fire('initiate:search');\n }\n }, {\n key: \"findPath\",\n value: function () {\n var _findPath = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(startContentPlacementId, endContentPlacementId) {\n var response_data;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.routesApi.findPath(this.mapData.map_id, startContentPlacementId, endContentPlacementId);\n case 2:\n response_data = _context8.sent;\n if (!response_data) {\n _context8.next = 7;\n break;\n }\n return _context8.abrupt(\"return\", response_data);\n case 7:\n console.error('Failed to find path.');\n case 8:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, this);\n }));\n function findPath(_x3, _x4) {\n return _findPath.apply(this, arguments);\n }\n return findPath;\n }()\n }, {\n key: \"findPathFromNodeToPlacement\",\n value: function () {\n var _findPathFromNodeToPlacement = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(startNodeId, endPlacementId) {\n var response_data;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.routesApi.findPathFromNodeToPlacement(this.mapData.map_id, startNodeId, endPlacementId);\n case 2:\n response_data = _context9.sent;\n if (!response_data) {\n _context9.next = 7;\n break;\n }\n return _context9.abrupt(\"return\", response_data);\n case 7:\n console.error('Failed to find path.');\n case 8:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, this);\n }));\n function findPathFromNodeToPlacement(_x5, _x6) {\n return _findPathFromNodeToPlacement.apply(this, arguments);\n }\n return findPathFromNodeToPlacement;\n }() // MARK: Map methods\n }, {\n key: \"_findFeatureByPlacementId\",\n value: function _findFeatureByPlacementId(placementId) {\n var features = this.map.queryRenderedFeatures({\n filter: ['==', ['get', 'placement_id'], placementId]\n });\n\n // Return the first feature that matches the placementId\n return features.length > 0 ? features[0] : null;\n }\n }, {\n key: \"getCenter\",\n value: function getCenter() {\n // Update to convert from lat, lon, to x, y in meters\n if (this.map) {\n return this.map.getCenter();\n } else {\n console.error('Map is not initialized.');\n }\n }\n }, {\n key: \"setCenter\",\n value: function setCenter(lngLat) {\n // Update to convert from lat, lon, to x, y in meters\n if (this.map) {\n this.map.setCenter(lngLat);\n } else {\n console.error('Map is not initialized.');\n }\n }\n }, {\n key: \"search\",\n value: function () {\n var _search = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(query) {\n var skip,\n limit,\n floor,\n _args10 = arguments;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n skip = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : 0;\n limit = _args10.length > 2 && _args10[2] !== undefined ? _args10[2] : 40;\n floor = _args10.length > 3 && _args10[3] !== undefined ? _args10[3] : null;\n if (!(query === '')) {\n _context10.next = 5;\n break;\n }\n return _context10.abrupt(\"return\");\n case 5:\n if (this.mapData) {\n _context10.next = 7;\n break;\n }\n return _context10.abrupt(\"return\");\n case 7:\n _context10.prev = 7;\n _context10.next = 10;\n return this.searchApi.search(this.mapData.map_id, this.mapData.map_view_id, query, skip, limit, floor);\n case 10:\n return _context10.abrupt(\"return\", _context10.sent);\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](7);\n if (axios.isCancel(_context10.t0)) {\n console.error('Request canceled:', _context10.t0.message);\n } else {\n console.error('Search error:', _context10.t0);\n }\n case 16:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, this, [[7, 13]]);\n }));\n function search(_x7) {\n return _search.apply(this, arguments);\n }\n return search;\n }()\n }, {\n key: \"getContentPlacementDetails\",\n value: function () {\n var _getContentPlacementDetails = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(contentPlacementId) {\n var details;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n _context11.next = 3;\n return this.searchApi.fetchContentPlacementDetails(contentPlacementId);\n case 3:\n details = _context11.sent;\n return _context11.abrupt(\"return\", details);\n case 7:\n _context11.prev = 7;\n _context11.t0 = _context11[\"catch\"](0);\n if (axios.isCancel(_context11.t0)) {\n console.error('Request canceled:', _context11.t0.message);\n } else {\n console.error('Fetching content placement details error:', _context11.t0);\n }\n case 10:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, this, [[0, 7]]);\n }));\n function getContentPlacementDetails(_x8) {\n return _getContentPlacementDetails.apply(this, arguments);\n }\n return getContentPlacementDetails;\n }()\n }, {\n key: \"flyTo\",\n value: function flyTo(options) {\n // console.log('flyTo', options);\n this.map.flyTo(options);\n }\n }]);\n}(_core_Component__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n//# sourceURL=webpack://waygomaps/./src/components/MapView/MapView.js?");
805
805
 
806
806
  /***/ }),
807
807
 
package/dist/style.css CHANGED
@@ -1344,7 +1344,7 @@
1344
1344
  .content-details-section-title {
1345
1345
  font-size: 15px;
1346
1346
  color: #1e1e1e;
1347
- font-weight: 600;
1347
+ font-weight: 500;
1348
1348
  width: fit-content;
1349
1349
  font-family: "Inter", sans-serif;
1350
1350
  padding: 0px 0 20px 0;
@@ -1384,11 +1384,11 @@
1384
1384
 
1385
1385
  .content-details-directions-button:hover {
1386
1386
  background-color: #141414;
1387
- font-weight: 450;
1387
+ /* font-weight: 450; */
1388
1388
  }
1389
1389
 
1390
1390
  .content-details-share-button {
1391
- background-color: #f7f7f7;
1391
+ background-color: #f4f9fc;
1392
1392
  width: 100%;
1393
1393
  color: #1e1e1e;
1394
1394
  /* padding: 12px; */
@@ -1407,8 +1407,9 @@
1407
1407
  }
1408
1408
 
1409
1409
  .content-details-share-button:hover {
1410
- background-color: #f0f0f0;
1411
- font-weight: 500;
1410
+ /* background-color: #f0f0f0; */
1411
+ background-color: #e2e6eb;
1412
+ /* font-weight: 500; */
1412
1413
  }
1413
1414
 
1414
1415
  .copy-icon {
@@ -1662,8 +1663,8 @@
1662
1663
  /* padding: 14px; */
1663
1664
  padding: 16px;
1664
1665
  padding-left: 16px;
1665
- background-color: #f7f7f7;
1666
- /* background-color: white; */
1666
+ /* background-color: #F1F4F8; */
1667
+ background-color: #f4f9fc;
1667
1668
  /* border: 1px solid #dcdcdc; */
1668
1669
  border: none;
1669
1670
  text-align: left;
@@ -1678,15 +1679,21 @@
1678
1679
  }
1679
1680
 
1680
1681
  .content-details-child-view:hover {
1681
- background-color: #f0f0f0;
1682
+ background-color: #e2e6eb;
1682
1683
  /* background-color: #f5f5f5; */
1683
1684
  /* border: 1px solid #f5f5f5; */
1684
1685
  }
1685
1686
 
1686
1687
 
1687
1688
  .content-details-child-view-title {
1689
+ /* color: #1e1e1e; */
1690
+ /* color: #595C60; */
1691
+ /* color: #1B1C1D; */
1688
1692
  color: #1e1e1e;
1689
- margin-bottom: 14px;
1693
+ /* margin-bottom: 14px; */
1694
+ margin-top: 2px;
1695
+ margin-bottom: 16px;
1696
+ font-weight: 500;
1690
1697
  }
1691
1698
 
1692
1699
  /* .content-details-child-view-subtitle {
@@ -1694,15 +1701,16 @@
1694
1701
  } */
1695
1702
 
1696
1703
  .content-details-child-view-data-row {
1697
- margin-top: 8px;
1704
+ margin-top: 9px;
1698
1705
  }
1699
1706
 
1700
1707
  .content-details-child-view-data-key {
1701
1708
  font-size: 11px;
1702
- font-weight: 500;
1709
+ font-weight: 400;
1703
1710
  text-transform: uppercase;
1704
1711
  /* Ensures uppercase text */
1705
- color: #9a9a9a;
1712
+ /* color: #9a9a9a; */
1713
+ color: #808587;
1706
1714
  /* Customize the color */
1707
1715
  margin-bottom: 3px;
1708
1716
  /* Spacing between key and value */
@@ -1710,7 +1718,8 @@
1710
1718
 
1711
1719
  .content-details-child-view-data-value {
1712
1720
  font-size: 13px;
1713
- color: #525252;
1721
+ /* color: #525252; */
1722
+ color: #595C60;
1714
1723
  white-space: nowrap;
1715
1724
  overflow: hidden;
1716
1725
  font-weight: 400;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "waygo-maps",
3
- "version": "1.1.45",
3
+ "version": "1.1.47",
4
4
  "main": "dist/bundle.js",
5
5
  "files": [
6
6
  "dist/bundle.js",