waygo-maps 1.1.38 → 1.1.40

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.
Files changed (2) hide show
  1. package/dist/bundle.js +5 -5
  2. package/package.json +1 -1
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;\n latitude = center.lat;\n pitch = this.map.map.getPitch(); // Returns the pitch (tilt angle)\n bearing = this.map.map.getBearing(); // Returns the bearing (rotation angle)\n zoom = this.map.map.getZoom();\n textToCopy = \"https://maps.waygomaps.com/\".concat(accountId, \"/\").concat(mapId, \"/\").concat(mapViewId, \"/\").concat(floor, \"/selected-content/\").concat(placementId, \"/\").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.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;\n latitude = center.lat;\n pitch = this.map.map.getPitch(); // Returns the pitch (tilt angle)\n bearing = this.map.map.getBearing(); // Returns the bearing (rotation angle)\n zoom = this.map.map.getZoom();\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?");
585
585
 
586
586
  /***/ }),
587
587
 
@@ -636,7 +636,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
636
636
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
637
637
 
638
638
  "use strict";
639
- 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 webpack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! webpack */ \"./node_modules/webpack/lib/index.js\");\n/* harmony import */ var webpack__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(webpack__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_SearchResultsView_SearchResultsView__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/SearchResultsView/SearchResultsView */ \"./src/components/SearchResultsView/SearchResultsView.js\");\n/* harmony import */ var _core_Control__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/Control */ \"./src/core/Control.js\");\n/* harmony import */ var _WaygoMaps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../WaygoMaps */ \"./src/WaygoMaps.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 _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\n\n\nvar SearchResultsControl = /*#__PURE__*/function (_Control) {\n function SearchResultsControl() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, SearchResultsControl);\n _this = _callSuper(this, SearchResultsControl, [options]);\n _this.searchResultsView = new _components_SearchResultsView_SearchResultsView__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n _this.searchApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSearchApi();\n _this.searchedQuery = null;\n _this.map = null;\n _this.lastSearchLength = 0;\n _this.skip = 0;\n _this.limit = 20;\n return _this;\n }\n _inherits(SearchResultsControl, _Control);\n return _createClass(SearchResultsControl, [{\n key: \"onAdd\",\n value: function onAdd(map) {\n this.map = map;\n this.container = document.createElement('div');\n this.container.className = 'search-results-control-container';\n var element = this.searchResultsView.getElement();\n this.container.appendChild(element);\n this.hide();\n this._initializeEventListeners();\n this._attachResizeListener();\n this._attachScrollListener();\n this._initialize();\n return this.container;\n }\n }, {\n key: \"onRemove\",\n value: function onRemove() {\n _superPropGet(SearchResultsControl, \"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('initiate:search', this._handleInitiateSearchState.bind(this));\n this.map.on('state:directions', this._handleDirectionsState.bind(this));\n this.map.on('state:setup', this._handleSetupState.bind(this));\n this.searchResultsView.on('closeView', this._handleCloseSearchResultsView.bind(this));\n this.searchResultsView.on('selectCell', this._handleSearchResultSelect.bind(this));\n this.searchResultsView.on('hoverCell', this._handleCellHover.bind(this));\n this.searchResultsView.on('hoverOutCell', this._handleCellHoverOut.bind(this));\n }\n }, {\n key: \"_handleCellHover\",\n value: function _handleCellHover(data) {\n var result = data.result;\n this.map.fire('hoverSearchResult', {\n result: result\n });\n }\n }, {\n key: \"_handleCellHoverOut\",\n value: function _handleCellHoverOut(data) {\n var result = data.result;\n this.map.fire('hoverEndSearchResult', {\n result: result\n });\n }\n }, {\n key: \"_attachScrollListener\",\n value: function _attachScrollListener() {\n var searchResultsElement = this.searchResultsView.getElement();\n searchResultsElement.addEventListener('scroll', this._handleScroll.bind(this));\n }\n }, {\n key: \"_renderDesktopView\",\n value: function _renderDesktopView() {\n var element = this.searchResultsView.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 var element = this.searchResultsView.getElement();\n this.container.appendChild(element);\n this.container.classList.remove('desktop-view');\n this.container.classList.add('mobile-view');\n }\n }, {\n key: \"_handleScroll\",\n value: function () {\n var _handleScroll2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var searchResultsElement, scrollTop, scrollHeight, clientHeight, threshold, distFromBottom, newResults;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n searchResultsElement = this.searchResultsView.getElement();\n scrollTop = searchResultsElement.scrollTop, scrollHeight = searchResultsElement.scrollHeight, clientHeight = searchResultsElement.clientHeight;\n threshold = 0;\n distFromBottom = scrollHeight - scrollTop - clientHeight + threshold;\n if (!(distFromBottom < 10 && !this.searchResultsView.loading && this.lastSearchLength === 20)) {\n _context.next = 14;\n break;\n }\n // scrollTop = 0;\n this.searchResultsView.showLoadingCell();\n _context.next = 8;\n return this._getAdditionalSearchResults();\n case 8:\n newResults = _context.sent;\n this.lastSearchLength = newResults.length;\n this.searchResultsView.extendResults(newResults);\n this.skip += this.limit;\n this.map.fire('additionalSearchResults', {\n results: newResults\n });\n this.searchResultsView.hideLoadingCell();\n case 14:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function _handleScroll() {\n return _handleScroll2.apply(this, arguments);\n }\n return _handleScroll;\n }()\n }, {\n key: \"_getAdditionalSearchResults\",\n value: function () {\n var _getAdditionalSearchResults2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var query, results;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n query = this.searchedQuery;\n if (!(query === '')) {\n _context2.next = 4;\n break;\n }\n this.searchBox.searchBarSuggestionsView.updateResults([]);\n return _context2.abrupt(\"return\");\n case 4:\n if (this.map.mapData) {\n _context2.next = 6;\n break;\n }\n return _context2.abrupt(\"return\");\n case 6:\n _context2.prev = 6;\n _context2.next = 9;\n return this.searchApi.search(this.map.mapData.map_id, this.map.mapData.map_view_id, query, this.skip, this.limit);\n case 9:\n results = _context2.sent;\n return _context2.abrupt(\"return\", results);\n case 13:\n _context2.prev = 13;\n _context2.t0 = _context2[\"catch\"](6);\n if (axios.isCancel(_context2.t0)) {\n console.error('Request canceled:', _context2.t0.message);\n } else {\n console.error('Search error:', _context2.t0);\n }\n case 16:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this, [[6, 13]]);\n }));\n function _getAdditionalSearchResults() {\n return _getAdditionalSearchResults2.apply(this, arguments);\n }\n return _getAdditionalSearchResults;\n }()\n }, {\n key: \"_handleInitiateSearchState\",\n value: function _handleInitiateSearchState() {\n this.map.setToSearchState(this.searchedQuery);\n }\n }, {\n key: \"_handleSearchResultSelect\",\n value: function _handleSearchResultSelect(data) {\n var result = data.result;\n var placementId = result.placement_id;\n this.map.setToSelectedContentState([placementId]);\n }\n }, {\n key: \"_handleCloseSearchResultsView\",\n value: function _handleCloseSearchResultsView() {\n this.map.setToDefaultState();\n }\n }, {\n key: \"_handleDefaultState\",\n value: function _handleDefaultState() {\n this.searchedQuery = null;\n this.searchResultsView.updateResults([]);\n this.searchResultsView.scrollToTop();\n this.hide();\n }\n }, {\n key: \"_handleSearchState\",\n value: function _handleSearchState(data) {\n var query = data.query,\n results = data.results;\n this.searchedQuery = query;\n this.lastSearchLength = results.length;\n this.skip = this.limit;\n this.searchResultsView.updateResults([]);\n var floors = this.map.mapData.floors;\n if (floors.length > 1) {\n this.searchResultsView.updateView(results, query, floors);\n }\n this.searchResultsView.updateView(results, query);\n this.show();\n // this.searchResultsView.scrollToTop();\n\n // Get the maps floors here!!!!!\n // element.scrollTop = 0;\n // this.container.scrollTop = 0;\n // window.scrollTo(0,0);\n }\n }, {\n key: \"_handleSelectedContentState\",\n value: function _handleSelectedContentState(_) {\n this.searchResultsView.updateResults([]);\n this.hide();\n }\n }, {\n key: \"_handleDirectionsState\",\n value: function _handleDirectionsState(_) {\n return;\n }\n }, {\n key: \"_handleSetupState\",\n value: function _handleSetupState() {\n this.hide();\n }\n }]);\n}(_core_Control__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SearchResultsControl);\n\n//# sourceURL=webpack://waygomaps/./src/Controls/SearchResultsControl.js?");
639
+ 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 webpack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! webpack */ \"./node_modules/webpack/lib/index.js\");\n/* harmony import */ var webpack__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(webpack__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_SearchResultsView_SearchResultsView__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/SearchResultsView/SearchResultsView */ \"./src/components/SearchResultsView/SearchResultsView.js\");\n/* harmony import */ var _core_Control__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/Control */ \"./src/core/Control.js\");\n/* harmony import */ var _WaygoMaps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../WaygoMaps */ \"./src/WaygoMaps.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 _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\n\n\nvar SearchResultsControl = /*#__PURE__*/function (_Control) {\n function SearchResultsControl() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, SearchResultsControl);\n _this = _callSuper(this, SearchResultsControl, [options]);\n _this.searchResultsView = new _components_SearchResultsView_SearchResultsView__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n _this.searchApi = _WaygoMaps__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSearchApi();\n _this.searchedQuery = null;\n _this.map = null;\n _this.lastSearchLength = 0;\n _this.skip = 0;\n _this.limit = 20;\n return _this;\n }\n _inherits(SearchResultsControl, _Control);\n return _createClass(SearchResultsControl, [{\n key: \"onAdd\",\n value: function onAdd(map) {\n this.map = map;\n this.container = document.createElement('div');\n this.container.className = 'search-results-control-container';\n var element = this.searchResultsView.getElement();\n this.container.appendChild(element);\n this.hide();\n this._initializeEventListeners();\n this._attachResizeListener();\n this._attachScrollListener();\n this._initialize();\n return this.container;\n }\n }, {\n key: \"onRemove\",\n value: function onRemove() {\n _superPropGet(SearchResultsControl, \"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('initiate:search', this._handleInitiateSearchState.bind(this));\n this.map.on('state:directions', this._handleDirectionsState.bind(this));\n this.map.on('state:setup', this._handleSetupState.bind(this));\n this.searchResultsView.on('closeView', this._handleCloseSearchResultsView.bind(this));\n this.searchResultsView.on('selectCell', this._handleSearchResultSelect.bind(this));\n this.searchResultsView.on('hoverCell', this._handleCellHover.bind(this));\n this.searchResultsView.on('hoverOutCell', this._handleCellHoverOut.bind(this));\n }\n }, {\n key: \"_handleCellHover\",\n value: function _handleCellHover(data) {\n var result = data.result;\n this.map.fire('hoverSearchResult', {\n result: result\n });\n }\n }, {\n key: \"_handleCellHoverOut\",\n value: function _handleCellHoverOut(data) {\n var result = data.result;\n this.map.fire('hoverEndSearchResult', {\n result: result\n });\n }\n }, {\n key: \"_attachScrollListener\",\n value: function _attachScrollListener() {\n var searchResultsElement = this.searchResultsView.getElement();\n searchResultsElement.addEventListener('scroll', this._handleScroll.bind(this));\n }\n }, {\n key: \"_renderDesktopView\",\n value: function _renderDesktopView() {\n var element = this.searchResultsView.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 var element = this.searchResultsView.getElement();\n this.container.appendChild(element);\n this.container.classList.remove('desktop-view');\n this.container.classList.add('mobile-view');\n }\n }, {\n key: \"_handleScroll\",\n value: function () {\n var _handleScroll2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var searchResultsElement, scrollTop, scrollHeight, clientHeight, threshold, distFromBottom, newResults;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n searchResultsElement = this.searchResultsView.getElement();\n scrollTop = searchResultsElement.scrollTop, scrollHeight = searchResultsElement.scrollHeight, clientHeight = searchResultsElement.clientHeight;\n threshold = 0;\n distFromBottom = scrollHeight - scrollTop - clientHeight + threshold;\n if (!(distFromBottom < 10 && !this.searchResultsView.loading && this.lastSearchLength === 20)) {\n _context.next = 14;\n break;\n }\n // scrollTop = 0;\n this.searchResultsView.showLoadingCell();\n _context.next = 8;\n return this._getAdditionalSearchResults();\n case 8:\n newResults = _context.sent;\n this.lastSearchLength = newResults.length;\n this.searchResultsView.extendResults(newResults);\n this.skip += this.limit;\n this.map.fire('additionalSearchResults', {\n results: newResults\n });\n this.searchResultsView.hideLoadingCell();\n case 14:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function _handleScroll() {\n return _handleScroll2.apply(this, arguments);\n }\n return _handleScroll;\n }()\n }, {\n key: \"_getAdditionalSearchResults\",\n value: function () {\n var _getAdditionalSearchResults2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var query, results;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n query = this.searchedQuery;\n if (!(query === '')) {\n _context2.next = 4;\n break;\n }\n this.searchBox.searchBarSuggestionsView.updateResults([]);\n return _context2.abrupt(\"return\");\n case 4:\n if (this.map.mapData) {\n _context2.next = 6;\n break;\n }\n return _context2.abrupt(\"return\");\n case 6:\n _context2.prev = 6;\n _context2.next = 9;\n return this.searchApi.search(this.map.mapData.map_id, this.map.mapData.map_view_id, query, this.skip, this.limit);\n case 9:\n results = _context2.sent;\n return _context2.abrupt(\"return\", results);\n case 13:\n _context2.prev = 13;\n _context2.t0 = _context2[\"catch\"](6);\n if (axios.isCancel(_context2.t0)) {\n console.error('Request canceled:', _context2.t0.message);\n } else {\n console.error('Search error:', _context2.t0);\n }\n case 16:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this, [[6, 13]]);\n }));\n function _getAdditionalSearchResults() {\n return _getAdditionalSearchResults2.apply(this, arguments);\n }\n return _getAdditionalSearchResults;\n }()\n }, {\n key: \"_handleInitiateSearchState\",\n value: function _handleInitiateSearchState() {\n this.map.setToSearchState(this.searchedQuery);\n }\n }, {\n key: \"_handleSearchResultSelect\",\n value: function _handleSearchResultSelect(data) {\n var result = data.result;\n var placementId = result.placement_id;\n this.map.setToSelectedContentState([placementId]);\n }\n }, {\n key: \"_handleCloseSearchResultsView\",\n value: function _handleCloseSearchResultsView() {\n this.map.setToDefaultState();\n }\n }, {\n key: \"_handleDefaultState\",\n value: function _handleDefaultState() {\n this.searchedQuery = null;\n this.searchResultsView.updateResults([]);\n this.searchResultsView.scrollToTop();\n this.hide();\n }\n }, {\n key: \"_handleSearchState\",\n value: function _handleSearchState(data) {\n var query = data.query,\n results = data.results;\n\n // Find the floor with the most results\n var floorCounts = results.reduce(function (acc, result) {\n acc[result.floor] = (acc[result.floor] || 0) + 1;\n return acc;\n }, {});\n\n // Get the floor with the highest count\n var bestFloor = Object.entries(floorCounts).reduce(function (a, b) {\n return b[1] > a[1] ? b : a;\n }, [0, 0])[0];\n\n // Only switch floors if none of the results are on the current floor\n var currentFloor = this.map.getCurrentFloor();\n var hasResultsOnCurrentFloor = results.some(function (result) {\n return result.floor === currentFloor;\n });\n if (!hasResultsOnCurrentFloor) {\n this.map.updateFloor(parseInt(bestFloor));\n }\n\n // console.log('search results', results);\n\n this.searchedQuery = query;\n this.lastSearchLength = results.length;\n this.skip = this.limit;\n this.searchResultsView.updateResults([]);\n var floors = this.map.mapData.floors;\n if (floors.length > 1) {\n this.searchResultsView.updateView(results, query, floors);\n }\n this.searchResultsView.updateView(results, query);\n this.show();\n // this.searchResultsView.scrollToTop();\n\n // Get the maps floors here!!!!!\n // element.scrollTop = 0;\n // this.container.scrollTop = 0;\n // window.scrollTo(0,0);\n }\n }, {\n key: \"_handleSelectedContentState\",\n value: function _handleSelectedContentState(_) {\n this.searchResultsView.updateResults([]);\n this.hide();\n }\n }, {\n key: \"_handleDirectionsState\",\n value: function _handleDirectionsState(_) {\n return;\n }\n }, {\n key: \"_handleSetupState\",\n value: function _handleSetupState() {\n this.hide();\n }\n }]);\n}(_core_Control__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SearchResultsControl);\n\n//# sourceURL=webpack://waygomaps/./src/Controls/SearchResultsControl.js?");
640
640
 
