{"version":3,"file":"main.min.js","mappings":"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","sources":["webpack://vp/./node_modules/@vpsoftware/vprealestate-www/modernizr.js","webpack://vp/webpack/bootstrap","webpack://vp/webpack/runtime/define property getters","webpack://vp/webpack/runtime/hasOwnProperty shorthand","webpack://vp/webpack/runtime/make namespace object","webpack://vp/external var \"bootstrap\"","webpack://vp/./node_modules/@vpsoftware/vprealestate-www/main.mjs","webpack://vp/./src/plan.custom.ts","webpack://vp/./src/main.ts"],"sourcesContent":["/*! modernizr 3.6.0 (Custom Build) | MIT *\n * https://modernizr.com/download/?-webp-setclasses !*/\n!function(e,n,A){function o(e){var n=r.className,A=Modernizr._config.classPrefix||\"\";if(l&&(n=n.baseVal),Modernizr._config.enableJSClass){var o=new RegExp(\"(^|\\\\s)\"+A+\"no-js(\\\\s|$)\");n=n.replace(o,\"$1\"+A+\"js$2\")}Modernizr._config.enableClasses&&(n+=\" \"+A+e.join(\" \"+A),l?r.className.baseVal=n:r.className=n)}function t(e,n){return typeof e===n}function a(){var e,n,A,o,a,i,r;for(var l in f)if(f.hasOwnProperty(l)){if(e=[],n=f[l],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(A=0;A {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = bootstrap;","/******/ // The require scope\n/******/ var __webpack_require__ = {};\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__webpack_require__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/global */\n/******/ (() => {\n/******/ \t__webpack_require__.g = (function() {\n/******/ \t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\ttry {\n/******/ \t\t\treturn this || new Function('return this')();\n/******/ \t\t} catch (e) {\n/******/ \t\t\tif (typeof window === 'object') return window;\n/******/ \t\t}\n/******/ \t})();\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n JJ: () => (/* reexport */ AreaFormat),\n Eg: () => (/* reexport */ DefaultPermissions),\n Ex: () => (/* reexport */ MoneyFormat),\n w0: () => (/* reexport */ PlanElementType),\n YQ: () => (/* reexport */ PlanPathLayer),\n BH: () => (/* reexport */ PropertyPlan),\n Ut: () => (/* reexport */ PropertyType),\n ZD: () => (/* reexport */ escapeHtml),\n Mo: () => (/* reexport */ filterTables),\n XK: () => (/* reexport */ generateLightbox),\n H1: () => (/* reexport */ initCookieConsent),\n Dm: () => (/* reexport */ initGalleries),\n hA: () => (/* reexport */ initPlanButtons),\n fx: () => (/* reexport */ initTable),\n qY: () => (/* reexport */ initializePlan),\n FW: () => (/* reexport */ initializePlans),\n XT: () => (/* reexport */ isBlockOfFlats),\n Hf: () => (/* reexport */ isBuilding),\n b5: () => (/* reexport */ isFloor),\n uM: () => (/* reexport */ isProperty),\n Ad: () => (/* reexport */ propertyTypeToString),\n zE: () => (/* reexport */ randomId)\n});\n\n;// CONCATENATED MODULE: ./src/cookie-consent.ts\nconst CookieName = \"cookie-permits\";\nconst DefaultPermissions = {\n 'ad_storage': 'denied',\n 'analytics_storage': 'denied',\n 'ad_user_data': 'denied',\n 'ad_personalization': 'denied',\n};\nfunction initCookieConsent(defaultPermissions) {\n const confirmButtons = document.querySelectorAll(\"#cookie-consent button[data-cookie-string]\");\n confirmButtons.forEach((confirmButton) => {\n confirmButton.addEventListener(\"click\", confirmButtonClicked, false);\n });\n const adjustButton = document.querySelector(\"#cookie-consent button.adjust-button\");\n if (adjustButton instanceof HTMLButtonElement) {\n adjustButton.addEventListener(\"click\", () => {\n const popup = document.querySelector(\".cookie-popup\");\n if (!popup)\n throw new Error('Could not find popup element');\n popup.classList.add('cookie-details');\n }, false);\n }\n const acc = document.getElementsByClassName(\"accordion-custom\");\n for (let i = 0; i < acc.length; i++) {\n acc[i].addEventListener(\"click\", function () {\n this.classList.toggle(\"active\");\n const panel = acc[i].querySelector('.accordion-panel');\n if (!panel)\n throw new Error('Panel not found');\n if (panel.style.maxHeight) {\n panel.style.maxHeight = '';\n }\n else {\n panel.style.maxHeight = panel.scrollHeight + \"px\";\n }\n });\n }\n gtag('consent', 'default', defaultPermissions);\n const cookiePermits = getCookie(CookieName);\n if (cookiePermits != null) {\n let perm = structuredClone(defaultPermissions);\n cookiePermits.split(',').forEach(item => {\n if (item === 'analytics') {\n perm['analytics_storage'] = 'granted';\n }\n else if (item === 'ads') {\n perm['ad_storage'] = 'granted';\n perm['ad_user_data'] = 'granted';\n perm['ad_personalization'] = 'granted';\n }\n });\n gtag('consent', 'update', perm);\n }\n initializePermitValues();\n}\nfunction initializePermitValues() {\n const confirmInputs = document.querySelectorAll(\"#cookie-consent input[data-cookie-permit]\");\n const cookiePermits = getCookie(CookieName)?.split(',') ?? [];\n confirmInputs.forEach((input) => {\n if (cookiePermits.some(x => x === input.dataset['cookiePermit']))\n input.checked = true;\n });\n}\nfunction confirmButtonClicked(event) {\n const button = event.currentTarget;\n if (!(button instanceof HTMLElement))\n return;\n const cookieAllPermit = button.dataset['cookieAll'] != null;\n const confirmInputs = document.querySelectorAll(\"#cookie-consent input[data-cookie-permit]\");\n const permits = [...confirmInputs].filter(x => x instanceof HTMLInputElement && (cookieAllPermit || !!x.checked));\n const permitValues = permits.map((x) => x.dataset['cookiePermit'])\n .filter(x => !!x?.length);\n const expires = getCookieExpireString(button.dataset['cookieString']);\n clearCookies();\n if (button.dataset['cookieString']) {\n document.cookie = button.dataset['cookieString'];\n }\n document.cookie = CookieName + \"=\" + encodeURIComponent(permitValues.join(',')) + \"; expires=\" + expires + \"; path=/; secure; samesite=none\";\n window.location.replace(window.location.href.split('#')[0]);\n}\nfunction getCookieExpireString(cookieString) {\n if (!cookieString)\n return '';\n const expiresRegex = /expires=([^;]+)/;\n const expiresMatch = expiresRegex.exec(cookieString);\n let expiresValue = '';\n if (expiresMatch && expiresMatch.length > 1)\n expiresValue = expiresMatch[1].trim();\n return expiresValue;\n}\nfunction getCookie(name) {\n const nameLenPlus = (name.length + 1);\n return document.cookie\n .split(';')\n .map(c => c.trim())\n .filter(cookie => {\n return cookie.substring(0, nameLenPlus) === `${name}=`;\n })\n .map(cookie => {\n return decodeURIComponent(cookie.substring(nameLenPlus));\n })[0] || null;\n}\nfunction clearCookies() {\n document.cookie.split(\";\").forEach(function (c) { document.cookie = c.replace(/^ +/, \"\").replace(/=.*/, \"=;expires=\" + new Date().toUTCString() + \";path=/\"); });\n}\n\n;// CONCATENATED MODULE: ./src/simple-lightbox.esm.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 _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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 _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\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 _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 _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/*!\n\tBy André Rinas, www.andrerinas.de\n\tDocumentation, www.simplelightbox.com\n\tAvailable for use under the MIT License\n\tVersion 2.14.2\n*/\nvar simple_lightbox_esm_SimpleLightbox = /*#__PURE__*/function () {\n function SimpleLightbox(elements, options) {\n var _this = this;\n _classCallCheck(this, SimpleLightbox);\n _defineProperty(this, \"defaultOptions\", {\n sourceAttr: 'href',\n overlay: true,\n overlayOpacity: 0.7,\n spinner: true,\n nav: true,\n navText: ['‹', '›'],\n captions: true,\n captionDelay: 0,\n captionSelector: 'img',\n captionType: 'attr',\n captionsData: 'title',\n captionPosition: 'bottom',\n captionClass: '',\n captionHTML: true,\n close: true,\n closeText: '×',\n swipeClose: true,\n showCounter: true,\n fileExt: 'png|jpg|jpeg|gif|webp',\n animationSlide: true,\n animationSpeed: 250,\n preloading: true,\n enableKeyboard: true,\n loop: true,\n rel: false,\n docClose: true,\n swipeTolerance: 50,\n className: 'simple-lightbox',\n widthRatio: 0.8,\n heightRatio: 0.9,\n scaleImageToRatio: false,\n disableRightClick: false,\n disableScroll: true,\n alertError: true,\n alertErrorMessage: 'Image not found, next image will be loaded',\n additionalHtml: false,\n history: true,\n throttleInterval: 0,\n doubleTapZoom: 2,\n maxZoom: 10,\n htmlClass: 'has-lightbox',\n rtl: false,\n fixedClass: 'sl-fixed',\n fadeSpeed: 300,\n uniqueImages: true,\n focus: true,\n scrollZoom: true,\n scrollZoomFactor: 0.5,\n download: false\n });\n _defineProperty(this, \"transitionPrefix\", void 0);\n _defineProperty(this, \"isPassiveEventsSupported\", void 0);\n _defineProperty(this, \"transitionCapable\", false);\n _defineProperty(this, \"isTouchDevice\", 'ontouchstart' in window);\n _defineProperty(this, \"isAppleDevice\", /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform));\n _defineProperty(this, \"initialLocationHash\", void 0);\n _defineProperty(this, \"pushStateSupport\", 'pushState' in history);\n _defineProperty(this, \"isOpen\", false);\n _defineProperty(this, \"isAnimating\", false);\n _defineProperty(this, \"isClosing\", false);\n _defineProperty(this, \"isFadeIn\", false);\n _defineProperty(this, \"urlChangedOnce\", false);\n _defineProperty(this, \"hashReseted\", false);\n _defineProperty(this, \"historyHasChanges\", false);\n _defineProperty(this, \"historyUpdateTimeout\", null);\n _defineProperty(this, \"currentImage\", void 0);\n _defineProperty(this, \"eventNamespace\", 'simplelightbox');\n _defineProperty(this, \"domNodes\", {});\n _defineProperty(this, \"loadedImages\", []);\n _defineProperty(this, \"initialImageIndex\", 0);\n _defineProperty(this, \"currentImageIndex\", 0);\n _defineProperty(this, \"initialSelector\", null);\n _defineProperty(this, \"globalScrollbarWidth\", 0);\n _defineProperty(this, \"controlCoordinates\", {\n swipeDiff: 0,\n swipeYDiff: 0,\n swipeStart: 0,\n swipeEnd: 0,\n swipeYStart: 0,\n swipeYEnd: 0,\n mousedown: false,\n imageLeft: 0,\n zoomed: false,\n containerHeight: 0,\n containerWidth: 0,\n containerOffsetX: 0,\n containerOffsetY: 0,\n imgHeight: 0,\n imgWidth: 0,\n capture: false,\n initialOffsetX: 0,\n initialOffsetY: 0,\n initialPointerOffsetX: 0,\n initialPointerOffsetY: 0,\n initialPointerOffsetX2: 0,\n initialPointerOffsetY2: 0,\n initialScale: 1,\n initialPinchDistance: 0,\n pointerOffsetX: 0,\n pointerOffsetY: 0,\n pointerOffsetX2: 0,\n pointerOffsetY2: 0,\n targetOffsetX: 0,\n targetOffsetY: 0,\n targetScale: 0,\n pinchOffsetX: 0,\n pinchOffsetY: 0,\n limitOffsetX: 0,\n limitOffsetY: 0,\n scaleDifference: 0,\n targetPinchDistance: 0,\n touchCount: 0,\n doubleTapped: false,\n touchmoveCount: 0\n });\n this.options = Object.assign(this.defaultOptions, options);\n this.isPassiveEventsSupported = this.checkPassiveEventsSupport();\n if (typeof elements === 'string') {\n this.initialSelector = elements;\n this.elements = Array.from(document.querySelectorAll(elements));\n } else {\n this.elements = typeof elements.length !== 'undefined' && elements.length > 0 ? Array.from(elements) : [elements];\n }\n this.relatedElements = [];\n this.transitionPrefix = this.calculateTransitionPrefix();\n this.transitionCapable = this.transitionPrefix !== false;\n this.initialLocationHash = this.hash;\n\n // this should be handled by attribute selector IMHO! => 'a[rel=bla]'...\n if (this.options.rel) {\n this.elements = this.getRelated(this.options.rel);\n }\n if (this.options.uniqueImages) {\n var imgArr = [];\n this.elements = Array.from(this.elements).filter(function (element) {\n var src = element.getAttribute(_this.options.sourceAttr);\n if (imgArr.indexOf(src) === -1) {\n imgArr.push(src);\n return true;\n }\n return false;\n });\n }\n this.createDomNodes();\n if (this.options.close) {\n this.domNodes.wrapper.appendChild(this.domNodes.closeButton);\n }\n if (this.options.nav) {\n this.domNodes.wrapper.appendChild(this.domNodes.navigation);\n }\n if (this.options.spinner) {\n this.domNodes.wrapper.appendChild(this.domNodes.spinner);\n }\n this.addEventListener(this.elements, 'click.' + this.eventNamespace, function (event) {\n if (_this.isValidLink(event.currentTarget)) {\n event.preventDefault();\n if (_this.isAnimating) {\n return false;\n }\n _this.initialImageIndex = _this.elements.indexOf(event.currentTarget);\n _this.openImage(event.currentTarget);\n }\n });\n\n // close addEventListener click addEventListener doc\n if (this.options.docClose) {\n this.addEventListener(this.domNodes.wrapper, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], function (event) {\n if (_this.isOpen && event.target === event.currentTarget) {\n _this.close();\n }\n });\n }\n\n // disable rightclick\n if (this.options.disableRightClick) {\n this.addEventListener(document.body, 'contextmenu.' + this.eventNamespace, function (event) {\n if (event.target.parentElement.classList.contains(\"sl-image\")) {\n event.preventDefault();\n }\n });\n }\n\n // keyboard-control\n if (this.options.enableKeyboard) {\n this.addEventListener(document.body, 'keyup.' + this.eventNamespace, this.throttle(function (event) {\n _this.controlCoordinates.swipeDiff = 0;\n // keyboard control only if lightbox is open\n\n if (_this.isAnimating && event.key === 'Escape') {\n _this.currentImage.setAttribute('src', '');\n _this.isAnimating = false;\n _this.close();\n return;\n }\n if (_this.isOpen) {\n event.preventDefault();\n if (event.key === 'Escape') {\n _this.close();\n }\n if (!_this.isAnimating && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) > -1) {\n _this.loadImage(event.key === 'ArrowRight' ? 1 : -1);\n }\n }\n }, this.options.throttleInterval));\n }\n this.addEvents();\n }\n return _createClass(SimpleLightbox, [{\n key: \"checkPassiveEventsSupport\",\n value: function checkPassiveEventsSupport() {\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n // Test via a getter in the options object to see if the passive property is accessed\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"testPassive\", null, opts);\n window.removeEventListener(\"testPassive\", null, opts);\n } catch (e) {}\n return supportsPassive;\n }\n }, {\n key: \"getCaptionElement\",\n value: function getCaptionElement(elem) {\n // look at sibling selector\n if (this.options.captionSelector.startsWith('+')) {\n var selector = this.options.captionSelector.replace(/^\\+/, '').trimStart();\n var sibling = elem.nextElementSibling;\n if (sibling && sibling.matches(selector)) {\n return sibling;\n }\n return false;\n } else if (this.options.captionSelector.startsWith('>')) {\n var _selector = this.options.captionSelector.replace(/^>/, '').trimStart();\n return elem.querySelector(_selector);\n } else {\n return elem.querySelector(this.options.captionSelector);\n }\n }\n }, {\n key: \"generateQuerySelector\",\n value: function generateQuerySelector(elem) {\n var tagName = elem.tagName,\n id = elem.id,\n className = elem.className,\n parentNode = elem.parentNode;\n if (tagName === 'HTML') return 'HTML';\n var str = tagName;\n str += id !== '' ? \"#\".concat(id) : '';\n if (className) {\n var classes = className.trim().split(/\\s/);\n for (var i = 0; i < classes.length; i++) {\n str += \".\".concat(classes[i]);\n }\n }\n var childIndex = 1;\n for (var e = elem; e.previousElementSibling; e = e.previousElementSibling) {\n childIndex += 1;\n }\n str += \":nth-child(\".concat(childIndex, \")\");\n return \"\".concat(this.generateQuerySelector(parentNode), \" > \").concat(str);\n }\n }, {\n key: \"createDomNodes\",\n value: function createDomNodes() {\n this.domNodes.overlay = document.createElement('div');\n this.domNodes.overlay.classList.add('sl-overlay');\n this.domNodes.overlay.dataset.opacityTarget = this.options.overlayOpacity;\n this.domNodes.closeButton = document.createElement('button');\n this.domNodes.closeButton.classList.add('sl-close');\n this.domNodes.closeButton.innerHTML = this.options.closeText;\n this.domNodes.spinner = document.createElement('div');\n this.domNodes.spinner.classList.add('sl-spinner');\n this.domNodes.spinner.innerHTML = '
';\n this.domNodes.navigation = document.createElement('div');\n this.domNodes.navigation.classList.add('sl-navigation');\n this.domNodes.navigation.innerHTML = \"\");\n this.domNodes.counter = document.createElement('div');\n this.domNodes.counter.classList.add('sl-counter');\n this.domNodes.counter.innerHTML = '/';\n this.domNodes.download = document.createElement('div');\n this.domNodes.download.classList.add('sl-download');\n this.domNodes.downloadLink = document.createElement('a');\n this.domNodes.downloadLink.setAttribute('download', '');\n this.domNodes.downloadLink.textContent = this.options.download;\n this.domNodes.download.appendChild(this.domNodes.downloadLink);\n this.domNodes.caption = document.createElement('div');\n this.domNodes.caption.classList.add('sl-caption', 'pos-' + this.options.captionPosition);\n if (this.options.captionClass) {\n var _this$domNodes$captio;\n var captionClasses = this.options.captionClass.split(/[\\s,]+/);\n (_this$domNodes$captio = this.domNodes.caption.classList).add.apply(_this$domNodes$captio, _toConsumableArray(captionClasses));\n }\n this.domNodes.image = document.createElement('div');\n this.domNodes.image.classList.add('sl-image');\n this.domNodes.wrapper = document.createElement('div');\n this.domNodes.wrapper.classList.add('sl-wrapper');\n this.domNodes.wrapper.setAttribute('tabindex', -1);\n this.domNodes.wrapper.setAttribute('role', 'dialog');\n this.domNodes.wrapper.setAttribute('aria-hidden', false);\n if (this.options.className) {\n this.domNodes.wrapper.classList.add(this.options.className);\n }\n if (this.options.rtl) {\n this.domNodes.wrapper.classList.add('sl-dir-rtl');\n }\n }\n }, {\n key: \"throttle\",\n value: function throttle(func, limit) {\n var inThrottle;\n return function () {\n if (!inThrottle) {\n func.apply(this, arguments);\n inThrottle = true;\n setTimeout(function () {\n return inThrottle = false;\n }, limit);\n }\n };\n }\n }, {\n key: \"isValidLink\",\n value: function isValidLink(element) {\n return !this.options.fileExt || element.getAttribute(this.options.sourceAttr) && new RegExp('(' + this.options.fileExt + ')($|\\\\?.*$)', 'i').test(element.getAttribute(this.options.sourceAttr));\n }\n }, {\n key: \"calculateTransitionPrefix\",\n value: function calculateTransitionPrefix() {\n var s = (document.body || document.documentElement).style;\n return 'transition' in s ? '' : 'WebkitTransition' in s ? '-webkit-' : 'MozTransition' in s ? '-moz-' : 'OTransition' in s ? '-o' : false;\n }\n }, {\n key: \"getScrollbarWidth\",\n value: function getScrollbarWidth() {\n var scrollbarWidth = 0;\n var scrollDiv = document.createElement('div');\n scrollDiv.classList.add('sl-scrollbar-measure');\n document.body.appendChild(scrollDiv);\n scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n }\n }, {\n key: \"toggleScrollbar\",\n value: function toggleScrollbar(type) {\n var scrollbarWidth = 0;\n var fixedElements = [].slice.call(document.querySelectorAll('.' + this.options.fixedClass));\n if (type === 'hide') {\n var fullWindowWidth = window.innerWidth;\n if (!fullWindowWidth) {\n var documentElementRect = document.documentElement.getBoundingClientRect();\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n if (document.body.clientWidth < fullWindowWidth || this.isAppleDevice) {\n var paddingRight = parseInt(window.getComputedStyle(document.body).paddingRight || 0, 10);\n scrollbarWidth = this.getScrollbarWidth();\n document.body.dataset.originalPaddingRight = paddingRight;\n if (scrollbarWidth > 0 || scrollbarWidth == 0 && this.isAppleDevice) {\n document.body.classList.add('hidden-scroll');\n document.body.style.paddingRight = paddingRight + scrollbarWidth + 'px';\n fixedElements.forEach(function (element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = window.getComputedStyle(element)['padding-right'];\n element.dataset.originalPaddingRight = actualPadding;\n element.style.paddingRight = \"\".concat(parseFloat(calculatedPadding) + scrollbarWidth, \"px\");\n });\n }\n }\n } else {\n document.body.classList.remove('hidden-scroll');\n document.body.style.paddingRight = document.body.dataset.originalPaddingRight + 'px';\n fixedElements.forEach(function (element) {\n var padding = element.dataset.originalPaddingRight;\n if (typeof padding !== 'undefined') {\n element.style.paddingRight = padding;\n }\n });\n }\n return scrollbarWidth;\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this2 = this;\n if (!this.isOpen || this.isAnimating || this.isClosing) {\n return false;\n }\n this.isClosing = true;\n var element = this.relatedElements[this.currentImageIndex];\n element.dispatchEvent(new Event('close.simplelightbox'));\n if (this.options.history) {\n this.historyHasChanges = false;\n if (!this.hashReseted) {\n this.resetHash();\n }\n }\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.fadeOut(this.domNodes.overlay, this.options.fadeSpeed);\n this.fadeOut(document.querySelectorAll('.sl-image img, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter'), this.options.fadeSpeed, function () {\n if (_this2.options.disableScroll) {\n _this2.toggleScrollbar('show');\n }\n if (_this2.options.htmlClass && _this2.options.htmlClass !== '') {\n document.querySelector('html').classList.remove(_this2.options.htmlClass);\n }\n document.body.removeChild(_this2.domNodes.wrapper);\n if (_this2.options.overlay) {\n document.body.removeChild(_this2.domNodes.overlay);\n }\n _this2.domNodes.additionalHtml = null;\n _this2.domNodes.download = null;\n element.dispatchEvent(new Event('closed.simplelightbox'));\n _this2.isClosing = false;\n });\n this.currentImage = null;\n this.isOpen = false;\n this.isAnimating = false;\n\n // reset touchcontrol coordinates\n for (var key in this.controlCoordinates) {\n this.controlCoordinates[key] = 0;\n }\n this.controlCoordinates.mousedown = false;\n this.controlCoordinates.zoomed = false;\n this.controlCoordinates.capture = false;\n this.controlCoordinates.initialScale = this.minMax(1, 1, this.options.maxZoom);\n this.controlCoordinates.doubleTapped = false;\n }\n }, {\n key: \"hash\",\n get: function get() {\n return window.location.hash.substring(1);\n }\n }, {\n key: \"preload\",\n value: function preload() {\n var _this3 = this;\n var index = this.currentImageIndex,\n length = this.relatedElements.length,\n next = index + 1 < 0 ? length - 1 : index + 1 >= length - 1 ? 0 : index + 1,\n prev = index - 1 < 0 ? length - 1 : index - 1 >= length - 1 ? 0 : index - 1,\n nextImage = new Image(),\n prevImage = new Image();\n nextImage.addEventListener('load', function (event) {\n var src = event.target.getAttribute('src');\n if (_this3.loadedImages.indexOf(src) === -1) {\n //is this condition even required... setting multiple times will not change usage...\n _this3.loadedImages.push(src);\n }\n _this3.relatedElements[index].dispatchEvent(new Event('nextImageLoaded.' + _this3.eventNamespace));\n });\n nextImage.setAttribute('src', this.relatedElements[next].getAttribute(this.options.sourceAttr));\n prevImage.addEventListener('load', function (event) {\n var src = event.target.getAttribute('src');\n if (_this3.loadedImages.indexOf(src) === -1) {\n _this3.loadedImages.push(src);\n }\n _this3.relatedElements[index].dispatchEvent(new Event('prevImageLoaded.' + _this3.eventNamespace));\n });\n prevImage.setAttribute('src', this.relatedElements[prev].getAttribute(this.options.sourceAttr));\n }\n }, {\n key: \"loadImage\",\n value: function loadImage(direction) {\n var _this4 = this;\n var slideDirection = direction;\n if (this.options.rtl) {\n direction = -direction;\n }\n this.relatedElements[this.currentImageIndex].dispatchEvent(new Event('change.' + this.eventNamespace));\n this.relatedElements[this.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'next' : 'prev') + '.' + this.eventNamespace));\n var newIndex = this.currentImageIndex + direction;\n if (this.isAnimating || (newIndex < 0 || newIndex >= this.relatedElements.length) && this.options.loop === false) {\n return false;\n }\n this.currentImageIndex = newIndex < 0 ? this.relatedElements.length - 1 : newIndex > this.relatedElements.length - 1 ? 0 : newIndex;\n this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;\n if (this.options.animationSlide) {\n this.slide(this.options.animationSpeed / 1000, -100 * slideDirection - this.controlCoordinates.swipeDiff + 'px');\n }\n this.fadeOut(this.domNodes.image, this.options.fadeSpeed, function () {\n _this4.isAnimating = true;\n if (!_this4.isClosing) {\n setTimeout(function () {\n var element = _this4.relatedElements[_this4.currentImageIndex];\n if (!_this4.currentImage) return;\n _this4.currentImage.setAttribute('src', element.getAttribute(_this4.options.sourceAttr));\n if (_this4.loadedImages.indexOf(element.getAttribute(_this4.options.sourceAttr)) === -1) {\n _this4.show(_this4.domNodes.spinner);\n }\n if (_this4.domNodes.image.contains(_this4.domNodes.caption)) {\n _this4.domNodes.image.removeChild(_this4.domNodes.caption);\n }\n _this4.adjustImage(slideDirection);\n if (_this4.options.preloading) _this4.preload();\n }, 100);\n } else {\n _this4.isAnimating = false;\n }\n });\n }\n }, {\n key: \"adjustImage\",\n value: function adjustImage(direction) {\n var _this5 = this;\n if (!this.currentImage) {\n return false;\n }\n var tmpImage = new Image(),\n windowWidth = window.innerWidth * this.options.widthRatio,\n windowHeight = window.innerHeight * this.options.heightRatio;\n tmpImage.setAttribute('src', this.currentImage.getAttribute('src'));\n this.currentImage.dataset.scale = 1;\n this.currentImage.dataset.translateX = 0;\n this.currentImage.dataset.translateY = 0;\n this.zoomPanElement(0, 0, 1);\n tmpImage.addEventListener('error', function (event) {\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('error.' + _this5.eventNamespace));\n _this5.isAnimating = false;\n _this5.isOpen = true;\n _this5.domNodes.spinner.style.display = 'none';\n var dirIsDefined = direction === 1 || direction === -1;\n if (_this5.initialImageIndex === _this5.currentImageIndex && dirIsDefined) {\n return _this5.close();\n }\n if (_this5.options.alertError) {\n alert(_this5.options.alertErrorMessage);\n }\n _this5.loadImage(dirIsDefined ? direction : 1);\n });\n tmpImage.addEventListener('load', function (event) {\n if (typeof direction !== 'undefined') {\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('changed.' + _this5.eventNamespace));\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'nextDone' : 'prevDone') + '.' + _this5.eventNamespace));\n }\n\n // history\n if (_this5.options.history) {\n _this5.updateURL();\n }\n if (_this5.loadedImages.indexOf(_this5.currentImage.getAttribute('src')) === -1) {\n _this5.loadedImages.push(_this5.currentImage.getAttribute('src'));\n }\n var imageWidth = event.target.width,\n imageHeight = event.target.height;\n if (_this5.options.scaleImageToRatio || imageWidth > windowWidth || imageHeight > windowHeight) {\n var ratio = imageWidth / imageHeight > windowWidth / windowHeight ? imageWidth / windowWidth : imageHeight / windowHeight;\n imageWidth /= ratio;\n imageHeight /= ratio;\n }\n _this5.domNodes.image.style.top = (window.innerHeight - imageHeight) / 2 + 'px';\n _this5.domNodes.image.style.left = (window.innerWidth - imageWidth - _this5.globalScrollbarWidth) / 2 + 'px';\n _this5.domNodes.image.style.width = imageWidth + 'px';\n _this5.domNodes.image.style.height = imageHeight + 'px';\n _this5.domNodes.spinner.style.display = 'none';\n if (_this5.options.focus) {\n _this5.forceFocus();\n }\n _this5.fadeIn(_this5.currentImage, _this5.options.fadeSpeed, function () {\n if (_this5.options.focus) {\n _this5.domNodes.wrapper.focus();\n }\n });\n _this5.isOpen = true;\n var captionContainer, captionText;\n if (typeof _this5.options.captionSelector === 'string') {\n captionContainer = _this5.options.captionSelector === 'self' ? _this5.relatedElements[_this5.currentImageIndex] : _this5.getCaptionElement(_this5.relatedElements[_this5.currentImageIndex]);\n } else if (typeof _this5.options.captionSelector === 'function') {\n captionContainer = _this5.options.captionSelector(_this5.relatedElements[_this5.currentImageIndex]);\n }\n if (_this5.options.captions && captionContainer) {\n if (_this5.options.captionType === 'data') {\n captionText = captionContainer.dataset[_this5.options.captionsData];\n } else if (_this5.options.captionType === 'text') {\n captionText = captionContainer.innerHTML;\n } else {\n captionText = captionContainer.getAttribute(_this5.options.captionsData);\n }\n }\n if (!_this5.options.loop) {\n if (_this5.currentImageIndex === 0) {\n _this5.hide(_this5.domNodes.navigation.querySelector('.sl-prev'));\n }\n if (_this5.currentImageIndex >= _this5.relatedElements.length - 1) {\n _this5.hide(_this5.domNodes.navigation.querySelector('.sl-next'));\n }\n if (_this5.currentImageIndex > 0) {\n _this5.show(_this5.domNodes.navigation.querySelector('.sl-prev'));\n }\n if (_this5.currentImageIndex < _this5.relatedElements.length - 1) {\n _this5.show(_this5.domNodes.navigation.querySelector('.sl-next'));\n }\n } else {\n if (_this5.relatedElements.length === 1) {\n _this5.hide(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));\n } else {\n _this5.show(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));\n }\n }\n if (direction === 1 || direction === -1) {\n if (_this5.options.animationSlide) {\n _this5.slide(0, 100 * direction + 'px');\n setTimeout(function () {\n _this5.slide(_this5.options.animationSpeed / 1000, 0 + 'px');\n }, 50);\n }\n _this5.fadeIn(_this5.domNodes.image, _this5.options.fadeSpeed, function () {\n _this5.isAnimating = false;\n _this5.setCaption(captionText, imageWidth);\n });\n } else {\n _this5.isAnimating = false;\n _this5.setCaption(captionText, imageWidth);\n }\n if (_this5.options.additionalHtml && !_this5.domNodes.additionalHtml) {\n _this5.domNodes.additionalHtml = document.createElement('div');\n _this5.domNodes.additionalHtml.classList.add('sl-additional-html');\n _this5.domNodes.additionalHtml.innerHTML = _this5.options.additionalHtml;\n _this5.domNodes.image.appendChild(_this5.domNodes.additionalHtml);\n }\n if (_this5.options.download) {\n _this5.domNodes.downloadLink.setAttribute('href', _this5.currentImage.getAttribute('src'));\n }\n });\n }\n }, {\n key: \"zoomPanElement\",\n value: function zoomPanElement(targetOffsetX, targetOffsetY, targetScale) {\n this.currentImage.style[this.transitionPrefix + 'transform'] = 'translate(' + targetOffsetX + ',' + targetOffsetY + ') scale(' + targetScale + ')';\n }\n }, {\n key: \"minMax\",\n value: function minMax(value, min, max) {\n return value < min ? min : value > max ? max : value;\n }\n }, {\n key: \"setZoomData\",\n value: function setZoomData(initialScale, targetOffsetX, targetOffsetY) {\n this.currentImage.dataset.scale = initialScale;\n this.currentImage.dataset.translateX = targetOffsetX;\n this.currentImage.dataset.translateY = targetOffsetY;\n }\n }, {\n key: \"hashchangeHandler\",\n value: function hashchangeHandler() {\n if (this.isOpen && this.hash === this.initialLocationHash) {\n this.hashReseted = true;\n this.close();\n }\n }\n }, {\n key: \"addEvents\",\n value: function addEvents() {\n var _this6 = this;\n // resize/responsive\n this.addEventListener(window, 'resize.' + this.eventNamespace, function (event) {\n //this.adjustImage.bind(this)\n if (_this6.isOpen) {\n _this6.adjustImage();\n }\n });\n this.addEventListener(this.domNodes.closeButton, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], this.close.bind(this));\n if (this.options.history) {\n setTimeout(function () {\n _this6.addEventListener(window, 'hashchange.' + _this6.eventNamespace, function (event) {\n if (_this6.isOpen) {\n _this6.hashchangeHandler();\n }\n });\n }, 40);\n }\n this.addEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace, function (event) {\n if (!event.currentTarget.tagName.match(/button/i)) {\n return true;\n }\n event.preventDefault();\n _this6.controlCoordinates.swipeDiff = 0;\n _this6.loadImage(event.currentTarget.classList.contains('sl-next') ? 1 : -1);\n });\n if (this.options.scrollZoom) {\n var scale = 1;\n this.addEventListener(this.domNodes.image, ['mousewheel', 'DOMMouseScroll'], function (event) {\n if (_this6.controlCoordinates.mousedown || _this6.isAnimating || _this6.isClosing || !_this6.isOpen) {\n return true;\n }\n if (_this6.controlCoordinates.containerHeight == 0) {\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n }\n // event.preventDefault();\n\n var delta = event.delta || event.wheelDelta;\n if (delta === undefined) {\n //we are on firefox\n delta = event.detail;\n }\n delta = Math.max(-1, Math.min(1, delta)); // cap the delta to [-1,1] for cross browser consistency\n\n // apply zoom\n scale += delta * _this6.options.scrollZoomFactor * scale;\n scale = Math.max(1, Math.min(_this6.options.maxZoom, scale));\n _this6.controlCoordinates.targetScale = scale;\n var scrollTopPos = document.documentElement.scrollTop || document.body.scrollTop;\n _this6.controlCoordinates.pinchOffsetX = event.pageX;\n _this6.controlCoordinates.pinchOffsetY = event.pageY - scrollTopPos || 0; // need to substract the scroll position\n\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.scaleDifference = _this6.controlCoordinates.targetScale - _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetX - (_this6.controlCoordinates.pinchOffsetX - _this6.controlCoordinates.containerOffsetX - _this6.controlCoordinates.containerWidth / 2 - _this6.controlCoordinates.initialOffsetX) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetY - (_this6.controlCoordinates.pinchOffsetY - _this6.controlCoordinates.containerOffsetY - _this6.controlCoordinates.containerHeight / 2 - _this6.controlCoordinates.initialOffsetY) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n if (_this6.controlCoordinates.targetScale > 1) {\n _this6.controlCoordinates.zoomed = true;\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n } else {\n if (_this6.controlCoordinates.initialScale === 1) {\n _this6.controlCoordinates.zoomed = false;\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n _this6.controlCoordinates.initialPinchDistance = null;\n _this6.controlCoordinates.capture = false;\n }\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n _this6.controlCoordinates.initialScale = _this6.controlCoordinates.targetScale;\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.setZoomData(_this6.controlCoordinates.targetScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n });\n }\n this.addEventListener(this.domNodes.image, ['touchstart.' + this.eventNamespace, 'mousedown.' + this.eventNamespace], function (event) {\n if (event.target.tagName === 'A' && event.type === 'touchstart') {\n return true;\n }\n if (event.type === 'mousedown') {\n event.preventDefault();\n _this6.controlCoordinates.initialPointerOffsetX = event.clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n _this6.controlCoordinates.capture = true;\n } else {\n _this6.controlCoordinates.touchCount = event.touches.length;\n _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n if (_this6.controlCoordinates.touchCount === 1) /* Single touch */{\n if (!_this6.controlCoordinates.doubleTapped) {\n _this6.controlCoordinates.doubleTapped = true;\n setTimeout(function () {\n _this6.controlCoordinates.doubleTapped = false;\n }, 300);\n } else {\n _this6.currentImage.classList.add('sl-transition');\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n _this6.controlCoordinates.zoomed = true;\n } else {\n _this6.controlCoordinates.initialScale = 1;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n _this6.controlCoordinates.zoomed = false;\n }\n setTimeout(function () {\n if (_this6.currentImage) {\n _this6.currentImage.classList.remove('sl-transition');\n }\n }, 200);\n return false;\n }\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n } else if (_this6.controlCoordinates.touchCount === 2) /* Pinch */{\n _this6.controlCoordinates.initialPointerOffsetX2 = event.touches[1].clientX;\n _this6.controlCoordinates.initialPointerOffsetY2 = event.touches[1].clientY;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n _this6.controlCoordinates.pinchOffsetX = (_this6.controlCoordinates.initialPointerOffsetX + _this6.controlCoordinates.initialPointerOffsetX2) / 2;\n _this6.controlCoordinates.pinchOffsetY = (_this6.controlCoordinates.initialPointerOffsetY + _this6.controlCoordinates.initialPointerOffsetY2) / 2;\n _this6.controlCoordinates.initialPinchDistance = Math.sqrt((_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) * (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) + (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2) * (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2));\n }\n _this6.controlCoordinates.capture = true;\n }\n if (_this6.controlCoordinates.mousedown) return true;\n if (_this6.transitionCapable) {\n _this6.controlCoordinates.imageLeft = parseInt(_this6.domNodes.image.style.left, 10);\n }\n _this6.controlCoordinates.mousedown = true;\n _this6.controlCoordinates.swipeDiff = 0;\n _this6.controlCoordinates.swipeYDiff = 0;\n _this6.controlCoordinates.swipeStart = event.pageX || event.touches[0].pageX;\n _this6.controlCoordinates.swipeYStart = event.pageY || event.touches[0].pageY;\n return false;\n });\n this.addEventListener(this.domNodes.image, ['touchmove.' + this.eventNamespace, 'mousemove.' + this.eventNamespace, 'MSPointerMove'], function (event) {\n if (!_this6.controlCoordinates.mousedown) {\n return true;\n }\n if (event.type === 'touchmove') {\n if (_this6.controlCoordinates.capture === false) {\n return false;\n }\n _this6.controlCoordinates.pointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.pointerOffsetY = event.touches[0].clientY;\n _this6.controlCoordinates.touchCount = event.touches.length;\n _this6.controlCoordinates.touchmoveCount++;\n if (_this6.controlCoordinates.touchCount > 1) /* Pinch */{\n _this6.controlCoordinates.pointerOffsetX2 = event.touches[1].clientX;\n _this6.controlCoordinates.pointerOffsetY2 = event.touches[1].clientY;\n _this6.controlCoordinates.targetPinchDistance = Math.sqrt((_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) * (_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) + (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2) * (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2));\n if (_this6.controlCoordinates.initialPinchDistance === null) {\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n }\n if (Math.abs(_this6.controlCoordinates.initialPinchDistance - _this6.controlCoordinates.targetPinchDistance) >= 1) {\n /* Initialize helpers */\n _this6.controlCoordinates.targetScale = _this6.minMax(_this6.controlCoordinates.targetPinchDistance / _this6.controlCoordinates.initialPinchDistance * _this6.controlCoordinates.initialScale, 1, _this6.options.maxZoom);\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.scaleDifference = _this6.controlCoordinates.targetScale - _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetX - (_this6.controlCoordinates.pinchOffsetX - _this6.controlCoordinates.containerOffsetX - _this6.controlCoordinates.containerWidth / 2 - _this6.controlCoordinates.initialOffsetX) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetY - (_this6.controlCoordinates.pinchOffsetY - _this6.controlCoordinates.containerOffsetY - _this6.controlCoordinates.containerHeight / 2 - _this6.controlCoordinates.initialOffsetY) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n if (_this6.controlCoordinates.targetScale > 1) {\n _this6.controlCoordinates.zoomed = true;\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n _this6.controlCoordinates.initialScale = _this6.controlCoordinates.targetScale;\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n }\n } else {\n _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;\n }\n if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;\n }\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n }\n }\n\n /* Mouse Move implementation */\n if (event.type === 'mousemove' && _this6.controlCoordinates.mousedown) {\n if (event.type == 'touchmove') return true;\n event.preventDefault();\n if (_this6.controlCoordinates.capture === false) return false;\n _this6.controlCoordinates.pointerOffsetX = event.clientX;\n _this6.controlCoordinates.pointerOffsetY = event.clientY;\n _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;\n }\n if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;\n }\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n }\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.swipeEnd = event.pageX || event.touches[0].pageX;\n _this6.controlCoordinates.swipeYEnd = event.pageY || event.touches[0].pageY;\n _this6.controlCoordinates.swipeDiff = _this6.controlCoordinates.swipeStart - _this6.controlCoordinates.swipeEnd;\n _this6.controlCoordinates.swipeYDiff = _this6.controlCoordinates.swipeYStart - _this6.controlCoordinates.swipeYEnd;\n if (_this6.options.animationSlide) {\n _this6.slide(0, -_this6.controlCoordinates.swipeDiff + 'px');\n }\n }\n });\n this.addEventListener(this.domNodes.image, ['touchend.' + this.eventNamespace, 'mouseup.' + this.eventNamespace, 'touchcancel.' + this.eventNamespace, 'mouseleave.' + this.eventNamespace, 'pointerup', 'pointercancel', 'MSPointerUp', 'MSPointerCancel'], function (event) {\n if (_this6.isTouchDevice && event.type === 'touchend') {\n _this6.controlCoordinates.touchCount = event.touches.length;\n if (_this6.controlCoordinates.touchCount === 0) /* No touch */{\n /* Set attributes */\n if (_this6.currentImage) {\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n }\n if (_this6.controlCoordinates.initialScale === 1) {\n _this6.controlCoordinates.zoomed = false;\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n _this6.controlCoordinates.initialPinchDistance = null;\n _this6.controlCoordinates.capture = false;\n } else if (_this6.controlCoordinates.touchCount === 1) /* Single touch */{\n _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;\n } else if (_this6.controlCoordinates.touchCount > 1) /* Pinch */{\n _this6.controlCoordinates.initialPinchDistance = null;\n }\n }\n if (_this6.controlCoordinates.mousedown) {\n _this6.controlCoordinates.mousedown = false;\n var possibleDir = true;\n if (!_this6.options.loop) {\n if (_this6.currentImageIndex === 0 && _this6.controlCoordinates.swipeDiff < 0) {\n possibleDir = false;\n }\n if (_this6.currentImageIndex >= _this6.relatedElements.length - 1 && _this6.controlCoordinates.swipeDiff > 0) {\n possibleDir = false;\n }\n }\n if (Math.abs(_this6.controlCoordinates.swipeDiff) > _this6.options.swipeTolerance && possibleDir) {\n _this6.loadImage(_this6.controlCoordinates.swipeDiff > 0 ? 1 : -1);\n } else if (_this6.options.animationSlide) {\n _this6.slide(_this6.options.animationSpeed / 1000, 0 + 'px');\n }\n if (_this6.options.swipeClose && Math.abs(_this6.controlCoordinates.swipeYDiff) > 50 && Math.abs(_this6.controlCoordinates.swipeDiff) < _this6.options.swipeTolerance) {\n _this6.close();\n }\n }\n });\n this.addEventListener(this.domNodes.image, ['dblclick'], function (event) {\n if (_this6.isTouchDevice) return;\n _this6.controlCoordinates.initialPointerOffsetX = event.clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n _this6.currentImage.classList.add('sl-transition');\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n _this6.controlCoordinates.zoomed = true;\n } else {\n _this6.controlCoordinates.initialScale = 1;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n _this6.controlCoordinates.zoomed = false;\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n setTimeout(function () {\n if (_this6.currentImage) {\n _this6.currentImage.classList.remove('sl-transition');\n _this6.currentImage.style[_this6.transitionPrefix + 'transform-origin'] = null;\n }\n }, 200);\n _this6.controlCoordinates.capture = true;\n return false;\n });\n }\n }, {\n key: \"getDimensions\",\n value: function getDimensions(element) {\n var styles = window.getComputedStyle(element),\n height = element.offsetHeight,\n width = element.offsetWidth,\n borderTopWidth = parseFloat(styles.borderTopWidth),\n borderBottomWidth = parseFloat(styles.borderBottomWidth),\n paddingTop = parseFloat(styles.paddingTop),\n paddingBottom = parseFloat(styles.paddingBottom),\n borderLeftWidth = parseFloat(styles.borderLeftWidth),\n borderRightWidth = parseFloat(styles.borderRightWidth),\n paddingLeft = parseFloat(styles.paddingLeft),\n paddingRight = parseFloat(styles.paddingRight);\n return {\n height: height - borderBottomWidth - borderTopWidth - paddingTop - paddingBottom,\n width: width - borderLeftWidth - borderRightWidth - paddingLeft - paddingRight\n };\n }\n }, {\n key: \"updateHash\",\n value: function updateHash() {\n var newHash = 'pid=' + (this.currentImageIndex + 1),\n newURL = window.location.href.split('#')[0] + '#' + newHash;\n this.hashReseted = false;\n if (this.pushStateSupport) {\n window.history[this.historyHasChanges ? 'replaceState' : 'pushState']('', document.title, newURL);\n } else {\n // what is the browser target of this?\n if (this.historyHasChanges) {\n window.location.replace(newURL);\n } else {\n window.location.hash = newHash;\n }\n }\n if (!this.historyHasChanges) {\n this.urlChangedOnce = true;\n }\n this.historyHasChanges = true;\n }\n }, {\n key: \"resetHash\",\n value: function resetHash() {\n this.hashReseted = true;\n if (this.urlChangedOnce) {\n history.back();\n } else {\n if (this.pushStateSupport) {\n history.pushState('', document.title, window.location.pathname + window.location.search);\n } else {\n window.location.hash = '';\n }\n }\n //\n //in case an history operation is still pending\n clearTimeout(this.historyUpdateTimeout);\n }\n }, {\n key: \"updateURL\",\n value: function updateURL() {\n clearTimeout(this.historyUpdateTimeout);\n if (!this.historyHasChanges) {\n this.updateHash(); // first time\n } else {\n this.historyUpdateTimeout = setTimeout(this.updateHash.bind(this), 800);\n }\n }\n }, {\n key: \"setCaption\",\n value: function setCaption(captionText, imageWidth, allowHTML) {\n var _this7 = this;\n if (this.options.captions && captionText && captionText !== '' && typeof captionText !== \"undefined\") {\n var _ref;\n var property = ((_ref = allowHTML !== null && allowHTML !== void 0 ? allowHTML : this.options.captionHTML) !== null && _ref !== void 0 ? _ref : true) ? 'innerHTML' : 'innerText';\n this.hide(this.domNodes.caption);\n this.domNodes.caption.style.width = imageWidth + 'px';\n this.domNodes.caption[property] = captionText;\n this.domNodes.image.appendChild(this.domNodes.caption);\n setTimeout(function () {\n _this7.fadeIn(_this7.domNodes.caption, _this7.options.fadeSpeed);\n }, this.options.captionDelay);\n }\n }\n }, {\n key: \"slide\",\n value: function slide(speed, pos) {\n if (!this.transitionCapable) {\n return this.domNodes.image.style.left = pos;\n }\n this.domNodes.image.style[this.transitionPrefix + 'transform'] = 'translateX(' + pos + ')';\n this.domNodes.image.style[this.transitionPrefix + 'transition'] = this.transitionPrefix + 'transform ' + speed + 's linear';\n }\n }, {\n key: \"getRelated\",\n value: function getRelated(rel) {\n var elems;\n if (rel && rel !== false && rel !== 'nofollow') {\n elems = Array.from(this.elements).filter(function (element) {\n return element.getAttribute('rel') === rel;\n });\n } else {\n elems = this.elements;\n }\n return elems;\n }\n }, {\n key: \"openImage\",\n value: function openImage(element) {\n var _this8 = this;\n element.dispatchEvent(new Event('show.' + this.eventNamespace));\n this.globalScrollbarWidth = this.getScrollbarWidth();\n if (this.options.disableScroll) {\n this.toggleScrollbar('hide');\n this.globalScrollbarWidth = 0;\n }\n if (this.options.htmlClass && this.options.htmlClass !== '') {\n document.querySelector('html').classList.add(this.options.htmlClass);\n }\n document.body.appendChild(this.domNodes.wrapper);\n this.domNodes.wrapper.appendChild(this.domNodes.image);\n if (this.options.overlay) {\n document.body.appendChild(this.domNodes.overlay);\n }\n this.relatedElements = this.getRelated(element.rel);\n if (this.options.showCounter) {\n if (this.relatedElements.length == 1 && this.domNodes.wrapper.contains(this.domNodes.counter)) {\n this.domNodes.wrapper.removeChild(this.domNodes.counter);\n } else if (this.relatedElements.length > 1 && !this.domNodes.wrapper.contains(this.domNodes.counter)) {\n this.domNodes.wrapper.appendChild(this.domNodes.counter);\n }\n }\n if (this.options.download && this.domNodes.download) {\n this.domNodes.wrapper.appendChild(this.domNodes.download);\n }\n this.isAnimating = true;\n this.currentImageIndex = this.relatedElements.indexOf(element);\n var targetURL = element.getAttribute(this.options.sourceAttr);\n this.currentImage = document.createElement('img');\n this.currentImage.style.display = 'none';\n this.currentImage.setAttribute('src', targetURL);\n this.currentImage.dataset.scale = 1;\n this.currentImage.dataset.translateX = 0;\n this.currentImage.dataset.translateY = 0;\n if (this.loadedImages.indexOf(targetURL) === -1) {\n this.loadedImages.push(targetURL);\n }\n this.domNodes.image.innerHTML = '';\n this.domNodes.image.setAttribute('style', '');\n this.domNodes.image.appendChild(this.currentImage);\n this.fadeIn(this.domNodes.overlay, this.options.fadeSpeed);\n this.fadeIn([this.domNodes.counter, this.domNodes.navigation, this.domNodes.closeButton, this.domNodes.download], this.options.fadeSpeed);\n this.show(this.domNodes.spinner);\n this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;\n this.domNodes.counter.querySelector('.sl-total').innerHTML = this.relatedElements.length;\n this.adjustImage();\n if (this.options.preloading) {\n this.preload();\n }\n setTimeout(function () {\n element.dispatchEvent(new Event('shown.' + _this8.eventNamespace));\n }, this.options.animationSpeed);\n }\n }, {\n key: \"forceFocus\",\n value: function forceFocus() {\n var _this9 = this;\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.addEventListener(document, 'focusin.' + this.eventNamespace, function (event) {\n if (document !== event.target && _this9.domNodes.wrapper !== event.target && !_this9.domNodes.wrapper.contains(event.target)) {\n _this9.domNodes.wrapper.focus();\n }\n });\n }\n\n // utility\n }, {\n key: \"addEventListener\",\n value: function addEventListener(elements, events, callback, opts) {\n elements = this.wrap(elements);\n events = this.wrap(events);\n var _iterator = _createForOfIteratorHelper(elements),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var element = _step.value;\n if (!element.namespaces) {\n element.namespaces = {};\n } // save the namespaces addEventListener the DOM element itself\n var _iterator2 = _createForOfIteratorHelper(events),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var event = _step2.value;\n var options = opts || false;\n var needsPassiveFix = ['touchstart', 'touchmove', 'mousewheel', 'DOMMouseScroll'].indexOf(event.split('.')[0]) >= 0;\n if (needsPassiveFix && this.isPassiveEventsSupported) {\n if (_typeof(options) === 'object') {\n options.passive = true;\n } else {\n options = {\n passive: true\n };\n }\n }\n element.namespaces[event] = callback;\n element.addEventListener(event.split('.')[0], callback, options);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(elements, events) {\n elements = this.wrap(elements);\n events = this.wrap(events);\n var _iterator3 = _createForOfIteratorHelper(elements),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n var _iterator4 = _createForOfIteratorHelper(events),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var event = _step4.value;\n if (element.namespaces && element.namespaces[event]) {\n element.removeEventListener(event.split('.')[0], element.namespaces[event]);\n delete element.namespaces[event];\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(elements, duration, callback) {\n var _this10 = this;\n elements = this.wrap(elements);\n var _iterator5 = _createForOfIteratorHelper(elements),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var element = _step5.value;\n element.style.opacity = parseFloat(element) || window.getComputedStyle(element).getPropertyValue(\"opacity\");\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n this.isFadeIn = false;\n var step = 16.66666 / (duration || this.options.fadeSpeed),\n _fade = function fade() {\n var currentOpacity = parseFloat(elements[0].style.opacity);\n if ((currentOpacity -= step) < 0) {\n var _iterator6 = _createForOfIteratorHelper(elements),\n _step6;\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var element = _step6.value;\n element.style.display = \"none\";\n // element.style.opacity = '';\n element.style.opacity = 1;\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n callback && callback.call(_this10, elements);\n } else {\n var _iterator7 = _createForOfIteratorHelper(elements),\n _step7;\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _element = _step7.value;\n _element.style.opacity = currentOpacity;\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n requestAnimationFrame(_fade);\n }\n };\n _fade();\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(elements, duration, callback, display) {\n var _this11 = this;\n elements = this.wrap(elements);\n var _iterator8 = _createForOfIteratorHelper(elements),\n _step8;\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n if (element) {\n element.style.opacity = 0;\n element.style.display = display || \"block\";\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n this.isFadeIn = true;\n var opacityTarget = parseFloat(elements[0].dataset.opacityTarget || 1),\n step = 16.66666 * opacityTarget / (duration || this.options.fadeSpeed),\n _fade2 = function fade() {\n var currentOpacity = parseFloat(elements[0].style.opacity);\n if (!((currentOpacity += step) > opacityTarget)) {\n var _iterator9 = _createForOfIteratorHelper(elements),\n _step9;\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var element = _step9.value;\n if (element) {\n element.style.opacity = currentOpacity;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n if (!_this11.isFadeIn) return;\n requestAnimationFrame(_fade2);\n } else {\n var _iterator10 = _createForOfIteratorHelper(elements),\n _step10;\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var _element2 = _step10.value;\n if (_element2) {\n _element2.style.opacity = opacityTarget;\n }\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n callback && callback.call(_this11, elements);\n }\n };\n _fade2();\n }\n }, {\n key: \"hide\",\n value: function hide(elements) {\n elements = this.wrap(elements);\n var _iterator11 = _createForOfIteratorHelper(elements),\n _step11;\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var element = _step11.value;\n if (element.style.display != 'none') {\n element.dataset.initialDisplay = element.style.display;\n }\n element.style.display = 'none';\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n }\n }, {\n key: \"show\",\n value: function show(elements, display) {\n elements = this.wrap(elements);\n var _iterator12 = _createForOfIteratorHelper(elements),\n _step12;\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var element = _step12.value;\n element.style.display = element.dataset.initialDisplay || display || 'block';\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n }\n }, {\n key: \"wrap\",\n value: function wrap(input) {\n return typeof input[Symbol.iterator] === 'function' && typeof input !== 'string' ? input : [input];\n }\n }, {\n key: \"on\",\n value: function on(events, callback) {\n events = this.wrap(events);\n var _iterator13 = _createForOfIteratorHelper(this.elements),\n _step13;\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var element = _step13.value;\n if (!element.fullyNamespacedEvents) {\n element.fullyNamespacedEvents = {};\n }\n var _iterator14 = _createForOfIteratorHelper(events),\n _step14;\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var event = _step14.value;\n element.fullyNamespacedEvents[event] = callback;\n element.addEventListener(event, callback);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n return this;\n }\n }, {\n key: \"off\",\n value: function off(events) {\n events = this.wrap(events);\n var _iterator15 = _createForOfIteratorHelper(this.elements),\n _step15;\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var element = _step15.value;\n var _iterator16 = _createForOfIteratorHelper(events),\n _step16;\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var event = _step16.value;\n if (typeof element.fullyNamespacedEvents !== 'undefined' && event in element.fullyNamespacedEvents) {\n element.removeEventListener(event, element.fullyNamespacedEvents[event]);\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n return this;\n }\n\n // api\n }, {\n key: \"open\",\n value: function open(elem) {\n var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n elem = elem || this.elements[0];\n if (typeof jQuery !== \"undefined\" && elem instanceof jQuery) {\n elem = elem.get(0);\n }\n if (position > 0) {\n elem = this.elements[position];\n }\n this.initialImageIndex = this.elements.indexOf(elem);\n if (this.initialImageIndex > -1) {\n this.openImage(elem);\n }\n }\n }, {\n key: \"openPosition\",\n value: function openPosition(position) {\n var elem = this.elements[position];\n this.open(elem, position);\n }\n }, {\n key: \"next\",\n value: function next() {\n this.loadImage(1);\n }\n }, {\n key: \"prev\",\n value: function prev() {\n this.loadImage(-1);\n }\n\n // get some useful data\n }, {\n key: \"getLighboxData\",\n value: function getLighboxData() {\n return {\n currentImageIndex: this.currentImageIndex,\n currentImage: this.currentImage,\n globalScrollbarWidth: this.globalScrollbarWidth\n };\n }\n\n //close is exposed anyways..\n }, {\n key: \"destroy\",\n value: function destroy() {\n //remove all custom event listeners from elements\n this.off(['close.' + this.eventNamespace, 'closed.' + this.eventNamespace, 'nextImageLoaded.' + this.eventNamespace, 'prevImageLoaded.' + this.eventNamespace, 'change.' + this.eventNamespace, 'nextDone.' + this.eventNamespace, 'prevDone.' + this.eventNamespace, 'error.' + this.eventNamespace, 'changed.' + this.eventNamespace, 'next.' + this.eventNamespace, 'prev.' + this.eventNamespace, 'show.' + this.eventNamespace, 'shown.' + this.eventNamespace]);\n this.removeEventListener(this.elements, 'click.' + this.eventNamespace);\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.removeEventListener(document.body, 'contextmenu.' + this.eventNamespace);\n this.removeEventListener(document.body, 'keyup.' + this.eventNamespace);\n this.removeEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace);\n this.removeEventListener(this.domNodes.closeButton, 'click.' + this.eventNamespace);\n this.removeEventListener(window, 'resize.' + this.eventNamespace);\n this.removeEventListener(window, 'hashchange.' + this.eventNamespace);\n this.close();\n if (this.isOpen) {\n document.body.removeChild(this.domNodes.wrapper);\n document.body.removeChild(this.domNodes.overlay);\n }\n this.elements = null;\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (!this.initialSelector) {\n throw 'refreshing only works when you initialize using a selector!';\n }\n var options = this.options,\n selector = this.initialSelector;\n this.destroy();\n this.constructor(selector, options);\n return this;\n }\n }]);\n}();\n/* harmony default export */ const simple_lightbox_esm = ((/* unused pure expression or super */ null && (simple_lightbox_esm_SimpleLightbox)));\n__webpack_require__.g.SimpleLightbox = simple_lightbox_esm_SimpleLightbox;\n;// CONCATENATED MODULE: ./src/lightbox.ts\n\n\nfunction generateLightbox(id, images) {\n let imagesMarkup = '';\n for (let image of images) {\n imagesMarkup += `\n \n \n \n \"Plan\"\n \n \n `;\n }\n return `\n
\n ${imagesMarkup}\n
`;\n}\nfunction initGalleries(selector, elementSelector) {\n let sourceAttr = 'href';\n if (Modernizr.webp) {\n sourceAttr = 'data-gal-webp';\n }\n elementSelector ??= 'a';\n let items = document.querySelectorAll(selector);\n items.forEach(item => {\n let elements = Array.from(item.querySelectorAll(elementSelector));\n if (elements.length > 0) {\n new SimpleLightbox(elements, {\n sourceAttr,\n fileExt: false,\n alertErrorMessage: 'Błąd ładowania obrazka'\n });\n }\n });\n}\n\n;// CONCATENATED MODULE: ./src/plan.ts\n\nvar PlanElementType;\n(function (PlanElementType) {\n PlanElementType[\"BlockOfFlats\"] = \"bf\";\n PlanElementType[\"MultiPremises\"] = \"mp\";\n PlanElementType[\"MultiPremisesDouble\"] = \"mpd\";\n PlanElementType[\"House\"] = \"h\";\n PlanElementType[\"DoubleHouse\"] = \"dh\";\n PlanElementType[\"TerracedHouse\"] = \"th\";\n PlanElementType[\"Floor\"] = \"fl\";\n PlanElementType[\"Property\"] = \"pr\";\n})(PlanElementType || (PlanElementType = {}));\nvar PropertyType;\n(function (PropertyType) {\n PropertyType[\"Flat\"] = \"f\";\n PropertyType[\"Cellar\"] = \"c\";\n PropertyType[\"StorageRoom\"] = \"sr\";\n PropertyType[\"House\"] = \"h\";\n PropertyType[\"Premises\"] = \"p\";\n PropertyType[\"LowerPlatform\"] = \"pl\";\n PropertyType[\"UpperPlatform\"] = \"pu\";\n PropertyType[\"ParkingLot\"] = \"lot\";\n PropertyType[\"BicycleBox\"] = \"bb\";\n PropertyType[\"Garage\"] = \"g\";\n PropertyType[\"ExternalLot\"] = \"el\";\n})(PropertyType || (PropertyType = {}));\nfunction isBuilding(element) {\n return [\n PlanElementType.BlockOfFlats,\n PlanElementType.DoubleHouse,\n PlanElementType.House,\n PlanElementType.MultiPremises,\n PlanElementType.MultiPremisesDouble,\n PlanElementType.TerracedHouse\n ].includes(element.t);\n}\nfunction isBlockOfFlats(element) {\n return element.t === PlanElementType.BlockOfFlats;\n}\nfunction isFloor(element) {\n return element.t === PlanElementType.Floor;\n}\nfunction isProperty(element) {\n return element.t === PlanElementType.Property;\n}\nfunction propertyTypeToString(propertyType) {\n switch (propertyType) {\n case PropertyType.BicycleBox:\n return 'Boks rowerowy';\n case PropertyType.Cellar:\n return 'Piwnica';\n case PropertyType.ExternalLot:\n return 'Miejsce postojowe zewnętrzne';\n case PropertyType.Flat:\n return 'Mieszkanie';\n case PropertyType.Garage:\n return 'Garaż';\n case PropertyType.LowerPlatform:\n return 'Platforma postjowa dolna';\n case PropertyType.House:\n return 'Dom';\n case PropertyType.ParkingLot:\n return 'Miejsce postojowe';\n case PropertyType.Premises:\n return 'Lokal usługowy';\n case PropertyType.StorageRoom:\n return 'Schowek';\n case PropertyType.UpperPlatform:\n return 'Platforma postojowa górna';\n default:\n return '';\n }\n}\nasync function initializePlans(selectorOrOptions, optionsArg) {\n let selector = 'picture[data-path]';\n let options;\n if (typeof selectorOrOptions === 'string') {\n if (!optionsArg)\n throw new Error('Must provide options');\n selector = selectorOrOptions;\n options = optionsArg;\n }\n else {\n options = selectorOrOptions;\n }\n let planElements = document.querySelectorAll(selector);\n let planArr = Array.from(planElements);\n let results = [];\n for (let planElement of planArr) {\n let planData = planElement.dataset['path'];\n if (planData == null)\n continue;\n let decoded = JSON.parse(atob(planData));\n results.push(initializePlan(planElement, decoded, options));\n }\n return await Promise.all(results);\n}\nasync function initializePlan(planElement, data, options) {\n let plan = await PropertyPlan.create(planElement, options, data);\n return plan;\n}\nclass PropertyPlan {\n pictureTag;\n _options;\n _data;\n wrapper;\n elements;\n _width;\n _height;\n resizeObserver;\n img;\n _activeObject;\n get data() {\n return this._data;\n }\n get options() {\n return this._options;\n }\n static async create(pictureTag, options, planData) {\n if (!pictureTag || !(pictureTag instanceof HTMLPictureElement) || !pictureTag.parentElement)\n throw new Error('Invalid investment plan element');\n const image = await PropertyPlan.prepareElement(pictureTag);\n const wrapper = PropertyPlan.setupWrapper(pictureTag);\n let plan = new PropertyPlan(pictureTag, options, planData, image, wrapper);\n if (options.popoversEnabled ?? true) {\n plan.initPopovers();\n }\n return plan;\n }\n static async prepareElement(pictureTag) {\n let image = pictureTag.querySelector('img');\n if (!image)\n throw new Error('Cannot find img element');\n if (!image.complete) {\n await new Promise((resolve, reject) => {\n image.addEventListener('load', () => {\n resolve();\n });\n image.addEventListener('error', () => {\n reject(new Error('Cannot initialize property plan. Image could not be loaded.'));\n });\n });\n }\n if (image.naturalHeight === 0)\n throw new Error('Cannot initialize property plan. Image could not be loaded.');\n return image;\n }\n static setupWrapper(picture) {\n let wrapper = document.createElement('div');\n wrapper.style.position = 'relative';\n wrapper.style.display = 'inline-block';\n picture.parentElement.insertBefore(wrapper, picture);\n picture.remove();\n wrapper.appendChild(picture);\n return wrapper;\n }\n constructor(pictureTag, options, data, image, wrapper) {\n this.pictureTag = pictureTag;\n this._options = options;\n this._data = data;\n this.img = image;\n this._width = this.img.clientWidth;\n this._height = this.img.clientHeight;\n if (isNaN(this._width) || isNaN(this._height)) {\n throw new Error('Image element must have width and height attributes set');\n }\n this.wrapper = wrapper;\n this.elements = this.prepareObjects();\n this.setupResizeObserver();\n this.updateDimensions();\n this.img.addEventListener('mousemove', evt => this.handleMouseMove(evt));\n this.img.addEventListener('mouseleave', () => this.handleMouseLeave());\n this.img.addEventListener('click', evt => this.handleMouseClick(evt));\n let onClick = options.onClick;\n if (onClick) {\n this.element.addEventListener('objectclick', (evt) => {\n onClick.apply(this, [evt.detail.object]);\n });\n }\n }\n setupResizeObserver() {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateDimensions();\n });\n this.resizeObserver.observe(this.img);\n }\n else {\n window.addEventListener('resize', () => {\n this.updateDimensions();\n });\n }\n }\n activePopovers = new WeakMap();\n initPopovers() {\n if (!this.element)\n throw new Error('Call initialize first');\n if (!this.options.getPopoverContent)\n throw new Error('getPopoverContent must be set if showPopover is set');\n if (!this.options.getPopoverTitle)\n throw new Error('getPopoverTitle must be set if showPopover is set');\n window.addEventListener('hide.bs.popover', evt => {\n let state = this.activePopovers.get(evt.target);\n if (!state)\n return;\n state.status = 'showing';\n });\n window.addEventListener('show.bs.popover', evt => {\n let state = this.activePopovers.get(evt.target);\n if (!state)\n return;\n state.status = 'showing';\n });\n window.addEventListener('hidden.bs.popover', evt => {\n let state = this.activePopovers.get(evt.target);\n if (!state)\n return;\n state.status = undefined;\n if (state.targetStatus === 'shown') {\n setTimeout(() => {\n state.popover.show();\n }, 0);\n }\n });\n window.addEventListener('shown.bs.popover', evt => {\n let state = this.activePopovers.get(evt.target);\n if (!state)\n return;\n state.status = undefined;\n if (state.targetStatus === 'hidden') {\n setTimeout(() => {\n state.popover.hide();\n }, 0);\n }\n });\n this.element.addEventListener('objectenter', (evt) => {\n this.showPopover(evt.detail);\n });\n this.element.addEventListener('objectleave', (evt) => {\n this.hidePopover(evt.detail);\n });\n }\n hidePopover(planLayer) {\n let popover = this.activePopovers.get(planLayer.canvas);\n if (!popover)\n return;\n popover.targetStatus = 'hidden';\n if (popover.status === undefined) {\n popover.popover.hide();\n }\n }\n showPopover(planLayer) {\n const getContent = this.options.getPopoverContent;\n const getTitle = this.options.getPopoverTitle;\n if (!getContent || !getTitle) {\n return;\n }\n let placement = this.options.popoverPlacement ?? 'right';\n if (this.options.shouldShowPopover) {\n if (!this.options.shouldShowPopover(planLayer.object))\n return;\n }\n let popoverState = this.activePopovers.get(planLayer.canvas);\n let customClass = '';\n if (this.options.popoverClass) {\n customClass = this.options.popoverClass(planLayer.object) || '';\n }\n let popover = popoverState?.popover;\n if (!popover) {\n popover = new bootstrap.Popover(planLayer.canvas, {\n html: true,\n content: () => getContent(planLayer.object),\n title: () => getTitle(planLayer.object),\n trigger: 'manual',\n allowList: PropertyPlan._getAllowList(),\n placement,\n customClass\n });\n popoverState = { popover };\n this.activePopovers.set(planLayer.canvas, popoverState);\n }\n popoverState.targetStatus = 'shown';\n if (popoverState.status === undefined) {\n popover.show();\n }\n }\n getStyle(object) {\n let styleName = this.options.getElementStyle(object);\n return this.options.styles[styleName];\n }\n static _getAllowList() {\n let allowList = bootstrap.Popover.Default.allowList;\n allowList.table = [];\n allowList.td = ['colspan'];\n allowList.tr = [];\n allowList.tbody = [];\n return allowList;\n }\n prepareObjects() {\n const elements = [];\n for (let object of this._data) {\n if (object.pd != null) {\n const element = new PlanPathLayer(object, this);\n elements.push(element);\n if (!!element.canvas) {\n this.wrapper.insertBefore(element.canvas, this.pictureTag);\n }\n }\n }\n return elements;\n }\n updateDimensions() {\n this._width = this.img.clientWidth;\n this._height = this.img.clientHeight;\n for (let elem of this.childElements) {\n elem.updateBounds();\n }\n }\n translateEventCoords(event) {\n let rect = this.element.getBoundingClientRect();\n let x = event.clientX - rect.left;\n let y = event.clientY - rect.top;\n x /= this.width;\n y /= this.height;\n return { x, y };\n }\n handleMouseMove(evt) {\n let coords = this.translateEventCoords(evt);\n for (let child of this.childElements) {\n let object = child.object;\n if (!object.pd)\n continue;\n let newActive = this.isInside(coords, object.pd);\n if (newActive) {\n if (this._activeObject === child)\n return;\n this.clearActiveObject();\n this._activeObject = child;\n child.isActive = true;\n let event = new CustomEvent('objectenter', { detail: child });\n this.element.dispatchEvent(event);\n return;\n }\n }\n this.clearActiveObject();\n }\n handleMouseLeave() {\n this.clearActiveObject();\n }\n handleMouseClick(evt) {\n let coords = this.translateEventCoords(evt);\n for (let child of this.childElements) {\n let object = child.object;\n if (object.pd && this.isInside(coords, object.pd)) {\n let event = new CustomEvent('objectclick', { detail: child });\n this.element.dispatchEvent(event);\n return;\n }\n }\n }\n isInside(point, vs) {\n if (!vs)\n return;\n let x = point.x, y = point.y;\n let inside = false;\n for (let i = 0, j = vs.length - 1; i < vs.length; j = i++) {\n let xi = vs[i].x, yi = vs[i].y;\n let xj = vs[j].x, yj = vs[j].y;\n let intersect = ((yi > y) != (yj > y))\n && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect)\n inside = !inside;\n }\n return inside;\n }\n clearActiveObject() {\n if (this._activeObject != null) {\n this._activeObject.isActive = false;\n let event = new CustomEvent('objectleave', { detail: this._activeObject });\n this._activeObject = undefined;\n this.element.dispatchEvent(event);\n }\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n get element() {\n return this.wrapper;\n }\n get childElements() {\n return [...this.elements];\n }\n}\nclass PlanPathLayer {\n _canvas;\n _plan;\n _object;\n bounds;\n isForcedActive = false;\n _isActive = false;\n constructor(object, plan) {\n this._object = object;\n this._plan = plan;\n this._canvas = document.createElement('canvas');\n }\n updateBounds() {\n this.bounds = this.getObjectBounds();\n this._canvas.setAttribute('width', '' + this.bounds.width);\n this._canvas.setAttribute('height', '' + this.bounds.height);\n this._canvas.style.left = this.bounds.x + 'px';\n this._canvas.style.top = this.bounds.y + 'px';\n this._canvas.style.position = 'absolute';\n this._canvas.style.pointerEvents = 'none';\n this.draw();\n }\n draw() {\n if (!this._canvas || !this.bounds || !this._object.pd)\n return;\n const context = this._canvas.getContext('2d');\n if (!context)\n throw new Error('Unable to get drawing context');\n context.clearRect(0, 0, this.bounds.width, this.bounds.height);\n const active = this._isActive || this.isForcedActive;\n let style = this.plan.getStyle(this.object);\n context.fillStyle = active ? (style.fillHover ?? style.fill) : style.fill;\n context.strokeStyle = active ? (style.strokeHover ?? style.stroke) : style.stroke;\n context.lineWidth = 4;\n context.lineCap = 'round';\n context.lineJoin = 'round';\n context.beginPath();\n context.moveTo(this._object.pd[0].x * this._plan.width - this.bounds.x, this._object.pd[0].y * this._plan.height - this.bounds.y);\n for (let i = 1; i < this._object.pd.length; ++i) {\n context.lineTo(this._object.pd[i].x * this._plan.width - this.bounds.x, this._object.pd[i].y * this._plan.height - this.bounds.y);\n }\n context.closePath();\n context.fill();\n context.stroke();\n }\n getObjectBounds() {\n if (!this._object.pd)\n throw new Error('Path data not set');\n let minx = this._object.pd[0].x;\n let miny = this._object.pd[0].y;\n let maxx = this._object.pd[0].x;\n let maxy = this._object.pd[0].y;\n for (let point of this._object.pd) {\n if (point.x < minx)\n minx = point.x;\n if (point.x > maxx)\n maxx = point.x;\n if (point.y < miny)\n miny = point.y;\n if (point.y > maxy)\n maxy = point.y;\n }\n minx *= this._plan.width;\n miny *= this._plan.height;\n maxx *= this._plan.width;\n maxy *= this._plan.height;\n return { x: minx, y: miny, width: maxx - minx, height: maxy - miny };\n }\n get plan() {\n return this._plan;\n }\n get canvas() {\n return this._canvas;\n }\n get object() {\n return this._object;\n }\n get forceActive() {\n return this.isForcedActive;\n }\n set forceActive(value) {\n this.isForcedActive = value;\n this.draw();\n }\n get isActive() {\n return this._isActive;\n }\n set isActive(value) {\n this._isActive = value;\n this.draw();\n }\n}\nfunction initPlanButtons(config) {\n let activeClass = config.activeClass ?? 'active';\n let buttons = document.querySelectorAll(config.buttonsSelector);\n let mappedObjects = new Map();\n for (let obj of config.plan.childElements) {\n let v = config.accessorFn(obj.object);\n mappedObjects.set(v, obj);\n }\n buttons.forEach(b => {\n let propValue = b.dataset[config.dataProperty];\n if (!propValue)\n return;\n let layer = mappedObjects.get(propValue);\n if (!layer)\n return;\n b.addEventListener('mouseover', () => {\n layer.forceActive = true;\n config.plan.showPopover(layer);\n });\n b.addEventListener('mouseleave', () => {\n layer.forceActive = false;\n config.plan.hidePopover(layer);\n });\n });\n config.plan.element.addEventListener('objectenter', (evt) => {\n let val = config.accessorFn(evt.detail.object);\n buttons.forEach(b => {\n b.classList.toggle(activeClass, b.dataset[config.dataProperty] === val);\n });\n });\n config.plan.element.addEventListener('objectleave', (evt) => {\n let val = config.accessorFn(evt.detail.object);\n buttons.forEach(b => {\n b.classList.remove(activeClass);\n });\n });\n}\n\n;// CONCATENATED MODULE: ./src/table.ts\nconst tableState = new WeakMap();\nfunction initTable(tableConfig) {\n const tableElements = document.querySelectorAll(tableConfig.tableSelector);\n for (let i = 0; i < tableElements.length; ++i) {\n const table = tableElements[i];\n table.classList.add('vp-table');\n const theads = Array.from(table.querySelectorAll('thead th[data-sort]'));\n const tbody = table.querySelector('tbody');\n if (!tbody)\n throw new Error('Cannot find tbody element');\n const stateObj = { rows: [], sid: 0, heads: theads, tbody };\n for (let th of theads) {\n th.classList.add(tableConfig.sortableClass ?? 'sortable');\n if (th.dataset['sort'] === table.dataset['sortDefault'])\n th.classList.add(tableConfig.sortClass ?? 'sort');\n th.addEventListener('click', e => {\n initializeSorting(table, th);\n e.preventDefault();\n });\n }\n const isTouchSupport = 'ontouchstart' in window;\n const dataRows = Array.from(table.querySelectorAll('tbody tr'));\n for (let dRow of dataRows) {\n let value = dRow.dataset['value'];\n if (!value)\n continue;\n let data = JSON.parse(atob(value));\n let expansionElement = undefined;\n if (tableConfig.hasExpansionRow) {\n let potentialDataRow = dRow.nextElementSibling;\n if (potentialDataRow && potentialDataRow.tagName === 'TR' && !potentialDataRow.dataset['value']) {\n expansionElement = potentialDataRow;\n }\n }\n stateObj.rows.push({ element: dRow, data, expansionElement });\n let gotoObj = dRow.querySelector('.goto');\n if (!!gotoObj) {\n gotoObj.addEventListener('click', evt => {\n evt.preventDefault();\n document.location = data.url;\n });\n if (isTouchSupport) {\n dRow.addEventListener('click', evt => {\n if (evt instanceof PointerEvent && evt.pointerType === 'touch') {\n evt.preventDefault();\n document.location = data.url;\n }\n });\n }\n }\n }\n tbody.addEventListener('transitionend', _ => {\n if (tbody.classList.contains('sorting')) {\n updateSorting(stateObj);\n tbody.classList.remove('sorting');\n tbody.classList.add('sorted');\n }\n else {\n tbody.classList.remove('sorted');\n }\n });\n tableState.set(table, stateObj);\n }\n}\nfunction initializeSorting(table, th) {\n let sortProperty = th.dataset['sort'];\n if (!sortProperty)\n return;\n let state = tableState.get(table);\n if (!state)\n throw new Error('Cannot initialize sorting');\n if (state.tbody.classList.contains('sorting') || state.tbody.classList.contains('sorted')) {\n return;\n }\n state.tbody.classList.add('sorting');\n let desc = false;\n if (th.classList.contains('sort')) {\n if (!th.classList.contains('desc')) {\n desc = true;\n th.classList.add('desc');\n }\n else {\n th.classList.remove('desc');\n }\n }\n else {\n for (let th of state.heads) {\n th.classList.remove('sort', 'desc');\n }\n th.classList.add('sort');\n }\n state.sortContext = {\n sortProperty,\n desc\n };\n}\nfunction updateSorting(state) {\n if (!state.sortContext)\n throw new Error('Unexpected empty sort context');\n let desc = state.sortContext.desc;\n let sortProperty = state.sortContext.sortProperty;\n while (state.tbody.lastChild) {\n state.tbody.removeChild(state.tbody.lastChild);\n }\n let resultOrder = state.rows;\n for (let prop of sortProperty.split('|').reverse()) {\n state.rows.sort((r1, r2) => {\n const val1 = r1.data[prop];\n const val2 = r2.data[prop];\n let result = 0;\n if (val1 == null) {\n if (val2 == null)\n return 0;\n result = -1;\n }\n else if (val2 == null) {\n result = 1;\n }\n if (result === 0) {\n if (typeof val1 === 'number' && typeof val2 == 'number') {\n result = val1 - val2;\n }\n else {\n result = val1.localeCompare(val2);\n }\n }\n if (desc)\n result = -result;\n return result;\n });\n }\n for (let sortedRow of resultOrder) {\n state.tbody.appendChild(sortedRow.element);\n if (sortedRow.expansionElement) {\n state.tbody.appendChild(sortedRow.expansionElement);\n }\n }\n}\nfunction filterTables(tableSelector, predicate) {\n predicate ??= () => true;\n const tableElements = Array.from(document.querySelectorAll(tableSelector));\n let result = false;\n for (let table of tableElements) {\n let state = tableState.get(table);\n if (!state) {\n throw new Error('Table not properly initialized');\n }\n let atLeastOneVisible = false;\n for (let row of Array.from(table.querySelectorAll('tbody tr'))) {\n if (row.classList.contains('details')) {\n row.classList.add('collapsed');\n continue;\n }\n let d = state.rows.find(x => x.element === row);\n let meetsCriteria = !!d && predicate(d.data);\n row.classList.toggle('d-none', !meetsCriteria);\n atLeastOneVisible = atLeastOneVisible || meetsCriteria;\n result = result || meetsCriteria;\n }\n let closestRow = table.closest('section');\n if (!closestRow)\n return;\n if (!atLeastOneVisible) {\n closestRow.classList.add('d-none');\n }\n else {\n closestRow.classList.remove('d-none');\n }\n }\n return result;\n}\n\n;// CONCATENATED MODULE: ./src/utils.ts\nconst MoneyFormat = Intl.NumberFormat('pl-PL', { maximumFractionDigits: 0, useGrouping: true });\nconst AreaFormat = Intl.NumberFormat('pl-PL', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n useGrouping: true\n});\nlet existingIds = new Set();\nfunction randomId(prefix) {\n while (true) {\n let tmpId = Math.random().toString(36).replace('0.', prefix || '');\n if (!existingIds.has(tmpId)) {\n existingIds.add(tmpId);\n return tmpId;\n }\n }\n}\nfunction escapeHtml(unsafe) {\n return unsafe.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('\"', '"').replaceAll(\"'\", ''');\n}\n\n;// CONCATENATED MODULE: ./src/index.ts\n\n\n\n\n\n\nvar __webpack_exports__AreaFormat = __webpack_exports__.JJ;\nvar __webpack_exports__DefaultPermissions = __webpack_exports__.Eg;\nvar __webpack_exports__MoneyFormat = __webpack_exports__.Ex;\nvar __webpack_exports__PlanElementType = __webpack_exports__.w0;\nvar __webpack_exports__PlanPathLayer = __webpack_exports__.YQ;\nvar __webpack_exports__PropertyPlan = __webpack_exports__.BH;\nvar __webpack_exports__PropertyType = __webpack_exports__.Ut;\nvar __webpack_exports__escapeHtml = __webpack_exports__.ZD;\nvar __webpack_exports__filterTables = __webpack_exports__.Mo;\nvar __webpack_exports__generateLightbox = __webpack_exports__.XK;\nvar __webpack_exports__initCookieConsent = __webpack_exports__.H1;\nvar __webpack_exports__initGalleries = __webpack_exports__.Dm;\nvar __webpack_exports__initPlanButtons = __webpack_exports__.hA;\nvar __webpack_exports__initTable = __webpack_exports__.fx;\nvar __webpack_exports__initializePlan = __webpack_exports__.qY;\nvar __webpack_exports__initializePlans = __webpack_exports__.FW;\nvar __webpack_exports__isBlockOfFlats = __webpack_exports__.XT;\nvar __webpack_exports__isBuilding = __webpack_exports__.Hf;\nvar __webpack_exports__isFloor = __webpack_exports__.b5;\nvar __webpack_exports__isProperty = __webpack_exports__.uM;\nvar __webpack_exports__propertyTypeToString = __webpack_exports__.Ad;\nvar __webpack_exports__randomId = __webpack_exports__.zE;\nexport { __webpack_exports__AreaFormat as AreaFormat, __webpack_exports__DefaultPermissions as DefaultPermissions, __webpack_exports__MoneyFormat as MoneyFormat, __webpack_exports__PlanElementType as PlanElementType, __webpack_exports__PlanPathLayer as PlanPathLayer, __webpack_exports__PropertyPlan as PropertyPlan, __webpack_exports__PropertyType as PropertyType, __webpack_exports__escapeHtml as escapeHtml, __webpack_exports__filterTables as filterTables, __webpack_exports__generateLightbox as generateLightbox, __webpack_exports__initCookieConsent as initCookieConsent, __webpack_exports__initGalleries as initGalleries, __webpack_exports__initPlanButtons as initPlanButtons, __webpack_exports__initTable as initTable, __webpack_exports__initializePlan as initializePlan, __webpack_exports__initializePlans as initializePlans, __webpack_exports__isBlockOfFlats as isBlockOfFlats, __webpack_exports__isBuilding as isBuilding, __webpack_exports__isFloor as isFloor, __webpack_exports__isProperty as isProperty, __webpack_exports__propertyTypeToString as propertyTypeToString, __webpack_exports__randomId as randomId };\n\n//# sourceMappingURL=main.mjs.map","import {\n FloorPlanElement,\n initializePlan,\n isBlockOfFlats,\n isFloor,\n isProperty,\n PlanElement,\n PlanOptions,\n PropertyStats,\n PropertyType,\n AreaFormat, MoneyFormat, propertyTypeToString, escapeHtml, PlanProperty,\n filterTables, isBuilding\n} from \"@vpsoftware/vprealestate-www\";\n\nexport const planOptions: PlanOptions = {\n styles: {\n Regular: { fill: 'rgb(247, 215, 128, 0.2)', stroke: 'rgb(247, 215, 128, 0.8)', fillHover: 'rgb(247, 215, 128, 0.4)', strokeHover: 'rgb(247, 215, 128, 1)'},\n Available: { fill: 'rgb(0, 215, 0, 0.2)', stroke: 'rgb(0, 215, 0, 0.8)', fillHover: 'rgb(0, 215, 0, 0.4)', strokeHover: 'rgb(0, 215, 0, 1)'},\n Reserved: { fill: 'rgb(255, 255, 0, 0.2)', stroke: 'rgb(255, 255, 0, 0.4)', fillHover: 'rgb(255, 255, 0, 0.4)', strokeHover: 'rgb(255, 255, 0, 0.4)'},\n Sold: { fill: 'rgb(255, 0, 0, 0.2)', stroke: 'rgb(255, 0, 0, 0.4)', fillHover: 'rgb(255, 0, 0, 0.4)', strokeHover: 'rgb(255, 0, 0, 0.4)'}\n },\n getPopoverTitle: popoverTitle,\n getPopoverContent: popoverContent,\n onClick: elementClick,\n getElementStyle\n};\n\nexport const propertyPlanOptions: PlanOptions = {\n styles: {\n Regular: { fill: 'rgb(247, 215, 128, 0.4)', stroke: 'rgb(247, 215, 128, 0.4)'}\n },\n popoversEnabled: false,\n getElementStyle: _ => 'Regular'\n};\n\nfunction getElementStyle(element: PlanElement) {\n if (isProperty(element)) {\n return element.st;\n }\n return 'Regular';\n}\n\nfunction elementClick(element: PlanElement) {\n if (isFloor(element)) {\n loadFloor(element);\n return;\n }\n if (!element.url) return;\n document.location = element.url;\n}\n\nexport function loadFloor(floor: FloorPlanElement) {\n filterTables('table.offer-table', obj => obj.f === floor.fl);\n document.querySelectorAll(\"table.offer-table .table-details\").forEach(toggleElement =>{\n toggleElement.classList.toggle('open', false);\n toggleElement.closest('tr').nextElementSibling.classList.remove('d-none');\n toggleElement.closest('tr').nextElementSibling.classList.remove('more-info-house-open');\n });\n let floorPlanContainer = document.getElementById('floor-plan-container');\n Array.from(floorPlanContainer.children).forEach(c => (c as HTMLElement).classList.add('d-none'));\n if (!floor.plUrl || !floor.pr) {\n return;\n }\n\n \n let hasPrev = false;\n floorPlanContainer.childNodes.forEach(x => {\n if (!(x instanceof HTMLElement)) return;\n if (x.dataset.floor === '' + floor.fl) {\n x.classList.remove('d-none');\n hasPrev = true;\n }\n });\n if (hasPrev) return;\n let newPicture = document.createElement('picture');\n newPicture.innerHTML = `\n \n \"${floor.n}`;\n\n newPicture.classList.add('floor-plan', 'clickable-plan', 'plan-image');\n newPicture.dataset.floor = '' + floor.fl;\n\n floorPlanContainer.appendChild(newPicture);\n initializePlan(newPicture, floor.pr, planOptions);\n floorPlanContainer.scrollIntoView({behavior: 'smooth', block: 'center'});\n \n let estateEntries = document.querySelectorAll('.estate-list-section .estate-list-row');\n estateEntries.forEach(e => {\n e.classList.toggle('d-none', e.dataset.floor !== '' + floor.fl); \n });\n}\n\nexport function loadFloorLevel(level: number) {\n filterTables('table.offer-table', obj => obj.f === level);\n let floorPlanContainer = document.getElementById('floor-plan-container');\n Array.from(floorPlanContainer.children).forEach(c => (c as HTMLElement).classList.add('d-none'));\n}\n\nfunction popoverTitle(_: PlanElement) {\n return null;\n}\n\nfunction popoverContent(obj: PlanElement) {\n if (isBlockOfFlats(obj) || isFloor(obj)) {\n return formatPropertyStats(obj);\n }\n if (isProperty(obj)) {\n let result = '
';\n let typeStr = propertyTypeToString(obj.pt);\n let numberStr = obj.pn ? `${typeStr} nr ${obj.pn}` : `${obj.n}`;\n result += `
${escapeHtml(numberStr)}
`;\n\n if (obj.a) {\n result += `
Powierzchnia:
${AreaFormat.format(obj.a)} m²
`;\n }\n\n if (obj.tr) {\n if (obj.pt === PropertyType.Premises) {\n result += `
Ilość pomieszczeń:
${obj.tr}
`;\n } else {\n result += `
Ilość pokoi:
${obj.tr}
`;\n }\n }\n\n if (obj.pr ) {\n result += `
Cena brutto:
`;\n\n if (obj.orgPr && obj.orgPr > obj.pr) {\n result += `
${MoneyFormat.format(obj.orgPr)} zł
`;\n }\n result += `
${MoneyFormat.format(obj.pr)} zł
`;\n }\n\n if (obj.npr) {\n result += `
Cena netto:
`;\n\n if (obj.npr && obj.norgPr > obj.npr) {\n result += `
${MoneyFormat.format(obj.norgPr)} zł
`;\n }\n result += `
${MoneyFormat.format(obj.npr)} zł
`;\n }\n \n switch (obj.st) {\n case \"Available\":\n result += \n `
\n Dostępne\n
`;\n break;\n case \"Reserved\":\n result += \n `
\n Rezerwacja\n
`;\n break;\n case \"Sold\":\n result += \n `
\n Sprzedane\n
`;\n break;\n }\n \n result += '
';\n return result;\n }\n if(isBuilding(obj) && obj.t === 'mp'){\n let result = '
';\n result += `
Dom dwulokalowy
`;\n console.log(obj)\n result += '
';\n return result;\n } \n \n}\n\nfunction formatPropertyStats(obj: {ps?: PropertyStats, n: string}) {\n let result = '
';\n \n result += `
${escapeHtml(obj.n)}
`;\n if (obj.ps) {\n let atLeastOne = false;\n if (obj.ps.fl > 0) {\n result += `
Dostępne mieszkania:
${obj.ps.fl}
`;\n atLeastOne = true;\n }\n if (obj.ps.pr > 0) {\n result += `
Dostępne lokale usługowe:
${obj.ps.pr}
`;\n atLeastOne = true;\n }\n if (obj.ps.gr > 0) {\n result += `
Dostępne garaże:
${obj.ps.gr}
`;\n atLeastOne = true;\n }\n if (!atLeastOne) {\n result += `
Wyprzedane
`;\n }\n }\n\n result += `
`;\n return result;\n}\n","import * as bootstrap from 'bootstrap';\nimport \"@vpsoftware/vprealestate-www/modernizr\";\n\nimport './style.scss';\nimport {BuildingElement, DefaultPermissions, initCookieConsent, initializePlans, initPlanButtons, initGalleries, initTable,\n FloorPlanElement, isFloor} from \"@vpsoftware/vprealestate-www\";\nimport {loadFloor, loadFloorLevel, planOptions} from \"./plan.custom\";\n\ndeclare const vpcCaptchaPublicKey: string;\n\ndocument.addEventListener('DOMContentLoaded', () => {\n initContactForm();\n initCookieConsent(DefaultPermissions);\n initTables();\n applyButtonAttrToSliderAnchor();\n initGalleries('.vis-container', 'a[data-gal-webp]');\n});\n\nfunction applyButtonAttrToSliderAnchor(){\n let allSliderButtons = document.querySelectorAll('.slider-main-content > p:last-child a');\n allSliderButtons.forEach(button => button.setAttribute('type', 'button'));\n}\n\nfunction initTables() {\n initTable({\n 'tableSelector': 'table.offer-table',\n hasExpansionRow: true\n });\n \n document.querySelectorAll(\"table.offer-table .table-details\").forEach(toggle => {\n toggle.addEventListener(\"click\", (e) => {\n let open = toggle.classList.toggle(\"open\");\n toggle.closest('tr').nextElementSibling.classList.toggle('more-info-house-open', open);\n });\n });\n \n initGalleries('table.offer-table tbody tr.more-info-house', 'a[data-gal-webp]');\n}\n\nexport function initPrivacyPolicy() {\n let toggles = document.querySelectorAll('.politics-toggle');\n toggles.forEach(toggle => {\n toggle.addEventListener('click', (evt) => {\n if ((evt.target as HTMLElement).closest('.politics-desc')) return;\n let active = toggle.classList.toggle('politics-active');\n let icon = toggle.querySelector('.politics-icon');\n if (active) {\n icon.classList.add('bi-dash');\n icon.classList.remove('bi-plus');\n } else {\n icon.classList.remove('bi-dash');\n icon.classList.add('bi-plus');\n }\n });\n });\n}\n\nexport async function initializeDefaultPlan() {\n let plans = await initializePlans('picture[data-path]', planOptions);\n if (plans[0]){\n initPlanButtons(\n {\n plan: plans[0],\n buttonsSelector: 'a[data-building-slug]',\n dataProperty: 'buildingSlug',\n accessorFn: (x: BuildingElement) => x.sl\n });\n }\n \n}\n\nexport async function initializeBuildingPlan() {\n let plans = await initializePlans('picture[data-path]', planOptions);\n if (plans[0]){\n initPlanButtons(\n {\n plan: plans[0],\n buttonsSelector: 'a[data-level]',\n dataProperty: 'level',\n accessorFn: (x: FloorPlanElement) => \"\"+x.fl\n });\n document.querySelectorAll('.floor-button').forEach(btn => {\n btn.addEventListener('click', () => {\n let floorNum = Number(btn.dataset['level']);\n let floorLayer = plans[0].childElements.find(l => isFloor(l.object) && l.object.fl === floorNum);\n if (floorLayer) {\n loadFloor(floorLayer.object as FloorPlanElement); \n } else {\n loadFloorLevel(floorNum);\n }\n });\n });\n }\n\n}\n\n\nfunction initContactForm() {\n let form = document.getElementById('contactForm') as HTMLFormElement;\n if (!form) return;\n // setup requirement for either email or phone number\n const inputs = Array.from(\n form.querySelectorAll(\"[name='email'], [name='phone-number']\")\n );\n\n const inputListener = (e: InputEvent) => {\n inputs\n .filter(i => i !== e.target)\n .forEach(i => (i.required = !(e.target as HTMLInputElement).value.length));\n };\n inputs.forEach(i => i.addEventListener('input', inputListener));\n\n\n const contactModalElement = document.getElementById('contactModal');\n const modal = bootstrap.Modal.getOrCreateInstance(contactModalElement);\n\n let submitButton = form.querySelector('button[type=\"submit\"]');\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n submitButton.setAttribute('disabled', 'disabled');\n const xhr = new XMLHttpRequest();\n let controls = ['name', 'email', 'phone-number', 'message'].map(x => form.querySelector(`[name='${x}']`));\n let request = '';\n\n function resetForm() {\n for (let control of controls) {\n control.removeAttribute('disabled');\n }\n submitButton.removeAttribute('disabled');\n }\n\n for (let control of controls) {\n request += control.name + \"=\" + encodeURIComponent(control.value) + '&';\n control.setAttribute('disabled', 'disabled');\n }\n let tokenInput = form.querySelector('input[name=\"__RequestVerificationToken\"]');\n request += '__RequestVerificationToken=' + tokenInput.value;\n xhr.addEventListener('loadend', function () {\n resetForm();\n let status = xhr.status;\n let body = contactModalElement.querySelector('.modal-body');\n if (status !== 200 && status !== 204) {\n body.innerText = 'Nie udało się wysłać prośby o kontakt';\n } else {\n body.innerText = 'Prośba o kontakt została wysłana';\n for (let control of controls) {\n control.value = '';\n }\n }\n modal.show();\n });\n if (typeof vpcCaptchaPublicKey !== 'undefined') {\n grecaptcha.ready(function () {\n grecaptcha.execute(vpcCaptchaPublicKey, {action: 'submit'}).then(\n function (token) {\n request += '&token=' + token;\n xhr.open('POST', '/Kontakt-Wyslij', true);\n xhr.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n xhr.send(request);\n }, err => {\n console.error(err);\n alert('Błąd wysyłki prośby o kontakt');\n });\n });\n } else {\n xhr.open('POST', '/Kontakt-Wyslij', true);\n xhr.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n xhr.send(request);\n }\n });\n}"],"names":["e","n","o","r","className","A","Modernizr","_config","classPrefix","l","baseVal","enableJSClass","RegExp","replace","enableClasses","join","t","i","c","toLowerCase","split","a","length","Boolean","_trigger","s","documentElement","nodeName","f","u","_version","usePrefixes","_q","on","this","setTimeout","addTest","push","name","fn","options","addAsyncTest","prototype","hasOwnProperty","call","constructor","_l","type","width","Image","onerror","onload","src","uri","shift","aliases","p","window","document","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","d","definition","key","Object","defineProperty","enumerable","get","obj","prop","Symbol","toStringTag","value","bootstrap","g","globalThis","Function","JJ","Eg","Ex","w0","YQ","BH","Ut","ZD","Mo","XK","H1","Dm","hA","fx","qY","FW","XT","Hf","b5","uM","Ad","zE","CookieName","DefaultPermissions","initCookieConsent","defaultPermissions","querySelectorAll","forEach","confirmButton","addEventListener","confirmButtonClicked","adjustButton","querySelector","HTMLButtonElement","popup","Error","classList","add","acc","getElementsByClassName","toggle","panel","style","maxHeight","scrollHeight","gtag","cookiePermits","getCookie","perm","structuredClone","item","confirmInputs","input","some","x","dataset","checked","initializePermitValues","event","button","currentTarget","HTMLElement","cookieAllPermit","permitValues","filter","HTMLInputElement","map","expires","cookieString","expiresMatch","exec","expiresValue","trim","getCookieExpireString","cookie","Date","toUTCString","encodeURIComponent","location","href","nameLenPlus","substring","decodeURIComponent","_typeof","iterator","_createForOfIteratorHelper","Array","isArray","_unsupportedIterableToArray","_n","F","done","TypeError","next","_arrayLikeToArray","toString","slice","from","test","_defineProperties","configurable","writable","_toPropertyKey","_defineProperty","toPrimitive","String","_toPrimitive","PlanElementType","PropertyType","simple_lightbox_esm_SimpleLightbox","SimpleLightbox","elements","_this","_classCallCheck","sourceAttr","overlay","overlayOpacity","spinner","nav","navText","captions","captionDelay","captionSelector","captionType","captionsData","captionPosition","captionClass","captionHTML","close","closeText","swipeClose","showCounter","fileExt","animationSlide","animationSpeed","preloading","enableKeyboard","loop","rel","docClose","swipeTolerance","widthRatio","heightRatio","scaleImageToRatio","disableRightClick","disableScroll","alertError","alertErrorMessage","additionalHtml","history","throttleInterval","doubleTapZoom","maxZoom","htmlClass","rtl","fixedClass","fadeSpeed","uniqueImages","focus","scrollZoom","scrollZoomFactor","download","navigator","platform","swipeDiff","swipeYDiff","swipeStart","swipeEnd","swipeYStart","swipeYEnd","mousedown","imageLeft","zoomed","containerHeight","containerWidth","containerOffsetX","containerOffsetY","imgHeight","imgWidth","capture","initialOffsetX","initialOffsetY","initialPointerOffsetX","initialPointerOffsetY","initialPointerOffsetX2","initialPointerOffsetY2","initialScale","initialPinchDistance","pointerOffsetX","pointerOffsetY","pointerOffsetX2","pointerOffsetY2","targetOffsetX","targetOffsetY","targetScale","pinchOffsetX","pinchOffsetY","limitOffsetX","limitOffsetY","scaleDifference","targetPinchDistance","touchCount","doubleTapped","touchmoveCount","assign","defaultOptions","isPassiveEventsSupported","checkPassiveEventsSupport","initialSelector","relatedElements","transitionPrefix","calculateTransitionPrefix","transitionCapable","initialLocationHash","hash","getRelated","imgArr","element","getAttribute","indexOf","createDomNodes","domNodes","wrapper","appendChild","closeButton","navigation","eventNamespace","isValidLink","preventDefault","isAnimating","initialImageIndex","openImage","isOpen","target","body","parentElement","contains","throttle","controlCoordinates","currentImage","setAttribute","loadImage","addEvents","supportsPassive","opts","removeEventListener","elem","startsWith","selector","trimStart","sibling","nextElementSibling","matches","_selector","tagName","id","parentNode","str","concat","classes","childIndex","previousElementSibling","generateQuerySelector","createElement","opacityTarget","innerHTML","counter","downloadLink","textContent","caption","_this$domNodes$captio","captionClasses","apply","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_toConsumableArray","image","func","limit","inThrottle","arguments","scrollbarWidth","scrollDiv","offsetWidth","clientWidth","removeChild","fixedElements","fullWindowWidth","innerWidth","documentElementRect","getBoundingClientRect","right","Math","abs","left","isAppleDevice","paddingRight","parseInt","getComputedStyle","getScrollbarWidth","originalPaddingRight","actualPadding","calculatedPadding","parseFloat","remove","padding","_this2","isClosing","currentImageIndex","dispatchEvent","Event","historyHasChanges","hashReseted","resetHash","fadeOut","toggleScrollbar","minMax","_this3","index","prev","nextImage","prevImage","loadedImages","direction","_this4","slideDirection","newIndex","slide","show","adjustImage","preload","_this5","tmpImage","windowWidth","windowHeight","innerHeight","scale","translateX","translateY","zoomPanElement","display","dirIsDefined","alert","updateURL","captionContainer","captionText","imageWidth","imageHeight","height","ratio","top","globalScrollbarWidth","forceFocus","fadeIn","getCaptionElement","hide","setCaption","min","max","_this6","bind","hashchangeHandler","getElementsByTagName","match","getDimensions","offsetLeft","offsetTop","delta","wheelDelta","detail","scrollTopPos","scrollTop","pageX","pageY","opacity","setZoomData","clientX","clientY","touches","sqrt","isTouchDevice","possibleDir","styles","offsetHeight","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","borderLeftWidth","borderRightWidth","paddingLeft","newHash","newURL","pushStateSupport","title","urlChangedOnce","back","pushState","pathname","search","clearTimeout","historyUpdateTimeout","updateHash","allowHTML","_this7","_ref","property","speed","pos","_this8","targetURL","_this9","events","callback","wrap","_step","_iterator","namespaces","_step2","_iterator2","passive","err","_step3","_iterator3","_step4","_iterator4","duration","_step5","_this10","_iterator5","getPropertyValue","isFadeIn","step","_fade","currentOpacity","_step6","_iterator6","_step7","_iterator7","requestAnimationFrame","_step8","_this11","_iterator8","_fade2","_step10","_iterator10","_element2","_step9","_iterator9","_step11","_iterator11","initialDisplay","_step12","_iterator12","_step13","_iterator13","fullyNamespacedEvents","_step14","_iterator14","_step15","_iterator15","_step16","_iterator16","position","jQuery","open","off","destroy","generateLightbox","images","imagesMarkup","jpg","webp","initGalleries","elementSelector","isBuilding","BlockOfFlats","DoubleHouse","House","MultiPremises","MultiPremisesDouble","TerracedHouse","includes","isBlockOfFlats","isFloor","Floor","isProperty","Property","propertyTypeToString","propertyType","BicycleBox","Cellar","ExternalLot","Flat","Garage","LowerPlatform","ParkingLot","Premises","StorageRoom","UpperPlatform","async","initializePlans","selectorOrOptions","optionsArg","planElements","planArr","results","planElement","planData","decoded","JSON","parse","atob","initializePlan","Promise","all","data","PropertyPlan","create","pictureTag","_options","_data","_width","_height","resizeObserver","img","_activeObject","HTMLPictureElement","prepareElement","setupWrapper","plan","popoversEnabled","initPopovers","complete","resolve","reject","naturalHeight","picture","insertBefore","clientHeight","isNaN","prepareObjects","setupResizeObserver","updateDimensions","evt","handleMouseMove","handleMouseLeave","handleMouseClick","onClick","object","ResizeObserver","observe","activePopovers","WeakMap","getPopoverContent","getPopoverTitle","state","status","targetStatus","popover","showPopover","hidePopover","planLayer","canvas","getContent","getTitle","placement","popoverPlacement","shouldShowPopover","popoverState","customClass","popoverClass","Popover","html","content","trigger","allowList","_getAllowList","set","getStyle","styleName","getElementStyle","Default","table","td","tr","tbody","pd","PlanPathLayer","childElements","updateBounds","translateEventCoords","rect","y","coords","child","isInside","clearActiveObject","isActive","CustomEvent","point","vs","inside","j","xi","yi","xj","yj","_canvas","_plan","_object","bounds","isForcedActive","_isActive","getObjectBounds","pointerEvents","draw","context","getContext","clearRect","active","fillStyle","fillHover","fill","strokeStyle","strokeHover","stroke","lineWidth","lineCap","lineJoin","beginPath","moveTo","lineTo","closePath","minx","miny","maxx","maxy","forceActive","initPlanButtons","config","activeClass","buttons","buttonsSelector","mappedObjects","Map","v","accessorFn","b","propValue","dataProperty","layer","val","tableState","initTable","tableConfig","tableElements","tableSelector","theads","stateObj","rows","sid","heads","th","sortableClass","sortClass","initializeSorting","isTouchSupport","dataRows","dRow","expansionElement","hasExpansionRow","potentialDataRow","gotoObj","url","PointerEvent","pointerType","_","updateSorting","sortProperty","desc","sortContext","lastChild","resultOrder","reverse","sort","r1","r2","val1","val2","result","localeCompare","sortedRow","filterTables","predicate","atLeastOneVisible","row","find","meetsCriteria","closestRow","closest","MoneyFormat","Intl","NumberFormat","maximumFractionDigits","useGrouping","AreaFormat","minimumFractionDigits","existingIds","Set","randomId","prefix","tmpId","random","has","escapeHtml","unsafe","replaceAll","__webpack_exports__AreaFormat","__webpack_exports__DefaultPermissions","__webpack_exports__MoneyFormat","__webpack_exports__PropertyType","__webpack_exports__escapeHtml","__webpack_exports__filterTables","__webpack_exports__initCookieConsent","__webpack_exports__initGalleries","__webpack_exports__initPlanButtons","__webpack_exports__initTable","__webpack_exports__initializePlan","__webpack_exports__initializePlans","__webpack_exports__isBlockOfFlats","__webpack_exports__isBuilding","__webpack_exports__isFloor","__webpack_exports__isProperty","__webpack_exports__propertyTypeToString","planOptions","Regular","Available","Reserved","Sold","ps","atLeastOne","fl","pr","gr","formatPropertyStats","typeStr","pt","numberStr","pn","format","orgPr","npr","norgPr","st","console","log","loadFloor","floor","toggleElement","floorPlanContainer","getElementById","children","plUrl","hasPrev","childNodes","newPicture","scrollIntoView","behavior","block","initPrivacyPolicy","icon","initializeDefaultPlan","plans","sl","initializeBuildingPlan","btn","floorNum","Number","floorLayer","level","loadFloorLevel","form","inputs","inputListener","required","contactModalElement","modal","getOrCreateInstance","submitButton","xhr","XMLHttpRequest","controls","request","control","tokenInput","removeAttribute","resetForm","innerText","vpcCaptchaPublicKey","grecaptcha","ready","execute","action","then","token","setRequestHeader","send","error","initContactForm"],"sourceRoot":""}