{"version":3,"file":"light-gallery-controller-CaTYykLy.js","sources":["../../../node_modules/luminous-lightbox/es/util/dom.js","../../../node_modules/luminous-lightbox/es/injectBaseStylesheet.js","../../../node_modules/luminous-lightbox/es/util/throwIfMissing.js","../../../node_modules/luminous-lightbox/es/Lightbox.js","../../../node_modules/luminous-lightbox/es/Luminous.js","../../../node_modules/luminous-lightbox/es/LuminousGallery.js","../../../app/frontend/src/global/controllers/light-gallery-controller.js"],"sourcesContent":["function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// This is not really a perfect check, but works fine.\n// From http://stackoverflow.com/questions/384286\nvar HAS_DOM_2 = (typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement)) === \"object\";\nvar HAS_SHADOW = typeof ShadowRoot !== \"undefined\";\n/**\n * Determines whether an object is a DOM element or not.\n * @param {!Object} obj Object to check\n * @return {boolean} True if object is an element\n */\n\nexport function isDOMElement(obj) {\n if (HAS_SHADOW && obj instanceof ShadowRoot) {\n return true;\n }\n\n return HAS_DOM_2 ? obj instanceof HTMLElement : obj && _typeof(obj) === \"object\" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === \"string\";\n}\n/**\n * Adds an array of classes to an element\n * @param {!Element} el Element to add classes to\n * @param {!Array} classNames Class names to add\n * @return {void}\n */\n\nexport function addClasses(el, classNames) {\n classNames.forEach(function (className) {\n el.classList.add(className);\n });\n}\n/**\n * Removes an array of classes from an element\n * @param {!Element} el Element to remove classes from\n * @param {!Array} classNames Classes to remove\n * @return {void}\n */\n\nexport function removeClasses(el, classNames) {\n classNames.forEach(function (className) {\n el.classList.remove(className);\n });\n}\n//# sourceMappingURL=dom.js.map","/* UNMINIFIED RULES\n\n@keyframes lum-noop {\n 0% { zoom: 1; }\n}\n\n.lum-lightbox {\n position: fixed;\n display: none;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.lum-lightbox.lum-open {\n display: block;\n}\n\n.lum-lightbox.lum-opening, .lum-lightbox.lum-closing {\n animation: lum-noop 1ms;\n}\n\n.lum-lightbox-inner {\n position: absolute;\n top: 0%;\n right: 0%;\n bottom: 0%;\n left: 0%;\n\n overflow: hidden;\n}\n\n.lum-lightbox-loader {\n display: none;\n}\n\n.lum-lightbox-inner img {\n max-width: 100%;\n max-height: 100%;\n}\n\n.lum-lightbox-image-wrapper {\n vertical-align: middle;\n display: table-cell;\n text-align: center;\n}\n*/\nvar RULES = \"@keyframes lum-noop{0%{zoom:1}}.lum-lightbox{position:fixed;display:none;top:0;right:0;bottom:0;left:0}.lum-lightbox.lum-open{display:block}.lum-lightbox.lum-closing,.lum-lightbox.lum-opening{animation:lum-noop 1ms}.lum-lightbox-inner{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.lum-lightbox-loader{display:none}.lum-lightbox-inner img{max-width:100%;max-height:100%}.lum-lightbox-image-wrapper{vertical-align:middle;display:table-cell;text-align:center}\";\n/**\n * Injects the base stylesheet needed to display the lightbox\n * element.\n * If `node` is the document, the stylesheet will be appended to ``.\n * @param {!Node} node Node to append stylesheet to\n * @return {void}\n */\n\nexport default function injectBaseStylesheet(node) {\n if (!node || node === document) {\n node = document.head;\n }\n\n if (node.querySelector(\".lum-base-styles\")) {\n return;\n }\n\n var styleEl = document.createElement(\"style\");\n styleEl.type = \"text/css\";\n styleEl.classList.add(\"lum-base-styles\");\n styleEl.appendChild(document.createTextNode(RULES));\n node.insertBefore(styleEl, node.firstChild);\n}\n//# sourceMappingURL=injectBaseStylesheet.js.map","/**\n * Throws a missing parameter error\n */\nexport default function throwIfMissing() {\n throw new Error(\"Missing parameter\");\n}\n//# sourceMappingURL=throwIfMissing.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { isDOMElement, addClasses, removeClasses } from \"./util/dom\";\nimport throwIfMissing from \"./util/throwIfMissing\";\nvar LEFT_ARROW = 37;\nvar RIGHT_ARROW = 39; // All officially-supported browsers have this, but it's easy to\n// account for, just in case.\n\nvar HAS_ANIMATION = typeof document === \"undefined\" ? false : \"animation\" in document.createElement(\"div\").style;\n/**\n * Represents the default lightbox implementation\n */\n\nvar Lightbox = /*#__PURE__*/function () {\n /**\n * Constructor\n * @param {Object=} options Lightbox options\n */\n function Lightbox() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Lightbox);\n\n this._sizeImgWrapperEl = this._sizeImgWrapperEl.bind(this);\n this.showNext = this.showNext.bind(this);\n this.showPrevious = this.showPrevious.bind(this);\n this._completeOpen = this._completeOpen.bind(this);\n this._completeClose = this._completeClose.bind(this);\n this._handleKeydown = this._handleKeydown.bind(this);\n this._handleClose = this._handleClose.bind(this);\n\n var _options$namespace = options.namespace,\n namespace = _options$namespace === void 0 ? null : _options$namespace,\n _options$parentEl = options.parentEl,\n parentEl = _options$parentEl === void 0 ? throwIfMissing() : _options$parentEl,\n _options$triggerEl = options.triggerEl,\n triggerEl = _options$triggerEl === void 0 ? throwIfMissing() : _options$triggerEl,\n _options$sourceAttrib = options.sourceAttribute,\n sourceAttribute = _options$sourceAttrib === void 0 ? throwIfMissing() : _options$sourceAttrib,\n _options$caption = options.caption,\n caption = _options$caption === void 0 ? null : _options$caption,\n _options$includeImgix = options.includeImgixJSClass,\n includeImgixJSClass = _options$includeImgix === void 0 ? false : _options$includeImgix,\n _options$_gallery = options._gallery,\n _gallery = _options$_gallery === void 0 ? null : _options$_gallery,\n _options$_arrowNaviga = options._arrowNavigation,\n _arrowNavigation = _options$_arrowNaviga === void 0 ? null : _options$_arrowNaviga,\n _options$closeButtonE = options.closeButtonEnabled,\n closeButtonEnabled = _options$closeButtonE === void 0 ? true : _options$closeButtonE,\n _options$closeTrigger = options.closeTrigger,\n closeTrigger = _options$closeTrigger === void 0 ? \"click\" : _options$closeTrigger;\n\n this.settings = {\n namespace: namespace,\n parentEl: parentEl,\n triggerEl: triggerEl,\n sourceAttribute: sourceAttribute,\n caption: caption,\n includeImgixJSClass: includeImgixJSClass,\n _gallery: _gallery,\n _arrowNavigation: _arrowNavigation,\n closeButtonEnabled: closeButtonEnabled,\n onClose: options.onClose,\n closeTrigger: closeTrigger\n };\n\n if (!isDOMElement(this.settings.parentEl)) {\n throw new TypeError(\"`new Lightbox` requires a DOM element passed as `parentEl`.\");\n }\n\n this.currentTrigger = this.settings.triggerEl;\n this.openClasses = this._buildClasses(\"open\");\n this.openingClasses = this._buildClasses(\"opening\");\n this.closingClasses = this._buildClasses(\"closing\");\n this.hasBeenLoaded = false;\n this.elementBuilt = false;\n }\n /**\n * Handles closing of the lightbox\n * @param {!Event} e Event that triggered closing\n * @return {void}\n * @protected\n */\n\n\n _createClass(Lightbox, [{\n key: \"_handleClose\",\n value: function _handleClose(e) {\n if (e && typeof e.preventDefault === \"function\") {\n e.preventDefault();\n }\n\n var onClose = this.settings.onClose;\n\n if (onClose && typeof onClose === \"function\") {\n onClose();\n }\n }\n /**\n * Binds event listeners to the trigger element\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_bindEventListeners\",\n value: function _bindEventListeners() {\n this.el.addEventListener(this.settings.closeTrigger, this._handleClose);\n\n if (this.closeButtonEl) {\n this.closeButtonEl.addEventListener(\"click\", this._handleClose);\n }\n }\n /**\n * Builds a class list using the namespace and suffix, if any.\n * @param {string} suffix Suffix to add to each class\n * @return {!Array} Class list\n * @protected\n */\n\n }, {\n key: \"_buildClasses\",\n value: function _buildClasses(suffix) {\n var classes = [\"lum-\".concat(suffix)];\n var ns = this.settings.namespace;\n\n if (ns) {\n classes.push(\"\".concat(ns, \"-\").concat(suffix));\n }\n\n return classes;\n }\n /**\n * Creates the lightbox element\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_buildElement\",\n value: function _buildElement() {\n this.el = document.createElement(\"div\");\n addClasses(this.el, this._buildClasses(\"lightbox\"));\n this.innerEl = document.createElement(\"div\");\n addClasses(this.innerEl, this._buildClasses(\"lightbox-inner\"));\n this.el.appendChild(this.innerEl);\n var loaderEl = document.createElement(\"div\");\n addClasses(loaderEl, this._buildClasses(\"lightbox-loader\"));\n this.innerEl.appendChild(loaderEl);\n this.imgWrapperEl = document.createElement(\"div\");\n addClasses(this.imgWrapperEl, this._buildClasses(\"lightbox-image-wrapper\"));\n this.innerEl.appendChild(this.imgWrapperEl);\n var positionHelperEl = document.createElement(\"span\");\n addClasses(positionHelperEl, this._buildClasses(\"lightbox-position-helper\"));\n this.imgWrapperEl.appendChild(positionHelperEl);\n this.imgEl = document.createElement(\"img\");\n addClasses(this.imgEl, this._buildClasses(\"img\"));\n positionHelperEl.appendChild(this.imgEl);\n this.captionEl = document.createElement(\"p\");\n addClasses(this.captionEl, this._buildClasses(\"lightbox-caption\"));\n positionHelperEl.appendChild(this.captionEl);\n\n if (this.settings.closeButtonEnabled) {\n this.closeButtonEl = document.createElement(\"div\");\n addClasses(this.closeButtonEl, this._buildClasses(\"close-button\"));\n this.el.appendChild(this.closeButtonEl);\n }\n\n if (this.settings._gallery) {\n this._setUpGalleryElements();\n }\n\n this.settings.parentEl.appendChild(this.el);\n\n this._updateImgSrc();\n\n this._updateCaption();\n\n if (this.settings.includeImgixJSClass) {\n this.imgEl.classList.add(\"imgix-fluid\");\n }\n }\n /**\n * Creates gallery elements such as previous/next buttons\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_setUpGalleryElements\",\n value: function _setUpGalleryElements() {\n this._buildGalleryButton(\"previous\", this.showPrevious);\n\n this._buildGalleryButton(\"next\", this.showNext);\n }\n /**\n * Creates a gallery button\n * @param {string} name Name of button\n * @param {!Function} fn Click handler\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_buildGalleryButton\",\n value: function _buildGalleryButton(name, fn) {\n var btn = document.createElement(\"button\");\n this[\"\".concat(name, \"Button\")] = btn;\n btn.innerText = name;\n addClasses(btn, this._buildClasses(\"\".concat(name, \"-button\")));\n addClasses(btn, this._buildClasses(\"gallery-button\"));\n this.innerEl.appendChild(btn);\n btn.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n fn();\n }, false);\n }\n /**\n * Sizes the image wrapper\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_sizeImgWrapperEl\",\n value: function _sizeImgWrapperEl() {\n var style = this.imgWrapperEl.style;\n style.width = \"\".concat(this.innerEl.clientWidth, \"px\");\n style.maxWidth = \"\".concat(this.innerEl.clientWidth, \"px\");\n style.height = \"\".concat(this.innerEl.clientHeight - this.captionEl.clientHeight, \"px\");\n style.maxHeight = \"\".concat(this.innerEl.clientHeight - this.captionEl.clientHeight, \"px\");\n }\n /**\n * Updates caption from settings\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_updateCaption\",\n value: function _updateCaption() {\n var captionType = _typeof(this.settings.caption);\n\n var caption = \"\";\n\n if (captionType === \"string\") {\n caption = this.settings.caption;\n } else if (captionType === \"function\") {\n caption = this.settings.caption(this.currentTrigger);\n }\n\n this.captionEl.innerHTML = caption;\n }\n /**\n * Updates image element from the trigger element's attributes\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_updateImgSrc\",\n value: function _updateImgSrc() {\n var _this = this;\n\n var imageURL = this.currentTrigger.getAttribute(this.settings.sourceAttribute);\n\n if (!imageURL) {\n throw new Error(\"No image URL was found in the \".concat(this.settings.sourceAttribute, \" attribute of the trigger.\"));\n }\n\n var loadingClasses = this._buildClasses(\"loading\");\n\n if (!this.hasBeenLoaded) {\n addClasses(this.el, loadingClasses);\n }\n\n this.imgEl.onload = function () {\n removeClasses(_this.el, loadingClasses);\n _this.hasBeenLoaded = true;\n };\n\n this.imgEl.setAttribute(\"src\", imageURL);\n }\n /**\n * Handles key up/down events for moving between items\n * @param {!Event} e Keyboard event\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_handleKeydown\",\n value: function _handleKeydown(e) {\n if (e.keyCode == LEFT_ARROW) {\n this.showPrevious();\n } else if (e.keyCode == RIGHT_ARROW) {\n this.showNext();\n }\n }\n /**\n * Shows the next item if in a gallery\n * @return {void}\n */\n\n }, {\n key: \"showNext\",\n value: function showNext() {\n if (!this.settings._gallery) {\n return;\n }\n\n this.currentTrigger = this.settings._gallery.nextTrigger(this.currentTrigger);\n\n this._updateImgSrc();\n\n this._updateCaption();\n\n this._sizeImgWrapperEl();\n\n this.settings._gallery.onChange({\n imgEl: this.imgEl\n });\n }\n /**\n * Shows the previous item if in a gallery\n * @return {void}\n */\n\n }, {\n key: \"showPrevious\",\n value: function showPrevious() {\n if (!this.settings._gallery) {\n return;\n }\n\n this.currentTrigger = this.settings._gallery.previousTrigger(this.currentTrigger);\n\n this._updateImgSrc();\n\n this._updateCaption();\n\n this._sizeImgWrapperEl();\n\n this.settings._gallery.onChange({\n imgEl: this.imgEl\n });\n }\n /**\n * Opens the lightbox\n * @return {void}\n */\n\n }, {\n key: \"open\",\n value: function open() {\n if (!this.elementBuilt) {\n this._buildElement();\n\n this._bindEventListeners();\n\n this.elementBuilt = true;\n } // When opening, always reset to the trigger we were passed\n\n\n this.currentTrigger = this.settings.triggerEl; // Make sure to re-set the `img` `src`, in case it's been changed\n // by someone/something else.\n\n this._updateImgSrc();\n\n this._updateCaption();\n\n addClasses(this.el, this.openClasses);\n\n this._sizeImgWrapperEl();\n\n window.addEventListener(\"resize\", this._sizeImgWrapperEl, false);\n\n if (this.settings._arrowNavigation) {\n window.addEventListener(\"keydown\", this._handleKeydown, false);\n }\n\n if (HAS_ANIMATION) {\n this.el.addEventListener(\"animationend\", this._completeOpen, false);\n addClasses(this.el, this.openingClasses);\n }\n }\n /**\n * Closes the lightbox\n * @return {void}\n */\n\n }, {\n key: \"close\",\n value: function close() {\n window.removeEventListener(\"resize\", this._sizeImgWrapperEl, false);\n\n if (this.settings._arrowNavigation) {\n window.removeEventListener(\"keydown\", this._handleKeydown, false);\n }\n\n if (HAS_ANIMATION) {\n this.el.addEventListener(\"animationend\", this._completeClose, false);\n addClasses(this.el, this.closingClasses);\n } else {\n removeClasses(this.el, this.openClasses);\n }\n }\n /**\n * Handles animations on completion of opening the lightbox\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_completeOpen\",\n value: function _completeOpen() {\n this.el.removeEventListener(\"animationend\", this._completeOpen, false);\n removeClasses(this.el, this.openingClasses);\n }\n /**\n * Handles animations on completion of closing the lightbox\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_completeClose\",\n value: function _completeClose() {\n this.el.removeEventListener(\"animationend\", this._completeClose, false);\n removeClasses(this.el, this.openClasses);\n removeClasses(this.el, this.closingClasses);\n }\n /**\n * Destroys the lightbox\n * @return {void}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this.el) {\n this.settings.parentEl.removeChild(this.el);\n }\n }\n }]);\n\n return Lightbox;\n}();\n\nexport { Lightbox as default };\n//# sourceMappingURL=Lightbox.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { isDOMElement } from \"./util/dom\";\nimport injectBaseStylesheet from \"./injectBaseStylesheet\";\nimport Lightbox from \"./Lightbox\";\n/**\n * Represents the default luminous lightbox\n */\n\nvar Luminous = /*#__PURE__*/function () {\n /**\n * Constructor\n * @param {!Element} trigger Trigger element to open lightbox\n * @param {Object=} options Luminous options\n */\n function Luminous(trigger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Luminous);\n\n this.VERSION = \"2.3.5\";\n this.destroy = this.destroy.bind(this);\n this.open = this.open.bind(this);\n this.close = this.close.bind(this);\n this._handleKeyup = this._handleKeyup.bind(this);\n this.isOpen = false;\n this.trigger = trigger;\n\n if (!isDOMElement(this.trigger)) {\n throw new TypeError(\"`new Luminous` requires a DOM element as its first argument.\");\n }\n\n var rootNode = document;\n\n if (\"getRootNode\" in this.trigger) {\n rootNode = this.trigger.getRootNode();\n } // Prefix for generated element class names (e.g. `my-ns` will\n // result in classes such as `my-ns-lightbox`. Default `lum-`\n // prefixed classes will always be added as well.\n\n\n var namespace = options[\"namespace\"] || null; // Which attribute to pull the lightbox image source from.\n\n var sourceAttribute = options[\"sourceAttribute\"] || \"href\"; // Captions can be a literal string, or a function that receives the Luminous instance's trigger element as an argument and returns a string. Supports HTML, so use caution when dealing with user input.\n\n var caption = options[\"caption\"] || null; // The event to listen to on the _trigger_ element: triggers opening.\n\n var openTrigger = options[\"openTrigger\"] || \"click\"; // The event to listen to on the _lightbox_ element: triggers closing.\n\n var closeTrigger = options[\"closeTrigger\"] || \"click\"; // Allow closing by pressing escape.\n\n var closeWithEscape = \"closeWithEscape\" in options ? !!options[\"closeWithEscape\"] : true; // Automatically close when the page is scrolled.\n\n var closeOnScroll = options[\"closeOnScroll\"] || false;\n var closeButtonEnabled = options[\"showCloseButton\"] != null ? options[\"showCloseButton\"] : true;\n var appendToNode = options[\"appendToNode\"] || (rootNode === document ? document.body : rootNode); // A selector defining what to append the lightbox element to.\n\n var appendToSelector = options[\"appendToSelector\"] || null; // If present (and a function), this will be called\n // whenever the lightbox is opened.\n\n var onOpen = options[\"onOpen\"] || null; // If present (and a function), this will be called\n // whenever the lightbox is closed.\n\n var onClose = options[\"onClose\"] || null; // When true, adds the `imgix-fluid` class to the `img`\n // inside the lightbox. See https://github.com/imgix/imgix.js\n // for more information.\n\n var includeImgixJSClass = options[\"includeImgixJSClass\"] || false; // Add base styles to the page. See the \"Theming\"\n // section of README.md for more information.\n\n var injectBaseStyles = \"injectBaseStyles\" in options ? !!options[\"injectBaseStyles\"] : true; // Internal use only!\n\n var _gallery = options[\"_gallery\"] || null;\n\n var _arrowNavigation = options[\"_arrowNavigation\"] || null;\n\n this.settings = {\n namespace: namespace,\n sourceAttribute: sourceAttribute,\n caption: caption,\n openTrigger: openTrigger,\n closeTrigger: closeTrigger,\n closeWithEscape: closeWithEscape,\n closeOnScroll: closeOnScroll,\n closeButtonEnabled: closeButtonEnabled,\n appendToNode: appendToNode,\n appendToSelector: appendToSelector,\n onOpen: onOpen,\n onClose: onClose,\n includeImgixJSClass: includeImgixJSClass,\n injectBaseStyles: injectBaseStyles,\n _gallery: _gallery,\n _arrowNavigation: _arrowNavigation\n };\n var injectionRoot = document.body;\n\n if (appendToNode && \"getRootNode\" in appendToNode) {\n injectionRoot = appendToNode.getRootNode();\n }\n\n if (this.settings.injectBaseStyles) {\n injectBaseStylesheet(injectionRoot);\n }\n\n this._buildLightbox();\n\n this._bindEventListeners();\n }\n /**\n * Opens the lightbox\n * @param {Event=} e Event which triggered opening\n * @return {void}\n */\n\n\n _createClass(Luminous, [{\n key: \"open\",\n value: function open(e) {\n if (e && typeof e.preventDefault === \"function\") {\n e.preventDefault();\n }\n\n this.lightbox.open();\n\n if (this.settings.closeOnScroll) {\n window.addEventListener(\"scroll\", this.close, false);\n }\n\n var onOpen = this.settings.onOpen;\n\n if (onOpen && typeof onOpen === \"function\") {\n onOpen();\n }\n\n this.isOpen = true;\n }\n /**\n * Closes the lightbox\n * @param {Event=} e Event which triggered closing\n * @return {void}\n */\n\n }, {\n key: \"close\",\n value: function close(e) {\n if (this.settings.closeOnScroll) {\n window.removeEventListener(\"scroll\", this.close, false);\n }\n\n this.lightbox.close();\n var onClose = this.settings.onClose;\n\n if (onClose && typeof onClose === \"function\") {\n onClose();\n }\n\n this.isOpen = false;\n }\n /**\n * Builds the internal lightbox instance\n * @protected\n * @return {void}\n */\n\n }, {\n key: \"_buildLightbox\",\n value: function _buildLightbox() {\n var parentEl = this.settings.appendToNode;\n\n if (this.settings.appendToSelector) {\n parentEl = document.querySelector(this.settings.appendToSelector);\n }\n\n this.lightbox = new Lightbox({\n namespace: this.settings.namespace,\n parentEl: parentEl,\n triggerEl: this.trigger,\n sourceAttribute: this.settings.sourceAttribute,\n caption: this.settings.caption,\n includeImgixJSClass: this.settings.includeImgixJSClass,\n closeButtonEnabled: this.settings.closeButtonEnabled,\n _gallery: this.settings._gallery,\n _arrowNavigation: this.settings._arrowNavigation,\n closeTrigger: this.settings.closeTrigger,\n onClose: this.close\n });\n }\n /**\n * Binds lightbox events to the trigger element\n * @protected\n * @return {void}\n */\n\n }, {\n key: \"_bindEventListeners\",\n value: function _bindEventListeners() {\n this.trigger.addEventListener(this.settings.openTrigger, this.open, false);\n\n if (this.settings.closeWithEscape) {\n window.addEventListener(\"keyup\", this._handleKeyup, false);\n }\n }\n /**\n * Unbinds all events\n * @protected\n * @return {void}\n */\n\n }, {\n key: \"_unbindEvents\",\n value: function _unbindEvents() {\n this.trigger.removeEventListener(this.settings.openTrigger, this.open, false);\n\n if (this.lightbox.el) {\n this.lightbox.el.removeEventListener(this.settings.closeTrigger, this.close, false);\n }\n\n if (this.settings.closeWithEscape) {\n window.removeEventListener(\"keyup\", this._handleKeyup, false);\n }\n }\n /**\n * Handles key up events and closes lightbox when esc is pressed\n * @param {!Event} e Keyboard event\n * @return {void}\n * @protected\n */\n\n }, {\n key: \"_handleKeyup\",\n value: function _handleKeyup(e) {\n if (this.isOpen && e.keyCode === 27) {\n this.close();\n }\n }\n /**\n * Destroys internal lightbox and unbinds events\n * @return {void}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._unbindEvents();\n\n this.lightbox.destroy();\n }\n }]);\n\n return Luminous;\n}();\n/* eslint-disable no-self-assign */\n\n\nexport { Luminous as default };\nLuminous.prototype[\"open\"] = Luminous.prototype.open;\nLuminous.prototype[\"close\"] = Luminous.prototype.close;\nLuminous.prototype[\"destroy\"] = Luminous.prototype.destroy;\n/* eslint-enable no-self-assign */\n//# sourceMappingURL=Luminous.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Luminous from \"./Luminous\";\n/**\n * Represents a gallery-style lightbox\n */\n\nvar LuminousGallery = /*#__PURE__*/function () {\n /**\n * Constructor\n * @param {!Array} triggers Array of trigger elements\n * @param {Object=} options Gallery options\n * @param {Object=} luminousOpts Luminous options\n */\n function LuminousGallery(triggers) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var luminousOpts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, LuminousGallery);\n\n var optionsDefaults = {\n arrowNavigation: true,\n onChange: null\n };\n this.settings = Object.assign({}, optionsDefaults, options);\n this.triggers = triggers;\n this.luminousOpts = luminousOpts;\n this.luminousOpts[\"_gallery\"] = this;\n this.luminousOpts[\"_arrowNavigation\"] = this.settings[\"arrowNavigation\"];\n\n this._constructLuminousInstances();\n }\n /**\n * Creates internal luminous instances\n * @protected\n * @return {void}\n */\n\n\n _createClass(LuminousGallery, [{\n key: \"_constructLuminousInstances\",\n value: function _constructLuminousInstances() {\n this.luminousInstances = [];\n var triggerLen = this.triggers.length;\n\n for (var i = 0; i < triggerLen; i++) {\n var trigger = this.triggers[i];\n var lum = new Luminous(trigger, this.luminousOpts);\n this.luminousInstances.push(lum);\n }\n }\n /**\n * Determines the next trigger element\n * @param {!Element} trigger Current trigger element\n * @return {!Element}\n */\n\n }, {\n key: \"nextTrigger\",\n value: function nextTrigger(trigger) {\n var nextTriggerIndex = Array.prototype.indexOf.call(this.triggers, trigger) + 1;\n return nextTriggerIndex >= this.triggers.length ? this.triggers[0] : this.triggers[nextTriggerIndex];\n }\n /**\n * Determines the previous trigger element\n * @param {!Element} trigger Current trigger element\n * @return {!Element}\n */\n\n }, {\n key: \"previousTrigger\",\n value: function previousTrigger(trigger) {\n var prevTriggerIndex = Array.prototype.indexOf.call(this.triggers, trigger) - 1;\n return prevTriggerIndex < 0 ? this.triggers[this.triggers.length - 1] : this.triggers[prevTriggerIndex];\n }\n /**\n * Callback called when current image is changed\n * @param {Object} params\n * @param {!Element} params.imgEl New image element\n */\n\n }, {\n key: \"onChange\",\n value: function onChange(_ref) {\n var imgEl = _ref.imgEl;\n var onChange = this.settings.onChange;\n\n if (onChange && typeof onChange === \"function\") {\n onChange({\n imgEl: imgEl\n });\n }\n }\n /**\n * Destroys the internal luminous instances\n * @return {void}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.luminousInstances.forEach(function (instance) {\n return instance.destroy();\n });\n }\n }]);\n\n return LuminousGallery;\n}();\n/* eslint-disable-next-line no-self-assign */\n\n\nexport { LuminousGallery as default };\nLuminousGallery.prototype[\"destroy\"] = LuminousGallery.prototype.destroy;\n//# sourceMappingURL=LuminousGallery.js.map","import { Controller } from '@hotwired/stimulus';\nimport { LuminousGallery } from 'luminous-lightbox';\nimport './luminous-lightbox/index.scss';\n\nexport default class extends Controller {\n static targets = ['item'];\n\n connect() {\n new LuminousGallery(\n this.itemTargets,\n { arrowNavigation: true },\n {\n caption: function (trigger) {\n return trigger.getAttribute('alt');\n }\n }\n );\n }\n}\n"],"names":["_typeof","obj","HAS_DOM_2","HAS_SHADOW","isDOMElement","addClasses","el","classNames","className","removeClasses","RULES","injectBaseStylesheet","node","styleEl","throwIfMissing","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_createClass","protoProps","staticProps","LEFT_ARROW","RIGHT_ARROW","HAS_ANIMATION","Lightbox","options","_options$namespace","namespace","_options$parentEl","parentEl","_options$triggerEl","triggerEl","_options$sourceAttrib","sourceAttribute","_options$caption","caption","_options$includeImgix","includeImgixJSClass","_options$_gallery","_gallery","_options$_arrowNaviga","_arrowNavigation","_options$closeButtonE","closeButtonEnabled","_options$closeTrigger","closeTrigger","onClose","suffix","classes","ns","loaderEl","positionHelperEl","name","fn","btn","e","style","captionType","_this","imageURL","loadingClasses","Luminous","trigger","rootNode","openTrigger","closeWithEscape","closeOnScroll","appendToNode","appendToSelector","onOpen","injectBaseStyles","injectionRoot","LuminousGallery","triggers","luminousOpts","optionsDefaults","triggerLen","lum","nextTriggerIndex","prevTriggerIndex","_ref","imgEl","onChange","lightGalleryController","Controller","__publicField"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}