641
641
  /***/ }),
642
642
 
@@ -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 viableData = {};\n keys.forEach(function (key) {\n var value = data[key];\n if (key !== titleKey && key !== 'Type' && !key.toLowerCase().includes('description') && 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
 
@@ -735,7 +735,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
735
735
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
736
736
 
737
737
  "use strict";
738
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ContentDetails: () => (/* binding */ ContentDetails),\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\");\n/* harmony import */ var _ContentPlacementHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ContentPlacementHeader */ \"./src/components/ContentPlacementView/ContentPlacementHeader.js\");\n/* harmony import */ var _ContextualLocationView__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ContextualLocationView */ \"./src/components/ContentPlacementView/ContextualLocationView.js\");\n/* harmony import */ var _DetailsView__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DetailsView */ \"./src/components/ContentPlacementView/DetailsView.js\");\n/* harmony import */ var _ContentChildrenView__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ContentChildrenView */ \"./src/components/ContentPlacementView/ContentChildrenView.js\");\n/* harmony import */ var _assets_location_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../assets/location.svg */ \"./src/assets/location.svg\");\n/* harmony import */ var _assets_website_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../assets/website.svg */ \"./src/assets/website.svg\");\n/* harmony import */ var _assets_copyIcon_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../assets/copyIcon.svg */ \"./src/assets/copyIcon.svg\");\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 _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\n\n\n\n\n\n\n\nvar ContentDetails = /*#__PURE__*/function (_Component) {\n function ContentDetails() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, ContentDetails);\n _this = _callSuper(this, ContentDetails, [options]);\n _this.contentPlacement = null;\n _this.element = document.createElement('div');\n _this.element.className = 'content-details';\n _this.header = document.createElement('div');\n _this.header.className = 'content-details-header';\n _this.contentPlacementHeader = null;\n _this.actionsView = document.createElement('div');\n _this.actionsView.className = 'content-details-section';\n _this.actionButtons = document.createElement('div');\n _this.actionButtons.className = 'content-details-action-buttons';\n _this.directionsButton = document.createElement('button');\n _this.directionsButton.className = 'content-details-directions-button';\n _this.directionsButton.textContent = 'Directions';\n _this.shareButton = document.createElement('button');\n _this.shareButton.className = 'content-details-share-button';\n _this.shareButton.textContent = 'Share';\n var copyIconElement = document.createElement('img');\n copyIconElement.src = _assets_copyIcon_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n copyIconElement.className = 'copy-icon'; // Add a class for styling\n\n _this.shareButton.appendChild(copyIconElement);\n _this.locationButton = null;\n // this.websiteButton = null;\n _this.websiteButtons = [];\n _this.detailsView = null;\n _this.childrenComponents = [];\n _this.imageContainer = null;\n return _this;\n }\n _inherits(ContentDetails, _Component);\n return _createClass(ContentDetails, [{\n key: \"_setupEventListeners\",\n value: function _setupEventListeners() {\n var _this2 = this;\n this.childrenComponents.forEach(function (childrenComponent) {\n childrenComponent.on('selectChildContentPlacement', _this2._handleSelectChildContentPlacement.bind(_this2));\n });\n this.directionsButton.addEventListener('click', this._handleDirectionsButtonSelect.bind(this));\n this.shareButton.addEventListener('click', this._handleShareButtonSelect.bind(this));\n }\n }, {\n key: \"_render\",\n value: function _render() {\n var _this3 = this;\n this.element.innerHTML = '';\n this.header.innerHTML = '';\n this.actionsView.innerHTML = '';\n\n // Header elements\n if (this.contentPlacementHeader) {\n this.header.appendChild(this.contentPlacementHeader.getElement());\n }\n this.actionButtons.appendChild(this.directionsButton);\n this.actionButtons.appendChild(this.shareButton);\n this.header.appendChild(this.actionButtons);\n if (this.locationButton) {\n this.actionsView.appendChild(this.locationButton.getElement());\n }\n\n // if (this.websiteButton) {\n // this.actionsView.appendChild(this.websiteButton.getElement());\n // }\n\n this.websiteButtons.forEach(function (websiteButton) {\n _this3.actionsView.appendChild(websiteButton.getElement());\n });\n\n // Add image container if there are images\n if (this.imageContainer) {\n this.actionsView.appendChild(this.imageContainer);\n }\n this.header.appendChild(this.actionsView);\n this.element.appendChild(this.header);\n\n // Details view element\n if (this.detailsView) {\n this.detailsView.innerHTML = '';\n this.element.appendChild(this.detailsView.getElement());\n }\n\n // Children view elements\n this.childrenComponents.forEach(function (childrenComponent) {\n _this3.element.appendChild(childrenComponent.getElement());\n });\n }\n }, {\n key: \"_handleShareButtonSelect\",\n value: function _handleShareButtonSelect() {\n this.fire('selectShareButton', {\n placementId: this.contentPlacement.placement_id\n });\n }\n }, {\n key: \"showCopyPopup\",\n value: function showCopyPopup() {\n // Create popup element\n var popup = document.createElement('div');\n popup.className = 'copy-popup';\n popup.textContent = 'Copied to clipboard';\n\n // Position the popup below the share button\n var buttonRect = this.shareButton.getBoundingClientRect();\n var popupWidth = 120;\n popup.style.position = 'absolute';\n popup.style.left = \"\".concat(buttonRect.left + buttonRect.width / 2 - popupWidth / 2, \"px\"); // `${buttonRect.left}px`;\n popup.style.top = \"\".concat(buttonRect.bottom + window.scrollY, \"px\"); // Adjust for scroll position\n popup.style.zIndex = '9999'; // Ensure it appears on top of other components\n\n document.body.appendChild(popup);\n\n // Fade out and remove popup after 2 seconds\n setTimeout(function () {\n popup.style.opacity = '0';\n popup.style.transition = 'opacity 0.5s';\n setTimeout(function () {\n popup.remove();\n }, 500);\n }, 1500);\n }\n }, {\n key: \"_handleDirectionsButtonSelect\",\n value: function _handleDirectionsButtonSelect() {\n this.fire('selectDirectionsButton', {\n placementId: this.contentPlacement.placement_id\n });\n }\n }, {\n key: \"_handleBackArrowClick\",\n value: function _handleBackArrowClick() {\n this.fire('selectBackButton');\n }\n }, {\n key: \"_handleSelectChildContentPlacement\",\n value: function _handleSelectChildContentPlacement(data) {\n var placementId = data.placementId;\n this.fire('selectChildContentPlacement', {\n placementId: placementId\n });\n }\n }, {\n key: \"findViableAdditionalData\",\n value: function findViableAdditionalData(contentPlacement) {\n var schema = contentPlacement.catalog.data_schema;\n var titleKey = contentPlacement.catalog.content_title_key;\n var viableData = {};\n for (var _i = 0, _Object$entries = Object.entries(schema); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n if (value !== 'image' && value !== 'url' && key !== titleKey && key !== 'Type') {\n var dataValue = contentPlacement.content.data[key];\n if (dataValue && dataValue.trim() !== '') {\n var cleanDataValue = dataValue.trim().replace(/\\s+/g, ' ');\n viableData[key] = cleanDataValue;\n }\n }\n }\n return viableData;\n }\n }, {\n key: \"updateView\",\n value: function updateView(contentPlacement) {\n var _this4 = this;\n this.contentPlacement = contentPlacement;\n\n // Update the header\n this.contentPlacementHeader = new _ContentPlacementHeader__WEBPACK_IMPORTED_MODULE_1__[\"default\"](contentPlacement);\n var schema = contentPlacement.catalog.data_schema;\n\n // Update location and website buttons\n this.locationButton = new _ContextualLocationView__WEBPACK_IMPORTED_MODULE_2__[\"default\"](_assets_location_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], contentPlacement.contextual_location);\n // const websiteUrl = contentPlacement.content.data['URL'] || contentPlacement.content.data['Website'] || contentPlacement.content.data['LinkedIn'] || contentPlacement.content.data['Website URL'] || contentPlacement.content.data['SNS'];\n var urlFields = ['URL', 'Website', 'LinkedIn', 'Website URL', 'SNS', 'Networking Link'];\n for (var _i2 = 0, _Object$entries2 = Object.entries(schema); _i2 < _Object$entries2.length; _i2++) {\n var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),\n key = _Object$entries2$_i[0],\n value = _Object$entries2$_i[1];\n if (value === 'url') {\n var url = contentPlacement.content.data[key];\n if (url && url.trim() !== '') {\n this.websiteButtons.push(new _ContextualLocationView__WEBPACK_IMPORTED_MODULE_2__[\"default\"](_assets_website_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], url, url));\n }\n }\n }\n\n // Make a copy of content data\n var contentDataCopy = _objectSpread({}, contentPlacement.content.data);\n\n // Collect image keys and remove them from copy\n var images = [];\n var displayImgKey = contentPlacement.catalog.content_display_img_key;\n for (var _i3 = 0, _Object$entries3 = Object.entries(schema); _i3 < _Object$entries3.length; _i3++) {\n var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),\n _key = _Object$entries3$_i[0],\n _value = _Object$entries3$_i[1];\n if (_value === 'image' && _key !== displayImgKey) {\n var imageUrl = contentPlacement.content.data[_key];\n if (imageUrl) {\n images.push(imageUrl);\n }\n delete contentDataCopy[_key];\n }\n }\n\n // Update details view with new viable data\n var viableAdditionalData = this.findViableAdditionalData(contentPlacement);\n var viableDataKeys = Object.keys(viableAdditionalData);\n this.detailsView = viableDataKeys.length > 0 ? new _DetailsView__WEBPACK_IMPORTED_MODULE_3__[\"default\"](viableAdditionalData) : null;\n\n // Update children components\n this.childrenComponents = [];\n for (var _i4 = 0, _Object$entries4 = Object.entries(contentPlacement.children); _i4 < _Object$entries4.length; _i4++) {\n var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i4], 2),\n title = _Object$entries4$_i[0],\n children = _Object$entries4$_i[1];\n var childrenComponent = new _ContentChildrenView__WEBPACK_IMPORTED_MODULE_4__[\"default\"](title, children);\n this.childrenComponents.push(childrenComponent);\n }\n\n // Handle images\n if (images.length > 0) {\n this.imageContainer = document.createElement('div');\n this.imageContainer.className = 'content-details-image-container';\n var firstImage = document.createElement('img');\n firstImage.src = images[0];\n firstImage.className = 'content-details-preview-image';\n var hoverPopup = document.createElement('div');\n hoverPopup.className = 'image-hover-popup';\n hoverPopup.textContent = 'See photos';\n this.imageContainer.appendChild(firstImage);\n this.imageContainer.appendChild(hoverPopup);\n this.imageContainer.addEventListener('click', function () {\n _this4.fire('selectPhotos', {\n placementId: _this4.contentPlacement.placement_id,\n images: images\n });\n });\n } else {\n this.imageContainer = null;\n }\n\n // Reset event listeners\n this._setupEventListeners();\n\n // Re-render the component with the new data\n this._render();\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__ = (ContentDetails);\n\n//# sourceURL=webpack://waygomaps/./src/components/ContentPlacementView/ContentDetails.js?");
738
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ContentDetails: () => (/* binding */ ContentDetails),\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\");\n/* harmony import */ var _ContentPlacementHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ContentPlacementHeader */ \"./src/components/ContentPlacementView/ContentPlacementHeader.js\");\n/* harmony import */ var _ContextualLocationView__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ContextualLocationView */ \"./src/components/ContentPlacementView/ContextualLocationView.js\");\n/* harmony import */ var _DetailsView__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DetailsView */ \"./src/components/ContentPlacementView/DetailsView.js\");\n/* harmony import */ var _ContentChildrenView__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ContentChildrenView */ \"./src/components/ContentPlacementView/ContentChildrenView.js\");\n/* harmony import */ var _assets_location_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../assets/location.svg */ \"./src/assets/location.svg\");\n/* harmony import */ var _assets_website_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../assets/website.svg */ \"./src/assets/website.svg\");\n/* harmony import */ var _assets_copyIcon_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../assets/copyIcon.svg */ \"./src/assets/copyIcon.svg\");\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 _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\n\n\n\n\n\n\n\nvar ContentDetails = /*#__PURE__*/function (_Component) {\n function ContentDetails() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, ContentDetails);\n _this = _callSuper(this, ContentDetails, [options]);\n _this.contentPlacement = null;\n _this.element = document.createElement('div');\n _this.element.className = 'content-details';\n _this.header = document.createElement('div');\n _this.header.className = 'content-details-header';\n _this.contentPlacementHeader = null;\n _this.actionsView = document.createElement('div');\n _this.actionsView.className = 'content-details-section';\n _this.actionButtons = document.createElement('div');\n _this.actionButtons.className = 'content-details-action-buttons';\n _this.directionsButton = document.createElement('button');\n _this.directionsButton.className = 'content-details-directions-button';\n _this.directionsButton.textContent = 'Directions';\n _this.shareButton = document.createElement('button');\n _this.shareButton.className = 'content-details-share-button';\n _this.shareButton.textContent = 'Share';\n var copyIconElement = document.createElement('img');\n copyIconElement.src = _assets_copyIcon_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n copyIconElement.className = 'copy-icon'; // Add a class for styling\n\n _this.shareButton.appendChild(copyIconElement);\n _this.locationButton = null;\n // this.websiteButton = null;\n _this.websiteButtons = [];\n _this.detailsView = null;\n _this.childrenComponents = [];\n _this.imageContainer = null;\n return _this;\n }\n _inherits(ContentDetails, _Component);\n return _createClass(ContentDetails, [{\n key: \"_setupEventListeners\",\n value: function _setupEventListeners() {\n var _this2 = this;\n this.childrenComponents.forEach(function (childrenComponent) {\n childrenComponent.on('selectChildContentPlacement', _this2._handleSelectChildContentPlacement.bind(_this2));\n });\n this.directionsButton.addEventListener('click', this._handleDirectionsButtonSelect.bind(this));\n this.shareButton.addEventListener('click', this._handleShareButtonSelect.bind(this));\n }\n }, {\n key: \"_render\",\n value: function _render() {\n var _this3 = this;\n this.element.innerHTML = '';\n this.header.innerHTML = '';\n this.actionsView.innerHTML = '';\n\n // Header elements\n if (this.contentPlacementHeader) {\n this.header.appendChild(this.contentPlacementHeader.getElement());\n }\n this.actionButtons.appendChild(this.directionsButton);\n this.actionButtons.appendChild(this.shareButton);\n this.header.appendChild(this.actionButtons);\n if (this.locationButton) {\n this.actionsView.appendChild(this.locationButton.getElement());\n }\n\n // if (this.websiteButton) {\n // this.actionsView.appendChild(this.websiteButton.getElement());\n // }\n\n this.websiteButtons.forEach(function (websiteButton) {\n _this3.actionsView.appendChild(websiteButton.getElement());\n });\n\n // Add image container if there are images\n if (this.imageContainer) {\n this.actionsView.appendChild(this.imageContainer);\n }\n this.header.appendChild(this.actionsView);\n this.element.appendChild(this.header);\n\n // Details view element\n if (this.detailsView) {\n this.detailsView.innerHTML = '';\n this.element.appendChild(this.detailsView.getElement());\n }\n\n // Children view elements\n this.childrenComponents.forEach(function (childrenComponent) {\n _this3.element.appendChild(childrenComponent.getElement());\n });\n }\n }, {\n key: \"_handleShareButtonSelect\",\n value: function _handleShareButtonSelect() {\n this.fire('selectShareButton', {\n placementId: this.contentPlacement.placement_id\n });\n }\n }, {\n key: \"showCopyPopup\",\n value: function showCopyPopup() {\n // Create popup element\n var popup = document.createElement('div');\n popup.className = 'copy-popup';\n popup.textContent = 'Copied to clipboard';\n\n // Position the popup below the share button\n var buttonRect = this.shareButton.getBoundingClientRect();\n var popupWidth = 120;\n popup.style.position = 'absolute';\n popup.style.left = \"\".concat(buttonRect.left + buttonRect.width / 2 - popupWidth / 2, \"px\"); // `${buttonRect.left}px`;\n popup.style.top = \"\".concat(buttonRect.bottom + window.scrollY, \"px\"); // Adjust for scroll position\n popup.style.zIndex = '9999'; // Ensure it appears on top of other components\n\n document.body.appendChild(popup);\n\n // Fade out and remove popup after 2 seconds\n setTimeout(function () {\n popup.style.opacity = '0';\n popup.style.transition = 'opacity 0.5s';\n setTimeout(function () {\n popup.remove();\n }, 500);\n }, 1500);\n }\n }, {\n key: \"_handleDirectionsButtonSelect\",\n value: function _handleDirectionsButtonSelect() {\n this.fire('selectDirectionsButton', {\n placementId: this.contentPlacement.placement_id\n });\n }\n }, {\n key: \"_handleBackArrowClick\",\n value: function _handleBackArrowClick() {\n this.fire('selectBackButton');\n }\n }, {\n key: \"_handleSelectChildContentPlacement\",\n value: function _handleSelectChildContentPlacement(data) {\n var placementId = data.placementId;\n this.fire('selectChildContentPlacement', {\n placementId: placementId\n });\n }\n }, {\n key: \"findViableAdditionalData\",\n value: function findViableAdditionalData(contentPlacement) {\n var schema = contentPlacement.catalog.data_schema;\n var titleKey = contentPlacement.catalog.content_title_key;\n var excludedKeys = contentPlacement.excluded_child_fields || [];\n var viableData = {};\n for (var _i = 0, _Object$entries = Object.entries(schema); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n if (value !== 'image' && value !== 'url' && key !== titleKey && !excludedKeys.includes(key)) {\n var dataValue = contentPlacement.content.data[key];\n if (dataValue && dataValue.trim() !== '') {\n var cleanDataValue = dataValue.trim().replace(/\\s+/g, ' ');\n viableData[key] = cleanDataValue;\n }\n }\n }\n return viableData;\n }\n }, {\n key: \"updateView\",\n value: function updateView(contentPlacement) {\n var _this4 = this;\n this.contentPlacement = contentPlacement;\n\n // Update the header\n this.contentPlacementHeader = new _ContentPlacementHeader__WEBPACK_IMPORTED_MODULE_1__[\"default\"](contentPlacement);\n var schema = contentPlacement.catalog.data_schema;\n\n // Update location and website buttons\n this.locationButton = new _ContextualLocationView__WEBPACK_IMPORTED_MODULE_2__[\"default\"](_assets_location_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], contentPlacement.contextual_location);\n // const websiteUrl = contentPlacement.content.data['URL'] || contentPlacement.content.data['Website'] || contentPlacement.content.data['LinkedIn'] || contentPlacement.content.data['Website URL'] || contentPlacement.content.data['SNS'];\n var urlFields = ['URL', 'Website', 'LinkedIn', 'Website URL', 'SNS', 'Networking Link'];\n for (var _i2 = 0, _Object$entries2 = Object.entries(schema); _i2 < _Object$entries2.length; _i2++) {\n var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),\n key = _Object$entries2$_i[0],\n value = _Object$entries2$_i[1];\n if (value === 'url') {\n var url = contentPlacement.content.data[key];\n if (url && url.trim() !== '') {\n this.websiteButtons.push(new _ContextualLocationView__WEBPACK_IMPORTED_MODULE_2__[\"default\"](_assets_website_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], url, url));\n }\n }\n }\n\n // Make a copy of content data\n var contentDataCopy = _objectSpread({}, contentPlacement.content.data);\n\n // Collect image keys and remove them from copy\n var images = [];\n var displayImgKey = contentPlacement.catalog.content_display_img_key;\n for (var _i3 = 0, _Object$entries3 = Object.entries(schema); _i3 < _Object$entries3.length; _i3++) {\n var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),\n _key = _Object$entries3$_i[0],\n _value = _Object$entries3$_i[1];\n if (_value === 'image' && _key !== displayImgKey) {\n var imageUrl = contentPlacement.content.data[_key];\n if (imageUrl) {\n images.push(imageUrl);\n }\n delete contentDataCopy[_key];\n }\n }\n\n // Update details view with new viable data\n var viableAdditionalData = this.findViableAdditionalData(contentPlacement);\n var viableDataKeys = Object.keys(viableAdditionalData);\n this.detailsView = viableDataKeys.length > 0 ? new _DetailsView__WEBPACK_IMPORTED_MODULE_3__[\"default\"](viableAdditionalData) : null;\n\n // Update children components\n this.childrenComponents = [];\n for (var _i4 = 0, _Object$entries4 = Object.entries(contentPlacement.children); _i4 < _Object$entries4.length; _i4++) {\n var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i4], 2),\n title = _Object$entries4$_i[0],\n children = _Object$entries4$_i[1];\n var childrenComponent = new _ContentChildrenView__WEBPACK_IMPORTED_MODULE_4__[\"default\"](title, children);\n this.childrenComponents.push(childrenComponent);\n }\n\n // Handle images\n if (images.length > 0) {\n this.imageContainer = document.createElement('div');\n this.imageContainer.className = 'content-details-image-container';\n var firstImage = document.createElement('img');\n firstImage.src = images[0];\n firstImage.className = 'content-details-preview-image';\n var hoverPopup = document.createElement('div');\n hoverPopup.className = 'image-hover-popup';\n hoverPopup.textContent = 'See photos';\n this.imageContainer.appendChild(firstImage);\n this.imageContainer.appendChild(hoverPopup);\n this.imageContainer.addEventListener('click', function () {\n _this4.fire('selectPhotos', {\n placementId: _this4.contentPlacement.placement_id,\n images: images\n });\n });\n } else {\n this.imageContainer = null;\n }\n\n // Reset event listeners\n this._setupEventListeners();\n\n // Re-render the component with the new data\n this._render();\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__ = (ContentDetails);\n\n//# sourceURL=webpack://waygomaps/./src/components/ContentPlacementView/ContentDetails.js?");
739
739
 
740
740
  /***/ }),
