{ "version": 3, "sources": ["../../../node_modules/.pnpm/photoswipe-dynamic-caption-plugin@1.2.7/node_modules/photoswipe-dynamic-caption-plugin/photoswipe-dynamic-caption-plugin.esm.js", "../../Private/Assets/Main.js"], "sourcesContent": ["/**\r\n * PhotoSwipe Dynamic Caption plugin v1.2.7\r\n * https://github.com/dimsemenov/photoswipe-dynamic-caption-plugin\r\n * \r\n * By https://dimsemenov.com\r\n */\r\n\r\nconst defaultOptions = {\r\n captionContent: '.pswp-caption-content',\r\n type: 'auto',\r\n horizontalEdgeThreshold: 20,\r\n mobileCaptionOverlapRatio: 0.3,\r\n mobileLayoutBreakpoint: 600,\r\n verticallyCenterImage: false\r\n};\r\n\r\nclass PhotoSwipeDynamicCaption {\r\n constructor(lightbox, options) {\r\n this.options = {\r\n ...defaultOptions,\r\n ...options\r\n };\r\n\r\n this.lightbox = lightbox;\r\n\r\n this.lightbox.on('init', () => {\r\n this.pswp = this.lightbox.pswp;\r\n this.initCaption();\r\n });\r\n }\r\n\r\n initCaption() {\r\n const { pswp } = this;\r\n\r\n pswp.on('change', () => {\r\n // make sure caption is displayed after slides are switched\r\n this.showCaption(this.pswp.currSlide);\r\n });\r\n\r\n pswp.on('calcSlideSize', (e) => this.onCalcSlideSize(e));\r\n\r\n pswp.on('slideDestroy', (e) => {\r\n if (e.slide.dynamicCaption) {\r\n if (e.slide.dynamicCaption.element) {\r\n e.slide.dynamicCaption.element.remove();\r\n }\r\n delete e.slide.dynamicCaption;\r\n }\r\n });\r\n\r\n // hide caption if zoomed\r\n pswp.on('zoomPanUpdate', ({ slide }) => {\r\n if (pswp.opener.isOpen && slide.dynamicCaption) {\r\n if (slide.currZoomLevel > slide.zoomLevels.initial) {\r\n this.hideCaption(slide);\r\n } else {\r\n this.showCaption(slide);\r\n }\r\n \r\n // move caption on vertical drag\r\n if (slide.dynamicCaption.element) {\r\n let captionYOffset = 0;\r\n if (slide.currZoomLevel <= slide.zoomLevels.initial) {\r\n const shiftedAmount = slide.pan.y - slide.bounds.center.y;\r\n if (Math.abs(shiftedAmount) > 1) {\r\n captionYOffset = shiftedAmount;\r\n }\r\n }\r\n\r\n this.setCaptionYOffset(slide.dynamicCaption.element, captionYOffset);\r\n }\r\n\r\n this.adjustPanArea(slide, slide.currZoomLevel);\r\n }\r\n });\r\n\r\n pswp.on('beforeZoomTo', (e) => {\r\n this.adjustPanArea(pswp.currSlide, e.destZoomLevel);\r\n });\r\n\r\n // Stop default action of tap when tapping on the caption\r\n pswp.on('tapAction', (e) => {\r\n if (e.originalEvent.target.closest('.pswp__dynamic-caption')) {\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n adjustPanArea(slide, zoomLevel) {\r\n if (slide.dynamicCaption && slide.dynamicCaption.adjustedPanAreaSize) {\r\n if (zoomLevel > slide.zoomLevels.initial) {\r\n slide.panAreaSize.x = slide.dynamicCaption.originalPanAreaSize.x;\r\n slide.panAreaSize.y = slide.dynamicCaption.originalPanAreaSize.y;\r\n } else {\r\n // Restore panAreaSize after we zoom back to initial position\r\n slide.panAreaSize.x = slide.dynamicCaption.adjustedPanAreaSize.x;\r\n slide.panAreaSize.y = slide.dynamicCaption.adjustedPanAreaSize.y;\r\n }\r\n }\r\n }\r\n\r\n useMobileLayout() {\r\n const { mobileLayoutBreakpoint } = this.options;\r\n\r\n if (typeof mobileLayoutBreakpoint === 'function') {\r\n return mobileLayoutBreakpoint.call(this);\r\n } else if (typeof mobileLayoutBreakpoint === 'number') {\r\n if (window.innerWidth < mobileLayoutBreakpoint) {\r\n return true;\r\n }\r\n }\r\n \r\n return false;\r\n }\r\n\r\n hideCaption(slide) {\r\n if (slide.dynamicCaption && !slide.dynamicCaption.hidden) {\r\n const captionElement = slide.dynamicCaption.element;\r\n\r\n if (!captionElement) {\r\n return;\r\n }\r\n\r\n slide.dynamicCaption.hidden = true;\r\n captionElement.classList.add('pswp__dynamic-caption--faded');\r\n\r\n // Disable caption visibility with the delay, so it's not interactable \r\n if (slide.captionFadeTimeout) {\r\n clearTimeout(slide.captionFadeTimeout);\r\n }\r\n slide.captionFadeTimeout = setTimeout(() => {\r\n captionElement.style.visibility = 'hidden';\r\n delete slide.captionFadeTimeout;\r\n }, 400);\r\n }\r\n }\r\n\r\n setCaptionYOffset(el, y) {\r\n el.style.transform = `translateY(${y}px)`;\r\n }\r\n\r\n showCaption(slide) {\r\n if (slide.dynamicCaption && slide.dynamicCaption.hidden) {\r\n const captionElement = slide.dynamicCaption.element;\r\n\r\n if (!captionElement) {\r\n return;\r\n }\r\n\r\n slide.dynamicCaption.hidden = false;\r\n captionElement.style.visibility = 'visible';\r\n \r\n clearTimeout(slide.captionFadeTimeout);\r\n slide.captionFadeTimeout = setTimeout(() => {\r\n captionElement.classList.remove('pswp__dynamic-caption--faded');\r\n delete slide.captionFadeTimeout;;\r\n }, 50);\r\n }\r\n }\r\n\r\n setCaptionPosition(captionEl, x, y) {\r\n const isOnHorizontalEdge = (x <= this.options.horizontalEdgeThreshold);\r\n captionEl.classList[\r\n isOnHorizontalEdge ? 'add' : 'remove'\r\n ]('pswp__dynamic-caption--on-hor-edge');\r\n\r\n captionEl.style.left = x + 'px';\r\n captionEl.style.top = y + 'px';\r\n }\r\n\r\n setCaptionWidth(captionEl, width) {\r\n if (!width) {\r\n captionEl.style.removeProperty('width');\r\n } else {\r\n captionEl.style.width = width + 'px';\r\n }\r\n }\r\n\r\n setCaptionType(captionEl, type) {\r\n const prevType = captionEl.dataset.pswpCaptionType;\r\n if (type !== prevType) {\r\n captionEl.classList.add('pswp__dynamic-caption--' + type);\r\n captionEl.classList.remove('pswp__dynamic-caption--' + prevType);\r\n captionEl.dataset.pswpCaptionType = type;\r\n }\r\n }\r\n\r\n updateCaptionPosition(slide) {\r\n if (!slide.dynamicCaption || !slide.dynamicCaption.type || !slide.dynamicCaption.element) {\r\n return;\r\n }\r\n\r\n if (slide.dynamicCaption.type === 'mobile') {\r\n this.setCaptionType(\r\n slide.dynamicCaption.element, \r\n slide.dynamicCaption.type\r\n );\r\n \r\n slide.dynamicCaption.element.style.removeProperty('left');\r\n slide.dynamicCaption.element.style.removeProperty('top');\r\n this.setCaptionWidth(slide.dynamicCaption.element, false);\r\n return;\r\n }\r\n\r\n const zoomLevel = slide.zoomLevels.initial;\r\n const imageWidth = Math.ceil(slide.width * zoomLevel);\r\n const imageHeight = Math.ceil(slide.height * zoomLevel);\r\n \r\n this.setCaptionType(slide.dynamicCaption.element, slide.dynamicCaption.type);\r\n if (slide.dynamicCaption.type === 'aside') {\r\n this.setCaptionPosition(\r\n slide.dynamicCaption.element,\r\n slide.bounds.center.x + imageWidth,\r\n slide.bounds.center.y\r\n );\r\n this.setCaptionWidth(slide.dynamicCaption.element, false);\r\n } else if (slide.dynamicCaption.type === 'below') {\r\n this.setCaptionPosition(\r\n slide.dynamicCaption.element,\r\n slide.bounds.center.x,\r\n slide.bounds.center.y + imageHeight\r\n );\r\n this.setCaptionWidth(slide.dynamicCaption.element, imageWidth);\r\n }\r\n }\r\n\r\n onCalcSlideSize(e) {\r\n const { slide } = e;\r\n let captionSize;\r\n let useMobileVersion;\r\n\r\n if (!slide.dynamicCaption) {\r\n slide.dynamicCaption = {\r\n element: undefined,\r\n type: false,\r\n hidden: false\r\n };\r\n\r\n const captionHTML = this.getCaptionHTML(slide);\r\n\r\n if (!captionHTML) {\r\n return;\r\n }\r\n\r\n slide.dynamicCaption.element = document.createElement('div');\r\n slide.dynamicCaption.element.className = 'pswp__dynamic-caption pswp__hide-on-close';\r\n slide.dynamicCaption.element.innerHTML = captionHTML;\r\n\r\n this.pswp.dispatch('dynamicCaptionUpdateHTML', { \r\n captionElement: slide.dynamicCaption.element,\r\n slide\r\n });\r\n\r\n slide.holderElement.appendChild(slide.dynamicCaption.element);\r\n }\r\n\r\n if (!slide.dynamicCaption.element) {\r\n return;\r\n }\r\n\r\n this.storeOriginalPanAreaSize(slide);\r\n\r\n slide.bounds.update(slide.zoomLevels.initial);\r\n \r\n if (this.useMobileLayout()) {\r\n slide.dynamicCaption.type = 'mobile';\r\n useMobileVersion = true;\r\n } else {\r\n if (this.options.type === 'auto') {\r\n if (slide.bounds.center.x > slide.bounds.center.y) {\r\n slide.dynamicCaption.type = 'aside';\r\n } else {\r\n slide.dynamicCaption.type = 'below';\r\n }\r\n } else {\r\n slide.dynamicCaption.type = this.options.type;\r\n }\r\n } \r\n\r\n const imageWidth = Math.ceil(slide.width * slide.zoomLevels.initial);\r\n const imageHeight = Math.ceil(slide.height * slide.zoomLevels.initial);\r\n\r\n this.setCaptionType(\r\n slide.dynamicCaption.element, \r\n slide.dynamicCaption.type\r\n );\r\n\r\n if (slide.dynamicCaption.type === 'aside') {\r\n this.setCaptionWidth(slide.dynamicCaption.element, false);\r\n captionSize = this.measureCaptionSize(slide.dynamicCaption.element, e.slide);\r\n\r\n const captionWidth = captionSize.x; \r\n\r\n const horizontalEnding = imageWidth + slide.bounds.center.x;\r\n const horizontalLeftover = (slide.panAreaSize.x - horizontalEnding);\r\n\r\n if (horizontalLeftover <= captionWidth) {\r\n slide.panAreaSize.x -= captionWidth;\r\n this.recalculateZoomLevelAndBounds(slide);\r\n } else {\r\n // do nothing, caption will fit aside without any adjustments\r\n }\r\n } else if (slide.dynamicCaption.type === 'below' || useMobileVersion) {\r\n this.setCaptionWidth(\r\n slide.dynamicCaption.element, \r\n useMobileVersion ? this.pswp.viewportSize.x : imageWidth\r\n );\r\n\r\n captionSize = this.measureCaptionSize(slide.dynamicCaption.element, e.slide);\r\n const captionHeight = captionSize.y;\r\n\r\n if (this.options.verticallyCenterImage) {\r\n slide.panAreaSize.y -= captionHeight;\r\n this.recalculateZoomLevelAndBounds(slide);\r\n } else {\r\n // Lift up the image only by caption height\r\n\r\n // vertical ending of the image\r\n const verticalEnding = imageHeight + slide.bounds.center.y;\r\n\r\n // height between bottom of the screen and ending of the image\r\n // (before any adjustments applied) \r\n const verticalLeftover = slide.panAreaSize.y - verticalEnding;\r\n const initialPanAreaHeight = slide.panAreaSize.y;\r\n\r\n if (verticalLeftover <= captionHeight) {\r\n // lift up the image to give more space for caption\r\n slide.panAreaSize.y -= Math.min((captionHeight - verticalLeftover) * 2, captionHeight);\r\n\r\n // we reduce viewport size, thus we need to update zoom level and pan bounds\r\n this.recalculateZoomLevelAndBounds(slide);\r\n\r\n const maxPositionX = slide.panAreaSize.x * this.options.mobileCaptionOverlapRatio / 2;\r\n\r\n // Do not reduce viewport height if too few space available\r\n if (useMobileVersion \r\n && slide.bounds.center.x > maxPositionX) {\r\n // Restore the default position\r\n slide.panAreaSize.y = initialPanAreaHeight;\r\n this.recalculateZoomLevelAndBounds(slide);\r\n }\r\n }\r\n }\r\n } else {\r\n // mobile\r\n }\r\n\r\n this.storeAdjustedPanAreaSize(slide);\r\n this.updateCaptionPosition(slide);\r\n }\r\n\r\n measureCaptionSize(captionEl, slide) {\r\n const rect = captionEl.getBoundingClientRect();\r\n const event = this.pswp.dispatch('dynamicCaptionMeasureSize', {\r\n captionEl,\r\n slide,\r\n captionSize: {\r\n x: rect.width,\r\n y: rect.height\r\n }\r\n });\r\n return event.captionSize;\r\n }\r\n\r\n recalculateZoomLevelAndBounds(slide) {\r\n slide.zoomLevels.update(slide.width, slide.height, slide.panAreaSize);\r\n slide.bounds.update(slide.zoomLevels.initial);\r\n }\r\n\r\n storeAdjustedPanAreaSize(slide) {\r\n if (slide.dynamicCaption) {\r\n if (!slide.dynamicCaption.adjustedPanAreaSize) {\r\n slide.dynamicCaption.adjustedPanAreaSize = {};\r\n }\r\n slide.dynamicCaption.adjustedPanAreaSize.x = slide.panAreaSize.x;\r\n slide.dynamicCaption.adjustedPanAreaSize.y = slide.panAreaSize.y;\r\n }\r\n }\r\n\r\n storeOriginalPanAreaSize(slide) {\r\n if (slide.dynamicCaption) {\r\n if (!slide.dynamicCaption.originalPanAreaSize) {\r\n slide.dynamicCaption.originalPanAreaSize = {};\r\n }\r\n slide.dynamicCaption.originalPanAreaSize.x = slide.panAreaSize.x;\r\n slide.dynamicCaption.originalPanAreaSize.y = slide.panAreaSize.y;\r\n }\r\n }\r\n\r\n getCaptionHTML(slide) {\r\n if (typeof this.options.captionContent === 'function') {\r\n return this.options.captionContent.call(this, slide);\r\n }\r\n\r\n const currSlideElement = slide.data.element;\r\n let captionHTML = '';\r\n if (currSlideElement) {\r\n const hiddenCaption = currSlideElement.querySelector(this.options.captionContent);\r\n if (hiddenCaption) {\r\n // get caption from element with class pswp-caption-content\r\n captionHTML = hiddenCaption.innerHTML;\r\n } else {\r\n const img = currSlideElement.querySelector('img');\r\n if (img) {\r\n // get caption from alt attribute\r\n captionHTML = img.getAttribute('alt');\r\n }\r\n }\r\n }\r\n return captionHTML;\r\n }\r\n}\r\n\r\nexport default PhotoSwipeDynamicCaption;\r\n", "import PhotoSwipeLightbox from \"photoswipe/lightbox\";\nimport PhotoSwipeDynamicCaption from \"photoswipe-dynamic-caption-plugin\";\nimport { dispatchEvent, getDataOptions, setPswpContainerAttributes, addEventListener } from \"./Helper\";\n\nconst optionsFromNeos = { ...getDataOptions(\"photoswipeI18n\"), ...getDataOptions(\"photoswipeOptions\") };\n\nfunction init(options = {}) {\n options = { ...optionsFromNeos, ...options };\n const lightbox = new PhotoSwipeLightbox({\n gallery: document.body,\n pswpModule: () => import(\"photoswipe\"),\n ...options,\n });\n new PhotoSwipeDynamicCaption(lightbox, {\n type: \"auto\",\n captionContent: (slide) =>\n slide.data.element.closest(\"figure\").querySelector(\".pswp-caption-content\")?.innerHTML || \"\",\n });\n\n lightbox.on(\"firstUpdate\", setPswpContainerAttributes);\n lightbox.on(\"contentLoadImage\", ({ content, isLazy }) => {\n dispatchEvent({ type: \"image\", action: \"open\", content, isLazy });\n });\n lightbox.on(\"destroy\", () => {\n dispatchEvent({ type: \"image\", action: \"close\" });\n });\n lightbox.init();\n return lightbox;\n}\n\nconst lightbox = init();\n\naddEventListener(\"images\", () => {\n lightbox.init();\n});\n\nwindow.neosPhotoSwipe = window.neosPhotoSwipe || {};\nwindow.neosPhotoSwipe.images = {\n init,\n lightbox,\n};\n\nexport default init;\n"], "mappings": "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", "names": ["defaultOptions", "PhotoSwipeDynamicCaption", "lightbox", "options", "pswp", "slide", "captionYOffset", "shiftedAmount", "zoomLevel", "mobileLayoutBreakpoint", "captionElement", "el", "y", "captionEl", "x", "isOnHorizontalEdge", "width", "type", "prevType", "imageWidth", "imageHeight", "e", "captionSize", "useMobileVersion", "captionHTML", "captionWidth", "horizontalEnding", "captionHeight", "verticalEnding", "verticalLeftover", "initialPanAreaHeight", "maxPositionX", "rect", "currSlideElement", "hiddenCaption", "img", "photoswipe_dynamic_caption_plugin_esm_default", "optionsFromNeos", "getDataOptions", "init", "options", "lightbox", "PhotoSwipeLightbox", "photoswipe_dynamic_caption_plugin_esm_default", "slide", "setPswpContainerAttributes", "content", "isLazy", "dispatchEvent", "addEventListener", "Main_default"] }