{"version":3,"file":"eventgallery.js","mappings":"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","sources":["webpack://eventgallery/./common/js/Helpers.js","webpack://eventgallery/./frontend/js/glide_modules/anchor.js","webpack://eventgallery/./node_modules/@glidejs/glide/dist/glide.modular.esm.js","webpack://eventgallery/./frontend/js/slider/SliderTransformator.js","webpack://eventgallery/./frontend/js/utils/camelCaseConverter.js","webpack://eventgallery/./frontend/js/slider/SliderOptions.js","webpack://eventgallery/./frontend/js/utils/ElementSize.js","webpack://eventgallery/./frontend/js/EventgalleryLazyload.js","webpack://eventgallery/./frontend/js/slider/SliderStarter.js","webpack://eventgallery/./frontend/js/EventgalleryImage.js","webpack://eventgallery/./frontend/js/EventgalleryRow.js","webpack://eventgallery/./frontend/js/EventgalleryImageList.js","webpack://eventgallery/./frontend/js/EventgalleryEventsList.js","webpack://eventgallery/./frontend/js/EventgalleryEventsTiles.js","webpack://eventgallery/./frontend/js/EventgallerySquareList.js","webpack://eventgallery/./frontend/js/EventgalleryTilesCollection.js","webpack://eventgallery/./frontend/js/URLHelper.js","webpack://eventgallery/./frontend/js/EventgalleryGooglePhotosProcessor.js","webpack://eventgallery/./frontend/js/EventgalleryBehavior.js","webpack://eventgallery/./frontend/js/EventgallerySizeCalculator.js","webpack://eventgallery/./frontend/js/Overlay.js","webpack://eventgallery/./frontend/js/touch/Touch.ts","webpack://eventgallery/./frontend/js/jsgallery/EventgalleryJSGallery2.js","webpack://eventgallery/./frontend/js/jsgallery/index.js","webpack://eventgallery/./node_modules/photoswipe/dist/photoswipe.esm.js","webpack://eventgallery/./frontend/js/SlideShow.js","webpack://eventgallery/./frontend/js/photoswipe/SlideGenerator.js","webpack://eventgallery/./frontend/js/photoswipe/HistoryHandler.js","webpack://eventgallery/./frontend/js/photoswipe/PhotoSwipeGallery.js","webpack://eventgallery/./frontend/js/photoswipe/UrlHandling.js","webpack://eventgallery/./frontend/js/photoswipe/PhotoSwipeGallerySlide.js","webpack://eventgallery/./frontend/js/utils/units.ts","webpack://eventgallery/./frontend/js/utils/eventshandler.js","webpack://eventgallery/./frontend/js/Polyfill.ts","webpack://eventgallery/./frontend/js/minicart/CartEvents.ts","webpack://eventgallery/./frontend/js/minicart/MiniCart.ts","webpack://eventgallery/./frontend/js/minicart/Add2CartDialogContent.ts","webpack://eventgallery/./frontend/js/minicart/Add2CartButtonHandler.ts","webpack://eventgallery/./frontend/js/minicart/CartConnectorButtonHandler.ts","webpack://eventgallery/./frontend/js/minicart/CartProcessor.ts","webpack://eventgallery/./frontend/js/minicart/index.ts","webpack://eventgallery/./frontend/js/socialbutton/socialbutton.ts","webpack://eventgallery/./frontend/js/socialbutton/index.ts","webpack://eventgallery/webpack/bootstrap","webpack://eventgallery/webpack/runtime/define property getters","webpack://eventgallery/webpack/runtime/hasOwnProperty shorthand","webpack://eventgallery/webpack/runtime/make namespace object","webpack://eventgallery/./eventgallery.js"],"sourcesContent":["function removeElement(array, elm) {\r\n const index = array.indexOf(elm);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeObjects(defaults, options) {\r\n if (options === null || defaults === null) {\r\n return defaults;\r\n }\r\n\r\n for (let key in options) {\r\n defaults[key] = options[key];\r\n }\r\n\r\n return defaults;\r\n}\r\n\r\n/**\r\n * returns the width of an element.\r\n * @param el HTMLElement\r\n * @return {number}\r\n */\r\nfunction getElementWidth(el) {\r\n if (!el) return 0;\r\n return parseFloat(getComputedStyle(el, null).width.replace(\"px\", \"\"));\r\n}\r\n\r\n/**\r\n * returns the height of an element.\r\n * @param el HTMLElement\r\n * @return {number}\r\n */\r\nfunction getElementHeight(el) {\r\n if (!el) return 0;\r\n return parseFloat(getComputedStyle(el, null).height.replace(\"px\", \"\"));\r\n}\r\n\r\n/**\r\n * calculates the border of the given elements with the given properties\r\n */\r\nfunction calcBorderWidth(elements, properties) {\r\n let sum = 0;\r\n\r\n for (let i=0; i1? fragments[1].split(\"&\") : [],\r\n result;\r\n\r\n hashparts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(value));\r\n\r\n if (hashparts.length>0) {\r\n result = urlpart + '#' + hashparts.join('&');\r\n } else {\r\n result = urlpart;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction getUrlHashParameterValue(url, key) {\r\n let fragments=url.split('#'),\r\n hashparts = fragments.length>1? fragments[1].split(\"&\") : [],\r\n result;\r\n\r\n if (hashparts.length>0)\r\n {\r\n let prefix= encodeURIComponent(key)+'=';\r\n\r\n for (let i=0; i1? fragments[1].split(\"&\") : [],\r\n result;\r\n\r\n if (hashparts.length>0)\r\n {\r\n let prefix= encodeURIComponent(key)+'=',\r\n newHashParts = [];\r\n\r\n for (let i=0; i0) {\r\n result = urlpart + '#' + hashparts.join('&');\r\n } else {\r\n result = urlpart;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction addUrlParameter(initialUrl, key, value) {\r\n let url = removeUrlParameter(initialUrl, key),\r\n fragments = url.split('#'),\r\n urlparts= fragments[0].split('?'),\r\n result;\r\n\r\n if (urlparts.length === 1) {\r\n result = urlparts[0] + '?' + encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\r\n } else {\r\n result = urlparts.join('?') + '&' + encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\r\n }\r\n\r\n if (fragments.length>1) {\r\n return result + '#' + fragments[1];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction removeUrlParameter(url, key) {\r\n let fragments=url.split('#'),\r\n urlparts= fragments[0].split('?'),\r\n result;\r\n\r\n if (urlparts.length>1)\r\n {\r\n let prefix= encodeURIComponent(key)+'=';\r\n let pars= urlparts[1].split('&');\r\n\r\n for (let i=0; i 0) {\r\n result = urlparts[0] + '?' + pars.join('&');\r\n }\r\n else {\r\n result = urlparts[0];\r\n }\r\n }\r\n else {\r\n result = urlparts[0];\r\n }\r\n\r\n if (fragments.length>1) {\r\n return result + '#' + fragments[1];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction setCSSStyle (nodes, style, value) {\r\n for (let i=0; i {\r\n Anchors.detach();\r\n });\r\n\r\n /**\r\n * Attach anchors inside slides:\r\n * - after swiping and transitions ends, so they can redirect after click again\r\n */\r\n Events.on('swipe.end', () => {\r\n Components.Transition.after(() => {\r\n Anchors.attach()\r\n });\r\n });\r\n\r\n /**\r\n * Unbind anchors inside slides:\r\n * - on destroying, to bring anchors to its initial state\r\n */\r\n Events.on('destroy', () => {\r\n Anchors.attach();\r\n Anchors.unbind();\r\n Binder.destroy()\r\n });\r\n\r\n return Anchors\r\n}\r\n","/*!\n * Glide.js v3.6.0\n * (c) 2013-2022 Jędrzej Chałubek (https://github.com/jedrzejchalubek/)\n * Released under the MIT License.\n */\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}\n\nvar defaults = {\n /**\n * Type of the movement.\n *\n * Available types:\n * `slider` - Rewinds slider to the start/end when it reaches the first or last slide.\n * `carousel` - Changes slides without starting over when it reaches the first or last slide.\n *\n * @type {String}\n */\n type: 'slider',\n\n /**\n * Start at specific slide number defined with zero-based index.\n *\n * @type {Number}\n */\n startAt: 0,\n\n /**\n * A number of slides visible on the single viewport.\n *\n * @type {Number}\n */\n perView: 1,\n\n /**\n * Focus currently active slide at a specified position in the track.\n *\n * Available inputs:\n * `center` - Current slide will be always focused at the center of a track.\n * `0,1,2,3...` - Current slide will be focused on the specified zero-based index.\n *\n * @type {String|Number}\n */\n focusAt: 0,\n\n /**\n * A size of the gap added between slides.\n *\n * @type {Number}\n */\n gap: 10,\n\n /**\n * Change slides after a specified interval. Use `false` for turning off autoplay.\n *\n * @type {Number|Boolean}\n */\n autoplay: false,\n\n /**\n * Stop autoplay on mouseover event.\n *\n * @type {Boolean}\n */\n hoverpause: true,\n\n /**\n * Allow for changing slides with left and right keyboard arrows.\n *\n * @type {Boolean}\n */\n keyboard: true,\n\n /**\n * Stop running `perView` number of slides from the end. Use this\n * option if you don't want to have an empty space after\n * a slider. Works only with `slider` type and a\n * non-centered `focusAt` setting.\n *\n * @type {Boolean}\n */\n bound: false,\n\n /**\n * Minimal swipe distance needed to change the slide. Use `false` for turning off a swiping.\n *\n * @type {Number|Boolean}\n */\n swipeThreshold: 80,\n\n /**\n * Minimal mouse drag distance needed to change the slide. Use `false` for turning off a dragging.\n *\n * @type {Number|Boolean}\n */\n dragThreshold: 120,\n\n /**\n * A number of slides moved on single swipe.\n *\n * Available types:\n * `` - Moves slider by one slide per swipe\n * `|` - Moves slider between views per swipe (number of slides defined in `perView` options)\n *\n * @type {String}\n */\n perSwipe: '',\n\n /**\n * Moving distance ratio of the slides on a swiping and dragging.\n *\n * @type {Number}\n */\n touchRatio: 0.5,\n\n /**\n * Angle required to activate slides moving on swiping or dragging.\n *\n * @type {Number}\n */\n touchAngle: 45,\n\n /**\n * Duration of the animation in milliseconds.\n *\n * @type {Number}\n */\n animationDuration: 400,\n\n /**\n * Allows looping the `slider` type. Slider will rewind to the first/last slide when it's at the start/end.\n *\n * @type {Boolean}\n */\n rewind: true,\n\n /**\n * Duration of the rewinding animation of the `slider` type in milliseconds.\n *\n * @type {Number}\n */\n rewindDuration: 800,\n\n /**\n * Easing function for the animation.\n *\n * @type {String}\n */\n animationTimingFunc: 'cubic-bezier(.165, .840, .440, 1)',\n\n /**\n * Wait for the animation to finish until the next user input can be processed\n *\n * @type {boolean}\n */\n waitForTransition: true,\n\n /**\n * Throttle costly events at most once per every wait milliseconds.\n *\n * @type {Number}\n */\n throttle: 10,\n\n /**\n * Moving direction mode.\n *\n * Available inputs:\n * - 'ltr' - left to right movement,\n * - 'rtl' - right to left movement.\n *\n * @type {String}\n */\n direction: 'ltr',\n\n /**\n * The distance value of the next and previous viewports which\n * have to peek in the current view. Accepts number and\n * pixels as a string. Left and right peeking can be\n * set up separately with a directions object.\n *\n * For example:\n * `100` - Peek 100px on the both sides.\n * { before: 100, after: 50 }` - Peek 100px on the left side and 50px on the right side.\n *\n * @type {Number|String|Object}\n */\n peek: 0,\n\n /**\n * Defines how many clones of current viewport will be generated.\n *\n * @type {Number}\n */\n cloningRatio: 1,\n\n /**\n * Collection of options applied at specified media breakpoints.\n * For example: display two slides per view under 800px.\n * `{\n * '800px': {\n * perView: 2\n * }\n * }`\n */\n breakpoints: {},\n\n /**\n * Collection of internally used HTML classes.\n *\n * @todo Refactor `slider` and `carousel` properties to single `type: { slider: '', carousel: '' }` object\n * @type {Object}\n */\n classes: {\n swipeable: 'glide--swipeable',\n dragging: 'glide--dragging',\n direction: {\n ltr: 'glide--ltr',\n rtl: 'glide--rtl'\n },\n type: {\n slider: 'glide--slider',\n carousel: 'glide--carousel'\n },\n slide: {\n clone: 'glide__slide--clone',\n active: 'glide__slide--active'\n },\n arrow: {\n disabled: 'glide__arrow--disabled'\n },\n nav: {\n active: 'glide__bullet--active'\n }\n }\n};\n\n/**\n * Outputs warning message to the bowser console.\n *\n * @param {String} msg\n * @return {Void}\n */\nfunction warn(msg) {\n console.error(\"[Glide warn]: \".concat(msg));\n}\n\n/**\n * Converts value entered as number\n * or string to integer value.\n *\n * @param {String} value\n * @returns {Number}\n */\nfunction toInt(value) {\n return parseInt(value);\n}\n/**\n * Converts value entered as number\n * or string to flat value.\n *\n * @param {String} value\n * @returns {Number}\n */\n\nfunction toFloat(value) {\n return parseFloat(value);\n}\n/**\n * Indicates whether the specified value is a string.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * Indicates whether the specified value is an object.\n *\n * @param {*} value\n * @return {Boolean}\n *\n * @see https://github.com/jashkenas/underscore\n */\n\nfunction isObject(value) {\n var type = _typeof(value);\n\n return type === 'function' || type === 'object' && !!value; // eslint-disable-line no-mixed-operators\n}\n/**\n * Indicates whether the specified value is a function.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Indicates whether the specified value is undefined.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n/**\n * Indicates whether the specified value is an array.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isArray(value) {\n return value.constructor === Array;\n}\n\n/**\n * Creates and initializes specified collection of extensions.\n * Each extension receives access to instance of glide and rest of components.\n *\n * @param {Object} glide\n * @param {Object} extensions\n *\n * @returns {Object}\n */\n\nfunction mount(glide, extensions, events) {\n var components = {};\n\n for (var name in extensions) {\n if (isFunction(extensions[name])) {\n components[name] = extensions[name](glide, components, events);\n } else {\n warn('Extension must be a function');\n }\n }\n\n for (var _name in components) {\n if (isFunction(components[_name].mount)) {\n components[_name].mount();\n }\n }\n\n return components;\n}\n\n/**\n * Defines getter and setter property on the specified object.\n *\n * @param {Object} obj Object where property has to be defined.\n * @param {String} prop Name of the defined property.\n * @param {Object} definition Get and set definitions for the property.\n * @return {Void}\n */\nfunction define(obj, prop, definition) {\n Object.defineProperty(obj, prop, definition);\n}\n/**\n * Sorts aphabetically object keys.\n *\n * @param {Object} obj\n * @return {Object}\n */\n\nfunction sortKeys(obj) {\n return Object.keys(obj).sort().reduce(function (r, k) {\n r[k] = obj[k];\n return r[k], r;\n }, {});\n}\n/**\n * Merges passed settings object with default options.\n *\n * @param {Object} defaults\n * @param {Object} settings\n * @return {Object}\n */\n\nfunction mergeOptions(defaults, settings) {\n var options = Object.assign({}, defaults, settings); // `Object.assign` do not deeply merge objects, so we\n // have to do it manually for every nested object\n // in options. Although it does not look smart,\n // it's smaller and faster than some fancy\n // merging deep-merge algorithm script.\n\n if (settings.hasOwnProperty('classes')) {\n options.classes = Object.assign({}, defaults.classes, settings.classes);\n\n if (settings.classes.hasOwnProperty('direction')) {\n options.classes.direction = Object.assign({}, defaults.classes.direction, settings.classes.direction);\n }\n\n if (settings.classes.hasOwnProperty('type')) {\n options.classes.type = Object.assign({}, defaults.classes.type, settings.classes.type);\n }\n\n if (settings.classes.hasOwnProperty('slide')) {\n options.classes.slide = Object.assign({}, defaults.classes.slide, settings.classes.slide);\n }\n\n if (settings.classes.hasOwnProperty('arrow')) {\n options.classes.arrow = Object.assign({}, defaults.classes.arrow, settings.classes.arrow);\n }\n\n if (settings.classes.hasOwnProperty('nav')) {\n options.classes.nav = Object.assign({}, defaults.classes.nav, settings.classes.nav);\n }\n }\n\n if (settings.hasOwnProperty('breakpoints')) {\n options.breakpoints = Object.assign({}, defaults.breakpoints, settings.breakpoints);\n }\n\n return options;\n}\n\nvar EventsBus = /*#__PURE__*/function () {\n /**\n * Construct a EventBus instance.\n *\n * @param {Object} events\n */\n function EventsBus() {\n var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, EventsBus);\n\n this.events = events;\n this.hop = events.hasOwnProperty;\n }\n /**\n * Adds listener to the specifed event.\n *\n * @param {String|Array} event\n * @param {Function} handler\n */\n\n\n _createClass(EventsBus, [{\n key: \"on\",\n value: function on(event, handler) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.on(event[i], handler);\n }\n\n return;\n } // Create the event's object if not yet created\n\n\n if (!this.hop.call(this.events, event)) {\n this.events[event] = [];\n } // Add the handler to queue\n\n\n var index = this.events[event].push(handler) - 1; // Provide handle back for removal of event\n\n return {\n remove: function remove() {\n delete this.events[event][index];\n }\n };\n }\n /**\n * Runs registered handlers for specified event.\n *\n * @param {String|Array} event\n * @param {Object=} context\n */\n\n }, {\n key: \"emit\",\n value: function emit(event, context) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.emit(event[i], context);\n }\n\n return;\n } // If the event doesn't exist, or there's no handlers in queue, just leave\n\n\n if (!this.hop.call(this.events, event)) {\n return;\n } // Cycle through events queue, fire!\n\n\n this.events[event].forEach(function (item) {\n item(context || {});\n });\n }\n }]);\n\n return EventsBus;\n}();\n\nvar Glide$1 = /*#__PURE__*/function () {\n /**\r\n * Construct glide.\r\n *\r\n * @param {String} selector\r\n * @param {Object} options\r\n */\n function Glide(selector) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Glide);\n\n this._c = {};\n this._t = [];\n this._e = new EventsBus();\n this.disabled = false;\n this.selector = selector;\n this.settings = mergeOptions(defaults, options);\n this.index = this.settings.startAt;\n }\n /**\r\n * Initializes glide.\r\n *\r\n * @param {Object} extensions Collection of extensions to initialize.\r\n * @return {Glide}\r\n */\n\n\n _createClass(Glide, [{\n key: \"mount\",\n value: function mount$1() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._e.emit('mount.before');\n\n if (isObject(extensions)) {\n this._c = mount(this, extensions, this._e);\n } else {\n warn('You need to provide a object on `mount()`');\n }\n\n this._e.emit('mount.after');\n\n return this;\n }\n /**\r\n * Collects an instance `translate` transformers.\r\n *\r\n * @param {Array} transformers Collection of transformers.\r\n * @return {Void}\r\n */\n\n }, {\n key: \"mutate\",\n value: function mutate() {\n var transformers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (isArray(transformers)) {\n this._t = transformers;\n } else {\n warn('You need to provide a array on `mutate()`');\n }\n\n return this;\n }\n /**\r\n * Updates glide with specified settings.\r\n *\r\n * @param {Object} settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"update\",\n value: function update() {\n var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.settings = mergeOptions(this.settings, settings);\n\n if (settings.hasOwnProperty('startAt')) {\n this.index = settings.startAt;\n }\n\n this._e.emit('update');\n\n return this;\n }\n /**\r\n * Change slide with specified pattern. A pattern must be in the special format:\r\n * `>` - Move one forward\r\n * `<` - Move one backward\r\n * `={i}` - Go to {i} zero-based slide (eq. '=1', will go to second slide)\r\n * `>>` - Rewinds to end (last slide)\r\n * `<<` - Rewinds to start (first slide)\r\n * `|>` - Move one viewport forward\r\n * `|<` - Move one viewport backward\r\n *\r\n * @param {String} pattern\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"go\",\n value: function go(pattern) {\n this._c.Run.make(pattern);\n\n return this;\n }\n /**\r\n * Move track by specified distance.\r\n *\r\n * @param {String} distance\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"move\",\n value: function move(distance) {\n this._c.Transition.disable();\n\n this._c.Move.make(distance);\n\n return this;\n }\n /**\r\n * Destroy instance and revert all changes done by this._c.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._e.emit('destroy');\n\n return this;\n }\n /**\r\n * Start instance autoplaying.\r\n *\r\n * @param {Boolean|Number} interval Run autoplaying with passed interval regardless of `autoplay` settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"play\",\n value: function play() {\n var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (interval) {\n this.settings.autoplay = interval;\n }\n\n this._e.emit('play');\n\n return this;\n }\n /**\r\n * Stop instance autoplaying.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n this._e.emit('pause');\n\n return this;\n }\n /**\r\n * Sets glide into a idle status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"disable\",\n value: function disable() {\n this.disabled = true;\n return this;\n }\n /**\r\n * Sets glide into a active status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"enable\",\n value: function enable() {\n this.disabled = false;\n return this;\n }\n /**\r\n * Adds cuutom event listener with handler.\r\n *\r\n * @param {String|Array} event\r\n * @param {Function} handler\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"on\",\n value: function on(event, handler) {\n this._e.on(event, handler);\n\n return this;\n }\n /**\r\n * Checks if glide is a precised type.\r\n *\r\n * @param {String} name\r\n * @return {Boolean}\r\n */\n\n }, {\n key: \"isType\",\n value: function isType(name) {\n return this.settings.type === name;\n }\n /**\r\n * Gets value of the core options.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: \"settings\",\n get: function get() {\n return this._o;\n }\n /**\r\n * Sets value of the core options.\r\n *\r\n * @param {Object} o\r\n * @return {Void}\r\n */\n ,\n set: function set(o) {\n if (isObject(o)) {\n this._o = o;\n } else {\n warn('Options must be an `object` instance.');\n }\n }\n /**\r\n * Gets current index of the slider.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: \"index\",\n get: function get() {\n return this._i;\n }\n /**\r\n * Sets current index a slider.\r\n *\r\n * @return {Object}\r\n */\n ,\n set: function set(i) {\n this._i = toInt(i);\n }\n /**\r\n * Gets type name of the slider.\r\n *\r\n * @return {String}\r\n */\n\n }, {\n key: \"type\",\n get: function get() {\n return this.settings.type;\n }\n /**\r\n * Gets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n\n }, {\n key: \"disabled\",\n get: function get() {\n return this._d;\n }\n /**\r\n * Sets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n ,\n set: function set(status) {\n this._d = !!status;\n }\n }]);\n\n return Glide;\n}();\n\nfunction Run (Glide, Components, Events) {\n var Run = {\n /**\n * Initializes autorunning of the glide.\n *\n * @return {Void}\n */\n mount: function mount() {\n this._o = false;\n },\n\n /**\n * Makes glides running based on the passed moving schema.\n *\n * @param {String} move\n */\n make: function make(move) {\n var _this = this;\n\n if (!Glide.disabled) {\n !Glide.settings.waitForTransition || Glide.disable();\n this.move = move;\n Events.emit('run.before', this.move);\n this.calculate();\n Events.emit('run', this.move);\n Components.Transition.after(function () {\n if (_this.isStart()) {\n Events.emit('run.start', _this.move);\n }\n\n if (_this.isEnd()) {\n Events.emit('run.end', _this.move);\n }\n\n if (_this.isOffset()) {\n _this._o = false;\n Events.emit('run.offset', _this.move);\n }\n\n Events.emit('run.after', _this.move);\n Glide.enable();\n });\n }\n },\n\n /**\n * Calculates current index based on defined move.\n *\n * @return {Number|Undefined}\n */\n calculate: function calculate() {\n var move = this.move,\n length = this.length;\n var steps = move.steps,\n direction = move.direction; // By default assume that size of view is equal to one slide\n\n var viewSize = 1; // While direction is `=` we want jump to\n // a specified index described in steps.\n\n if (direction === '=') {\n // Check if bound is true, \n // as we want to avoid whitespaces.\n if (Glide.settings.bound && toInt(steps) > length) {\n Glide.index = length;\n return;\n }\n\n Glide.index = steps;\n return;\n } // When pattern is equal to `>>` we want\n // fast forward to the last slide.\n\n\n if (direction === '>' && steps === '>') {\n Glide.index = length;\n return;\n } // When pattern is equal to `<<` we want\n // fast forward to the first slide.\n\n\n if (direction === '<' && steps === '<') {\n Glide.index = 0;\n return;\n } // pagination movement\n\n\n if (direction === '|') {\n viewSize = Glide.settings.perView || 1;\n } // we are moving forward\n\n\n if (direction === '>' || direction === '|' && steps === '>') {\n var index = calculateForwardIndex(viewSize);\n\n if (index > length) {\n this._o = true;\n }\n\n Glide.index = normalizeForwardIndex(index, viewSize);\n return;\n } // we are moving backward\n\n\n if (direction === '<' || direction === '|' && steps === '<') {\n var _index = calculateBackwardIndex(viewSize);\n\n if (_index < 0) {\n this._o = true;\n }\n\n Glide.index = normalizeBackwardIndex(_index, viewSize);\n return;\n }\n\n warn(\"Invalid direction pattern [\".concat(direction).concat(steps, \"] has been used\"));\n },\n\n /**\n * Checks if we are on the first slide.\n *\n * @return {Boolean}\n */\n isStart: function isStart() {\n return Glide.index <= 0;\n },\n\n /**\n * Checks if we are on the last slide.\n *\n * @return {Boolean}\n */\n isEnd: function isEnd() {\n return Glide.index >= this.length;\n },\n\n /**\n * Checks if we are making a offset run.\n *\n * @param {String} direction\n * @return {Boolean}\n */\n isOffset: function isOffset() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n if (!direction) {\n return this._o;\n }\n\n if (!this._o) {\n return false;\n } // did we view to the right?\n\n\n if (direction === '|>') {\n return this.move.direction === '|' && this.move.steps === '>';\n } // did we view to the left?\n\n\n if (direction === '|<') {\n return this.move.direction === '|' && this.move.steps === '<';\n }\n\n return this.move.direction === direction;\n },\n\n /**\n * Checks if bound mode is active\n *\n * @return {Boolean}\n */\n isBound: function isBound() {\n return Glide.isType('slider') && Glide.settings.focusAt !== 'center' && Glide.settings.bound;\n }\n };\n /**\n * Returns index value to move forward/to the right\n *\n * @param viewSize\n * @returns {Number}\n */\n\n function calculateForwardIndex(viewSize) {\n var index = Glide.index;\n\n if (Glide.isType('carousel')) {\n return index + viewSize;\n }\n\n return index + (viewSize - index % viewSize);\n }\n /**\n * Normalizes the given forward index based on glide settings, preventing it to exceed certain boundaries\n *\n * @param index\n * @param length\n * @param viewSize\n * @returns {Number}\n */\n\n\n function normalizeForwardIndex(index, viewSize) {\n var length = Run.length;\n\n if (index <= length) {\n return index;\n }\n\n if (Glide.isType('carousel')) {\n return index - (length + 1);\n }\n\n if (Glide.settings.rewind) {\n // bound does funny things with the length, therefor we have to be certain\n // that we are on the last possible index value given by bound\n if (Run.isBound() && !Run.isEnd()) {\n return length;\n }\n\n return 0;\n }\n\n if (Run.isBound()) {\n return length;\n }\n\n return Math.floor(length / viewSize) * viewSize;\n }\n /**\n * Calculates index value to move backward/to the left\n *\n * @param viewSize\n * @returns {Number}\n */\n\n\n function calculateBackwardIndex(viewSize) {\n var index = Glide.index;\n\n if (Glide.isType('carousel')) {\n return index - viewSize;\n } // ensure our back navigation results in the same index as a forward navigation\n // to experience a homogeneous paging\n\n\n var view = Math.ceil(index / viewSize);\n return (view - 1) * viewSize;\n }\n /**\n * Normalizes the given backward index based on glide settings, preventing it to exceed certain boundaries\n *\n * @param index\n * @param length\n * @param viewSize\n * @returns {*}\n */\n\n\n function normalizeBackwardIndex(index, viewSize) {\n var length = Run.length;\n\n if (index >= 0) {\n return index;\n }\n\n if (Glide.isType('carousel')) {\n return index + (length + 1);\n }\n\n if (Glide.settings.rewind) {\n // bound does funny things with the length, therefor we have to be certain\n // that we are on first possible index value before we to rewind to the length given by bound\n if (Run.isBound() && Run.isStart()) {\n return length;\n }\n\n return Math.floor(length / viewSize) * viewSize;\n }\n\n return 0;\n }\n\n define(Run, 'move', {\n /**\n * Gets value of the move schema.\n *\n * @returns {Object}\n */\n get: function get() {\n return this._m;\n },\n\n /**\n * Sets value of the move schema.\n *\n * @returns {Object}\n */\n set: function set(value) {\n var step = value.substr(1);\n this._m = {\n direction: value.substr(0, 1),\n steps: step ? toInt(step) ? toInt(step) : step : 0\n };\n }\n });\n define(Run, 'length', {\n /**\n * Gets value of the running distance based\n * on zero-indexing number of slides.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n var length = Components.Html.slides.length; // If the `bound` option is active, a maximum running distance should be\n // reduced by `perView` and `focusAt` settings. Running distance\n // should end before creating an empty space after instance.\n\n if (this.isBound()) {\n return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt);\n }\n\n return length - 1;\n }\n });\n define(Run, 'offset', {\n /**\n * Gets status of the offsetting flag.\n *\n * @return {Boolean}\n */\n get: function get() {\n return this._o;\n }\n });\n return Run;\n}\n\n/**\n * Returns a current time.\n *\n * @return {Number}\n */\nfunction now() {\n return new Date().getTime();\n}\n\n/**\n * Returns a function, that, when invoked, will only be triggered\n * at most once during a given window of time.\n *\n * @param {Function} func\n * @param {Number} wait\n * @param {Object=} options\n * @return {Function}\n *\n * @see https://github.com/jashkenas/underscore\n */\n\nfunction throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function later() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function throttled() {\n var at = now();\n if (!previous && options.leading === false) previous = at;\n var remaining = wait - (at - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = at;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n\n throttled.cancel = function () {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\nvar MARGIN_TYPE = {\n ltr: ['marginLeft', 'marginRight'],\n rtl: ['marginRight', 'marginLeft']\n};\nfunction Gaps (Glide, Components, Events) {\n var Gaps = {\n /**\n * Applies gaps between slides. First and last\n * slides do not receive it's edge margins.\n *\n * @param {HTMLCollection} slides\n * @return {Void}\n */\n apply: function apply(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n var direction = Components.Direction.value;\n\n if (i !== 0) {\n style[MARGIN_TYPE[direction][0]] = \"\".concat(this.value / 2, \"px\");\n } else {\n style[MARGIN_TYPE[direction][0]] = '';\n }\n\n if (i !== slides.length - 1) {\n style[MARGIN_TYPE[direction][1]] = \"\".concat(this.value / 2, \"px\");\n } else {\n style[MARGIN_TYPE[direction][1]] = '';\n }\n }\n },\n\n /**\n * Removes gaps from the slides.\n *\n * @param {HTMLCollection} slides\n * @returns {Void}\n */\n remove: function remove(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n style.marginLeft = '';\n style.marginRight = '';\n }\n }\n };\n define(Gaps, 'value', {\n /**\n * Gets value of the gap.\n *\n * @returns {Number}\n */\n get: function get() {\n return toInt(Glide.settings.gap);\n }\n });\n define(Gaps, 'grow', {\n /**\n * Gets additional dimensions value caused by gaps.\n * Used to increase width of the slides wrapper.\n *\n * @returns {Number}\n */\n get: function get() {\n return Gaps.value * Components.Sizes.length;\n }\n });\n define(Gaps, 'reductor', {\n /**\n * Gets reduction value caused by gaps.\n * Used to subtract width of the slides.\n *\n * @returns {Number}\n */\n get: function get() {\n var perView = Glide.settings.perView;\n return Gaps.value * (perView - 1) / perView;\n }\n });\n /**\n * Apply calculated gaps:\n * - after building, so slides (including clones) will receive proper margins\n * - on updating via API, to recalculate gaps with new options\n */\n\n Events.on(['build.after', 'update'], throttle(function () {\n Gaps.apply(Components.Html.wrapper.children);\n }, 30));\n /**\n * Remove gaps:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Gaps.remove(Components.Html.wrapper.children);\n });\n return Gaps;\n}\n\n/**\n * Finds siblings nodes of the passed node.\n *\n * @param {Element} node\n * @return {Array}\n */\nfunction siblings(node) {\n if (node && node.parentNode) {\n var n = node.parentNode.firstChild;\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== node) {\n matched.push(n);\n }\n }\n\n return matched;\n }\n\n return [];\n}\n/**\n * Checks if passed node exist and is a valid element.\n *\n * @param {Element} node\n * @return {Boolean}\n */\n\nfunction exist(node) {\n if (node && node instanceof window.HTMLElement) {\n return true;\n }\n\n return false;\n}\n/**\n * Coerces a NodeList to an Array.\n *\n * @param {NodeList} nodeList\n * @return {Array}\n */\n\nfunction toArray(nodeList) {\n return Array.prototype.slice.call(nodeList);\n}\n\nvar TRACK_SELECTOR = '[data-glide-el=\"track\"]';\nfunction Html (Glide, Components, Events) {\n var Html = {\n /**\n * Setup slider HTML nodes.\n *\n * @param {Glide} glide\n */\n mount: function mount() {\n this.root = Glide.selector;\n this.track = this.root.querySelector(TRACK_SELECTOR);\n this.collectSlides();\n },\n\n /**\n * Collect slides\n */\n collectSlides: function collectSlides() {\n this.slides = toArray(this.wrapper.children).filter(function (slide) {\n return !slide.classList.contains(Glide.settings.classes.slide.clone);\n });\n }\n };\n define(Html, 'root', {\n /**\n * Gets node of the glide main element.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._r;\n },\n\n /**\n * Sets node of the glide main element.\n *\n * @return {Object}\n */\n set: function set(r) {\n if (isString(r)) {\n r = document.querySelector(r);\n }\n\n if (exist(r)) {\n Html._r = r;\n } else {\n warn('Root element must be a existing Html node');\n }\n }\n });\n define(Html, 'track', {\n /**\n * Gets node of the glide track with slides.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._t;\n },\n\n /**\n * Sets node of the glide track with slides.\n *\n * @return {Object}\n */\n set: function set(t) {\n if (exist(t)) {\n Html._t = t;\n } else {\n warn(\"Could not find track element. Please use \".concat(TRACK_SELECTOR, \" attribute.\"));\n }\n }\n });\n define(Html, 'wrapper', {\n /**\n * Gets node of the slides wrapper.\n *\n * @return {Object}\n */\n get: function get() {\n return Html.track.children[0];\n }\n });\n /**\n * Add/remove/reorder dynamic slides\n */\n\n Events.on('update', function () {\n Html.collectSlides();\n });\n return Html;\n}\n\nfunction Peek (Glide, Components, Events) {\n var Peek = {\n /**\n * Setups how much to peek based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.peek;\n }\n };\n define(Peek, 'value', {\n /**\n * Gets value of the peek.\n *\n * @returns {Number|Object}\n */\n get: function get() {\n return Peek._v;\n },\n\n /**\n * Sets value of the peek.\n *\n * @param {Number|Object} value\n * @return {Void}\n */\n set: function set(value) {\n if (isObject(value)) {\n value.before = toInt(value.before);\n value.after = toInt(value.after);\n } else {\n value = toInt(value);\n }\n\n Peek._v = value;\n }\n });\n define(Peek, 'reductor', {\n /**\n * Gets reduction value caused by peek.\n *\n * @returns {Number}\n */\n get: function get() {\n var value = Peek.value;\n var perView = Glide.settings.perView;\n\n if (isObject(value)) {\n return value.before / perView + value.after / perView;\n }\n\n return value * 2 / perView;\n }\n });\n /**\n * Recalculate peeking sizes on:\n * - when resizing window to update to proper percents\n */\n\n Events.on(['resize', 'update'], function () {\n Peek.mount();\n });\n return Peek;\n}\n\nfunction Move (Glide, Components, Events) {\n var Move = {\n /**\n * Constructs move component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n this._o = 0;\n },\n\n /**\n * Calculates a movement value based on passed offset and currently active index.\n *\n * @param {Number} offset\n * @return {Void}\n */\n make: function make() {\n var _this = this;\n\n var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n this.offset = offset;\n Events.emit('move', {\n movement: this.value\n });\n Components.Transition.after(function () {\n Events.emit('move.after', {\n movement: _this.value\n });\n });\n }\n };\n define(Move, 'offset', {\n /**\n * Gets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n get: function get() {\n return Move._o;\n },\n\n /**\n * Sets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n set: function set(value) {\n Move._o = !isUndefined(value) ? toInt(value) : 0;\n }\n });\n define(Move, 'translate', {\n /**\n * Gets a raw movement value.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Sizes.slideWidth * Glide.index;\n }\n });\n define(Move, 'value', {\n /**\n * Gets an actual movement value corrected by offset.\n *\n * @return {Number}\n */\n get: function get() {\n var offset = this.offset;\n var translate = this.translate;\n\n if (Components.Direction.is('rtl')) {\n return translate + offset;\n }\n\n return translate - offset;\n }\n });\n /**\n * Make movement to proper slide on:\n * - before build, so glide will start at `startAt` index\n * - on each standard run to move to newly calculated index\n */\n\n Events.on(['build.before', 'run'], function () {\n Move.make();\n });\n return Move;\n}\n\nfunction Sizes (Glide, Components, Events) {\n var Sizes = {\n /**\n * Setups dimensions of slides.\n *\n * @return {Void}\n */\n setupSlides: function setupSlides() {\n var width = \"\".concat(this.slideWidth, \"px\");\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = width;\n }\n },\n\n /**\n * Setups dimensions of slides wrapper.\n *\n * @return {Void}\n */\n setupWrapper: function setupWrapper() {\n Components.Html.wrapper.style.width = \"\".concat(this.wrapperSize, \"px\");\n },\n\n /**\n * Removes applied styles from HTML elements.\n *\n * @returns {Void}\n */\n remove: function remove() {\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = '';\n }\n\n Components.Html.wrapper.style.width = '';\n }\n };\n define(Sizes, 'length', {\n /**\n * Gets count number of the slides.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.slides.length;\n }\n });\n define(Sizes, 'width', {\n /**\n * Gets width value of the slider (visible area).\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.track.offsetWidth;\n }\n });\n define(Sizes, 'wrapperSize', {\n /**\n * Gets size of the slides wrapper.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.slideWidth * Sizes.length + Components.Gaps.grow + Components.Clones.grow;\n }\n });\n define(Sizes, 'slideWidth', {\n /**\n * Gets width value of a single slide.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.width / Glide.settings.perView - Components.Peek.reductor - Components.Gaps.reductor;\n }\n });\n /**\n * Apply calculated glide's dimensions:\n * - before building, so other dimensions (e.g. translate) will be calculated propertly\n * - when resizing window to recalculate sildes dimensions\n * - on updating via API, to calculate dimensions based on new options\n */\n\n Events.on(['build.before', 'resize', 'update'], function () {\n Sizes.setupSlides();\n Sizes.setupWrapper();\n });\n /**\n * Remove calculated glide's dimensions:\n * - on destoting to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Sizes.remove();\n });\n return Sizes;\n}\n\nfunction Build (Glide, Components, Events) {\n var Build = {\n /**\n * Init glide building. Adds classes, sets\n * dimensions and setups initial state.\n *\n * @return {Void}\n */\n mount: function mount() {\n Events.emit('build.before');\n this.typeClass();\n this.activeClass();\n Events.emit('build.after');\n },\n\n /**\n * Adds `type` class to the glide element.\n *\n * @return {Void}\n */\n typeClass: function typeClass() {\n Components.Html.root.classList.add(Glide.settings.classes.type[Glide.settings.type]);\n },\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n activeClass: function activeClass() {\n var classes = Glide.settings.classes;\n var slide = Components.Html.slides[Glide.index];\n\n if (slide) {\n slide.classList.add(classes.slide.active);\n siblings(slide).forEach(function (sibling) {\n sibling.classList.remove(classes.slide.active);\n });\n }\n },\n\n /**\n * Removes HTML classes applied at building.\n *\n * @return {Void}\n */\n removeClasses: function removeClasses() {\n var _Glide$settings$class = Glide.settings.classes,\n type = _Glide$settings$class.type,\n slide = _Glide$settings$class.slide;\n Components.Html.root.classList.remove(type[Glide.settings.type]);\n Components.Html.slides.forEach(function (sibling) {\n sibling.classList.remove(slide.active);\n });\n }\n };\n /**\n * Clear building classes:\n * - on destroying to bring HTML to its initial state\n * - on updating to remove classes before remounting component\n */\n\n Events.on(['destroy', 'update'], function () {\n Build.removeClasses();\n });\n /**\n * Remount component:\n * - on resizing of the window to calculate new dimensions\n * - on updating settings via API\n */\n\n Events.on(['resize', 'update'], function () {\n Build.mount();\n });\n /**\n * Swap active class of current slide:\n * - after each move to the new index\n */\n\n Events.on('move.after', function () {\n Build.activeClass();\n });\n return Build;\n}\n\nfunction Clones (Glide, Components, Events) {\n var Clones = {\n /**\n * Create pattern map and collect slides to be cloned.\n */\n mount: function mount() {\n this.items = [];\n\n if (Glide.isType('carousel')) {\n this.items = this.collect();\n }\n },\n\n /**\n * Collect clones with pattern.\n *\n * @return {[]}\n */\n collect: function collect() {\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var slides = Components.Html.slides;\n var _Glide$settings = Glide.settings,\n perView = _Glide$settings.perView,\n classes = _Glide$settings.classes,\n cloningRatio = _Glide$settings.cloningRatio;\n\n if (slides.length !== 0) {\n var peekIncrementer = +!!Glide.settings.peek;\n var cloneCount = perView + peekIncrementer + Math.round(perView / 2);\n var append = slides.slice(0, cloneCount).reverse();\n var prepend = slides.slice(cloneCount * -1);\n\n for (var r = 0; r < Math.max(cloningRatio, Math.floor(perView / slides.length)); r++) {\n for (var i = 0; i < append.length; i++) {\n var clone = append[i].cloneNode(true);\n clone.classList.add(classes.slide.clone);\n items.push(clone);\n }\n\n for (var _i = 0; _i < prepend.length; _i++) {\n var _clone = prepend[_i].cloneNode(true);\n\n _clone.classList.add(classes.slide.clone);\n\n items.unshift(_clone);\n }\n }\n }\n\n return items;\n },\n\n /**\n * Append cloned slides with generated pattern.\n *\n * @return {Void}\n */\n append: function append() {\n var items = this.items;\n var _Components$Html = Components.Html,\n wrapper = _Components$Html.wrapper,\n slides = _Components$Html.slides;\n var half = Math.floor(items.length / 2);\n var prepend = items.slice(0, half).reverse();\n var append = items.slice(half * -1).reverse();\n var width = \"\".concat(Components.Sizes.slideWidth, \"px\");\n\n for (var i = 0; i < append.length; i++) {\n wrapper.appendChild(append[i]);\n }\n\n for (var _i2 = 0; _i2 < prepend.length; _i2++) {\n wrapper.insertBefore(prepend[_i2], slides[0]);\n }\n\n for (var _i3 = 0; _i3 < items.length; _i3++) {\n items[_i3].style.width = width;\n }\n },\n\n /**\n * Remove all cloned slides.\n *\n * @return {Void}\n */\n remove: function remove() {\n var items = this.items;\n\n for (var i = 0; i < items.length; i++) {\n Components.Html.wrapper.removeChild(items[i]);\n }\n }\n };\n define(Clones, 'grow', {\n /**\n * Gets additional dimensions value caused by clones.\n *\n * @return {Number}\n */\n get: function get() {\n return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones.items.length;\n }\n });\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n\n Events.on('update', function () {\n Clones.remove();\n Clones.mount();\n Clones.append();\n });\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n\n Events.on('build.before', function () {\n if (Glide.isType('carousel')) {\n Clones.append();\n }\n });\n /**\n * Remove clones HTMLElements:\n * - on destroying, to bring HTML to its initial state\n */\n\n Events.on('destroy', function () {\n Clones.remove();\n });\n return Clones;\n}\n\nvar EventsBinder = /*#__PURE__*/function () {\n /**\n * Construct a EventsBinder instance.\n */\n function EventsBinder() {\n var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, EventsBinder);\n\n this.listeners = listeners;\n }\n /**\n * Adds events listeners to arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Function} closure\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n\n _createClass(EventsBinder, [{\n key: \"on\",\n value: function on(events, el, closure) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n this.listeners[events[i]] = closure;\n el.addEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n /**\n * Removes event listeners from arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n }, {\n key: \"off\",\n value: function off(events, el) {\n var capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n el.removeEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n /**\n * Destroy collected listeners.\n *\n * @returns {Void}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n delete this.listeners;\n }\n }]);\n\n return EventsBinder;\n}();\n\nfunction Resize (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Resize = {\n /**\n * Initializes window bindings.\n */\n mount: function mount() {\n this.bind();\n },\n\n /**\n * Binds `rezsize` listener to the window.\n * It's a costly event, so we are debouncing it.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('resize', window, throttle(function () {\n Events.emit('resize');\n }, Glide.settings.throttle));\n },\n\n /**\n * Unbinds listeners from the window.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('resize', window);\n }\n };\n /**\n * Remove bindings from window:\n * - on destroying, to remove added EventListener\n */\n\n Events.on('destroy', function () {\n Resize.unbind();\n Binder.destroy();\n });\n return Resize;\n}\n\nvar VALID_DIRECTIONS = ['ltr', 'rtl'];\nvar FLIPED_MOVEMENTS = {\n '>': '<',\n '<': '>',\n '=': '='\n};\nfunction Direction (Glide, Components, Events) {\n var Direction = {\n /**\n * Setups gap value based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.direction;\n },\n\n /**\n * Resolves pattern based on direction value\n *\n * @param {String} pattern\n * @returns {String}\n */\n resolve: function resolve(pattern) {\n var token = pattern.slice(0, 1);\n\n if (this.is('rtl')) {\n return pattern.split(token).join(FLIPED_MOVEMENTS[token]);\n }\n\n return pattern;\n },\n\n /**\n * Checks value of direction mode.\n *\n * @param {String} direction\n * @returns {Boolean}\n */\n is: function is(direction) {\n return this.value === direction;\n },\n\n /**\n * Applies direction class to the root HTML element.\n *\n * @return {Void}\n */\n addClass: function addClass() {\n Components.Html.root.classList.add(Glide.settings.classes.direction[this.value]);\n },\n\n /**\n * Removes direction class from the root HTML element.\n *\n * @return {Void}\n */\n removeClass: function removeClass() {\n Components.Html.root.classList.remove(Glide.settings.classes.direction[this.value]);\n }\n };\n define(Direction, 'value', {\n /**\n * Gets value of the direction.\n *\n * @returns {Number}\n */\n get: function get() {\n return Direction._v;\n },\n\n /**\n * Sets value of the direction.\n *\n * @param {String} value\n * @return {Void}\n */\n set: function set(value) {\n if (VALID_DIRECTIONS.indexOf(value) > -1) {\n Direction._v = value;\n } else {\n warn('Direction value must be `ltr` or `rtl`');\n }\n }\n });\n /**\n * Clear direction class:\n * - on destroy to bring HTML to its initial state\n * - on update to remove class before reappling bellow\n */\n\n Events.on(['destroy', 'update'], function () {\n Direction.removeClass();\n });\n /**\n * Remount component:\n * - on update to reflect changes in direction value\n */\n\n Events.on('update', function () {\n Direction.mount();\n });\n /**\n * Apply direction class:\n * - before building to apply class for the first time\n * - on updating to reapply direction class that may changed\n */\n\n Events.on(['build.before', 'update'], function () {\n Direction.addClass();\n });\n return Direction;\n}\n\n/**\n * Reflects value of glide movement.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Rtl (Glide, Components) {\n return {\n /**\n * Negates the passed translate if glide is in RTL option.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Components.Direction.is('rtl')) {\n return -translate;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `gap` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Gap (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with number in the `gap` settings.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var multiplier = Math.floor(translate / Components.Sizes.slideWidth);\n return translate + Components.Gaps.value * multiplier;\n }\n };\n}\n\n/**\n * Updates glide movement with width of additional clones width.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Grow (Glide, Components) {\n return {\n /**\n * Adds to the passed translate width of the half of clones.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n return translate + Components.Clones.grow / 2;\n }\n };\n}\n\n/**\n * Updates glide movement with a `peek` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\n\nfunction Peeking (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with a `peek` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Glide.settings.focusAt >= 0) {\n var peek = Components.Peek.value;\n\n if (isObject(peek)) {\n return translate - peek.before;\n }\n\n return translate - peek;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `focusAt` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Focusing (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with index in the `focusAt` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var gap = Components.Gaps.value;\n var width = Components.Sizes.width;\n var focusAt = Glide.settings.focusAt;\n var slideWidth = Components.Sizes.slideWidth;\n\n if (focusAt === 'center') {\n return translate - (width / 2 - slideWidth / 2);\n }\n\n return translate - slideWidth * focusAt - gap * focusAt;\n }\n };\n}\n\n/**\n * Applies diffrent transformers on translate value.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\n\nfunction mutator (Glide, Components, Events) {\n /**\n * Merge instance transformers with collection of default transformers.\n * It's important that the Rtl component be last on the list,\n * so it reflects all previous transformations.\n *\n * @type {Array}\n */\n var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide._t, [Rtl]);\n return {\n /**\n * Piplines translate value with registered transformers.\n *\n * @param {Number} translate\n * @return {Number}\n */\n mutate: function mutate(translate) {\n for (var i = 0; i < TRANSFORMERS.length; i++) {\n var transformer = TRANSFORMERS[i];\n\n if (isFunction(transformer) && isFunction(transformer().modify)) {\n translate = transformer(Glide, Components, Events).modify(translate);\n } else {\n warn('Transformer should be a function that returns an object with `modify()` method');\n }\n }\n\n return translate;\n }\n };\n}\n\nfunction Translate (Glide, Components, Events) {\n var Translate = {\n /**\n * Sets value of translate on HTML element.\n *\n * @param {Number} value\n * @return {Void}\n */\n set: function set(value) {\n var transform = mutator(Glide, Components).mutate(value);\n var translate3d = \"translate3d(\".concat(-1 * transform, \"px, 0px, 0px)\");\n Components.Html.wrapper.style.mozTransform = translate3d; // needed for supported Firefox 10-15\n\n Components.Html.wrapper.style.webkitTransform = translate3d; // needed for supported Chrome 10-35, Safari 5.1-8, and Opera 15-22\n\n Components.Html.wrapper.style.transform = translate3d;\n },\n\n /**\n * Removes value of translate from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transform = '';\n },\n\n /**\n * @return {number}\n */\n getStartIndex: function getStartIndex() {\n var length = Components.Sizes.length;\n var index = Glide.index;\n var perView = Glide.settings.perView;\n\n if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {\n return length + (index - perView);\n } // \"modulo length\" converts an index that equals length to zero\n\n\n return (index + perView) % length;\n },\n\n /**\n * @return {number}\n */\n getTravelDistance: function getTravelDistance() {\n var travelDistance = Components.Sizes.slideWidth * Glide.settings.perView;\n\n if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {\n // reverse travel distance so that we don't have to change subtract operations\n return travelDistance * -1;\n }\n\n return travelDistance;\n }\n };\n /**\n * Set new translate value:\n * - on move to reflect index change\n * - on updating via API to reflect possible changes in options\n */\n\n Events.on('move', function (context) {\n if (!Glide.isType('carousel') || !Components.Run.isOffset()) {\n return Translate.set(context.movement);\n }\n\n Components.Transition.after(function () {\n Events.emit('translate.jump');\n Translate.set(Components.Sizes.slideWidth * Glide.index);\n });\n var startWidth = Components.Sizes.slideWidth * Components.Translate.getStartIndex();\n return Translate.set(startWidth - Components.Translate.getTravelDistance());\n });\n /**\n * Remove translate:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Translate.remove();\n });\n return Translate;\n}\n\nfunction Transition (Glide, Components, Events) {\n /**\n * Holds inactivity status of transition.\n * When true transition is not applied.\n *\n * @type {Boolean}\n */\n var disabled = false;\n var Transition = {\n /**\n * Composes string of the CSS transition.\n *\n * @param {String} property\n * @return {String}\n */\n compose: function compose(property) {\n var settings = Glide.settings;\n\n if (!disabled) {\n return \"\".concat(property, \" \").concat(this.duration, \"ms \").concat(settings.animationTimingFunc);\n }\n\n return \"\".concat(property, \" 0ms \").concat(settings.animationTimingFunc);\n },\n\n /**\n * Sets value of transition on HTML element.\n *\n * @param {String=} property\n * @return {Void}\n */\n set: function set() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n Components.Html.wrapper.style.transition = this.compose(property);\n },\n\n /**\n * Removes value of transition from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transition = '';\n },\n\n /**\n * Runs callback after animation.\n *\n * @param {Function} callback\n * @return {Void}\n */\n after: function after(callback) {\n setTimeout(function () {\n callback();\n }, this.duration);\n },\n\n /**\n * Enable transition.\n *\n * @return {Void}\n */\n enable: function enable() {\n disabled = false;\n this.set();\n },\n\n /**\n * Disable transition.\n *\n * @return {Void}\n */\n disable: function disable() {\n disabled = true;\n this.set();\n }\n };\n define(Transition, 'duration', {\n /**\n * Gets duration of the transition based\n * on currently running animation type.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n\n if (Glide.isType('slider') && Components.Run.offset) {\n return settings.rewindDuration;\n }\n\n return settings.animationDuration;\n }\n });\n /**\n * Set transition `style` value:\n * - on each moving, because it may be cleared by offset move\n */\n\n Events.on('move', function () {\n Transition.set();\n });\n /**\n * Disable transition:\n * - before initial build to avoid transitioning from `0` to `startAt` index\n * - while resizing window and recalculating dimensions\n * - on jumping from offset transition at start and end edges in `carousel` type\n */\n\n Events.on(['build.before', 'resize', 'translate.jump'], function () {\n Transition.disable();\n });\n /**\n * Enable transition:\n * - on each running, because it may be disabled by offset move\n */\n\n Events.on('run', function () {\n Transition.enable();\n });\n /**\n * Remove transition:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Transition.remove();\n });\n return Transition;\n}\n\n/**\n * Test via a getter in the options object to see\n * if the passive property is accessed.\n *\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n */\nvar supportsPassive = false;\n\ntry {\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\nvar supportsPassive$1 = supportsPassive;\n\nvar START_EVENTS = ['touchstart', 'mousedown'];\nvar MOVE_EVENTS = ['touchmove', 'mousemove'];\nvar END_EVENTS = ['touchend', 'touchcancel', 'mouseup', 'mouseleave'];\nvar MOUSE_EVENTS = ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];\nfunction swipe (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var swipeSin = 0;\n var swipeStartX = 0;\n var swipeStartY = 0;\n var disabled = false;\n var capture = supportsPassive$1 ? {\n passive: true\n } : false;\n var Swipe = {\n /**\n * Initializes swipe bindings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bindSwipeStart();\n },\n\n /**\n * Handler for `swipestart` event. Calculates entry points of the user's tap.\n *\n * @param {Object} event\n * @return {Void}\n */\n start: function start(event) {\n if (!disabled && !Glide.disabled) {\n this.disable();\n var swipe = this.touches(event);\n swipeSin = null;\n swipeStartX = toInt(swipe.pageX);\n swipeStartY = toInt(swipe.pageY);\n this.bindSwipeMove();\n this.bindSwipeEnd();\n Events.emit('swipe.start');\n }\n },\n\n /**\n * Handler for `swipemove` event. Calculates user's tap angle and distance.\n *\n * @param {Object} event\n */\n move: function move(event) {\n if (!Glide.disabled) {\n var _Glide$settings = Glide.settings,\n touchAngle = _Glide$settings.touchAngle,\n touchRatio = _Glide$settings.touchRatio,\n classes = _Glide$settings.classes;\n var swipe = this.touches(event);\n var subExSx = toInt(swipe.pageX) - swipeStartX;\n var subEySy = toInt(swipe.pageY) - swipeStartY;\n var powEX = Math.abs(subExSx << 2);\n var powEY = Math.abs(subEySy << 2);\n var swipeHypotenuse = Math.sqrt(powEX + powEY);\n var swipeCathetus = Math.sqrt(powEY);\n swipeSin = Math.asin(swipeCathetus / swipeHypotenuse);\n\n if (swipeSin * 180 / Math.PI < touchAngle) {\n event.stopPropagation();\n Components.Move.make(subExSx * toFloat(touchRatio));\n Components.Html.root.classList.add(classes.dragging);\n Events.emit('swipe.move');\n } else {\n return false;\n }\n }\n },\n\n /**\n * Handler for `swipeend` event. Finitializes user's tap and decides about glide move.\n *\n * @param {Object} event\n * @return {Void}\n */\n end: function end(event) {\n if (!Glide.disabled) {\n var _Glide$settings2 = Glide.settings,\n perSwipe = _Glide$settings2.perSwipe,\n touchAngle = _Glide$settings2.touchAngle,\n classes = _Glide$settings2.classes;\n var swipe = this.touches(event);\n var threshold = this.threshold(event);\n var swipeDistance = swipe.pageX - swipeStartX;\n var swipeDeg = swipeSin * 180 / Math.PI;\n this.enable();\n\n if (swipeDistance > threshold && swipeDeg < touchAngle) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \"<\")));\n } else if (swipeDistance < -threshold && swipeDeg < touchAngle) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \">\")));\n } else {\n // While swipe don't reach distance apply previous transform.\n Components.Move.make();\n }\n\n Components.Html.root.classList.remove(classes.dragging);\n this.unbindSwipeMove();\n this.unbindSwipeEnd();\n Events.emit('swipe.end');\n }\n },\n\n /**\n * Binds swipe's starting event.\n *\n * @return {Void}\n */\n bindSwipeStart: function bindSwipeStart() {\n var _this = this;\n\n var _Glide$settings3 = Glide.settings,\n swipeThreshold = _Glide$settings3.swipeThreshold,\n dragThreshold = _Glide$settings3.dragThreshold;\n\n if (swipeThreshold) {\n Binder.on(START_EVENTS[0], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n\n if (dragThreshold) {\n Binder.on(START_EVENTS[1], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n },\n\n /**\n * Unbinds swipe's starting event.\n *\n * @return {Void}\n */\n unbindSwipeStart: function unbindSwipeStart() {\n Binder.off(START_EVENTS[0], Components.Html.wrapper, capture);\n Binder.off(START_EVENTS[1], Components.Html.wrapper, capture);\n },\n\n /**\n * Binds swipe's moving event.\n *\n * @return {Void}\n */\n bindSwipeMove: function bindSwipeMove() {\n var _this2 = this;\n\n Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function (event) {\n _this2.move(event);\n }, Glide.settings.throttle), capture);\n },\n\n /**\n * Unbinds swipe's moving event.\n *\n * @return {Void}\n */\n unbindSwipeMove: function unbindSwipeMove() {\n Binder.off(MOVE_EVENTS, Components.Html.wrapper, capture);\n },\n\n /**\n * Binds swipe's ending event.\n *\n * @return {Void}\n */\n bindSwipeEnd: function bindSwipeEnd() {\n var _this3 = this;\n\n Binder.on(END_EVENTS, Components.Html.wrapper, function (event) {\n _this3.end(event);\n });\n },\n\n /**\n * Unbinds swipe's ending event.\n *\n * @return {Void}\n */\n unbindSwipeEnd: function unbindSwipeEnd() {\n Binder.off(END_EVENTS, Components.Html.wrapper);\n },\n\n /**\n * Normalizes event touches points accorting to different types.\n *\n * @param {Object} event\n */\n touches: function touches(event) {\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n /**\n * Gets value of minimum swipe distance settings based on event type.\n *\n * @return {Number}\n */\n threshold: function threshold(event) {\n var settings = Glide.settings;\n\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return settings.dragThreshold;\n }\n\n return settings.swipeThreshold;\n },\n\n /**\n * Enables swipe event.\n *\n * @return {self}\n */\n enable: function enable() {\n disabled = false;\n Components.Transition.enable();\n return this;\n },\n\n /**\n * Disables swipe event.\n *\n * @return {self}\n */\n disable: function disable() {\n disabled = true;\n Components.Transition.disable();\n return this;\n }\n };\n /**\n * Add component class:\n * - after initial building\n */\n\n Events.on('build.after', function () {\n Components.Html.root.classList.add(Glide.settings.classes.swipeable);\n });\n /**\n * Remove swiping bindings:\n * - on destroying, to remove added EventListeners\n */\n\n Events.on('destroy', function () {\n Swipe.unbindSwipeStart();\n Swipe.unbindSwipeMove();\n Swipe.unbindSwipeEnd();\n Binder.destroy();\n });\n return Swipe;\n}\n\nfunction images (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Images = {\n /**\n * Binds listener to glide wrapper.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bind();\n },\n\n /**\n * Binds `dragstart` event on wrapper to prevent dragging images.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('dragstart', Components.Html.wrapper, this.dragstart);\n },\n\n /**\n * Unbinds `dragstart` event on wrapper.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('dragstart', Components.Html.wrapper);\n },\n\n /**\n * Event handler. Prevents dragging.\n *\n * @return {Void}\n */\n dragstart: function dragstart(event) {\n event.preventDefault();\n }\n };\n /**\n * Remove bindings from images:\n * - on destroying, to remove added EventListeners\n */\n\n Events.on('destroy', function () {\n Images.unbind();\n Binder.destroy();\n });\n return Images;\n}\n\nfunction anchors (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n /**\n * Holds detaching status of anchors.\n * Prevents detaching of already detached anchors.\n *\n * @private\n * @type {Boolean}\n */\n\n var detached = false;\n /**\n * Holds preventing status of anchors.\n * If `true` redirection after click will be disabled.\n *\n * @private\n * @type {Boolean}\n */\n\n var prevented = false;\n var Anchors = {\n /**\n * Setups a initial state of anchors component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n /**\n * Holds collection of anchors elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._a = Components.Html.wrapper.querySelectorAll('a');\n this.bind();\n },\n\n /**\n * Binds events to anchors inside a track.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('click', Components.Html.wrapper, this.click);\n },\n\n /**\n * Unbinds events attached to anchors inside a track.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('click', Components.Html.wrapper);\n },\n\n /**\n * Handler for click event. Prevents clicks when glide is in `prevent` status.\n *\n * @param {Object} event\n * @return {Void}\n */\n click: function click(event) {\n if (prevented) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n\n /**\n * Detaches anchors click event inside glide.\n *\n * @return {self}\n */\n detach: function detach() {\n prevented = true;\n\n if (!detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = false;\n }\n\n detached = true;\n }\n\n return this;\n },\n\n /**\n * Attaches anchors click events inside glide.\n *\n * @return {self}\n */\n attach: function attach() {\n prevented = false;\n\n if (detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = true;\n }\n\n detached = false;\n }\n\n return this;\n }\n };\n define(Anchors, 'items', {\n /**\n * Gets collection of the arrows HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Anchors._a;\n }\n });\n /**\n * Detach anchors inside slides:\n * - on swiping, so they won't redirect to its `href` attributes\n */\n\n Events.on('swipe.move', function () {\n Anchors.detach();\n });\n /**\n * Attach anchors inside slides:\n * - after swiping and transitions ends, so they can redirect after click again\n */\n\n Events.on('swipe.end', function () {\n Components.Transition.after(function () {\n Anchors.attach();\n });\n });\n /**\n * Unbind anchors inside slides:\n * - on destroying, to bring anchors to its initial state\n */\n\n Events.on('destroy', function () {\n Anchors.attach();\n Anchors.unbind();\n Binder.destroy();\n });\n return Anchors;\n}\n\nvar NAV_SELECTOR = '[data-glide-el=\"controls[nav]\"]';\nvar CONTROLS_SELECTOR = '[data-glide-el^=\"controls\"]';\nvar PREVIOUS_CONTROLS_SELECTOR = \"\".concat(CONTROLS_SELECTOR, \" [data-glide-dir*=\\\"<\\\"]\");\nvar NEXT_CONTROLS_SELECTOR = \"\".concat(CONTROLS_SELECTOR, \" [data-glide-dir*=\\\">\\\"]\");\nfunction controls (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var capture = supportsPassive$1 ? {\n passive: true\n } : false;\n var Controls = {\n /**\n * Inits arrows. Binds events listeners\n * to the arrows HTML elements.\n *\n * @return {Void}\n */\n mount: function mount() {\n /**\n * Collection of navigation HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR);\n /**\n * Collection of controls HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n\n this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR);\n /**\n * Collection of arrow control HTML elements.\n *\n * @private\n * @type {Object}\n */\n\n this._arrowControls = {\n previous: Components.Html.root.querySelectorAll(PREVIOUS_CONTROLS_SELECTOR),\n next: Components.Html.root.querySelectorAll(NEXT_CONTROLS_SELECTOR)\n };\n this.addBindings();\n },\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n setActive: function setActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.addClass(this._n[i].children);\n }\n },\n\n /**\n * Removes active class to current slide.\n *\n * @return {Void}\n */\n removeActive: function removeActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.removeClass(this._n[i].children);\n }\n },\n\n /**\n * Toggles active class on items inside navigation.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n addClass: function addClass(controls) {\n var settings = Glide.settings;\n var item = controls[Glide.index];\n\n if (!item) {\n return;\n }\n\n if (item) {\n item.classList.add(settings.classes.nav.active);\n siblings(item).forEach(function (sibling) {\n sibling.classList.remove(settings.classes.nav.active);\n });\n }\n },\n\n /**\n * Removes active class from active control.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n removeClass: function removeClass(controls) {\n var item = controls[Glide.index];\n\n if (item) {\n item.classList.remove(Glide.settings.classes.nav.active);\n }\n },\n\n /**\n * Calculates, removes or adds `Glide.settings.classes.disabledArrow` class on the control arrows\n */\n setArrowState: function setArrowState() {\n if (Glide.settings.rewind) {\n return;\n }\n\n var next = Controls._arrowControls.next;\n var previous = Controls._arrowControls.previous;\n this.resetArrowState(next, previous);\n\n if (Glide.index === 0) {\n this.disableArrow(previous);\n }\n\n if (Glide.index === Components.Run.length) {\n this.disableArrow(next);\n }\n },\n\n /**\n * Removes `Glide.settings.classes.disabledArrow` from given NodeList elements\n *\n * @param {NodeList[]} lists\n */\n resetArrowState: function resetArrowState() {\n var settings = Glide.settings;\n\n for (var _len = arguments.length, lists = new Array(_len), _key = 0; _key < _len; _key++) {\n lists[_key] = arguments[_key];\n }\n\n lists.forEach(function (list) {\n toArray(list).forEach(function (element) {\n element.classList.remove(settings.classes.arrow.disabled);\n });\n });\n },\n\n /**\n * Adds `Glide.settings.classes.disabledArrow` to given NodeList elements\n *\n * @param {NodeList[]} lists\n */\n disableArrow: function disableArrow() {\n var settings = Glide.settings;\n\n for (var _len2 = arguments.length, lists = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n lists[_key2] = arguments[_key2];\n }\n\n lists.forEach(function (list) {\n toArray(list).forEach(function (element) {\n element.classList.add(settings.classes.arrow.disabled);\n });\n });\n },\n\n /**\n * Adds handles to the each group of controls.\n *\n * @return {Void}\n */\n addBindings: function addBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.bind(this._c[i].children);\n }\n },\n\n /**\n * Removes handles from the each group of controls.\n *\n * @return {Void}\n */\n removeBindings: function removeBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.unbind(this._c[i].children);\n }\n },\n\n /**\n * Binds events to arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n bind: function bind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.on('click', elements[i], this.click);\n Binder.on('touchstart', elements[i], this.click, capture);\n }\n },\n\n /**\n * Unbinds events binded to the arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n unbind: function unbind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.off(['click', 'touchstart'], elements[i]);\n }\n },\n\n /**\n * Handles `click` event on the arrows HTML elements.\n * Moves slider in direction given via the\n * `data-glide-dir` attribute.\n *\n * @param {Object} event\n * @return {void}\n */\n click: function click(event) {\n if (!supportsPassive$1 && event.type === 'touchstart') {\n event.preventDefault();\n }\n\n var direction = event.currentTarget.getAttribute('data-glide-dir');\n Components.Run.make(Components.Direction.resolve(direction));\n }\n };\n define(Controls, 'items', {\n /**\n * Gets collection of the controls HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Controls._c;\n }\n });\n /**\n * Swap active class of current navigation item:\n * - after mounting to set it to initial index\n * - after each move to the new index\n */\n\n Events.on(['mount.after', 'move.after'], function () {\n Controls.setActive();\n });\n /**\n * Add or remove disabled class of arrow elements\n */\n\n Events.on(['mount.after', 'run'], function () {\n Controls.setArrowState();\n });\n /**\n * Remove bindings and HTML Classes:\n * - on destroying, to bring markup to its initial state\n */\n\n Events.on('destroy', function () {\n Controls.removeBindings();\n Controls.removeActive();\n Binder.destroy();\n });\n return Controls;\n}\n\nfunction keyboard (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Keyboard = {\n /**\n * Binds keyboard events on component mount.\n *\n * @return {Void}\n */\n mount: function mount() {\n if (Glide.settings.keyboard) {\n this.bind();\n }\n },\n\n /**\n * Adds keyboard press events.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('keyup', document, this.press);\n },\n\n /**\n * Removes keyboard press events.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('keyup', document);\n },\n\n /**\n * Handles keyboard's arrows press and moving glide foward and backward.\n *\n * @param {Object} event\n * @return {Void}\n */\n press: function press(event) {\n var perSwipe = Glide.settings.perSwipe;\n\n if (event.code === 'ArrowRight') {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \">\")));\n }\n\n if (event.code === 'ArrowLeft') {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \"<\")));\n }\n }\n };\n /**\n * Remove bindings from keyboard:\n * - on destroying to remove added events\n * - on updating to remove events before remounting\n */\n\n Events.on(['destroy', 'update'], function () {\n Keyboard.unbind();\n });\n /**\n * Remount component\n * - on updating to reflect potential changes in settings\n */\n\n Events.on('update', function () {\n Keyboard.mount();\n });\n /**\n * Destroy binder:\n * - on destroying to remove listeners\n */\n\n Events.on('destroy', function () {\n Binder.destroy();\n });\n return Keyboard;\n}\n\nfunction autoplay (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Autoplay = {\n /**\n * Initializes autoplaying and events.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.enable();\n this.start();\n\n if (Glide.settings.hoverpause) {\n this.bind();\n }\n },\n\n /**\n * Enables autoplaying\n *\n * @returns {Void}\n */\n enable: function enable() {\n this._e = true;\n },\n\n /**\n * Disables autoplaying.\n *\n * @returns {Void}\n */\n disable: function disable() {\n this._e = false;\n },\n\n /**\n * Starts autoplaying in configured interval.\n *\n * @param {Boolean|Number} force Run autoplaying with passed interval regardless of `autoplay` settings\n * @return {Void}\n */\n start: function start() {\n var _this = this;\n\n if (!this._e) {\n return;\n }\n\n this.enable();\n\n if (Glide.settings.autoplay) {\n if (isUndefined(this._i)) {\n this._i = setInterval(function () {\n _this.stop();\n\n Components.Run.make('>');\n\n _this.start();\n\n Events.emit('autoplay');\n }, this.time);\n }\n }\n },\n\n /**\n * Stops autorunning of the glide.\n *\n * @return {Void}\n */\n stop: function stop() {\n this._i = clearInterval(this._i);\n },\n\n /**\n * Stops autoplaying while mouse is over glide's area.\n *\n * @return {Void}\n */\n bind: function bind() {\n var _this2 = this;\n\n Binder.on('mouseover', Components.Html.root, function () {\n if (_this2._e) {\n _this2.stop();\n }\n });\n Binder.on('mouseout', Components.Html.root, function () {\n if (_this2._e) {\n _this2.start();\n }\n });\n },\n\n /**\n * Unbind mouseover events.\n *\n * @returns {Void}\n */\n unbind: function unbind() {\n Binder.off(['mouseover', 'mouseout'], Components.Html.root);\n }\n };\n define(Autoplay, 'time', {\n /**\n * Gets time period value for the autoplay interval. Prioritizes\n * times in `data-glide-autoplay` attrubutes over options.\n *\n * @return {Number}\n */\n get: function get() {\n var autoplay = Components.Html.slides[Glide.index].getAttribute('data-glide-autoplay');\n\n if (autoplay) {\n return toInt(autoplay);\n }\n\n return toInt(Glide.settings.autoplay);\n }\n });\n /**\n * Stop autoplaying and unbind events:\n * - on destroying, to clear defined interval\n * - on updating via API to reset interval that may changed\n */\n\n Events.on(['destroy', 'update'], function () {\n Autoplay.unbind();\n });\n /**\n * Stop autoplaying:\n * - before each run, to restart autoplaying\n * - on pausing via API\n * - on destroying, to clear defined interval\n * - while starting a swipe\n * - on updating via API to reset interval that may changed\n */\n\n Events.on(['run.before', 'swipe.start', 'update'], function () {\n Autoplay.stop();\n });\n Events.on(['pause', 'destroy'], function () {\n Autoplay.disable();\n Autoplay.stop();\n });\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n\n Events.on(['run.after', 'swipe.end'], function () {\n Autoplay.start();\n });\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n\n Events.on(['play'], function () {\n Autoplay.enable();\n Autoplay.start();\n });\n /**\n * Remount autoplaying:\n * - on updating via API to reset interval that may changed\n */\n\n Events.on('update', function () {\n Autoplay.mount();\n });\n /**\n * Destroy a binder:\n * - on destroying glide instance to clearup listeners\n */\n\n Events.on('destroy', function () {\n Binder.destroy();\n });\n return Autoplay;\n}\n\n/**\n * Sorts keys of breakpoint object so they will be ordered from lower to bigger.\n *\n * @param {Object} points\n * @returns {Object}\n */\n\nfunction sortBreakpoints(points) {\n if (isObject(points)) {\n return sortKeys(points);\n } else {\n warn(\"Breakpoints option must be an object\");\n }\n\n return {};\n}\n\nfunction breakpoints (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n /**\n * Holds reference to settings.\n *\n * @type {Object}\n */\n\n var settings = Glide.settings;\n /**\n * Holds reference to breakpoints object in settings. Sorts breakpoints\n * from smaller to larger. It is required in order to proper\n * matching currently active breakpoint settings.\n *\n * @type {Object}\n */\n\n var points = sortBreakpoints(settings.breakpoints);\n /**\n * Cache initial settings before overwritting.\n *\n * @type {Object}\n */\n\n var defaults = Object.assign({}, settings);\n var Breakpoints = {\n /**\n * Matches settings for currectly matching media breakpoint.\n *\n * @param {Object} points\n * @returns {Object}\n */\n match: function match(points) {\n if (typeof window.matchMedia !== 'undefined') {\n for (var point in points) {\n if (points.hasOwnProperty(point)) {\n if (window.matchMedia(\"(max-width: \".concat(point, \"px)\")).matches) {\n return points[point];\n }\n }\n }\n }\n\n return defaults;\n }\n };\n /**\n * Overwrite instance settings with currently matching breakpoint settings.\n * This happens right after component initialization.\n */\n\n Object.assign(settings, Breakpoints.match(points));\n /**\n * Update glide with settings of matched brekpoint:\n * - window resize to update slider\n */\n\n Binder.on('resize', window, throttle(function () {\n Glide.settings = mergeOptions(settings, Breakpoints.match(points));\n }, Glide.settings.throttle));\n /**\n * Resort and update default settings:\n * - on reinit via API, so breakpoint matching will be performed with options\n */\n\n Events.on('update', function () {\n points = sortBreakpoints(points);\n defaults = Object.assign({}, settings);\n });\n /**\n * Unbind resize listener:\n * - on destroying, to bring markup to its initial state\n */\n\n Events.on('destroy', function () {\n Binder.off('resize', window);\n });\n return Breakpoints;\n}\n\nvar COMPONENTS = {\n Html: Html,\n Translate: Translate,\n Transition: Transition,\n Direction: Direction,\n Peek: Peek,\n Sizes: Sizes,\n Gaps: Gaps,\n Move: Move,\n Clones: Clones,\n Resize: Resize,\n Build: Build,\n Run: Run\n};\n\nvar Glide = /*#__PURE__*/function (_Core) {\n _inherits(Glide, _Core);\n\n var _super = _createSuper(Glide);\n\n function Glide() {\n _classCallCheck(this, Glide);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Glide, [{\n key: \"mount\",\n value: function mount() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _get(_getPrototypeOf(Glide.prototype), \"mount\", this).call(this, Object.assign({}, COMPONENTS, extensions));\n }\n }]);\n\n return Glide;\n}(Glide$1);\n\nexport { anchors as Anchors, autoplay as Autoplay, breakpoints as Breakpoints, controls as Controls, images as Images, keyboard as Keyboard, swipe as Swipe, Glide as default };\n","import Polyfill from \"../Polyfill\";\r\n\r\nconst sliderRootSelector = '.glide';\r\nconst sliderGroupSelector = '.glide__slides';\r\nconst basicMarkup = `\r\n
\r\n
\r\n
    \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
`;\r\n\r\nexport default class SliderTransformator {\r\n\r\n constructor(sourceGroupElement, sourceElementSelector, doShowNav) {\r\n this.elementSelector = sourceElementSelector;\r\n this.sourceGroupElement = sourceGroupElement;\r\n this.doShowNav = doShowNav;\r\n this.sourceElements = this.getSourceElements();\r\n }\r\n\r\n getSourceElements() {\r\n if (this.sourceGroupElement === null) {\r\n return null;\r\n }\r\n return this.sourceGroupElement.querySelectorAll(this.elementSelector);\r\n }\r\n\r\n transform(numberOfItemsPerSlide) {\r\n if (this.sourceGroupElement === null || this.sourceElements === null) {\r\n return null;\r\n }\r\n\r\n if (this.sourceElements.length === 0) {\r\n return null;\r\n }\r\n // cleanup\r\n let sliderRoot = this.sourceGroupElement.querySelector(sliderRootSelector);\r\n\r\n if (sliderRoot !== null) {\r\n sliderRoot.remove();\r\n }\r\n // transformation\r\n\r\n let sliderMarkup = document.createRange().createContextualFragment(basicMarkup);\r\n if (!this.doShowNav) {\r\n\r\n let controlElement = sliderMarkup.querySelector('.glide__arrows');\r\n\r\n Polyfill.removeHtmlElementNode(controlElement);\r\n }\r\n let sliderGroupElement = sliderMarkup.querySelector(sliderGroupSelector);\r\n let currentSliderElement = null;\r\n\r\n for(let index=0; index 0;\r\n }\r\n });\r\n }\r\n\r\n\r\n this.imageObserver = new IntersectionObserver((entries, imgObserver) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n const lazyImage = entry.target;\r\n if (lazyImage.dataset.src) {\r\n lazyImage.setAttribute('srcset', lazyImage.dataset.src);\r\n\r\n if (!EventgalleryLazyload.knownImageUrls.includes(lazyImage.dataset.src)) {\r\n EventgalleryLazyload.knownImageUrls.push(lazyImage.dataset.src);\r\n lazyImage.classList.add('eventgallery-lazyload-loading');\r\n lazyImage.classList.remove('eventgallery-lazyload-loaded');\r\n\r\n let img = document.createElement('img');\r\n img.src = lazyImage.dataset.src;\r\n img.onload = () => {\r\n lazyImage.classList.remove('eventgallery-lazyload-loading');\r\n lazyImage.classList.add('eventgallery-lazyload-loaded');\r\n }\r\n }\r\n }\r\n }\r\n })\r\n });\r\n }\r\n }\r\n\r\n static watchImages() {\r\n if (!EventgalleryLazyload.instance) {\r\n EventgalleryLazyload.instance = new EventgalleryLazyload();\r\n } else {\r\n return;\r\n }\r\n\r\n let lazyImages = document.querySelectorAll(EventgalleryLazyload.instance.options.elementSelector);\r\n\r\n for (let i = 0; i < lazyImages.length; i++) {\r\n let lazyImage = lazyImages[i];\r\n\r\n if (lazyImage.dataset.src) {\r\n if (EventgalleryLazyload.instance.imageObserver) {\r\n EventgalleryLazyload.instance.imageObserver.observe(lazyImage);\r\n } else {\r\n lazyImage.setAttribute('srcset', lazyImage.dataset.src);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import Anchor from \"../glide_modules/anchor\"\r\nimport Glide, { Controls, Breakpoints, Swipe, Autoplay, Images } from '@glidejs/glide/dist/glide.modular.esm'\r\nimport SliderTransformator from \"./SliderTransformator\";\r\nimport SliderOptions from \"./SliderOptions\";\r\nimport ElementSize from \"../utils/ElementSize\";\r\nimport EventgalleryLazyload from \"../EventgalleryLazyload\";\r\n\r\nexport default class SliderStarter {\r\n\r\n constructor(sourceGroupElement) {\r\n this.sourceGroupElement = sourceGroupElement;\r\n this.sliderTransformator = null;\r\n }\r\n\r\n start() {\r\n\r\n this.sliderOptions = SliderStarter._loadOptions(this.sourceGroupElement);\r\n\r\n let sourceElementSelector = this.sliderOptions.getSlidesElementsSelector();\r\n let autoplay = this.sliderOptions.getAutoPlay();\r\n let doShowNav = this.sliderOptions.doShowNav();\r\n let numberOfItemsPerSlide = ElementSize.calclateNumberOfFittingItemsPerSlide(this.sourceGroupElement, this.sourceGroupElement.querySelector(sourceElementSelector), this.sliderOptions.getNumberOfRowsPerSlide());\r\n\r\n if (null == this.sliderTransformator) {\r\n this.sliderTransformator = new SliderTransformator(this.sourceGroupElement, sourceElementSelector, doShowNav);\r\n }\r\n let rootElement = this.sliderTransformator.transform(numberOfItemsPerSlide);\r\n\r\n if (rootElement === null) {\r\n return;\r\n }\r\n\r\n EventgalleryLazyload.watchImages();\r\n\r\n let glide = new Glide(rootElement, {\r\n type: 'carousel',\r\n perView: 1,\r\n gap: 15,\r\n keyboard: false,\r\n autoplay: autoplay\r\n });\r\n\r\n glide.mount({ Swipe, Controls, Breakpoints, Autoplay, Anchor, Images });\r\n\r\n }\r\n\r\n static _loadOptions(element) {\r\n return new SliderOptions(element);\r\n }\r\n\r\n\r\n}\r\n","/*\r\n Class to manage an image. This can be the img tag or a container. It has to manage glue itself.\r\n */\r\n\r\nimport {calcBorderWidth, getElementHeight, getElementWidth, mergeObjects} from \"../../common/js/Helpers\";\r\nimport SizeCalculator from \"./EventgallerySizeCalculator\";\r\n\r\nexport default class Image{\r\n constructor(image, index, newOptions) {\r\n this.options = mergeObjects(this.options, newOptions);\r\n /**\r\n * HTMLElement\r\n */\r\n this.imageTagContainer = image;\r\n this.index = index;\r\n this.calculatedWidth = 0;\r\n this.calcSize();\r\n }\r\n\r\n calcSize() {\r\n // glue includes everything but the image width/heigt: margin, padding, border\r\n let image = this.imageTagContainer.querySelector('img');\r\n\r\n if (!image) {\r\n return;\r\n }\r\n\r\n let elements = [this.imageTagContainer, image];\r\n\r\n this.glueLeft = calcBorderWidth(elements, ['paddingLeft', 'marginLeft', 'borderLeftWidth']);\r\n this.glueRight = calcBorderWidth(elements, ['paddingRight', 'marginRight', 'borderRightWidth']);\r\n this.glueTop = calcBorderWidth(elements, ['paddingTop', 'marginTop', 'borderTopWidth']);\r\n this.glueBottom = calcBorderWidth(elements, ['paddingBottom', 'marginBottom', 'borderBottomWidth']);\r\n\r\n // get image size from data- attributes\r\n\r\n this.width = parseInt(image.getAttribute(\"data-width\"));\r\n this.height = parseInt(image.getAttribute(\"data-height\"));\r\n\r\n // fallback of data- attributes are not there\r\n if (this.width === undefined) {\r\n this.width = getElementWidth(this.imageTagContainer) - this.glueLeft - this.glueRight;\r\n }\r\n\r\n if (this.height === undefined) {\r\n this.height = getElementHeight(this.imageTagContainer) - this.glueTop - this.glueBottom;\r\n }\r\n };\r\n\r\n /**\r\n * calculates the height of that image container. This includes the image and the gap on top/bottom\r\n *\r\n * @returns number\r\n */\r\n getImageTagHeight() {\r\n return parseFloat(window.getComputedStyle(this.imageTagContainer).height) + this.glueTop + this.glueBottom;\r\n };\r\n\r\n setSize(width, height) {\r\n\r\n let isFlickr = false;\r\n let newWidth = width - this.glueLeft - this.glueRight;\r\n let newHeight = height - this.glueTop - this.glueBottom;\r\n\r\n let ratio = this.width / this.height;\r\n\r\n //console.log(\"the size of the image should be: \"+width+\"x\"+height+\" so I have to set it to: \"+newWidth+\"x\"+newHeight);\r\n //adjust background images\r\n let image = this.imageTagContainer.querySelector('img');\r\n if (!image) {\r\n return;\r\n }\r\n\r\n let sizeCalculator = new SizeCalculator();\r\n\r\n let dataSrc = image.getAttribute('data-src');\r\n if (!dataSrc) {\r\n dataSrc = \"\";\r\n }\r\n\r\n let secret = image.getAttribute('data-secret');\r\n\r\n if (secret !== null) {\r\n let secret_o = image.getAttribute('data-secret_o');\r\n let secret_h = image.getAttribute('data-secret_h');\r\n let secret_k = image.getAttribute('data-secret_k');\r\n let farm = image.getAttribute('data-farm');\r\n let server = image.getAttribute('data-server');\r\n let id = image.getAttribute('data-id');\r\n let imageUrl = sizeCalculator.getFlickrURL(farm, server, secret, secret_h, secret_k, secret_o, id, newWidth, newHeight, this.width, this.height);\r\n\r\n dataSrc = imageUrl;\r\n\r\n isFlickr = true;\r\n\r\n } else {\r\n let googleWidth = sizeCalculator.getSize(newWidth, newHeight, ratio);\r\n dataSrc = sizeCalculator.adjustImageURL(dataSrc, googleWidth);\r\n }\r\n\r\n image.setAttribute('data-src', dataSrc);\r\n image.setAttribute('srcset', dataSrc);\r\n image.style.display = 'block';\r\n image.style.margin = 'auto';\r\n\r\n // IE8 fix: check the width/height first\r\n if (newWidth>0) {\r\n image.style.width = newWidth + 'px';\r\n }\r\n if (newHeight>0) {\r\n image.style.height = newHeight + 'px' ;\r\n }\r\n };\r\n\r\n hide() {\r\n this.imageTagContainer.style.display = 'none';\r\n }\r\n\r\n show() {\r\n this.imageTagContainer.style.display = 'block';\r\n }\r\n}\r\n\r\n","import {mergeObjects} from \"../../common/js/Helpers\";\r\n\r\nexport default class Row {\r\n\r\n /* processes a row is a image list */\r\n constructor(newOptions) {\r\n\r\n this.options = {\r\n maxWidth: 960,\r\n maxHeight: 250,\r\n heightJitter: 0,\r\n adjustHeight: true,\r\n doFillLastRow: true\r\n };\r\n this.options = mergeObjects(this.options, newOptions);\r\n this.isLastRow = false;\r\n this.images = [];\r\n this.width = 0;\r\n if (this.options.heightJitter > 0) {\r\n this.options.maxHeight = Math.floor(this.options.maxHeight + (Math.random() * 2 * this.options.heightJitter) - this.options.heightJitter);\r\n }\r\n };\r\n\r\n add(eventgalleryImage) {\r\n let imageWidth = Math.floor(eventgalleryImage.width / eventgalleryImage.height * this.options.maxHeight);\r\n\r\n // determine the number of images per line. return false if the row is full.\r\n let addThisImage = this.width + imageWidth <= this.options.maxWidth || this.images.length === 0;\r\n\r\n if (!addThisImage) {\r\n let gap = Math.abs(this.options.maxWidth - this.width - imageWidth) / this.options.maxWidth;\r\n if (gap < 0.2) {\r\n addThisImage = true;\r\n }\r\n }\r\n\r\n // determine the number of images per line. return false if the row if full.\r\n if (addThisImage) {\r\n this.images.push(eventgalleryImage);\r\n eventgalleryImage.calculatedWidth = imageWidth;\r\n this.width = this.width + imageWidth;\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n processRow() {\r\n let gap, rowHeight, i;\r\n\r\n gap = this.options.maxWidth - this.width;\r\n\r\n // if there is no gap to fill, we need to resize the last row to fit the image.\r\n if (this.isLastRow && this.options.doFillLastRow === false && gap >= 0) {\r\n if (gap >= 0) {\r\n gap = 0;\r\n }\r\n rowHeight = this.options.maxHeight;\r\n } else {\r\n\r\n rowHeight = this.options.maxHeight / (this.width / this.options.maxWidth);\r\n }\r\n\r\n if (this.options.adjustHeight === false) {\r\n rowHeight = this.options.maxHeight;\r\n }\r\n\r\n for (i = 0; i < this.images.length; i++) {\r\n var image = this.images[i];\r\n\r\n var calculatedWidth = image.calculatedWidth;\r\n\r\n // how much of the gap does this element need to fill?\r\n var gapToClose = (calculatedWidth / this.width) * gap;\r\n\r\n image.setSize(calculatedWidth + gapToClose, rowHeight);\r\n }\r\n }\r\n\r\n}\r\n","import {forEach, getElementWidth, mergeObjects} from \"../../common/js/Helpers\";\r\nimport Image from \"./EventgalleryImage\";\r\nimport Row from \"./EventgalleryRow\";\r\n\r\nexport default class Imagelist {\r\n\r\n constructor(newOptions) {\r\n\r\n this.options = {\r\n rowHeightPercentage: 100,\r\n rowHeight: 150,\r\n rowHeightJitter: 0,\r\n minImageWidth: 150,\r\n // resize the last image to full width\r\n doFillLastRow: false,\r\n // the object where we try to get the width from\r\n imagesetContainer: null,\r\n // the object containing all the images elements. Usually they are retieved with a selector like '.imagelist a',\r\n imageset: null,\r\n firstImageRowHeight: 2,\r\n initComplete: function () {\r\n },\r\n resizeStart: function () {\r\n },\r\n resizeComplete: function () {\r\n }\r\n };\r\n this.images = [];\r\n // used to compare for width changes\r\n this.eventgalleryPageWidth = 0;\r\n // the width of the container. This is kind of tricky since there can be many containers or just one.\r\n this.width = null;\r\n this.options = mergeObjects(this.options, newOptions);\r\n if (undefined !== newOptions) {\r\n this.initialize();\r\n }\r\n };\r\n\r\n initialize() {\r\n\r\n this.width = getElementWidth(this.options.imagesetContainer);\r\n\r\n // save the current width so we don't react on an resize event if not necessary\r\n this.eventgalleryPageWidth = this.width;\r\n\r\n this.images = [];\r\n\r\n forEach(this.options.imageset, (item, index) => {\r\n this.images.push(new Image(item, index));\r\n })\r\n\r\n window.addEventListener('resize', () => {\r\n window.clearTimeout(this.eventgalleryTimer);\r\n\r\n this.eventgalleryTimer = setTimeout(() => {\r\n let new_width = getElementWidth(this.options.imagesetContainer);\r\n this.width = new_width;\r\n if (this.eventgalleryPageWidth !== new_width) {\r\n this.options.resizeStart();\r\n this.eventgalleryPageWidth = new_width;\r\n\r\n this.options.imagesetContainer.style.minHeight = (this.options.rowHeight * this.images.length) + 'px';\r\n\r\n this.processList();\r\n\r\n this.options.imagesetContainer.style.minHeight = '0px';\r\n\r\n this.options.resizeComplete();\r\n }\r\n }, 500);\r\n\r\n });\r\n\r\n if (this.options.imagesetContainer) {\r\n this.options.imagesetContainer.style.minHeight = (this.options.rowHeight * this.images.length) + 'px';\r\n\r\n this.processList();\r\n\r\n this.options.imagesetContainer.style.minHeight = '0px';\r\n }\r\n\r\n //add a tiny timeout. This prevents some issue with lazyload\r\n //where images didn't load since the offset was wrong.\r\n window.setTimeout(this.options.initComplete, 1);\r\n };\r\n\r\n /*calculated the with of an element*/\r\n getRowWidth() {\r\n var rowWidth = this.width;\r\n\r\n /* fix for the internet explorer if width if 45.666% == 699.87px*/\r\n if (window.getComputedStyle) {\r\n rowWidth = Math.floor(parseFloat(window.getComputedStyle(this.options.imagesetContainer).width)) - 1;\r\n } else {\r\n rowWidth = rowWidth - 1;\r\n }\r\n\r\n return rowWidth;\r\n };\r\n\r\n /* processes the image list*/\r\n processList() {\r\n let options;\r\n\r\n /* find out how much space we have*/\r\n let rowWidth = this.getRowWidth();\r\n\r\n\r\n /* get a copy of the image list because we will pop the image during iteration*/\r\n let imagesToProcess = this.images.slice(0);\r\n\r\n if (imagesToProcess.length === 0) {\r\n return;\r\n }\r\n\r\n /* display the first image larger */\r\n if (this.options.firstImageRowHeight > 1) {\r\n let image = imagesToProcess.shift();\r\n\r\n /*if we have a large image, we have to hide it to get the real available space*/\r\n image.hide();\r\n rowWidth = this.getRowWidth();\r\n image.show();\r\n\r\n let imageHeight = this.options.firstImageRowHeight * this.options.rowHeight;\r\n let imageWidth = Math.floor(image.width / image.height * imageHeight);\r\n\r\n if (imageWidth + this.options.minImageWidth >= rowWidth) {\r\n imageWidth = rowWidth;\r\n }\r\n\r\n image.setSize(imageWidth, imageHeight);\r\n\r\n let rowHeightForRightSideImages = this.options.rowHeight;\r\n\r\n // in case the browser zooms to 110%, we need to make sure, the first image is smaller thand\r\n // the images to the right. We do this by checking if there is a height difference between the\r\n // height we want to get and the actual height. If there is one, we add a pixel to the rows\r\n // on the right side.\r\n\r\n // even if the left side is smaller than the right side, the browsers still have an issue with floating.\r\n // Example: left: 499.98px, right: 249,98px*2=499.96 => issue! So we make the left side a tiny bit bigger.\r\n rowHeightForRightSideImages = (imageHeight + 0.05) / this.options.firstImageRowHeight;\r\n if (imageHeight > image.getImageTagHeight()) {\r\n rowHeightForRightSideImages = (imageHeight + 1) / this.options.firstImageRowHeight;\r\n }\r\n\r\n options = {\r\n maxWidth: rowWidth - imageWidth,\r\n maxHeight: rowHeightForRightSideImages,\r\n adjustHeight: false\r\n };\r\n\r\n if (options.maxWidth > 0) {\r\n this.generateRows(imagesToProcess, this.options.firstImageRowHeight, options, false);\r\n }\r\n }\r\n\r\n options = {\r\n maxWidth: rowWidth,\r\n maxHeight: this.options.rowHeight,\r\n heightJitter: this.options.rowHeightJitter,\r\n doFillLastRow: this.options.doFillLastRow\r\n };\r\n\r\n this.generateRows(imagesToProcess, 99999, options, true);\r\n\r\n };\r\n\r\n /**\r\n * @param imagesToProcess\r\n * @param numberOfRowsToCreate\r\n * @param options\r\n * @param finalRows\r\n */\r\n generateRows(imagesToProcess, numberOfRowsToCreate, options, finalRows) {\r\n let currentRow = new Row(options);\r\n\r\n while (imagesToProcess.length > 0 && numberOfRowsToCreate > 0) {\r\n let addSuccessfull = currentRow.add(imagesToProcess[0]);\r\n if (addSuccessfull) {\r\n imagesToProcess.shift();\r\n } else {\r\n currentRow.processRow();\r\n numberOfRowsToCreate--;\r\n if (numberOfRowsToCreate === 0) break;\r\n currentRow = new Row(options);\r\n }\r\n }\r\n\r\n if (finalRows) {\r\n currentRow.isLastRow = true;\r\n }\r\n currentRow.processRow();\r\n };\r\n\r\n}\r\n","import Imagelist from \"./EventgalleryImageList\";\r\nimport {forEach} from \"../../common/js/Helpers\";\r\n\r\nexport default class EventsList extends Imagelist{\r\n constructor(newOptions) {\r\n super(newOptions);\r\n }\r\n\r\n processList() {\r\n let width = this.width;\r\n forEach(this.images, (image) => {\r\n let height = Math.ceil(width * this.options.rowHeightPercentage / 100);\r\n image.setSize(width, height);\r\n })\r\n\r\n };\r\n}\r\n","import Imagelist from \"./EventgalleryImageList\";\r\nimport {forEach} from \"../../common/js/Helpers\";\r\n\r\n/* processes a list of images and tries to resize separately*/\r\nexport default class EventsTiles extends Imagelist {\r\n constructor(newOptions) {\r\n super(newOptions);\r\n }\r\n\r\n processList() {\r\n let width = this.width;\r\n forEach(this.images, (image) => {\r\n let newHeight = Math.round(image.height / image.width * width);\r\n let newWidth = width;\r\n if (this.options.adjustMode == \"height\" && image.height > image.width) {\r\n newHeight = width;\r\n newWidth = Math.round(image.width / image.height * newHeight);\r\n }\r\n image.setSize(newWidth, newHeight);\r\n\r\n });\r\n }\r\n};\r\n","import Imagelist from \"./EventgalleryImageList\";\r\nimport {forEach} from \"../../common/js/Helpers\";\r\n\r\n/**\r\n * Formats a list of images to appear square sized. This class is doing something like the Grid layout for events.\r\n * @param newOptions\r\n * @constructor\r\n */\r\nexport default class SquareList extends Imagelist {\r\n constructor(newOptions) {\r\n super(newOptions);\r\n }\r\n\r\n processList() {\r\n var width = this.width;\r\n forEach(this.images, (image) => {\r\n image.setSize(width, width);\r\n });\r\n };\r\n}\r\n","import {forEach, mergeObjects} from \"../../common/js/Helpers\";\r\n\r\n// create a tile layout and centers images in a tile\r\nexport default class TilesCollection {\r\n\r\n constructor(newOptions) {\r\n\r\n this.options = {\r\n tiles: null, // document.querySelector('#events-tiles .event')\r\n tilesContainer: [] //'#events-tiles .event-tiles'\r\n };\r\n\r\n this.options = mergeObjects(this.options, newOptions);\r\n this.tiles = this.options.tiles;\r\n this.tilesContainer = this.options.tilesContainer;\r\n };\r\n\r\n\r\n calculate() {\r\n let tilesPerRow = 1;\r\n\r\n // reset grid to support resize and media queries\r\n forEach(this.tiles, (tile) => {\r\n tile.style.visibility = 'hidden';\r\n tile.style.position = 'static';\r\n tile.style.float = 'left';\r\n })\r\n\r\n if (!this.tiles.length) {\r\n return;\r\n }\r\n\r\n let firstExampleTile = this.tiles[0];\r\n let columnWidth = firstExampleTile.offsetWidth;\r\n let y = firstExampleTile.offsetTop;\r\n\r\n for (let i = 1; i < this.tiles.length; i++) {\r\n if (this.tiles[i].offsetTop !== y) {\r\n break;\r\n }\r\n tilesPerRow++;\r\n }\r\n\r\n // create array of height values for the columns\r\n let columnHeight = [];\r\n for (let i = 0; i < tilesPerRow; i++) {\r\n columnHeight.push(0);\r\n }\r\n\r\n forEach(this.tiles, (tile)=> {\r\n let smallestColumn = this.getSmallestColumn(columnHeight);\r\n tile.style.left = smallestColumn * columnWidth + 'px';\r\n tile.style.top = columnHeight[smallestColumn] + 'px';\r\n columnHeight[smallestColumn] = columnHeight[smallestColumn] + tile.offsetHeight;\r\n\r\n tile.style.visibility = 'visible';\r\n tile.style.position = 'absolute';\r\n tile.style.float = 'none';\r\n });\r\n\r\n this.tilesContainer.style.height = columnHeight[this.getHighestColumn(columnHeight)] + 'px';\r\n };\r\n\r\n /*\r\n * returns the position of the smallest value in the array\r\n */\r\n getSmallestColumn(columnHeight) {\r\n\r\n let smallestColumnValue = columnHeight[0];\r\n let smallestColumnNumber = 0;\r\n\r\n for (let i = 0; i < columnHeight.length; i++) {\r\n if (smallestColumnValue > columnHeight[i]) {\r\n smallestColumnValue = columnHeight[i];\r\n smallestColumnNumber = i;\r\n }\r\n\r\n }\r\n return smallestColumnNumber;\r\n\r\n };\r\n\r\n /*\r\n * returns the position of the highest value in the array\r\n */\r\n getHighestColumn(columnHeight) {\r\n\r\n let columnValue = columnHeight[0];\r\n let columnNumber = 0;\r\n\r\n for (let i = 0; i < columnHeight.length; i++) {\r\n if (columnValue < columnHeight[i]) {\r\n columnValue = columnHeight[i];\r\n columnNumber = i;\r\n }\r\n\r\n }\r\n return columnNumber;\r\n\r\n };\r\n}\r\n","export default class URLHelper {\r\n\r\n constructor() {\r\n }\r\n\r\n /**\r\n * splits a URL parameter like foo=bar&1=2 into a parameter map\r\n *\r\n * @param urlParameterString\r\n * @returns {Map}\r\n */\r\n static parseURLParameter(urlParameterString) {\r\n let pairs = urlParameterString.split('&');\r\n let parameters = new Map();\r\n\r\n pairs.forEach(pair => {\r\n let splittedPair = pair.split('=');\r\n if (splittedPair.length === 2) {\r\n parameters.set(splittedPair[0], splittedPair[1]);\r\n }\r\n });\r\n\r\n return parameters;\r\n }\r\n\r\n /**\r\n * returns a map of the query string of an full url\r\n *\r\n * @param urlSring\r\n * @returns {URLSearchParams}\r\n */\r\n static getParameters(urlSring) {\r\n let parts = urlSring.split('?');\r\n if (parts.length < 2) {\r\n return new Map();\r\n }\r\n let queryParts = parts[1].split('#');\r\n return URLHelper.parseURLParameter(queryParts[0]);\r\n }\r\n\r\n /**\r\n * returns the url from strings like \"url ('foobar.jpg')\"\r\n *\r\n * @param urlString\r\n * @returns {*}\r\n */\r\n static extractBackgroudUrl(urlString) {\r\n return urlString.replace(/(url\\(|\\)|\"|')/g, '');\r\n }\r\n};\r\n\r\n\r\n","import URLHelper from \"./URLHelper\";\r\n\r\nconst LOADING_MATCHER = 'gp.svg';\r\nconst MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE = 'data-eg-gp-processing';\r\n\r\nexport default class GooglePhotosProcessor {\r\n\r\n\r\n\r\n constructor() {\r\n\r\n this.albumUrl = \"\";\r\n this.albumsUrl = \"\";\r\n\r\n // noinspection JSUnresolvedVariable\r\n if (window.EventGalleryGooglePhotosConfiguration) {\r\n this.albumUrl = window.EventGalleryGooglePhotosConfiguration.albumUrl;\r\n this.albumsUrl = window.EventGalleryGooglePhotosConfiguration.albumsUrl;\r\n }\r\n\r\n this.imageAddedCallback = (e) => this.processImages(e);\r\n document.addEventListener(\"eventgallery-images-added\", this.imageAddedCallback, true);\r\n };\r\n\r\n destroy() {\r\n document.removeEventListener(\"eventgallery-images-added\", this.imageAddedCallback, true);\r\n }\r\n\r\n // noinspection JSUnusedGlobalSymbols\r\n processImages(e) {\r\n let doReloadLightbox = true;\r\n if (e?.detail?.isOverlay) {\r\n doReloadLightbox = false;\r\n }\r\n let albums = this._groupByAlbum(this._collectHTMLElements());\r\n this._markImagesAsInProgress(albums);\r\n this._getMainImageDataFromServer(albums, doReloadLightbox);\r\n }\r\n\r\n // noinspection JSMethodCanBeStatic\r\n /**\r\n * Grabs IMG tag items from the DOM for Google Photos image placeholder.\r\n *\r\n * @returns []\r\n * @private\r\n */\r\n _collectHTMLElements() {\r\n let htmlCollection = document.getElementsByTagName('IMG');\r\n\r\n let foundImageHTMLElements = /** @type {HTMLElement} */[...htmlCollection];\r\n\r\n let result = foundImageHTMLElements.filter(img => {\r\n let imageSrcSet = img.getAttribute('srcset');\r\n let dataSrc = img.getAttribute('data-src');\r\n let src = img.src;\r\n\r\n if (img.getAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE) === '1') {\r\n return false;\r\n }\r\n\r\n return (imageSrcSet && imageSrcSet.indexOf(LOADING_MATCHER)>0)\r\n || (dataSrc && dataSrc.indexOf(LOADING_MATCHER)>0)\r\n || (src && src.indexOf(LOADING_MATCHER)>0);\r\n });\r\n\r\n htmlCollection = document.getElementsByTagName('A');\r\n let foundLinkHTMLElements = /** @type {HTMLElement} */[...htmlCollection];\r\n result = result.concat(foundLinkHTMLElements.filter(a => {\r\n let dataSrc = a.getAttribute('data-src');\r\n let rel = a.getAttribute('rel');\r\n let href = a.getAttribute('href');\r\n\r\n if (a.getAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE) === '1') {\r\n return false;\r\n }\r\n return (href && href.indexOf(LOADING_MATCHER)>0)\r\n || (dataSrc && dataSrc.indexOf(LOADING_MATCHER)>0)\r\n || (rel && rel.indexOf(LOADING_MATCHER)>0);\r\n }));\r\n\r\n return result;\r\n\r\n }\r\n\r\n /**\r\n *\r\n * @param albums {Map}\r\n * @private\r\n */\r\n _markImagesAsInProgress(albums) {\r\n for (let [foldername, album] of albums) {\r\n /**\r\n * @var ParsedHTMLElement parsedHTMLElement\r\n */\r\n album.forEach(parsedHTMLElement => {\r\n parsedHTMLElement.getHTMLElement().setAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE, 1);\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * sorts all found images into a map: key=folder, value=array of\r\n *\r\n * @param htmlElements\r\n * @returns {Map}\r\n * @private\r\n */\r\n _groupByAlbum(htmlElements) {\r\n let albums = new Map();\r\n htmlElements.forEach((imageHTMLElement) => {\r\n let parsedHTMLElement = this._parseHTMLElement(imageHTMLElement);\r\n parsedHTMLElement.updateParameters();\r\n let folder = parsedHTMLElement.parameters.get('folder');\r\n\r\n if (!albums.get(folder)) {\r\n albums.set(folder, []);\r\n }\r\n\r\n albums.get(folder).push(parsedHTMLElement);\r\n });\r\n\r\n return albums;\r\n }\r\n\r\n // noinspection JSMethodCanBeStatic\r\n /**\r\n *\r\n * @param htmlElement\r\n * @returns {ParsedHTMLElement}\r\n * @private\r\n */\r\n _parseHTMLElement(htmlElement) {\r\n if (htmlElement.tagName === 'IMG') {\r\n return new ParsedImageHTMLElement(htmlElement);\r\n }\r\n return new ParsedLinkHTMLElement(htmlElement);\r\n }\r\n\r\n\r\n /**\r\n * starts several requests to the server to determine\r\n *\r\n * @param albums\r\n * @private\r\n */\r\n _getAlbumDataFromServer(albums, doReloadLightbox) {\r\n for (let [foldername, album] of albums) {\r\n this._doAlbumRequest(foldername, album, doReloadLightbox);\r\n }\r\n }\r\n\r\n _doAlbumRequest(foldername, album, doReloadLightbox) {\r\n if (!this.albumUrl || !foldername) return;\r\n fetch(this.albumUrl + '&folder=' + foldername)\r\n .then(response => response.json())\r\n .then(data => this._processAlbumResult(album, data, doReloadLightbox));\r\n }\r\n\r\n _processAlbumResult(album, data, doReloadLightbox) {\r\n this._replaceImages(album, data, doReloadLightbox);\r\n }\r\n\r\n _getMainImageDataFromServer(albums, doReloadLightbox) {\r\n let albumsWithMainImagesOnly = this._filterForAlbumsWithMainImageOnly(albums);\r\n\r\n if (albumsWithMainImagesOnly.size > 0) {\r\n this._doAlbumsRequest(albumsWithMainImagesOnly, albums, doReloadLightbox);\r\n for (let [foldername, album] of albumsWithMainImagesOnly) {\r\n albums.delete(foldername);\r\n }\r\n }\r\n\r\n this._getAlbumDataFromServer(albums, doReloadLightbox);\r\n }\r\n\r\n _doAlbumsRequest(albumsWithMainImagesOnly, albums, doReloadLightbox) {\r\n if (!this.albumsUrl) return;\r\n fetch(this.albumsUrl)\r\n .then(response => response.json())\r\n .then(data => this._processAlbumsResult(albumsWithMainImagesOnly, albums, data, doReloadLightbox));\r\n }\r\n\r\n _processAlbumsResult(albumsWithMainImagesOnly, albums, data, doReloadLightbox) {\r\n for (let [key, album] of albumsWithMainImagesOnly) {\r\n this._replaceImages(album, data[key], doReloadLightbox);\r\n }\r\n this._getAlbumDataFromServer(albums, doReloadLightbox);\r\n }\r\n\r\n // noinspection JSMethodCanBeStatic\r\n _filterForAlbumsWithMainImageOnly(albums) {\r\n let newAlbums = new Map();\r\n for(let [key, album] of albums) {\r\n let mainImages = album.filter(image => image.isMainImage());\r\n\r\n if (mainImages.length> 0 && mainImages.length === album.length) {\r\n newAlbums.set(key, album);\r\n }\r\n }\r\n return newAlbums;\r\n }\r\n\r\n _replaceImages(album, serverResult, doReloadLightbox) {\r\n if (album === undefined || serverResult === undefined) {\r\n return;\r\n }\r\n\r\n album.forEach(parsedImageHTMLElement => {\r\n let imageUrl = serverResult[parsedImageHTMLElement.getFile()];\r\n if (imageUrl === undefined) {\r\n return false;\r\n }\r\n\r\n parsedImageHTMLElement.updateParameters();\r\n parsedImageHTMLElement.replaceElementLinks(imageUrl);\r\n parsedImageHTMLElement.getHTMLElement().setAttribute(MARKER_IMAGE_IS_IN_PROGRESS_ATTRIBUTE, 0);\r\n\r\n });\r\n\r\n if (doReloadLightbox && window.Eventgallery?.lightbox) {\r\n if (Eventgallery.lightbox.isOpen()) {\r\n let link = Eventgallery.lightbox.getCurrentSlide().thumbEl;\r\n Eventgallery.lightbox._gallery.close();\r\n setTimeout(()=>link.click(),500);\r\n }\r\n }\r\n }\r\n};\r\n\r\nclass ParsedHTMLElement {\r\n constructor(htmlElement) {\r\n this.htmlElement = htmlElement;\r\n this.parameters = null;\r\n this.attributeNames = new Set();\r\n }\r\n\r\n updateParametersWithUrl(url) {\r\n let parameterString = url.substring(url.indexOf('#')+1);\r\n this.parameters = URLHelper.parseURLParameter(parameterString);\r\n }\r\n\r\n updateParameters() {\r\n for(let n of this.attributeNames) {\r\n let url = this.getHTMLElement().getAttribute(n);\r\n if (url && url.indexOf(LOADING_MATCHER)>0) {\r\n this.updateParametersWithUrl(url);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n replaceElementLinks(imageUrl) {\r\n\r\n for(let n of this.attributeNames) {\r\n let url = this.getHTMLElement().getAttribute(n);\r\n if (url && url.indexOf(LOADING_MATCHER)>0) {\r\n this.getHTMLElement().setAttribute(n, this.getImageUrl(imageUrl, this.getWidth(url)));\r\n }\r\n }\r\n }\r\n\r\n getHTMLElement() {\r\n return this.htmlElement;\r\n }\r\n\r\n getFolder() {\r\n return this.parameters.get('folder');\r\n }\r\n\r\n getFile() {\r\n return this.parameters.get('file');\r\n }\r\n\r\n\r\n getWidth(url) {\r\n return URLHelper.parseURLParameter(url).get('width');\r\n }\r\n\r\n getImageUrl(imageUrl, width) {\r\n return imageUrl + '=w' + width;\r\n }\r\n\r\n isMainImage() {\r\n return this.parameters.get('m') === '1';\r\n }\r\n}\r\n\r\nclass ParsedLinkHTMLElement extends ParsedHTMLElement {\r\n\r\n constructor(htmlElement) {\r\n super(htmlElement);\r\n this.attributeNames = new Set(['href', 'data-src', 'rel']);\r\n }\r\n\r\n}\r\n\r\nclass ParsedImageHTMLElement extends ParsedHTMLElement{\r\n\r\n constructor(htmlElement) {\r\n super(htmlElement);\r\n this.attributeNames = new Set(['src', 'data-src', 'srcset']);\r\n }\r\n}\r\n","import PhotoSwipeGallery from \"./photoswipe/PhotoSwipeGallery\";\r\nimport Overlay from \"./Overlay\";\r\nimport SliderStarter from \"./slider/SliderStarter\";\r\nimport Polyfill from \"./Polyfill\";\r\nimport EventgalleryLazyload from \"./EventgalleryLazyload\";\r\nimport {forEach} from \"../../common/js/Helpers\";\r\nimport EventsList from \"./EventgalleryEventsList\";\r\nimport Imagelist from \"./EventgalleryImageList\";\r\nimport EventsTiles from \"./EventgalleryEventsTiles\";\r\nimport SquareList from \"./EventgallerySquareList\";\r\nimport TilesCollection from \"./EventgalleryTilesCollection\";\r\nimport GooglePhotosProcessor from \"./EventgalleryGooglePhotosProcessor\";\r\n\r\n(function(Eventgallery){\r\n\t\"use strict\";\r\n\tdocument.addEventListener('DOMContentLoaded', () =>{\r\n\r\n\t\t/*\r\n\t\t* GRID LIST OF EVENTS\r\n\t\t*/\r\n\r\n\t\tfunction triggerLazyLoading() {\r\n\t\t\tEventgalleryLazyload.watchImages();\r\n\t\t}\r\n\r\n\t\tforEach(document.querySelectorAll('.eventgallery-events-gridlist'), (container) => {\r\n\t\t\tlet thumbnails = container.querySelectorAll('.event-thumbnails .event-thumbnail');\r\n\r\n\t let options = {\r\n\t rowHeightPercentage: 100,\r\n\t imagesetContainer: container.querySelector('.event-thumbnails'),\r\n\t imageset: thumbnails,\r\n\t initComplete: function () {\r\n triggerLazyLoading();\r\n\t },\r\n\t resizeStart: function () {\r\n\r\n\t },\r\n\t resizeComplete: function () {\r\n\t\t\t\t\tdocument.dispatchEvent(Polyfill.createNewEvent('scroll', null));\r\n\t }\r\n\t };\r\n\r\n\t // initialize the imagelist\r\n\r\n\t if (thumbnails.length>0) {\r\n\t \tnew EventsList(options);\r\n\t }\r\n });\r\n\r\n\r\n\t\t/*\r\n\t\t* TILE LIST OF EVENTS\r\n\t\t*/\r\n\t\tforEach(document.querySelectorAll('.eventgallery-events-tiles-list'), (container) => {\r\n\r\n\t var options = {\r\n\t imagesetContainer: container.querySelector('.event-thumbnails'),\r\n\t imageset: container.querySelectorAll('.event-thumbnail'),\r\n\t eventgalleryTilesCollection: null,\r\n\t initComplete: function () {\r\n\t\t\t\t\ttriggerLazyLoading();\r\n\r\n\t var tilesOptions = {\r\n\t tiles: container.querySelectorAll('.eventgallery-tiles .eventgallery-tile'),\r\n\t tilesContainer: container.querySelector('.eventgallery-tiles')\r\n\t };\r\n\t options.eventgalleryTilesCollection = new TilesCollection(tilesOptions);\r\n\t options.eventgalleryTilesCollection.calculate();\r\n\t // we need to recalculate the whole thing because it might happen that a font loads\r\n\t // and the size of a tile changes.\r\n\t\t\t\t\twindow.addEventListener('load', function(){\r\n\t options.eventgalleryTilesCollection.calculate();\r\n\t });\r\n\r\n\t },\r\n\t resizeStart: function () {\r\n\r\n\t },\r\n\t resizeComplete: function () {\r\n\t options.eventgalleryTilesCollection.calculate();\r\n\t\t\t\t\tdocument.dispatchEvent(Polyfill.createNewEvent('scroll', null));\r\n\t }\r\n\t };\r\n\r\n\t // initialize the imagelist\r\n\t new EventsTiles(options);\r\n\r\n\t });\r\n\r\n\t\t/*\r\n\t\t* TILES LIST OF IMAGES\r\n\t\t*/\r\n\t\tforEach(document.querySelectorAll('.eventgallery-event-tiles-list'), (container) => {\r\n\t let options = {\r\n\t imagesetContainer: container.querySelector('.event-thumbnails'),\r\n\t imageset: container.querySelectorAll('.event-thumbnail'),\r\n\t adjustMode: 'width',\r\n\t eventgalleryTilesCollection: null,\r\n\t initComplete: function () {\r\n\r\n\t let tilesOptions = {\r\n\t tiles: container.querySelectorAll('.eventgallery-tiles .eventgallery-tile'),\r\n\t tilesContainer: container.querySelector('.eventgallery-tiles')\r\n\t };\r\n\r\n options.eventgalleryTilesCollection = new TilesCollection(tilesOptions);\r\n options.eventgalleryTilesCollection.calculate();\r\n\r\n\t // we need to recalculate the whole thing because it might happen that a font loads\r\n\t // and the size of a tile changes.\r\n\t window.addEventListener('load', function(){\r\n\t options.eventgalleryTilesCollection.calculate();\r\n\t });\r\n\r\n\t\t\t\t\ttriggerLazyLoading();\r\n\r\n\t },\r\n\t resizeStart: function () {\r\n\r\n\t },\r\n\t resizeComplete: function () {\r\n\t options.eventgalleryTilesCollection.calculate();\r\n\t document.dispatchEvent(Polyfill.createNewEvent('scroll', null));\r\n\t }\r\n\t };\r\n\r\n\t // initialize the imagelist\r\n\t new EventsTiles(options);\r\n \t});\r\n\r\n\t\t/*\r\n\t\t* SIMPLE IMAGE LIST\r\n\t\t*/\r\n\t\tforEach(document.querySelectorAll('.eventgallery-event-gridlist'), (container) => {\r\n\t\t\tlet options = {\r\n imagesetContainer: container.querySelector('.event-thumbnails'),\r\n imageset: container.querySelectorAll('.event-thumbnail'),\r\n adjustMode: 'height',\r\n initComplete: function () {\r\n\t\t\t\t\ttriggerLazyLoading();\r\n },\r\n resizeStart: function () {\r\n\r\n },\r\n resizeComplete: function () {\r\n document.dispatchEvent(Polyfill.createNewEvent('scroll', null));\r\n }\r\n };\r\n\r\n // initialize the imagelist\r\n new EventsTiles(options);\r\n\t\t});\r\n\r\n\t\t/*\r\n\t\t* IMAGE LIST\r\n\t\t*/\r\n\t\tforEach(document.querySelectorAll('.eventgallery-imagelist'), (container) => {\r\n let options = {\r\n rowHeight: parseInt(container.getAttribute('data-rowheight')),\r\n rowHeightJitter: parseInt(container.getAttribute('data-rowheightjitter')),\r\n firstImageRowHeight: parseInt(container.getAttribute('data-firstimagerowheight')),\r\n doFillLastRow: container.getAttribute('data-dofilllastrow') === 'true',\r\n imagesetContainer: container,\r\n imageset: container.querySelectorAll('.thumbnail'),\r\n\r\n initComplete: function () {\r\n\t\t\t\t\ttriggerLazyLoading();\r\n },\r\n resizeStart: function () {\r\n\r\n },\r\n resizeComplete: function () {\r\n document.dispatchEvent(Polyfill.createNewEvent('scroll', null));\r\n }\r\n };\r\n\r\n // initialize the imagelist\r\n new Imagelist(options);\r\n });\r\n\r\n\t\t/*\r\n\t\t * SQUARE SIZED LIST OF IMAGES\r\n\t\t */\r\n\t\tforEach(document.querySelectorAll('.eventgallery-event-square-list'), (container) => {\r\n\t\t\tlet options = {\r\n\t\t\t\timagesetContainer: container.querySelector('.event-thumbnails'),\r\n\t\t\t\timageset: container.querySelectorAll('.event-thumbnail'),\r\n\t\t\t\tadjustMode: 'width',\r\n\t\t\t\tinitComplete: function () {\r\n\t\t\t\t\ttriggerLazyLoading();\r\n\t\t\t\t},\r\n\t\t\t\tresizeStart: function () {\r\n\r\n\t\t\t\t},\r\n\t\t\t\tresizeComplete: function () {\r\n\t\t\t\t\tdocument.dispatchEvent(Polyfill.createNewEvent('scroll', null));\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t// initialize the imagelist\r\n\t\t\tnew SquareList(options);\r\n\t\t});\r\n\r\n\r\n /**\r\n\t\t * Lightbox init\r\n * @type {PhotoSwipeGallery}\r\n */\r\n Eventgallery.lightbox = new PhotoSwipeGallery();\r\n Eventgallery.lightbox.initPhotoSwipe();\r\n\r\n /**\r\n\t\t * Single Image Page\r\n */\r\n\t\tforEach(document.querySelectorAll('.singleimage-zoom'), (e) => {\r\n\t\t\te.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tdocument.getElementById('bigimagelink').click();\r\n\t\t\t})\r\n\t\t})\r\n\r\n /**\r\n\t\t * content overlay (example: checkout review page)\r\n */\r\n\t\tforEach(document.querySelectorAll('a[data-eventgallery-overlay]'), (el) => {\r\n\t\t\tlet contentId = el.getAttribute('href');\r\n\t\t\tel.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tlet overlay = new Overlay();\r\n\t\t\t\toverlay.openOverlay(document.getElementById(contentId.replace('#', '')).innerHTML);\r\n\t\t\t});\r\n\t\t})\r\n\r\n let googlePhotosProcessor = new GooglePhotosProcessor();\r\n document.dispatchEvent(Polyfill.createNewEvent('eventgallery-images-added'));\r\n\r\n\r\n let sliderElements = document.querySelectorAll('div[data-slider=\"1\"]');\r\n\r\n\r\n for(let i=0; i {\r\n \tif (timer != null) {\r\n \t\tclearTimeout(timer);\r\n\t\t\t\t}\r\n \ttimer = setTimeout(() => sliderStarter.start(), 1000);\r\n }, false);\r\n }\r\n\r\n\r\n\r\n }); //end domready\r\n})(Eventgallery);\r\n\r\n","\r\n/* determines the size of an image so a image server can deliver it. */\r\n\r\nimport {mergeObjects} from \"../../common/js/Helpers\";\r\n\r\nexport default class SizeCalculator {\r\n constructor(newOptions) {\r\n this.options = {\r\n // to be able to handle internal and google photos images, we need to restrict the availabe image sizes.\r\n availableSizes: [48, 104, 160, 288, 320, 400, 512, 640, 720, 800, 1024, 1280, 1440],\r\n flickrSizes: {100 : 't', 240 : 'm', 320 : 'n', 500 : '-', 640 : 'z', 800 : 'c', 1024 : 'b', 1600 : 'h', 2048 : 'k'}\r\n\r\n };\r\n this.options = mergeObjects(this.options, newOptions);\r\n }\r\n\r\n adjustImageURL(url, size) {\r\n\r\n // only needed for Google Photos\r\n url = url.replace(/=w(\\d+)$/, '=w' + size);\r\n\r\n // neded for S3 image structure\r\n url = url.replace(/\\/s(\\d*)\\//, '/s' + size + '/');\r\n url = url.replace(/\\/s(\\d*)-c\\//, '/s' + size + '-c/');\r\n\r\n // used by Event Gallery\r\n url = url.replace(/width=(\\d+)/, 'width=' + size);\r\n url = url.replace(/\\/mainimage_nocrop_(\\d+)_/, '/mainimage_nocrop_' + size + '_');\r\n url = url.replace(/\\/nocrop_(\\d+)_/, '/nocrop_' + size + '_');\r\n\r\n return url;\r\n };\r\n\r\n\r\n getFlickrURL(farm, server, secret, secret_h, secret_k, secret_o, id, width, height, originalwidth, originalheight) {\r\n let longSideSize,\r\n originalLongSideSize,\r\n sizeCode,\r\n secretString,\r\n sizeString;\r\n\r\n let minSizes = this.getMinSizes(width, height, originalwidth, originalheight);\r\n\r\n\r\n if (minSizes.width > minSizes.height) {\r\n longSideSize = minSizes.width;\r\n originalLongSideSize = originalwidth;\r\n } else {\r\n longSideSize = minSizes.height;\r\n originalLongSideSize = originalheight;\r\n }\r\n\r\n sizeCode = 'o';\r\n\r\n if (originalLongSideSize >= longSideSize) {\r\n for (let size in this.options.flickrSizes) {\r\n if (size > longSideSize) {\r\n sizeCode = this.options.flickrSizes[size];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (sizeCode === 'o' && secret_o === '') {\r\n sizeCode = 'k'\r\n }\r\n\r\n if (sizeCode === 'k' && secret_k === '') {\r\n sizeCode = 'h'\r\n }\r\n\r\n if (sizeCode === 'h' && secret_h === '') {\r\n sizeCode = 'b'\r\n }\r\n\r\n switch (sizeCode) {\r\n case \"o\":\r\n secretString = secret_o;\r\n break;\r\n case \"h\":\r\n secretString = secret_h;\r\n break;\r\n case \"k\":\r\n secretString = secret_k;\r\n break;\r\n default:\r\n secretString = secret;\r\n }\r\n\r\n sizeString = sizeCode == '-' ? '' : '_' + sizeCode;\r\n return 'https://farm' + farm + '.staticflickr.com/' + server + '/' + id + '_' + secretString + sizeString + '.jpg';\r\n };\r\n\r\n getSize(width, height, ratio) {\r\n\r\n let googleWidth = this.options.availableSizes[0];\r\n\r\n for(let index=0; index < this.options.availableSizes.length; index++) {\r\n let item = \tthis.options.availableSizes[index];\r\n let widthOkay;\r\n let heightOkay;\r\n\r\n if (googleWidth > this.options.availableSizes[0]){\r\n break;\r\n }\r\n\r\n let lastItem = index == this.options.availableSizes.length - 1;\r\n\r\n if (ratio >= 1) {\r\n widthOkay = item > width;\r\n heightOkay = item / ratio > height;\r\n\r\n if ((widthOkay && heightOkay) || lastItem) {\r\n googleWidth = item;\r\n }\r\n } else {\r\n heightOkay = item > height;\r\n widthOkay = item * ratio > width;\r\n\r\n if ((widthOkay && heightOkay) || lastItem) {\r\n googleWidth = item;\r\n }\r\n }\r\n }\r\n\r\n return googleWidth;\r\n };\r\n\r\n /**\r\n * returns the minimum values for height and width to fill the given box size.\r\n * @param boxWidth\r\n * @param boxHeight\r\n * @param originalWidth\r\n * @param originalHeight\r\n */\r\n getMinSizes(boxWidth, boxHeight, originalWidth, originalHeight) {\r\n\r\n\r\n let ratio = originalWidth / originalHeight;\r\n\r\n let height, width;\r\n\r\n if (originalWidth > originalHeight) {\r\n if (boxWidth > boxHeight) {\r\n width = boxWidth;\r\n height = boxWidth / ratio;\r\n if (height < boxHeight) {\r\n height = boxHeight;\r\n width = boxHeight * ratio;\r\n }\r\n } else {\r\n height = boxHeight;\r\n width = boxHeight * ratio;\r\n if (width < boxWidth) {\r\n width = boxWidth;\r\n height = boxHeight * ratio;\r\n }\r\n }\r\n } else {\r\n if (boxWidth > boxHeight) {\r\n width = boxWidth;\r\n height = boxWidth / ratio;\r\n if (height < boxHeight) {\r\n height = boxHeight;\r\n width = boxHeight * ratio;\r\n }\r\n } else {\r\n height = boxHeight;\r\n width = boxHeight * ratio;\r\n if (width < boxWidth) {\r\n width = boxWidth;\r\n height = boxWidth / ratio;\r\n }\r\n }\r\n }\r\n\r\n return {width: Math.ceil(width), height: Math.ceil(height)};\r\n };\r\n}\r\n","import Polyfill from \"./Polyfill\";\r\nimport {insertAndExecute} from \"../../common/js/Helpers\";\r\n\r\n\r\n/**\r\n * this class is the basic modal of Event Gallery.\r\n */\r\nexport default class Overlay {\r\n\r\n /**\r\n * @param parent HTML element to append the modal to.\r\n */\r\n constructor(parent = document.body) {\r\n this.isOpen = false;\r\n this.myDiv = null;\r\n this.background = null;\r\n this.parent = parent\r\n this.onClosed = undefined;\r\n this.onLoad = undefined;\r\n this.repositionTimer = null;\r\n this.windowWidth = 0;\r\n this.onResizeOverlay = () => {\r\n this._setRositionTimer(false);\r\n }\r\n }\r\n\r\n /**\r\n * opens an overlay. The content can be a url or content.\r\n * Url start with http or /\r\n *\r\n * @param dataUrl\r\n */\r\n openOverlay(dataUrl) {\r\n\r\n this.isOpen = true;\r\n this.myDiv = document.createElement('div');\r\n this.myDiv.id = 'eventgallery-overlay';\r\n this.myDiv.innerHTML = '';\r\n this.myDiv.style.opacity = '1 !important';\r\n this.myDiv.style.position = 'absolute';\r\n this.myDiv.style.maxWidth = '100%';\r\n\r\n this.background = document.createElement('div');\r\n this.background.id = 'eventgallery-overlay-background';\r\n this.background.addEventListener('click', () => {\r\n this.closeOverlay()\r\n });\r\n\r\n this.parent.append(this.background);\r\n this.parent.append(this.myDiv);\r\n\r\n this.reposition(true);\r\n\r\n if (dataUrl.startsWith('http') || dataUrl.startsWith('/')) {\r\n Overlay._getRemoteData(dataUrl, (data) => {\r\n this._addContent(data);\r\n })\r\n } else {\r\n this._addContent(`` + dataUrl);\r\n }\r\n\r\n window.addEventListener('resize', this.onResizeOverlay);\r\n }\r\n\r\n /**\r\n * triggers a timeout for the repositioning. This will avoid too much flickering.\r\n *\r\n * @param force\r\n * @private\r\n */\r\n _setRositionTimer(force) {\r\n if (this.repositionTimer) {\r\n clearTimeout(this.repositionTimer)\r\n }\r\n this.repositionTimer = setTimeout(() => this.reposition(force), 500);\r\n }\r\n\r\n static _getRemoteData(url, callback) {\r\n fetch(url)\r\n .then(response => response.text())\r\n .then(data => callback(data));\r\n }\r\n\r\n /**\r\n * moves the given content into the content overlay. Executes the onload method when finished.\r\n *\r\n * @param content\r\n * @private\r\n */\r\n _addContent(content) {\r\n insertAndExecute(this.myDiv, content);\r\n\r\n let elements = this.myDiv.getElementsByClassName('eventgallery-close-overlay');\r\n for(let i=0; i {\r\n e.preventDefault();\r\n this.closeOverlay()\r\n });\r\n }\r\n\r\n this.reposition(true);\r\n\r\n if (this.onLoad !== undefined) {\r\n this.onLoad();\r\n }\r\n\r\n document.dispatchEvent(Polyfill.createNewEvent('eventgallery-images-added', {isOverlay: true}));\r\n }\r\n\r\n /**\r\n * Closes the overlay and fires the onclose method if defined.\r\n */\r\n closeOverlay() {\r\n this.isOpen = false;\r\n\r\n window.removeEventListener('resize', this.onResizeOverlay);\r\n\r\n Polyfill.removeHtmlElementNode(this.myDiv);\r\n Polyfill.removeHtmlElementNode(this.background);\r\n if (this.onClosed !== undefined) {\r\n this.onClosed();\r\n }\r\n }\r\n\r\n /**\r\n * Move the overlay to a good position.\r\n *\r\n * @param force defines if we force the reposition. If set to false, we do it only in case the width of the window changed.\r\n */\r\n reposition(force) {\r\n\r\n if (this.repositionTimer !== null) {\r\n clearTimeout(this.repositionTimer);\r\n }\r\n\r\n let maxWidth = document.body.clientWidth;\r\n\r\n if (!force) {\r\n if (this.windowWidth === maxWidth) {\r\n return;\r\n }\r\n }\r\n\r\n this.windowWidth = maxWidth;\r\n\r\n this.myDiv.style.opacity = 0;\r\n this.myDiv.style.top = 0;\r\n this.myDiv.style.left = 0;\r\n\r\n\r\n let maxHeight = window.innerHeight,\r\n width = this.myDiv.offsetWidth,\r\n height = this.myDiv.offsetHeight,\r\n scrollTop = 0,\r\n left = 0;\r\n\r\n // this allows the overlay to support two different containers:\r\n // 1. the body (which is the default)\r\n // 2. a full page html element which is positioned absolute\r\n // we can make this more complicated later\r\n\r\n if (this.parent == document.body) {\r\n scrollTop = window.pageYOffset\r\n }\r\n\r\n let top = scrollTop;\r\n\r\n if (maxWidth - width > 0) {\r\n left = (maxWidth - width) / 2;\r\n }\r\n\r\n if (maxHeight - height > 0) {\r\n top = scrollTop + (maxHeight - height) / 2;\r\n }\r\n\r\n this.myDiv.style.top = top + 'px';\r\n // there is a margin of 3px in overlay.less => we should not set this more to the left.\r\n if (left > 3) {\r\n this.myDiv.style.left = left + 'px';\r\n }\r\n\r\n this.myDiv.style.opacity = 1;\r\n };\r\n}\r\n","import EventsHandler from \"../utils/eventshandler\";\r\nlet eventsHandler = new EventsHandler();\r\n\r\nexport function addTouch(element:HTMLElement, leftAction:Function, rightAction:Function, tabAction:Function, bottomAction:Function) {\r\n\r\n let hDistance:number;\r\n let vDistance:number;\r\n\r\n\r\n let vSwipe = false;\r\n let hSwipe = false;\r\n let hSwipMinDistance = 50;\r\n let vSwipMinDistance = 50;\r\n let swipMinDistanceForClick = 5;\r\n let startCoords: Touch;\r\n let endCoords: Touch;\r\n\r\n eventsHandler.off('touchstart', element);\r\n eventsHandler.off( 'touchend', element);\r\n\r\n eventsHandler.on('touchstart', element, (event:TouchEvent)=>{\r\n startCoords = event.targetTouches[0];\r\n }, false, true);\r\n\r\n\r\n eventsHandler.on('touchend', element, (event:TouchEvent)=>{\r\n\r\n endCoords = event.changedTouches[0];\r\n if (!endCoords) {\r\n return false;\r\n }\r\n\r\n vDistance = endCoords.pageY - startCoords.pageY;\r\n hDistance = endCoords.pageX - startCoords.pageX;\r\n\r\n\r\n vDistance = endCoords.pageY - startCoords.pageY;\r\n if ( Math.abs( vDistance ) >= vSwipMinDistance ) {\r\n vSwipe = true;\r\n }\r\n\r\n hDistance = endCoords.pageX - startCoords.pageX;\r\n\r\n if ( ! vSwipe && Math.abs( hDistance ) >= hSwipMinDistance ) {\r\n hSwipe = true;\r\n }\r\n\r\n // Swipe to bottom to close\r\n if ( vSwipe ) {\r\n vSwipe = false;\r\n if ( Math.abs( vDistance ) >= 2 * vSwipMinDistance ) {\r\n bottomAction && bottomAction();\r\n }\r\n\r\n } else if ( hSwipe ) {\r\n\r\n hSwipe = false;\r\n\r\n // swipeLeft\r\n if( hDistance >= hSwipMinDistance) {\r\n leftAction && leftAction();\r\n // swipeRight\r\n } else if ( hDistance <= -hSwipMinDistance) {\r\n rightAction && rightAction();\r\n }\r\n\r\n } else if (Math.abs(vDistance)