{"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 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 //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 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 picasa 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 Picasa\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 constructor() {\r\n this.isOpen = false;\r\n this.myDiv = null;\r\n this.background = null;\r\n this.body = document.body;\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.body.append(this.background);\r\n this.body.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 = window.pageYOffset,\r\n left = 0,\r\n 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)