741
741
 
@@ -911,7 +911,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
911
911
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
912
912
 
913
913
  "use strict";
914
- 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 _core_Component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/Component */ \"./src/core/Component.js\");\n/* harmony import */ var _assets_arrows_leftArrow_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../assets/arrows/leftArrow.svg */ \"./src/assets/arrows/leftArrow.svg\");\n/* harmony import */ var _assets_arrows_rightArrow_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../assets/arrows/rightArrow.svg */ \"./src/assets/arrows/rightArrow.svg\");\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 _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// import leftArrowIcon from '../../assets/arrows/leftArrow.svg';\n\n\n\nvar SliderBar = /*#__PURE__*/function (_Component) {\n function SliderBar() {\n var _options$allowsToggle;\n var _this;\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, SliderBar);\n _this = _callSuper(this, SliderBar, [options]);\n _this.items = items;\n _this.buttonElements = [];\n _this.allowsToggle = (_options$allowsToggle = options.allowsToggle) !== null && _options$allowsToggle !== void 0 ? _options$allowsToggle : true;\n _this.containerClass = options.container;\n _this.element = document.createElement('div');\n _this.element.className = \"slider-bar-container \".concat(_this.containerClass); //this.containerClass; // 'slider-bar-container';\n\n _this.sliderBar = document.createElement('div');\n _this.sliderBar.className = \"slider-bar \".concat(_this.containerClass, \"-bar\");\n _this.leftButton = document.createElement('button');\n _this.leftButton.className = \"scroll-button left \".concat(_this.containerClass, \"-scroll-button\");\n _this.leftButton.style.backgroundImage = \"url(\".concat(_assets_arrows_leftArrow_svg__WEBPACK_IMPORTED_MODULE_1__[\"default\"], \")\");\n _this.leftButton.addEventListener('click', function () {\n return _this._scrollSliderBar('left');\n });\n _this.rightButton = document.createElement('button');\n _this.rightButton.className = \"scroll-button right \".concat(_this.containerClass, \"-scroll-button\");\n _this.rightButton.style.backgroundImage = \"url(\".concat(_assets_arrows_rightArrow_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], \")\");\n _this.rightButton.addEventListener('click', function () {\n return _this._scrollSliderBar('right');\n });\n _this.buttonElements = [];\n _this.selectedValue = null;\n _this._render();\n _this.sliderBar.addEventListener('scroll', function () {\n return _this._updateScrollButtons();\n });\n\n // Initial check\n setTimeout(function () {\n return _this._updateScrollButtons();\n }, 0.8);\n return _this;\n }\n _inherits(SliderBar, _Component);\n return _createClass(SliderBar, [{\n key: \"updateItems\",\n value: function updateItems(newItems) {\n this.items = newItems;\n\n // Clear existing buttons\n this.sliderBar.innerHTML = '';\n this.buttonElements = [];\n\n // Re-render with new items\n this._render();\n this._updateScrollButtons(); // Re-evaluate scroll buttons\n }\n }, {\n key: \"_render\",\n value: function _render() {\n var _this2 = this;\n this.items.forEach(function (title) {\n // this.items.forEach(({ title, imageUrl }) => {\n var button = document.createElement('button');\n button.addEventListener('click', _this2._handleSliderButtonSelect.bind(_this2));\n button.className = \"slider-bar-button \".concat(_this2.containerClass, \"-button\");\n var titleSpan = document.createElement('span');\n titleSpan.textContent = title;\n button.appendChild(titleSpan);\n _this2.buttonElements.push(button);\n _this2.sliderBar.appendChild(button);\n });\n this.element.appendChild(this.leftButton);\n this.element.appendChild(this.sliderBar);\n this.element.appendChild(this.rightButton);\n }\n }, {\n key: \"setViewForDesktop\",\n value: function setViewForDesktop() {\n this.buttonElements.forEach(function (button) {\n if (button) {\n button.classList.remove('mobile-view');\n }\n });\n }\n }, {\n key: \"setViewForMobile\",\n value: function setViewForMobile() {\n this.buttonElements.forEach(function (button) {\n if (button) {\n button.classList.add('mobile-view');\n }\n });\n }\n }, {\n key: \"_handleSliderButtonSelect\",\n value: function _handleSliderButtonSelect(event) {\n var button = event.currentTarget;\n var query = button.querySelector('span').textContent;\n var index = this.buttonElements.indexOf(button);\n if (button.classList.contains('selected')) {\n if (this.allowsToggle) {\n button.classList.remove('selected');\n this.fire(\"\".concat(this.containerClass, \":deselect\"));\n this.selectedValue = null;\n }\n } else {\n var currentlySelected = document.querySelector(\".slider-bar-button.\".concat(this.containerClass, \"-button.selected\"));\n if (currentlySelected) {\n currentlySelected.classList.remove('selected');\n }\n button.classList.add('selected');\n this.selectedValue = query;\n this.fire(\"\".concat(this.containerClass, \":selectNew\"), {\n query: query,\n index: index\n });\n }\n }\n }, {\n key: \"_scrollSliderBar\",\n value: function _scrollSliderBar(direction) {\n var scrollAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 275;\n var maxScrollLeft = this.sliderBar.scrollWidth - this.sliderBar.clientWidth;\n var currentScrollLeft = this.sliderBar.scrollLeft;\n var finalScrollAmount = scrollAmount;\n if (direction === 'right') {\n var remainingScroll = maxScrollLeft - currentScrollLeft;\n if (remainingScroll < scrollAmount) {\n finalScrollAmount = remainingScroll; // Adjust to scroll exactly to the end\n }\n }\n if (direction === 'left') {\n this.sliderBar.scrollBy({\n left: -scrollAmount,\n behavior: 'smooth'\n });\n } else if (direction === 'right') {\n this.sliderBar.scrollBy({\n left: finalScrollAmount,\n behavior: 'smooth'\n });\n }\n }\n }, {\n key: \"_updateScrollButtons\",\n value: function _updateScrollButtons() {\n var scrollLeft = this.sliderBar.scrollLeft;\n var maxScrollLeft = this.sliderBar.scrollWidth - this.sliderBar.clientWidth;\n if (scrollLeft <= 0) {\n this.leftButton.style.display = 'none';\n } else {\n this.leftButton.style.display = 'block';\n }\n var diff = Math.abs(maxScrollLeft - scrollLeft);\n if (diff <= 1) {\n this.rightButton.style.display = 'none';\n } else {\n this.rightButton.style.display = 'block';\n }\n }\n }, {\n key: \"deselectAll\",\n value: function deselectAll() {\n var selectedButtons = this.sliderBar.querySelectorAll(\".slider-bar-button.\".concat(this.containerClass, \"-button.selected\"));\n if (selectedButtons) {\n selectedButtons.forEach(function (button) {\n return button.classList.remove('selected');\n });\n }\n }\n }, {\n key: \"deselectAllNotMatchingQuery\",\n value: function deselectAllNotMatchingQuery(query) {\n var selectedButtons = this.sliderBar.querySelectorAll(\".slider-bar-button.\".concat(this.containerClass, \"-button.selected\"));\n if (selectedButtons) {\n selectedButtons.forEach(function (button) {\n if (button.textContent !== query) {\n button.classList.remove('selected');\n }\n });\n }\n }\n }, {\n key: \"invertButtonAtIndex\",\n value: function invertButtonAtIndex(index) {\n var button = this.buttonElements[index];\n if (button) {\n button.classList.toggle('inverted');\n } else {\n console.error(\"Button at index \".concat(index, \" does not exist.\"));\n }\n }\n\n // USE THIS ONE INSTEAD OF invertButtonAtIndex ABOVE:\n }, {\n key: \"selectButtonAtIndex\",\n value: function selectButtonAtIndex(index) {\n var button = this.buttonElements[index];\n if (button) {\n if (!button.classList.contains('selected')) {\n this.deselectAll();\n var query = button.querySelector('span').textContent;\n button.classList.add('selected');\n this.selectedValue = query;\n this.fire(\"\".concat(this.containerClass, \":selectNew\"), {\n query: query,\n index: index\n });\n } else {\n console.log('button is already selected');\n }\n }\n }\n }, {\n key: \"getIndexOfSelectedButton\",\n value: function getIndexOfSelectedButton() {\n // Finds index o fhte selected button or returns -1 if not found.\n var selectedButtonIndex = this.buttonElements.findIndex(function (button) {\n return button.classList.contains('selected');\n });\n return selectedButtonIndex;\n\n // this.buttonElements.forEach((button) => {\n // if (button.classList.contins('selected'))\n // });\n }\n\n // const index = this.buttonElements.indexOf(button);\n\n // if (button.classList.contains('selected')) {\n // button.classList.remove('selected');\n // this.fire(`${this.containerClass}:deselect`);\n // this.selectedValue = null;\n // } else {\n // const currentlySelected = document.querySelector(`.slider-bar-button.${this.containerClass}-button.selected`);\n // if (currentlySelected) {\n // currentlySelected.classList.remove('selected');\n // }\n // button.classList.add('selected');\n // this.selectedValue = query;\n\n // this.fire(`${this.containerClass}:selectNew`, { query })\n // }\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _this3 = this;\n // Force recalculation of scroll buttons visibility\n this._updateScrollButtons();\n\n // Re-render the entire slider bar content\n this._render();\n\n // Wait a short moment for the DOM to update before checking scroll buttons again\n setTimeout(function () {\n _this3._updateScrollButtons();\n }, 100);\n }\n }, {\n key: \"getElement\",\n value: function getElement() {\n return this.element;\n }\n }, {\n key: \"show\",\n value: function show() {\n this.element.classList.add('visible');\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.element.classList.remove('visible');\n }\n }]);\n}(_core_Component__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SliderBar);\n\n//# sourceURL=webpack://waygomaps/./src/components/SliderBar.js?");
914
+ 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 _core_Component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/Component */ \"./src/core/Component.js\");\n/* harmony import */ var _assets_arrows_leftArrow_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../assets/arrows/leftArrow.svg */ \"./src/assets/arrows/leftArrow.svg\");\n/* harmony import */ var _assets_arrows_rightArrow_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../assets/arrows/rightArrow.svg */ \"./src/assets/arrows/rightArrow.svg\");\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 _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// import leftArrowIcon from '../../assets/arrows/leftArrow.svg';\n\n\n\nvar SliderBar = /*#__PURE__*/function (_Component) {\n function SliderBar() {\n var _options$allowsToggle;\n var _this;\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, SliderBar);\n _this = _callSuper(this, SliderBar, [options]);\n _this.items = items;\n _this.buttonElements = [];\n _this.allowsToggle = (_options$allowsToggle = options.allowsToggle) !== null && _options$allowsToggle !== void 0 ? _options$allowsToggle : true;\n _this.containerClass = options.container;\n _this.element = document.createElement('div');\n _this.element.className = \"slider-bar-container \".concat(_this.containerClass); //this.containerClass; // 'slider-bar-container';\n\n _this.sliderBar = document.createElement('div');\n _this.sliderBar.className = \"slider-bar \".concat(_this.containerClass, \"-bar\");\n _this.leftButton = document.createElement('button');\n _this.leftButton.className = \"scroll-button left \".concat(_this.containerClass, \"-scroll-button\");\n _this.leftButton.style.backgroundImage = \"url(\".concat(_assets_arrows_leftArrow_svg__WEBPACK_IMPORTED_MODULE_1__[\"default\"], \")\");\n _this.leftButton.addEventListener('click', function () {\n return _this._scrollSliderBar('left');\n });\n _this.rightButton = document.createElement('button');\n _this.rightButton.className = \"scroll-button right \".concat(_this.containerClass, \"-scroll-button\");\n _this.rightButton.style.backgroundImage = \"url(\".concat(_assets_arrows_rightArrow_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], \")\");\n _this.rightButton.addEventListener('click', function () {\n return _this._scrollSliderBar('right');\n });\n _this.buttonElements = [];\n _this.selectedValue = null;\n _this._render();\n _this.sliderBar.addEventListener('scroll', function () {\n return _this._updateScrollButtons();\n });\n\n // Initial check\n setTimeout(function () {\n return _this._updateScrollButtons();\n }, 0.8);\n return _this;\n }\n _inherits(SliderBar, _Component);\n return _createClass(SliderBar, [{\n key: \"updateItems\",\n value: function updateItems(newItems) {\n this.items = newItems;\n\n // Clear existing buttons\n this.sliderBar.innerHTML = '';\n this.buttonElements = [];\n\n // Re-render with new items\n this._render();\n this._updateScrollButtons(); // Re-evaluate scroll buttons\n }\n }, {\n key: \"_render\",\n value: function _render() {\n var _this2 = this;\n this.items.forEach(function (title) {\n // this.items.forEach(({ title, imageUrl }) => {\n var button = document.createElement('button');\n button.addEventListener('click', _this2._handleSliderButtonSelect.bind(_this2));\n button.className = \"slider-bar-button \".concat(_this2.containerClass, \"-button\");\n var titleSpan = document.createElement('span');\n titleSpan.textContent = title;\n button.appendChild(titleSpan);\n _this2.buttonElements.push(button);\n _this2.sliderBar.appendChild(button);\n });\n this.element.appendChild(this.leftButton);\n this.element.appendChild(this.sliderBar);\n this.element.appendChild(this.rightButton);\n }\n }, {\n key: \"setViewForDesktop\",\n value: function setViewForDesktop() {\n this.buttonElements.forEach(function (button) {\n if (button) {\n button.classList.remove('mobile-view');\n }\n });\n }\n }, {\n key: \"setViewForMobile\",\n value: function setViewForMobile() {\n this.buttonElements.forEach(function (button) {\n if (button) {\n button.classList.add('mobile-view');\n }\n });\n }\n }, {\n key: \"_handleSliderButtonSelect\",\n value: function _handleSliderButtonSelect(event) {\n var button = event.currentTarget;\n var query = button.querySelector('span').textContent;\n var index = this.buttonElements.indexOf(button);\n if (button.classList.contains('selected')) {\n if (this.allowsToggle) {\n button.classList.remove('selected');\n this.fire(\"\".concat(this.containerClass, \":deselect\"));\n this.selectedValue = null;\n }\n } else {\n var currentlySelected = document.querySelector(\".slider-bar-button.\".concat(this.containerClass, \"-button.selected\"));\n if (currentlySelected) {\n currentlySelected.classList.remove('selected');\n }\n button.classList.add('selected');\n this.selectedValue = query;\n this.fire(\"\".concat(this.containerClass, \":selectNew\"), {\n query: query,\n index: index\n });\n }\n }\n }, {\n key: \"_scrollSliderBar\",\n value: function _scrollSliderBar(direction) {\n var scrollAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 275;\n var maxScrollLeft = this.sliderBar.scrollWidth - this.sliderBar.clientWidth;\n var currentScrollLeft = this.sliderBar.scrollLeft;\n var finalScrollAmount = scrollAmount;\n if (direction === 'right') {\n var remainingScroll = maxScrollLeft - currentScrollLeft;\n if (remainingScroll < scrollAmount) {\n finalScrollAmount = remainingScroll; // Adjust to scroll exactly to the end\n }\n }\n if (direction === 'left') {\n this.sliderBar.scrollBy({\n left: -scrollAmount,\n behavior: 'smooth'\n });\n } else if (direction === 'right') {\n this.sliderBar.scrollBy({\n left: finalScrollAmount,\n behavior: 'smooth'\n });\n }\n }\n }, {\n key: \"_updateScrollButtons\",\n value: function _updateScrollButtons() {\n var scrollLeft = this.sliderBar.scrollLeft;\n var maxScrollLeft = this.sliderBar.scrollWidth - this.sliderBar.clientWidth;\n if (scrollLeft <= 0) {\n this.leftButton.style.display = 'none';\n } else {\n this.leftButton.style.display = 'block';\n }\n var diff = Math.abs(maxScrollLeft - scrollLeft);\n if (diff <= 1) {\n this.rightButton.style.display = 'none';\n } else {\n this.rightButton.style.display = 'block';\n }\n }\n }, {\n key: \"deselectAll\",\n value: function deselectAll() {\n var selectedButtons = this.sliderBar.querySelectorAll(\".slider-bar-button.\".concat(this.containerClass, \"-button.selected\"));\n if (selectedButtons) {\n selectedButtons.forEach(function (button) {\n return button.classList.remove('selected');\n });\n }\n }\n }, {\n key: \"deselectAllNotMatchingQuery\",\n value: function deselectAllNotMatchingQuery(query) {\n var selectedButtons = this.sliderBar.querySelectorAll(\".slider-bar-button.\".concat(this.containerClass, \"-button.selected\"));\n if (selectedButtons) {\n selectedButtons.forEach(function (button) {\n if (button.textContent !== query) {\n button.classList.remove('selected');\n }\n });\n }\n }\n }, {\n key: \"invertButtonAtIndex\",\n value: function invertButtonAtIndex(index) {\n var button = this.buttonElements[index];\n if (button) {\n button.classList.toggle('inverted');\n } else {\n console.error(\"Button at index \".concat(index, \" does not exist.\"));\n }\n }\n\n // USE THIS ONE INSTEAD OF invertButtonAtIndex ABOVE:\n }, {\n key: \"selectButtonAtIndex\",\n value: function selectButtonAtIndex(index) {\n var button = this.buttonElements[index];\n if (button) {\n if (!button.classList.contains('selected')) {\n this.deselectAll();\n var query = button.querySelector('span').textContent;\n button.classList.add('selected');\n this.selectedValue = query;\n this.fire(\"\".concat(this.containerClass, \":selectNew\"), {\n query: query,\n index: index\n });\n } else {\n console.log('button is already selected');\n }\n }\n }\n }, {\n key: \"getIndexOfSelectedButton\",\n value: function getIndexOfSelectedButton() {\n // Finds index o fhte selected button or returns -1 if not found.\n var selectedButtonIndex = this.buttonElements.findIndex(function (button) {\n return button.classList.contains('selected');\n });\n return selectedButtonIndex;\n\n // this.buttonElements.forEach((button) => {\n // if (button.classList.contins('selected'))\n // });\n }\n\n // const index = this.buttonElements.indexOf(button);\n\n // if (button.classList.contains('selected')) {\n // button.classList.remove('selected');\n // this.fire(`${this.containerClass}:deselect`);\n // this.selectedValue = null;\n // } else {\n // const currentlySelected = document.querySelector(`.slider-bar-button.${this.containerClass}-button.selected`);\n // if (currentlySelected) {\n // currentlySelected.classList.remove('selected');\n // }\n // button.classList.add('selected');\n // this.selectedValue = query;\n\n // this.fire(`${this.containerClass}:selectNew`, { query })\n // }\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _this3 = this;\n this.element.innerHTML = '';\n this.sliderBar.innerHTML = '';\n this.buttonElements = [];\n\n // Force recalculation of scroll buttons visibility\n // this._updateScrollButtons();\n\n // Re-render the entire slider bar content\n this._render();\n\n // Wait a short moment for the DOM to update before checking scroll buttons again\n setTimeout(function () {\n _this3._updateScrollButtons();\n }, 100);\n }\n }, {\n key: \"getElement\",\n value: function getElement() {\n return this.element;\n }\n }, {\n key: \"show\",\n value: function show() {\n this.element.classList.add('visible');\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.element.classList.remove('visible');\n }\n }]);\n}(_core_Component__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SliderBar);\n\n//# sourceURL=webpack://waygomaps/./src/components/SliderBar.js?");
915
915
 
916
916
  /***/ }),
917
917
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "waygo-maps",
3
- "version": "1.1.38",
3
+ "version": "1.1.40",
4
4
  "main": "dist/bundle.js",
5
5
  "files": [
6
6
  "dist/bundle.js",