{ "version":3, "file":"blueimp-gallery-bundle.min.js", "lineCount":72, "mappings":"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", "sources":["blueimp-helper.js","blueimp-gallery.js","blueimp-gallery-fullscreen.js","blueimp-gallery-indicator.js","blueimp-gallery-video.js","blueimp-gallery-vimeo.js","blueimp-gallery-youtube.js"], "sourcesContent":["/*\n * blueimp helper JS\n * https://github.com/blueimp/Gallery\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define */\n\n/* eslint-disable no-param-reassign */\n\n;(function () {\n 'use strict'\n\n /**\n * Object.assign polyfill\n *\n * @param {object} obj1 First object\n * @param {object} obj2 Second object\n * @returns {object} Merged object\n */\n function extend(obj1, obj2) {\n var prop\n for (prop in obj2) {\n if (Object.prototype.hasOwnProperty.call(obj2, prop)) {\n obj1[prop] = obj2[prop]\n }\n }\n return obj1\n }\n /**\n * Helper constructor\n *\n * @class\n * @param {*} query jQuery type query argument\n */\n function Helper(query) {\n if (!this || this.find !== Helper.prototype.find) {\n // Called as function instead of as constructor,\n // so we simply return a new instance:\n return new Helper(query)\n }\n this.length = 0\n if (query) {\n if (typeof query === 'string') {\n query = this.find(query)\n }\n if (query.nodeType || query === query.window) {\n // Single HTML element\n this.length = 1\n this[0] = query\n } else {\n // HTML element collection\n var i = query.length\n this.length = i\n while (i) {\n i -= 1\n this[i] = query[i]\n }\n }\n }\n }\n\n Helper.extend = extend\n\n Helper.contains = function (container, element) {\n do {\n element = element.parentNode\n if (element === container) {\n return true\n }\n } while (element)\n return false\n }\n\n Helper.parseJSON = function (string) {\n return JSON.parse(string)\n }\n\n extend(Helper.prototype, {\n find: function (query) {\n var container = this[0] || document\n if (typeof query === 'string') {\n if (container.querySelectorAll) {\n query = container.querySelectorAll(query)\n } else if (query.charAt(0) === '#') {\n query = container.getElementById(query.slice(1))\n } else {\n query = container.getElementsByTagName(query)\n }\n }\n return new Helper(query)\n },\n\n hasClass: function (className) {\n if (!this[0]) return false\n return new RegExp('(?:^|\\\\s+)' + className + '(?:\\\\s+|$)').test(\n this[0].className\n )\n },\n\n addClass: function (className) {\n var i = this.length\n var classNames\n var element\n var j\n while (i) {\n i -= 1\n element = this[i]\n if (!element.className) {\n element.className = className\n continue\n }\n if (!classNames) classNames = className.split(/\\s+/)\n for (j = 0; j < classNames.length; j += 1) {\n if (this.hasClass(classNames[j])) {\n continue\n }\n element.className += ' ' + classNames[j]\n }\n }\n return this\n },\n\n removeClass: function (className) {\n // Match any of the given class names\n var regexp = new RegExp('^(?:' + className.split(/\\s+/).join('|') + ')$')\n // Match any class names and their trailing whitespace\n var matcher = /(\\S+)(?:\\s+|$)/g\n var replacer = function (match, className) {\n // Replace class names that match the given ones\n return regexp.test(className) ? '' : match\n }\n var trimEnd = /\\s+$/\n var i = this.length\n var element\n while (i) {\n i -= 1\n element = this[i]\n element.className = element.className\n .replace(matcher, replacer)\n .replace(trimEnd, '')\n }\n return this\n },\n\n on: function (eventName, handler) {\n var eventNames = eventName.split(/\\s+/)\n var i\n var element\n while (eventNames.length) {\n eventName = eventNames.shift()\n i = this.length\n while (i) {\n i -= 1\n element = this[i]\n if (element.addEventListener) {\n element.addEventListener(eventName, handler, false)\n } else if (element.attachEvent) {\n element.attachEvent('on' + eventName, handler)\n }\n }\n }\n return this\n },\n\n off: function (eventName, handler) {\n var eventNames = eventName.split(/\\s+/)\n var i\n var element\n while (eventNames.length) {\n eventName = eventNames.shift()\n i = this.length\n while (i) {\n i -= 1\n element = this[i]\n if (element.removeEventListener) {\n element.removeEventListener(eventName, handler, false)\n } else if (element.detachEvent) {\n element.detachEvent('on' + eventName, handler)\n }\n }\n }\n return this\n },\n\n empty: function () {\n var i = this.length\n var element\n while (i) {\n i -= 1\n element = this[i]\n while (element.hasChildNodes()) {\n element.removeChild(element.lastChild)\n }\n }\n return this\n },\n\n first: function () {\n return new Helper(this[0])\n }\n })\n\n if (typeof define === 'function' && define.amd) {\n define('blueimp-helper',function () {\n return Helper\n })\n } else {\n window.blueimp = window.blueimp || {}\n window.blueimp.helper = Helper\n }\n})()\n","/*\n * blueimp Gallery JS\n * https://github.com/blueimp/Gallery\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Swipe implementation based on\n * https://github.com/bradbirdsall/Swipe\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, DocumentTouch */\n\n/* eslint-disable no-param-reassign */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define('blueimp-gallery', ['blueimp-helper'], factory)\n } else {\n // Browser globals:\n window.blueimp = window.blueimp || {}\n window.blueimp.Gallery = factory(window.blueimp.helper || window.jQuery)\n }\n})(function ($) {\n 'use strict'\n\n /**\n * Gallery constructor\n *\n * @class\n * @param {Array|NodeList} list Gallery content\n * @param {object} [options] Gallery options\n * @returns {object} Gallery object\n */\n function Gallery(list, options) {\n if (document.body.style.maxHeight === undefined) {\n // document.body.style.maxHeight is undefined on IE6 and lower\n return null\n }\n if (!this || this.options !== Gallery.prototype.options) {\n // Called as function instead of as constructor,\n // so we simply return a new instance:\n return new Gallery(list, options)\n }\n if (!list || !list.length) {\n this.console.log(\n 'blueimp Gallery: No or empty list provided as first argument.',\n list\n )\n return\n }\n this.list = list\n this.num = list.length\n this.initOptions(options)\n this.initialize()\n }\n\n $.extend(Gallery.prototype, {\n options: {\n // The Id, element or querySelector of the gallery widget:\n container: '#blueimp-gallery',\n // The tag name, Id, element or querySelector of the slides container:\n slidesContainer: 'div',\n // The tag name, Id, element or querySelector of the title element:\n titleElement: 'h3',\n // The class to add when the gallery is visible:\n displayClass: 'blueimp-gallery-display',\n // The class to add when the gallery controls are visible:\n controlsClass: 'blueimp-gallery-controls',\n // The class to add when the gallery only displays one element:\n singleClass: 'blueimp-gallery-single',\n // The class to add when the left edge has been reached:\n leftEdgeClass: 'blueimp-gallery-left',\n // The class to add when the right edge has been reached:\n rightEdgeClass: 'blueimp-gallery-right',\n // The class to add when the automatic slideshow is active:\n playingClass: 'blueimp-gallery-playing',\n // The class to add when the browser supports SVG as img (or background):\n svgasimgClass: 'blueimp-gallery-svgasimg',\n // The class to add when the browser supports SMIL (animated SVGs):\n smilClass: 'blueimp-gallery-smil',\n // The class for all slides:\n slideClass: 'slide',\n // The slide class for the active (current index) slide:\n slideActiveClass: 'slide-active',\n // The slide class for the previous (before current index) slide:\n slidePrevClass: 'slide-prev',\n // The slide class for the next (after current index) slide:\n slideNextClass: 'slide-next',\n // The slide class for loading elements:\n slideLoadingClass: 'slide-loading',\n // The slide class for elements that failed to load:\n slideErrorClass: 'slide-error',\n // The class for the content element loaded into each slide:\n slideContentClass: 'slide-content',\n // The class for the \"toggle\" control:\n toggleClass: 'toggle',\n // The class for the \"prev\" control:\n prevClass: 'prev',\n // The class for the \"next\" control:\n nextClass: 'next',\n // The class for the \"close\" control:\n closeClass: 'close',\n // The class for the \"play-pause\" toggle control:\n playPauseClass: 'play-pause',\n // The list object property (or data attribute) with the object type:\n typeProperty: 'type',\n // The list object property (or data attribute) with the object title:\n titleProperty: 'title',\n // The list object property (or data attribute) with the object alt text:\n altTextProperty: 'alt',\n // The list object property (or data attribute) with the object URL:\n urlProperty: 'href',\n // The list object property (or data attribute) with the object srcset:\n srcsetProperty: 'srcset',\n // The list object property (or data attribute) with the object sizes:\n sizesProperty: 'sizes',\n // The list object property (or data attribute) with the object sources:\n sourcesProperty: 'sources',\n // The gallery listens for transitionend events before triggering the\n // opened and closed events, unless the following option is set to false:\n displayTransition: true,\n // Defines if the gallery slides are cleared from the gallery modal,\n // or reused for the next gallery initialization:\n clearSlides: true,\n // Toggle the controls on pressing the Enter key:\n toggleControlsOnEnter: true,\n // Toggle the controls on slide click:\n toggleControlsOnSlideClick: true,\n // Toggle the automatic slideshow interval on pressing the Space key:\n toggleSlideshowOnSpace: true,\n // Navigate the gallery by pressing the ArrowLeft and ArrowRight keys:\n enableKeyboardNavigation: true,\n // Close the gallery on pressing the Escape key:\n closeOnEscape: true,\n // Close the gallery when clicking on an empty slide area:\n closeOnSlideClick: true,\n // Close the gallery by swiping up or down:\n closeOnSwipeUpOrDown: true,\n // Close the gallery when the URL hash changes:\n closeOnHashChange: true,\n // Emulate touch events on mouse-pointer devices such as desktop browsers:\n emulateTouchEvents: true,\n // Stop touch events from bubbling up to ancestor elements of the Gallery:\n stopTouchEventsPropagation: false,\n // Hide the page scrollbars:\n hidePageScrollbars: true,\n // Stops any touches on the container from scrolling the page:\n disableScroll: true,\n // Carousel mode (shortcut for carousel specific options):\n carousel: false,\n // Allow continuous navigation, moving from last to first\n // and from first to last slide:\n continuous: true,\n // Remove elements outside of the preload range from the DOM:\n unloadElements: true,\n // Start with the automatic slideshow:\n startSlideshow: false,\n // Delay in milliseconds between slides for the automatic slideshow:\n slideshowInterval: 5000,\n // The direction the slides are moving: ltr=LeftToRight or rtl=RightToLeft\n slideshowDirection: 'ltr',\n // The starting index as integer.\n // Can also be an object of the given list,\n // or an equal object with the same url property:\n index: 0,\n // The number of elements to load around the current index:\n preloadRange: 2,\n // The transition duration between slide changes in milliseconds:\n transitionDuration: 300,\n // The transition duration for automatic slide changes, set to an integer\n // greater 0 to override the default transition duration:\n slideshowTransitionDuration: 500,\n // The event object for which the default action will be canceled\n // on Gallery initialization (e.g. the click event to open the Gallery):\n event: undefined,\n // Callback function executed when the Gallery is initialized.\n // Is called with the gallery instance as \"this\" object:\n onopen: undefined,\n // Callback function executed when the Gallery has been initialized\n // and the initialization transition has been completed.\n // Is called with the gallery instance as \"this\" object:\n onopened: undefined,\n // Callback function executed on slide change.\n // Is called with the gallery instance as \"this\" object and the\n // current index and slide as arguments:\n onslide: undefined,\n // Callback function executed after the slide change transition.\n // Is called with the gallery instance as \"this\" object and the\n // current index and slide as arguments:\n onslideend: undefined,\n // Callback function executed on slide content load.\n // Is called with the gallery instance as \"this\" object and the\n // slide index and slide element as arguments:\n onslidecomplete: undefined,\n // Callback function executed when the Gallery is about to be closed.\n // Is called with the gallery instance as \"this\" object:\n onclose: undefined,\n // Callback function executed when the Gallery has been closed\n // and the closing transition has been completed.\n // Is called with the gallery instance as \"this\" object:\n onclosed: undefined\n },\n\n carouselOptions: {\n hidePageScrollbars: false,\n toggleControlsOnEnter: false,\n toggleSlideshowOnSpace: false,\n enableKeyboardNavigation: false,\n closeOnEscape: false,\n closeOnSlideClick: false,\n closeOnSwipeUpOrDown: false,\n closeOnHashChange: false,\n disableScroll: false,\n startSlideshow: true\n },\n\n console:\n window.console && typeof window.console.log === 'function'\n ? window.console\n : { log: function () {} },\n\n // Detect touch, transition, transform and background-size support:\n support: (function (element) {\n var support = {\n source: !!window.HTMLSourceElement,\n picture: !!window.HTMLPictureElement,\n svgasimg: document.implementation.hasFeature(\n 'http://www.w3.org/TR/SVG11/feature#Image',\n '1.1'\n ),\n smil:\n !!document.createElementNS &&\n /SVGAnimate/.test(\n document\n .createElementNS('http://www.w3.org/2000/svg', 'animate')\n .toString()\n ),\n touch:\n window.ontouchstart !== undefined ||\n (window.DocumentTouch && document instanceof DocumentTouch)\n }\n var transitions = {\n webkitTransition: {\n end: 'webkitTransitionEnd',\n prefix: '-webkit-'\n },\n MozTransition: {\n end: 'transitionend',\n prefix: '-moz-'\n },\n OTransition: {\n end: 'otransitionend',\n prefix: '-o-'\n },\n transition: {\n end: 'transitionend',\n prefix: ''\n }\n }\n var prop\n for (prop in transitions) {\n if (\n Object.prototype.hasOwnProperty.call(transitions, prop) &&\n element.style[prop] !== undefined\n ) {\n support.transition = transitions[prop]\n support.transition.name = prop\n break\n }\n }\n /**\n * Tests browser support\n */\n function elementTests() {\n var transition = support.transition\n var prop\n var translateZ\n document.body.appendChild(element)\n if (transition) {\n prop = transition.name.slice(0, -9) + 'ransform'\n if (element.style[prop] !== undefined) {\n element.style[prop] = 'translateZ(0)'\n translateZ = window\n .getComputedStyle(element)\n .getPropertyValue(transition.prefix + 'transform')\n support.transform = {\n prefix: transition.prefix,\n name: prop,\n translate: true,\n translateZ: !!translateZ && translateZ !== 'none'\n }\n }\n }\n document.body.removeChild(element)\n }\n if (document.body) {\n elementTests()\n } else {\n $(document).on('DOMContentLoaded', elementTests)\n }\n return support\n // Test element, has to be standard HTML and must not be hidden\n // for the CSS3 tests using window.getComputedStyle to be applicable:\n })(document.createElement('div')),\n\n requestAnimationFrame:\n window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame,\n\n cancelAnimationFrame:\n window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.mozCancelAnimationFrame,\n\n initialize: function () {\n this.initStartIndex()\n if (this.initWidget() === false) {\n return false\n }\n this.initEventListeners()\n // Load the slide at the given index:\n this.onslide(this.index)\n // Manually trigger the slideend event for the initial slide:\n this.ontransitionend()\n // Start the automatic slideshow if applicable:\n if (this.options.startSlideshow) {\n this.play()\n }\n },\n\n slide: function (to, duration) {\n window.clearTimeout(this.timeout)\n var index = this.index\n var direction\n var naturalDirection\n var diff\n if (index === to || this.num === 1) {\n return\n }\n if (!duration) {\n duration = this.options.transitionDuration\n }\n if (this.support.transform) {\n if (!this.options.continuous) {\n to = this.circle(to)\n }\n // 1: backward, -1: forward:\n direction = Math.abs(index - to) / (index - to)\n // Get the actual position of the slide:\n if (this.options.continuous) {\n naturalDirection = direction\n direction = -this.positions[this.circle(to)] / this.slideWidth\n // If going forward but to < index, use to = slides.length + to\n // If going backward but to > index, use to = -slides.length + to\n if (direction !== naturalDirection) {\n to = -direction * this.num + to\n }\n }\n diff = Math.abs(index - to) - 1\n // Move all the slides between index and to in the right direction:\n while (diff) {\n diff -= 1\n this.move(\n this.circle((to > index ? to : index) - diff - 1),\n this.slideWidth * direction,\n 0\n )\n }\n to = this.circle(to)\n this.move(index, this.slideWidth * direction, duration)\n this.move(to, 0, duration)\n if (this.options.continuous) {\n this.move(\n this.circle(to - direction),\n -(this.slideWidth * direction),\n 0\n )\n }\n } else {\n to = this.circle(to)\n this.animate(index * -this.slideWidth, to * -this.slideWidth, duration)\n }\n this.onslide(to)\n },\n\n getIndex: function () {\n return this.index\n },\n\n getNumber: function () {\n return this.num\n },\n\n prev: function () {\n if (this.options.continuous || this.index) {\n this.slide(this.index - 1)\n }\n },\n\n next: function () {\n if (this.options.continuous || this.index < this.num - 1) {\n this.slide(this.index + 1)\n }\n },\n\n play: function (time) {\n var that = this\n var nextIndex =\n this.index + (this.options.slideshowDirection === 'rtl' ? -1 : 1)\n window.clearTimeout(this.timeout)\n this.interval = time || this.options.slideshowInterval\n if (this.elements[this.index] > 1) {\n this.timeout = this.setTimeout(\n (!this.requestAnimationFrame && this.slide) ||\n function (to, duration) {\n that.animationFrameId = that.requestAnimationFrame.call(\n window,\n function () {\n that.slide(to, duration)\n }\n )\n },\n [nextIndex, this.options.slideshowTransitionDuration],\n this.interval\n )\n }\n this.container.addClass(this.options.playingClass)\n this.slidesContainer[0].setAttribute('aria-live', 'off')\n if (this.playPauseElement.length) {\n this.playPauseElement[0].setAttribute('aria-pressed', 'true')\n }\n },\n\n pause: function () {\n window.clearTimeout(this.timeout)\n this.interval = null\n if (this.cancelAnimationFrame) {\n this.cancelAnimationFrame.call(window, this.animationFrameId)\n this.animationFrameId = null\n }\n this.container.removeClass(this.options.playingClass)\n this.slidesContainer[0].setAttribute('aria-live', 'polite')\n if (this.playPauseElement.length) {\n this.playPauseElement[0].setAttribute('aria-pressed', 'false')\n }\n },\n\n add: function (list) {\n var i\n if (!list.concat) {\n // Make a real array out of the list to add:\n list = Array.prototype.slice.call(list)\n }\n if (!this.list.concat) {\n // Make a real array out of the Gallery list:\n this.list = Array.prototype.slice.call(this.list)\n }\n this.list = this.list.concat(list)\n this.num = this.list.length\n if (this.num > 2 && this.options.continuous === null) {\n this.options.continuous = true\n this.container.removeClass(this.options.leftEdgeClass)\n }\n this.container\n .removeClass(this.options.rightEdgeClass)\n .removeClass(this.options.singleClass)\n for (i = this.num - list.length; i < this.num; i += 1) {\n this.addSlide(i)\n this.positionSlide(i)\n }\n this.positions.length = this.num\n this.initSlides(true)\n },\n\n resetSlides: function () {\n this.slidesContainer.empty()\n this.unloadAllSlides()\n this.slides = []\n },\n\n handleClose: function () {\n var options = this.options\n this.destroyEventListeners()\n // Cancel the slideshow:\n this.pause()\n this.container[0].style.display = 'none'\n this.container\n .removeClass(options.displayClass)\n .removeClass(options.singleClass)\n .removeClass(options.leftEdgeClass)\n .removeClass(options.rightEdgeClass)\n if (options.hidePageScrollbars) {\n document.body.style.overflow = this.bodyOverflowStyle\n }\n if (this.options.clearSlides) {\n this.resetSlides()\n }\n if (this.options.onclosed) {\n this.options.onclosed.call(this)\n }\n },\n\n close: function () {\n var that = this\n /**\n * Close handler\n *\n * @param {event} event Close event\n */\n function closeHandler(event) {\n if (event.target === that.container[0]) {\n that.container.off(that.support.transition.end, closeHandler)\n that.handleClose()\n }\n }\n if (this.options.onclose) {\n this.options.onclose.call(this)\n }\n if (this.support.transition && this.options.displayTransition) {\n this.container.on(this.support.transition.end, closeHandler)\n this.container.removeClass(this.options.displayClass)\n } else {\n this.handleClose()\n }\n },\n\n circle: function (index) {\n // Always return a number inside of the slides index range:\n return (this.num + (index % this.num)) % this.num\n },\n\n move: function (index, dist, duration) {\n this.translateX(index, dist, duration)\n this.positions[index] = dist\n },\n\n translate: function (index, x, y, duration) {\n if (!this.slides[index]) return\n var style = this.slides[index].style\n var transition = this.support.transition\n var transform = this.support.transform\n style[transition.name + 'Duration'] = duration + 'ms'\n style[transform.name] =\n 'translate(' +\n x +\n 'px, ' +\n y +\n 'px)' +\n (transform.translateZ ? ' translateZ(0)' : '')\n },\n\n translateX: function (index, x, duration) {\n this.translate(index, x, 0, duration)\n },\n\n translateY: function (index, y, duration) {\n this.translate(index, 0, y, duration)\n },\n\n animate: function (from, to, duration) {\n if (!duration) {\n this.slidesContainer[0].style.left = to + 'px'\n return\n }\n var that = this\n var start = new Date().getTime()\n var timer = window.setInterval(function () {\n var timeElap = new Date().getTime() - start\n if (timeElap > duration) {\n that.slidesContainer[0].style.left = to + 'px'\n that.ontransitionend()\n window.clearInterval(timer)\n return\n }\n that.slidesContainer[0].style.left =\n (to - from) * (Math.floor((timeElap / duration) * 100) / 100) +\n from +\n 'px'\n }, 4)\n },\n\n preventDefault: function (event) {\n if (event.preventDefault) {\n event.preventDefault()\n } else {\n event.returnValue = false\n }\n },\n\n stopPropagation: function (event) {\n if (event.stopPropagation) {\n event.stopPropagation()\n } else {\n event.cancelBubble = true\n }\n },\n\n onresize: function () {\n this.initSlides(true)\n },\n\n onhashchange: function () {\n if (this.options.closeOnHashChange) {\n this.close()\n }\n },\n\n onmousedown: function (event) {\n // Trigger on clicks of the left mouse button only\n // and exclude video & audio elements:\n if (\n event.which &&\n event.which === 1 &&\n event.target.nodeName !== 'VIDEO' &&\n event.target.nodeName !== 'AUDIO'\n ) {\n // Preventing the default mousedown action is required\n // to make touch emulation work with Firefox:\n event.preventDefault()\n ;(event.originalEvent || event).touches = [\n {\n pageX: event.pageX,\n pageY: event.pageY\n }\n ]\n this.ontouchstart(event)\n }\n },\n\n onmousemove: function (event) {\n if (this.touchStart) {\n ;(event.originalEvent || event).touches = [\n {\n pageX: event.pageX,\n pageY: event.pageY\n }\n ]\n this.ontouchmove(event)\n }\n },\n\n onmouseup: function (event) {\n if (this.touchStart) {\n this.ontouchend(event)\n delete this.touchStart\n }\n },\n\n onmouseout: function (event) {\n if (this.touchStart) {\n var target = event.target\n var related = event.relatedTarget\n if (!related || (related !== target && !$.contains(target, related))) {\n this.onmouseup(event)\n }\n }\n },\n\n ontouchstart: function (event) {\n if (this.options.stopTouchEventsPropagation) {\n this.stopPropagation(event)\n }\n // jQuery doesn't copy touch event properties by default,\n // so we have to access the originalEvent object:\n var touch = (event.originalEvent || event).touches[0]\n this.touchStart = {\n // Remember the initial touch coordinates:\n x: touch.pageX,\n y: touch.pageY,\n // Store the time to determine touch duration:\n time: Date.now()\n }\n // Helper variable to detect scroll movement:\n this.isScrolling = undefined\n // Reset delta values:\n this.touchDelta = {}\n },\n\n ontouchmove: function (event) {\n if (this.options.stopTouchEventsPropagation) {\n this.stopPropagation(event)\n }\n // jQuery doesn't copy touch event properties by default,\n // so we have to access the originalEvent object:\n var touches = (event.originalEvent || event).touches\n var touch = touches[0]\n var scale = (event.originalEvent || event).scale\n var index = this.index\n var touchDeltaX\n var indices\n // Ensure this is a one touch swipe and not, e.g. a pinch:\n if (touches.length > 1 || (scale && scale !== 1)) {\n return\n }\n if (this.options.disableScroll) {\n event.preventDefault()\n }\n // Measure change in x and y coordinates:\n this.touchDelta = {\n x: touch.pageX - this.touchStart.x,\n y: touch.pageY - this.touchStart.y\n }\n touchDeltaX = this.touchDelta.x\n // Detect if this is a vertical scroll movement (run only once per touch):\n if (this.isScrolling === undefined) {\n this.isScrolling =\n this.isScrolling ||\n Math.abs(touchDeltaX) < Math.abs(this.touchDelta.y)\n }\n if (!this.isScrolling) {\n // Always prevent horizontal scroll:\n event.preventDefault()\n // Stop the slideshow:\n window.clearTimeout(this.timeout)\n if (this.options.continuous) {\n indices = [this.circle(index + 1), index, this.circle(index - 1)]\n } else {\n // Increase resistance if first slide and sliding left\n // or last slide and sliding right:\n this.touchDelta.x = touchDeltaX =\n touchDeltaX /\n ((!index && touchDeltaX > 0) ||\n (index === this.num - 1 && touchDeltaX < 0)\n ? Math.abs(touchDeltaX) / this.slideWidth + 1\n : 1)\n indices = [index]\n if (index) {\n indices.push(index - 1)\n }\n if (index < this.num - 1) {\n indices.unshift(index + 1)\n }\n }\n while (indices.length) {\n index = indices.pop()\n this.translateX(index, touchDeltaX + this.positions[index], 0)\n }\n } else if (!this.options.carousel) {\n this.translateY(index, this.touchDelta.y + this.positions[index], 0)\n }\n },\n\n ontouchend: function (event) {\n if (this.options.stopTouchEventsPropagation) {\n this.stopPropagation(event)\n }\n var index = this.index\n var absTouchDeltaX = Math.abs(this.touchDelta.x)\n var slideWidth = this.slideWidth\n var duration = Math.ceil(\n (this.options.transitionDuration * (1 - absTouchDeltaX / slideWidth)) /\n 2\n )\n // Determine if slide attempt triggers next/prev slide:\n var isValidSlide = absTouchDeltaX > 20\n // Determine if slide attempt is past start or end:\n var isPastBounds =\n (!index && this.touchDelta.x > 0) ||\n (index === this.num - 1 && this.touchDelta.x < 0)\n var isValidClose =\n !isValidSlide &&\n this.options.closeOnSwipeUpOrDown &&\n Math.abs(this.touchDelta.y) > 20\n var direction\n var indexForward\n var indexBackward\n var distanceForward\n var distanceBackward\n if (this.options.continuous) {\n isPastBounds = false\n }\n // Determine direction of swipe (true: right, false: left):\n direction = this.touchDelta.x < 0 ? -1 : 1\n if (!this.isScrolling) {\n if (isValidSlide && !isPastBounds) {\n indexForward = index + direction\n indexBackward = index - direction\n distanceForward = slideWidth * direction\n distanceBackward = -slideWidth * direction\n if (this.options.continuous) {\n this.move(this.circle(indexForward), distanceForward, 0)\n this.move(this.circle(index - 2 * direction), distanceBackward, 0)\n } else if (indexForward >= 0 && indexForward < this.num) {\n this.move(indexForward, distanceForward, 0)\n }\n this.move(index, this.positions[index] + distanceForward, duration)\n this.move(\n this.circle(indexBackward),\n this.positions[this.circle(indexBackward)] + distanceForward,\n duration\n )\n index = this.circle(indexBackward)\n this.onslide(index)\n } else {\n // Move back into position\n if (this.options.continuous) {\n this.move(this.circle(index - 1), -slideWidth, duration)\n this.move(index, 0, duration)\n this.move(this.circle(index + 1), slideWidth, duration)\n } else {\n if (index) {\n this.move(index - 1, -slideWidth, duration)\n }\n this.move(index, 0, duration)\n if (index < this.num - 1) {\n this.move(index + 1, slideWidth, duration)\n }\n }\n }\n } else {\n if (isValidClose) {\n this.close()\n } else {\n // Move back into position\n this.translateY(index, 0, duration)\n }\n }\n },\n\n ontouchcancel: function (event) {\n if (this.touchStart) {\n this.ontouchend(event)\n delete this.touchStart\n }\n },\n\n ontransitionend: function (event) {\n var slide = this.slides[this.index]\n if (!event || slide === event.target) {\n if (this.interval) {\n this.play()\n }\n this.setTimeout(this.options.onslideend, [this.index, slide])\n }\n },\n\n oncomplete: function (event) {\n var target = event.target || event.srcElement\n var parent = target && target.parentNode\n var index\n if (!target || !parent) {\n return\n }\n index = this.getNodeIndex(parent)\n $(parent).removeClass(this.options.slideLoadingClass)\n if (event.type === 'error') {\n $(parent).addClass(this.options.slideErrorClass)\n this.elements[index] = 3 // Fail\n } else {\n this.elements[index] = 2 // Done\n }\n // Fix for IE7's lack of support for percentage max-height:\n if (target.clientHeight > this.container[0].clientHeight) {\n target.style.maxHeight = this.container[0].clientHeight\n }\n if (this.interval && this.slides[this.index] === parent) {\n this.play()\n }\n this.setTimeout(this.options.onslidecomplete, [index, parent])\n },\n\n onload: function (event) {\n this.oncomplete(event)\n },\n\n onerror: function (event) {\n this.oncomplete(event)\n },\n\n onkeydown: function (event) {\n switch (event.which || event.keyCode) {\n case 13: // Enter\n if (this.options.toggleControlsOnEnter) {\n this.preventDefault(event)\n this.toggleControls()\n }\n break\n case 27: // Escape\n if (this.options.closeOnEscape) {\n this.close()\n // prevent Escape from closing other things\n event.stopImmediatePropagation()\n }\n break\n case 32: // Space\n if (this.options.toggleSlideshowOnSpace) {\n this.preventDefault(event)\n this.toggleSlideshow()\n }\n break\n case 37: // ArrowLeft\n if (this.options.enableKeyboardNavigation) {\n this.preventDefault(event)\n this.prev()\n }\n break\n case 39: // ArrowRight\n if (this.options.enableKeyboardNavigation) {\n this.preventDefault(event)\n this.next()\n }\n break\n }\n },\n\n handleClick: function (event) {\n var options = this.options\n var target = event.target || event.srcElement\n var parent = target.parentNode\n /**\n * Checks if the target from the close has the given class\n *\n * @param {string} className Class name\n * @returns {boolean} Returns true if the target has the class name\n */\n function isTarget(className) {\n return $(target).hasClass(className) || $(parent).hasClass(className)\n }\n if (isTarget(options.toggleClass)) {\n // Click on \"toggle\" control\n this.preventDefault(event)\n this.toggleControls()\n } else if (isTarget(options.prevClass)) {\n // Click on \"prev\" control\n this.preventDefault(event)\n this.prev()\n } else if (isTarget(options.nextClass)) {\n // Click on \"next\" control\n this.preventDefault(event)\n this.next()\n } else if (isTarget(options.closeClass)) {\n // Click on \"close\" control\n this.preventDefault(event)\n this.close()\n } else if (isTarget(options.playPauseClass)) {\n // Click on \"play-pause\" control\n this.preventDefault(event)\n this.toggleSlideshow()\n } else if (parent === this.slidesContainer[0]) {\n // Click on slide background\n if (options.closeOnSlideClick) {\n this.preventDefault(event)\n this.close()\n } else if (options.toggleControlsOnSlideClick) {\n this.preventDefault(event)\n this.toggleControls()\n }\n } else if (\n parent.parentNode &&\n parent.parentNode === this.slidesContainer[0]\n ) {\n // Click on displayed element\n if (options.toggleControlsOnSlideClick) {\n this.preventDefault(event)\n this.toggleControls()\n }\n }\n },\n\n onclick: function (event) {\n if (\n this.options.emulateTouchEvents &&\n this.touchDelta &&\n (Math.abs(this.touchDelta.x) > 20 || Math.abs(this.touchDelta.y) > 20)\n ) {\n delete this.touchDelta\n return\n }\n return this.handleClick(event)\n },\n\n updateEdgeClasses: function (index) {\n if (!index) {\n this.container.addClass(this.options.leftEdgeClass)\n } else {\n this.container.removeClass(this.options.leftEdgeClass)\n }\n if (index === this.num - 1) {\n this.container.addClass(this.options.rightEdgeClass)\n } else {\n this.container.removeClass(this.options.rightEdgeClass)\n }\n },\n\n updateActiveSlide: function (oldIndex, newIndex) {\n var slides = this.slides\n var options = this.options\n var list = [\n {\n index: newIndex,\n method: 'addClass',\n hidden: false\n },\n {\n index: oldIndex,\n method: 'removeClass',\n hidden: true\n }\n ]\n var item, index\n while (list.length) {\n item = list.pop()\n $(slides[item.index])[item.method](options.slideActiveClass)\n index = this.circle(item.index - 1)\n if (options.continuous || index < item.index) {\n $(slides[index])[item.method](options.slidePrevClass)\n }\n index = this.circle(item.index + 1)\n if (options.continuous || index > item.index) {\n $(slides[index])[item.method](options.slideNextClass)\n }\n }\n this.slides[oldIndex].setAttribute('aria-hidden', 'true')\n this.slides[newIndex].removeAttribute('aria-hidden')\n },\n\n handleSlide: function (oldIndex, newIndex) {\n if (!this.options.continuous) {\n this.updateEdgeClasses(newIndex)\n }\n this.updateActiveSlide(oldIndex, newIndex)\n this.loadElements(newIndex)\n if (this.options.unloadElements) {\n this.unloadElements(oldIndex, newIndex)\n }\n this.setTitle(newIndex)\n },\n\n onslide: function (index) {\n this.handleSlide(this.index, index)\n this.index = index\n this.setTimeout(this.options.onslide, [index, this.slides[index]])\n },\n\n setTitle: function (index) {\n var firstChild = this.slides[index].firstChild\n var text = firstChild.title || firstChild.alt\n var titleElement = this.titleElement\n if (titleElement.length) {\n this.titleElement.empty()\n if (text) {\n titleElement[0].appendChild(document.createTextNode(text))\n }\n }\n },\n\n setTimeout: function (func, args, wait) {\n var that = this\n return (\n func &&\n window.setTimeout(function () {\n func.apply(that, args || [])\n }, wait || 0)\n )\n },\n\n imageFactory: function (obj, callback) {\n var options = this.options\n var that = this\n var url = obj\n var img = this.imagePrototype.cloneNode(false)\n var picture\n var called\n var sources\n var srcset\n var sizes\n var title\n var altText\n var i\n /**\n * Wraps the callback function for the load/error event\n *\n * @param {event} event load/error event\n * @returns {number} timeout ID\n */\n function callbackWrapper(event) {\n if (!called) {\n event = {\n type: event.type,\n target: picture || img\n }\n if (!event.target.parentNode) {\n // Fix for browsers (e.g. IE7) firing the load event for\n // cached images before the element could\n // be added to the DOM:\n return that.setTimeout(callbackWrapper, [event])\n }\n called = true\n $(img).off('load error', callbackWrapper)\n callback(event)\n }\n }\n if (typeof url !== 'string') {\n url = this.getItemProperty(obj, options.urlProperty)\n sources =\n this.support.picture &&\n this.support.source &&\n this.getItemProperty(obj, options.sourcesProperty)\n srcset = this.getItemProperty(obj, options.srcsetProperty)\n sizes = this.getItemProperty(obj, options.sizesProperty)\n title = this.getItemProperty(obj, options.titleProperty)\n altText = this.getItemProperty(obj, options.altTextProperty) || title\n }\n img.draggable = false\n if (title) {\n img.title = title\n }\n if (altText) {\n img.alt = altText\n }\n $(img).on('load error', callbackWrapper)\n if (sources && sources.length) {\n picture = this.picturePrototype.cloneNode(false)\n for (i = 0; i < sources.length; i += 1) {\n picture.appendChild(\n $.extend(this.sourcePrototype.cloneNode(false), sources[i])\n )\n }\n picture.appendChild(img)\n $(picture).addClass(options.toggleClass)\n }\n if (srcset) {\n if (sizes) {\n img.sizes = sizes\n }\n img.srcset = srcset\n }\n img.src = url\n if (picture) return picture\n return img\n },\n\n createElement: function (obj, callback) {\n var type = obj && this.getItemProperty(obj, this.options.typeProperty)\n var factory =\n (type && this[type.split('/')[0] + 'Factory']) || this.imageFactory\n var element = obj && factory.call(this, obj, callback)\n if (!element) {\n element = this.elementPrototype.cloneNode(false)\n this.setTimeout(callback, [\n {\n type: 'error',\n target: element\n }\n ])\n }\n $(element).addClass(this.options.slideContentClass)\n return element\n },\n\n iteratePreloadRange: function (index, func) {\n var num = this.num\n var options = this.options\n var limit = Math.min(num, options.preloadRange * 2 + 1)\n var j = index\n var i\n for (i = 0; i < limit; i += 1) {\n // First iterate to the current index (0),\n // then the next one (+1),\n // then the previous one (-1),\n // then the next after next (+2),\n // then the one before the previous one (-2), etc.:\n j += i * (i % 2 === 0 ? -1 : 1)\n if (j < 0 || j >= num) {\n if (!options.continuous) continue\n // Connect the ends of the list to load slide elements for\n // continuous iteration:\n j = this.circle(j)\n }\n func.call(this, j)\n }\n },\n\n loadElement: function (index) {\n if (!this.elements[index]) {\n if (this.slides[index].firstChild) {\n this.elements[index] = $(this.slides[index]).hasClass(\n this.options.slideErrorClass\n )\n ? 3\n : 2\n } else {\n this.elements[index] = 1 // Loading\n $(this.slides[index]).addClass(this.options.slideLoadingClass)\n this.slides[index].appendChild(\n this.createElement(this.list[index], this.proxyListener)\n )\n }\n }\n },\n\n loadElements: function (index) {\n this.iteratePreloadRange(index, this.loadElement)\n },\n\n unloadElements: function (oldIndex, newIndex) {\n var preloadRange = this.options.preloadRange\n this.iteratePreloadRange(oldIndex, function (i) {\n var diff = Math.abs(i - newIndex)\n if (diff > preloadRange && diff + preloadRange < this.num) {\n this.unloadSlide(i)\n delete this.elements[i]\n }\n })\n },\n\n addSlide: function (index) {\n var slide = this.slidePrototype.cloneNode(false)\n slide.setAttribute('data-index', index)\n slide.setAttribute('aria-hidden', 'true')\n this.slidesContainer[0].appendChild(slide)\n this.slides.push(slide)\n },\n\n positionSlide: function (index) {\n var slide = this.slides[index]\n slide.style.width = this.slideWidth + 'px'\n if (this.support.transform) {\n slide.style.left = index * -this.slideWidth + 'px'\n this.move(\n index,\n this.index > index\n ? -this.slideWidth\n : this.index < index\n ? this.slideWidth\n : 0,\n 0\n )\n }\n },\n\n initSlides: function (reload) {\n var clearSlides, i\n if (!reload) {\n this.positions = []\n this.positions.length = this.num\n this.elements = {}\n this.picturePrototype =\n this.support.picture && document.createElement('picture')\n this.sourcePrototype =\n this.support.source && document.createElement('source')\n this.imagePrototype = document.createElement('img')\n this.elementPrototype = document.createElement('div')\n this.slidePrototype = this.elementPrototype.cloneNode(false)\n $(this.slidePrototype).addClass(this.options.slideClass)\n this.slides = this.slidesContainer[0].children\n clearSlides =\n this.options.clearSlides || this.slides.length !== this.num\n }\n this.slideWidth = this.container[0].clientWidth\n this.slideHeight = this.container[0].clientHeight\n this.slidesContainer[0].style.width = this.num * this.slideWidth + 'px'\n if (clearSlides) {\n this.resetSlides()\n }\n for (i = 0; i < this.num; i += 1) {\n if (clearSlides) {\n this.addSlide(i)\n }\n this.positionSlide(i)\n }\n // Reposition the slides before and after the given index:\n if (this.options.continuous && this.support.transform) {\n this.move(this.circle(this.index - 1), -this.slideWidth, 0)\n this.move(this.circle(this.index + 1), this.slideWidth, 0)\n }\n if (!this.support.transform) {\n this.slidesContainer[0].style.left =\n this.index * -this.slideWidth + 'px'\n }\n },\n\n unloadSlide: function (index) {\n var slide, firstChild\n slide = this.slides[index]\n firstChild = slide.firstChild\n if (firstChild !== null) {\n slide.removeChild(firstChild)\n }\n },\n\n unloadAllSlides: function () {\n var i, len\n for (i = 0, len = this.slides.length; i < len; i++) {\n this.unloadSlide(i)\n }\n },\n\n toggleControls: function () {\n var controlsClass = this.options.controlsClass\n if (this.container.hasClass(controlsClass)) {\n this.container.removeClass(controlsClass)\n } else {\n this.container.addClass(controlsClass)\n }\n },\n\n toggleSlideshow: function () {\n if (!this.interval) {\n this.play()\n } else {\n this.pause()\n }\n },\n\n getNodeIndex: function (element) {\n return parseInt(element.getAttribute('data-index'), 10)\n },\n\n getNestedProperty: function (obj, property) {\n property.replace(\n // Matches native JavaScript notation in a String,\n // e.g. '[\"doubleQuoteProp\"].dotProp[2]'\n // eslint-disable-next-line no-useless-escape\n /\\[(?:'([^']+)'|\"([^\"]+)\"|(\\d+))\\]|(?:(?:^|\\.)([^\\.\\[]+))/g,\n function (str, singleQuoteProp, doubleQuoteProp, arrayIndex, dotProp) {\n var prop =\n dotProp ||\n singleQuoteProp ||\n doubleQuoteProp ||\n (arrayIndex && parseInt(arrayIndex, 10))\n if (str && obj) {\n obj = obj[prop]\n }\n }\n )\n return obj\n },\n\n getDataProperty: function (obj, property) {\n var key\n var prop\n if (obj.dataset) {\n key = property.replace(/-([a-z])/g, function (_, b) {\n return b.toUpperCase()\n })\n prop = obj.dataset[key]\n } else if (obj.getAttribute) {\n prop = obj.getAttribute(\n 'data-' + property.replace(/([A-Z])/g, '-$1').toLowerCase()\n )\n }\n if (typeof prop === 'string') {\n // eslint-disable-next-line no-useless-escape\n if (\n /^(true|false|null|-?\\d+(\\.\\d+)?|\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/.test(prop)\n ) {\n try {\n return $.parseJSON(prop)\n } catch (ignore) {\n // ignore JSON parsing errors\n }\n }\n return prop\n }\n },\n\n getItemProperty: function (obj, property) {\n var prop = this.getDataProperty(obj, property)\n if (prop === undefined) {\n prop = obj[property]\n }\n if (prop === undefined) {\n prop = this.getNestedProperty(obj, property)\n }\n return prop\n },\n\n initStartIndex: function () {\n var index = this.options.index\n var urlProperty = this.options.urlProperty\n var i\n // Check if the index is given as a list object:\n if (index && typeof index !== 'number') {\n for (i = 0; i < this.num; i += 1) {\n if (\n this.list[i] === index ||\n this.getItemProperty(this.list[i], urlProperty) ===\n this.getItemProperty(index, urlProperty)\n ) {\n index = i\n break\n }\n }\n }\n // Make sure the index is in the list range:\n this.index = this.circle(parseInt(index, 10) || 0)\n },\n\n initEventListeners: function () {\n var that = this\n var slidesContainer = this.slidesContainer\n /**\n * Proxy listener\n *\n * @param {event} event original event\n */\n function proxyListener(event) {\n var type =\n that.support.transition && that.support.transition.end === event.type\n ? 'transitionend'\n : event.type\n that['on' + type](event)\n }\n $(window).on('resize', proxyListener)\n $(window).on('hashchange', proxyListener)\n $(document.body).on('keydown', proxyListener)\n this.container.on('click', proxyListener)\n if (this.support.touch) {\n slidesContainer.on(\n 'touchstart touchmove touchend touchcancel',\n proxyListener\n )\n } else if (this.options.emulateTouchEvents && this.support.transition) {\n slidesContainer.on(\n 'mousedown mousemove mouseup mouseout',\n proxyListener\n )\n }\n if (this.support.transition) {\n slidesContainer.on(this.support.transition.end, proxyListener)\n }\n this.proxyListener = proxyListener\n },\n\n destroyEventListeners: function () {\n var slidesContainer = this.slidesContainer\n var proxyListener = this.proxyListener\n $(window).off('resize', proxyListener)\n $(document.body).off('keydown', proxyListener)\n this.container.off('click', proxyListener)\n if (this.support.touch) {\n slidesContainer.off(\n 'touchstart touchmove touchend touchcancel',\n proxyListener\n )\n } else if (this.options.emulateTouchEvents && this.support.transition) {\n slidesContainer.off(\n 'mousedown mousemove mouseup mouseout',\n proxyListener\n )\n }\n if (this.support.transition) {\n slidesContainer.off(this.support.transition.end, proxyListener)\n }\n },\n\n handleOpen: function () {\n if (this.options.onopened) {\n this.options.onopened.call(this)\n }\n },\n\n initWidget: function () {\n var that = this\n /**\n * Open handler\n *\n * @param {event} event Gallery open event\n */\n function openHandler(event) {\n if (event.target === that.container[0]) {\n that.container.off(that.support.transition.end, openHandler)\n that.handleOpen()\n }\n }\n this.container = $(this.options.container)\n if (!this.container.length) {\n this.console.log(\n 'blueimp Gallery: Widget container not found.',\n this.options.container\n )\n return false\n }\n this.slidesContainer = this.container\n .find(this.options.slidesContainer)\n .first()\n if (!this.slidesContainer.length) {\n this.console.log(\n 'blueimp Gallery: Slides container not found.',\n this.options.slidesContainer\n )\n return false\n }\n this.titleElement = this.container.find(this.options.titleElement).first()\n this.playPauseElement = this.container\n .find('.' + this.options.playPauseClass)\n .first()\n if (this.num === 1) {\n this.container.addClass(this.options.singleClass)\n }\n if (this.support.svgasimg) {\n this.container.addClass(this.options.svgasimgClass)\n }\n if (this.support.smil) {\n this.container.addClass(this.options.smilClass)\n }\n if (this.options.onopen) {\n this.options.onopen.call(this)\n }\n if (this.support.transition && this.options.displayTransition) {\n this.container.on(this.support.transition.end, openHandler)\n } else {\n this.handleOpen()\n }\n if (this.options.hidePageScrollbars) {\n // Hide the page scrollbars:\n this.bodyOverflowStyle = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n }\n this.container[0].style.display = 'block'\n this.initSlides()\n this.container.addClass(this.options.displayClass)\n },\n\n initOptions: function (options) {\n // Create a copy of the prototype options:\n this.options = $.extend({}, this.options)\n // Check if carousel mode is enabled:\n if (\n (options && options.carousel) ||\n (this.options.carousel && (!options || options.carousel !== false))\n ) {\n $.extend(this.options, this.carouselOptions)\n }\n // Override any given options:\n $.extend(this.options, options)\n if (this.num < 3) {\n // 1 or 2 slides cannot be displayed continuous,\n // remember the original option by setting to null instead of false:\n this.options.continuous = this.options.continuous ? null : false\n }\n if (!this.support.transition) {\n this.options.emulateTouchEvents = false\n }\n if (this.options.event) {\n this.preventDefault(this.options.event)\n }\n }\n })\n\n return Gallery\n})\n","/*\n * blueimp Gallery Fullscreen JS\n * https://github.com/blueimp/Gallery\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define('blueimp-gallery-fullscreen', ['blueimp-helper', 'blueimp-gallery'], factory)\n } else {\n // Browser globals:\n factory(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)\n }\n})(function ($, Gallery) {\n 'use strict'\n\n var galleryPrototype = Gallery.prototype\n\n $.extend(galleryPrototype.options, {\n // Defines if the gallery should open in fullscreen mode:\n fullscreen: false\n })\n\n var initialize = galleryPrototype.initialize\n var close = galleryPrototype.close\n\n $.extend(galleryPrototype, {\n getFullScreenElement: function () {\n return (\n document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement\n )\n },\n\n requestFullScreen: function (element) {\n if (element.requestFullscreen) {\n element.requestFullscreen()\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen()\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen()\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen()\n }\n },\n\n exitFullScreen: function () {\n if (document.exitFullscreen) {\n document.exitFullscreen()\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen()\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen()\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen()\n }\n },\n\n initialize: function () {\n initialize.call(this)\n if (this.options.fullscreen && !this.getFullScreenElement()) {\n this.requestFullScreen(this.container[0])\n }\n },\n\n close: function () {\n if (this.getFullScreenElement() === this.container[0]) {\n this.exitFullScreen()\n }\n close.call(this)\n }\n })\n\n return Gallery\n})\n","/*\n * blueimp Gallery Indicator JS\n * https://github.com/blueimp/Gallery\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define('blueimp-gallery-indicator', ['blueimp-helper', 'blueimp-gallery'], factory)\n } else {\n // Browser globals:\n factory(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)\n }\n})(function ($, Gallery) {\n 'use strict'\n\n var galleryPrototype = Gallery.prototype\n\n $.extend(galleryPrototype.options, {\n // The tag name, Id, element or querySelector of the indicator container:\n indicatorContainer: 'ol',\n // The class for the active indicator:\n activeIndicatorClass: 'active',\n // The list object property (or data attribute) with the thumbnail URL,\n // used as alternative to a thumbnail child element:\n thumbnailProperty: 'thumbnail',\n // Defines if the gallery indicators should display a thumbnail:\n thumbnailIndicators: true\n })\n\n var initSlides = galleryPrototype.initSlides\n var addSlide = galleryPrototype.addSlide\n var resetSlides = galleryPrototype.resetSlides\n var handleClick = galleryPrototype.handleClick\n var handleSlide = galleryPrototype.handleSlide\n var handleClose = galleryPrototype.handleClose\n\n $.extend(galleryPrototype, {\n createIndicator: function (obj) {\n var indicator = this.indicatorPrototype.cloneNode(false)\n var title = this.getItemProperty(obj, this.options.titleProperty)\n var thumbnailProperty = this.options.thumbnailProperty\n var thumbnailUrl\n var thumbnail\n if (this.options.thumbnailIndicators) {\n if (thumbnailProperty) {\n thumbnailUrl = this.getItemProperty(obj, thumbnailProperty)\n }\n if (thumbnailUrl === undefined) {\n thumbnail = obj.getElementsByTagName && $(obj).find('img')[0]\n if (thumbnail) {\n thumbnailUrl = thumbnail.src\n }\n }\n if (thumbnailUrl) {\n indicator.style.backgroundImage = 'url(\"' + thumbnailUrl + '\")'\n }\n }\n if (title) {\n indicator.title = title\n }\n indicator.setAttribute('role', 'link')\n return indicator\n },\n\n addIndicator: function (index) {\n if (this.indicatorContainer.length) {\n var indicator = this.createIndicator(this.list[index])\n indicator.setAttribute('data-index', index)\n this.indicatorContainer[0].appendChild(indicator)\n this.indicators.push(indicator)\n }\n },\n\n setActiveIndicator: function (index) {\n if (this.indicators) {\n if (this.activeIndicator) {\n this.activeIndicator.removeClass(this.options.activeIndicatorClass)\n }\n this.activeIndicator = $(this.indicators[index])\n this.activeIndicator.addClass(this.options.activeIndicatorClass)\n }\n },\n\n initSlides: function (reload) {\n if (!reload) {\n this.indicatorContainer = this.container.find(\n this.options.indicatorContainer\n )\n if (this.indicatorContainer.length) {\n this.indicatorPrototype = document.createElement('li')\n this.indicators = this.indicatorContainer[0].children\n }\n }\n initSlides.call(this, reload)\n },\n\n addSlide: function (index) {\n addSlide.call(this, index)\n this.addIndicator(index)\n },\n\n resetSlides: function () {\n resetSlides.call(this)\n this.indicatorContainer.empty()\n this.indicators = []\n },\n\n handleClick: function (event) {\n var target = event.target || event.srcElement\n var parent = target.parentNode\n if (parent === this.indicatorContainer[0]) {\n // Click on indicator element\n this.preventDefault(event)\n this.slide(this.getNodeIndex(target))\n } else if (parent.parentNode === this.indicatorContainer[0]) {\n // Click on indicator child element\n this.preventDefault(event)\n this.slide(this.getNodeIndex(parent))\n } else {\n return handleClick.call(this, event)\n }\n },\n\n handleSlide: function (oldIndex, newIndex) {\n handleSlide.call(this, oldIndex, newIndex)\n this.setActiveIndicator(newIndex)\n },\n\n handleClose: function () {\n if (this.activeIndicator) {\n this.activeIndicator.removeClass(this.options.activeIndicatorClass)\n }\n handleClose.call(this)\n }\n })\n\n return Gallery\n})\n","/*\n * blueimp Gallery Video Factory JS\n * https://github.com/blueimp/Gallery\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define('blueimp-gallery-video', ['blueimp-helper', 'blueimp-gallery'], factory)\n } else {\n // Browser globals:\n factory(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)\n }\n})(function ($, Gallery) {\n 'use strict'\n\n var galleryPrototype = Gallery.prototype\n\n $.extend(galleryPrototype.options, {\n // The class for video content elements:\n videoContentClass: 'video-content',\n // The class for video when it is loading:\n videoLoadingClass: 'video-loading',\n // The class for video when it is playing:\n videoPlayingClass: 'video-playing',\n // The class for video content displayed in an iframe:\n videoIframeClass: 'video-iframe',\n // The class for the video cover element:\n videoCoverClass: 'video-cover',\n // The class for the video play control:\n videoPlayClass: 'video-play',\n // Play videos inline by default:\n videoPlaysInline: true,\n // The list object property (or data attribute) for video preload:\n videoPreloadProperty: 'preload',\n // The list object property (or data attribute) for the video poster URL:\n videoPosterProperty: 'poster'\n })\n\n var handleSlide = galleryPrototype.handleSlide\n\n $.extend(galleryPrototype, {\n handleSlide: function (oldIndex, newIndex) {\n handleSlide.call(this, oldIndex, newIndex)\n this.setTimeout(function () {\n if (this.activeVideo) {\n this.activeVideo.pause()\n }\n })\n },\n\n videoFactory: function (obj, callback, videoInterface) {\n var that = this\n var options = this.options\n var videoContainerNode = this.elementPrototype.cloneNode(false)\n var videoContainer = $(videoContainerNode)\n var errorArgs = [\n {\n type: 'error',\n target: videoContainerNode\n }\n ]\n var video = videoInterface || document.createElement('video')\n var coverElement = this.elementPrototype.cloneNode(false)\n var playElement = document.createElement('a')\n var url = this.getItemProperty(obj, options.urlProperty)\n var sources = this.getItemProperty(obj, options.sourcesProperty)\n var title = this.getItemProperty(obj, options.titleProperty)\n var posterUrl = this.getItemProperty(obj, options.videoPosterProperty)\n var playControls = [playElement]\n var hasGalleryControls\n var isLoading\n var i\n videoContainer.addClass(options.videoContentClass)\n $(playElement).addClass(options.videoPlayClass)\n if (\n !$(coverElement)\n .addClass(options.videoCoverClass)\n .hasClass(options.toggleClass)\n ) {\n playControls.push(coverElement)\n }\n coverElement.draggable = false\n if (title) {\n videoContainerNode.title = title\n playElement.setAttribute('aria-label', title)\n }\n if (posterUrl) {\n // Set as background image instead of as poster video element property:\n // - Is accessible for browsers that do not support the video element\n // - Is accessible for both video element and iframe video players\n // - Avoids visual artifacts in IE with the poster property set\n coverElement.style.backgroundImage = 'url(\"' + posterUrl + '\")'\n }\n if (video.setAttribute) {\n if (options.videoPlaysInline) video.setAttribute('playsinline', '')\n } else {\n videoContainer.addClass(options.videoIframeClass)\n }\n video.preload =\n this.getItemProperty(obj, options.videoPreloadProperty) || 'none'\n if (this.support.source && sources) {\n for (i = 0; i < sources.length; i += 1) {\n video.appendChild(\n $.extend(this.sourcePrototype.cloneNode(false), sources[i])\n )\n }\n }\n if (url) video.src = url\n playElement.href = url || (sources && sources.length && sources[0].src)\n if (video.play && video.pause) {\n ;(videoInterface || $(video))\n .on('error', function () {\n that.setTimeout(callback, errorArgs)\n })\n .on('pause', function () {\n if (video.seeking) return\n isLoading = false\n videoContainer\n .removeClass(that.options.videoLoadingClass)\n .removeClass(that.options.videoPlayingClass)\n if (hasGalleryControls) {\n that.container.addClass(that.options.controlsClass)\n }\n video.controls = false\n if (video === that.activeVideo) delete that.activeVideo\n if (that.interval) {\n // Continue slideshow interval\n that.play()\n }\n })\n .on('playing', function () {\n isLoading = false\n coverElement.removeAttribute('style')\n videoContainer\n .removeClass(that.options.videoLoadingClass)\n .addClass(that.options.videoPlayingClass)\n })\n .on('play', function () {\n // Clear slideshow timeout:\n window.clearTimeout(that.timeout)\n isLoading = true\n videoContainer.addClass(that.options.videoLoadingClass)\n if (that.container.hasClass(that.options.controlsClass)) {\n hasGalleryControls = true\n that.container.removeClass(that.options.controlsClass)\n } else {\n hasGalleryControls = false\n }\n video.controls = true\n that.activeVideo = video\n })\n $(playControls).on('click', function (event) {\n that.preventDefault(event)\n that.activeVideo = video\n if (isLoading) {\n video.pause()\n } else {\n video.play()\n }\n })\n videoContainerNode.appendChild(\n (videoInterface && videoInterface.element) || video\n )\n }\n videoContainerNode.appendChild(coverElement)\n videoContainerNode.appendChild(playElement)\n this.setTimeout(callback, [\n {\n type: 'load',\n target: videoContainerNode\n }\n ])\n return videoContainerNode\n }\n })\n\n return Gallery\n})\n","/*\n * blueimp Gallery Vimeo Video Factory JS\n * https://github.com/blueimp/Gallery\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, $f */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define('blueimp-gallery-vimeo', ['blueimp-helper', 'blueimp-gallery-video'], factory)\n } else {\n // Browser globals:\n factory(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)\n }\n})(function ($, Gallery) {\n 'use strict'\n\n if (!window.postMessage) {\n return Gallery\n }\n\n var galleryPrototype = Gallery.prototype\n\n $.extend(galleryPrototype.options, {\n // The list object property (or data attribute) with the Vimeo video id:\n vimeoVideoIdProperty: 'vimeo',\n // The URL for the Vimeo video player, can be extended with custom parameters:\n // https://developer.vimeo.com/player/embedding\n vimeoPlayerUrl:\n 'https://player.vimeo.com/video/VIDEO_ID?api=1&player_id=PLAYER_ID',\n // The prefix for the Vimeo video player ID:\n vimeoPlayerIdPrefix: 'vimeo-player-',\n // Require a click on the native Vimeo player for the initial playback:\n vimeoClickToPlay: false\n })\n\n var textFactory =\n galleryPrototype.textFactory || galleryPrototype.imageFactory\n var VimeoPlayer = function (url, videoId, playerId, clickToPlay) {\n this.url = url\n this.videoId = videoId\n this.playerId = playerId\n this.clickToPlay = clickToPlay\n this.element = document.createElement('div')\n this.listeners = {}\n }\n var counter = 0\n\n $.extend(VimeoPlayer.prototype, {\n on: function (type, func) {\n this.listeners[type] = func\n return this\n },\n\n loadAPI: function () {\n var that = this\n var apiUrl = 'https://f.vimeocdn.com/js/froogaloop2.min.js'\n var scriptTags = document.getElementsByTagName('script')\n var i = scriptTags.length\n var scriptTag\n var called\n /**\n * Callback function\n */\n function callback() {\n if (!called && that.playOnReady) {\n that.play()\n }\n called = true\n }\n while (i) {\n i -= 1\n if (scriptTags[i].src === apiUrl) {\n scriptTag = scriptTags[i]\n break\n }\n }\n if (!scriptTag) {\n scriptTag = document.createElement('script')\n scriptTag.src = apiUrl\n }\n $(scriptTag).on('load', callback)\n scriptTags[0].parentNode.insertBefore(scriptTag, scriptTags[0])\n // Fix for cached scripts on IE 8:\n if (/loaded|complete/.test(scriptTag.readyState)) {\n callback()\n }\n },\n\n onReady: function () {\n var that = this\n this.ready = true\n this.player.addEvent('play', function () {\n that.hasPlayed = true\n that.onPlaying()\n })\n this.player.addEvent('pause', function () {\n that.onPause()\n })\n this.player.addEvent('finish', function () {\n that.onPause()\n })\n if (this.playOnReady) {\n this.play()\n }\n },\n\n onPlaying: function () {\n if (this.playStatus < 2) {\n this.listeners.playing()\n this.playStatus = 2\n }\n },\n\n onPause: function () {\n this.listeners.pause()\n delete this.playStatus\n },\n\n insertIframe: function () {\n var iframe = document.createElement('iframe')\n iframe.src = this.url\n .replace('VIDEO_ID', this.videoId)\n .replace('PLAYER_ID', this.playerId)\n iframe.id = this.playerId\n iframe.allow = 'autoplay'\n this.element.parentNode.replaceChild(iframe, this.element)\n this.element = iframe\n },\n\n play: function () {\n var that = this\n if (!this.playStatus) {\n this.listeners.play()\n this.playStatus = 1\n }\n if (this.ready) {\n if (\n !this.hasPlayed &&\n (this.clickToPlay ||\n (window.navigator &&\n /iP(hone|od|ad)/.test(window.navigator.platform)))\n ) {\n // Manually trigger the playing callback if clickToPlay\n // is enabled and to workaround a limitation in iOS,\n // which requires synchronous user interaction to start\n // the video playback:\n this.onPlaying()\n } else {\n this.player.api('play')\n }\n } else {\n this.playOnReady = true\n if (!window.$f) {\n this.loadAPI()\n } else if (!this.player) {\n this.insertIframe()\n this.player = $f(this.element)\n this.player.addEvent('ready', function () {\n that.onReady()\n })\n }\n }\n },\n\n pause: function () {\n if (this.ready) {\n this.player.api('pause')\n } else if (this.playStatus) {\n delete this.playOnReady\n this.listeners.pause()\n delete this.playStatus\n }\n }\n })\n\n $.extend(galleryPrototype, {\n VimeoPlayer: VimeoPlayer,\n\n textFactory: function (obj, callback) {\n var options = this.options\n var videoId = this.getItemProperty(obj, options.vimeoVideoIdProperty)\n if (videoId) {\n if (this.getItemProperty(obj, options.urlProperty) === undefined) {\n obj[options.urlProperty] = 'https://vimeo.com/' + videoId\n }\n counter += 1\n return this.videoFactory(\n obj,\n callback,\n new VimeoPlayer(\n options.vimeoPlayerUrl,\n videoId,\n options.vimeoPlayerIdPrefix + counter,\n options.vimeoClickToPlay\n )\n )\n }\n return textFactory.call(this, obj, callback)\n }\n })\n\n return Gallery\n})\n","/*\n * blueimp Gallery YouTube Video Factory JS\n * https://github.com/blueimp/Gallery\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, YT */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define('blueimp-gallery-youtube', ['blueimp-helper', 'blueimp-gallery-video'], factory)\n } else {\n // Browser globals:\n factory(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)\n }\n})(function ($, Gallery) {\n 'use strict'\n\n if (!window.postMessage) {\n return Gallery\n }\n\n var galleryPrototype = Gallery.prototype\n\n $.extend(galleryPrototype.options, {\n // The list object property (or data attribute) with the YouTube video id:\n youTubeVideoIdProperty: 'youtube',\n // Optional object with parameters passed to the YouTube video player:\n // https://developers.google.com/youtube/player_parameters\n youTubePlayerVars: {\n wmode: 'transparent'\n },\n // Require a click on the native YouTube player for the initial playback:\n youTubeClickToPlay: false\n })\n\n var textFactory =\n galleryPrototype.textFactory || galleryPrototype.imageFactory\n var YouTubePlayer = function (videoId, playerVars, clickToPlay) {\n this.videoId = videoId\n this.playerVars = playerVars\n this.clickToPlay = clickToPlay\n this.element = document.createElement('div')\n this.listeners = {}\n }\n\n $.extend(YouTubePlayer.prototype, {\n on: function (type, func) {\n this.listeners[type] = func\n return this\n },\n\n loadAPI: function () {\n var that = this\n var onYouTubeIframeAPIReady = window.onYouTubeIframeAPIReady\n var apiUrl = 'https://www.youtube.com/iframe_api'\n var scriptTags = document.getElementsByTagName('script')\n var i = scriptTags.length\n var scriptTag\n window.onYouTubeIframeAPIReady = function () {\n if (onYouTubeIframeAPIReady) {\n onYouTubeIframeAPIReady.apply(this)\n }\n if (that.playOnReady) {\n that.play()\n }\n }\n while (i) {\n i -= 1\n if (scriptTags[i].src === apiUrl) {\n return\n }\n }\n scriptTag = document.createElement('script')\n scriptTag.src = apiUrl\n scriptTags[0].parentNode.insertBefore(scriptTag, scriptTags[0])\n },\n\n onReady: function () {\n this.ready = true\n if (this.playOnReady) {\n this.play()\n }\n },\n\n onPlaying: function () {\n if (this.playStatus < 2) {\n this.listeners.playing()\n this.playStatus = 2\n }\n },\n\n onPause: function () {\n this.listeners.pause()\n delete this.playStatus\n },\n\n onStateChange: function (event) {\n window.clearTimeout(this.pauseTimeout)\n switch (event.data) {\n case YT.PlayerState.PLAYING:\n this.hasPlayed = true\n this.onPlaying()\n break\n case YT.PlayerState.UNSTARTED:\n case YT.PlayerState.PAUSED:\n // YouTube sends an unstarted event if pause is triggered before the\n // video has started.\n // YouTube sends a pause event when seeking.\n // In both cases, we initiate a pause in a timeout that gets cleared\n // if followed by another event within the timeout window.\n this.pauseTimeout = galleryPrototype.setTimeout.call(\n this,\n this.onPause,\n null,\n 500\n )\n break\n case YT.PlayerState.ENDED:\n this.onPause()\n break\n }\n },\n\n onError: function (event) {\n this.listeners.error(event)\n },\n\n play: function () {\n var that = this\n if (!this.playStatus) {\n this.listeners.play()\n this.playStatus = 1\n }\n if (this.ready) {\n if (\n !this.hasPlayed &&\n (this.clickToPlay ||\n (window.navigator &&\n /iP(hone|od|ad)/.test(window.navigator.platform)))\n ) {\n // Manually trigger the playing callback if clickToPlay\n // is enabled and to workaround a limitation in iOS,\n // which requires synchronous user interaction to start\n // the video playback:\n this.onPlaying()\n } else {\n this.player.playVideo()\n }\n } else {\n this.playOnReady = true\n if (!(window.YT && YT.Player)) {\n this.loadAPI()\n } else if (!this.player) {\n this.player = new YT.Player(this.element, {\n videoId: this.videoId,\n playerVars: this.playerVars,\n events: {\n onReady: function () {\n that.onReady()\n },\n onStateChange: function (event) {\n that.onStateChange(event)\n },\n onError: function (event) {\n that.onError(event)\n }\n }\n })\n }\n }\n },\n\n pause: function () {\n if (this.ready) {\n this.player.pauseVideo()\n } else if (this.playStatus) {\n delete this.playOnReady\n this.listeners.pause()\n delete this.playStatus\n }\n }\n })\n\n $.extend(galleryPrototype, {\n YouTubePlayer: YouTubePlayer,\n\n textFactory: function (obj, callback) {\n var options = this.options\n var videoId = this.getItemProperty(obj, options.youTubeVideoIdProperty)\n if (videoId) {\n if (this.getItemProperty(obj, options.urlProperty) === undefined) {\n obj[options.urlProperty] =\n 'https://www.youtube.com/watch?v=' + videoId\n }\n if (\n this.getItemProperty(obj, options.videoPosterProperty) === undefined\n ) {\n obj[options.videoPosterProperty] =\n 'https://img.youtube.com/vi/' + videoId + '/maxresdefault.jpg'\n }\n return this.videoFactory(\n obj,\n callback,\n new YouTubePlayer(\n videoId,\n options.youTubePlayerVars,\n options.youTubeClickToPlay\n )\n )\n }\n return textFactory.call(this, obj, callback)\n }\n })\n\n return Gallery\n})\n"], "names":["extend","obj1","obj2","prop","Object","prototype","hasOwnProperty","call","Helper","query","find","length","nodeType","window","i","contains","Helper.contains","container","element","parentNode","parseJSON","Helper.parseJSON","string","JSON","parse","document","querySelectorAll","charAt","getElementById","slice","getElementsByTagName","hasClass","className","RegExp","test","addClass","classNames","j","split","removeClass","regexp","join","matcher","replacer","match","trimEnd","replace","on","eventName","handler","eventNames","shift","addEventListener","attachEvent","off","removeEventListener","detachEvent","empty","hasChildNodes","removeChild","lastChild","first","define","amd","blueimp","helper","factory","Gallery","jQuery","$","list","options","undefined","body","style","maxHeight","num","initOptions","initialize","console","log","slidesContainer","titleElement","displayClass","controlsClass","singleClass","leftEdgeClass","rightEdgeClass","playingClass","svgasimgClass","smilClass","slideClass","slideActiveClass","slidePrevClass","slideNextClass","slideLoadingClass","slideErrorClass","slideContentClass","toggleClass","prevClass","nextClass","closeClass","playPauseClass","typeProperty","titleProperty","altTextProperty","urlProperty","srcsetProperty","sizesProperty","sourcesProperty","displayTransition","clearSlides","toggleControlsOnEnter","toggleControlsOnSlideClick","toggleSlideshowOnSpace","enableKeyboardNavigation","closeOnEscape","closeOnSlideClick","closeOnSwipeUpOrDown","closeOnHashChange","emulateTouchEvents","stopTouchEventsPropagation","hidePageScrollbars","disableScroll","carousel","continuous","unloadElements","startSlideshow","slideshowInterval","slideshowDirection","index","preloadRange","transitionDuration","slideshowTransitionDuration","event","onopen","onopened","onslide","onslideend","onslidecomplete","onclose","onclosed","carouselOptions","support","elementTests","transition","appendChild","name","translateZ","getComputedStyle","getPropertyValue","prefix","transform","translate","source","HTMLSourceElement","picture","HTMLPictureElement","svgasimg","implementation","hasFeature","smil","createElementNS","toString","touch","ontouchstart","DocumentTouch","transitions","webkitTransition","end","MozTransition","OTransition","createElement","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","initStartIndex","initWidget","initEventListeners","ontransitionend","play","slide","to","duration","clearTimeout","timeout","circle","direction","Math","abs","naturalDirection","positions","slideWidth","diff","move","animate","getIndex","getNumber","prev","next","time","that","nextIndex","interval","elements","setTimeout","animationFrameId","setAttribute","playPauseElement","pause","add","concat","Array","addSlide","positionSlide","initSlides","resetSlides","unloadAllSlides","slides","handleClose","destroyEventListeners","display","overflow","bodyOverflowStyle","close","closeHandler","target","dist","translateX","x","y","translateY","from","start","Date","getTime","timer","setInterval","timeElap","left","clearInterval","floor","preventDefault","returnValue","stopPropagation","cancelBubble","onresize","onhashchange","onmousedown","which","nodeName","originalEvent","touches","pageX","pageY","onmousemove","touchStart","ontouchmove","onmouseup","ontouchend","onmouseout","related","relatedTarget","now","isScrolling","touchDelta","scale","touchDeltaX","indices","push","unshift","pop","absTouchDeltaX","ceil","isValidSlide","isPastBounds","isValidClose","indexForward","indexBackward","distanceForward","distanceBackward","ontouchcancel","oncomplete","srcElement","parent","getNodeIndex","type","clientHeight","onload","onerror","onkeydown","keyCode","toggleControls","stopImmediatePropagation","toggleSlideshow","handleClick","isTarget","onclick","updateEdgeClasses","updateActiveSlide","oldIndex","newIndex","method","hidden","item","removeAttribute","handleSlide","loadElements","setTitle","firstChild","text","title","alt","createTextNode","func","args","wait","apply","imageFactory","obj","callback","callbackWrapper","called","img","url","imagePrototype","cloneNode","getItemProperty","sources","srcset","sizes","altText","draggable","picturePrototype","sourcePrototype","src","elementPrototype","iteratePreloadRange","limit","min","loadElement","proxyListener","unloadSlide","slidePrototype","width","reload","children","clientWidth","slideHeight","len","parseInt","getAttribute","getNestedProperty","property","str","singleQuoteProp","doubleQuoteProp","arrayIndex","dotProp","getDataProperty","dataset","key","_","b","toUpperCase","toLowerCase","ignore","handleOpen","openHandler","galleryPrototype","fullscreen","getFullScreenElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","requestFullScreen","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exitFullScreen","exitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen","indicatorContainer","activeIndicatorClass","thumbnailProperty","thumbnailIndicators","createIndicator","indicator","indicatorPrototype","thumbnailUrl","thumbnail","backgroundImage","addIndicator","indicators","setActiveIndicator","activeIndicator","videoContentClass","videoLoadingClass","videoPlayingClass","videoIframeClass","videoCoverClass","videoPlayClass","videoPlaysInline","videoPreloadProperty","videoPosterProperty","activeVideo","videoFactory","videoInterface","videoContainerNode","videoContainer","errorArgs","video","coverElement","playElement","posterUrl","playControls","hasGalleryControls","isLoading","preload","href","seeking","controls","postMessage","vimeoVideoIdProperty","vimeoPlayerUrl","vimeoPlayerIdPrefix","vimeoClickToPlay","textFactory","VimeoPlayer","videoId","playerId","clickToPlay","listeners","counter","loadAPI","playOnReady","scriptTags","scriptTag","apiUrl","insertBefore","readyState","onReady","ready","player","addEvent","hasPlayed","onPlaying","onPause","playStatus","playing","insertIframe","iframe","id","allow","replaceChild","navigator","platform","api","$f","youTubeVideoIdProperty","youTubePlayerVars","wmode","youTubeClickToPlay","YouTubePlayer","playerVars","onYouTubeIframeAPIReady","window.onYouTubeIframeAPIReady","onStateChange","pauseTimeout","data","YT","PlayerState","PLAYING","UNSTARTED","PAUSED","ENDED","onError","error","playVideo","Player","events","pauseVideo"] }