{"version":3,"file":"other.min.js","sources":["../../../scripts/bootstrap.js","../../../scripts/modernizr-2.7.1.js","../../../scripts/jquery-2.2.4.min.js","../../../scripts/validation/jquery.validate.min.js","../../../scripts/jquery.scrollTo.min.js","../../../scripts/fancybox/jquery.fancybox.js","../../../scripts/swiper/swiper-bundle.js"],"sourcesContent":["/**\r\n* bootstrap.js v3.0.0 by @fat and @mdo\r\n* Copyright 2013 Twitter Inc.\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*/\r\nif (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\r\n\r\n/* ========================================================================\r\n * Bootstrap: transition.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#transitions\r\n * ========================================================================\r\n * Copyright 2013 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\r\n // ============================================================\r\n\r\n function transitionEnd() {\r\n var el = document.createElement('bootstrap')\r\n\r\n var transEndEventNames = {\r\n 'WebkitTransition' : 'webkitTransitionEnd'\r\n , 'MozTransition' : 'transitionend'\r\n , 'OTransition' : 'oTransitionEnd otransitionend'\r\n , 'transition' : 'transitionend'\r\n }\r\n\r\n for (var name in transEndEventNames) {\r\n if (el.style[name] !== undefined) {\r\n return { end: transEndEventNames[name] }\r\n }\r\n }\r\n }\r\n\r\n // http://blog.alexmaccaw.com/css-transitions\r\n $.fn.emulateTransitionEnd = function (duration) {\r\n var called = false, $el = this\r\n $(this).one($.support.transition.end, function () { called = true })\r\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\r\n setTimeout(callback, duration)\r\n return this\r\n }\r\n\r\n $(function () {\r\n $.support.transition = transitionEnd()\r\n })\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: alert.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#alerts\r\n * ========================================================================\r\n * Copyright 2013 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // ALERT CLASS DEFINITION\r\n // ======================\r\n\r\n var dismiss = '[data-dismiss=\"alert\"]'\r\n var Alert = function (el) {\r\n $(el).on('click', dismiss, this.close)\r\n }\r\n\r\n Alert.prototype.close = function (e) {\r\n var $this = $(this)\r\n var selector = $this.attr('data-target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n\r\n var $parent = $(selector)\r\n\r\n if (e) e.preventDefault()\r\n\r\n if (!$parent.length) {\r\n $parent = $this.hasClass('alert') ? $this : $this.parent()\r\n }\r\n\r\n $parent.trigger(e = $.Event('close.bs.alert'))\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $parent.removeClass('in')\r\n\r\n function removeElement() {\r\n $parent.trigger('closed.bs.alert').remove()\r\n }\r\n\r\n $.support.transition && $parent.hasClass('fade') ?\r\n $parent\r\n .one($.support.transition.end, removeElement)\r\n .emulateTransitionEnd(150) :\r\n removeElement()\r\n }\r\n\r\n\r\n // ALERT PLUGIN DEFINITION\r\n // =======================\r\n\r\n var old = $.fn.alert\r\n\r\n $.fn.alert = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.alert')\r\n\r\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\r\n if (typeof option == 'string') data[option].call($this)\r\n })\r\n }\r\n\r\n $.fn.alert.Constructor = Alert\r\n\r\n\r\n // ALERT NO CONFLICT\r\n // =================\r\n\r\n $.fn.alert.noConflict = function () {\r\n $.fn.alert = old\r\n return this\r\n }\r\n\r\n\r\n // ALERT DATA-API\r\n // ==============\r\n\r\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: button.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#buttons\r\n * ========================================================================\r\n * Copyright 2013 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // BUTTON PUBLIC CLASS DEFINITION\r\n // ==============================\r\n\r\n var Button = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Button.DEFAULTS, options)\r\n }\r\n\r\n Button.DEFAULTS = {\r\n loadingText: 'loading...'\r\n }\r\n\r\n Button.prototype.setState = function (state) {\r\n var d = 'disabled'\r\n var $el = this.$element\r\n var val = $el.is('input') ? 'val' : 'html'\r\n var data = $el.data()\r\n\r\n state = state + 'Text'\r\n\r\n if (!data.resetText) $el.data('resetText', $el[val]())\r\n\r\n $el[val](data[state] || this.options[state])\r\n\r\n // push to event loop to allow forms to submit\r\n setTimeout(function () {\r\n state == 'loadingText' ?\r\n $el.addClass(d).attr(d, d) :\r\n $el.removeClass(d).removeAttr(d);\r\n }, 0)\r\n }\r\n\r\n Button.prototype.toggle = function () {\r\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\r\n\r\n if ($parent.length) {\r\n var $input = this.$element.find('input')\r\n .prop('checked', !this.$element.hasClass('active'))\r\n .trigger('change')\r\n if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')\r\n }\r\n\r\n this.$element.toggleClass('active')\r\n }\r\n\r\n\r\n // BUTTON PLUGIN DEFINITION\r\n // ========================\r\n\r\n var old = $.fn.button\r\n\r\n $.fn.button = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.button')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\r\n\r\n if (option == 'toggle') data.toggle()\r\n else if (option) data.setState(option)\r\n })\r\n }\r\n\r\n $.fn.button.Constructor = Button\r\n\r\n\r\n // BUTTON NO CONFLICT\r\n // ==================\r\n\r\n $.fn.button.noConflict = function () {\r\n $.fn.button = old\r\n return this\r\n }\r\n\r\n\r\n // BUTTON DATA-API\r\n // ===============\r\n\r\n $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {\r\n var $btn = $(e.target)\r\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\r\n $btn.button('toggle')\r\n e.preventDefault()\r\n })\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: carousel.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#carousel\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // CAROUSEL CLASS DEFINITION\r\n // =========================\r\n\r\n var Carousel = function (element, options) {\r\n this.$element = $(element)\r\n this.$indicators = this.$element.find('.carousel-indicators')\r\n this.options = options\r\n this.paused =\r\n this.sliding =\r\n this.interval =\r\n this.$active =\r\n this.$items = null\r\n\r\n this.options.pause == 'hover' && this.$element\r\n .on('mouseenter', $.proxy(this.pause, this))\r\n .on('mouseleave', $.proxy(this.cycle, this))\r\n }\r\n\r\n Carousel.DEFAULTS = {\r\n interval: 5000\r\n , pause: 'hover'\r\n , wrap: true\r\n }\r\n\r\n Carousel.prototype.cycle = function (e) {\r\n e || (this.paused = false)\r\n\r\n this.interval && clearInterval(this.interval)\r\n\r\n this.options.interval\r\n && !this.paused\r\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\r\n\r\n return this\r\n }\r\n\r\n Carousel.prototype.getActiveIndex = function () {\r\n this.$active = this.$element.find('.item.active')\r\n this.$items = this.$active.parent().children()\r\n\r\n return this.$items.index(this.$active)\r\n }\r\n\r\n Carousel.prototype.to = function (pos) {\r\n var that = this\r\n var activeIndex = this.getActiveIndex()\r\n\r\n if (pos > (this.$items.length - 1) || pos < 0) return\r\n\r\n if (this.sliding) return this.$element.one('slid', function () { that.to(pos) })\r\n if (activeIndex == pos) return this.pause().cycle()\r\n\r\n return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))\r\n }\r\n\r\n Carousel.prototype.pause = function (e) {\r\n e || (this.paused = true)\r\n\r\n if (this.$element.find('.next, .prev').length && $.support.transition.end) {\r\n this.$element.trigger($.support.transition.end)\r\n this.cycle(true)\r\n }\r\n\r\n this.interval = clearInterval(this.interval)\r\n\r\n return this\r\n }\r\n\r\n Carousel.prototype.next = function () {\r\n if (this.sliding) return\r\n return this.slide('next')\r\n }\r\n\r\n Carousel.prototype.prev = function () {\r\n if (this.sliding) return\r\n return this.slide('prev')\r\n }\r\n\r\n Carousel.prototype.slide = function (type, next) {\r\n var $active = this.$element.find('.item.active')\r\n var $next = next || $active[type]()\r\n var isCycling = this.interval\r\n var direction = type == 'next' ? 'left' : 'right'\r\n var fallback = type == 'next' ? 'first' : 'last'\r\n var that = this\r\n\r\n if (!$next.length) {\r\n if (!this.options.wrap) return\r\n $next = this.$element.find('.item')[fallback]()\r\n }\r\n\r\n this.sliding = true\r\n\r\n isCycling && this.pause()\r\n\r\n var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })\r\n\r\n if ($next.hasClass('active')) return\r\n\r\n if (this.$indicators.length) {\r\n this.$indicators.find('.active').removeClass('active')\r\n this.$element.one('slid', function () {\r\n var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])\r\n $nextIndicator && $nextIndicator.addClass('active')\r\n })\r\n }\r\n\r\n if ($.support.transition && this.$element.hasClass('slide')) {\r\n this.$element.trigger(e)\r\n if (e.isDefaultPrevented()) return\r\n $next.addClass(type)\r\n $next[0].offsetWidth // force reflow\r\n $active.addClass(direction)\r\n $next.addClass(direction)\r\n $active\r\n .one($.support.transition.end, function () {\r\n $next.removeClass([type, direction].join(' ')).addClass('active')\r\n $active.removeClass(['active', direction].join(' '))\r\n that.sliding = false\r\n setTimeout(function () { that.$element.trigger('slid') }, 0)\r\n })\r\n .emulateTransitionEnd(600)\r\n } else {\r\n this.$element.trigger(e)\r\n if (e.isDefaultPrevented()) return\r\n $active.removeClass('active')\r\n $next.addClass('active')\r\n this.sliding = false\r\n this.$element.trigger('slid')\r\n }\r\n\r\n isCycling && this.cycle()\r\n\r\n return this\r\n }\r\n\r\n\r\n // CAROUSEL PLUGIN DEFINITION\r\n // ==========================\r\n\r\n var old = $.fn.carousel\r\n\r\n $.fn.carousel = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.carousel')\r\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n var action = typeof option == 'string' ? option : options.slide\r\n\r\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\r\n if (typeof option == 'number') data.to(option)\r\n else if (action) data[action]()\r\n else if (options.interval) data.pause().cycle()\r\n })\r\n }\r\n\r\n $.fn.carousel.Constructor = Carousel\r\n\r\n\r\n // CAROUSEL NO CONFLICT\r\n // ====================\r\n\r\n $.fn.carousel.noConflict = function () {\r\n $.fn.carousel = old\r\n return this\r\n }\r\n\r\n\r\n // CAROUSEL DATA-API\r\n // =================\r\n\r\n $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {\r\n var $this = $(this), href\r\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) //strip for ie7\r\n var options = $.extend({}, $target.data(), $this.data())\r\n var slideIndex = $this.attr('data-slide-to')\r\n if (slideIndex) options.interval = false\r\n\r\n $target.carousel(options)\r\n\r\n if (slideIndex = $this.attr('data-slide-to')) {\r\n $target.data('bs.carousel').to(slideIndex)\r\n }\r\n\r\n e.preventDefault()\r\n })\r\n\r\n $(window).on('load', function () {\r\n $('[data-ride=\"carousel\"]').each(function () {\r\n var $carousel = $(this)\r\n $carousel.carousel($carousel.data())\r\n })\r\n })\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: collapse.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#collapse\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // COLLAPSE PUBLIC CLASS DEFINITION\r\n // ================================\r\n\r\n var Collapse = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Collapse.DEFAULTS, options)\r\n this.transitioning = null\r\n\r\n if (this.options.parent) this.$parent = $(this.options.parent)\r\n if (this.options.toggle) this.toggle()\r\n }\r\n\r\n Collapse.DEFAULTS = {\r\n toggle: true\r\n }\r\n\r\n Collapse.prototype.dimension = function () {\r\n var hasWidth = this.$element.hasClass('width')\r\n return hasWidth ? 'width' : 'height'\r\n }\r\n\r\n Collapse.prototype.show = function () {\r\n if (this.transitioning || this.$element.hasClass('in')) return\r\n\r\n var startEvent = $.Event('show.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n var actives = this.$parent && this.$parent.find('> .panel > .in')\r\n\r\n if (actives && actives.length) {\r\n var hasData = actives.data('bs.collapse')\r\n if (hasData && hasData.transitioning) return\r\n actives.collapse('hide')\r\n hasData || actives.data('bs.collapse', null)\r\n }\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element\r\n .removeClass('collapse')\r\n .addClass('collapsing')\r\n [dimension](0)\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('in')\r\n [dimension]('auto')\r\n this.transitioning = 0\r\n this.$element.trigger('shown.bs.collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\r\n\r\n this.$element\r\n .one($.support.transition.end, $.proxy(complete, this))\r\n .emulateTransitionEnd(350)\r\n [dimension](this.$element[0][scrollSize])\r\n }\r\n\r\n Collapse.prototype.hide = function () {\r\n if (this.transitioning || !this.$element.hasClass('in')) return\r\n\r\n var startEvent = $.Event('hide.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element\r\n [dimension](this.$element[dimension]())\r\n [0].offsetHeight\r\n\r\n this.$element\r\n .addClass('collapsing')\r\n .removeClass('collapse')\r\n .removeClass('in')\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.transitioning = 0\r\n this.$element\r\n .trigger('hidden.bs.collapse')\r\n .removeClass('collapsing')\r\n .addClass('collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n this.$element\r\n [dimension](0)\r\n .one($.support.transition.end, $.proxy(complete, this))\r\n .emulateTransitionEnd(350)\r\n }\r\n\r\n Collapse.prototype.toggle = function () {\r\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\r\n }\r\n\r\n\r\n // COLLAPSE PLUGIN DEFINITION\r\n // ==========================\r\n\r\n var old = $.fn.collapse\r\n\r\n $.fn.collapse = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.collapse')\r\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n $.fn.collapse.Constructor = Collapse\r\n\r\n\r\n // COLLAPSE NO CONFLICT\r\n // ====================\r\n\r\n $.fn.collapse.noConflict = function () {\r\n $.fn.collapse = old\r\n return this\r\n }\r\n\r\n\r\n // COLLAPSE DATA-API\r\n // =================\r\n\r\n $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {\r\n var $this = $(this), href\r\n var target = $this.attr('data-target')\r\n || e.preventDefault()\r\n || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') //strip for ie7\r\n var $target = $(target)\r\n var data = $target.data('bs.collapse')\r\n var option = data ? 'toggle' : $this.data()\r\n var parent = $this.attr('data-parent')\r\n var $parent = parent && $(parent)\r\n\r\n if (!data || !data.transitioning) {\r\n if ($parent) $parent.find('[data-toggle=collapse][data-parent=\"' + parent + '\"]').not($this).addClass('collapsed')\r\n $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')\r\n }\r\n\r\n $target.collapse(option)\r\n })\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: dropdown.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#dropdowns\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // DROPDOWN CLASS DEFINITION\r\n // =========================\r\n\r\n var backdrop = '.dropdown-backdrop'\r\n var toggle = '[data-toggle=dropdown]'\r\n var Dropdown = function (element) {\r\n var $el = $(element).on('click.bs.dropdown', this.toggle)\r\n }\r\n\r\n Dropdown.prototype.toggle = function (e) {\r\n var $this = $(this)\r\n\r\n if ($this.is('.disabled, :disabled')) return\r\n\r\n var $parent = getParent($this)\r\n var isActive = $parent.hasClass('open')\r\n\r\n clearMenus()\r\n\r\n if (!isActive) {\r\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\r\n // if mobile we we use a backdrop because click events don't delegate\r\n $('
').insertAfter($(this)).on('click', clearMenus)\r\n }\r\n\r\n $parent.trigger(e = $.Event('show.bs.dropdown'))\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $parent\r\n .toggleClass('open')\r\n .trigger('shown.bs.dropdown')\r\n\r\n $this.focus()\r\n }\r\n\r\n return false\r\n }\r\n\r\n Dropdown.prototype.keydown = function (e) {\r\n if (!/(38|40|27)/.test(e.keyCode)) return\r\n\r\n var $this = $(this)\r\n\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if ($this.is('.disabled, :disabled')) return\r\n\r\n var $parent = getParent($this)\r\n var isActive = $parent.hasClass('open')\r\n\r\n if (!isActive || (isActive && e.keyCode == 27)) {\r\n if (e.which == 27) $parent.find(toggle).focus()\r\n return $this.click()\r\n }\r\n\r\n var $items = $('[role=menu] li:not(.divider):visible a', $parent)\r\n\r\n if (!$items.length) return\r\n\r\n var index = $items.index($items.filter(':focus'))\r\n\r\n if (e.keyCode == 38 && index > 0) index-- // up\r\n if (e.keyCode == 40 && index < $items.length - 1) index++ // down\r\n if (!~index) index=0\r\n\r\n $items.eq(index).focus()\r\n }\r\n\r\n function clearMenus() {\r\n $(backdrop).remove()\r\n $(toggle).each(function (e) {\r\n var $parent = getParent($(this))\r\n if (!$parent.hasClass('open')) return\r\n $parent.trigger(e = $.Event('hide.bs.dropdown'))\r\n if (e.isDefaultPrevented()) return\r\n $parent.removeClass('open').trigger('hidden.bs.dropdown')\r\n })\r\n }\r\n\r\n function getParent($this) {\r\n var selector = $this.attr('data-target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') //strip for ie7\r\n }\r\n\r\n var $parent = selector && $(selector)\r\n\r\n return $parent && $parent.length ? $parent : $this.parent()\r\n }\r\n\r\n\r\n // DROPDOWN PLUGIN DEFINITION\r\n // ==========================\r\n\r\n var old = $.fn.dropdown\r\n\r\n $.fn.dropdown = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('dropdown')\r\n\r\n if (!data) $this.data('dropdown', (data = new Dropdown(this)))\r\n if (typeof option == 'string') data[option].call($this)\r\n })\r\n }\r\n\r\n $.fn.dropdown.Constructor = Dropdown\r\n\r\n\r\n // DROPDOWN NO CONFLICT\r\n // ====================\r\n\r\n $.fn.dropdown.noConflict = function () {\r\n $.fn.dropdown = old\r\n return this\r\n }\r\n\r\n\r\n // APPLY TO STANDARD DROPDOWN ELEMENTS\r\n // ===================================\r\n\r\n $(document)\r\n .on('click.bs.dropdown.data-api', clearMenus)\r\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\r\n .on('click.bs.dropdown.data-api' , toggle, Dropdown.prototype.toggle)\r\n .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: modal.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#modals\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // MODAL CLASS DEFINITION\r\n // ======================\r\n\r\n var Modal = function (element, options) {\r\n this.options = options\r\n this.$element = $(element)\r\n this.$backdrop =\r\n this.isShown = null\r\n\r\n if (this.options.remote) this.$element.load(this.options.remote)\r\n }\r\n\r\n Modal.DEFAULTS = {\r\n backdrop: true\r\n , keyboard: true\r\n , show: true\r\n }\r\n\r\n Modal.prototype.toggle = function (_relatedTarget) {\r\n return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)\r\n }\r\n\r\n Modal.prototype.show = function (_relatedTarget) {\r\n var that = this\r\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n this.$element.trigger(e)\r\n\r\n if (this.isShown || e.isDefaultPrevented()) return\r\n\r\n this.isShown = true\r\n\r\n this.escape()\r\n\r\n this.$element.on('click.dismiss.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\r\n\r\n this.backdrop(function () {\r\n var transition = $.support.transition && that.$element.hasClass('fade')\r\n\r\n if (!that.$element.parent().length) {\r\n that.$element.appendTo(document.body) // don't move modals dom position\r\n }\r\n\r\n that.$element.show()\r\n\r\n if (transition) {\r\n that.$element[0].offsetWidth // force reflow\r\n }\r\n\r\n that.$element\r\n .addClass('in')\r\n .attr('aria-hidden', false)\r\n\r\n that.enforceFocus()\r\n\r\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n transition ?\r\n that.$element.find('.modal-dialog') // wait for modal to slide in\r\n .one($.support.transition.end, function () {\r\n that.$element.focus().trigger(e)\r\n })\r\n .emulateTransitionEnd(300) :\r\n that.$element.focus().trigger(e)\r\n })\r\n }\r\n\r\n Modal.prototype.hide = function (e) {\r\n if (e) e.preventDefault()\r\n\r\n e = $.Event('hide.bs.modal')\r\n\r\n this.$element.trigger(e)\r\n\r\n if (!this.isShown || e.isDefaultPrevented()) return\r\n\r\n this.isShown = false\r\n\r\n this.escape()\r\n\r\n $(document).off('focusin.bs.modal')\r\n\r\n this.$element\r\n .removeClass('in')\r\n .attr('aria-hidden', true)\r\n .off('click.dismiss.modal')\r\n\r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$element\r\n .one($.support.transition.end, $.proxy(this.hideModal, this))\r\n .emulateTransitionEnd(300) :\r\n this.hideModal()\r\n }\r\n\r\n Modal.prototype.enforceFocus = function () {\r\n $(document)\r\n .off('focusin.bs.modal') // guard against infinite focus loop\r\n .on('focusin.bs.modal', $.proxy(function (e) {\r\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\r\n this.$element.focus()\r\n }\r\n }, this))\r\n }\r\n\r\n Modal.prototype.escape = function () {\r\n if (this.isShown && this.options.keyboard) {\r\n this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {\r\n e.which == 27 && this.hide()\r\n }, this))\r\n } else if (!this.isShown) {\r\n this.$element.off('keyup.dismiss.bs.modal')\r\n }\r\n }\r\n\r\n Modal.prototype.hideModal = function () {\r\n var that = this\r\n this.$element.hide()\r\n this.backdrop(function () {\r\n that.removeBackdrop()\r\n that.$element.trigger('hidden.bs.modal')\r\n })\r\n }\r\n\r\n Modal.prototype.removeBackdrop = function () {\r\n this.$backdrop && this.$backdrop.remove()\r\n this.$backdrop = null\r\n }\r\n\r\n Modal.prototype.backdrop = function (callback) {\r\n var that = this\r\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\r\n\r\n if (this.isShown && this.options.backdrop) {\r\n var doAnimate = $.support.transition && animate\r\n\r\n this.$backdrop = $('
')\r\n .appendTo(document.body)\r\n\r\n this.$element.on('click.dismiss.modal', $.proxy(function (e) {\r\n if (e.target !== e.currentTarget) return\r\n this.options.backdrop == 'static'\r\n ? this.$element[0].focus.call(this.$element[0])\r\n : this.hide.call(this)\r\n }, this))\r\n\r\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\r\n\r\n this.$backdrop.addClass('in')\r\n\r\n if (!callback) return\r\n\r\n doAnimate ?\r\n this.$backdrop\r\n .one($.support.transition.end, callback)\r\n .emulateTransitionEnd(150) :\r\n callback()\r\n\r\n } else if (!this.isShown && this.$backdrop) {\r\n this.$backdrop.removeClass('in')\r\n\r\n $.support.transition && this.$element.hasClass('fade')?\r\n this.$backdrop\r\n .one($.support.transition.end, callback)\r\n .emulateTransitionEnd(150) :\r\n callback()\r\n\r\n } else if (callback) {\r\n callback()\r\n }\r\n }\r\n\r\n\r\n // MODAL PLUGIN DEFINITION\r\n // =======================\r\n\r\n var old = $.fn.modal\r\n\r\n $.fn.modal = function (option, _relatedTarget) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.modal')\r\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\r\n if (typeof option == 'string') data[option](_relatedTarget)\r\n else if (options.show) data.show(_relatedTarget)\r\n })\r\n }\r\n\r\n $.fn.modal.Constructor = Modal\r\n\r\n\r\n // MODAL NO CONFLICT\r\n // =================\r\n\r\n $.fn.modal.noConflict = function () {\r\n $.fn.modal = old\r\n return this\r\n }\r\n\r\n\r\n // MODAL DATA-API\r\n // ==============\r\n\r\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\r\n var $this = $(this)\r\n var href = $this.attr('href')\r\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) //strip for ie7\r\n var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\r\n\r\n e.preventDefault()\r\n\r\n $target\r\n .modal(option, this)\r\n .one('hide', function () {\r\n $this.is(':visible') && $this.focus()\r\n })\r\n })\r\n\r\n $(document)\r\n .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })\r\n .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: tooltip.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#tooltip\r\n * Inspired by the original jQuery.tipsy by Jason Frame\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // TOOLTIP PUBLIC CLASS DEFINITION\r\n // ===============================\r\n\r\n var Tooltip = function (element, options) {\r\n this.type =\r\n this.options =\r\n this.enabled =\r\n this.timeout =\r\n this.hoverState =\r\n this.$element = null\r\n\r\n this.init('tooltip', element, options)\r\n }\r\n\r\n Tooltip.DEFAULTS = {\r\n animation: true\r\n , placement: 'top'\r\n , selector: false\r\n , template: '
'\r\n , trigger: 'hover focus'\r\n , title: ''\r\n , delay: 0\r\n , html: false\r\n , container: false\r\n }\r\n\r\n Tooltip.prototype.init = function (type, element, options) {\r\n this.enabled = true\r\n this.type = type\r\n this.$element = $(element)\r\n this.options = this.getOptions(options)\r\n\r\n var triggers = this.options.trigger.split(' ')\r\n\r\n for (var i = triggers.length; i--;) {\r\n var trigger = triggers[i]\r\n\r\n if (trigger == 'click') {\r\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\r\n } else if (trigger != 'manual') {\r\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'\r\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'\r\n\r\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\r\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\r\n }\r\n }\r\n\r\n this.options.selector ?\r\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\r\n this.fixTitle()\r\n }\r\n\r\n Tooltip.prototype.getDefaults = function () {\r\n return Tooltip.DEFAULTS\r\n }\r\n\r\n Tooltip.prototype.getOptions = function (options) {\r\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\r\n\r\n if (options.delay && typeof options.delay == 'number') {\r\n options.delay = {\r\n show: options.delay\r\n , hide: options.delay\r\n }\r\n }\r\n\r\n return options\r\n }\r\n\r\n Tooltip.prototype.getDelegateOptions = function () {\r\n var options = {}\r\n var defaults = this.getDefaults()\r\n\r\n this._options && $.each(this._options, function (key, value) {\r\n if (defaults[key] != value) options[key] = value\r\n })\r\n\r\n return options\r\n }\r\n\r\n Tooltip.prototype.enter = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)\r\n\r\n clearTimeout(self.timeout)\r\n\r\n self.hoverState = 'in'\r\n\r\n if (!self.options.delay || !self.options.delay.show) return self.show()\r\n\r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'in') self.show()\r\n }, self.options.delay.show)\r\n }\r\n\r\n Tooltip.prototype.leave = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)\r\n\r\n clearTimeout(self.timeout)\r\n\r\n self.hoverState = 'out'\r\n\r\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\r\n\r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'out') self.hide()\r\n }, self.options.delay.hide)\r\n }\r\n\r\n Tooltip.prototype.show = function () {\r\n var e = $.Event('show.bs.'+ this.type)\r\n\r\n if (this.hasContent() && this.enabled) {\r\n this.$element.trigger(e)\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n var $tip = this.tip()\r\n\r\n this.setContent()\r\n\r\n if (this.options.animation) $tip.addClass('fade')\r\n\r\n var placement = typeof this.options.placement == 'function' ?\r\n this.options.placement.call(this, $tip[0], this.$element[0]) :\r\n this.options.placement\r\n\r\n var autoToken = /\\s?auto?\\s?/i\r\n var autoPlace = autoToken.test(placement)\r\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\r\n\r\n $tip\r\n .detach()\r\n .css({ top: 0, left: 0, display: 'block' })\r\n .addClass(placement)\r\n\r\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\r\n\r\n var pos = this.getPosition()\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n\r\n if (autoPlace) {\r\n var $parent = this.$element.parent()\r\n\r\n var orgPlacement = placement\r\n var docScroll = document.documentElement.scrollTop || document.body.scrollTop\r\n var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()\r\n var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()\r\n var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left\r\n\r\n placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :\r\n placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :\r\n placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :\r\n placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :\r\n placement\r\n\r\n $tip\r\n .removeClass(orgPlacement)\r\n .addClass(placement)\r\n }\r\n\r\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\r\n\r\n this.applyPlacement(calculatedOffset, placement)\r\n this.$element.trigger('shown.bs.' + this.type)\r\n }\r\n }\r\n\r\n Tooltip.prototype.applyPlacement = function(offset, placement) {\r\n var replace\r\n var $tip = this.tip()\r\n var width = $tip[0].offsetWidth\r\n var height = $tip[0].offsetHeight\r\n\r\n // manually read margins because getBoundingClientRect includes difference\r\n var marginTop = parseInt($tip.css('margin-top'), 10)\r\n var marginLeft = parseInt($tip.css('margin-left'), 10)\r\n\r\n // we must check for NaN for ie 8/9\r\n if (isNaN(marginTop)) marginTop = 0\r\n if (isNaN(marginLeft)) marginLeft = 0\r\n\r\n offset.top = offset.top + marginTop\r\n offset.left = offset.left + marginLeft\r\n\r\n $tip\r\n .offset(offset)\r\n .addClass('in')\r\n\r\n // check to see if placing tip in new offset caused the tip to resize itself\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n\r\n if (placement == 'top' && actualHeight != height) {\r\n replace = true\r\n offset.top = offset.top + height - actualHeight\r\n }\r\n\r\n if (/bottom|top/.test(placement)) {\r\n var delta = 0\r\n\r\n if (offset.left < 0) {\r\n delta = offset.left * -2\r\n offset.left = 0\r\n\r\n $tip.offset(offset)\r\n\r\n actualWidth = $tip[0].offsetWidth\r\n actualHeight = $tip[0].offsetHeight\r\n }\r\n\r\n this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')\r\n } else {\r\n this.replaceArrow(actualHeight - height, actualHeight, 'top')\r\n }\r\n\r\n if (replace) $tip.offset(offset)\r\n }\r\n\r\n Tooltip.prototype.replaceArrow = function(delta, dimension, position) {\r\n this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + \"%\") : '')\r\n }\r\n\r\n Tooltip.prototype.setContent = function () {\r\n var $tip = this.tip()\r\n var title = this.getTitle()\r\n\r\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\r\n $tip.removeClass('fade in top bottom left right')\r\n }\r\n\r\n Tooltip.prototype.hide = function () {\r\n var that = this\r\n var $tip = this.tip()\r\n var e = $.Event('hide.bs.' + this.type)\r\n\r\n function complete() {\r\n if (that.hoverState != 'in') $tip.detach()\r\n }\r\n\r\n this.$element.trigger(e)\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $tip.removeClass('in')\r\n\r\n $.support.transition && this.$tip.hasClass('fade') ?\r\n $tip\r\n .one($.support.transition.end, complete)\r\n .emulateTransitionEnd(150) :\r\n complete()\r\n\r\n this.$element.trigger('hidden.bs.' + this.type)\r\n\r\n return this\r\n }\r\n\r\n Tooltip.prototype.fixTitle = function () {\r\n var $e = this.$element\r\n if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {\r\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\r\n }\r\n }\r\n\r\n Tooltip.prototype.hasContent = function () {\r\n return this.getTitle()\r\n }\r\n\r\n Tooltip.prototype.getPosition = function () {\r\n var el = this.$element[0]\r\n return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {\r\n width: el.offsetWidth\r\n , height: el.offsetHeight\r\n }, this.$element.offset())\r\n }\r\n\r\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\r\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\r\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\r\n }\r\n\r\n Tooltip.prototype.getTitle = function () {\r\n var title\r\n var $e = this.$element\r\n var o = this.options\r\n\r\n title = $e.attr('data-original-title')\r\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\r\n\r\n return title\r\n }\r\n\r\n Tooltip.prototype.tip = function () {\r\n return this.$tip = this.$tip || $(this.options.template)\r\n }\r\n\r\n Tooltip.prototype.arrow = function () {\r\n return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')\r\n }\r\n\r\n Tooltip.prototype.validate = function () {\r\n if (!this.$element[0].parentNode) {\r\n this.hide()\r\n this.$element = null\r\n this.options = null\r\n }\r\n }\r\n\r\n Tooltip.prototype.enable = function () {\r\n this.enabled = true\r\n }\r\n\r\n Tooltip.prototype.disable = function () {\r\n this.enabled = false\r\n }\r\n\r\n Tooltip.prototype.toggleEnabled = function () {\r\n this.enabled = !this.enabled\r\n }\r\n\r\n Tooltip.prototype.toggle = function (e) {\r\n var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this\r\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\r\n }\r\n\r\n Tooltip.prototype.destroy = function () {\r\n this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)\r\n }\r\n\r\n\r\n // TOOLTIP PLUGIN DEFINITION\r\n // =========================\r\n\r\n var old = $.fn.tooltip\r\n\r\n $.fn.tooltip = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tooltip')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n $.fn.tooltip.Constructor = Tooltip\r\n\r\n\r\n // TOOLTIP NO CONFLICT\r\n // ===================\r\n\r\n $.fn.tooltip.noConflict = function () {\r\n $.fn.tooltip = old\r\n return this\r\n }\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: popover.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#popovers\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // POPOVER PUBLIC CLASS DEFINITION\r\n // ===============================\r\n\r\n var Popover = function (element, options) {\r\n this.init('popover', element, options)\r\n }\r\n\r\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\r\n\r\n Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {\r\n placement: 'right'\r\n , trigger: 'click'\r\n , content: ''\r\n , template: '

'\r\n })\r\n\r\n\r\n // NOTE: POPOVER EXTENDS tooltip.js\r\n // ================================\r\n\r\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\r\n\r\n Popover.prototype.constructor = Popover\r\n\r\n Popover.prototype.getDefaults = function () {\r\n return Popover.DEFAULTS\r\n }\r\n\r\n Popover.prototype.setContent = function () {\r\n var $tip = this.tip()\r\n var title = this.getTitle()\r\n var content = this.getContent()\r\n\r\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\r\n $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)\r\n\r\n $tip.removeClass('fade top bottom left right in')\r\n\r\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\r\n // this manually by checking the contents.\r\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\r\n }\r\n\r\n Popover.prototype.hasContent = function () {\r\n return this.getTitle() || this.getContent()\r\n }\r\n\r\n Popover.prototype.getContent = function () {\r\n var $e = this.$element\r\n var o = this.options\r\n\r\n return $e.attr('data-content')\r\n || (typeof o.content == 'function' ?\r\n o.content.call($e[0]) :\r\n o.content)\r\n }\r\n\r\n Popover.prototype.arrow = function () {\r\n return this.$arrow = this.$arrow || this.tip().find('.arrow')\r\n }\r\n\r\n Popover.prototype.tip = function () {\r\n if (!this.$tip) this.$tip = $(this.options.template)\r\n return this.$tip\r\n }\r\n\r\n\r\n // POPOVER PLUGIN DEFINITION\r\n // =========================\r\n\r\n var old = $.fn.popover\r\n\r\n $.fn.popover = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.popover')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n $.fn.popover.Constructor = Popover\r\n\r\n\r\n // POPOVER NO CONFLICT\r\n // ===================\r\n\r\n $.fn.popover.noConflict = function () {\r\n $.fn.popover = old\r\n return this\r\n }\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: scrollspy.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#scrollspy\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // SCROLLSPY CLASS DEFINITION\r\n // ==========================\r\n\r\n function ScrollSpy(element, options) {\r\n var href\r\n var process = $.proxy(this.process, this)\r\n\r\n this.$element = $(element).is('body') ? $(window) : $(element)\r\n this.$body = $('body')\r\n this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)\r\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\r\n this.selector = (this.options.target\r\n || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) //strip for ie7\r\n || '') + ' .nav li > a'\r\n this.offsets = $([])\r\n this.targets = $([])\r\n this.activeTarget = null\r\n\r\n this.refresh()\r\n this.process()\r\n }\r\n\r\n ScrollSpy.DEFAULTS = {\r\n offset: 10\r\n }\r\n\r\n ScrollSpy.prototype.refresh = function () {\r\n var offsetMethod = this.$element[0] == window ? 'offset' : 'position'\r\n\r\n this.offsets = $([])\r\n this.targets = $([])\r\n\r\n var self = this\r\n var $targets = this.$body\r\n .find(this.selector)\r\n .map(function () {\r\n var $el = $(this)\r\n var href = $el.data('target') || $el.attr('href')\r\n var $href = /^#\\w/.test(href) && $(href)\r\n\r\n return ($href\r\n && $href.length\r\n && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null\r\n })\r\n .sort(function (a, b) { return a[0] - b[0] })\r\n .each(function () {\r\n self.offsets.push(this[0])\r\n self.targets.push(this[1])\r\n })\r\n }\r\n\r\n ScrollSpy.prototype.process = function () {\r\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\r\n var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight\r\n var maxScroll = scrollHeight - this.$scrollElement.height()\r\n var offsets = this.offsets\r\n var targets = this.targets\r\n var activeTarget = this.activeTarget\r\n var i\r\n\r\n if (scrollTop >= maxScroll) {\r\n return activeTarget != (i = targets.last()[0]) && this.activate(i)\r\n }\r\n\r\n for (i = offsets.length; i--;) {\r\n activeTarget != targets[i]\r\n && scrollTop >= offsets[i]\r\n && (!offsets[i + 1] || scrollTop <= offsets[i + 1])\r\n && this.activate( targets[i] )\r\n }\r\n }\r\n\r\n ScrollSpy.prototype.activate = function (target) {\r\n this.activeTarget = target\r\n\r\n $(this.selector)\r\n .parents('.active')\r\n .removeClass('active')\r\n\r\n var selector = this.selector\r\n + '[data-target=\"' + target + '\"],'\r\n + this.selector + '[href=\"' + target + '\"]'\r\n\r\n var active = $(selector)\r\n .parents('li')\r\n .addClass('active')\r\n\r\n if (active.parent('.dropdown-menu').length) {\r\n active = active\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n }\r\n\r\n active.trigger('activate')\r\n }\r\n\r\n\r\n // SCROLLSPY PLUGIN DEFINITION\r\n // ===========================\r\n\r\n var old = $.fn.scrollspy\r\n\r\n $.fn.scrollspy = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.scrollspy')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n $.fn.scrollspy.Constructor = ScrollSpy\r\n\r\n\r\n // SCROLLSPY NO CONFLICT\r\n // =====================\r\n\r\n $.fn.scrollspy.noConflict = function () {\r\n $.fn.scrollspy = old\r\n return this\r\n }\r\n\r\n\r\n // SCROLLSPY DATA-API\r\n // ==================\r\n\r\n $(window).on('load', function () {\r\n $('[data-spy=\"scroll\"]').each(function () {\r\n var $spy = $(this)\r\n $spy.scrollspy($spy.data())\r\n })\r\n })\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: tab.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#tabs\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // TAB CLASS DEFINITION\r\n // ====================\r\n\r\n var Tab = function (element) {\r\n this.element = $(element)\r\n }\r\n\r\n Tab.prototype.show = function () {\r\n var $this = this.element\r\n var $ul = $this.closest('ul:not(.dropdown-menu)')\r\n var selector = $this.attr('data-target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') //strip for ie7\r\n }\r\n\r\n if ($this.parent('li').hasClass('active')) return\r\n\r\n var previous = $ul.find('.active:last a')[0]\r\n var e = $.Event('show.bs.tab', {\r\n relatedTarget: previous\r\n })\r\n\r\n $this.trigger(e)\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n var $target = $(selector)\r\n\r\n this.activate($this.parent('li'), $ul)\r\n this.activate($target, $target.parent(), function () {\r\n $this.trigger({\r\n type: 'shown.bs.tab'\r\n , relatedTarget: previous\r\n })\r\n })\r\n }\r\n\r\n Tab.prototype.activate = function (element, container, callback) {\r\n var $active = container.find('> .active')\r\n var transition = callback\r\n && $.support.transition\r\n && $active.hasClass('fade')\r\n\r\n function next() {\r\n $active\r\n .removeClass('active')\r\n .find('> .dropdown-menu > .active')\r\n .removeClass('active')\r\n\r\n element.addClass('active')\r\n\r\n if (transition) {\r\n element[0].offsetWidth // reflow for transition\r\n element.addClass('in')\r\n } else {\r\n element.removeClass('fade')\r\n }\r\n\r\n if (element.parent('.dropdown-menu')) {\r\n element.closest('li.dropdown').addClass('active')\r\n }\r\n\r\n callback && callback()\r\n }\r\n\r\n transition ?\r\n $active\r\n .one($.support.transition.end, next)\r\n .emulateTransitionEnd(150) :\r\n next()\r\n\r\n $active.removeClass('in')\r\n }\r\n\r\n\r\n // TAB PLUGIN DEFINITION\r\n // =====================\r\n\r\n var old = $.fn.tab\r\n\r\n $.fn.tab = function ( option ) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tab')\r\n\r\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n $.fn.tab.Constructor = Tab\r\n\r\n\r\n // TAB NO CONFLICT\r\n // ===============\r\n\r\n $.fn.tab.noConflict = function () {\r\n $.fn.tab = old\r\n return this\r\n }\r\n\r\n\r\n // TAB DATA-API\r\n // ============\r\n\r\n $(document).on('click.bs.tab.data-api', '[data-toggle=\"tab\"], [data-toggle=\"pill\"]', function (e) {\r\n e.preventDefault()\r\n $(this).tab('show')\r\n })\r\n\r\n}(window.jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: affix.js v3.0.0\r\n * http://twbs.github.com/bootstrap/javascript.html#affix\r\n * ========================================================================\r\n * Copyright 2012 Twitter, Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) { \"use strict\";\r\n\r\n // AFFIX CLASS DEFINITION\r\n // ======================\r\n\r\n var Affix = function (element, options) {\r\n this.options = $.extend({}, Affix.DEFAULTS, options)\r\n this.$window = $(window)\r\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\r\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\r\n\r\n this.$element = $(element)\r\n this.affixed =\r\n this.unpin = null\r\n\r\n this.checkPosition()\r\n }\r\n\r\n Affix.RESET = 'affix affix-top affix-bottom'\r\n\r\n Affix.DEFAULTS = {\r\n offset: 0\r\n }\r\n\r\n Affix.prototype.checkPositionWithEventLoop = function () {\r\n setTimeout($.proxy(this.checkPosition, this), 1)\r\n }\r\n\r\n Affix.prototype.checkPosition = function () {\r\n if (!this.$element.is(':visible')) return\r\n\r\n var scrollHeight = $(document).height()\r\n var scrollTop = this.$window.scrollTop()\r\n var position = this.$element.offset()\r\n var offset = this.options.offset\r\n var offsetTop = offset.top\r\n var offsetBottom = offset.bottom\r\n\r\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\r\n if (typeof offsetTop == 'function') offsetTop = offset.top()\r\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()\r\n\r\n var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :\r\n offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :\r\n offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false\r\n\r\n if (this.affixed === affix) return\r\n if (this.unpin) this.$element.css('top', '')\r\n\r\n this.affixed = affix\r\n this.unpin = affix == 'bottom' ? position.top - scrollTop : null\r\n\r\n this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : ''))\r\n\r\n if (affix == 'bottom') {\r\n this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() })\r\n }\r\n }\r\n\r\n\r\n // AFFIX PLUGIN DEFINITION\r\n // =======================\r\n\r\n var old = $.fn.affix\r\n\r\n $.fn.affix = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.affix')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n $.fn.affix.Constructor = Affix\r\n\r\n\r\n // AFFIX NO CONFLICT\r\n // =================\r\n\r\n $.fn.affix.noConflict = function () {\r\n $.fn.affix = old\r\n return this\r\n }\r\n\r\n\r\n // AFFIX DATA-API\r\n // ==============\r\n\r\n $(window).on('load', function () {\r\n $('[data-spy=\"affix\"]').each(function () {\r\n var $spy = $(this)\r\n var data = $spy.data()\r\n\r\n data.offset = data.offset || {}\r\n\r\n if (data.offsetBottom) data.offset.bottom = data.offsetBottom\r\n if (data.offsetTop) data.offset.top = data.offsetTop\r\n\r\n $spy.affix(data)\r\n })\r\n })\r\n\r\n}(window.jQuery);\r\n","/*!\r\n * Modernizr v2.7.1\r\n * www.modernizr.com\r\n *\r\n * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton\r\n * Available under the BSD and MIT licenses: www.modernizr.com/license/\r\n */\r\n\r\n/*\r\n * Modernizr tests which native CSS3 and HTML5 features are available in\r\n * the current UA and makes the results available to you in two ways:\r\n * as properties on a global Modernizr object, and as classes on the\r\n * element. This information allows you to progressively enhance\r\n * your pages with a granular level of control over the experience.\r\n *\r\n * Modernizr has an optional (not included) conditional resource loader\r\n * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).\r\n * To get a build that includes Modernizr.load(), as well as choosing\r\n * which tests to include, go to www.modernizr.com/download/\r\n *\r\n * Authors Faruk Ates, Paul Irish, Alex Sexton\r\n * Contributors Ryan Seddon, Ben Alman\r\n */\r\n\r\nwindow.Modernizr = (function( window, document, undefined ) {\r\n\r\n var version = '2.7.1',\r\n\r\n Modernizr = {},\r\n\r\n /*>>cssclasses*/\r\n // option for enabling the HTML classes to be added\r\n enableClasses = true,\r\n /*>>cssclasses*/\r\n\r\n docElement = document.documentElement,\r\n\r\n /**\r\n * Create our \"modernizr\" element that we do most feature tests on.\r\n */\r\n mod = 'modernizr',\r\n modElem = document.createElement(mod),\r\n mStyle = modElem.style,\r\n\r\n /**\r\n * Create the input element for various Web Forms feature tests.\r\n */\r\n inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,\r\n\r\n /*>>smile*/\r\n smile = ':)',\r\n /*>>smile*/\r\n\r\n toString = {}.toString,\r\n\r\n // TODO :: make the prefixes more granular\r\n /*>>prefixes*/\r\n // List of property values to set for css tests. See ticket #21\r\n prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),\r\n /*>>prefixes*/\r\n\r\n /*>>domprefixes*/\r\n // Following spec is to expose vendor-specific style properties as:\r\n // elem.style.WebkitBorderRadius\r\n // and the following would be incorrect:\r\n // elem.style.webkitBorderRadius\r\n\r\n // Webkit ghosts their properties in lowercase but Opera & Moz do not.\r\n // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+\r\n // erik.eae.net/archives/2008/03/10/21.48.10/\r\n\r\n // More here: github.com/Modernizr/Modernizr/issues/issue/21\r\n omPrefixes = 'Webkit Moz O ms',\r\n\r\n cssomPrefixes = omPrefixes.split(' '),\r\n\r\n domPrefixes = omPrefixes.toLowerCase().split(' '),\r\n /*>>domprefixes*/\r\n\r\n /*>>ns*/\r\n ns = {'svg': 'http://www.w3.org/2000/svg'},\r\n /*>>ns*/\r\n\r\n tests = {},\r\n inputs = {},\r\n attrs = {},\r\n\r\n classes = [],\r\n\r\n slice = classes.slice,\r\n\r\n featureName, // used in testing loop\r\n\r\n\r\n /*>>teststyles*/\r\n // Inject element with style element and some CSS rules\r\n injectElementWithStyles = function( rule, callback, nodes, testnames ) {\r\n\r\n var style, ret, node, docOverflow,\r\n div = document.createElement('div'),\r\n // After page load injecting a fake body doesn't work so check if body exists\r\n body = document.body,\r\n // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.\r\n fakeBody = body || document.createElement('body');\r\n\r\n if ( parseInt(nodes, 10) ) {\r\n // In order not to give false positives we create a node for each test\r\n // This also allows the method to scale for unspecified uses\r\n while ( nodes-- ) {\r\n node = document.createElement('div');\r\n node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\r\n div.appendChild(node);\r\n }\r\n }\r\n\r\n // '].join('');\r\n div.id = mod;\r\n // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.\r\n // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270\r\n (body ? div : fakeBody).innerHTML += style;\r\n fakeBody.appendChild(div);\r\n if ( !body ) {\r\n //avoid crashing IE8, if background image is used\r\n fakeBody.style.background = '';\r\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\r\n fakeBody.style.overflow = 'hidden';\r\n docOverflow = docElement.style.overflow;\r\n docElement.style.overflow = 'hidden';\r\n docElement.appendChild(fakeBody);\r\n }\r\n\r\n ret = callback(div, rule);\r\n // If this is done after page load we don't want to remove the body so check if body exists\r\n if ( !body ) {\r\n fakeBody.parentNode.removeChild(fakeBody);\r\n docElement.style.overflow = docOverflow;\r\n } else {\r\n div.parentNode.removeChild(div);\r\n }\r\n\r\n return !!ret;\r\n\r\n },\r\n /*>>teststyles*/\r\n\r\n /*>>mq*/\r\n // adapted from matchMedia polyfill\r\n // by Scott Jehl and Paul Irish\r\n // gist.github.com/786768\r\n testMediaQuery = function( mq ) {\r\n\r\n var matchMedia = window.matchMedia || window.msMatchMedia;\r\n if ( matchMedia ) {\r\n return matchMedia(mq).matches;\r\n }\r\n\r\n var bool;\r\n\r\n injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {\r\n bool = (window.getComputedStyle ?\r\n getComputedStyle(node, null) :\r\n node.currentStyle)['position'] == 'absolute';\r\n });\r\n\r\n return bool;\r\n\r\n },\r\n /*>>mq*/\r\n\r\n\r\n /*>>hasevent*/\r\n //\r\n // isEventSupported determines if a given element supports the given event\r\n // kangax.github.com/iseventsupported/\r\n //\r\n // The following results are known incorrects:\r\n // Modernizr.hasEvent(\"webkitTransitionEnd\", elem) // false negative\r\n // Modernizr.hasEvent(\"textInput\") // in Webkit. github.com/Modernizr/Modernizr/issues/333\r\n // ...\r\n isEventSupported = (function() {\r\n\r\n var TAGNAMES = {\r\n 'select': 'input', 'change': 'input',\r\n 'submit': 'form', 'reset': 'form',\r\n 'error': 'img', 'load': 'img', 'abort': 'img'\r\n };\r\n\r\n function isEventSupported( eventName, element ) {\r\n\r\n element = element || document.createElement(TAGNAMES[eventName] || 'div');\r\n eventName = 'on' + eventName;\r\n\r\n // When using `setAttribute`, IE skips \"unload\", WebKit skips \"unload\" and \"resize\", whereas `in` \"catches\" those\r\n var isSupported = eventName in element;\r\n\r\n if ( !isSupported ) {\r\n // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element\r\n if ( !element.setAttribute ) {\r\n element = document.createElement('div');\r\n }\r\n if ( element.setAttribute && element.removeAttribute ) {\r\n element.setAttribute(eventName, '');\r\n isSupported = is(element[eventName], 'function');\r\n\r\n // If property was created, \"remove it\" (by setting value to `undefined`)\r\n if ( !is(element[eventName], 'undefined') ) {\r\n element[eventName] = undefined;\r\n }\r\n element.removeAttribute(eventName);\r\n }\r\n }\r\n\r\n element = null;\r\n return isSupported;\r\n }\r\n return isEventSupported;\r\n })(),\r\n /*>>hasevent*/\r\n\r\n // TODO :: Add flag for hasownprop ? didn't last time\r\n\r\n // hasOwnProperty shim by kangax needed for Safari 2.0 support\r\n _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;\r\n\r\n if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {\r\n hasOwnProp = function (object, property) {\r\n return _hasOwnProperty.call(object, property);\r\n };\r\n }\r\n else {\r\n hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */\r\n return ((property in object) && is(object.constructor.prototype[property], 'undefined'));\r\n };\r\n }\r\n\r\n // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js\r\n // es5.github.com/#x15.3.4.5\r\n\r\n if (!Function.prototype.bind) {\r\n Function.prototype.bind = function bind(that) {\r\n\r\n var target = this;\r\n\r\n if (typeof target != \"function\") {\r\n throw new TypeError();\r\n }\r\n\r\n var args = slice.call(arguments, 1),\r\n bound = function () {\r\n\r\n if (this instanceof bound) {\r\n\r\n var F = function(){};\r\n F.prototype = target.prototype;\r\n var self = new F();\r\n\r\n var result = target.apply(\r\n self,\r\n args.concat(slice.call(arguments))\r\n );\r\n if (Object(result) === result) {\r\n return result;\r\n }\r\n return self;\r\n\r\n } else {\r\n\r\n return target.apply(\r\n that,\r\n args.concat(slice.call(arguments))\r\n );\r\n\r\n }\r\n\r\n };\r\n\r\n return bound;\r\n };\r\n }\r\n\r\n /**\r\n * setCss applies given styles to the Modernizr DOM node.\r\n */\r\n function setCss( str ) {\r\n mStyle.cssText = str;\r\n }\r\n\r\n /**\r\n * setCssAll extrapolates all vendor-specific css strings.\r\n */\r\n function setCssAll( str1, str2 ) {\r\n return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));\r\n }\r\n\r\n /**\r\n * is returns a boolean for if typeof obj is exactly type.\r\n */\r\n function is( obj, type ) {\r\n return typeof obj === type;\r\n }\r\n\r\n /**\r\n * contains returns a boolean for if substr is found within str.\r\n */\r\n function contains( str, substr ) {\r\n return !!~('' + str).indexOf(substr);\r\n }\r\n\r\n /*>>testprop*/\r\n\r\n // testProps is a generic CSS / DOM property test.\r\n\r\n // In testing support for a given CSS property, it's legit to test:\r\n // `elem.style[styleName] !== undefined`\r\n // If the property is supported it will return an empty string,\r\n // if unsupported it will return undefined.\r\n\r\n // We'll take advantage of this quick test and skip setting a style\r\n // on our modernizr element, but instead just testing undefined vs\r\n // empty string.\r\n\r\n // Because the testing of the CSS property names (with \"-\", as\r\n // opposed to the camelCase DOM properties) is non-portable and\r\n // non-standard but works in WebKit and IE (but not Gecko or Opera),\r\n // we explicitly reject properties with dashes so that authors\r\n // developing in WebKit or IE first don't end up with\r\n // browser-specific content by accident.\r\n\r\n function testProps( props, prefixed ) {\r\n for ( var i in props ) {\r\n var prop = props[i];\r\n if ( !contains(prop, \"-\") && mStyle[prop] !== undefined ) {\r\n return prefixed == 'pfx' ? prop : true;\r\n }\r\n }\r\n return false;\r\n }\r\n /*>>testprop*/\r\n\r\n // TODO :: add testDOMProps\r\n /**\r\n * testDOMProps is a generic DOM property test; if a browser supports\r\n * a certain property, it won't return undefined for it.\r\n */\r\n function testDOMProps( props, obj, elem ) {\r\n for ( var i in props ) {\r\n var item = obj[props[i]];\r\n if ( item !== undefined) {\r\n\r\n // return the property name as a string\r\n if (elem === false) return props[i];\r\n\r\n // let's bind a function\r\n if (is(item, 'function')){\r\n // default to autobind unless override\r\n return item.bind(elem || obj);\r\n }\r\n\r\n // return the unbound function or obj or value\r\n return item;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /*>>testallprops*/\r\n /**\r\n * testPropsAll tests a list of DOM properties we want to check against.\r\n * We specify literally ALL possible (known and/or likely) properties on\r\n * the element including the non-vendor prefixed one, for forward-\r\n * compatibility.\r\n */\r\n function testPropsAll( prop, prefixed, elem ) {\r\n\r\n var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\r\n props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');\r\n\r\n // did they call .prefixed('boxSizing') or are we just testing a prop?\r\n if(is(prefixed, \"string\") || is(prefixed, \"undefined\")) {\r\n return testProps(props, prefixed);\r\n\r\n // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])\r\n } else {\r\n props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');\r\n return testDOMProps(props, prefixed, elem);\r\n }\r\n }\r\n /*>>testallprops*/\r\n\r\n\r\n /**\r\n * Tests\r\n * -----\r\n */\r\n\r\n // The *new* flexbox\r\n // dev.w3.org/csswg/css3-flexbox\r\n\r\n tests['flexbox'] = function() {\r\n return testPropsAll('flexWrap');\r\n };\r\n\r\n // The *old* flexbox\r\n // www.w3.org/TR/2009/WD-css3-flexbox-20090723/\r\n\r\n tests['flexboxlegacy'] = function() {\r\n return testPropsAll('boxDirection');\r\n };\r\n\r\n // On the S60 and BB Storm, getContext exists, but always returns undefined\r\n // so we actually have to call getContext() to verify\r\n // github.com/Modernizr/Modernizr/issues/issue/97/\r\n\r\n tests['canvas'] = function() {\r\n var elem = document.createElement('canvas');\r\n return !!(elem.getContext && elem.getContext('2d'));\r\n };\r\n\r\n tests['canvastext'] = function() {\r\n return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));\r\n };\r\n\r\n // webk.it/70117 is tracking a legit WebGL feature detect proposal\r\n\r\n // We do a soft detect which may false positive in order to avoid\r\n // an expensive context creation: bugzil.la/732441\r\n\r\n tests['webgl'] = function() {\r\n return !!window.WebGLRenderingContext;\r\n };\r\n\r\n /*\r\n * The Modernizr.touch test only indicates if the browser supports\r\n * touch events, which does not necessarily reflect a touchscreen\r\n * device, as evidenced by tablets running Windows 7 or, alas,\r\n * the Palm Pre / WebOS (touch) phones.\r\n *\r\n * Additionally, Chrome (desktop) used to lie about its support on this,\r\n * but that has since been rectified: crbug.com/36415\r\n *\r\n * We also test for Firefox 4 Multitouch Support.\r\n *\r\n * For more info, see: modernizr.github.com/Modernizr/touch.html\r\n */\r\n\r\n tests['touch'] = function() {\r\n var bool;\r\n\r\n if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\r\n bool = true;\r\n } else {\r\n injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {\r\n bool = node.offsetTop === 9;\r\n });\r\n }\r\n\r\n return bool;\r\n };\r\n\r\n\r\n // geolocation is often considered a trivial feature detect...\r\n // Turns out, it's quite tricky to get right:\r\n //\r\n // Using !!navigator.geolocation does two things we don't want. It:\r\n // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513\r\n // 2. Disables page caching in WebKit: webk.it/43956\r\n //\r\n // Meanwhile, in Firefox < 8, an about:config setting could expose\r\n // a false positive that would throw an exception: bugzil.la/688158\r\n\r\n tests['geolocation'] = function() {\r\n return 'geolocation' in navigator;\r\n };\r\n\r\n\r\n tests['postmessage'] = function() {\r\n return !!window.postMessage;\r\n };\r\n\r\n\r\n // Chrome incognito mode used to throw an exception when using openDatabase\r\n // It doesn't anymore.\r\n tests['websqldatabase'] = function() {\r\n return !!window.openDatabase;\r\n };\r\n\r\n // Vendors had inconsistent prefixing with the experimental Indexed DB:\r\n // - Webkit's implementation is accessible through webkitIndexedDB\r\n // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB\r\n // For speed, we don't test the legacy (and beta-only) indexedDB\r\n tests['indexedDB'] = function() {\r\n return !!testPropsAll(\"indexedDB\", window);\r\n };\r\n\r\n // documentMode logic from YUI to filter out IE8 Compat Mode\r\n // which false positives.\r\n tests['hashchange'] = function() {\r\n return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);\r\n };\r\n\r\n // Per 1.6:\r\n // This used to be Modernizr.historymanagement but the longer\r\n // name has been deprecated in favor of a shorter and property-matching one.\r\n // The old API is still available in 1.6, but as of 2.0 will throw a warning,\r\n // and in the first release thereafter disappear entirely.\r\n tests['history'] = function() {\r\n return !!(window.history && history.pushState);\r\n };\r\n\r\n tests['draganddrop'] = function() {\r\n var div = document.createElement('div');\r\n return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);\r\n };\r\n\r\n // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10\r\n // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.\r\n // FF10 still uses prefixes, so check for it until then.\r\n // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/\r\n tests['websockets'] = function() {\r\n return 'WebSocket' in window || 'MozWebSocket' in window;\r\n };\r\n\r\n\r\n // css-tricks.com/rgba-browser-support/\r\n tests['rgba'] = function() {\r\n // Set an rgba() color and check the returned value\r\n\r\n setCss('background-color:rgba(150,255,150,.5)');\r\n\r\n return contains(mStyle.backgroundColor, 'rgba');\r\n };\r\n\r\n tests['hsla'] = function() {\r\n // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,\r\n // except IE9 who retains it as hsla\r\n\r\n setCss('background-color:hsla(120,40%,100%,.5)');\r\n\r\n return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');\r\n };\r\n\r\n tests['multiplebgs'] = function() {\r\n // Setting multiple images AND a color on the background shorthand property\r\n // and then querying the style.background property value for the number of\r\n // occurrences of \"url(\" is a reliable method for detecting ACTUAL support for this!\r\n\r\n setCss('background:url(https://),url(https://),red url(https://)');\r\n\r\n // If the UA supports multiple backgrounds, there should be three occurrences\r\n // of the string \"url(\" in the return value for elemStyle.background\r\n\r\n return (/(url\\s*\\(.*?){3}/).test(mStyle.background);\r\n };\r\n\r\n\r\n\r\n // this will false positive in Opera Mini\r\n // github.com/Modernizr/Modernizr/issues/396\r\n\r\n tests['backgroundsize'] = function() {\r\n return testPropsAll('backgroundSize');\r\n };\r\n\r\n tests['borderimage'] = function() {\r\n return testPropsAll('borderImage');\r\n };\r\n\r\n\r\n // Super comprehensive table about all the unique implementations of\r\n // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance\r\n\r\n tests['borderradius'] = function() {\r\n return testPropsAll('borderRadius');\r\n };\r\n\r\n // WebOS unfortunately false positives on this test.\r\n tests['boxshadow'] = function() {\r\n return testPropsAll('boxShadow');\r\n };\r\n\r\n // FF3.0 will false positive on this test\r\n tests['textshadow'] = function() {\r\n return document.createElement('div').style.textShadow === '';\r\n };\r\n\r\n\r\n tests['opacity'] = function() {\r\n // Browsers that actually have CSS Opacity implemented have done so\r\n // according to spec, which means their return values are within the\r\n // range of [0.0,1.0] - including the leading zero.\r\n\r\n setCssAll('opacity:.55');\r\n\r\n // The non-literal . in this regex is intentional:\r\n // German Chrome returns this value as 0,55\r\n // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632\r\n return (/^0.55$/).test(mStyle.opacity);\r\n };\r\n\r\n\r\n // Note, Android < 4 will pass this test, but can only animate\r\n // a single property at a time\r\n // daneden.me/2011/12/putting-up-with-androids-bullshit/\r\n tests['cssanimations'] = function() {\r\n return testPropsAll('animationName');\r\n };\r\n\r\n\r\n tests['csscolumns'] = function() {\r\n return testPropsAll('columnCount');\r\n };\r\n\r\n\r\n tests['cssgradients'] = function() {\r\n /**\r\n * For CSS Gradients syntax, please see:\r\n * webkit.org/blog/175/introducing-css-gradients/\r\n * developer.mozilla.org/en/CSS/-moz-linear-gradient\r\n * developer.mozilla.org/en/CSS/-moz-radial-gradient\r\n * dev.w3.org/csswg/css3-images/#gradients-\r\n */\r\n\r\n var str1 = 'background-image:',\r\n str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',\r\n str3 = 'linear-gradient(left top,#9f9, white);';\r\n\r\n setCss(\r\n // legacy webkit syntax (FIXME: remove when syntax not in use anymore)\r\n (str1 + '-webkit- '.split(' ').join(str2 + str1) +\r\n // standard syntax // trailing 'background-image:'\r\n prefixes.join(str3 + str1)).slice(0, -str1.length)\r\n );\r\n\r\n return contains(mStyle.backgroundImage, 'gradient');\r\n };\r\n\r\n\r\n tests['cssreflections'] = function() {\r\n return testPropsAll('boxReflect');\r\n };\r\n\r\n\r\n tests['csstransforms'] = function() {\r\n return !!testPropsAll('transform');\r\n };\r\n\r\n\r\n tests['csstransforms3d'] = function() {\r\n\r\n var ret = !!testPropsAll('perspective');\r\n\r\n // Webkit's 3D transforms are passed off to the browser's own graphics renderer.\r\n // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in\r\n // some conditions. As a result, Webkit typically recognizes the syntax but\r\n // will sometimes throw a false positive, thus we must do a more thorough check:\r\n if ( ret && 'webkitPerspective' in docElement.style ) {\r\n\r\n // Webkit allows this media query to succeed only if the feature is enabled.\r\n // `@media (transform-3d),(-webkit-transform-3d){ ... }`\r\n injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {\r\n ret = node.offsetLeft === 9 && node.offsetHeight === 3;\r\n });\r\n }\r\n return ret;\r\n };\r\n\r\n\r\n tests['csstransitions'] = function() {\r\n return testPropsAll('transition');\r\n };\r\n\r\n\r\n /*>>fontface*/\r\n // @font-face detection routine by Diego Perini\r\n // javascript.nwbox.com/CSSSupport/\r\n\r\n // false positives:\r\n // WebOS github.com/Modernizr/Modernizr/issues/342\r\n // WP7 github.com/Modernizr/Modernizr/issues/538\r\n tests['fontface'] = function() {\r\n var bool;\r\n\r\n injectElementWithStyles('@font-face {font-family:\"font\";src:url(\"https://\")}', function( node, rule ) {\r\n var style = document.getElementById('smodernizr'),\r\n sheet = style.sheet || style.styleSheet,\r\n cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';\r\n\r\n bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;\r\n });\r\n\r\n return bool;\r\n };\r\n /*>>fontface*/\r\n\r\n // CSS generated content detection\r\n tests['generatedcontent'] = function() {\r\n var bool;\r\n\r\n injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:\"',smile,'\";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {\r\n bool = node.offsetHeight >= 3;\r\n });\r\n\r\n return bool;\r\n };\r\n\r\n\r\n\r\n // These tests evaluate support of the video/audio elements, as well as\r\n // testing what types of content they support.\r\n //\r\n // We're using the Boolean constructor here, so that we can extend the value\r\n // e.g. Modernizr.video // true\r\n // Modernizr.video.ogg // 'probably'\r\n //\r\n // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845\r\n // thx to NielsLeenheer and zcorpan\r\n\r\n // Note: in some older browsers, \"no\" was a return value instead of empty string.\r\n // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2\r\n // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5\r\n\r\n tests['video'] = function() {\r\n var elem = document.createElement('video'),\r\n bool = false;\r\n\r\n // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224\r\n try {\r\n if ( bool = !!elem.canPlayType ) {\r\n bool = new Boolean(bool);\r\n bool.ogg = elem.canPlayType('video/ogg; codecs=\"theora\"') .replace(/^no$/,'');\r\n\r\n // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546\r\n bool.h264 = elem.canPlayType('video/mp4; codecs=\"avc1.42E01E\"') .replace(/^no$/,'');\r\n\r\n bool.webm = elem.canPlayType('video/webm; codecs=\"vp8, vorbis\"').replace(/^no$/,'');\r\n }\r\n\r\n } catch(e) { }\r\n\r\n return bool;\r\n };\r\n\r\n tests['audio'] = function() {\r\n var elem = document.createElement('audio'),\r\n bool = false;\r\n\r\n try {\r\n if ( bool = !!elem.canPlayType ) {\r\n bool = new Boolean(bool);\r\n bool.ogg = elem.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/,'');\r\n bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,'');\r\n\r\n // Mimetypes accepted:\r\n // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements\r\n // bit.ly/iphoneoscodecs\r\n bool.wav = elem.canPlayType('audio/wav; codecs=\"1\"') .replace(/^no$/,'');\r\n bool.m4a = ( elem.canPlayType('audio/x-m4a;') ||\r\n elem.canPlayType('audio/aac;')) .replace(/^no$/,'');\r\n }\r\n } catch(e) { }\r\n\r\n return bool;\r\n };\r\n\r\n\r\n // In FF4, if disabled, window.localStorage should === null.\r\n\r\n // Normally, we could not test that directly and need to do a\r\n // `('localStorage' in window) && ` test first because otherwise Firefox will\r\n // throw bugzil.la/365772 if cookies are disabled\r\n\r\n // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem\r\n // will throw the exception:\r\n // QUOTA_EXCEEDED_ERRROR DOM Exception 22.\r\n // Peculiarly, getItem and removeItem calls do not throw.\r\n\r\n // Because we are forced to try/catch this, we'll go aggressive.\r\n\r\n // Just FWIW: IE8 Compat mode supports these features completely:\r\n // www.quirksmode.org/dom/html5.html\r\n // But IE8 doesn't support either with local files\r\n\r\n tests['localstorage'] = function() {\r\n try {\r\n localStorage.setItem(mod, mod);\r\n localStorage.removeItem(mod);\r\n return true;\r\n } catch(e) {\r\n return false;\r\n }\r\n };\r\n\r\n tests['sessionstorage'] = function() {\r\n try {\r\n sessionStorage.setItem(mod, mod);\r\n sessionStorage.removeItem(mod);\r\n return true;\r\n } catch(e) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n tests['webworkers'] = function() {\r\n return !!window.Worker;\r\n };\r\n\r\n\r\n tests['applicationcache'] = function() {\r\n return !!window.applicationCache;\r\n };\r\n\r\n\r\n // Thanks to Erik Dahlstrom\r\n tests['svg'] = function() {\r\n return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;\r\n };\r\n\r\n // specifically for SVG inline in HTML, not within XHTML\r\n // test page: paulirish.com/demo/inline-svg\r\n tests['inlinesvg'] = function() {\r\n var div = document.createElement('div');\r\n div.innerHTML = '';\r\n return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;\r\n };\r\n\r\n // SVG SMIL animation\r\n tests['smil'] = function() {\r\n return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));\r\n };\r\n\r\n // This test is only for clip paths in SVG proper, not clip paths on HTML content\r\n // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg\r\n\r\n // However read the comments to dig into applying SVG clippaths to HTML content here:\r\n // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491\r\n tests['svgclippaths'] = function() {\r\n return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));\r\n };\r\n\r\n /*>>webforms*/\r\n // input features and input types go directly onto the ret object, bypassing the tests loop.\r\n // Hold this guy to execute in a moment.\r\n function webforms() {\r\n /*>>input*/\r\n // Run through HTML5's new input attributes to see if the UA understands any.\r\n // We're using f which is the element created early on\r\n // Mike Taylr has created a comprehensive resource for testing these attributes\r\n // when applied to all input types:\r\n // miketaylr.com/code/input-type-attr.html\r\n // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\r\n\r\n // Only input placeholder is tested while textarea's placeholder is not.\r\n // Currently Safari 4 and Opera 11 have support only for the input placeholder\r\n // Both tests are available in feature-detects/forms-placeholder.js\r\n Modernizr['input'] = (function( props ) {\r\n for ( var i = 0, len = props.length; i < len; i++ ) {\r\n attrs[ props[i] ] = !!(props[i] in inputElem);\r\n }\r\n if (attrs.list){\r\n // safari false positive's on datalist: webk.it/74252\r\n // see also github.com/Modernizr/Modernizr/issues/146\r\n attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);\r\n }\r\n return attrs;\r\n })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));\r\n /*>>input*/\r\n\r\n /*>>inputtypes*/\r\n // Run through HTML5's new input types to see if the UA understands any.\r\n // This is put behind the tests runloop because it doesn't return a\r\n // true/false like all the other tests; instead, it returns an object\r\n // containing each input type with its corresponding true/false value\r\n\r\n // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/\r\n Modernizr['inputtypes'] = (function(props) {\r\n\r\n for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {\r\n\r\n inputElem.setAttribute('type', inputElemType = props[i]);\r\n bool = inputElem.type !== 'text';\r\n\r\n // We first check to see if the type we give it sticks..\r\n // If the type does, we feed it a textual value, which shouldn't be valid.\r\n // If the value doesn't stick, we know there's input sanitization which infers a custom UI\r\n if ( bool ) {\r\n\r\n inputElem.value = smile;\r\n inputElem.style.cssText = 'position:absolute;visibility:hidden;';\r\n\r\n if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {\r\n\r\n docElement.appendChild(inputElem);\r\n defaultView = document.defaultView;\r\n\r\n // Safari 2-4 allows the smiley as a value, despite making a slider\r\n bool = defaultView.getComputedStyle &&\r\n defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&\r\n // Mobile android web browser has false positive, so must\r\n // check the height to see if the widget is actually there.\r\n (inputElem.offsetHeight !== 0);\r\n\r\n docElement.removeChild(inputElem);\r\n\r\n } else if ( /^(search|tel)$/.test(inputElemType) ){\r\n // Spec doesn't define any special parsing or detectable UI\r\n // behaviors so we pass these through as true\r\n\r\n // Interestingly, opera fails the earlier test, so it doesn't\r\n // even make it here.\r\n\r\n } else if ( /^(url|email)$/.test(inputElemType) ) {\r\n // Real url and email support comes with prebaked validation.\r\n bool = inputElem.checkValidity && inputElem.checkValidity() === false;\r\n\r\n } else {\r\n // If the upgraded input compontent rejects the :) text, we got a winner\r\n bool = inputElem.value != smile;\r\n }\r\n }\r\n\r\n inputs[ props[i] ] = !!bool;\r\n }\r\n return inputs;\r\n })('search tel url email datetime date month week time datetime-local number range color'.split(' '));\r\n /*>>inputtypes*/\r\n }\r\n /*>>webforms*/\r\n\r\n\r\n // End of test definitions\r\n // -----------------------\r\n\r\n\r\n\r\n // Run through all tests and detect their support in the current UA.\r\n // todo: hypothetically we could be doing an array of tests and use a basic loop here.\r\n for ( var feature in tests ) {\r\n if ( hasOwnProp(tests, feature) ) {\r\n // run the test, throw the return value into the Modernizr,\r\n // then based on that boolean, define an appropriate className\r\n // and push it into an array of classes we'll join later.\r\n featureName = feature.toLowerCase();\r\n Modernizr[featureName] = tests[feature]();\r\n\r\n classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);\r\n }\r\n }\r\n\r\n /*>>webforms*/\r\n // input tests need to run.\r\n Modernizr.input || webforms();\r\n /*>>webforms*/\r\n\r\n\r\n /**\r\n * addTest allows the user to define their own feature tests\r\n * the result will be added onto the Modernizr object,\r\n * as well as an appropriate className set on the html element\r\n *\r\n * @param feature - String naming the feature\r\n * @param test - Function returning true if feature is supported, false if not\r\n */\r\n Modernizr.addTest = function ( feature, test ) {\r\n if ( typeof feature == 'object' ) {\r\n for ( var key in feature ) {\r\n if ( hasOwnProp( feature, key ) ) {\r\n Modernizr.addTest( key, feature[ key ] );\r\n }\r\n }\r\n } else {\r\n\r\n feature = feature.toLowerCase();\r\n\r\n if ( Modernizr[feature] !== undefined ) {\r\n // we're going to quit if you're trying to overwrite an existing test\r\n // if we were to allow it, we'd do this:\r\n // var re = new RegExp(\"\\\\b(no-)?\" + feature + \"\\\\b\");\r\n // docElement.className = docElement.className.replace( re, '' );\r\n // but, no rly, stuff 'em.\r\n return Modernizr;\r\n }\r\n\r\n test = typeof test == 'function' ? test() : test;\r\n\r\n if (typeof enableClasses !== \"undefined\" && enableClasses) {\r\n docElement.className += ' ' + (test ? '' : 'no-') + feature;\r\n }\r\n Modernizr[feature] = test;\r\n\r\n }\r\n\r\n return Modernizr; // allow chaining.\r\n };\r\n\r\n\r\n // Reset modElem.cssText to nothing to reduce memory footprint.\r\n setCss('');\r\n modElem = inputElem = null;\r\n\r\n /*>>shiv*/\r\n /**\r\n * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed\r\n */\r\n ;(function(window, document) {\r\n /*jshint evil:true */\r\n /** version */\r\n var version = '3.7.0';\r\n\r\n /** Preset options */\r\n var options = window.html5 || {};\r\n\r\n /** Used to skip problem elements */\r\n var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;\r\n\r\n /** Not all elements can be cloned in IE **/\r\n var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;\r\n\r\n /** Detect whether the browser supports default html5 styles */\r\n var supportsHtml5Styles;\r\n\r\n /** Name of the expando, to work with multiple documents or to re-shiv one document */\r\n var expando = '_html5shiv';\r\n\r\n /** The id for the the documents expando */\r\n var expanID = 0;\r\n\r\n /** Cached data for each document */\r\n var expandoData = {};\r\n\r\n /** Detect whether the browser supports unknown elements */\r\n var supportsUnknownElements;\r\n\r\n (function() {\r\n try {\r\n var a = document.createElement('a');\r\n a.innerHTML = '';\r\n //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles\r\n supportsHtml5Styles = ('hidden' in a);\r\n\r\n supportsUnknownElements = a.childNodes.length == 1 || (function() {\r\n // assign a false positive if unable to shiv\r\n (document.createElement)('a');\r\n var frag = document.createDocumentFragment();\r\n return (\r\n typeof frag.cloneNode == 'undefined' ||\r\n typeof frag.createDocumentFragment == 'undefined' ||\r\n typeof frag.createElement == 'undefined'\r\n );\r\n }());\r\n } catch(e) {\r\n // assign a false positive if detection fails => unable to shiv\r\n supportsHtml5Styles = true;\r\n supportsUnknownElements = true;\r\n }\r\n\r\n }());\r\n\r\n /*--------------------------------------------------------------------------*/\r\n\r\n /**\r\n * Creates a style sheet with the given CSS text and adds it to the document.\r\n * @private\r\n * @param {Document} ownerDocument The document.\r\n * @param {String} cssText The CSS text.\r\n * @returns {StyleSheet} The style element.\r\n */\r\n function addStyleSheet(ownerDocument, cssText) {\r\n var p = ownerDocument.createElement('p'),\r\n parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;\r\n\r\n p.innerHTML = 'x';\r\n return parent.insertBefore(p.lastChild, parent.firstChild);\r\n }\r\n\r\n /**\r\n * Returns the value of `html5.elements` as an array.\r\n * @private\r\n * @returns {Array} An array of shived element node names.\r\n */\r\n function getElements() {\r\n var elements = html5.elements;\r\n return typeof elements == 'string' ? elements.split(' ') : elements;\r\n }\r\n\r\n /**\r\n * Returns the data associated to the given document\r\n * @private\r\n * @param {Document} ownerDocument The document.\r\n * @returns {Object} An object of data.\r\n */\r\n function getExpandoData(ownerDocument) {\r\n var data = expandoData[ownerDocument[expando]];\r\n if (!data) {\r\n data = {};\r\n expanID++;\r\n ownerDocument[expando] = expanID;\r\n expandoData[expanID] = data;\r\n }\r\n return data;\r\n }\r\n\r\n /**\r\n * returns a shived element for the given nodeName and document\r\n * @memberOf html5\r\n * @param {String} nodeName name of the element\r\n * @param {Document} ownerDocument The context document.\r\n * @returns {Object} The shived element.\r\n */\r\n function createElement(nodeName, ownerDocument, data){\r\n if (!ownerDocument) {\r\n ownerDocument = document;\r\n }\r\n if(supportsUnknownElements){\r\n return ownerDocument.createElement(nodeName);\r\n }\r\n if (!data) {\r\n data = getExpandoData(ownerDocument);\r\n }\r\n var node;\r\n\r\n if (data.cache[nodeName]) {\r\n node = data.cache[nodeName].cloneNode();\r\n } else if (saveClones.test(nodeName)) {\r\n node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();\r\n } else {\r\n node = data.createElem(nodeName);\r\n }\r\n\r\n // Avoid adding some elements to fragments in IE < 9 because\r\n // * Attributes like `name` or `type` cannot be set/changed once an element\r\n // is inserted into a document/fragment\r\n // * Link elements with `src` attributes that are inaccessible, as with\r\n // a 403 response, will cause the tab/window to crash\r\n // * Script elements appended to fragments will execute when their `src`\r\n // or `text` property is set\r\n return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;\r\n }\r\n\r\n /**\r\n * returns a shived DocumentFragment for the given document\r\n * @memberOf html5\r\n * @param {Document} ownerDocument The context document.\r\n * @returns {Object} The shived DocumentFragment.\r\n */\r\n function createDocumentFragment(ownerDocument, data){\r\n if (!ownerDocument) {\r\n ownerDocument = document;\r\n }\r\n if(supportsUnknownElements){\r\n return ownerDocument.createDocumentFragment();\r\n }\r\n data = data || getExpandoData(ownerDocument);\r\n var clone = data.frag.cloneNode(),\r\n i = 0,\r\n elems = getElements(),\r\n l = elems.length;\r\n for(;i>shiv*/\r\n\r\n // Assign private properties to the return object with prefix\r\n Modernizr._version = version;\r\n\r\n // expose these for the plugin API. Look in the source for how to join() them against your input\r\n /*>>prefixes*/\r\n Modernizr._prefixes = prefixes;\r\n /*>>prefixes*/\r\n /*>>domprefixes*/\r\n Modernizr._domPrefixes = domPrefixes;\r\n Modernizr._cssomPrefixes = cssomPrefixes;\r\n /*>>domprefixes*/\r\n\r\n /*>>mq*/\r\n // Modernizr.mq tests a given media query, live against the current state of the window\r\n // A few important notes:\r\n // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false\r\n // * A max-width or orientation query will be evaluated against the current state, which may change later.\r\n // * You must specify values. Eg. If you are testing support for the min-width media query use:\r\n // Modernizr.mq('(min-width:0)')\r\n // usage:\r\n // Modernizr.mq('only screen and (max-width:768)')\r\n Modernizr.mq = testMediaQuery;\r\n /*>>mq*/\r\n\r\n /*>>hasevent*/\r\n // Modernizr.hasEvent() detects support for a given event, with an optional element to test on\r\n // Modernizr.hasEvent('gesturestart', elem)\r\n Modernizr.hasEvent = isEventSupported;\r\n /*>>hasevent*/\r\n\r\n /*>>testprop*/\r\n // Modernizr.testProp() investigates whether a given style property is recognized\r\n // Note that the property names must be provided in the camelCase variant.\r\n // Modernizr.testProp('pointerEvents')\r\n Modernizr.testProp = function(prop){\r\n return testProps([prop]);\r\n };\r\n /*>>testprop*/\r\n\r\n /*>>testallprops*/\r\n // Modernizr.testAllProps() investigates whether a given style property,\r\n // or any of its vendor-prefixed variants, is recognized\r\n // Note that the property names must be provided in the camelCase variant.\r\n // Modernizr.testAllProps('boxSizing')\r\n Modernizr.testAllProps = testPropsAll;\r\n /*>>testallprops*/\r\n\r\n\r\n /*>>teststyles*/\r\n // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards\r\n // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })\r\n Modernizr.testStyles = injectElementWithStyles;\r\n /*>>teststyles*/\r\n\r\n\r\n /*>>prefixed*/\r\n // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input\r\n // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'\r\n\r\n // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.\r\n // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:\r\n //\r\n // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');\r\n\r\n // If you're trying to ascertain which transition end event to bind to, you might do something like...\r\n //\r\n // var transEndEventNames = {\r\n // 'WebkitTransition' : 'webkitTransitionEnd',\r\n // 'MozTransition' : 'transitionend',\r\n // 'OTransition' : 'oTransitionEnd',\r\n // 'msTransition' : 'MSTransitionEnd',\r\n // 'transition' : 'transitionend'\r\n // },\r\n // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];\r\n\r\n Modernizr.prefixed = function(prop, obj, elem){\r\n if(!obj) {\r\n return testPropsAll(prop, 'pfx');\r\n } else {\r\n // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'\r\n return testPropsAll(prop, obj, elem);\r\n }\r\n };\r\n /*>>prefixed*/\r\n\r\n\r\n /*>>cssclasses*/\r\n // Remove \"no-js\" class from element, if it exists:\r\n docElement.className = docElement.className.replace(/(^|\\s)no-js(\\s|$)/, '$1$2') +\r\n\r\n // Add the new classes to the element.\r\n (enableClasses ? ' js ' + classes.join(' ') : '');\r\n /*>>cssclasses*/\r\n\r\n return Modernizr;\r\n\r\n})(this, this.document);","/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */\r\n!function(a,b){\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m=\"2.2.4\",n=function(a,b){return new n.fn.init(a,b)},o=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,p=/^-ms-/,q=/-([\\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:\"\",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:\"jQuery\"+(m+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if(\"object\"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,\"constructor\")&&!k.call(a.constructor.prototype||{},\"isPrototypeOf\"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?i[j.call(a)]||\"object\":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf(\"use strict\")?(b=d.createElement(\"script\"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,\"ms-\").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(o,\"\")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,\"string\"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return\"string\"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),\"function\"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(a,b){i[\"[object \"+b+\"]\"]=b.toLowerCase()});function s(a){var b=!!a&&\"length\"in a&&a.length,c=n.type(a);return\"function\"===c||n.isWindow(a)?!1:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=\"sizzle\"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",L=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",M=\"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",N=\"\\\\[\"+L+\"*(\"+M+\")(?:\"+L+\"*([*^$|!~]?=)\"+L+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+M+\"))|)\"+L+\"*\\\\]\",O=\":(\"+M+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+N+\")*)|.*)\\\\)|)\",P=new RegExp(L+\"+\",\"g\"),Q=new RegExp(\"^\"+L+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+L+\"+$\",\"g\"),R=new RegExp(\"^\"+L+\"*,\"+L+\"*\"),S=new RegExp(\"^\"+L+\"*([>+~]|\"+L+\")\"+L+\"*\"),T=new RegExp(\"=\"+L+\"*([^\\\\]'\\\"]*?)\"+L+\"*\\\\]\",\"g\"),U=new RegExp(O),V=new RegExp(\"^\"+M+\"$\"),W={ID:new RegExp(\"^#(\"+M+\")\"),CLASS:new RegExp(\"^\\\\.(\"+M+\")\"),TAG:new RegExp(\"^(\"+M+\"|[*])\"),ATTR:new RegExp(\"^\"+N),PSEUDO:new RegExp(\"^\"+O),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+L+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+L+\"*(?:([+-]|)\"+L+\"*(\\\\d+)|))\"+L+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+K+\")$\",\"i\"),needsContext:new RegExp(\"^\"+L+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+L+\"*((?:-\\\\d)?\\\\d*)\"+L+\"*\\\\)|)(?=[^-]|$)\",\"i\")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\\d$/i,Z=/^[^{]+\\{\\s*\\[native \\w/,$=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,_=/[+~]/,aa=/'|\\\\/g,ba=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+L+\"?|(\"+L+\")|.)\",\"ig\"),ca=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],\"string\"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+\" \"]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if(\"object\"!==b.nodeName.toLowerCase()){(k=b.getAttribute(\"id\"))?k=k.replace(aa,\"\\\\$&\"):b.setAttribute(\"id\",k=u),r=g(a),h=r.length,l=V.test(k)?\"#\"+k:\"[id='\"+k+\"']\";while(h--)r[h]=l+\" \"+qa(r[h]);s=r.join(\",\"),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute(\"id\")}}}return i(a.replace(Q,\"$1\"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+\" \")>d.cacheLength&&delete b[a.shift()],b[c+\" \"]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement(\"div\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split(\"|\"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&\"undefined\"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener(\"unload\",da,!1):e.attachEvent&&e.attachEvent(\"onunload\",da)),c.attributes=ia(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(\"undefined\"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute(\"id\")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c=\"undefined\"!=typeof a.getAttributeNode&&a.getAttributeNode(\"id\");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return\"undefined\"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return\"undefined\"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML=\"\",a.querySelectorAll(\"[msallowcapture^='']\").length&&q.push(\"[*^$]=\"+L+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\"[selected]\").length||q.push(\"\\\\[\"+L+\"*(?:value|\"+K+\")\"),a.querySelectorAll(\"[id~=\"+u+\"-]\").length||q.push(\"~=\"),a.querySelectorAll(\":checked\").length||q.push(\":checked\"),a.querySelectorAll(\"a#\"+u+\"+*\").length||q.push(\".#.+[+~]\")}),ia(function(a){var b=n.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"name\",\"D\"),a.querySelectorAll(\"[name=d]\").length&&q.push(\"name\"+L+\"*[*^$|!~]?=\"),a.querySelectorAll(\":enabled\").length||q.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),q.push(\",.*:\")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,\"div\"),s.call(a,\"[s!='']:x\"),r.push(\"!=\",O)}),q=q.length&&new RegExp(q.join(\"|\")),r=r.length&&new RegExp(r.join(\"|\")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,\"='$1']\"),c.matchesSelector&&p&&!A[b+\" \"]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c=\"\",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||\"\").replace(ba,ca),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||\"\":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(\")\",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+\" \"];return b||(b=new RegExp(\"(^|\"+L+\")\"+a+\"(\"+L+\"|$)\"))&&y(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||\"undefined\"!=typeof a.getAttribute&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?\"!=\"===b:b?(e+=\"\",\"=\"===b?e===c:\"!=\"===b?e!==c:\"^=\"===b?c&&0===e.indexOf(c):\"*=\"===b?c&&e.indexOf(c)>-1:\"$=\"===b?c&&e.slice(-c.length)===c:\"~=\"===b?(\" \"+e.replace(P,\" \")+\" \").indexOf(c)>-1:\"|=\"===b?e===c||e.slice(0,c.length+1)===c+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error(\"unsupported pseudo: \"+a);return e[u]?e(b):e.length>1?(c=[a,a,\"\",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,\"$1\"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||\"\")||fa.error(\"unsupported lang: \"+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||\"text\"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&\"parentNode\"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||\"*\",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[\" \"],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:\" \"===a[i-2].type?\"*\":\"\"})).replace(Q,\"$1\"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s=\"0\",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG(\"*\",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+\" \"];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n=\"function\"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&\"ID\"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split(\"\").sort(B).join(\"\")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement(\"div\"))}),ia(function(a){return a.innerHTML=\"\",\"#\"===a.firstChild.getAttribute(\"href\")})||ja(\"type|href|height|width\",function(a,b,c){return c?void 0:a.getAttribute(b,\"type\"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML=\"\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||ja(\"value\",function(a,b,c){return c||\"input\"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute(\"disabled\")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[\":\"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/,y=/^.[^:#\\[\\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if(\"string\"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+\" \"+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,\"string\"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,\"string\"==typeof a){if(e=\"<\"===a[0]&&\">\"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||\"string\"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?\"string\"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,\"parentNode\")},parentsUntil:function(a,b,c){return u(a,\"parentNode\",c)},next:function(a){return F(a,\"nextSibling\")},prev:function(a){return F(a,\"previousSibling\")},nextAll:function(a){return u(a,\"nextSibling\")},prevAll:function(a){return u(a,\"previousSibling\")},nextUntil:function(a,b,c){return u(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return u(a,\"previousSibling\",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a=\"string\"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c=\"\",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=\"\"),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[[\"resolve\",\"done\",n.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",n.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",n.Callbacks(\"memory\")]],c=\"pending\",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+\"With\"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+\"With\"](this===e?d:this,arguments),this},e[f[0]+\"With\"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler(\"ready\"),n(d).off(\"ready\"))))}});function J(){d.removeEventListener(\"DOMContentLoaded\",J),a.removeEventListener(\"load\",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),\"complete\"===d.readyState||\"loading\"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener(\"DOMContentLoaded\",J),a.addEventListener(\"load\",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(\"object\"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if(\"string\"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&\"string\"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(Q,\"-$&\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:P.test(c)?n.parseJSON(c):c;\r\n}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,\"hasDataAttrs\"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf(\"data-\")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,\"hasDataAttrs\",!0)}return e}return\"object\"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,\"-$&\").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf(\"-\")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||\"fx\")+\"queue\",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||\"fx\";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks(\"once memory\").add(function(){N.remove(a,[b+\"queue\",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return\"string\"!=typeof a&&(b=a,a=\"fx\",c--),arguments.length\",\"\"],thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c=\"undefined\"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):\"undefined\"!=typeof a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],\"globalEval\",!b||N.get(b[c],\"globalEval\"))}var ba=/<|&#?\\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if(\"object\"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement(\"div\")),h=(Y.exec(f)||[\"\",\"\"])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=\"\"}else m.push(b.createTextNode(f));l.textContent=\"\",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),\"script\"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||\"\")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement(\"div\")),c=d.createElement(\"input\");c.setAttribute(\"type\",\"radio\"),c.setAttribute(\"checked\",\"checked\"),c.setAttribute(\"name\",\"t\"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML=\"\",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if(\"object\"==typeof b){\"string\"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&(\"string\"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return\"undefined\"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||\"\").match(G)||[\"\"],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(\".\")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||\"\").match(G)||[\"\"],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,\"handle events\")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,\"events\")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(\"click\"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||\"click\"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\\/>/gi,la=/\\s*$/g;function pa(a,b){return n.nodeName(a,\"table\")&&n.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\")):a}function qa(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&X.test(a.type)?b.checked=a.checked:\"input\"!==c&&\"textarea\"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&\"string\"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,\"script\"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,\"script\"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||\"\")&&!N.access(j,\"globalEval\")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,\"\")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,\"script\")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,\"<$1>\")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,\"script\"),g.length>0&&aa(g,!i&&_(a,\"script\")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:\"block\",BODY:\"block\"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],\"display\");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),\"none\"!==c&&c||(wa=(wa||n(\"',\r\n\r\n // Preload iframe before displaying it\r\n // This allows to calculate iframe content width and height\r\n // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\r\n preload: true,\r\n\r\n // Custom CSS styling for iframe wrapping element\r\n // You can use this to set custom iframe dimensions\r\n css: {},\r\n\r\n // Iframe tag attributes\r\n attr: {\r\n scrolling: \"auto\"\r\n }\r\n },\r\n\r\n // For HTML5 video only\r\n video: {\r\n tpl: '\",\r\n format: \"\", // custom video format\r\n autoStart: true\r\n },\r\n\r\n // Default content type if cannot be detected automatically\r\n defaultType: \"image\",\r\n\r\n // Open/close animation type\r\n // Possible values:\r\n // false - disable\r\n // \"zoom\" - zoom images from/to thumbnail\r\n // \"fade\"\r\n // \"zoom-in-out\"\r\n //\r\n animationEffect: \"zoom\",\r\n\r\n // Duration in ms for open/close animation\r\n animationDuration: 366,\r\n\r\n // Should image change opacity while zooming\r\n // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\r\n zoomOpacity: \"auto\",\r\n\r\n // Transition effect between slides\r\n //\r\n // Possible values:\r\n // false - disable\r\n // \"fade'\r\n // \"slide'\r\n // \"circular'\r\n // \"tube'\r\n // \"zoom-in-out'\r\n // \"rotate'\r\n //\r\n transitionEffect: \"fade\",\r\n\r\n // Duration in ms for transition animation\r\n transitionDuration: 366,\r\n\r\n // Custom CSS class for slide element\r\n slideClass: \"\",\r\n\r\n // Custom CSS class for layout\r\n baseClass: \"\",\r\n\r\n // Base template for layout\r\n baseTpl: '
' +\r\n '
' +\r\n '
' +\r\n '
 / 
' +\r\n '
{{buttons}}
' +\r\n '
{{arrows}}
' +\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n \"
\",\r\n\r\n // Loading indicator template\r\n spinnerTpl: '
',\r\n\r\n // Error message template\r\n errorTpl: '

{{ERROR}}

',\r\n\r\n btnTpl: {\r\n download: '' +\r\n '' +\r\n \"\",\r\n\r\n zoom: '\",\r\n\r\n close: '\",\r\n\r\n // Arrows\r\n arrowLeft: '\",\r\n\r\n arrowRight: '\",\r\n\r\n // This small close button will be appended to your html/inline/ajax content by default,\r\n // if \"smallBtn\" option is not set to false\r\n smallBtn: '\"\r\n },\r\n\r\n // Container is injected into this element\r\n parentEl: \"body\",\r\n\r\n // Hide browser vertical scrollbars; use at your own risk\r\n hideScrollbar: true,\r\n\r\n // Focus handling\r\n // ==============\r\n\r\n // Try to focus on the first focusable element after opening\r\n autoFocus: true,\r\n\r\n // Put focus back to active element after closing\r\n backFocus: true,\r\n\r\n // Do not let user to focus on element outside modal content\r\n trapFocus: true,\r\n\r\n // Module specific options\r\n // =======================\r\n\r\n fullScreen: {\r\n autoStart: false\r\n },\r\n\r\n // Set `touch: false` to disable panning/swiping\r\n touch: {\r\n vertical: true, // Allow to drag content vertically\r\n momentum: true // Continue movement after releasing mouse/touch when panning\r\n },\r\n\r\n // Hash value when initializing manually,\r\n // set `false` to disable hash change\r\n hash: null,\r\n\r\n // Customize or add new media types\r\n // Example:\r\n /*\r\n media : {\r\n youtube : {\r\n params : {\r\n autoplay : 0\r\n }\r\n }\r\n }\r\n */\r\n media: {},\r\n\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000\r\n },\r\n\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n },\r\n\r\n // Use mousewheel to navigate gallery\r\n // If 'auto' - enabled for images only\r\n wheel: \"auto\",\r\n\r\n // Callbacks\r\n //==========\r\n\r\n // See Documentation/API/Events for more information\r\n // Example:\r\n /*\r\n afterShow: function( instance, current ) {\r\n console.info( 'Clicked element:' );\r\n console.info( current.opts.$orig );\r\n }\r\n */\r\n\r\n onInit: $.noop, // When instance has been initialized\r\n\r\n beforeLoad: $.noop, // Before the content of a slide is being loaded\r\n afterLoad: $.noop, // When the content of a slide is done loading\r\n\r\n beforeShow: $.noop, // Before open animation starts\r\n afterShow: $.noop, // When content is done loading and animating\r\n\r\n beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\r\n afterClose: $.noop, // After instance has been closed\r\n\r\n onActivate: $.noop, // When instance is brought to front\r\n onDeactivate: $.noop, // When other instance has been activated\r\n\r\n // Interaction\r\n // ===========\r\n\r\n // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\r\n // each option can be string or method that returns value.\r\n //\r\n // Possible values:\r\n // \"close\" - close instance\r\n // \"next\" - move to next gallery item\r\n // \"nextOrClose\" - move to next gallery item or close if gallery has only one item\r\n // \"toggleControls\" - show/hide controls\r\n // \"zoom\" - zoom image (if loaded)\r\n // false - do nothing\r\n\r\n // Clicked on the content\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n\r\n // Clicked on the slide\r\n clickSlide: \"close\",\r\n\r\n // Clicked on the background (backdrop) element;\r\n // if you have not changed the layout, then most likely you need to use `clickSlide` option\r\n clickOutside: \"close\",\r\n\r\n // Same as previous two, but for double click\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false,\r\n\r\n // Custom options when mobile device is detected\r\n // =============================================\r\n\r\n mobile: {\r\n preventCaptionOverlap: false,\r\n idleTime: false,\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : false;\r\n },\r\n clickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : \"close\";\r\n },\r\n dblclickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n dblclickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n }\r\n },\r\n\r\n // Internationalization\r\n // ====================\r\n\r\n lang: \"en\",\r\n i18n: {\r\n en: {\r\n CLOSE: \"Close\",\r\n NEXT: \"Next\",\r\n PREV: \"Previous\",\r\n ERROR: \"The requested content cannot be loaded.
Please try again later.\",\r\n PLAY_START: \"Start slideshow\",\r\n PLAY_STOP: \"Pause slideshow\",\r\n FULL_SCREEN: \"Full screen\",\r\n THUMBS: \"Thumbnails\",\r\n DOWNLOAD: \"Download\",\r\n SHARE: \"Share\",\r\n ZOOM: \"Zoom\"\r\n },\r\n de: {\r\n CLOSE: \"Schließen\",\r\n NEXT: \"Weiter\",\r\n PREV: \"Zurück\",\r\n ERROR: \"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.\",\r\n PLAY_START: \"Diaschau starten\",\r\n PLAY_STOP: \"Diaschau beenden\",\r\n FULL_SCREEN: \"Vollbild\",\r\n THUMBS: \"Vorschaubilder\",\r\n DOWNLOAD: \"Herunterladen\",\r\n SHARE: \"Teilen\",\r\n ZOOM: \"Vergrößern\"\r\n }\r\n }\r\n };\r\n\r\n // Few useful variables and methods\r\n // ================================\r\n\r\n var $W = $(window);\r\n var $D = $(document);\r\n\r\n var called = 0;\r\n\r\n // Check if an object is a jQuery object and not a native JavaScript object\r\n // ========================================================================\r\n var isQuery = function (obj) {\r\n return obj && obj.hasOwnProperty && obj instanceof $;\r\n };\r\n\r\n // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\r\n // ===============================================================================\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n // Detect the supported transition-end event property name\r\n // =======================================================\r\n var transitionEnd = (function () {\r\n var el = document.createElement(\"fakeelement\"),\r\n t;\r\n\r\n var transitions = {\r\n transition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n WebkitTransition: \"webkitTransitionEnd\"\r\n };\r\n\r\n for (t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n return transitions[t];\r\n }\r\n }\r\n\r\n return \"transitionend\";\r\n })();\r\n\r\n // Force redraw on an element.\r\n // This helps in cases where the browser doesn't redraw an updated element properly\r\n // ================================================================================\r\n var forceRedraw = function ($el) {\r\n return $el && $el.length && $el[0].offsetHeight;\r\n };\r\n\r\n // Exclude array (`buttons`) options from deep merging\r\n // ===================================================\r\n var mergeOpts = function (opts1, opts2) {\r\n var rez = $.extend(true, {}, opts1, opts2);\r\n\r\n $.each(opts2, function (key, value) {\r\n if ($.isArray(value)) {\r\n rez[key] = value;\r\n }\r\n });\r\n\r\n return rez;\r\n };\r\n\r\n // How much of an element is visible in viewport\r\n // =============================================\r\n\r\n var inViewport = function (elem) {\r\n var elemCenter, rez;\r\n\r\n if (!elem || elem.ownerDocument !== document) {\r\n return false;\r\n }\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"none\");\r\n\r\n elemCenter = {\r\n x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\r\n y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\r\n };\r\n\r\n rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"\");\r\n\r\n return rez;\r\n };\r\n\r\n // Class definition\r\n // ================\r\n\r\n var FancyBox = function (content, opts, index) {\r\n var self = this;\r\n\r\n self.opts = mergeOpts({\r\n index: index\r\n }, $.fancybox.defaults);\r\n\r\n if ($.isPlainObject(opts)) {\r\n self.opts = mergeOpts(self.opts, opts);\r\n }\r\n\r\n if ($.fancybox.isMobile) {\r\n self.opts = mergeOpts(self.opts, self.opts.mobile);\r\n }\r\n\r\n self.id = self.opts.id || ++called;\r\n\r\n self.currIndex = parseInt(self.opts.index, 10) || 0;\r\n self.prevIndex = null;\r\n\r\n self.prevPos = null;\r\n self.currPos = 0;\r\n\r\n self.firstRun = true;\r\n\r\n // All group items\r\n self.group = [];\r\n\r\n // Existing slides (for current, next and previous gallery items)\r\n self.slides = {};\r\n\r\n // Create group elements\r\n self.addContent(content);\r\n\r\n if (!self.group.length) {\r\n return;\r\n }\r\n\r\n self.init();\r\n };\r\n\r\n $.extend(FancyBox.prototype, {\r\n // Create DOM structure\r\n // ====================\r\n\r\n init: function () {\r\n var self = this,\r\n firstItem = self.group[self.currIndex],\r\n firstItemOpts = firstItem.opts,\r\n $container,\r\n buttonStr;\r\n\r\n if (firstItemOpts.closeExisting) {\r\n $.fancybox.close(true);\r\n }\r\n\r\n // Hide scrollbars\r\n // ===============\r\n\r\n $(\"body\").addClass(\"fancybox-active\");\r\n\r\n if (\r\n !$.fancybox.getInstance() &&\r\n firstItemOpts.hideScrollbar !== false &&\r\n !$.fancybox.isMobile &&\r\n document.body.scrollHeight > window.innerHeight\r\n ) {\r\n $(\"head\").append(\r\n '\"\r\n );\r\n\r\n $(\"body\").addClass(\"compensate-for-scrollbar\");\r\n }\r\n\r\n // Build html markup and set references\r\n // ====================================\r\n\r\n // Build html code for buttons and insert into main template\r\n buttonStr = \"\";\r\n\r\n $.each(firstItemOpts.buttons, function (index, value) {\r\n buttonStr += firstItemOpts.btnTpl[value] || \"\";\r\n });\r\n\r\n // Create markup from base template, it will be initially hidden to\r\n // avoid unnecessary work like painting while initializing is not complete\r\n $container = $(\r\n self.translate(\r\n self,\r\n firstItemOpts.baseTpl\r\n .replace(\"{{buttons}}\", buttonStr)\r\n .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\r\n )\r\n )\r\n .attr(\"id\", \"fancybox-container-\" + self.id)\r\n .addClass(firstItemOpts.baseClass)\r\n .data(\"FancyBox\", self)\r\n .appendTo(firstItemOpts.parentEl);\r\n\r\n // Create object holding references to jQuery wrapped nodes\r\n self.$refs = {\r\n container: $container\r\n };\r\n\r\n [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\r\n self.$refs[item] = $container.find(\".fancybox-\" + item);\r\n });\r\n\r\n self.trigger(\"onInit\");\r\n\r\n // Enable events, deactive previous instances\r\n self.activate();\r\n\r\n // Build slides, load and reveal content\r\n self.jumpTo(self.currIndex);\r\n },\r\n\r\n // Simple i18n support - replaces object keys found in template\r\n // with corresponding values\r\n // ============================================================\r\n\r\n translate: function (obj, str) {\r\n var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\r\n\r\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\r\n return arr[n] === undefined ? match : arr[n];\r\n });\r\n },\r\n\r\n // Populate current group with fresh content\r\n // Check if each object has valid type and content\r\n // ===============================================\r\n\r\n addContent: function (content) {\r\n var self = this,\r\n items = $.makeArray(content),\r\n thumbs;\r\n\r\n $.each(items, function (i, item) {\r\n var obj = {},\r\n opts = {},\r\n $item,\r\n type,\r\n found,\r\n src,\r\n srcParts;\r\n\r\n // Step 1 - Make sure we have an object\r\n // ====================================\r\n\r\n if ($.isPlainObject(item)) {\r\n // We probably have manual usage here, something like\r\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\r\n\r\n obj = item;\r\n opts = item.opts || item;\r\n } else if ($.type(item) === \"object\" && $(item).length) {\r\n // Here we probably have jQuery collection returned by some selector\r\n $item = $(item);\r\n\r\n // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\r\n opts = $item.data() || {};\r\n opts = $.extend(true, {}, opts, opts.options);\r\n\r\n // Here we store clicked element\r\n opts.$orig = $item;\r\n\r\n obj.src = self.opts.src || opts.src || $item.attr(\"href\");\r\n\r\n // Assume that simple syntax is used, for example:\r\n // `$.fancybox.open( $(\"#test\"), {} );`\r\n if (!obj.type && !obj.src) {\r\n obj.type = \"inline\";\r\n obj.src = item;\r\n }\r\n } else {\r\n // Assume we have a simple html code, for example:\r\n // $.fancybox.open( '

Hi!

' );\r\n obj = {\r\n type: \"html\",\r\n src: item + \"\"\r\n };\r\n }\r\n\r\n // Each gallery object has full collection of options\r\n obj.opts = $.extend(true, {}, self.opts, opts);\r\n\r\n // Do not merge buttons array\r\n if ($.isArray(opts.buttons)) {\r\n obj.opts.buttons = opts.buttons;\r\n }\r\n\r\n if ($.fancybox.isMobile && obj.opts.mobile) {\r\n obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\r\n }\r\n\r\n // Step 2 - Make sure we have content type, if not - try to guess\r\n // ==============================================================\r\n\r\n type = obj.type || obj.opts.type;\r\n src = obj.src || \"\";\r\n\r\n if (!type && src) {\r\n if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\r\n type = \"video\";\r\n\r\n if (!obj.opts.video.format) {\r\n obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\r\n }\r\n } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\r\n type = \"image\";\r\n } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\r\n type = \"iframe\";\r\n obj = $.extend(true, obj, {\r\n contentType: \"pdf\",\r\n opts: {\r\n iframe: {\r\n preload: false\r\n }\r\n }\r\n });\r\n } else if (src.charAt(0) === \"#\") {\r\n type = \"inline\";\r\n }\r\n }\r\n\r\n if (type) {\r\n obj.type = type;\r\n } else {\r\n self.trigger(\"objectNeedsType\", obj);\r\n }\r\n\r\n if (!obj.contentType) {\r\n obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\r\n }\r\n\r\n // Step 3 - Some adjustments\r\n // =========================\r\n\r\n obj.index = self.group.length;\r\n\r\n if (obj.opts.smallBtn == \"auto\") {\r\n obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\r\n }\r\n\r\n if (obj.opts.toolbar === \"auto\") {\r\n obj.opts.toolbar = !obj.opts.smallBtn;\r\n }\r\n\r\n // Find thumbnail image, check if exists and if is in the viewport\r\n obj.$thumb = obj.opts.$thumb || null;\r\n\r\n if (obj.opts.$trigger && obj.index === self.opts.index) {\r\n obj.$thumb = obj.opts.$trigger.find(\"img:first\");\r\n\r\n if (obj.$thumb.length) {\r\n obj.opts.$orig = obj.opts.$trigger;\r\n }\r\n }\r\n\r\n if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\r\n obj.$thumb = obj.opts.$orig.find(\"img:first\");\r\n }\r\n\r\n if (obj.$thumb && !obj.$thumb.length) {\r\n obj.$thumb = null;\r\n }\r\n\r\n obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\r\n\r\n // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\r\n if ($.type(obj.opts.caption) === \"function\") {\r\n obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n if ($.type(self.opts.caption) === \"function\") {\r\n obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n // Make sure we have caption as a string or jQuery object\r\n if (!(obj.opts.caption instanceof $)) {\r\n obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\r\n }\r\n\r\n // Check if url contains \"filter\" used to filter the content\r\n // Example: \"ajax.html #something\"\r\n if (obj.type === \"ajax\") {\r\n srcParts = src.split(/\\s+/, 2);\r\n\r\n if (srcParts.length > 1) {\r\n obj.src = srcParts.shift();\r\n\r\n obj.opts.filter = srcParts.shift();\r\n }\r\n }\r\n\r\n // Hide all buttons and disable interactivity for modal items\r\n if (obj.opts.modal) {\r\n obj.opts = $.extend(true, obj.opts, {\r\n trapFocus: true,\r\n // Remove buttons\r\n infobar: 0,\r\n toolbar: 0,\r\n\r\n smallBtn: 0,\r\n\r\n // Disable keyboard navigation\r\n keyboard: 0,\r\n\r\n // Disable some modules\r\n slideShow: 0,\r\n fullScreen: 0,\r\n thumbs: 0,\r\n touch: 0,\r\n\r\n // Disable click event handlers\r\n clickContent: false,\r\n clickSlide: false,\r\n clickOutside: false,\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false\r\n });\r\n }\r\n\r\n // Step 4 - Add processed object to group\r\n // ======================================\r\n\r\n self.group.push(obj);\r\n });\r\n\r\n // Update controls if gallery is already opened\r\n if (Object.keys(self.slides).length) {\r\n self.updateControls();\r\n\r\n // Update thumbnails, if needed\r\n thumbs = self.Thumbs;\r\n\r\n if (thumbs && thumbs.isActive) {\r\n thumbs.create();\r\n\r\n thumbs.focus();\r\n }\r\n }\r\n },\r\n\r\n // Attach an event handler functions for:\r\n // - navigation buttons\r\n // - browser scrolling, resizing;\r\n // - focusing\r\n // - keyboard\r\n // - detecting inactivity\r\n // ======================================\r\n\r\n addEvents: function () {\r\n var self = this;\r\n\r\n self.removeEvents();\r\n\r\n // Make navigation elements clickable\r\n // ==================================\r\n\r\n self.$refs.container\r\n .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n })\r\n .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.previous();\r\n })\r\n .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.next();\r\n })\r\n .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\r\n // Click handler for zoom button\r\n self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\r\n });\r\n\r\n // Handle page scrolling and browser resizing\r\n // ==========================================\r\n\r\n $W.on(\"orientationchange.fb resize.fb\", function (e) {\r\n if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n self.update(e);\r\n });\r\n } else {\r\n if (self.current && self.current.type === \"iframe\") {\r\n self.$refs.stage.hide();\r\n }\r\n\r\n setTimeout(\r\n function () {\r\n self.$refs.stage.show();\r\n\r\n self.update(e);\r\n },\r\n $.fancybox.isMobile ? 600 : 250\r\n );\r\n }\r\n });\r\n\r\n $D.on(\"keydown.fb\", function (e) {\r\n var instance = $.fancybox ? $.fancybox.getInstance() : null,\r\n current = instance.current,\r\n keycode = e.keyCode || e.which;\r\n\r\n // Trap keyboard focus inside of the modal\r\n // =======================================\r\n\r\n if (keycode == 9) {\r\n if (current.opts.trapFocus) {\r\n self.focus(e);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Enable keyboard navigation\r\n // ==========================\r\n\r\n if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\r\n return;\r\n }\r\n\r\n // Backspace and Esc keys\r\n if (keycode === 8 || keycode === 27) {\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n\r\n return;\r\n }\r\n\r\n // Left arrow and Up arrow\r\n if (keycode === 37 || keycode === 38) {\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n return;\r\n }\r\n\r\n // Righ arrow and Down arrow\r\n if (keycode === 39 || keycode === 40) {\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n return;\r\n }\r\n\r\n self.trigger(\"afterKeydown\", e, keycode);\r\n });\r\n\r\n // Hide controls after some inactivity period\r\n if (self.group[self.currIndex].opts.idleTime) {\r\n self.idleSecondsCounter = 0;\r\n\r\n $D.on(\r\n \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\r\n function (e) {\r\n self.idleSecondsCounter = 0;\r\n\r\n if (self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n self.isIdle = false;\r\n }\r\n );\r\n\r\n self.idleInterval = window.setInterval(function () {\r\n self.idleSecondsCounter++;\r\n\r\n if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\r\n self.isIdle = true;\r\n self.idleSecondsCounter = 0;\r\n\r\n self.hideControls();\r\n }\r\n }, 1000);\r\n }\r\n },\r\n\r\n // Remove events added by the core\r\n // ===============================\r\n\r\n removeEvents: function () {\r\n var self = this;\r\n\r\n $W.off(\"orientationchange.fb resize.fb\");\r\n $D.off(\"keydown.fb .fb-idle\");\r\n\r\n this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\r\n\r\n if (self.idleInterval) {\r\n window.clearInterval(self.idleInterval);\r\n\r\n self.idleInterval = null;\r\n }\r\n },\r\n\r\n // Change to previous gallery item\r\n // ===============================\r\n\r\n previous: function (duration) {\r\n return this.jumpTo(this.currPos - 1, duration);\r\n },\r\n\r\n // Change to next gallery item\r\n // ===========================\r\n\r\n next: function (duration) {\r\n return this.jumpTo(this.currPos + 1, duration);\r\n },\r\n\r\n // Switch to selected gallery item\r\n // ===============================\r\n\r\n jumpTo: function (pos, duration) {\r\n var self = this,\r\n groupLen = self.group.length,\r\n firstRun,\r\n isMoved,\r\n loop,\r\n current,\r\n previous,\r\n slidePos,\r\n stagePos,\r\n prop,\r\n diff;\r\n\r\n if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\r\n return;\r\n }\r\n\r\n // Should loop?\r\n pos = parseInt(pos, 10);\r\n loop = self.current ? self.current.opts.loop : self.opts.loop;\r\n\r\n if (!loop && (pos < 0 || pos >= groupLen)) {\r\n return false;\r\n }\r\n\r\n // Check if opening for the first time; this helps to speed things up\r\n firstRun = self.firstRun = !Object.keys(self.slides).length;\r\n\r\n // Create slides\r\n previous = self.current;\r\n\r\n self.prevIndex = self.currIndex;\r\n self.prevPos = self.currPos;\r\n\r\n current = self.createSlide(pos);\r\n\r\n if (groupLen > 1) {\r\n if (loop || current.index < groupLen - 1) {\r\n self.createSlide(pos + 1);\r\n }\r\n\r\n if (loop || current.index > 0) {\r\n self.createSlide(pos - 1);\r\n }\r\n }\r\n\r\n self.current = current;\r\n self.currIndex = current.index;\r\n self.currPos = current.pos;\r\n\r\n self.trigger(\"beforeShow\", firstRun);\r\n\r\n self.updateControls();\r\n\r\n // Validate duration length\r\n current.forcedDuration = undefined;\r\n\r\n if ($.isNumeric(duration)) {\r\n current.forcedDuration = duration;\r\n } else {\r\n duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n }\r\n\r\n duration = parseInt(duration, 10);\r\n\r\n // Check if user has swiped the slides or if still animating\r\n isMoved = self.isMoved(current);\r\n\r\n // Make sure current slide is visible\r\n current.$slide.addClass(\"fancybox-slide--current\");\r\n\r\n // Fresh start - reveal container, current slide and start loading content\r\n if (firstRun) {\r\n if (current.opts.animationEffect && duration) {\r\n self.$refs.container.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\r\n\r\n // Attempt to load content into slide\r\n // This will later call `afterLoad` -> `revealContent`\r\n self.loadSlide(current);\r\n\r\n self.preload(\"image\");\r\n\r\n return;\r\n }\r\n\r\n // Get actual slide/stage positions (before cleaning up)\r\n slidePos = $.fancybox.getTranslate(previous.$slide);\r\n stagePos = $.fancybox.getTranslate(self.$refs.stage);\r\n\r\n // Clean up all slides\r\n $.each(self.slides, function (index, slide) {\r\n $.fancybox.stop(slide.$slide, true);\r\n });\r\n\r\n if (previous.pos !== current.pos) {\r\n previous.isComplete = false;\r\n }\r\n\r\n previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\r\n\r\n // If slides are out of place, then animate them to correct position\r\n if (isMoved) {\r\n // Calculate horizontal swipe distance\r\n diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\r\n\r\n $.each(self.slides, function (index, slide) {\r\n slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n // Make sure that each slide is in equal distance\r\n // This is mostly needed for freshly added slides, because they are not yet positioned\r\n var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: 0,\r\n left: leftPos - stagePos.left + diff\r\n });\r\n\r\n if (slide.pos !== current.pos) {\r\n slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\r\n }\r\n\r\n // Redraw to make sure that transition will start\r\n forceRedraw(slide.$slide);\r\n\r\n // Animate the slide\r\n $.fancybox.animate(\r\n slide.$slide, {\r\n top: 0,\r\n left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\r\n },\r\n duration,\r\n function () {\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\"\r\n })\r\n .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n }\r\n );\r\n });\r\n } else if (duration && current.opts.transitionEffect) {\r\n // Set transition effect for previously active slide\r\n prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\r\n\r\n previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\r\n\r\n $.fancybox.animate(\r\n previous.$slide,\r\n prop,\r\n duration,\r\n function () {\r\n previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n },\r\n false\r\n );\r\n }\r\n\r\n if (current.isLoaded) {\r\n self.revealContent(current);\r\n } else {\r\n self.loadSlide(current);\r\n }\r\n\r\n self.preload(\"image\");\r\n },\r\n\r\n // Create new \"slide\" element\r\n // These are gallery items that are actually added to DOM\r\n // =======================================================\r\n\r\n createSlide: function (pos) {\r\n var self = this,\r\n $slide,\r\n index;\r\n\r\n index = pos % self.group.length;\r\n index = index < 0 ? self.group.length + index : index;\r\n\r\n if (!self.slides[pos] && self.group[index]) {\r\n $slide = $('
').appendTo(self.$refs.stage);\r\n\r\n self.slides[pos] = $.extend(true, {}, self.group[index], {\r\n pos: pos,\r\n $slide: $slide,\r\n isLoaded: false\r\n });\r\n\r\n self.updateSlide(self.slides[pos]);\r\n }\r\n\r\n return self.slides[pos];\r\n },\r\n\r\n // Scale image to the actual size of the image;\r\n // x and y values should be relative to the slide\r\n // ==============================================\r\n\r\n scaleToActual: function (x, y, duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n canvasWidth = $.fancybox.getTranslate(current.$slide).width,\r\n canvasHeight = $.fancybox.getTranslate(current.$slide).height,\r\n newImgWidth = current.width,\r\n newImgHeight = current.height,\r\n imgPos,\r\n posX,\r\n posY,\r\n scaleX,\r\n scaleY;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n x = x === undefined ? canvasWidth * 0.5 : x;\r\n y = y === undefined ? canvasHeight * 0.5 : y;\r\n\r\n imgPos = $.fancybox.getTranslate($content);\r\n\r\n imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\r\n imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\r\n\r\n scaleX = newImgWidth / imgPos.width;\r\n scaleY = newImgHeight / imgPos.height;\r\n\r\n // Get center position for original image\r\n posX = canvasWidth * 0.5 - newImgWidth * 0.5;\r\n posY = canvasHeight * 0.5 - newImgHeight * 0.5;\r\n\r\n // Make sure image does not move away from edges\r\n if (newImgWidth > canvasWidth) {\r\n posX = imgPos.left * scaleX - (x * scaleX - x);\r\n\r\n if (posX > 0) {\r\n posX = 0;\r\n }\r\n\r\n if (posX < canvasWidth - newImgWidth) {\r\n posX = canvasWidth - newImgWidth;\r\n }\r\n }\r\n\r\n if (newImgHeight > canvasHeight) {\r\n posY = imgPos.top * scaleY - (y * scaleY - y);\r\n\r\n if (posY > 0) {\r\n posY = 0;\r\n }\r\n\r\n if (posY < canvasHeight - newImgHeight) {\r\n posY = canvasHeight - newImgHeight;\r\n }\r\n }\r\n\r\n self.updateCursor(newImgWidth, newImgHeight);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: posY,\r\n left: posX,\r\n scaleX: scaleX,\r\n scaleY: scaleY\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n\r\n // Stop slideshow\r\n if (self.SlideShow && self.SlideShow.isActive) {\r\n self.SlideShow.stop();\r\n }\r\n },\r\n\r\n // Scale image to fit inside parent element\r\n // ========================================\r\n\r\n scaleToFit: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n end;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n end = self.getFitPos(current);\r\n\r\n self.updateCursor(end.width, end.height);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: end.top,\r\n left: end.left,\r\n scaleX: end.width / $content.width(),\r\n scaleY: end.height / $content.height()\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n },\r\n\r\n // Calculate image size to fit inside viewport\r\n // ===========================================\r\n\r\n getFitPos: function (slide) {\r\n var self = this,\r\n $content = slide.$content,\r\n $slide = slide.$slide,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n maxWidth,\r\n maxHeight,\r\n minRatio,\r\n aspectRatio,\r\n rez = {};\r\n\r\n if (!slide.isLoaded || !$content || !$content.length) {\r\n return false;\r\n }\r\n\r\n maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\r\n maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\r\n\r\n maxWidth -=\r\n parseFloat($slide.css(\"paddingLeft\")) +\r\n parseFloat($slide.css(\"paddingRight\")) +\r\n parseFloat($content.css(\"marginLeft\")) +\r\n parseFloat($content.css(\"marginRight\"));\r\n\r\n maxHeight -=\r\n parseFloat($slide.css(\"paddingTop\")) +\r\n parseFloat($slide.css(\"paddingBottom\")) +\r\n parseFloat($content.css(\"marginTop\")) +\r\n parseFloat($content.css(\"marginBottom\"));\r\n\r\n if (!width || !height) {\r\n width = maxWidth;\r\n height = maxHeight;\r\n }\r\n\r\n minRatio = Math.min(1, maxWidth / width, maxHeight / height);\r\n\r\n width = minRatio * width;\r\n height = minRatio * height;\r\n\r\n // Adjust width/height to precisely fit into container\r\n if (width > maxWidth - 0.5) {\r\n width = maxWidth;\r\n }\r\n\r\n if (height > maxHeight - 0.5) {\r\n height = maxHeight;\r\n }\r\n\r\n if (slide.type === \"image\") {\r\n rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\r\n rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\r\n } else if (slide.contentType === \"video\") {\r\n // Force aspect ratio for the video\r\n // \"I say the whole world must learn of our peaceful ways… by force!\"\r\n aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\r\n\r\n if (height > width / aspectRatio) {\r\n height = width / aspectRatio;\r\n } else if (width > height * aspectRatio) {\r\n width = height * aspectRatio;\r\n }\r\n }\r\n\r\n rez.width = width;\r\n rez.height = height;\r\n\r\n return rez;\r\n },\r\n\r\n // Update content size and position for all slides\r\n // ==============================================\r\n\r\n update: function (e) {\r\n var self = this;\r\n\r\n $.each(self.slides, function (key, slide) {\r\n self.updateSlide(slide, e);\r\n });\r\n },\r\n\r\n // Update slide content position and size\r\n // ======================================\r\n\r\n updateSlide: function (slide, e) {\r\n var self = this,\r\n $content = slide && slide.$content,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n $slide = slide.$slide;\r\n\r\n // First, prevent caption overlap, if needed\r\n self.adjustCaption(slide);\r\n\r\n // Then resize content to fit inside the slide\r\n if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\r\n $.fancybox.stop($content);\r\n\r\n $.fancybox.setTranslate($content, self.getFitPos(slide));\r\n\r\n if (slide.pos === self.currPos) {\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n }\r\n }\r\n\r\n // Then some adjustments\r\n self.adjustLayout(slide);\r\n\r\n if ($slide.length) {\r\n $slide.trigger(\"refresh\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.$refs.toolbar\r\n .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\r\n .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\r\n }\r\n }\r\n\r\n self.trigger(\"onUpdate\", slide, e);\r\n },\r\n\r\n // Horizontally center slide\r\n // =========================\r\n\r\n centerSlide: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $slide = current.$slide;\r\n\r\n if (self.isClosing || !current) {\r\n return;\r\n }\r\n\r\n $slide.siblings().css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n $slide\r\n .parent()\r\n .children()\r\n .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\r\n\r\n $.fancybox.animate(\r\n $slide, {\r\n top: 0,\r\n left: 0,\r\n opacity: 1\r\n },\r\n duration === undefined ? 0 : duration,\r\n function () {\r\n // Clean up\r\n $slide.css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (!current.isComplete) {\r\n self.complete();\r\n }\r\n },\r\n false\r\n );\r\n },\r\n\r\n // Check if current slide is moved (swiped)\r\n // ========================================\r\n\r\n isMoved: function (slide) {\r\n var current = slide || this.current,\r\n slidePos,\r\n stagePos;\r\n\r\n if (!current) {\r\n return false;\r\n }\r\n\r\n stagePos = $.fancybox.getTranslate(this.$refs.stage);\r\n slidePos = $.fancybox.getTranslate(current.$slide);\r\n\r\n return (\r\n !current.$slide.hasClass(\"fancybox-animated\") &&\r\n (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\r\n );\r\n },\r\n\r\n // Update cursor style depending if content can be zoomed\r\n // ======================================================\r\n\r\n updateCursor: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n $container = self.$refs.container,\r\n canPan,\r\n isZoomable;\r\n\r\n if (!current || self.isClosing || !self.Guestures) {\r\n return;\r\n }\r\n\r\n $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\r\n\r\n canPan = self.canPan(nextWidth, nextHeight);\r\n\r\n isZoomable = canPan ? true : self.isZoomable();\r\n\r\n $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\r\n\r\n $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\r\n\r\n if (canPan) {\r\n $container.addClass(\"fancybox-can-pan\");\r\n } else if (\r\n isZoomable &&\r\n (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\r\n ) {\r\n $container.addClass(\"fancybox-can-zoomIn\");\r\n } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\r\n $container.addClass(\"fancybox-can-swipe\");\r\n }\r\n },\r\n\r\n // Check if current slide is zoomable\r\n // ==================================\r\n\r\n isZoomable: function () {\r\n var self = this,\r\n current = self.current,\r\n fitPos;\r\n\r\n // Assume that slide is zoomable if:\r\n // - image is still loading\r\n // - actual size of the image is smaller than available area\r\n if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\r\n if (!current.isLoaded) {\r\n return true;\r\n }\r\n\r\n fitPos = self.getFitPos(current);\r\n\r\n if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Check if current image dimensions are smaller than actual\r\n // =========================================================\r\n\r\n isScaledDown: function (nextWidth, nextHeight) {\r\n var self = this,\r\n rez = false,\r\n current = self.current,\r\n $content = current.$content;\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n rez = nextWidth < current.width && nextHeight < current.height;\r\n } else if ($content) {\r\n rez = $.fancybox.getTranslate($content);\r\n rez = rez.width < current.width && rez.height < current.height;\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Check if image dimensions exceed parent element\r\n // ===============================================\r\n\r\n canPan: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n pos = null,\r\n rez = false;\r\n\r\n if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\r\n rez = self.getFitPos(current);\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n pos = {\r\n width: nextWidth,\r\n height: nextHeight\r\n };\r\n } else if (current.isComplete) {\r\n pos = $.fancybox.getTranslate(current.$content);\r\n }\r\n\r\n if (pos && rez) {\r\n rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\r\n }\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Load content into the slide\r\n // ===========================\r\n\r\n loadSlide: function (slide) {\r\n var self = this,\r\n type,\r\n $slide,\r\n ajaxLoad;\r\n\r\n if (slide.isLoading || slide.isLoaded) {\r\n return;\r\n }\r\n\r\n slide.isLoading = true;\r\n\r\n if (self.trigger(\"beforeLoad\", slide) === false) {\r\n slide.isLoading = false;\r\n\r\n return false;\r\n }\r\n\r\n type = slide.type;\r\n $slide = slide.$slide;\r\n\r\n $slide\r\n .off(\"refresh\")\r\n .trigger(\"onReset\")\r\n .addClass(slide.opts.slideClass);\r\n\r\n // Create content depending on the type\r\n switch (type) {\r\n case \"image\":\r\n self.setImage(slide);\r\n\r\n break;\r\n\r\n case \"iframe\":\r\n self.setIframe(slide);\r\n\r\n break;\r\n\r\n case \"html\":\r\n self.setContent(slide, slide.src || slide.content);\r\n\r\n break;\r\n\r\n case \"video\":\r\n self.setContent(\r\n slide,\r\n slide.opts.video.tpl\r\n .replace(/\\{\\{src\\}\\}/gi, slide.src)\r\n .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\r\n .replace(\"{{poster}}\", slide.thumb || \"\")\r\n );\r\n\r\n break;\r\n\r\n case \"inline\":\r\n if ($(slide.src).length) {\r\n self.setContent(slide, $(slide.src));\r\n } else {\r\n self.setError(slide);\r\n }\r\n\r\n break;\r\n\r\n case \"ajax\":\r\n self.showLoading(slide);\r\n\r\n ajaxLoad = $.ajax(\r\n $.extend({}, slide.opts.ajax.settings, {\r\n url: slide.src,\r\n success: function (data, textStatus) {\r\n if (textStatus === \"success\") {\r\n self.setContent(slide, data);\r\n }\r\n },\r\n error: function (jqXHR, textStatus) {\r\n if (jqXHR && textStatus !== \"abort\") {\r\n self.setError(slide);\r\n }\r\n }\r\n })\r\n );\r\n\r\n $slide.one(\"onReset\", function () {\r\n ajaxLoad.abort();\r\n });\r\n\r\n break;\r\n\r\n default:\r\n self.setError(slide);\r\n\r\n break;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Use thumbnail image, if possible\r\n // ================================\r\n\r\n setImage: function (slide) {\r\n var self = this,\r\n ghost;\r\n\r\n // Check if need to show loading icon\r\n setTimeout(function () {\r\n var $img = slide.$image;\r\n\r\n if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\r\n self.showLoading(slide);\r\n }\r\n }, 50);\r\n\r\n //Check if image has srcset\r\n self.checkSrcset(slide);\r\n\r\n // This will be wrapper containing both ghost and actual image\r\n slide.$content = $('
')\r\n .addClass(\"fancybox-is-hidden\")\r\n .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\r\n\r\n // If we have a thumbnail, we can display it while actual image is loading\r\n // Users will not stare at black screen and actual image will appear gradually\r\n if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\r\n slide.width = slide.opts.width;\r\n slide.height = slide.opts.height;\r\n\r\n ghost = document.createElement(\"img\");\r\n\r\n ghost.onerror = function () {\r\n $(this).remove();\r\n\r\n slide.$ghost = null;\r\n };\r\n\r\n ghost.onload = function () {\r\n self.afterLoad(slide);\r\n };\r\n\r\n slide.$ghost = $(ghost)\r\n .addClass(\"fancybox-image\")\r\n .appendTo(slide.$content)\r\n .attr(\"src\", slide.thumb);\r\n }\r\n\r\n // Start loading actual image\r\n self.setBigImage(slide);\r\n },\r\n\r\n // Check if image has srcset and get the source\r\n // ============================================\r\n checkSrcset: function (slide) {\r\n var srcset = slide.opts.srcset || slide.opts.image.srcset,\r\n found,\r\n temp,\r\n pxRatio,\r\n windowWidth;\r\n\r\n // If we have \"srcset\", then we need to find first matching \"src\" value.\r\n // This is necessary, because when you set an src attribute, the browser will preload the image\r\n // before any javascript or even CSS is applied.\r\n if (srcset) {\r\n pxRatio = window.devicePixelRatio || 1;\r\n windowWidth = window.innerWidth * pxRatio;\r\n\r\n temp = srcset.split(\",\").map(function (el) {\r\n var ret = {};\r\n\r\n el.trim()\r\n .split(/\\s+/)\r\n .forEach(function (el, i) {\r\n var value = parseInt(el.substring(0, el.length - 1), 10);\r\n\r\n if (i === 0) {\r\n return (ret.url = el);\r\n }\r\n\r\n if (value) {\r\n ret.value = value;\r\n ret.postfix = el[el.length - 1];\r\n }\r\n });\r\n\r\n return ret;\r\n });\r\n\r\n // Sort by value\r\n temp.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n\r\n // Ok, now we have an array of all srcset values\r\n for (var j = 0; j < temp.length; j++) {\r\n var el = temp[j];\r\n\r\n if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\r\n found = el;\r\n break;\r\n }\r\n }\r\n\r\n // If not found, take the last one\r\n if (!found && temp.length) {\r\n found = temp[temp.length - 1];\r\n }\r\n\r\n if (found) {\r\n slide.src = found.url;\r\n\r\n // If we have default width/height values, we can calculate height for matching source\r\n if (slide.width && slide.height && found.postfix == \"w\") {\r\n slide.height = (slide.width / slide.height) * found.value;\r\n slide.width = found.value;\r\n }\r\n\r\n slide.opts.srcset = srcset;\r\n }\r\n }\r\n },\r\n\r\n // Create full-size image\r\n // ======================\r\n\r\n setBigImage: function (slide) {\r\n var self = this,\r\n img = document.createElement(\"img\"),\r\n $img = $(img);\r\n\r\n slide.$image = $img\r\n .one(\"error\", function () {\r\n self.setError(slide);\r\n })\r\n .one(\"load\", function () {\r\n var sizes;\r\n\r\n if (!slide.$ghost) {\r\n self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\r\n\r\n self.afterLoad(slide);\r\n }\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (slide.opts.srcset) {\r\n sizes = slide.opts.sizes;\r\n\r\n if (!sizes || sizes === \"auto\") {\r\n sizes =\r\n (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\r\n \"vw\";\r\n }\r\n\r\n $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\r\n }\r\n\r\n // Hide temporary image after some delay\r\n if (slide.$ghost) {\r\n setTimeout(function () {\r\n if (slide.$ghost && !self.isClosing) {\r\n slide.$ghost.hide();\r\n }\r\n }, Math.min(300, Math.max(1000, slide.height / 1600)));\r\n }\r\n\r\n self.hideLoading(slide);\r\n })\r\n .addClass(\"fancybox-image\")\r\n .attr(\"src\", slide.src)\r\n .appendTo(slide.$content);\r\n\r\n if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\r\n $img.trigger(\"load\");\r\n } else if (img.error) {\r\n $img.trigger(\"error\");\r\n }\r\n },\r\n\r\n // Computes the slide size from image size and maxWidth/maxHeight\r\n // ==============================================================\r\n\r\n resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\r\n var maxWidth = parseInt(slide.opts.width, 10),\r\n maxHeight = parseInt(slide.opts.height, 10);\r\n\r\n // Sets the default values from the image\r\n slide.width = imgWidth;\r\n slide.height = imgHeight;\r\n\r\n if (maxWidth > 0) {\r\n slide.width = maxWidth;\r\n slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\r\n }\r\n\r\n if (maxHeight > 0) {\r\n slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\r\n slide.height = maxHeight;\r\n }\r\n },\r\n\r\n // Create iframe wrapper, iframe and bindings\r\n // ==========================================\r\n\r\n setIframe: function (slide) {\r\n var self = this,\r\n opts = slide.opts.iframe,\r\n $slide = slide.$slide,\r\n $iframe;\r\n\r\n slide.$content = $('
')\r\n .css(opts.css)\r\n .appendTo($slide);\r\n\r\n $slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\r\n .attr(opts.attr)\r\n .appendTo(slide.$content);\r\n\r\n if (opts.preload) {\r\n self.showLoading(slide);\r\n\r\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\r\n // (due to browser security policy)\r\n\r\n $iframe.on(\"load.fb error.fb\", function (e) {\r\n this.isReady = 1;\r\n\r\n slide.$slide.trigger(\"refresh\");\r\n\r\n self.afterLoad(slide);\r\n });\r\n\r\n // Recalculate iframe content size\r\n // ===============================\r\n\r\n $slide.on(\"refresh.fb\", function () {\r\n var $content = slide.$content,\r\n frameWidth = opts.css.width,\r\n frameHeight = opts.css.height,\r\n $contents,\r\n $body;\r\n\r\n if ($iframe[0].isReady !== 1) {\r\n return;\r\n }\r\n\r\n try {\r\n $contents = $iframe.contents();\r\n $body = $contents.find(\"body\");\r\n } catch (ignore) {}\r\n\r\n // Calculate content dimensions, if it is accessible\r\n if ($body && $body.length && $body.children().length) {\r\n // Avoid scrolling to top (if multiple instances)\r\n $slide.css(\"overflow\", \"visible\");\r\n\r\n $content.css({\r\n width: \"100%\",\r\n \"max-width\": \"100%\",\r\n height: \"9999px\"\r\n });\r\n\r\n if (frameWidth === undefined) {\r\n frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\r\n }\r\n\r\n $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\r\n\r\n if (frameHeight === undefined) {\r\n frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\r\n }\r\n\r\n $content.css(\"height\", frameHeight ? frameHeight : \"\");\r\n\r\n $slide.css(\"overflow\", \"auto\");\r\n }\r\n\r\n $content.removeClass(\"fancybox-is-hidden\");\r\n });\r\n } else {\r\n self.afterLoad(slide);\r\n }\r\n\r\n $iframe.attr(\"src\", slide.src);\r\n\r\n // Remove iframe if closing or changing gallery item\r\n $slide.one(\"onReset\", function () {\r\n // This helps IE not to throw errors when closing\r\n try {\r\n $(this)\r\n .find(\"iframe\")\r\n .hide()\r\n .unbind()\r\n .attr(\"src\", \"//about:blank\");\r\n } catch (ignore) {}\r\n\r\n $(this)\r\n .off(\"refresh.fb\")\r\n .empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n });\r\n },\r\n\r\n // Wrap and append content to the slide\r\n // ======================================\r\n\r\n setContent: function (slide, content) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n self.hideLoading(slide);\r\n\r\n if (slide.$content) {\r\n $.fancybox.stop(slide.$content);\r\n }\r\n\r\n slide.$slide.empty();\r\n\r\n // If content is a jQuery object, then it will be moved to the slide.\r\n // The placeholder is created so we will know where to put it back.\r\n if (isQuery(content) && content.parent().length) {\r\n // Make sure content is not already moved to fancyBox\r\n if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\r\n content.parents(\".fancybox-slide\").trigger(\"onReset\");\r\n }\r\n\r\n // Create temporary element marking original place of the content\r\n slide.$placeholder = $(\"
\")\r\n .hide()\r\n .insertAfter(content);\r\n\r\n // Make sure content is visible\r\n content.css(\"display\", \"inline-block\");\r\n } else if (!slide.hasError) {\r\n // If content is just a plain text, try to convert it to html\r\n if ($.type(content) === \"string\") {\r\n content = $(\"
\")\r\n .append($.trim(content))\r\n .contents();\r\n }\r\n\r\n // If \"filter\" option is provided, then filter content\r\n if (slide.opts.filter) {\r\n content = $(\"
\")\r\n .html(content)\r\n .find(slide.opts.filter);\r\n }\r\n }\r\n\r\n slide.$slide.one(\"onReset\", function () {\r\n // Pause all html5 video/audio\r\n $(this)\r\n .find(\"video,audio\")\r\n .trigger(\"pause\");\r\n\r\n // Put content back\r\n if (slide.$placeholder) {\r\n slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\r\n\r\n slide.$placeholder = null;\r\n }\r\n\r\n // Remove custom close button\r\n if (slide.$smallBtn) {\r\n slide.$smallBtn.remove();\r\n\r\n slide.$smallBtn = null;\r\n }\r\n\r\n // Remove content and mark slide as not loaded\r\n if (!slide.hasError) {\r\n $(this).empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n }\r\n });\r\n\r\n $(content).appendTo(slide.$slide);\r\n\r\n if ($(content).is(\"video,audio\")) {\r\n $(content).addClass(\"fancybox-video\");\r\n\r\n $(content).wrap(\"
\");\r\n\r\n slide.contentType = \"video\";\r\n\r\n slide.opts.width = slide.opts.width || $(content).attr(\"width\");\r\n slide.opts.height = slide.opts.height || $(content).attr(\"height\");\r\n }\r\n\r\n slide.$content = slide.$slide\r\n .children()\r\n .filter(\"div,form,main,video,audio,article,.fancybox-content\")\r\n .first();\r\n\r\n slide.$content.siblings().hide();\r\n\r\n // Re-check if there is a valid content\r\n // (in some cases, ajax response can contain various elements or plain text)\r\n if (!slide.$content.length) {\r\n slide.$content = slide.$slide\r\n .wrapInner(\"
\")\r\n .children()\r\n .first();\r\n }\r\n\r\n slide.$content.addClass(\"fancybox-content\");\r\n\r\n slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n self.afterLoad(slide);\r\n },\r\n\r\n // Display error message\r\n // =====================\r\n\r\n setError: function (slide) {\r\n slide.hasError = true;\r\n\r\n slide.$slide\r\n .trigger(\"onReset\")\r\n .removeClass(\"fancybox-slide--\" + slide.contentType)\r\n .addClass(\"fancybox-slide--error\");\r\n\r\n slide.contentType = \"html\";\r\n\r\n this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\r\n\r\n if (slide.pos === this.currPos) {\r\n this.isAnimating = false;\r\n }\r\n },\r\n\r\n // Show loading icon inside the slide\r\n // ==================================\r\n\r\n showLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && !slide.$spinner) {\r\n slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\r\n .appendTo(slide.$slide)\r\n .hide()\r\n .fadeIn(\"fast\");\r\n }\r\n },\r\n\r\n // Remove loading icon from the slide\r\n // ==================================\r\n\r\n hideLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && slide.$spinner) {\r\n slide.$spinner.stop().remove();\r\n\r\n delete slide.$spinner;\r\n }\r\n },\r\n\r\n // Adjustments after slide content has been loaded\r\n // ===============================================\r\n\r\n afterLoad: function (slide) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n slide.isLoading = false;\r\n slide.isLoaded = true;\r\n\r\n self.trigger(\"afterLoad\", slide);\r\n\r\n self.hideLoading(slide);\r\n\r\n // Add small close button\r\n if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\r\n slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\r\n }\r\n\r\n // Disable right click\r\n if (slide.opts.protect && slide.$content && !slide.hasError) {\r\n slide.$content.on(\"contextmenu.fb\", function (e) {\r\n if (e.button == 2) {\r\n e.preventDefault();\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // Add fake element on top of the image\r\n // This makes a bit harder for user to select image\r\n if (slide.type === \"image\") {\r\n $('
').appendTo(slide.$content);\r\n }\r\n }\r\n\r\n self.adjustCaption(slide);\r\n\r\n self.adjustLayout(slide);\r\n\r\n if (slide.pos === self.currPos) {\r\n self.updateCursor();\r\n }\r\n\r\n self.revealContent(slide);\r\n },\r\n\r\n // Prevent caption overlap,\r\n // fix css inconsistency across browsers\r\n // =====================================\r\n\r\n adjustCaption: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n caption = current.opts.caption,\r\n preventOverlap = current.opts.preventCaptionOverlap,\r\n $caption = self.$refs.caption,\r\n $clone,\r\n captionH = false;\r\n\r\n $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\r\n\r\n if (preventOverlap && caption && caption.length) {\r\n if (current.pos !== self.currPos) {\r\n $clone = $caption.clone().appendTo($caption.parent());\r\n\r\n $clone\r\n .children()\r\n .eq(0)\r\n .empty()\r\n .html(caption);\r\n\r\n captionH = $clone.outerHeight(true);\r\n\r\n $clone.empty().remove();\r\n } else if (self.$caption) {\r\n captionH = self.$caption.outerHeight(true);\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", captionH || \"\");\r\n }\r\n },\r\n\r\n // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\r\n // ====================================================================================\r\n\r\n adjustLayout: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n scrollHeight,\r\n marginBottom,\r\n inlinePadding,\r\n actualPadding;\r\n\r\n if (current.isLoaded && current.opts.disableLayoutFix !== true) {\r\n current.$content.css(\"margin-bottom\", \"\");\r\n\r\n // If we would always set margin-bottom for the content,\r\n // then it would potentially break vertical align\r\n if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\r\n inlinePadding = current.$slide[0].style[\"padding-bottom\"];\r\n actualPadding = current.$slide.css(\"padding-bottom\");\r\n\r\n if (parseFloat(actualPadding) > 0) {\r\n scrollHeight = current.$slide[0].scrollHeight;\r\n\r\n current.$slide.css(\"padding-bottom\", 0);\r\n\r\n if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\r\n marginBottom = actualPadding;\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", inlinePadding);\r\n }\r\n }\r\n\r\n current.$content.css(\"margin-bottom\", marginBottom);\r\n }\r\n },\r\n\r\n // Make content visible\r\n // This method is called right after content has been loaded or\r\n // user navigates gallery and transition should start\r\n // ============================================================\r\n\r\n revealContent: function (slide) {\r\n var self = this,\r\n $slide = slide.$slide,\r\n end = false,\r\n start = false,\r\n isMoved = self.isMoved(slide),\r\n isRevealed = slide.isRevealed,\r\n effect,\r\n effectClassName,\r\n duration,\r\n opacity;\r\n\r\n slide.isRevealed = true;\r\n\r\n effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\r\n duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n\r\n duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\r\n\r\n if (isMoved || slide.pos !== self.currPos || !duration) {\r\n effect = false;\r\n }\r\n\r\n // Check if can zoom\r\n if (effect === \"zoom\") {\r\n if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\r\n end = self.getFitPos(slide);\r\n } else {\r\n effect = \"fade\";\r\n }\r\n }\r\n\r\n // Zoom animation\r\n // ==============\r\n if (effect === \"zoom\") {\r\n self.isAnimating = true;\r\n\r\n end.scaleX = end.width / start.width;\r\n end.scaleY = end.height / start.height;\r\n\r\n // Check if we need to animate opacity\r\n opacity = slide.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n start.opacity = 0.1;\r\n end.opacity = 1;\r\n }\r\n\r\n // Draw image at start position\r\n $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\r\n\r\n forceRedraw(slide.$content);\r\n\r\n // Start animation\r\n $.fancybox.animate(slide.$content, end, duration, function () {\r\n self.isAnimating = false;\r\n\r\n self.complete();\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.updateSlide(slide);\r\n\r\n // Simply show content if no effect\r\n // ================================\r\n if (!effect) {\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\r\n slide.$content.hide().fadeIn(\"fast\");\r\n }\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Prepare for CSS transiton\r\n // =========================\r\n $.fancybox.stop($slide);\r\n\r\n //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\r\n effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\r\n\r\n $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\r\n\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n // Force reflow\r\n forceRedraw($slide);\r\n\r\n if (slide.type !== \"image\") {\r\n slide.$content.hide().show(0);\r\n }\r\n\r\n $.fancybox.animate(\r\n $slide,\r\n \"fancybox-slide--current\",\r\n duration,\r\n function () {\r\n $slide.removeClass(effectClassName).css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n },\r\n true\r\n );\r\n },\r\n\r\n // Check if we can and have to zoom from thumbnail\r\n //================================================\r\n\r\n getThumbPos: function (slide) {\r\n var rez = false,\r\n $thumb = slide.$thumb,\r\n thumbPos,\r\n btw,\r\n brw,\r\n bbw,\r\n blw;\r\n\r\n if (!$thumb || !inViewport($thumb[0])) {\r\n return false;\r\n }\r\n\r\n thumbPos = $.fancybox.getTranslate($thumb);\r\n\r\n btw = parseFloat($thumb.css(\"border-top-width\") || 0);\r\n brw = parseFloat($thumb.css(\"border-right-width\") || 0);\r\n bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\r\n blw = parseFloat($thumb.css(\"border-left-width\") || 0);\r\n\r\n rez = {\r\n top: thumbPos.top + btw,\r\n left: thumbPos.left + blw,\r\n width: thumbPos.width - brw - blw,\r\n height: thumbPos.height - btw - bbw,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\r\n },\r\n\r\n // Final adjustments after current gallery item is moved to position\r\n // and it`s content is loaded\r\n // ==================================================================\r\n\r\n complete: function () {\r\n var self = this,\r\n current = self.current,\r\n slides = {},\r\n $el;\r\n\r\n if (self.isMoved() || !current.isLoaded) {\r\n return;\r\n }\r\n\r\n if (!current.isComplete) {\r\n current.isComplete = true;\r\n\r\n current.$slide.siblings().trigger(\"onReset\");\r\n\r\n self.preload(\"inline\");\r\n\r\n // Trigger any CSS transiton inside the slide\r\n forceRedraw(current.$slide);\r\n\r\n current.$slide.addClass(\"fancybox-slide--complete\");\r\n\r\n // Remove unnecessary slides\r\n $.each(self.slides, function (key, slide) {\r\n if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\r\n slides[slide.pos] = slide;\r\n } else if (slide) {\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slide.$slide.off().remove();\r\n }\r\n });\r\n\r\n self.slides = slides;\r\n }\r\n\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n\r\n self.trigger(\"afterShow\");\r\n\r\n // Autoplay first html5 video/audio\r\n if (!!current.opts.video.autoStart) {\r\n current.$slide\r\n .find(\"video,audio\")\r\n .filter(\":visible:first\")\r\n .trigger(\"play\")\r\n .one(\"ended\", function () {\r\n if (Document.exitFullscreen) {\r\n Document.exitFullscreen();\r\n } else if (this.webkitExitFullscreen) {\r\n this.webkitExitFullscreen();\r\n }\r\n\r\n self.next();\r\n });\r\n }\r\n\r\n // Try to focus on the first focusable element\r\n if (current.opts.autoFocus && current.contentType === \"html\") {\r\n // Look for the first input with autofocus attribute\r\n $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\r\n\r\n if ($el.length) {\r\n $el.trigger(\"focus\");\r\n } else {\r\n self.focus(null, true);\r\n }\r\n }\r\n\r\n // Avoid jumping\r\n current.$slide.scrollTop(0).scrollLeft(0);\r\n },\r\n\r\n // Preload next and previous slides\r\n // ================================\r\n\r\n preload: function (type) {\r\n var self = this,\r\n prev,\r\n next;\r\n\r\n if (self.group.length < 2) {\r\n return;\r\n }\r\n\r\n next = self.slides[self.currPos + 1];\r\n prev = self.slides[self.currPos - 1];\r\n\r\n if (prev && prev.type === type) {\r\n self.loadSlide(prev);\r\n }\r\n\r\n if (next && next.type === type) {\r\n self.loadSlide(next);\r\n }\r\n },\r\n\r\n // Try to find and focus on the first focusable element\r\n // ====================================================\r\n\r\n focus: function (e, firstRun) {\r\n var self = this,\r\n focusableStr = [\r\n \"a[href]\",\r\n \"area[href]\",\r\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\r\n \"select:not([disabled]):not([aria-hidden])\",\r\n \"textarea:not([disabled]):not([aria-hidden])\",\r\n \"button:not([disabled]):not([aria-hidden])\",\r\n \"iframe\",\r\n \"object\",\r\n \"embed\",\r\n \"video\",\r\n \"audio\",\r\n \"[contenteditable]\",\r\n '[tabindex]:not([tabindex^=\"-\"])'\r\n ].join(\",\"),\r\n focusableItems,\r\n focusedItemIndex;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (e || !self.current || !self.current.isComplete) {\r\n // Focus on any element inside fancybox\r\n focusableItems = self.$refs.container.find(\"*:visible\");\r\n } else {\r\n // Focus inside current slide\r\n focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\r\n }\r\n\r\n focusableItems = focusableItems.filter(focusableStr).filter(function () {\r\n return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\r\n });\r\n\r\n if (focusableItems.length) {\r\n focusedItemIndex = focusableItems.index(document.activeElement);\r\n\r\n if (e && e.shiftKey) {\r\n // Back tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == 0) {\r\n e.preventDefault();\r\n\r\n focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\r\n }\r\n } else {\r\n // Outside or Forward tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n focusableItems.eq(0).trigger(\"focus\");\r\n }\r\n }\r\n } else {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Activates current instance - brings container to the front and enables keyboard,\r\n // notifies other instances about deactivating\r\n // =================================================================================\r\n\r\n activate: function () {\r\n var self = this;\r\n\r\n // Deactivate all instances\r\n $(\".fancybox-container\").each(function () {\r\n var instance = $(this).data(\"FancyBox\");\r\n\r\n // Skip self and closing instances\r\n if (instance && instance.id !== self.id && !instance.isClosing) {\r\n instance.trigger(\"onDeactivate\");\r\n\r\n instance.removeEvents();\r\n\r\n instance.isVisible = false;\r\n }\r\n });\r\n\r\n self.isVisible = true;\r\n\r\n if (self.current || self.isIdle) {\r\n self.update();\r\n\r\n self.updateControls();\r\n }\r\n\r\n self.trigger(\"onActivate\");\r\n\r\n self.addEvents();\r\n },\r\n\r\n // Start closing procedure\r\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\r\n // =================================================================================\r\n\r\n close: function (e, d) {\r\n var self = this,\r\n current = self.current,\r\n effect,\r\n duration,\r\n $content,\r\n domRect,\r\n opacity,\r\n start,\r\n end;\r\n\r\n var done = function () {\r\n self.cleanUp(e);\r\n };\r\n\r\n if (self.isClosing) {\r\n return false;\r\n }\r\n\r\n self.isClosing = true;\r\n\r\n // If beforeClose callback prevents closing, make sure content is centered\r\n if (self.trigger(\"beforeClose\", e) === false) {\r\n self.isClosing = false;\r\n\r\n requestAFrame(function () {\r\n self.update();\r\n });\r\n\r\n return false;\r\n }\r\n\r\n // Remove all events\r\n // If there are multiple instances, they will be set again by \"activate\" method\r\n self.removeEvents();\r\n\r\n $content = current.$content;\r\n effect = current.opts.animationEffect;\r\n duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\r\n\r\n current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\r\n\r\n if (e !== true) {\r\n $.fancybox.stop(current.$slide);\r\n } else {\r\n effect = false;\r\n }\r\n\r\n // Remove other slides\r\n current.$slide\r\n .siblings()\r\n .trigger(\"onReset\")\r\n .remove();\r\n\r\n // Trigger animations\r\n if (duration) {\r\n self.$refs.container\r\n .removeClass(\"fancybox-is-open\")\r\n .addClass(\"fancybox-is-closing\")\r\n .css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Clean up\r\n self.hideLoading(current);\r\n\r\n self.hideControls(true);\r\n\r\n self.updateCursor();\r\n\r\n // Check if possible to zoom-out\r\n if (\r\n effect === \"zoom\" &&\r\n !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\r\n ) {\r\n effect = \"fade\";\r\n }\r\n\r\n if (effect === \"zoom\") {\r\n $.fancybox.stop($content);\r\n\r\n domRect = $.fancybox.getTranslate($content);\r\n\r\n start = {\r\n top: domRect.top,\r\n left: domRect.left,\r\n scaleX: domRect.width / end.width,\r\n scaleY: domRect.height / end.height,\r\n width: end.width,\r\n height: end.height\r\n };\r\n\r\n // Check if we need to animate opacity\r\n opacity = current.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n end.opacity = 0;\r\n }\r\n\r\n $.fancybox.setTranslate($content, start);\r\n\r\n forceRedraw($content);\r\n\r\n $.fancybox.animate($content, end, duration, done);\r\n\r\n return true;\r\n }\r\n\r\n if (effect && duration) {\r\n $.fancybox.animate(\r\n current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\r\n \"fancybox-animated fancybox-fx-\" + effect,\r\n duration,\r\n done\r\n );\r\n } else {\r\n // If skip animation\r\n if (e === true) {\r\n setTimeout(done, duration);\r\n } else {\r\n done();\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Final adjustments after removing the instance\r\n // =============================================\r\n\r\n cleanUp: function (e) {\r\n var self = this,\r\n instance,\r\n $focus = self.current.opts.$orig,\r\n x,\r\n y;\r\n\r\n self.current.$slide.trigger(\"onReset\");\r\n\r\n self.$refs.container.empty().remove();\r\n\r\n self.trigger(\"afterClose\", e);\r\n\r\n // Place back focus\r\n if (!!self.current.opts.backFocus) {\r\n if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\r\n $focus = self.$trigger;\r\n }\r\n\r\n if ($focus && $focus.length) {\r\n x = window.scrollX;\r\n y = window.scrollY;\r\n\r\n $focus.trigger(\"focus\");\r\n\r\n $(\"html, body\")\r\n .scrollTop(y)\r\n .scrollLeft(x);\r\n }\r\n }\r\n\r\n self.current = null;\r\n\r\n // Check if there are other instances\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n instance.activate();\r\n } else {\r\n $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\r\n\r\n $(\"#fancybox-style-noscroll\").remove();\r\n }\r\n },\r\n\r\n // Call callback and trigger an event\r\n // ==================================\r\n\r\n trigger: function (name, slide) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n self = this,\r\n obj = slide && slide.opts ? slide : self.current,\r\n rez;\r\n\r\n if (obj) {\r\n args.unshift(obj);\r\n } else {\r\n obj = self;\r\n }\r\n\r\n args.unshift(self);\r\n\r\n if ($.isFunction(obj.opts[name])) {\r\n rez = obj.opts[name].apply(obj, args);\r\n }\r\n\r\n if (rez === false) {\r\n return rez;\r\n }\r\n\r\n if (name === \"afterClose\" || !self.$refs) {\r\n $D.trigger(name + \".fb\", args);\r\n } else {\r\n self.$refs.container.trigger(name + \".fb\", args);\r\n }\r\n },\r\n\r\n // Update infobar values, navigation button states and reveal caption\r\n // ==================================================================\r\n\r\n updateControls: function () {\r\n var self = this,\r\n current = self.current,\r\n index = current.index,\r\n $container = self.$refs.container,\r\n $caption = self.$refs.caption,\r\n caption = current.opts.caption;\r\n\r\n // Recalculate content dimensions\r\n current.$slide.trigger(\"refresh\");\r\n\r\n // Set caption\r\n if (caption && caption.length) {\r\n self.$caption = $caption;\r\n\r\n $caption\r\n .children()\r\n .eq(0)\r\n .html(caption);\r\n } else {\r\n self.$caption = null;\r\n }\r\n\r\n if (!self.hasHiddenControls && !self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n // Update info and navigation elements\r\n $container.find(\"[data-fancybox-count]\").html(self.group.length);\r\n $container.find(\"[data-fancybox-index]\").html(index + 1);\r\n\r\n $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\r\n $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\r\n\r\n if (current.type === \"image\") {\r\n // Re-enable buttons; update download button source\r\n $container\r\n .find(\"[data-fancybox-zoom]\")\r\n .show()\r\n .end()\r\n .find(\"[data-fancybox-download]\")\r\n .attr(\"href\", current.opts.image.src || current.src)\r\n .show();\r\n } else if (current.opts.toolbar) {\r\n $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\r\n }\r\n\r\n // Make sure focus is not on disabled button/element\r\n if ($(document.activeElement).is(\":hidden,[disabled]\")) {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Hide toolbar and caption\r\n // ========================\r\n\r\n hideControls: function (andCaption) {\r\n var self = this,\r\n arr = [\"infobar\", \"toolbar\", \"nav\"];\r\n\r\n if (andCaption || !self.current.opts.preventCaptionOverlap) {\r\n arr.push(\"caption\");\r\n }\r\n\r\n this.$refs.container.removeClass(\r\n arr\r\n .map(function (i) {\r\n return \"fancybox-show-\" + i;\r\n })\r\n .join(\" \")\r\n );\r\n\r\n this.hasHiddenControls = true;\r\n },\r\n\r\n showControls: function () {\r\n var self = this,\r\n opts = self.current ? self.current.opts : self.opts,\r\n $container = self.$refs.container;\r\n\r\n self.hasHiddenControls = false;\r\n self.idleSecondsCounter = 0;\r\n\r\n $container\r\n .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\r\n .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\r\n .toggleClass(\"fancybox-show-caption\", !!self.$caption)\r\n .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\r\n .toggleClass(\"fancybox-is-modal\", !!opts.modal);\r\n },\r\n\r\n // Toggle toolbar and caption\r\n // ==========================\r\n\r\n toggleControls: function () {\r\n if (this.hasHiddenControls) {\r\n this.showControls();\r\n } else {\r\n this.hideControls();\r\n }\r\n }\r\n });\r\n\r\n $.fancybox = {\r\n version: \"3.5.7\",\r\n defaults: defaults,\r\n\r\n // Get current instance and execute a command.\r\n //\r\n // Examples of usage:\r\n //\r\n // $instance = $.fancybox.getInstance();\r\n // $.fancybox.getInstance().jumpTo( 1 );\r\n // $.fancybox.getInstance( 'jumpTo', 1 );\r\n // $.fancybox.getInstance( function() {\r\n // console.info( this.currIndex );\r\n // });\r\n // ======================================================\r\n\r\n getInstance: function (command) {\r\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\r\n args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if (instance instanceof FancyBox) {\r\n if ($.type(command) === \"string\") {\r\n instance[command].apply(instance, args);\r\n } else if ($.type(command) === \"function\") {\r\n command.apply(instance, args);\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Create new instance\r\n // ===================\r\n\r\n open: function (items, opts, index) {\r\n return new FancyBox(items, opts, index);\r\n },\r\n\r\n // Close current or all instances\r\n // ==============================\r\n\r\n close: function (all) {\r\n var instance = this.getInstance();\r\n\r\n if (instance) {\r\n instance.close();\r\n\r\n // Try to find and close next instance\r\n if (all === true) {\r\n this.close(all);\r\n }\r\n }\r\n },\r\n\r\n // Close all instances and unbind all events\r\n // =========================================\r\n\r\n destroy: function () {\r\n this.close(true);\r\n\r\n $D.add(\"body\").off(\"click.fb-start\", \"**\");\r\n },\r\n\r\n // Try to detect mobile devices\r\n // ============================\r\n\r\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\r\n\r\n // Detect if 'translate3d' support is available\r\n // ============================================\r\n\r\n use3d: (function () {\r\n var div = document.createElement(\"div\");\r\n\r\n return (\r\n window.getComputedStyle &&\r\n window.getComputedStyle(div) &&\r\n window.getComputedStyle(div).getPropertyValue(\"transform\") &&\r\n !(document.documentMode && document.documentMode < 11)\r\n );\r\n })(),\r\n\r\n // Helper function to get current visual state of an element\r\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\r\n // =====================================================================\r\n\r\n getTranslate: function ($el) {\r\n var domRect;\r\n\r\n if (!$el || !$el.length) {\r\n return false;\r\n }\r\n\r\n domRect = $el[0].getBoundingClientRect();\r\n\r\n return {\r\n top: domRect.top || 0,\r\n left: domRect.left || 0,\r\n width: domRect.width,\r\n height: domRect.height,\r\n opacity: parseFloat($el.css(\"opacity\"))\r\n };\r\n },\r\n\r\n // Shortcut for setting \"translate3d\" properties for element\r\n // Can set be used to set opacity, too\r\n // ========================================================\r\n\r\n setTranslate: function ($el, props) {\r\n var str = \"\",\r\n css = {};\r\n\r\n if (!$el || !props) {\r\n return;\r\n }\r\n\r\n if (props.left !== undefined || props.top !== undefined) {\r\n str =\r\n (props.left === undefined ? $el.position().left : props.left) +\r\n \"px, \" +\r\n (props.top === undefined ? $el.position().top : props.top) +\r\n \"px\";\r\n\r\n if (this.use3d) {\r\n str = \"translate3d(\" + str + \", 0px)\";\r\n } else {\r\n str = \"translate(\" + str + \")\";\r\n }\r\n }\r\n\r\n if (props.scaleX !== undefined && props.scaleY !== undefined) {\r\n str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\r\n } else if (props.scaleX !== undefined) {\r\n str += \" scaleX(\" + props.scaleX + \")\";\r\n }\r\n\r\n if (str.length) {\r\n css.transform = str;\r\n }\r\n\r\n if (props.opacity !== undefined) {\r\n css.opacity = props.opacity;\r\n }\r\n\r\n if (props.width !== undefined) {\r\n css.width = props.width;\r\n }\r\n\r\n if (props.height !== undefined) {\r\n css.height = props.height;\r\n }\r\n\r\n return $el.css(css);\r\n },\r\n\r\n // Simple CSS transition handler\r\n // =============================\r\n\r\n animate: function ($el, to, duration, callback, leaveAnimationName) {\r\n var self = this,\r\n from;\r\n\r\n if ($.isFunction(duration)) {\r\n callback = duration;\r\n duration = null;\r\n }\r\n\r\n self.stop($el);\r\n\r\n from = self.getTranslate($el);\r\n\r\n $el.on(transitionEnd, function (e) {\r\n // Skip events from child elements and z-index change\r\n if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\r\n return;\r\n }\r\n\r\n self.stop($el);\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", \"\");\r\n }\r\n\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n self.setTranslate($el, {\r\n top: to.top,\r\n left: to.left,\r\n width: from.width * to.scaleX,\r\n height: from.height * to.scaleY,\r\n scaleX: 1,\r\n scaleY: 1\r\n });\r\n }\r\n } else if (leaveAnimationName !== true) {\r\n $el.removeClass(to);\r\n }\r\n\r\n if ($.isFunction(callback)) {\r\n callback(e);\r\n }\r\n });\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Start animation by changing CSS properties or class name\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n delete to.width;\r\n delete to.height;\r\n\r\n if ($el.parent().hasClass(\"fancybox-slide--image\")) {\r\n $el.parent().addClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n\r\n $.fancybox.setTranslate($el, to);\r\n } else {\r\n $el.addClass(to);\r\n }\r\n\r\n // Make sure that `transitionend` callback gets fired\r\n $el.data(\r\n \"timer\",\r\n setTimeout(function () {\r\n $el.trigger(transitionEnd);\r\n }, duration + 33)\r\n );\r\n },\r\n\r\n stop: function ($el, callCallback) {\r\n if ($el && $el.length) {\r\n clearTimeout($el.data(\"timer\"));\r\n\r\n if (callCallback) {\r\n $el.trigger(transitionEnd);\r\n }\r\n\r\n $el.off(transitionEnd).css(\"transition-duration\", \"\");\r\n\r\n $el.parent().removeClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n };\r\n\r\n // Default click handler for \"fancyboxed\" links\r\n // ============================================\r\n\r\n function _run(e, opts) {\r\n var items = [],\r\n index = 0,\r\n $target,\r\n value,\r\n instance;\r\n\r\n // Avoid opening multiple times\r\n if (e && e.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n opts = opts || {};\r\n\r\n if (e && e.data) {\r\n opts = mergeOpts(e.data.options, opts);\r\n }\r\n\r\n $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance && instance.$trigger && instance.$trigger.is($target)) {\r\n return;\r\n }\r\n\r\n if (opts.selector) {\r\n items = $(opts.selector);\r\n } else {\r\n // Get all related items and find index for clicked one\r\n value = $target.attr(\"data-fancybox\") || \"\";\r\n\r\n if (value) {\r\n items = e.data ? e.data.items : [];\r\n items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\r\n } else {\r\n items = [$target];\r\n }\r\n }\r\n\r\n index = $(items).index($target);\r\n\r\n // Sometimes current item can not be found\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n instance = $.fancybox.open(items, opts, index);\r\n\r\n // Save last active element\r\n instance.$trigger = $target;\r\n }\r\n\r\n // Create a jQuery plugin\r\n // ======================\r\n\r\n $.fn.fancybox = function (options) {\r\n var selector;\r\n\r\n options = options || {};\r\n selector = options.selector || false;\r\n\r\n if (selector) {\r\n // Use body element instead of document so it executes first\r\n $(\"body\")\r\n .off(\"click.fb-start\", selector)\r\n .on(\"click.fb-start\", selector, {\r\n options: options\r\n }, _run);\r\n } else {\r\n this.off(\"click.fb-start\").on(\r\n \"click.fb-start\", {\r\n items: this,\r\n options: options\r\n },\r\n _run\r\n );\r\n }\r\n\r\n return this;\r\n };\r\n\r\n // Self initializing plugin for all elements having `data-fancybox` attribute\r\n // ==========================================================================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\r\n\r\n // Enable \"trigger elements\"\r\n // =========================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\r\n $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\r\n .eq($(this).attr(\"data-fancybox-index\") || 0)\r\n .trigger(\"click.fb-start\", {\r\n $trigger: $(this)\r\n });\r\n });\r\n\r\n // Track focus event for better accessibility styling\r\n // ==================================================\r\n (function () {\r\n var buttonStr = \".fancybox-button\",\r\n focusStr = \"fancybox-focus\",\r\n $pressed = null;\r\n\r\n $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\r\n switch (e.type) {\r\n case \"mousedown\":\r\n $pressed = $(this);\r\n break;\r\n case \"mouseup\":\r\n $pressed = null;\r\n break;\r\n case \"focusin\":\r\n $(buttonStr).removeClass(focusStr);\r\n\r\n if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\r\n $(this).addClass(focusStr);\r\n }\r\n break;\r\n case \"focusout\":\r\n $(buttonStr).removeClass(focusStr);\r\n break;\r\n }\r\n });\r\n })();\r\n})(window, document, jQuery);\r\n// ==========================================================================\r\n//\r\n// Media\r\n// Adds additional media type support\r\n//\r\n// ==========================================================================\r\n(function ($) {\r\n \"use strict\";\r\n\r\n // Object containing properties for each media type\r\n var defaults = {\r\n youtube: {\r\n matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\r\n params: {\r\n autoplay: 1,\r\n autohide: 1,\r\n fs: 1,\r\n rel: 0,\r\n hd: 1,\r\n wmode: \"transparent\",\r\n enablejsapi: 1,\r\n html5: 1\r\n },\r\n paramPlace: 8,\r\n type: \"iframe\",\r\n url: \"https://www.youtube-nocookie.com/embed/$4\",\r\n thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\r\n },\r\n\r\n vimeo: {\r\n matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\r\n params: {\r\n autoplay: 1,\r\n hd: 1,\r\n show_title: 1,\r\n show_byline: 1,\r\n show_portrait: 0,\r\n fullscreen: 1\r\n },\r\n paramPlace: 3,\r\n type: \"iframe\",\r\n url: \"//player.vimeo.com/video/$2\"\r\n },\r\n\r\n instagram: {\r\n matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\r\n type: \"image\",\r\n url: \"//$1/p/$2/media/?size=l\"\r\n },\r\n\r\n // Examples:\r\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\r\n // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\r\n // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\r\n gmap_place: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return (\r\n \"//maps.google.\" +\r\n rez[2] +\r\n \"/?ll=\" +\r\n (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\r\n \"&output=\" +\r\n (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\r\n );\r\n }\r\n },\r\n\r\n // Examples:\r\n // https://www.google.com/maps/search/Empire+State+Building/\r\n // https://www.google.com/maps/search/?api=1&query=centurylink+field\r\n // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\r\n gmap_search: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\r\n }\r\n }\r\n };\r\n\r\n // Formats matching url to final form\r\n var format = function (url, rez, params) {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n params = params || \"\";\r\n\r\n if ($.type(params) === \"object\") {\r\n params = $.param(params, true);\r\n }\r\n\r\n $.each(rez, function (key, value) {\r\n url = url.replace(\"$\" + key, value || \"\");\r\n });\r\n\r\n if (params.length) {\r\n url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\r\n var url = item.src || \"\",\r\n type = false,\r\n media,\r\n thumb,\r\n rez,\r\n params,\r\n urlParams,\r\n paramObj,\r\n provider;\r\n\r\n media = $.extend(true, {}, defaults, item.opts.media);\r\n\r\n // Look for any matching media type\r\n $.each(media, function (providerName, providerOpts) {\r\n rez = url.match(providerOpts.matcher);\r\n\r\n if (!rez) {\r\n return;\r\n }\r\n\r\n type = providerOpts.type;\r\n provider = providerName;\r\n paramObj = {};\r\n\r\n if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\r\n urlParams = rez[providerOpts.paramPlace];\r\n\r\n if (urlParams[0] == \"?\") {\r\n urlParams = urlParams.substring(1);\r\n }\r\n\r\n urlParams = urlParams.split(\"&\");\r\n\r\n for (var m = 0; m < urlParams.length; ++m) {\r\n var p = urlParams[m].split(\"=\", 2);\r\n\r\n if (p.length == 2) {\r\n paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\r\n }\r\n }\r\n }\r\n\r\n params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\r\n\r\n url =\r\n $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\r\n\r\n thumb =\r\n $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\r\n\r\n if (providerName === \"youtube\") {\r\n url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\r\n return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\r\n });\r\n } else if (providerName === \"vimeo\") {\r\n url = url.replace(\"&%23\", \"#\");\r\n }\r\n\r\n return false;\r\n });\r\n\r\n // If it is found, then change content type and update the url\r\n\r\n if (type) {\r\n if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\r\n item.opts.thumb = thumb;\r\n }\r\n\r\n if (type === \"iframe\") {\r\n item.opts = $.extend(true, item.opts, {\r\n iframe: {\r\n preload: false,\r\n attr: {\r\n scrolling: \"no\"\r\n }\r\n }\r\n });\r\n }\r\n\r\n $.extend(item, {\r\n type: type,\r\n src: url,\r\n origSrc: item.src,\r\n contentSource: provider,\r\n contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\r\n });\r\n } else if (url) {\r\n item.type = item.opts.defaultType;\r\n }\r\n });\r\n\r\n // Load YouTube/Video API on request to detect when video finished playing\r\n var VideoAPILoader = {\r\n youtube: {\r\n src: \"https://www.youtube.com/iframe_api\",\r\n class: \"YT\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n vimeo: {\r\n src: \"https://player.vimeo.com/api/player.js\",\r\n class: \"Vimeo\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n load: function (vendor) {\r\n var _this = this,\r\n script;\r\n\r\n if (this[vendor].loaded) {\r\n setTimeout(function () {\r\n _this.done(vendor);\r\n });\r\n return;\r\n }\r\n\r\n if (this[vendor].loading) {\r\n return;\r\n }\r\n\r\n this[vendor].loading = true;\r\n\r\n script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = this[vendor].src;\r\n\r\n if (vendor === \"youtube\") {\r\n window.onYouTubeIframeAPIReady = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n } else {\r\n script.onload = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n }\r\n\r\n document.body.appendChild(script);\r\n },\r\n done: function (vendor) {\r\n var instance, $el, player;\r\n\r\n if (vendor === \"youtube\") {\r\n delete window.onYouTubeIframeAPIReady;\r\n }\r\n\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n $el = instance.current.$content.find(\"iframe\");\r\n\r\n if (vendor === \"youtube\" && YT !== undefined && YT) {\r\n player = new YT.Player($el.attr(\"id\"), {\r\n events: {\r\n onStateChange: function (e) {\r\n if (e.data == 0) {\r\n instance.next();\r\n }\r\n }\r\n }\r\n });\r\n } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\r\n player = new Vimeo.Player($el);\r\n\r\n player.on(\"ended\", function () {\r\n instance.next();\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n $(document).on({\r\n \"afterShow.fb\": function (e, instance, current) {\r\n if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\r\n VideoAPILoader.load(current.contentSource);\r\n }\r\n }\r\n });\r\n})(jQuery);\r\n// ==========================================================================\r\n//\r\n// Guestures\r\n// Adds touch guestures, handles click and tap events\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n var getPointerXY = function (e) {\r\n var result = [];\r\n\r\n e = e.originalEvent || e || window.e;\r\n e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\r\n\r\n for (var key in e) {\r\n if (e[key].pageX) {\r\n result.push({\r\n x: e[key].pageX,\r\n y: e[key].pageY\r\n });\r\n } else if (e[key].clientX) {\r\n result.push({\r\n x: e[key].clientX,\r\n y: e[key].clientY\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n var distance = function (point2, point1, what) {\r\n if (!point1 || !point2) {\r\n return 0;\r\n }\r\n\r\n if (what === \"x\") {\r\n return point2.x - point1.x;\r\n } else if (what === \"y\") {\r\n return point2.y - point1.y;\r\n }\r\n\r\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\r\n };\r\n\r\n var isClickable = function ($el) {\r\n if (\r\n $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\r\n $.isFunction($el.get(0).onclick) ||\r\n $el.data(\"selectable\")\r\n ) {\r\n return true;\r\n }\r\n\r\n // Check for attributes like data-fancybox-next or data-fancybox-close\r\n for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\r\n if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var hasScrollbars = function (el) {\r\n var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\r\n overflowX = window.getComputedStyle(el)[\"overflow-x\"],\r\n vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\r\n horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\r\n\r\n return vertical || horizontal;\r\n };\r\n\r\n var isScrollable = function ($el) {\r\n var rez = false;\r\n\r\n while (true) {\r\n rez = hasScrollbars($el.get(0));\r\n\r\n if (rez) {\r\n break;\r\n }\r\n\r\n $el = $el.parent();\r\n\r\n if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\r\n break;\r\n }\r\n }\r\n\r\n return rez;\r\n };\r\n\r\n var Guestures = function (instance) {\r\n var self = this;\r\n\r\n self.instance = instance;\r\n\r\n self.$bg = instance.$refs.bg;\r\n self.$stage = instance.$refs.stage;\r\n self.$container = instance.$refs.container;\r\n\r\n self.destroy();\r\n\r\n self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\r\n };\r\n\r\n Guestures.prototype.destroy = function () {\r\n var self = this;\r\n\r\n self.$container.off(\".fb.touch\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n self.requestId = null;\r\n }\r\n\r\n if (self.tapped) {\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n }\r\n };\r\n\r\n Guestures.prototype.ontouchstart = function (e) {\r\n var self = this,\r\n $target = $(e.target),\r\n instance = self.instance,\r\n current = instance.current,\r\n $slide = current.$slide,\r\n $content = current.$content,\r\n isTouchDevice = e.type == \"touchstart\";\r\n\r\n // Do not respond to both (touch and mouse) events\r\n if (isTouchDevice) {\r\n self.$container.off(\"mousedown.fb.touch\");\r\n }\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Ignore taping on links, buttons, input elements\r\n if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\r\n return;\r\n }\r\n // Ignore clicks on the scrollbar\r\n if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Ignore clicks while zooming or closing\r\n if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n self.realPoints = self.startPoints = getPointerXY(e);\r\n\r\n if (!self.startPoints.length) {\r\n return;\r\n }\r\n\r\n // Allow other scripts to catch touch event if \"touch\" is set to false\r\n if (current.touch) {\r\n e.stopPropagation();\r\n }\r\n\r\n self.startEvent = e;\r\n\r\n self.canTap = true;\r\n self.$target = $target;\r\n self.$content = $content;\r\n self.opts = current.opts.touch;\r\n\r\n self.isPanning = false;\r\n self.isSwiping = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n self.canPan = instance.canPan();\r\n\r\n self.startTime = new Date().getTime();\r\n self.distanceX = self.distanceY = self.distance = 0;\r\n\r\n self.canvasWidth = Math.round($slide[0].clientWidth);\r\n self.canvasHeight = Math.round($slide[0].clientHeight);\r\n\r\n self.contentLastPos = null;\r\n self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\r\n top: 0,\r\n left: 0\r\n };\r\n self.sliderStartPos = $.fancybox.getTranslate($slide);\r\n\r\n // Since position will be absolute, but we need to make it relative to the stage\r\n self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n self.sliderStartPos.top -= self.stagePos.top;\r\n self.sliderStartPos.left -= self.stagePos.left;\r\n\r\n self.contentStartPos.top -= self.stagePos.top;\r\n self.contentStartPos.left -= self.stagePos.left;\r\n\r\n $(document)\r\n .off(\".fb.touch\")\r\n .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\r\n .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\r\n\r\n if ($.fancybox.isMobile) {\r\n document.addEventListener(\"scroll\", self.onscroll, true);\r\n }\r\n\r\n // Skip if clicked outside the sliding area\r\n if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\r\n if ($target.is(\".fancybox-image\")) {\r\n e.preventDefault();\r\n }\r\n\r\n if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\r\n return;\r\n }\r\n }\r\n\r\n self.isScrollable = isScrollable($target) || isScrollable($target.parent());\r\n\r\n // Check if element is scrollable and try to prevent default behavior (scrolling)\r\n if (!($.fancybox.isMobile && self.isScrollable)) {\r\n e.preventDefault();\r\n }\r\n\r\n // One finger or mouse click - swipe or pan an image\r\n if (self.startPoints.length === 1 || current.hasError) {\r\n if (self.canPan) {\r\n $.fancybox.stop(self.$content);\r\n\r\n self.isPanning = true;\r\n } else {\r\n self.isSwiping = true;\r\n }\r\n\r\n self.$container.addClass(\"fancybox-is-grabbing\");\r\n }\r\n\r\n // Two fingers - zoom image\r\n if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\r\n self.canTap = false;\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n\r\n self.isZooming = true;\r\n\r\n $.fancybox.stop(self.$content);\r\n\r\n self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\r\n self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\r\n\r\n self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\r\n self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\r\n\r\n self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\r\n }\r\n };\r\n\r\n Guestures.prototype.onscroll = function (e) {\r\n var self = this;\r\n\r\n self.isScrolling = true;\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n };\r\n\r\n Guestures.prototype.ontouchmove = function (e) {\r\n var self = this;\r\n\r\n // Make sure user has not released over iframe or disabled element\r\n if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\r\n self.ontouchend(e);\r\n return;\r\n }\r\n\r\n if (self.isScrolling) {\r\n self.canTap = false;\r\n return;\r\n }\r\n\r\n self.newPoints = getPointerXY(e);\r\n\r\n if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\r\n return;\r\n }\r\n\r\n if (!(self.isSwiping && self.isSwiping === true)) {\r\n e.preventDefault();\r\n }\r\n\r\n self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\r\n self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\r\n\r\n self.distance = distance(self.newPoints[0], self.startPoints[0]);\r\n\r\n // Skip false ontouchmove events (Chrome)\r\n if (self.distance > 0) {\r\n if (self.isSwiping) {\r\n self.onSwipe(e);\r\n } else if (self.isPanning) {\r\n self.onPan();\r\n } else if (self.isZooming) {\r\n self.onZoom();\r\n }\r\n }\r\n };\r\n\r\n Guestures.prototype.onSwipe = function (e) {\r\n var self = this,\r\n instance = self.instance,\r\n swiping = self.isSwiping,\r\n left = self.sliderStartPos.left || 0,\r\n angle;\r\n\r\n // If direction is not yet determined\r\n if (swiping === true) {\r\n // We need at least 10px distance to correctly calculate an angle\r\n if (Math.abs(self.distance) > 10) {\r\n self.canTap = false;\r\n\r\n if (instance.group.length < 2 && self.opts.vertical) {\r\n self.isSwiping = \"y\";\r\n } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\r\n self.isSwiping = \"x\";\r\n } else {\r\n angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\r\n\r\n self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\r\n }\r\n\r\n if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\r\n self.isScrolling = true;\r\n\r\n return;\r\n }\r\n\r\n instance.isDragging = self.isSwiping;\r\n\r\n // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\r\n self.startPoints = self.newPoints;\r\n\r\n $.each(instance.slides, function (index, slide) {\r\n var slidePos, stagePos;\r\n\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slidePos = $.fancybox.getTranslate(slide.$slide);\r\n stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\",\r\n \"transition-duration\": \"\"\r\n })\r\n .removeClass(\"fancybox-animated\")\r\n .removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n if (slide.pos === instance.current.pos) {\r\n self.sliderStartPos.top = slidePos.top - stagePos.top;\r\n self.sliderStartPos.left = slidePos.left - stagePos.left;\r\n }\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: slidePos.top - stagePos.top,\r\n left: slidePos.left - stagePos.left\r\n });\r\n });\r\n\r\n // Stop slideshow\r\n if (instance.SlideShow && instance.SlideShow.isActive) {\r\n instance.SlideShow.stop();\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Sticky edges\r\n if (swiping == \"x\") {\r\n if (\r\n self.distanceX > 0 &&\r\n (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left + Math.pow(self.distanceX, 0.8);\r\n } else if (\r\n self.distanceX < 0 &&\r\n (self.instance.group.length < 2 ||\r\n (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left - Math.pow(-self.distanceX, 0.8);\r\n } else {\r\n left = left + self.distanceX;\r\n }\r\n }\r\n\r\n self.sliderLastPos = {\r\n top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\r\n left: left\r\n };\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n if (self.sliderLastPos) {\r\n $.each(self.instance.slides, function (index, slide) {\r\n var pos = slide.pos - self.instance.currPos;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: self.sliderLastPos.top,\r\n left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\r\n });\r\n });\r\n\r\n self.$container.addClass(\"fancybox-is-sliding\");\r\n }\r\n });\r\n };\r\n\r\n Guestures.prototype.onPan = function () {\r\n var self = this;\r\n\r\n // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\r\n if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\r\n self.startPoints = self.newPoints;\r\n return;\r\n }\r\n\r\n self.canTap = false;\r\n\r\n self.contentLastPos = self.limitMovement();\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n // Make panning sticky to the edges\r\n Guestures.prototype.limitMovement = function () {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n var distanceX = self.distanceX;\r\n var distanceY = self.distanceY;\r\n\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\r\n\r\n if (currentWidth > canvasWidth) {\r\n newOffsetX = currentOffsetX + distanceX;\r\n } else {\r\n newOffsetX = currentOffsetX;\r\n }\r\n\r\n newOffsetY = currentOffsetY + distanceY;\r\n\r\n // Slow down proportionally to traveled distance\r\n minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\r\n minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\r\n maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n // ->\r\n if (distanceX > 0 && newOffsetX > minTranslateX) {\r\n newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\r\n }\r\n\r\n // <-\r\n if (distanceX < 0 && newOffsetX < maxTranslateX) {\r\n newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\r\n }\r\n\r\n // \\/\r\n if (distanceY > 0 && newOffsetY > minTranslateY) {\r\n newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\r\n }\r\n\r\n // /\\\r\n if (distanceY < 0 && newOffsetY < maxTranslateY) {\r\n newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n if (newWidth > canvasWidth) {\r\n newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\r\n newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\r\n } else {\r\n // Center horizontally\r\n newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\r\n }\r\n\r\n if (newHeight > canvasHeight) {\r\n newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\r\n newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\r\n } else {\r\n // Center vertically\r\n newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.onZoom = function () {\r\n var self = this;\r\n\r\n // Calculate current distance between points to get pinch ratio and new width and height\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\r\n\r\n var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\r\n\r\n var newWidth = Math.floor(currentWidth * pinchRatio);\r\n var newHeight = Math.floor(currentHeight * pinchRatio);\r\n\r\n // This is the translation due to pinch-zooming\r\n var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\r\n var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\r\n\r\n // Point between the two touches\r\n var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\r\n var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\r\n\r\n // And this is the translation due to translation of the centerpoint\r\n // between the two fingers\r\n var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\r\n var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\r\n\r\n // The new offset is the old/current one plus the total translation\r\n var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\r\n var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\r\n\r\n var newPos = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n scaleX: pinchRatio,\r\n scaleY: pinchRatio\r\n };\r\n\r\n self.canTap = false;\r\n\r\n self.newWidth = newWidth;\r\n self.newHeight = newHeight;\r\n\r\n self.contentLastPos = newPos;\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n Guestures.prototype.ontouchend = function (e) {\r\n var self = this;\r\n\r\n var swiping = self.isSwiping;\r\n var panning = self.isPanning;\r\n var zooming = self.isZooming;\r\n var scrolling = self.isScrolling;\r\n\r\n self.endPoints = getPointerXY(e);\r\n self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\r\n\r\n self.$container.removeClass(\"fancybox-is-grabbing\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n\r\n self.instance.isDragging = false;\r\n\r\n if (self.canTap) {\r\n return self.onTap(e);\r\n }\r\n\r\n self.speed = 100;\r\n\r\n // Speed in px/ms\r\n self.velocityX = (self.distanceX / self.dMs) * 0.5;\r\n self.velocityY = (self.distanceY / self.dMs) * 0.5;\r\n\r\n if (panning) {\r\n self.endPanning();\r\n } else if (zooming) {\r\n self.endZooming();\r\n } else {\r\n self.endSwiping(swiping, scrolling);\r\n }\r\n\r\n return;\r\n };\r\n\r\n Guestures.prototype.endSwiping = function (swiping, scrolling) {\r\n var self = this,\r\n ret = false,\r\n len = self.instance.group.length,\r\n distanceX = Math.abs(self.distanceX),\r\n canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\r\n speedX = 300;\r\n\r\n self.sliderLastPos = null;\r\n\r\n // Close if swiped vertically / navigate if horizontally\r\n if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\r\n // Continue vertical movement\r\n $.fancybox.animate(\r\n self.instance.current.$slide, {\r\n top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\r\n opacity: 0\r\n },\r\n 200\r\n );\r\n ret = self.instance.close(true, 250);\r\n } else if (canAdvance && self.distanceX > 0) {\r\n ret = self.instance.previous(speedX);\r\n } else if (canAdvance && self.distanceX < 0) {\r\n ret = self.instance.next(speedX);\r\n }\r\n\r\n if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\r\n self.instance.centerSlide(200);\r\n }\r\n\r\n self.$container.removeClass(\"fancybox-is-sliding\");\r\n };\r\n\r\n // Limit panning from edges\r\n // ========================\r\n Guestures.prototype.endPanning = function () {\r\n var self = this,\r\n newOffsetX,\r\n newOffsetY,\r\n newPos;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n if (self.opts.momentum === false || self.dMs > 350) {\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n } else {\r\n // Continue movement\r\n newOffsetX = self.contentLastPos.left + self.velocityX * 500;\r\n newOffsetY = self.contentLastPos.top + self.velocityY * 500;\r\n }\r\n\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\r\n\r\n newPos.width = self.contentStartPos.width;\r\n newPos.height = self.contentStartPos.height;\r\n\r\n $.fancybox.animate(self.$content, newPos, 366);\r\n };\r\n\r\n Guestures.prototype.endZooming = function () {\r\n var self = this;\r\n\r\n var current = self.instance.current;\r\n\r\n var newOffsetX, newOffsetY, newPos, reset;\r\n\r\n var newWidth = self.newWidth;\r\n var newHeight = self.newHeight;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n\r\n reset = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n width: newWidth,\r\n height: newHeight,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n // Reset scalex/scaleY values; this helps for perfomance and does not break animation\r\n $.fancybox.setTranslate(self.$content, reset);\r\n\r\n if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\r\n self.instance.scaleToFit(150);\r\n } else if (newWidth > current.width || newHeight > current.height) {\r\n self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\r\n } else {\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\r\n\r\n $.fancybox.animate(self.$content, newPos, 150);\r\n }\r\n };\r\n\r\n Guestures.prototype.onTap = function (e) {\r\n var self = this;\r\n var $target = $(e.target);\r\n\r\n var instance = self.instance;\r\n var current = instance.current;\r\n\r\n var endPoints = (e && getPointerXY(e)) || self.startPoints;\r\n\r\n var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\r\n var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\r\n\r\n var where;\r\n\r\n var process = function (prefix) {\r\n var action = current.opts[prefix];\r\n\r\n if ($.isFunction(action)) {\r\n action = action.apply(instance, [current, e]);\r\n }\r\n\r\n if (!action) {\r\n return;\r\n }\r\n\r\n switch (action) {\r\n case \"close\":\r\n instance.close(self.startEvent);\r\n\r\n break;\r\n\r\n case \"toggleControls\":\r\n instance.toggleControls();\r\n\r\n break;\r\n\r\n case \"next\":\r\n instance.next();\r\n\r\n break;\r\n\r\n case \"nextOrClose\":\r\n if (instance.group.length > 1) {\r\n instance.next();\r\n } else {\r\n instance.close(self.startEvent);\r\n }\r\n\r\n break;\r\n\r\n case \"zoom\":\r\n if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\r\n if (instance.canPan()) {\r\n instance.scaleToFit();\r\n } else if (instance.isScaledDown()) {\r\n instance.scaleToActual(tapX, tapY);\r\n } else if (instance.group.length < 2) {\r\n instance.close(self.startEvent);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n };\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Skip if clicked on the scrollbar\r\n if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Check where is clicked\r\n if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\r\n where = \"Outside\";\r\n } else if ($target.is(\".fancybox-slide\")) {\r\n where = \"Slide\";\r\n } else if (\r\n instance.current.$content &&\r\n instance.current.$content\r\n .find($target)\r\n .addBack()\r\n .filter($target).length\r\n ) {\r\n where = \"Content\";\r\n } else {\r\n return;\r\n }\r\n\r\n // Check if this is a double tap\r\n if (self.tapped) {\r\n // Stop previously created single tap\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n\r\n // Skip if distance between taps is too big\r\n if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\r\n return this;\r\n }\r\n\r\n // OK, now we assume that this is a double-tap\r\n process(\"dblclick\" + where);\r\n } else {\r\n // Single tap will be processed if user has not clicked second time within 300ms\r\n // or there is no need to wait for double-tap\r\n self.tapX = tapX;\r\n self.tapY = tapY;\r\n\r\n if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\r\n self.tapped = setTimeout(function () {\r\n self.tapped = null;\r\n\r\n if (!instance.isAnimating) {\r\n process(\"click\" + where);\r\n }\r\n }, 500);\r\n } else {\r\n process(\"click\" + where);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n $(document)\r\n .on(\"onActivate.fb\", function (e, instance) {\r\n if (instance && !instance.Guestures) {\r\n instance.Guestures = new Guestures(instance);\r\n }\r\n })\r\n .on(\"beforeClose.fb\", function (e, instance) {\r\n if (instance && instance.Guestures) {\r\n instance.Guestures.destroy();\r\n }\r\n });\r\n})(window, document, jQuery);\r\n// ==========================================================================\r\n//\r\n// SlideShow\r\n// Enables slideshow functionality\r\n//\r\n// Example of usage:\r\n// $.fancybox.getInstance().SlideShow.start()\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n slideShow: '\"\r\n },\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000,\r\n progress: true\r\n }\r\n });\r\n\r\n var SlideShow = function (instance) {\r\n this.instance = instance;\r\n this.init();\r\n };\r\n\r\n $.extend(SlideShow.prototype, {\r\n timer: null,\r\n isActive: false,\r\n $button: null,\r\n\r\n init: function () {\r\n var self = this,\r\n instance = self.instance,\r\n opts = instance.group[instance.currIndex].opts.slideShow;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n if (instance.group.length < 2 || !opts) {\r\n self.$button.hide();\r\n } else if (opts.progress) {\r\n self.$progress = $('
').appendTo(instance.$refs.inner);\r\n }\r\n },\r\n\r\n set: function (force) {\r\n var self = this,\r\n instance = self.instance,\r\n current = instance.current;\r\n\r\n // Check if reached last element\r\n if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\r\n if (self.isActive && current.contentType !== \"video\") {\r\n if (self.$progress) {\r\n $.fancybox.animate(self.$progress.show(), {\r\n scaleX: 1\r\n }, current.opts.slideShow.speed);\r\n }\r\n\r\n self.timer = setTimeout(function () {\r\n if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\r\n instance.jumpTo(0);\r\n } else {\r\n instance.next();\r\n }\r\n }, current.opts.slideShow.speed);\r\n }\r\n } else {\r\n self.stop();\r\n instance.idleSecondsCounter = 0;\r\n instance.showControls();\r\n }\r\n },\r\n\r\n clear: function () {\r\n var self = this;\r\n\r\n clearTimeout(self.timer);\r\n\r\n self.timer = null;\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n start: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n if (current) {\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\r\n .removeClass(\"fancybox-button--play\")\r\n .addClass(\"fancybox-button--pause\");\r\n\r\n self.isActive = true;\r\n\r\n if (current.isComplete) {\r\n self.set(true);\r\n }\r\n\r\n self.instance.trigger(\"onSlideShowChange\", true);\r\n }\r\n },\r\n\r\n stop: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n self.clear();\r\n\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\r\n .removeClass(\"fancybox-button--pause\")\r\n .addClass(\"fancybox-button--play\");\r\n\r\n self.isActive = false;\r\n\r\n self.instance.trigger(\"onSlideShowChange\", false);\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n toggle: function () {\r\n var self = this;\r\n\r\n if (self.isActive) {\r\n self.stop();\r\n } else {\r\n self.start();\r\n }\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n if (instance && !instance.SlideShow) {\r\n instance.SlideShow = new SlideShow(instance);\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (firstRun) {\r\n if (SlideShow && current.opts.slideShow.autoStart) {\r\n SlideShow.start();\r\n }\r\n } else if (SlideShow && SlideShow.isActive) {\r\n SlideShow.clear();\r\n }\r\n },\r\n\r\n \"afterShow.fb\": function (e, instance, current) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n SlideShow.set();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n // \"P\" or Spacebar\r\n if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\r\n keypress.preventDefault();\r\n\r\n SlideShow.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow) {\r\n SlideShow.stop();\r\n }\r\n }\r\n });\r\n\r\n // Page Visibility API to pause slideshow when window is not active\r\n $(document).on(\"visibilitychange\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n if (document.hidden) {\r\n SlideShow.clear();\r\n } else {\r\n SlideShow.set();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\r\n// ==========================================================================\r\n//\r\n// FullScreen\r\n// Adds fullscreen functionality\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n // Collection of methods supported by user browser\r\n var fn = (function () {\r\n var fnMap = [\r\n [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\r\n // new WebKit\r\n [\r\n \"webkitRequestFullscreen\",\r\n \"webkitExitFullscreen\",\r\n \"webkitFullscreenElement\",\r\n \"webkitFullscreenEnabled\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n // old WebKit (Safari 5.1)\r\n [\r\n \"webkitRequestFullScreen\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitCurrentFullScreenElement\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n [\r\n \"mozRequestFullScreen\",\r\n \"mozCancelFullScreen\",\r\n \"mozFullScreenElement\",\r\n \"mozFullScreenEnabled\",\r\n \"mozfullscreenchange\",\r\n \"mozfullscreenerror\"\r\n ],\r\n [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\r\n ];\r\n\r\n var ret = {};\r\n\r\n for (var i = 0; i < fnMap.length; i++) {\r\n var val = fnMap[i];\r\n\r\n if (val && val[1] in document) {\r\n for (var j = 0; j < val.length; j++) {\r\n ret[fnMap[0][j]] = val[j];\r\n }\r\n\r\n return ret;\r\n }\r\n }\r\n\r\n return false;\r\n })();\r\n\r\n if (fn) {\r\n var FullScreen = {\r\n request: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\r\n },\r\n exit: function () {\r\n document[fn.exitFullscreen]();\r\n },\r\n toggle: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n if (this.isFullscreen()) {\r\n this.exit();\r\n } else {\r\n this.request(elem);\r\n }\r\n },\r\n isFullscreen: function () {\r\n return Boolean(document[fn.fullscreenElement]);\r\n },\r\n enabled: function () {\r\n return Boolean(document[fn.fullscreenEnabled]);\r\n }\r\n };\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n fullScreen: '\"\r\n },\r\n fullScreen: {\r\n autoStart: false\r\n }\r\n });\r\n\r\n $(document).on(fn.fullscreenchange, function () {\r\n var isFullscreen = FullScreen.isFullscreen(),\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n // If image is zooming, then force to stop and reposition properly\r\n if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\r\n instance.isAnimating = false;\r\n\r\n instance.update(true, true, 0);\r\n\r\n if (!instance.isComplete) {\r\n instance.complete();\r\n }\r\n }\r\n\r\n instance.trigger(\"onFullscreenChange\", isFullscreen);\r\n\r\n instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\r\n\r\n instance.$refs.toolbar\r\n .find(\"[data-fancybox-fullscreen]\")\r\n .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\r\n .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\r\n }\r\n });\r\n }\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var $container;\r\n\r\n if (!fn) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\r\n\r\n return;\r\n }\r\n\r\n if (instance && instance.group[instance.currIndex].opts.fullScreen) {\r\n $container = instance.$refs.container;\r\n\r\n $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n FullScreen.toggle();\r\n });\r\n\r\n if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\r\n FullScreen.request();\r\n }\r\n\r\n // Expose API\r\n instance.FullScreen = FullScreen;\r\n } else if (instance) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n // \"F\"\r\n if (instance && instance.FullScreen && keycode === 70) {\r\n keypress.preventDefault();\r\n\r\n instance.FullScreen.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\r\n FullScreen.exit();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\r\n// ==========================================================================\r\n//\r\n// Thumbs\r\n// Displays thumbnails in a grid\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var CLASS = \"fancybox-thumbs\",\r\n CLASS_ACTIVE = CLASS + \"-active\";\r\n\r\n // Make sure there are default values\r\n $.fancybox.defaults = $.extend(\r\n true, {\r\n btnTpl: {\r\n thumbs: '\"\r\n },\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n }\r\n },\r\n $.fancybox.defaults\r\n );\r\n\r\n var FancyThumbs = function (instance) {\r\n this.init(instance);\r\n };\r\n\r\n $.extend(FancyThumbs.prototype, {\r\n $button: null,\r\n $grid: null,\r\n $list: null,\r\n isVisible: false,\r\n isActive: false,\r\n\r\n init: function (instance) {\r\n var self = this,\r\n group = instance.group,\r\n enabled = 0;\r\n\r\n self.instance = instance;\r\n self.opts = group[instance.currIndex].opts.thumbs;\r\n\r\n instance.Thumbs = self;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\r\n\r\n // Enable thumbs if at least two group items have thumbnails\r\n for (var i = 0, len = group.length; i < len; i++) {\r\n if (group[i].thumb) {\r\n enabled++;\r\n }\r\n\r\n if (enabled > 1) {\r\n break;\r\n }\r\n }\r\n\r\n if (enabled > 1 && !!self.opts) {\r\n self.$button.removeAttr(\"style\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n self.isActive = true;\r\n } else {\r\n self.$button.hide();\r\n }\r\n },\r\n\r\n create: function () {\r\n var self = this,\r\n instance = self.instance,\r\n parentEl = self.opts.parentEl,\r\n list = [],\r\n src;\r\n\r\n if (!self.$grid) {\r\n // Create main element\r\n self.$grid = $('
').appendTo(\r\n instance.$refs.container\r\n .find(parentEl)\r\n .addBack()\r\n .filter(parentEl)\r\n );\r\n\r\n // Add \"click\" event that performs gallery navigation\r\n self.$grid.on(\"click\", \"a\", function () {\r\n instance.jumpTo($(this).attr(\"data-index\"));\r\n });\r\n }\r\n\r\n // Build the list\r\n if (!self.$list) {\r\n self.$list = $('
').appendTo(self.$grid);\r\n }\r\n\r\n $.each(instance.group, function (i, item) {\r\n src = item.thumb;\r\n\r\n if (!src && item.type === \"image\") {\r\n src = item.src;\r\n }\r\n\r\n list.push(\r\n '\"\r\n );\r\n });\r\n\r\n self.$list[0].innerHTML = list.join(\"\");\r\n\r\n if (self.opts.axis === \"x\") {\r\n // Set fixed width for list element to enable horizontal scrolling\r\n self.$list.width(\r\n parseInt(self.$grid.css(\"padding-right\"), 10) +\r\n instance.group.length *\r\n self.$list\r\n .children()\r\n .eq(0)\r\n .outerWidth(true)\r\n );\r\n }\r\n },\r\n\r\n focus: function (duration) {\r\n var self = this,\r\n $list = self.$list,\r\n $grid = self.$grid,\r\n thumb,\r\n thumbPos;\r\n\r\n if (!self.instance.current) {\r\n return;\r\n }\r\n\r\n thumb = $list\r\n .children()\r\n .removeClass(CLASS_ACTIVE)\r\n .filter('[data-index=\"' + self.instance.current.index + '\"]')\r\n .addClass(CLASS_ACTIVE);\r\n\r\n thumbPos = thumb.position();\r\n\r\n // Check if need to scroll to make current thumb visible\r\n if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\r\n $list.stop().animate({\r\n scrollTop: $list.scrollTop() + thumbPos.top\r\n },\r\n duration\r\n );\r\n } else if (\r\n self.opts.axis === \"x\" &&\r\n (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\r\n ) {\r\n $list\r\n .parent()\r\n .stop()\r\n .animate({\r\n scrollLeft: thumbPos.left\r\n },\r\n duration\r\n );\r\n }\r\n },\r\n\r\n update: function () {\r\n var that = this;\r\n that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\r\n\r\n if (that.isVisible) {\r\n if (!that.$grid) {\r\n that.create();\r\n }\r\n\r\n that.instance.trigger(\"onThumbsShow\");\r\n\r\n that.focus(0);\r\n } else if (that.$grid) {\r\n that.instance.trigger(\"onThumbsHide\");\r\n }\r\n\r\n // Update content position\r\n that.instance.update();\r\n },\r\n\r\n hide: function () {\r\n this.isVisible = false;\r\n this.update();\r\n },\r\n\r\n show: function () {\r\n this.isVisible = true;\r\n this.update();\r\n },\r\n\r\n toggle: function () {\r\n this.isVisible = !this.isVisible;\r\n this.update();\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var Thumbs;\r\n\r\n if (instance && !instance.Thumbs) {\r\n Thumbs = new FancyThumbs(instance);\r\n\r\n if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\r\n Thumbs.show();\r\n }\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, item, firstRun) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible) {\r\n Thumbs.focus(firstRun ? 0 : 250);\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n // \"G\"\r\n if (Thumbs && Thumbs.isActive && keycode === 71) {\r\n keypress.preventDefault();\r\n\r\n Thumbs.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\r\n Thumbs.$grid.hide();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\r\n//// ==========================================================================\r\n//\r\n// Share\r\n// Displays simple form for sharing current url\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n share: '\"\r\n },\r\n share: {\r\n url: function (instance, item) {\r\n return (\r\n (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\r\n );\r\n },\r\n tpl: '
' +\r\n \"

{{SHARE}}

\" +\r\n \"

\" +\r\n '' +\r\n '' +\r\n \"Facebook\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Twitter\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Pinterest\" +\r\n \"\" +\r\n \"

\" +\r\n '

' +\r\n \"
\"\r\n }\r\n });\r\n\r\n function escapeHtml(string) {\r\n var entityMap = {\r\n \"&\": \"&\",\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"/\": \"/\",\r\n \"`\": \"`\",\r\n \"=\": \"=\"\r\n };\r\n\r\n return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n return entityMap[s];\r\n });\r\n }\r\n\r\n $(document).on(\"click\", \"[data-fancybox-share]\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n current = instance.current || null,\r\n url,\r\n tpl;\r\n\r\n if (!current) {\r\n return;\r\n }\r\n\r\n if ($.type(current.opts.share.url) === \"function\") {\r\n url = current.opts.share.url.apply(current, [instance, current]);\r\n }\r\n\r\n tpl = current.opts.share.tpl\r\n .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\r\n .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\r\n .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\r\n .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\r\n\r\n $.fancybox.open({\r\n src: instance.translate(instance, tpl),\r\n type: \"html\",\r\n opts: {\r\n touch: false,\r\n animationEffect: false,\r\n afterLoad: function (shareInstance, shareCurrent) {\r\n // Close self if parent instance is closing\r\n instance.$refs.container.one(\"beforeClose.fb\", function () {\r\n shareInstance.close(null, 0);\r\n });\r\n\r\n // Opening links in a popup window\r\n shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\r\n window.open(this.href, \"Share\", \"width=550, height=450\");\r\n return false;\r\n });\r\n },\r\n mobile: {\r\n autoFocus: false\r\n }\r\n }\r\n });\r\n });\r\n})(document, jQuery);\r\n// ==========================================================================\r\n//\r\n// Hash\r\n// Enables linking to each modal\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n // Simple $.escapeSelector polyfill (for jQuery prior v3)\r\n if (!$.escapeSelector) {\r\n $.escapeSelector = function (sel) {\r\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\r\n var fcssescape = function (ch, asCodePoint) {\r\n if (asCodePoint) {\r\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n if (ch === \"\\0\") {\r\n return \"\\uFFFD\";\r\n }\r\n\r\n // Control characters and (dependent upon position) numbers get escaped as code points\r\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\r\n }\r\n\r\n // Other potentially-special ASCII characters get backslash-escaped\r\n return \"\\\\\" + ch;\r\n };\r\n\r\n return (sel + \"\").replace(rcssescape, fcssescape);\r\n };\r\n }\r\n\r\n // Get info about gallery name and current index from url\r\n function parseUrl() {\r\n var hash = window.location.hash.substr(1),\r\n rez = hash.split(\"-\"),\r\n index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\r\n gallery = rez.join(\"-\");\r\n\r\n return {\r\n hash: hash,\r\n /* Index is starting from 1 */\r\n index: index < 1 ? 1 : index,\r\n gallery: gallery\r\n };\r\n }\r\n\r\n // Trigger click evnt on links to open new fancyBox instance\r\n function triggerFromUrl(url) {\r\n if (url.gallery !== \"\") {\r\n // If we can find element matching 'data-fancybox' atribute,\r\n // then triggering click event should start fancyBox\r\n $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\r\n .eq(url.index - 1)\r\n .focus()\r\n .trigger(\"click.fb-start\");\r\n }\r\n }\r\n\r\n // Get gallery name from current instance\r\n function getGalleryID(instance) {\r\n var opts, ret;\r\n\r\n if (!instance) {\r\n return false;\r\n }\r\n\r\n opts = instance.current ? instance.current.opts : instance.opts;\r\n ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\r\n\r\n return ret === \"\" ? false : ret;\r\n }\r\n\r\n // Start when DOM becomes ready\r\n $(function () {\r\n // Check if user has disabled this module\r\n if ($.fancybox.defaults.hash === false) {\r\n return;\r\n }\r\n\r\n // Update hash when opening/closing fancyBox\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var url, gallery;\r\n\r\n if (instance.group[instance.currIndex].opts.hash === false) {\r\n return;\r\n }\r\n\r\n url = parseUrl();\r\n gallery = getGalleryID(instance);\r\n\r\n // Make sure gallery start index matches index from hash\r\n if (gallery && url.gallery && gallery == url.gallery) {\r\n instance.currIndex = url.index - 1;\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var gallery;\r\n\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n // Check if need to update window hash\r\n gallery = getGalleryID(instance);\r\n\r\n if (!gallery) {\r\n return;\r\n }\r\n\r\n // Variable containing last hash value set by fancyBox\r\n // It will be used to determine if fancyBox needs to close after hash change is detected\r\n instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\r\n\r\n // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\r\n if (window.location.hash === \"#\" + instance.currentHash) {\r\n return;\r\n }\r\n\r\n if (firstRun && !instance.origHash) {\r\n instance.origHash = window.location.hash;\r\n }\r\n\r\n if (instance.hashTimer) {\r\n clearTimeout(instance.hashTimer);\r\n }\r\n\r\n // Update hash\r\n instance.hashTimer = setTimeout(function () {\r\n if (\"replaceState\" in window.history) {\r\n window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\r\n document.title,\r\n window.location.pathname + window.location.search + \"#\" + instance.currentHash\r\n );\r\n\r\n if (firstRun) {\r\n instance.hasCreatedHistory = true;\r\n }\r\n } else {\r\n window.location.hash = instance.currentHash;\r\n }\r\n\r\n instance.hashTimer = null;\r\n }, 300);\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance, current) {\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n clearTimeout(instance.hashTimer);\r\n\r\n // Goto previous history entry\r\n if (instance.currentHash && instance.hasCreatedHistory) {\r\n window.history.back();\r\n } else if (instance.currentHash) {\r\n if (\"replaceState\" in window.history) {\r\n window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\r\n } else {\r\n window.location.hash = instance.origHash;\r\n }\r\n }\r\n\r\n instance.currentHash = null;\r\n }\r\n });\r\n\r\n // Check if need to start/close after url has changed\r\n $(window).on(\"hashchange.fb\", function () {\r\n var url = parseUrl(),\r\n fb = null;\r\n\r\n // Find last fancyBox instance that has \"hash\"\r\n $.each(\r\n $(\".fancybox-container\")\r\n .get()\r\n .reverse(),\r\n function (index, value) {\r\n var tmp = $(value).data(\"FancyBox\");\r\n\r\n if (tmp && tmp.currentHash) {\r\n fb = tmp;\r\n return false;\r\n }\r\n }\r\n );\r\n\r\n if (fb) {\r\n // Now, compare hash values\r\n if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\r\n fb.currentHash = null;\r\n\r\n fb.close();\r\n }\r\n } else if (url.gallery !== \"\") {\r\n triggerFromUrl(url);\r\n }\r\n });\r\n\r\n // Check current hash and trigger click event on matching element to start fancyBox, if needed\r\n setTimeout(function () {\r\n if (!$.fancybox.getInstance()) {\r\n triggerFromUrl(parseUrl());\r\n }\r\n }, 50);\r\n });\r\n})(window, document, jQuery);\r\n// ==========================================================================\r\n//\r\n// Wheel\r\n// Basic mouse weheel support for gallery navigation\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var prevTime = new Date().getTime();\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance, current) {\r\n instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\r\n var current = instance.current,\r\n currTime = new Date().getTime();\r\n\r\n if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (current.$slide.hasClass(\"fancybox-animated\")) {\r\n return;\r\n }\r\n\r\n e = e.originalEvent || e;\r\n\r\n if (currTime - prevTime < 250) {\r\n return;\r\n }\r\n\r\n prevTime = currTime;\r\n\r\n instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\r\n });\r\n }\r\n });\r\n})(document, jQuery);","/**\r\n * Swiper 6.4.1\r\n * Most modern mobile touch slider and framework with hardware accelerated transitions\r\n * https://swiperjs.com\r\n *\r\n * Copyright 2014-2020 Vladimir Kharlampidi\r\n *\r\n * Released under the MIT License\r\n *\r\n * Released on: December 9, 2020\r\n */\r\n\r\n(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = global || self, global.Swiper = factory());\r\n}(this, (function () { 'use strict';\r\n\r\n function _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n function _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) _defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n }\r\n\r\n function _extends() {\r\n _extends = Object.assign || function (target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n };\r\n\r\n return _extends.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * SSR Window 3.0.0\r\n * Better handling for window object in SSR environment\r\n * https://github.com/nolimits4web/ssr-window\r\n *\r\n * Copyright 2020, Vladimir Kharlampidi\r\n *\r\n * Licensed under MIT\r\n *\r\n * Released on: November 9, 2020\r\n */\r\n\r\n /* eslint-disable no-param-reassign */\r\n function isObject(obj) {\r\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\r\n }\r\n\r\n function extend(target, src) {\r\n if (target === void 0) {\r\n target = {};\r\n }\r\n\r\n if (src === void 0) {\r\n src = {};\r\n }\r\n\r\n Object.keys(src).forEach(function (key) {\r\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\r\n extend(target[key], src[key]);\r\n }\r\n });\r\n }\r\n\r\n var ssrDocument = {\r\n body: {},\r\n addEventListener: function addEventListener() {},\r\n removeEventListener: function removeEventListener() {},\r\n activeElement: {\r\n blur: function blur() {},\r\n nodeName: ''\r\n },\r\n querySelector: function querySelector() {\r\n return null;\r\n },\r\n querySelectorAll: function querySelectorAll() {\r\n return [];\r\n },\r\n getElementById: function getElementById() {\r\n return null;\r\n },\r\n createEvent: function createEvent() {\r\n return {\r\n initEvent: function initEvent() {}\r\n };\r\n },\r\n createElement: function createElement() {\r\n return {\r\n children: [],\r\n childNodes: [],\r\n style: {},\r\n setAttribute: function setAttribute() {},\r\n getElementsByTagName: function getElementsByTagName() {\r\n return [];\r\n }\r\n };\r\n },\r\n createElementNS: function createElementNS() {\r\n return {};\r\n },\r\n importNode: function importNode() {\r\n return null;\r\n },\r\n location: {\r\n hash: '',\r\n host: '',\r\n hostname: '',\r\n href: '',\r\n origin: '',\r\n pathname: '',\r\n protocol: '',\r\n search: ''\r\n }\r\n };\r\n\r\n function getDocument() {\r\n var doc = typeof document !== 'undefined' ? document : {};\r\n extend(doc, ssrDocument);\r\n return doc;\r\n }\r\n\r\n var ssrWindow = {\r\n document: ssrDocument,\r\n navigator: {\r\n userAgent: ''\r\n },\r\n location: {\r\n hash: '',\r\n host: '',\r\n hostname: '',\r\n href: '',\r\n origin: '',\r\n pathname: '',\r\n protocol: '',\r\n search: ''\r\n },\r\n history: {\r\n replaceState: function replaceState() {},\r\n pushState: function pushState() {},\r\n go: function go() {},\r\n back: function back() {}\r\n },\r\n CustomEvent: function CustomEvent() {\r\n return this;\r\n },\r\n addEventListener: function addEventListener() {},\r\n removeEventListener: function removeEventListener() {},\r\n getComputedStyle: function getComputedStyle() {\r\n return {\r\n getPropertyValue: function getPropertyValue() {\r\n return '';\r\n }\r\n };\r\n },\r\n Image: function Image() {},\r\n Date: function Date() {},\r\n screen: {},\r\n setTimeout: function setTimeout() {},\r\n clearTimeout: function clearTimeout() {},\r\n matchMedia: function matchMedia() {\r\n return {};\r\n },\r\n requestAnimationFrame: function requestAnimationFrame(callback) {\r\n if (typeof setTimeout === 'undefined') {\r\n callback();\r\n return null;\r\n }\r\n\r\n return setTimeout(callback, 0);\r\n },\r\n cancelAnimationFrame: function cancelAnimationFrame(id) {\r\n if (typeof setTimeout === 'undefined') {\r\n return;\r\n }\r\n\r\n clearTimeout(id);\r\n }\r\n };\r\n\r\n function getWindow() {\r\n var win = typeof window !== 'undefined' ? window : {};\r\n extend(win, ssrWindow);\r\n return win;\r\n }\r\n\r\n /**\r\n * Dom7 3.0.0\r\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\r\n * https://framework7.io/docs/dom7.html\r\n *\r\n * Copyright 2020, Vladimir Kharlampidi\r\n *\r\n * Licensed under MIT\r\n *\r\n * Released on: November 9, 2020\r\n */\r\n\r\n function _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n subClass.__proto__ = superClass;\r\n }\r\n\r\n function _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o);\r\n };\r\n return _getPrototypeOf(o);\r\n }\r\n\r\n function _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\r\n o.__proto__ = p;\r\n return o;\r\n };\r\n\r\n return _setPrototypeOf(o, p);\r\n }\r\n\r\n function _isNativeReflectConstruct() {\r\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\r\n if (Reflect.construct.sham) return false;\r\n if (typeof Proxy === \"function\") return true;\r\n\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n function _construct(Parent, args, Class) {\r\n if (_isNativeReflectConstruct()) {\r\n _construct = Reflect.construct;\r\n } else {\r\n _construct = function _construct(Parent, args, Class) {\r\n var a = [null];\r\n a.push.apply(a, args);\r\n var Constructor = Function.bind.apply(Parent, a);\r\n var instance = new Constructor();\r\n if (Class) _setPrototypeOf(instance, Class.prototype);\r\n return instance;\r\n };\r\n }\r\n\r\n return _construct.apply(null, arguments);\r\n }\r\n\r\n function _isNativeFunction(fn) {\r\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\r\n }\r\n\r\n function _wrapNativeSuper(Class) {\r\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\r\n\r\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\r\n if (Class === null || !_isNativeFunction(Class)) return Class;\r\n\r\n if (typeof Class !== \"function\") {\r\n throw new TypeError(\"Super expression must either be null or a function\");\r\n }\r\n\r\n if (typeof _cache !== \"undefined\") {\r\n if (_cache.has(Class)) return _cache.get(Class);\r\n\r\n _cache.set(Class, Wrapper);\r\n }\r\n\r\n function Wrapper() {\r\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\r\n }\r\n\r\n Wrapper.prototype = Object.create(Class.prototype, {\r\n constructor: {\r\n value: Wrapper,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n return _setPrototypeOf(Wrapper, Class);\r\n };\r\n\r\n return _wrapNativeSuper(Class);\r\n }\r\n\r\n function _assertThisInitialized(self) {\r\n if (self === void 0) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\r\n }\r\n\r\n return self;\r\n }\r\n /* eslint-disable no-proto */\r\n\r\n\r\n function makeReactive(obj) {\r\n var proto = obj.__proto__;\r\n Object.defineProperty(obj, '__proto__', {\r\n get: function get() {\r\n return proto;\r\n },\r\n set: function set(value) {\r\n proto.__proto__ = value;\r\n }\r\n });\r\n }\r\n\r\n var Dom7 = /*#__PURE__*/function (_Array) {\r\n _inheritsLoose(Dom7, _Array);\r\n\r\n function Dom7(items) {\r\n var _this;\r\n\r\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\r\n makeReactive(_assertThisInitialized(_this));\r\n return _this;\r\n }\r\n\r\n return Dom7;\r\n }( /*#__PURE__*/_wrapNativeSuper(Array));\r\n\r\n function arrayFlat(arr) {\r\n if (arr === void 0) {\r\n arr = [];\r\n }\r\n\r\n var res = [];\r\n arr.forEach(function (el) {\r\n if (Array.isArray(el)) {\r\n res.push.apply(res, arrayFlat(el));\r\n } else {\r\n res.push(el);\r\n }\r\n });\r\n return res;\r\n }\r\n\r\n function arrayFilter(arr, callback) {\r\n return Array.prototype.filter.call(arr, callback);\r\n }\r\n\r\n function arrayUnique(arr) {\r\n var uniqueArray = [];\r\n\r\n for (var i = 0; i < arr.length; i += 1) {\r\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\r\n }\r\n\r\n return uniqueArray;\r\n }\r\n\r\n function qsa(selector, context) {\r\n if (typeof selector !== 'string') {\r\n return [selector];\r\n }\r\n\r\n var a = [];\r\n var res = context.querySelectorAll(selector);\r\n\r\n for (var i = 0; i < res.length; i += 1) {\r\n a.push(res[i]);\r\n }\r\n\r\n return a;\r\n }\r\n\r\n function $(selector, context) {\r\n var window = getWindow();\r\n var document = getDocument();\r\n var arr = [];\r\n\r\n if (!context && selector instanceof Dom7) {\r\n return selector;\r\n }\r\n\r\n if (!selector) {\r\n return new Dom7(arr);\r\n }\r\n\r\n if (typeof selector === 'string') {\r\n var html = selector.trim();\r\n\r\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\r\n var toCreate = 'div';\r\n if (html.indexOf(' 0;\r\n }).length > 0;\r\n }\r\n\r\n function attr(attrs, value) {\r\n if (arguments.length === 1 && typeof attrs === 'string') {\r\n // Get attr\r\n if (this[0]) return this[0].getAttribute(attrs);\r\n return undefined;\r\n } // Set attrs\r\n\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (arguments.length === 2) {\r\n // String\r\n this[i].setAttribute(attrs, value);\r\n } else {\r\n // Object\r\n for (var attrName in attrs) {\r\n this[i][attrName] = attrs[attrName];\r\n this[i].setAttribute(attrName, attrs[attrName]);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function removeAttr(attr) {\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].removeAttribute(attr);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transform(transform) {\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].style.transform = transform;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transition(duration) {\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function on() {\r\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\r\n args[_key5] = arguments[_key5];\r\n }\r\n\r\n var eventType = args[0],\r\n targetSelector = args[1],\r\n listener = args[2],\r\n capture = args[3];\r\n\r\n if (typeof args[1] === 'function') {\r\n eventType = args[0];\r\n listener = args[1];\r\n capture = args[2];\r\n targetSelector = undefined;\r\n }\r\n\r\n if (!capture) capture = false;\r\n\r\n function handleLiveEvent(e) {\r\n var target = e.target;\r\n if (!target) return;\r\n var eventData = e.target.dom7EventData || [];\r\n\r\n if (eventData.indexOf(e) < 0) {\r\n eventData.unshift(e);\r\n }\r\n\r\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\r\n var _parents = $(target).parents(); // eslint-disable-line\r\n\r\n\r\n for (var k = 0; k < _parents.length; k += 1) {\r\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\r\n }\r\n }\r\n }\r\n\r\n function handleEvent(e) {\r\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\r\n\r\n if (eventData.indexOf(e) < 0) {\r\n eventData.unshift(e);\r\n }\r\n\r\n listener.apply(this, eventData);\r\n }\r\n\r\n var events = eventType.split(' ');\r\n var j;\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n var el = this[i];\r\n\r\n if (!targetSelector) {\r\n for (j = 0; j < events.length; j += 1) {\r\n var event = events[j];\r\n if (!el.dom7Listeners) el.dom7Listeners = {};\r\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\r\n el.dom7Listeners[event].push({\r\n listener: listener,\r\n proxyListener: handleEvent\r\n });\r\n el.addEventListener(event, handleEvent, capture);\r\n }\r\n } else {\r\n // Live events\r\n for (j = 0; j < events.length; j += 1) {\r\n var _event = events[j];\r\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\r\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\r\n\r\n el.dom7LiveListeners[_event].push({\r\n listener: listener,\r\n proxyListener: handleLiveEvent\r\n });\r\n\r\n el.addEventListener(_event, handleLiveEvent, capture);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function off() {\r\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\r\n args[_key6] = arguments[_key6];\r\n }\r\n\r\n var eventType = args[0],\r\n targetSelector = args[1],\r\n listener = args[2],\r\n capture = args[3];\r\n\r\n if (typeof args[1] === 'function') {\r\n eventType = args[0];\r\n listener = args[1];\r\n capture = args[2];\r\n targetSelector = undefined;\r\n }\r\n\r\n if (!capture) capture = false;\r\n var events = eventType.split(' ');\r\n\r\n for (var i = 0; i < events.length; i += 1) {\r\n var event = events[i];\r\n\r\n for (var j = 0; j < this.length; j += 1) {\r\n var el = this[j];\r\n var handlers = void 0;\r\n\r\n if (!targetSelector && el.dom7Listeners) {\r\n handlers = el.dom7Listeners[event];\r\n } else if (targetSelector && el.dom7LiveListeners) {\r\n handlers = el.dom7LiveListeners[event];\r\n }\r\n\r\n if (handlers && handlers.length) {\r\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\r\n var handler = handlers[k];\r\n\r\n if (listener && handler.listener === listener) {\r\n el.removeEventListener(event, handler.proxyListener, capture);\r\n handlers.splice(k, 1);\r\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\r\n el.removeEventListener(event, handler.proxyListener, capture);\r\n handlers.splice(k, 1);\r\n } else if (!listener) {\r\n el.removeEventListener(event, handler.proxyListener, capture);\r\n handlers.splice(k, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function trigger() {\r\n var window = getWindow();\r\n\r\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\r\n args[_key9] = arguments[_key9];\r\n }\r\n\r\n var events = args[0].split(' ');\r\n var eventData = args[1];\r\n\r\n for (var i = 0; i < events.length; i += 1) {\r\n var event = events[i];\r\n\r\n for (var j = 0; j < this.length; j += 1) {\r\n var el = this[j];\r\n\r\n if (window.CustomEvent) {\r\n var evt = new window.CustomEvent(event, {\r\n detail: eventData,\r\n bubbles: true,\r\n cancelable: true\r\n });\r\n el.dom7EventData = args.filter(function (data, dataIndex) {\r\n return dataIndex > 0;\r\n });\r\n el.dispatchEvent(evt);\r\n el.dom7EventData = [];\r\n delete el.dom7EventData;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transitionEnd(callback) {\r\n var dom = this;\r\n\r\n function fireCallBack(e) {\r\n if (e.target !== this) return;\r\n callback.call(this, e);\r\n dom.off('transitionend', fireCallBack);\r\n }\r\n\r\n if (callback) {\r\n dom.on('transitionend', fireCallBack);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function outerWidth(includeMargins) {\r\n if (this.length > 0) {\r\n if (includeMargins) {\r\n var _styles = this.styles();\r\n\r\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\r\n }\r\n\r\n return this[0].offsetWidth;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function outerHeight(includeMargins) {\r\n if (this.length > 0) {\r\n if (includeMargins) {\r\n var _styles2 = this.styles();\r\n\r\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\r\n }\r\n\r\n return this[0].offsetHeight;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function offset() {\r\n if (this.length > 0) {\r\n var window = getWindow();\r\n var document = getDocument();\r\n var el = this[0];\r\n var box = el.getBoundingClientRect();\r\n var body = document.body;\r\n var clientTop = el.clientTop || body.clientTop || 0;\r\n var clientLeft = el.clientLeft || body.clientLeft || 0;\r\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\r\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\r\n return {\r\n top: box.top + scrollTop - clientTop,\r\n left: box.left + scrollLeft - clientLeft\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function styles() {\r\n var window = getWindow();\r\n if (this[0]) return window.getComputedStyle(this[0], null);\r\n return {};\r\n }\r\n\r\n function css(props, value) {\r\n var window = getWindow();\r\n var i;\r\n\r\n if (arguments.length === 1) {\r\n if (typeof props === 'string') {\r\n // .css('width')\r\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\r\n } else {\r\n // .css({ width: '100px' })\r\n for (i = 0; i < this.length; i += 1) {\r\n for (var _prop in props) {\r\n this[i].style[_prop] = props[_prop];\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n }\r\n\r\n if (arguments.length === 2 && typeof props === 'string') {\r\n // .css('width', '100px')\r\n for (i = 0; i < this.length; i += 1) {\r\n this[i].style[props] = value;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function each(callback) {\r\n if (!callback) return this;\r\n this.forEach(function (el, index) {\r\n callback.apply(el, [el, index]);\r\n });\r\n return this;\r\n }\r\n\r\n function filter(callback) {\r\n var result = arrayFilter(this, callback);\r\n return $(result);\r\n }\r\n\r\n function html(html) {\r\n if (typeof html === 'undefined') {\r\n return this[0] ? this[0].innerHTML : null;\r\n }\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].innerHTML = html;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function text(text) {\r\n if (typeof text === 'undefined') {\r\n return this[0] ? this[0].textContent.trim() : null;\r\n }\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].textContent = text;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function is(selector) {\r\n var window = getWindow();\r\n var document = getDocument();\r\n var el = this[0];\r\n var compareWith;\r\n var i;\r\n if (!el || typeof selector === 'undefined') return false;\r\n\r\n if (typeof selector === 'string') {\r\n if (el.matches) return el.matches(selector);\r\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\r\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\r\n compareWith = $(selector);\r\n\r\n for (i = 0; i < compareWith.length; i += 1) {\r\n if (compareWith[i] === el) return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (selector === document) {\r\n return el === document;\r\n }\r\n\r\n if (selector === window) {\r\n return el === window;\r\n }\r\n\r\n if (selector.nodeType || selector instanceof Dom7) {\r\n compareWith = selector.nodeType ? [selector] : selector;\r\n\r\n for (i = 0; i < compareWith.length; i += 1) {\r\n if (compareWith[i] === el) return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function index() {\r\n var child = this[0];\r\n var i;\r\n\r\n if (child) {\r\n i = 0; // eslint-disable-next-line\r\n\r\n while ((child = child.previousSibling) !== null) {\r\n if (child.nodeType === 1) i += 1;\r\n }\r\n\r\n return i;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n function eq(index) {\r\n if (typeof index === 'undefined') return this;\r\n var length = this.length;\r\n\r\n if (index > length - 1) {\r\n return $([]);\r\n }\r\n\r\n if (index < 0) {\r\n var returnIndex = length + index;\r\n if (returnIndex < 0) return $([]);\r\n return $([this[returnIndex]]);\r\n }\r\n\r\n return $([this[index]]);\r\n }\r\n\r\n function append() {\r\n var newChild;\r\n var document = getDocument();\r\n\r\n for (var k = 0; k < arguments.length; k += 1) {\r\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (typeof newChild === 'string') {\r\n var tempDiv = document.createElement('div');\r\n tempDiv.innerHTML = newChild;\r\n\r\n while (tempDiv.firstChild) {\r\n this[i].appendChild(tempDiv.firstChild);\r\n }\r\n } else if (newChild instanceof Dom7) {\r\n for (var j = 0; j < newChild.length; j += 1) {\r\n this[i].appendChild(newChild[j]);\r\n }\r\n } else {\r\n this[i].appendChild(newChild);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function prepend(newChild) {\r\n var document = getDocument();\r\n var i;\r\n var j;\r\n\r\n for (i = 0; i < this.length; i += 1) {\r\n if (typeof newChild === 'string') {\r\n var tempDiv = document.createElement('div');\r\n tempDiv.innerHTML = newChild;\r\n\r\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\r\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\r\n }\r\n } else if (newChild instanceof Dom7) {\r\n for (j = 0; j < newChild.length; j += 1) {\r\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\r\n }\r\n } else {\r\n this[i].insertBefore(newChild, this[i].childNodes[0]);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function next(selector) {\r\n if (this.length > 0) {\r\n if (selector) {\r\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\r\n return $([this[0].nextElementSibling]);\r\n }\r\n\r\n return $([]);\r\n }\r\n\r\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\r\n return $([]);\r\n }\r\n\r\n return $([]);\r\n }\r\n\r\n function nextAll(selector) {\r\n var nextEls = [];\r\n var el = this[0];\r\n if (!el) return $([]);\r\n\r\n while (el.nextElementSibling) {\r\n var _next = el.nextElementSibling; // eslint-disable-line\r\n\r\n if (selector) {\r\n if ($(_next).is(selector)) nextEls.push(_next);\r\n } else nextEls.push(_next);\r\n\r\n el = _next;\r\n }\r\n\r\n return $(nextEls);\r\n }\r\n\r\n function prev(selector) {\r\n if (this.length > 0) {\r\n var el = this[0];\r\n\r\n if (selector) {\r\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\r\n return $([el.previousElementSibling]);\r\n }\r\n\r\n return $([]);\r\n }\r\n\r\n if (el.previousElementSibling) return $([el.previousElementSibling]);\r\n return $([]);\r\n }\r\n\r\n return $([]);\r\n }\r\n\r\n function prevAll(selector) {\r\n var prevEls = [];\r\n var el = this[0];\r\n if (!el) return $([]);\r\n\r\n while (el.previousElementSibling) {\r\n var _prev = el.previousElementSibling; // eslint-disable-line\r\n\r\n if (selector) {\r\n if ($(_prev).is(selector)) prevEls.push(_prev);\r\n } else prevEls.push(_prev);\r\n\r\n el = _prev;\r\n }\r\n\r\n return $(prevEls);\r\n }\r\n\r\n function parent(selector) {\r\n var parents = []; // eslint-disable-line\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (this[i].parentNode !== null) {\r\n if (selector) {\r\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\r\n } else {\r\n parents.push(this[i].parentNode);\r\n }\r\n }\r\n }\r\n\r\n return $(parents);\r\n }\r\n\r\n function parents(selector) {\r\n var parents = []; // eslint-disable-line\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n var _parent = this[i].parentNode; // eslint-disable-line\r\n\r\n while (_parent) {\r\n if (selector) {\r\n if ($(_parent).is(selector)) parents.push(_parent);\r\n } else {\r\n parents.push(_parent);\r\n }\r\n\r\n _parent = _parent.parentNode;\r\n }\r\n }\r\n\r\n return $(parents);\r\n }\r\n\r\n function closest(selector) {\r\n var closest = this; // eslint-disable-line\r\n\r\n if (typeof selector === 'undefined') {\r\n return $([]);\r\n }\r\n\r\n if (!closest.is(selector)) {\r\n closest = closest.parents(selector).eq(0);\r\n }\r\n\r\n return closest;\r\n }\r\n\r\n function find(selector) {\r\n var foundElements = [];\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n var found = this[i].querySelectorAll(selector);\r\n\r\n for (var j = 0; j < found.length; j += 1) {\r\n foundElements.push(found[j]);\r\n }\r\n }\r\n\r\n return $(foundElements);\r\n }\r\n\r\n function children(selector) {\r\n var children = []; // eslint-disable-line\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n var childNodes = this[i].children;\r\n\r\n for (var j = 0; j < childNodes.length; j += 1) {\r\n if (!selector || $(childNodes[j]).is(selector)) {\r\n children.push(childNodes[j]);\r\n }\r\n }\r\n }\r\n\r\n return $(children);\r\n }\r\n\r\n function remove() {\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n var Methods = {\r\n addClass: addClass,\r\n removeClass: removeClass,\r\n hasClass: hasClass,\r\n toggleClass: toggleClass,\r\n attr: attr,\r\n removeAttr: removeAttr,\r\n transform: transform,\r\n transition: transition,\r\n on: on,\r\n off: off,\r\n trigger: trigger,\r\n transitionEnd: transitionEnd,\r\n outerWidth: outerWidth,\r\n outerHeight: outerHeight,\r\n styles: styles,\r\n offset: offset,\r\n css: css,\r\n each: each,\r\n html: html,\r\n text: text,\r\n is: is,\r\n index: index,\r\n eq: eq,\r\n append: append,\r\n prepend: prepend,\r\n next: next,\r\n nextAll: nextAll,\r\n prev: prev,\r\n prevAll: prevAll,\r\n parent: parent,\r\n parents: parents,\r\n closest: closest,\r\n find: find,\r\n children: children,\r\n filter: filter,\r\n remove: remove\r\n };\r\n Object.keys(Methods).forEach(function (methodName) {\r\n $.fn[methodName] = Methods[methodName];\r\n });\r\n\r\n function deleteProps(obj) {\r\n var object = obj;\r\n Object.keys(object).forEach(function (key) {\r\n try {\r\n object[key] = null;\r\n } catch (e) {// no getter for object\r\n }\r\n\r\n try {\r\n delete object[key];\r\n } catch (e) {// something got wrong\r\n }\r\n });\r\n }\r\n\r\n function nextTick(callback, delay) {\r\n if (delay === void 0) {\r\n delay = 0;\r\n }\r\n\r\n return setTimeout(callback, delay);\r\n }\r\n\r\n function now() {\r\n return Date.now();\r\n }\r\n\r\n function getTranslate(el, axis) {\r\n if (axis === void 0) {\r\n axis = 'x';\r\n }\r\n\r\n var window = getWindow();\r\n var matrix;\r\n var curTransform;\r\n var transformMatrix;\r\n var curStyle = window.getComputedStyle(el, null);\r\n\r\n if (window.WebKitCSSMatrix) {\r\n curTransform = curStyle.transform || curStyle.webkitTransform;\r\n\r\n if (curTransform.split(',').length > 6) {\r\n curTransform = curTransform.split(', ').map(function (a) {\r\n return a.replace(',', '.');\r\n }).join(', ');\r\n } // Some old versions of Webkit choke when 'none' is passed; pass\r\n // empty string instead in this case\r\n\r\n\r\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\r\n } else {\r\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\r\n matrix = transformMatrix.toString().split(',');\r\n }\r\n\r\n if (axis === 'x') {\r\n // Latest Chrome and webkits Fix\r\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\r\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\r\n else curTransform = parseFloat(matrix[4]);\r\n }\r\n\r\n if (axis === 'y') {\r\n // Latest Chrome and webkits Fix\r\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\r\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\r\n else curTransform = parseFloat(matrix[5]);\r\n }\r\n\r\n return curTransform || 0;\r\n }\r\n\r\n function isObject$1(o) {\r\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\r\n }\r\n\r\n function extend$1() {\r\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\r\n\r\n for (var i = 1; i < arguments.length; i += 1) {\r\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\r\n\r\n if (nextSource !== undefined && nextSource !== null) {\r\n var keysArray = Object.keys(Object(nextSource));\r\n\r\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\r\n var nextKey = keysArray[nextIndex];\r\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n\r\n if (desc !== undefined && desc.enumerable) {\r\n if (isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) {\r\n extend$1(to[nextKey], nextSource[nextKey]);\r\n } else if (!isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) {\r\n to[nextKey] = {};\r\n extend$1(to[nextKey], nextSource[nextKey]);\r\n } else {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return to;\r\n }\r\n\r\n function bindModuleMethods(instance, obj) {\r\n Object.keys(obj).forEach(function (key) {\r\n if (isObject$1(obj[key])) {\r\n Object.keys(obj[key]).forEach(function (subKey) {\r\n if (typeof obj[key][subKey] === 'function') {\r\n obj[key][subKey] = obj[key][subKey].bind(instance);\r\n }\r\n });\r\n }\r\n\r\n instance[key] = obj[key];\r\n });\r\n }\r\n\r\n var support;\r\n\r\n function calcSupport() {\r\n var window = getWindow();\r\n var document = getDocument();\r\n return {\r\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\r\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\r\n observer: function checkObserver() {\r\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\r\n }(),\r\n passiveListener: function checkPassiveListener() {\r\n var supportsPassive = false;\r\n\r\n try {\r\n var opts = Object.defineProperty({}, 'passive', {\r\n // eslint-disable-next-line\r\n get: function get() {\r\n supportsPassive = true;\r\n }\r\n });\r\n window.addEventListener('testPassiveListener', null, opts);\r\n } catch (e) {// No support\r\n }\r\n\r\n return supportsPassive;\r\n }(),\r\n gestures: function checkGestures() {\r\n return 'ongesturestart' in window;\r\n }()\r\n };\r\n }\r\n\r\n function getSupport() {\r\n if (!support) {\r\n support = calcSupport();\r\n }\r\n\r\n return support;\r\n }\r\n\r\n var device;\r\n\r\n function calcDevice(_temp) {\r\n var _ref = _temp === void 0 ? {} : _temp,\r\n userAgent = _ref.userAgent;\r\n\r\n var support = getSupport();\r\n var window = getWindow();\r\n var platform = window.navigator.platform;\r\n var ua = userAgent || window.navigator.userAgent;\r\n var device = {\r\n ios: false,\r\n android: false\r\n };\r\n var screenWidth = window.screen.width;\r\n var screenHeight = window.screen.height;\r\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n\r\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\r\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\r\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\r\n var windows = platform === 'Win32';\r\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\r\n\r\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\r\n\r\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\r\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\r\n if (!ipad) ipad = [0, 1, '13_0_0'];\r\n macos = false;\r\n } // Android\r\n\r\n\r\n if (android && !windows) {\r\n device.os = 'android';\r\n device.android = true;\r\n }\r\n\r\n if (ipad || iphone || ipod) {\r\n device.os = 'ios';\r\n device.ios = true;\r\n } // Export object\r\n\r\n\r\n return device;\r\n }\r\n\r\n function getDevice(overrides) {\r\n if (overrides === void 0) {\r\n overrides = {};\r\n }\r\n\r\n if (!device) {\r\n device = calcDevice(overrides);\r\n }\r\n\r\n return device;\r\n }\r\n\r\n var browser;\r\n\r\n function calcBrowser() {\r\n var window = getWindow();\r\n\r\n function isSafari() {\r\n var ua = window.navigator.userAgent.toLowerCase();\r\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\r\n }\r\n\r\n return {\r\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\r\n isSafari: isSafari(),\r\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\r\n };\r\n }\r\n\r\n function getBrowser() {\r\n if (!browser) {\r\n browser = calcBrowser();\r\n }\r\n\r\n return browser;\r\n }\r\n\r\n var Resize = {\r\n name: 'resize',\r\n create: function create() {\r\n var swiper = this;\r\n extend$1(swiper, {\r\n resize: {\r\n resizeHandler: function resizeHandler() {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n swiper.emit('beforeResize');\r\n swiper.emit('resize');\r\n },\r\n orientationChangeHandler: function orientationChangeHandler() {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n swiper.emit('orientationchange');\r\n }\r\n }\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n var window = getWindow(); // Emit resize\r\n\r\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\r\n\r\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\r\n },\r\n destroy: function destroy(swiper) {\r\n var window = getWindow();\r\n window.removeEventListener('resize', swiper.resize.resizeHandler);\r\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\r\n }\r\n }\r\n };\r\n\r\n var Observer = {\r\n attach: function attach(target, options) {\r\n if (options === void 0) {\r\n options = {};\r\n }\r\n\r\n var window = getWindow();\r\n var swiper = this;\r\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\r\n var observer = new ObserverFunc(function (mutations) {\r\n // The observerUpdate event should only be triggered\r\n // once despite the number of mutations. Additional\r\n // triggers are redundant and are very costly\r\n if (mutations.length === 1) {\r\n swiper.emit('observerUpdate', mutations[0]);\r\n return;\r\n }\r\n\r\n var observerUpdate = function observerUpdate() {\r\n swiper.emit('observerUpdate', mutations[0]);\r\n };\r\n\r\n if (window.requestAnimationFrame) {\r\n window.requestAnimationFrame(observerUpdate);\r\n } else {\r\n window.setTimeout(observerUpdate, 0);\r\n }\r\n });\r\n observer.observe(target, {\r\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\r\n childList: typeof options.childList === 'undefined' ? true : options.childList,\r\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\r\n });\r\n swiper.observer.observers.push(observer);\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n if (!swiper.support.observer || !swiper.params.observer) return;\r\n\r\n if (swiper.params.observeParents) {\r\n var containerParents = swiper.$el.parents();\r\n\r\n for (var i = 0; i < containerParents.length; i += 1) {\r\n swiper.observer.attach(containerParents[i]);\r\n }\r\n } // Observe container\r\n\r\n\r\n swiper.observer.attach(swiper.$el[0], {\r\n childList: swiper.params.observeSlideChildren\r\n }); // Observe wrapper\r\n\r\n swiper.observer.attach(swiper.$wrapperEl[0], {\r\n attributes: false\r\n });\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.observer.observers.forEach(function (observer) {\r\n observer.disconnect();\r\n });\r\n swiper.observer.observers = [];\r\n }\r\n };\r\n var Observer$1 = {\r\n name: 'observer',\r\n params: {\r\n observer: false,\r\n observeParents: false,\r\n observeSlideChildren: false\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n observer: _extends(_extends({}, Observer), {}, {\r\n observers: []\r\n })\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n swiper.observer.init();\r\n },\r\n destroy: function destroy(swiper) {\r\n swiper.observer.destroy();\r\n }\r\n }\r\n };\r\n\r\n var modular = {\r\n useParams: function useParams(instanceParams) {\r\n var instance = this;\r\n if (!instance.modules) return;\r\n Object.keys(instance.modules).forEach(function (moduleName) {\r\n var module = instance.modules[moduleName]; // Extend params\r\n\r\n if (module.params) {\r\n extend$1(instanceParams, module.params);\r\n }\r\n });\r\n },\r\n useModules: function useModules(modulesParams) {\r\n if (modulesParams === void 0) {\r\n modulesParams = {};\r\n }\r\n\r\n var instance = this;\r\n if (!instance.modules) return;\r\n Object.keys(instance.modules).forEach(function (moduleName) {\r\n var module = instance.modules[moduleName];\r\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\r\n\r\n if (module.on && instance.on) {\r\n Object.keys(module.on).forEach(function (moduleEventName) {\r\n instance.on(moduleEventName, module.on[moduleEventName]);\r\n });\r\n } // Module create callback\r\n\r\n\r\n if (module.create) {\r\n module.create.bind(instance)(moduleParams);\r\n }\r\n });\r\n }\r\n };\r\n\r\n /* eslint-disable no-underscore-dangle */\r\n var eventsEmitter = {\r\n on: function on(events, handler, priority) {\r\n var self = this;\r\n if (typeof handler !== 'function') return self;\r\n var method = priority ? 'unshift' : 'push';\r\n events.split(' ').forEach(function (event) {\r\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\r\n self.eventsListeners[event][method](handler);\r\n });\r\n return self;\r\n },\r\n once: function once(events, handler, priority) {\r\n var self = this;\r\n if (typeof handler !== 'function') return self;\r\n\r\n function onceHandler() {\r\n self.off(events, onceHandler);\r\n\r\n if (onceHandler.__emitterProxy) {\r\n delete onceHandler.__emitterProxy;\r\n }\r\n\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key];\r\n }\r\n\r\n handler.apply(self, args);\r\n }\r\n\r\n onceHandler.__emitterProxy = handler;\r\n return self.on(events, onceHandler, priority);\r\n },\r\n onAny: function onAny(handler, priority) {\r\n var self = this;\r\n if (typeof handler !== 'function') return self;\r\n var method = priority ? 'unshift' : 'push';\r\n\r\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\r\n self.eventsAnyListeners[method](handler);\r\n }\r\n\r\n return self;\r\n },\r\n offAny: function offAny(handler) {\r\n var self = this;\r\n if (!self.eventsAnyListeners) return self;\r\n var index = self.eventsAnyListeners.indexOf(handler);\r\n\r\n if (index >= 0) {\r\n self.eventsAnyListeners.splice(index, 1);\r\n }\r\n\r\n return self;\r\n },\r\n off: function off(events, handler) {\r\n var self = this;\r\n if (!self.eventsListeners) return self;\r\n events.split(' ').forEach(function (event) {\r\n if (typeof handler === 'undefined') {\r\n self.eventsListeners[event] = [];\r\n } else if (self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach(function (eventHandler, index) {\r\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\r\n self.eventsListeners[event].splice(index, 1);\r\n }\r\n });\r\n }\r\n });\r\n return self;\r\n },\r\n emit: function emit() {\r\n var self = this;\r\n if (!self.eventsListeners) return self;\r\n var events;\r\n var data;\r\n var context;\r\n\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2];\r\n }\r\n\r\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\r\n events = args[0];\r\n data = args.slice(1, args.length);\r\n context = self;\r\n } else {\r\n events = args[0].events;\r\n data = args[0].data;\r\n context = args[0].context || self;\r\n }\r\n\r\n data.unshift(context);\r\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\r\n eventsArray.forEach(function (event) {\r\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\r\n self.eventsAnyListeners.forEach(function (eventHandler) {\r\n eventHandler.apply(context, [event].concat(data));\r\n });\r\n }\r\n\r\n if (self.eventsListeners && self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach(function (eventHandler) {\r\n eventHandler.apply(context, data);\r\n });\r\n }\r\n });\r\n return self;\r\n }\r\n };\r\n\r\n function updateSize() {\r\n var swiper = this;\r\n var width;\r\n var height;\r\n var $el = swiper.$el;\r\n\r\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\r\n width = swiper.params.width;\r\n } else {\r\n width = $el[0].clientWidth;\r\n }\r\n\r\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\r\n height = swiper.params.height;\r\n } else {\r\n height = $el[0].clientHeight;\r\n }\r\n\r\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\r\n return;\r\n } // Subtract paddings\r\n\r\n\r\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\r\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\r\n if (Number.isNaN(width)) width = 0;\r\n if (Number.isNaN(height)) height = 0;\r\n extend$1(swiper, {\r\n width: width,\r\n height: height,\r\n size: swiper.isHorizontal() ? width : height\r\n });\r\n }\r\n\r\n function updateSlides() {\r\n var swiper = this;\r\n var window = getWindow();\r\n var params = swiper.params;\r\n var $wrapperEl = swiper.$wrapperEl,\r\n swiperSize = swiper.size,\r\n rtl = swiper.rtlTranslate,\r\n wrongRTL = swiper.wrongRTL;\r\n var isVirtual = swiper.virtual && params.virtual.enabled;\r\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\r\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\r\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\r\n var snapGrid = [];\r\n var slidesGrid = [];\r\n var slidesSizesGrid = [];\r\n\r\n function slidesForMargin(slideEl, slideIndex) {\r\n if (!params.cssMode) return true;\r\n\r\n if (slideIndex === slides.length - 1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n var offsetBefore = params.slidesOffsetBefore;\r\n\r\n if (typeof offsetBefore === 'function') {\r\n offsetBefore = params.slidesOffsetBefore.call(swiper);\r\n }\r\n\r\n var offsetAfter = params.slidesOffsetAfter;\r\n\r\n if (typeof offsetAfter === 'function') {\r\n offsetAfter = params.slidesOffsetAfter.call(swiper);\r\n }\r\n\r\n var previousSnapGridLength = swiper.snapGrid.length;\r\n var previousSlidesGridLength = swiper.snapGrid.length;\r\n var spaceBetween = params.spaceBetween;\r\n var slidePosition = -offsetBefore;\r\n var prevSlideSize = 0;\r\n var index = 0;\r\n\r\n if (typeof swiperSize === 'undefined') {\r\n return;\r\n }\r\n\r\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\r\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\r\n }\r\n\r\n swiper.virtualSize = -spaceBetween; // reset margins\r\n\r\n if (rtl) slides.css({\r\n marginLeft: '',\r\n marginTop: ''\r\n });else slides.css({\r\n marginRight: '',\r\n marginBottom: ''\r\n });\r\n var slidesNumberEvenToRows;\r\n\r\n if (params.slidesPerColumn > 1) {\r\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\r\n slidesNumberEvenToRows = slidesLength;\r\n } else {\r\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\r\n }\r\n\r\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\r\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\r\n }\r\n } // Calc slides\r\n\r\n\r\n var slideSize;\r\n var slidesPerColumn = params.slidesPerColumn;\r\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\r\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\r\n\r\n for (var i = 0; i < slidesLength; i += 1) {\r\n slideSize = 0;\r\n var slide = slides.eq(i);\r\n\r\n if (params.slidesPerColumn > 1) {\r\n // Set slides order\r\n var newSlideOrderIndex = void 0;\r\n var column = void 0;\r\n var row = void 0;\r\n\r\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\r\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\r\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\r\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\r\n row = Math.floor(slideIndexInGroup / columnsInGroup);\r\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\r\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\r\n slide.css({\r\n '-webkit-box-ordinal-group': newSlideOrderIndex,\r\n '-moz-box-ordinal-group': newSlideOrderIndex,\r\n '-ms-flex-order': newSlideOrderIndex,\r\n '-webkit-order': newSlideOrderIndex,\r\n order: newSlideOrderIndex\r\n });\r\n } else if (params.slidesPerColumnFill === 'column') {\r\n column = Math.floor(i / slidesPerColumn);\r\n row = i - column * slidesPerColumn;\r\n\r\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\r\n row += 1;\r\n\r\n if (row >= slidesPerColumn) {\r\n row = 0;\r\n column += 1;\r\n }\r\n }\r\n } else {\r\n row = Math.floor(i / slidesPerRow);\r\n column = i - row * slidesPerRow;\r\n }\r\n\r\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\r\n }\r\n\r\n if (slide.css('display') === 'none') continue; // eslint-disable-line\r\n\r\n if (params.slidesPerView === 'auto') {\r\n var slideStyles = window.getComputedStyle(slide[0], null);\r\n var currentTransform = slide[0].style.transform;\r\n var currentWebKitTransform = slide[0].style.webkitTransform;\r\n\r\n if (currentTransform) {\r\n slide[0].style.transform = 'none';\r\n }\r\n\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = 'none';\r\n }\r\n\r\n if (params.roundLengths) {\r\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\r\n } else {\r\n // eslint-disable-next-line\r\n if (swiper.isHorizontal()) {\r\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\r\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\r\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\r\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\r\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\r\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\r\n\r\n if (boxSizing && boxSizing === 'border-box') {\r\n slideSize = width + marginLeft + marginRight;\r\n } else {\r\n var _slide$ = slide[0],\r\n clientWidth = _slide$.clientWidth,\r\n offsetWidth = _slide$.offsetWidth;\r\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\r\n }\r\n } else {\r\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\r\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\r\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\r\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\r\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\r\n\r\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\r\n\r\n if (_boxSizing && _boxSizing === 'border-box') {\r\n slideSize = height + marginTop + marginBottom;\r\n } else {\r\n var _slide$2 = slide[0],\r\n clientHeight = _slide$2.clientHeight,\r\n offsetHeight = _slide$2.offsetHeight;\r\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\r\n }\r\n }\r\n }\r\n\r\n if (currentTransform) {\r\n slide[0].style.transform = currentTransform;\r\n }\r\n\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = currentWebKitTransform;\r\n }\r\n\r\n if (params.roundLengths) slideSize = Math.floor(slideSize);\r\n } else {\r\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\r\n if (params.roundLengths) slideSize = Math.floor(slideSize);\r\n\r\n if (slides[i]) {\r\n if (swiper.isHorizontal()) {\r\n slides[i].style.width = slideSize + \"px\";\r\n } else {\r\n slides[i].style.height = slideSize + \"px\";\r\n }\r\n }\r\n }\r\n\r\n if (slides[i]) {\r\n slides[i].swiperSlideSize = slideSize;\r\n }\r\n\r\n slidesSizesGrid.push(slideSize);\r\n\r\n if (params.centeredSlides) {\r\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\r\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\r\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\r\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\r\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\r\n slidesGrid.push(slidePosition);\r\n } else {\r\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\r\n slidesGrid.push(slidePosition);\r\n slidePosition = slidePosition + slideSize + spaceBetween;\r\n }\r\n\r\n swiper.virtualSize += slideSize + spaceBetween;\r\n prevSlideSize = slideSize;\r\n index += 1;\r\n }\r\n\r\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\r\n var newSlidesGrid;\r\n\r\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\r\n $wrapperEl.css({\r\n width: swiper.virtualSize + params.spaceBetween + \"px\"\r\n });\r\n }\r\n\r\n if (params.setWrapperSize) {\r\n if (swiper.isHorizontal()) $wrapperEl.css({\r\n width: swiper.virtualSize + params.spaceBetween + \"px\"\r\n });else $wrapperEl.css({\r\n height: swiper.virtualSize + params.spaceBetween + \"px\"\r\n });\r\n }\r\n\r\n if (params.slidesPerColumn > 1) {\r\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\r\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\r\n if (swiper.isHorizontal()) $wrapperEl.css({\r\n width: swiper.virtualSize + params.spaceBetween + \"px\"\r\n });else $wrapperEl.css({\r\n height: swiper.virtualSize + params.spaceBetween + \"px\"\r\n });\r\n\r\n if (params.centeredSlides) {\r\n newSlidesGrid = [];\r\n\r\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\r\n var slidesGridItem = snapGrid[_i];\r\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\r\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\r\n }\r\n\r\n snapGrid = newSlidesGrid;\r\n }\r\n } // Remove last grid elements depending on width\r\n\r\n\r\n if (!params.centeredSlides) {\r\n newSlidesGrid = [];\r\n\r\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\r\n var _slidesGridItem = snapGrid[_i2];\r\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\r\n\r\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\r\n newSlidesGrid.push(_slidesGridItem);\r\n }\r\n }\r\n\r\n snapGrid = newSlidesGrid;\r\n\r\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\r\n snapGrid.push(swiper.virtualSize - swiperSize);\r\n }\r\n }\r\n\r\n if (snapGrid.length === 0) snapGrid = [0];\r\n\r\n if (params.spaceBetween !== 0) {\r\n if (swiper.isHorizontal()) {\r\n if (rtl) slides.filter(slidesForMargin).css({\r\n marginLeft: spaceBetween + \"px\"\r\n });else slides.filter(slidesForMargin).css({\r\n marginRight: spaceBetween + \"px\"\r\n });\r\n } else slides.filter(slidesForMargin).css({\r\n marginBottom: spaceBetween + \"px\"\r\n });\r\n }\r\n\r\n if (params.centeredSlides && params.centeredSlidesBounds) {\r\n var allSlidesSize = 0;\r\n slidesSizesGrid.forEach(function (slideSizeValue) {\r\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n });\r\n allSlidesSize -= params.spaceBetween;\r\n var maxSnap = allSlidesSize - swiperSize;\r\n snapGrid = snapGrid.map(function (snap) {\r\n if (snap < 0) return -offsetBefore;\r\n if (snap > maxSnap) return maxSnap + offsetAfter;\r\n return snap;\r\n });\r\n }\r\n\r\n if (params.centerInsufficientSlides) {\r\n var _allSlidesSize = 0;\r\n slidesSizesGrid.forEach(function (slideSizeValue) {\r\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n });\r\n _allSlidesSize -= params.spaceBetween;\r\n\r\n if (_allSlidesSize < swiperSize) {\r\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\r\n snapGrid.forEach(function (snap, snapIndex) {\r\n snapGrid[snapIndex] = snap - allSlidesOffset;\r\n });\r\n slidesGrid.forEach(function (snap, snapIndex) {\r\n slidesGrid[snapIndex] = snap + allSlidesOffset;\r\n });\r\n }\r\n }\r\n\r\n extend$1(swiper, {\r\n slides: slides,\r\n snapGrid: snapGrid,\r\n slidesGrid: slidesGrid,\r\n slidesSizesGrid: slidesSizesGrid\r\n });\r\n\r\n if (slidesLength !== previousSlidesLength) {\r\n swiper.emit('slidesLengthChange');\r\n }\r\n\r\n if (snapGrid.length !== previousSnapGridLength) {\r\n if (swiper.params.watchOverflow) swiper.checkOverflow();\r\n swiper.emit('snapGridLengthChange');\r\n }\r\n\r\n if (slidesGrid.length !== previousSlidesGridLength) {\r\n swiper.emit('slidesGridLengthChange');\r\n }\r\n\r\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\r\n swiper.updateSlidesOffset();\r\n }\r\n }\r\n\r\n function updateAutoHeight(speed) {\r\n var swiper = this;\r\n var activeSlides = [];\r\n var newHeight = 0;\r\n var i;\r\n\r\n if (typeof speed === 'number') {\r\n swiper.setTransition(speed);\r\n } else if (speed === true) {\r\n swiper.setTransition(swiper.params.speed);\r\n } // Find slides currently in view\r\n\r\n\r\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\r\n if (swiper.params.centeredSlides) {\r\n swiper.visibleSlides.each(function (slide) {\r\n activeSlides.push(slide);\r\n });\r\n } else {\r\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\r\n var index = swiper.activeIndex + i;\r\n if (index > swiper.slides.length) break;\r\n activeSlides.push(swiper.slides.eq(index)[0]);\r\n }\r\n }\r\n } else {\r\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\r\n } // Find new height from highest slide in view\r\n\r\n\r\n for (i = 0; i < activeSlides.length; i += 1) {\r\n if (typeof activeSlides[i] !== 'undefined') {\r\n var height = activeSlides[i].offsetHeight;\r\n newHeight = height > newHeight ? height : newHeight;\r\n }\r\n } // Update Height\r\n\r\n\r\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\r\n }\r\n\r\n function updateSlidesOffset() {\r\n var swiper = this;\r\n var slides = swiper.slides;\r\n\r\n for (var i = 0; i < slides.length; i += 1) {\r\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\r\n }\r\n }\r\n\r\n function updateSlidesProgress(translate) {\r\n if (translate === void 0) {\r\n translate = this && this.translate || 0;\r\n }\r\n\r\n var swiper = this;\r\n var params = swiper.params;\r\n var slides = swiper.slides,\r\n rtl = swiper.rtlTranslate;\r\n if (slides.length === 0) return;\r\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\r\n var offsetCenter = -translate;\r\n if (rtl) offsetCenter = translate; // Visible Slides\r\n\r\n slides.removeClass(params.slideVisibleClass);\r\n swiper.visibleSlidesIndexes = [];\r\n swiper.visibleSlides = [];\r\n\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var slide = slides[i];\r\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\r\n\r\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\r\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\r\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\r\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\r\n\r\n if (isVisible) {\r\n swiper.visibleSlides.push(slide);\r\n swiper.visibleSlidesIndexes.push(i);\r\n slides.eq(i).addClass(params.slideVisibleClass);\r\n }\r\n }\r\n\r\n slide.progress = rtl ? -slideProgress : slideProgress;\r\n }\r\n\r\n swiper.visibleSlides = $(swiper.visibleSlides);\r\n }\r\n\r\n function updateProgress(translate) {\r\n var swiper = this;\r\n\r\n if (typeof translate === 'undefined') {\r\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\r\n\r\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\r\n }\r\n\r\n var params = swiper.params;\r\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n var progress = swiper.progress,\r\n isBeginning = swiper.isBeginning,\r\n isEnd = swiper.isEnd;\r\n var wasBeginning = isBeginning;\r\n var wasEnd = isEnd;\r\n\r\n if (translatesDiff === 0) {\r\n progress = 0;\r\n isBeginning = true;\r\n isEnd = true;\r\n } else {\r\n progress = (translate - swiper.minTranslate()) / translatesDiff;\r\n isBeginning = progress <= 0;\r\n isEnd = progress >= 1;\r\n }\r\n\r\n extend$1(swiper, {\r\n progress: progress,\r\n isBeginning: isBeginning,\r\n isEnd: isEnd\r\n });\r\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\r\n\r\n if (isBeginning && !wasBeginning) {\r\n swiper.emit('reachBeginning toEdge');\r\n }\r\n\r\n if (isEnd && !wasEnd) {\r\n swiper.emit('reachEnd toEdge');\r\n }\r\n\r\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\r\n swiper.emit('fromEdge');\r\n }\r\n\r\n swiper.emit('progress', progress);\r\n }\r\n\r\n function updateSlidesClasses() {\r\n var swiper = this;\r\n var slides = swiper.slides,\r\n params = swiper.params,\r\n $wrapperEl = swiper.$wrapperEl,\r\n activeIndex = swiper.activeIndex,\r\n realIndex = swiper.realIndex;\r\n var isVirtual = swiper.virtual && params.virtual.enabled;\r\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\r\n var activeSlide;\r\n\r\n if (isVirtual) {\r\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\r\n } else {\r\n activeSlide = slides.eq(activeIndex);\r\n } // Active classes\r\n\r\n\r\n activeSlide.addClass(params.slideActiveClass);\r\n\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\r\n } else {\r\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\r\n }\r\n } // Next Slide\r\n\r\n\r\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\r\n\r\n if (params.loop && nextSlide.length === 0) {\r\n nextSlide = slides.eq(0);\r\n nextSlide.addClass(params.slideNextClass);\r\n } // Prev Slide\r\n\r\n\r\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\r\n\r\n if (params.loop && prevSlide.length === 0) {\r\n prevSlide = slides.eq(-1);\r\n prevSlide.addClass(params.slidePrevClass);\r\n }\r\n\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\r\n } else {\r\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\r\n }\r\n\r\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\r\n } else {\r\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\r\n }\r\n }\r\n\r\n swiper.emitSlidesClasses();\r\n }\r\n\r\n function updateActiveIndex(newActiveIndex) {\r\n var swiper = this;\r\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n var slidesGrid = swiper.slidesGrid,\r\n snapGrid = swiper.snapGrid,\r\n params = swiper.params,\r\n previousIndex = swiper.activeIndex,\r\n previousRealIndex = swiper.realIndex,\r\n previousSnapIndex = swiper.snapIndex;\r\n var activeIndex = newActiveIndex;\r\n var snapIndex;\r\n\r\n if (typeof activeIndex === 'undefined') {\r\n for (var i = 0; i < slidesGrid.length; i += 1) {\r\n if (typeof slidesGrid[i + 1] !== 'undefined') {\r\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\r\n activeIndex = i;\r\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\r\n activeIndex = i + 1;\r\n }\r\n } else if (translate >= slidesGrid[i]) {\r\n activeIndex = i;\r\n }\r\n } // Normalize slideIndex\r\n\r\n\r\n if (params.normalizeSlideIndex) {\r\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\r\n }\r\n }\r\n\r\n if (snapGrid.indexOf(translate) >= 0) {\r\n snapIndex = snapGrid.indexOf(translate);\r\n } else {\r\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\r\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\r\n }\r\n\r\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n\r\n if (activeIndex === previousIndex) {\r\n if (snapIndex !== previousSnapIndex) {\r\n swiper.snapIndex = snapIndex;\r\n swiper.emit('snapIndexChange');\r\n }\r\n\r\n return;\r\n } // Get real index\r\n\r\n\r\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\r\n extend$1(swiper, {\r\n snapIndex: snapIndex,\r\n realIndex: realIndex,\r\n previousIndex: previousIndex,\r\n activeIndex: activeIndex\r\n });\r\n swiper.emit('activeIndexChange');\r\n swiper.emit('snapIndexChange');\r\n\r\n if (previousRealIndex !== realIndex) {\r\n swiper.emit('realIndexChange');\r\n }\r\n\r\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\r\n swiper.emit('slideChange');\r\n }\r\n }\r\n\r\n function updateClickedSlide(e) {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\r\n var slideFound = false;\r\n\r\n if (slide) {\r\n for (var i = 0; i < swiper.slides.length; i += 1) {\r\n if (swiper.slides[i] === slide) slideFound = true;\r\n }\r\n }\r\n\r\n if (slide && slideFound) {\r\n swiper.clickedSlide = slide;\r\n\r\n if (swiper.virtual && swiper.params.virtual.enabled) {\r\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n swiper.clickedIndex = $(slide).index();\r\n }\r\n } else {\r\n swiper.clickedSlide = undefined;\r\n swiper.clickedIndex = undefined;\r\n return;\r\n }\r\n\r\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\r\n swiper.slideToClickedSlide();\r\n }\r\n }\r\n\r\n var update = {\r\n updateSize: updateSize,\r\n updateSlides: updateSlides,\r\n updateAutoHeight: updateAutoHeight,\r\n updateSlidesOffset: updateSlidesOffset,\r\n updateSlidesProgress: updateSlidesProgress,\r\n updateProgress: updateProgress,\r\n updateSlidesClasses: updateSlidesClasses,\r\n updateActiveIndex: updateActiveIndex,\r\n updateClickedSlide: updateClickedSlide\r\n };\r\n\r\n function getSwiperTranslate(axis) {\r\n if (axis === void 0) {\r\n axis = this.isHorizontal() ? 'x' : 'y';\r\n }\r\n\r\n var swiper = this;\r\n var params = swiper.params,\r\n rtl = swiper.rtlTranslate,\r\n translate = swiper.translate,\r\n $wrapperEl = swiper.$wrapperEl;\r\n\r\n if (params.virtualTranslate) {\r\n return rtl ? -translate : translate;\r\n }\r\n\r\n if (params.cssMode) {\r\n return translate;\r\n }\r\n\r\n var currentTranslate = getTranslate($wrapperEl[0], axis);\r\n if (rtl) currentTranslate = -currentTranslate;\r\n return currentTranslate || 0;\r\n }\r\n\r\n function setTranslate(translate, byController) {\r\n var swiper = this;\r\n var rtl = swiper.rtlTranslate,\r\n params = swiper.params,\r\n $wrapperEl = swiper.$wrapperEl,\r\n wrapperEl = swiper.wrapperEl,\r\n progress = swiper.progress;\r\n var x = 0;\r\n var y = 0;\r\n var z = 0;\r\n\r\n if (swiper.isHorizontal()) {\r\n x = rtl ? -translate : translate;\r\n } else {\r\n y = translate;\r\n }\r\n\r\n if (params.roundLengths) {\r\n x = Math.floor(x);\r\n y = Math.floor(y);\r\n }\r\n\r\n if (params.cssMode) {\r\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\r\n } else if (!params.virtualTranslate) {\r\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\r\n }\r\n\r\n swiper.previousTranslate = swiper.translate;\r\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\r\n\r\n var newProgress;\r\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\r\n }\r\n\r\n if (newProgress !== progress) {\r\n swiper.updateProgress(translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, byController);\r\n }\r\n\r\n function minTranslate() {\r\n return -this.snapGrid[0];\r\n }\r\n\r\n function maxTranslate() {\r\n return -this.snapGrid[this.snapGrid.length - 1];\r\n }\r\n\r\n function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\r\n if (translate === void 0) {\r\n translate = 0;\r\n }\r\n\r\n if (speed === void 0) {\r\n speed = this.params.speed;\r\n }\r\n\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n if (translateBounds === void 0) {\r\n translateBounds = true;\r\n }\r\n\r\n var swiper = this;\r\n var params = swiper.params,\r\n wrapperEl = swiper.wrapperEl;\r\n\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return false;\r\n }\r\n\r\n var minTranslate = swiper.minTranslate();\r\n var maxTranslate = swiper.maxTranslate();\r\n var newTranslate;\r\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\r\n\r\n swiper.updateProgress(newTranslate);\r\n\r\n if (params.cssMode) {\r\n var isH = swiper.isHorizontal();\r\n\r\n if (speed === 0) {\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\r\n } else {\r\n // eslint-disable-next-line\r\n if (wrapperEl.scrollTo) {\r\n var _wrapperEl$scrollTo;\r\n\r\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\r\n } else {\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n if (speed === 0) {\r\n swiper.setTransition(0);\r\n swiper.setTranslate(newTranslate);\r\n\r\n if (runCallbacks) {\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.emit('transitionEnd');\r\n }\r\n } else {\r\n swiper.setTransition(speed);\r\n swiper.setTranslate(newTranslate);\r\n\r\n if (runCallbacks) {\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.emit('transitionStart');\r\n }\r\n\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n\r\n if (!swiper.onTranslateToWrapperTransitionEnd) {\r\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\r\n if (!swiper || swiper.destroyed) return;\r\n if (e.target !== this) return;\r\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\r\n swiper.onTranslateToWrapperTransitionEnd = null;\r\n delete swiper.onTranslateToWrapperTransitionEnd;\r\n\r\n if (runCallbacks) {\r\n swiper.emit('transitionEnd');\r\n }\r\n };\r\n }\r\n\r\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n var translate = {\r\n getTranslate: getSwiperTranslate,\r\n setTranslate: setTranslate,\r\n minTranslate: minTranslate,\r\n maxTranslate: maxTranslate,\r\n translateTo: translateTo\r\n };\r\n\r\n function setTransition(duration, byController) {\r\n var swiper = this;\r\n\r\n if (!swiper.params.cssMode) {\r\n swiper.$wrapperEl.transition(duration);\r\n }\r\n\r\n swiper.emit('setTransition', duration, byController);\r\n }\r\n\r\n function transitionStart(runCallbacks, direction) {\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n var swiper = this;\r\n var activeIndex = swiper.activeIndex,\r\n params = swiper.params,\r\n previousIndex = swiper.previousIndex;\r\n if (params.cssMode) return;\r\n\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n\r\n var dir = direction;\r\n\r\n if (!dir) {\r\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\r\n }\r\n\r\n swiper.emit('transitionStart');\r\n\r\n if (runCallbacks && activeIndex !== previousIndex) {\r\n if (dir === 'reset') {\r\n swiper.emit('slideResetTransitionStart');\r\n return;\r\n }\r\n\r\n swiper.emit('slideChangeTransitionStart');\r\n\r\n if (dir === 'next') {\r\n swiper.emit('slideNextTransitionStart');\r\n } else {\r\n swiper.emit('slidePrevTransitionStart');\r\n }\r\n }\r\n }\r\n\r\n function transitionEnd$1(runCallbacks, direction) {\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n var swiper = this;\r\n var activeIndex = swiper.activeIndex,\r\n previousIndex = swiper.previousIndex,\r\n params = swiper.params;\r\n swiper.animating = false;\r\n if (params.cssMode) return;\r\n swiper.setTransition(0);\r\n var dir = direction;\r\n\r\n if (!dir) {\r\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\r\n }\r\n\r\n swiper.emit('transitionEnd');\r\n\r\n if (runCallbacks && activeIndex !== previousIndex) {\r\n if (dir === 'reset') {\r\n swiper.emit('slideResetTransitionEnd');\r\n return;\r\n }\r\n\r\n swiper.emit('slideChangeTransitionEnd');\r\n\r\n if (dir === 'next') {\r\n swiper.emit('slideNextTransitionEnd');\r\n } else {\r\n swiper.emit('slidePrevTransitionEnd');\r\n }\r\n }\r\n }\r\n\r\n var transition$1 = {\r\n setTransition: setTransition,\r\n transitionStart: transitionStart,\r\n transitionEnd: transitionEnd$1\r\n };\r\n\r\n function slideTo(index, speed, runCallbacks, internal) {\r\n if (index === void 0) {\r\n index = 0;\r\n }\r\n\r\n if (speed === void 0) {\r\n speed = this.params.speed;\r\n }\r\n\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n if (typeof index !== 'number' && typeof index !== 'string') {\r\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\r\n }\r\n\r\n if (typeof index === 'string') {\r\n /**\r\n * The `index` argument converted from `string` to `number`.\r\n * @type {number}\r\n */\r\n var indexAsNumber = parseInt(index, 10);\r\n /**\r\n * Determines whether the `index` argument is a valid `number`\r\n * after being converted from the `string` type.\r\n * @type {boolean}\r\n */\r\n\r\n var isValidNumber = isFinite(indexAsNumber);\r\n\r\n if (!isValidNumber) {\r\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\r\n } // Knowing that the converted `index` is a valid number,\r\n // we can update the original argument's value.\r\n\r\n\r\n index = indexAsNumber;\r\n }\r\n\r\n var swiper = this;\r\n var slideIndex = index;\r\n if (slideIndex < 0) slideIndex = 0;\r\n var params = swiper.params,\r\n snapGrid = swiper.snapGrid,\r\n slidesGrid = swiper.slidesGrid,\r\n previousIndex = swiper.previousIndex,\r\n activeIndex = swiper.activeIndex,\r\n rtl = swiper.rtlTranslate,\r\n wrapperEl = swiper.wrapperEl;\r\n\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return false;\r\n }\r\n\r\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\r\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\r\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n\r\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\r\n swiper.emit('beforeSlideChangeStart');\r\n }\r\n\r\n var translate = -snapGrid[snapIndex]; // Update progress\r\n\r\n swiper.updateProgress(translate); // Normalize slideIndex\r\n\r\n if (params.normalizeSlideIndex) {\r\n for (var i = 0; i < slidesGrid.length; i += 1) {\r\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\r\n slideIndex = i;\r\n }\r\n }\r\n } // Directions locks\r\n\r\n\r\n if (swiper.initialized && slideIndex !== activeIndex) {\r\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\r\n return false;\r\n }\r\n\r\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\r\n if ((activeIndex || 0) !== slideIndex) return false;\r\n }\r\n }\r\n\r\n var direction;\r\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\r\n\r\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\r\n swiper.updateActiveIndex(slideIndex); // Update Height\r\n\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n\r\n swiper.updateSlidesClasses();\r\n\r\n if (params.effect !== 'slide') {\r\n swiper.setTranslate(translate);\r\n }\r\n\r\n if (direction !== 'reset') {\r\n swiper.transitionStart(runCallbacks, direction);\r\n swiper.transitionEnd(runCallbacks, direction);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (params.cssMode) {\r\n var isH = swiper.isHorizontal();\r\n var t = -translate;\r\n\r\n if (rtl) {\r\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\r\n }\r\n\r\n if (speed === 0) {\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\r\n } else {\r\n // eslint-disable-next-line\r\n if (wrapperEl.scrollTo) {\r\n var _wrapperEl$scrollTo;\r\n\r\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\r\n } else {\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n if (speed === 0) {\r\n swiper.setTransition(0);\r\n swiper.setTranslate(translate);\r\n swiper.updateActiveIndex(slideIndex);\r\n swiper.updateSlidesClasses();\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.transitionStart(runCallbacks, direction);\r\n swiper.transitionEnd(runCallbacks, direction);\r\n } else {\r\n swiper.setTransition(speed);\r\n swiper.setTranslate(translate);\r\n swiper.updateActiveIndex(slideIndex);\r\n swiper.updateSlidesClasses();\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.transitionStart(runCallbacks, direction);\r\n\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n\r\n if (!swiper.onSlideToWrapperTransitionEnd) {\r\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\r\n if (!swiper || swiper.destroyed) return;\r\n if (e.target !== this) return;\r\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.onSlideToWrapperTransitionEnd = null;\r\n delete swiper.onSlideToWrapperTransitionEnd;\r\n swiper.transitionEnd(runCallbacks, direction);\r\n };\r\n }\r\n\r\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function slideToLoop(index, speed, runCallbacks, internal) {\r\n if (index === void 0) {\r\n index = 0;\r\n }\r\n\r\n if (speed === void 0) {\r\n speed = this.params.speed;\r\n }\r\n\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n var swiper = this;\r\n var newIndex = index;\r\n\r\n if (swiper.params.loop) {\r\n newIndex += swiper.loopedSlides;\r\n }\r\n\r\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slideNext(speed, runCallbacks, internal) {\r\n if (speed === void 0) {\r\n speed = this.params.speed;\r\n }\r\n\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n var swiper = this;\r\n var params = swiper.params,\r\n animating = swiper.animating;\r\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\r\n\r\n if (params.loop) {\r\n if (animating && params.loopPreventsSlide) return false;\r\n swiper.loopFix(); // eslint-disable-next-line\r\n\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n }\r\n\r\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slidePrev(speed, runCallbacks, internal) {\r\n if (speed === void 0) {\r\n speed = this.params.speed;\r\n }\r\n\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n var swiper = this;\r\n var params = swiper.params,\r\n animating = swiper.animating,\r\n snapGrid = swiper.snapGrid,\r\n slidesGrid = swiper.slidesGrid,\r\n rtlTranslate = swiper.rtlTranslate;\r\n\r\n if (params.loop) {\r\n if (animating && params.loopPreventsSlide) return false;\r\n swiper.loopFix(); // eslint-disable-next-line\r\n\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n }\r\n\r\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n function normalize(val) {\r\n if (val < 0) return -Math.floor(Math.abs(val));\r\n return Math.floor(val);\r\n }\r\n\r\n var normalizedTranslate = normalize(translate);\r\n var normalizedSnapGrid = snapGrid.map(function (val) {\r\n return normalize(val);\r\n });\r\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\r\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\r\n\r\n if (typeof prevSnap === 'undefined' && params.cssMode) {\r\n snapGrid.forEach(function (snap) {\r\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\r\n });\r\n }\r\n\r\n var prevIndex;\r\n\r\n if (typeof prevSnap !== 'undefined') {\r\n prevIndex = slidesGrid.indexOf(prevSnap);\r\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\r\n }\r\n\r\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slideReset(speed, runCallbacks, internal) {\r\n if (speed === void 0) {\r\n speed = this.params.speed;\r\n }\r\n\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n var swiper = this;\r\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slideToClosest(speed, runCallbacks, internal, threshold) {\r\n if (speed === void 0) {\r\n speed = this.params.speed;\r\n }\r\n\r\n if (runCallbacks === void 0) {\r\n runCallbacks = true;\r\n }\r\n\r\n if (threshold === void 0) {\r\n threshold = 0.5;\r\n }\r\n\r\n var swiper = this;\r\n var index = swiper.activeIndex;\r\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\r\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\r\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n if (translate >= swiper.snapGrid[snapIndex]) {\r\n // The current translate is on or after the current snap index, so the choice\r\n // is between the current index and the one after it.\r\n var currentSnap = swiper.snapGrid[snapIndex];\r\n var nextSnap = swiper.snapGrid[snapIndex + 1];\r\n\r\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\r\n index += swiper.params.slidesPerGroup;\r\n }\r\n } else {\r\n // The current translate is before the current snap index, so the choice\r\n // is between the current index and the one before it.\r\n var prevSnap = swiper.snapGrid[snapIndex - 1];\r\n var _currentSnap = swiper.snapGrid[snapIndex];\r\n\r\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\r\n index -= swiper.params.slidesPerGroup;\r\n }\r\n }\r\n\r\n index = Math.max(index, 0);\r\n index = Math.min(index, swiper.slidesGrid.length - 1);\r\n return swiper.slideTo(index, speed, runCallbacks, internal);\r\n }\r\n\r\n function slideToClickedSlide() {\r\n var swiper = this;\r\n var params = swiper.params,\r\n $wrapperEl = swiper.$wrapperEl;\r\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\r\n var slideToIndex = swiper.clickedIndex;\r\n var realIndex;\r\n\r\n if (params.loop) {\r\n if (swiper.animating) return;\r\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n\r\n if (params.centeredSlides) {\r\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\r\n nextTick(function () {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\r\n nextTick(function () {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n }\r\n\r\n var slide = {\r\n slideTo: slideTo,\r\n slideToLoop: slideToLoop,\r\n slideNext: slideNext,\r\n slidePrev: slidePrev,\r\n slideReset: slideReset,\r\n slideToClosest: slideToClosest,\r\n slideToClickedSlide: slideToClickedSlide\r\n };\r\n\r\n function loopCreate() {\r\n var swiper = this;\r\n var document = getDocument();\r\n var params = swiper.params,\r\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\r\n\r\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\r\n var slides = $wrapperEl.children(\".\" + params.slideClass);\r\n\r\n if (params.loopFillGroupWithBlank) {\r\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\r\n\r\n if (blankSlidesNum !== params.slidesPerGroup) {\r\n for (var i = 0; i < blankSlidesNum; i += 1) {\r\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\r\n $wrapperEl.append(blankNode);\r\n }\r\n\r\n slides = $wrapperEl.children(\".\" + params.slideClass);\r\n }\r\n }\r\n\r\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\r\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\r\n swiper.loopedSlides += params.loopAdditionalSlides;\r\n\r\n if (swiper.loopedSlides > slides.length) {\r\n swiper.loopedSlides = slides.length;\r\n }\r\n\r\n var prependSlides = [];\r\n var appendSlides = [];\r\n slides.each(function (el, index) {\r\n var slide = $(el);\r\n\r\n if (index < swiper.loopedSlides) {\r\n appendSlides.push(el);\r\n }\r\n\r\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\r\n prependSlides.push(el);\r\n }\r\n\r\n slide.attr('data-swiper-slide-index', index);\r\n });\r\n\r\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\r\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n\r\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\r\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n }\r\n\r\n function loopFix() {\r\n var swiper = this;\r\n swiper.emit('beforeLoopFix');\r\n var activeIndex = swiper.activeIndex,\r\n slides = swiper.slides,\r\n loopedSlides = swiper.loopedSlides,\r\n allowSlidePrev = swiper.allowSlidePrev,\r\n allowSlideNext = swiper.allowSlideNext,\r\n snapGrid = swiper.snapGrid,\r\n rtl = swiper.rtlTranslate;\r\n var newIndex;\r\n swiper.allowSlidePrev = true;\r\n swiper.allowSlideNext = true;\r\n var snapTranslate = -snapGrid[activeIndex];\r\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\r\n\r\n if (activeIndex < loopedSlides) {\r\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\r\n newIndex += loopedSlides;\r\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n\r\n if (slideChanged && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n } else if (activeIndex >= slides.length - loopedSlides) {\r\n // Fix For Positive Oversliding\r\n newIndex = -slides.length + activeIndex + loopedSlides;\r\n newIndex += loopedSlides;\r\n\r\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n\r\n if (_slideChanged && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n }\r\n\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n swiper.emit('loopFix');\r\n }\r\n\r\n function loopDestroy() {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl,\r\n params = swiper.params,\r\n slides = swiper.slides;\r\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\r\n slides.removeAttr('data-swiper-slide-index');\r\n }\r\n\r\n var loop = {\r\n loopCreate: loopCreate,\r\n loopFix: loopFix,\r\n loopDestroy: loopDestroy\r\n };\r\n\r\n function setGrabCursor(moving) {\r\n var swiper = this;\r\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\r\n var el = swiper.el;\r\n el.style.cursor = 'move';\r\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\r\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\r\n el.style.cursor = moving ? 'grabbing' : 'grab';\r\n }\r\n\r\n function unsetGrabCursor() {\r\n var swiper = this;\r\n\r\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\r\n return;\r\n }\r\n\r\n swiper.el.style.cursor = '';\r\n }\r\n\r\n var grabCursor = {\r\n setGrabCursor: setGrabCursor,\r\n unsetGrabCursor: unsetGrabCursor\r\n };\r\n\r\n function appendSlide(slides) {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl,\r\n params = swiper.params;\r\n\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (var i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.append(slides[i]);\r\n }\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n if (!(params.observer && swiper.support.observer)) {\r\n swiper.update();\r\n }\r\n }\r\n\r\n function prependSlide(slides) {\r\n var swiper = this;\r\n var params = swiper.params,\r\n $wrapperEl = swiper.$wrapperEl,\r\n activeIndex = swiper.activeIndex;\r\n\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n\r\n var newActiveIndex = activeIndex + 1;\r\n\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (var i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.prepend(slides[i]);\r\n }\r\n\r\n newActiveIndex = activeIndex + slides.length;\r\n } else {\r\n $wrapperEl.prepend(slides);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n if (!(params.observer && swiper.support.observer)) {\r\n swiper.update();\r\n }\r\n\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n\r\n function addSlide(index, slides) {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl,\r\n params = swiper.params,\r\n activeIndex = swiper.activeIndex;\r\n var activeIndexBuffer = activeIndex;\r\n\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\r\n }\r\n\r\n var baseLength = swiper.slides.length;\r\n\r\n if (index <= 0) {\r\n swiper.prependSlide(slides);\r\n return;\r\n }\r\n\r\n if (index >= baseLength) {\r\n swiper.appendSlide(slides);\r\n return;\r\n }\r\n\r\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\r\n var slidesBuffer = [];\r\n\r\n for (var i = baseLength - 1; i >= index; i -= 1) {\r\n var currentSlide = swiper.slides.eq(i);\r\n currentSlide.remove();\r\n slidesBuffer.unshift(currentSlide);\r\n }\r\n\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (var _i = 0; _i < slides.length; _i += 1) {\r\n if (slides[_i]) $wrapperEl.append(slides[_i]);\r\n }\r\n\r\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n\r\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\r\n $wrapperEl.append(slidesBuffer[_i2]);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n if (!(params.observer && swiper.support.observer)) {\r\n swiper.update();\r\n }\r\n\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n }\r\n\r\n function removeSlide(slidesIndexes) {\r\n var swiper = this;\r\n var params = swiper.params,\r\n $wrapperEl = swiper.$wrapperEl,\r\n activeIndex = swiper.activeIndex;\r\n var activeIndexBuffer = activeIndex;\r\n\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\r\n }\r\n\r\n var newActiveIndex = activeIndexBuffer;\r\n var indexToRemove;\r\n\r\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\r\n for (var i = 0; i < slidesIndexes.length; i += 1) {\r\n indexToRemove = slidesIndexes[i];\r\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n }\r\n\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n } else {\r\n indexToRemove = slidesIndexes;\r\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n if (!(params.observer && swiper.support.observer)) {\r\n swiper.update();\r\n }\r\n\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n }\r\n\r\n function removeAllSlides() {\r\n var swiper = this;\r\n var slidesIndexes = [];\r\n\r\n for (var i = 0; i < swiper.slides.length; i += 1) {\r\n slidesIndexes.push(i);\r\n }\r\n\r\n swiper.removeSlide(slidesIndexes);\r\n }\r\n\r\n var manipulation = {\r\n appendSlide: appendSlide,\r\n prependSlide: prependSlide,\r\n addSlide: addSlide,\r\n removeSlide: removeSlide,\r\n removeAllSlides: removeAllSlides\r\n };\r\n\r\n function onTouchStart(event) {\r\n var swiper = this;\r\n var document = getDocument();\r\n var window = getWindow();\r\n var data = swiper.touchEventsData;\r\n var params = swiper.params,\r\n touches = swiper.touches;\r\n\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return;\r\n }\r\n\r\n var e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n var $targetEl = $(e.target);\r\n\r\n if (params.touchEventsTarget === 'wrapper') {\r\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\r\n }\r\n\r\n data.isTouchEvent = e.type === 'touchstart';\r\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\r\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\r\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\r\n\r\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\r\n\r\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\r\n $targetEl = $(event.path[0]);\r\n }\r\n\r\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\r\n swiper.allowClick = true;\r\n return;\r\n }\r\n\r\n if (params.swipeHandler) {\r\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\r\n }\r\n\r\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n var startX = touches.currentX;\r\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\r\n\r\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\r\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\r\n\r\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\r\n return;\r\n }\r\n\r\n extend$1(data, {\r\n isTouched: true,\r\n isMoved: false,\r\n allowTouchCallbacks: true,\r\n isScrolling: undefined,\r\n startMoving: undefined\r\n });\r\n touches.startX = startX;\r\n touches.startY = startY;\r\n data.touchStartTime = now();\r\n swiper.allowClick = true;\r\n swiper.updateSize();\r\n swiper.swipeDirection = undefined;\r\n if (params.threshold > 0) data.allowThresholdMove = false;\r\n\r\n if (e.type !== 'touchstart') {\r\n var preventDefault = true;\r\n if ($targetEl.is(data.formElements)) preventDefault = false;\r\n\r\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\r\n document.activeElement.blur();\r\n }\r\n\r\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\r\n\r\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n swiper.emit('touchStart', e);\r\n }\r\n\r\n function onTouchMove(event) {\r\n var document = getDocument();\r\n var swiper = this;\r\n var data = swiper.touchEventsData;\r\n var params = swiper.params,\r\n touches = swiper.touches,\r\n rtl = swiper.rtlTranslate;\r\n var e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n\r\n if (!data.isTouched) {\r\n if (data.startMoving && data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (data.isTouchEvent && e.type !== 'touchmove') return;\r\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\r\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\r\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\r\n\r\n if (e.preventedByNestedSwiper) {\r\n touches.startX = pageX;\r\n touches.startY = pageY;\r\n return;\r\n }\r\n\r\n if (!swiper.allowTouchMove) {\r\n // isMoved = true;\r\n swiper.allowClick = false;\r\n\r\n if (data.isTouched) {\r\n extend$1(touches, {\r\n startX: pageX,\r\n startY: pageY,\r\n currentX: pageX,\r\n currentY: pageY\r\n });\r\n data.touchStartTime = now();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\r\n if (swiper.isVertical()) {\r\n // Vertical\r\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n return;\r\n }\r\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\r\n return;\r\n }\r\n }\r\n\r\n if (data.isTouchEvent && document.activeElement) {\r\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\r\n data.isMoved = true;\r\n swiper.allowClick = false;\r\n return;\r\n }\r\n }\r\n\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchMove', e);\r\n }\r\n\r\n if (e.targetTouches && e.targetTouches.length > 1) return;\r\n touches.currentX = pageX;\r\n touches.currentY = pageY;\r\n var diffX = touches.currentX - touches.startX;\r\n var diffY = touches.currentY - touches.startY;\r\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\r\n\r\n if (typeof data.isScrolling === 'undefined') {\r\n var touchAngle;\r\n\r\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\r\n data.isScrolling = false;\r\n } else {\r\n // eslint-disable-next-line\r\n if (diffX * diffX + diffY * diffY >= 25) {\r\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\r\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\r\n }\r\n }\r\n }\r\n\r\n if (data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n\r\n if (typeof data.startMoving === 'undefined') {\r\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\r\n data.startMoving = true;\r\n }\r\n }\r\n\r\n if (data.isScrolling) {\r\n data.isTouched = false;\r\n return;\r\n }\r\n\r\n if (!data.startMoving) {\r\n return;\r\n }\r\n\r\n swiper.allowClick = false;\r\n\r\n if (!params.cssMode && e.cancelable) {\r\n e.preventDefault();\r\n }\r\n\r\n if (params.touchMoveStopPropagation && !params.nested) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (!data.isMoved) {\r\n if (params.loop) {\r\n swiper.loopFix();\r\n }\r\n\r\n data.startTranslate = swiper.getTranslate();\r\n swiper.setTransition(0);\r\n\r\n if (swiper.animating) {\r\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\r\n }\r\n\r\n data.allowMomentumBounce = false; // Grab Cursor\r\n\r\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n swiper.setGrabCursor(true);\r\n }\r\n\r\n swiper.emit('sliderFirstMove', e);\r\n }\r\n\r\n swiper.emit('sliderMove', e);\r\n data.isMoved = true;\r\n var diff = swiper.isHorizontal() ? diffX : diffY;\r\n touches.diff = diff;\r\n diff *= params.touchRatio;\r\n if (rtl) diff = -diff;\r\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\r\n data.currentTranslate = diff + data.startTranslate;\r\n var disableParentSwiper = true;\r\n var resistanceRatio = params.resistanceRatio;\r\n\r\n if (params.touchReleaseOnEdges) {\r\n resistanceRatio = 0;\r\n }\r\n\r\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\r\n disableParentSwiper = false;\r\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\r\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\r\n disableParentSwiper = false;\r\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\r\n }\r\n\r\n if (disableParentSwiper) {\r\n e.preventedByNestedSwiper = true;\r\n } // Directions locks\r\n\r\n\r\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n\r\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\r\n data.currentTranslate = data.startTranslate;\r\n } // Threshold\r\n\r\n\r\n if (params.threshold > 0) {\r\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\r\n if (!data.allowThresholdMove) {\r\n data.allowThresholdMove = true;\r\n touches.startX = touches.currentX;\r\n touches.startY = touches.currentY;\r\n data.currentTranslate = data.startTranslate;\r\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\r\n return;\r\n }\r\n } else {\r\n data.currentTranslate = data.startTranslate;\r\n return;\r\n }\r\n }\r\n\r\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\r\n\r\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n if (params.freeMode) {\r\n // Velocity\r\n if (data.velocities.length === 0) {\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\r\n time: data.touchStartTime\r\n });\r\n }\r\n\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\r\n time: now()\r\n });\r\n } // Update progress\r\n\r\n\r\n swiper.updateProgress(data.currentTranslate); // Update translate\r\n\r\n swiper.setTranslate(data.currentTranslate);\r\n }\r\n\r\n function onTouchEnd(event) {\r\n var swiper = this;\r\n var data = swiper.touchEventsData;\r\n var params = swiper.params,\r\n touches = swiper.touches,\r\n rtl = swiper.rtlTranslate,\r\n $wrapperEl = swiper.$wrapperEl,\r\n slidesGrid = swiper.slidesGrid,\r\n snapGrid = swiper.snapGrid;\r\n var e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchEnd', e);\r\n }\r\n\r\n data.allowTouchCallbacks = false;\r\n\r\n if (!data.isTouched) {\r\n if (data.isMoved && params.grabCursor) {\r\n swiper.setGrabCursor(false);\r\n }\r\n\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n } // Return Grab Cursor\r\n\r\n\r\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n swiper.setGrabCursor(false);\r\n } // Time diff\r\n\r\n\r\n var touchEndTime = now();\r\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\r\n\r\n if (swiper.allowClick) {\r\n swiper.updateClickedSlide(e);\r\n swiper.emit('tap click', e);\r\n\r\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\r\n swiper.emit('doubleTap doubleClick', e);\r\n }\r\n }\r\n\r\n data.lastClickTime = now();\r\n nextTick(function () {\r\n if (!swiper.destroyed) swiper.allowClick = true;\r\n });\r\n\r\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n }\r\n\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n var currentPos;\r\n\r\n if (params.followFinger) {\r\n currentPos = rtl ? swiper.translate : -swiper.translate;\r\n } else {\r\n currentPos = -data.currentTranslate;\r\n }\r\n\r\n if (params.cssMode) {\r\n return;\r\n }\r\n\r\n if (params.freeMode) {\r\n if (currentPos < -swiper.minTranslate()) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n\r\n if (currentPos > -swiper.maxTranslate()) {\r\n if (swiper.slides.length < snapGrid.length) {\r\n swiper.slideTo(snapGrid.length - 1);\r\n } else {\r\n swiper.slideTo(swiper.slides.length - 1);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (params.freeModeMomentum) {\r\n if (data.velocities.length > 1) {\r\n var lastMoveEvent = data.velocities.pop();\r\n var velocityEvent = data.velocities.pop();\r\n var distance = lastMoveEvent.position - velocityEvent.position;\r\n var time = lastMoveEvent.time - velocityEvent.time;\r\n swiper.velocity = distance / time;\r\n swiper.velocity /= 2;\r\n\r\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\r\n swiper.velocity = 0;\r\n } // this implies that the user stopped moving a finger then released.\r\n // There would be no events with distance zero, so the last event is stale.\r\n\r\n\r\n if (time > 150 || now() - lastMoveEvent.time > 300) {\r\n swiper.velocity = 0;\r\n }\r\n } else {\r\n swiper.velocity = 0;\r\n }\r\n\r\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\r\n data.velocities.length = 0;\r\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\r\n var momentumDistance = swiper.velocity * momentumDuration;\r\n var newPosition = swiper.translate + momentumDistance;\r\n if (rtl) newPosition = -newPosition;\r\n var doBounce = false;\r\n var afterBouncePosition;\r\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\r\n var needsLoopFix;\r\n\r\n if (newPosition < swiper.maxTranslate()) {\r\n if (params.freeModeMomentumBounce) {\r\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\r\n newPosition = swiper.maxTranslate() - bounceAmount;\r\n }\r\n\r\n afterBouncePosition = swiper.maxTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.maxTranslate();\r\n }\r\n\r\n if (params.loop && params.centeredSlides) needsLoopFix = true;\r\n } else if (newPosition > swiper.minTranslate()) {\r\n if (params.freeModeMomentumBounce) {\r\n if (newPosition - swiper.minTranslate() > bounceAmount) {\r\n newPosition = swiper.minTranslate() + bounceAmount;\r\n }\r\n\r\n afterBouncePosition = swiper.minTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.minTranslate();\r\n }\r\n\r\n if (params.loop && params.centeredSlides) needsLoopFix = true;\r\n } else if (params.freeModeSticky) {\r\n var nextSlide;\r\n\r\n for (var j = 0; j < snapGrid.length; j += 1) {\r\n if (snapGrid[j] > -newPosition) {\r\n nextSlide = j;\r\n break;\r\n }\r\n }\r\n\r\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\r\n newPosition = snapGrid[nextSlide];\r\n } else {\r\n newPosition = snapGrid[nextSlide - 1];\r\n }\r\n\r\n newPosition = -newPosition;\r\n }\r\n\r\n if (needsLoopFix) {\r\n swiper.once('transitionEnd', function () {\r\n swiper.loopFix();\r\n });\r\n } // Fix duration\r\n\r\n\r\n if (swiper.velocity !== 0) {\r\n if (rtl) {\r\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\r\n } else {\r\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\r\n }\r\n\r\n if (params.freeModeSticky) {\r\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\r\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\r\n // It's easy to see this when simulating touch with mouse events. To fix this,\r\n // limit single-slide swipes to the default slide duration. This also has the\r\n // nice side effect of matching slide speed if the user stopped moving before\r\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\r\n // For faster swipes, also apply limits (albeit higher ones).\r\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\r\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\r\n\r\n if (moveDistance < currentSlideSize) {\r\n momentumDuration = params.speed;\r\n } else if (moveDistance < 2 * currentSlideSize) {\r\n momentumDuration = params.speed * 1.5;\r\n } else {\r\n momentumDuration = params.speed * 2.5;\r\n }\r\n }\r\n } else if (params.freeModeSticky) {\r\n swiper.slideToClosest();\r\n return;\r\n }\r\n\r\n if (params.freeModeMomentumBounce && doBounce) {\r\n swiper.updateProgress(afterBouncePosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(function () {\r\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\r\n swiper.emit('momentumBounce');\r\n swiper.setTransition(params.speed);\r\n setTimeout(function () {\r\n swiper.setTranslate(afterBouncePosition);\r\n $wrapperEl.transitionEnd(function () {\r\n if (!swiper || swiper.destroyed) return;\r\n swiper.transitionEnd();\r\n });\r\n }, 0);\r\n });\r\n } else if (swiper.velocity) {\r\n swiper.updateProgress(newPosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(function () {\r\n if (!swiper || swiper.destroyed) return;\r\n swiper.transitionEnd();\r\n });\r\n }\r\n } else {\r\n swiper.updateProgress(newPosition);\r\n }\r\n\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n } else if (params.freeModeSticky) {\r\n swiper.slideToClosest();\r\n return;\r\n }\r\n\r\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n return;\r\n } // Find current slide\r\n\r\n\r\n var stopIndex = 0;\r\n var groupSize = swiper.slidesSizesGrid[0];\r\n\r\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\r\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\r\n\r\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\r\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\r\n }\r\n } else if (currentPos >= slidesGrid[i]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\r\n }\r\n } // Find current slide size\r\n\r\n\r\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\r\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\r\n\r\n if (timeDiff > params.longSwipesMs) {\r\n // Long touches\r\n if (!params.longSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n\r\n if (swiper.swipeDirection === 'next') {\r\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\r\n }\r\n\r\n if (swiper.swipeDirection === 'prev') {\r\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\r\n }\r\n } else {\r\n // Short swipes\r\n if (!params.shortSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n\r\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\r\n\r\n if (!isNavButtonTarget) {\r\n if (swiper.swipeDirection === 'next') {\r\n swiper.slideTo(stopIndex + increment);\r\n }\r\n\r\n if (swiper.swipeDirection === 'prev') {\r\n swiper.slideTo(stopIndex);\r\n }\r\n } else if (e.target === swiper.navigation.nextEl) {\r\n swiper.slideTo(stopIndex + increment);\r\n } else {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n }\r\n\r\n function onResize() {\r\n var swiper = this;\r\n var params = swiper.params,\r\n el = swiper.el;\r\n if (el && el.offsetWidth === 0) return; // Breakpoints\r\n\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n } // Save locks\r\n\r\n\r\n var allowSlideNext = swiper.allowSlideNext,\r\n allowSlidePrev = swiper.allowSlidePrev,\r\n snapGrid = swiper.snapGrid; // Disable locks on resize\r\n\r\n swiper.allowSlideNext = true;\r\n swiper.allowSlidePrev = true;\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n swiper.updateSlidesClasses();\r\n\r\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\r\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n\r\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\r\n swiper.autoplay.run();\r\n } // Return locks after resize\r\n\r\n\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n\r\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n }\r\n\r\n function onClick(e) {\r\n var swiper = this;\r\n\r\n if (!swiper.allowClick) {\r\n if (swiper.params.preventClicks) e.preventDefault();\r\n\r\n if (swiper.params.preventClicksPropagation && swiper.animating) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n }\r\n }\r\n }\r\n\r\n function onScroll() {\r\n var swiper = this;\r\n var wrapperEl = swiper.wrapperEl,\r\n rtlTranslate = swiper.rtlTranslate;\r\n swiper.previousTranslate = swiper.translate;\r\n\r\n if (swiper.isHorizontal()) {\r\n if (rtlTranslate) {\r\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\r\n } else {\r\n swiper.translate = -wrapperEl.scrollLeft;\r\n }\r\n } else {\r\n swiper.translate = -wrapperEl.scrollTop;\r\n } // eslint-disable-next-line\r\n\r\n\r\n if (swiper.translate === -0) swiper.translate = 0;\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n var newProgress;\r\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\r\n }\r\n\r\n if (newProgress !== swiper.progress) {\r\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, false);\r\n }\r\n\r\n var dummyEventAttached = false;\r\n\r\n function dummyEventListener() {}\r\n\r\n function attachEvents() {\r\n var swiper = this;\r\n var document = getDocument();\r\n var params = swiper.params,\r\n touchEvents = swiper.touchEvents,\r\n el = swiper.el,\r\n wrapperEl = swiper.wrapperEl,\r\n device = swiper.device,\r\n support = swiper.support;\r\n swiper.onTouchStart = onTouchStart.bind(swiper);\r\n swiper.onTouchMove = onTouchMove.bind(swiper);\r\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\r\n\r\n if (params.cssMode) {\r\n swiper.onScroll = onScroll.bind(swiper);\r\n }\r\n\r\n swiper.onClick = onClick.bind(swiper);\r\n var capture = !!params.nested; // Touch Events\r\n\r\n if (!support.touch && support.pointerEvents) {\r\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\r\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\r\n } else {\r\n if (support.touch) {\r\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\r\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\r\n passive: false,\r\n capture: capture\r\n } : capture);\r\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n\r\n if (touchEvents.cancel) {\r\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\r\n }\r\n\r\n if (!dummyEventAttached) {\r\n document.addEventListener('touchstart', dummyEventListener);\r\n dummyEventAttached = true;\r\n }\r\n }\r\n\r\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\r\n el.addEventListener('mousedown', swiper.onTouchStart, false);\r\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\r\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\r\n }\r\n } // Prevent Links Clicks\r\n\r\n\r\n if (params.preventClicks || params.preventClicksPropagation) {\r\n el.addEventListener('click', swiper.onClick, true);\r\n }\r\n\r\n if (params.cssMode) {\r\n wrapperEl.addEventListener('scroll', swiper.onScroll);\r\n } // Resize handler\r\n\r\n\r\n if (params.updateOnWindowResize) {\r\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\r\n } else {\r\n swiper.on('observerUpdate', onResize, true);\r\n }\r\n }\r\n\r\n function detachEvents() {\r\n var swiper = this;\r\n var document = getDocument();\r\n var params = swiper.params,\r\n touchEvents = swiper.touchEvents,\r\n el = swiper.el,\r\n wrapperEl = swiper.wrapperEl,\r\n device = swiper.device,\r\n support = swiper.support;\r\n var capture = !!params.nested; // Touch Events\r\n\r\n if (!support.touch && support.pointerEvents) {\r\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\r\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\r\n } else {\r\n if (support.touch) {\r\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\r\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n\r\n if (touchEvents.cancel) {\r\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\r\n }\r\n }\r\n\r\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\r\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\r\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\r\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\r\n }\r\n } // Prevent Links Clicks\r\n\r\n\r\n if (params.preventClicks || params.preventClicksPropagation) {\r\n el.removeEventListener('click', swiper.onClick, true);\r\n }\r\n\r\n if (params.cssMode) {\r\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\r\n } // Resize handler\r\n\r\n\r\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\r\n }\r\n\r\n var events = {\r\n attachEvents: attachEvents,\r\n detachEvents: detachEvents\r\n };\r\n\r\n function setBreakpoint() {\r\n var swiper = this;\r\n var activeIndex = swiper.activeIndex,\r\n initialized = swiper.initialized,\r\n _swiper$loopedSlides = swiper.loopedSlides,\r\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\r\n params = swiper.params,\r\n $el = swiper.$el;\r\n var breakpoints = params.breakpoints;\r\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\r\n\r\n var breakpoint = swiper.getBreakpoint(breakpoints);\r\n\r\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\r\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\r\n\r\n if (breakpointOnlyParams) {\r\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\r\n var paramValue = breakpointOnlyParams[param];\r\n if (typeof paramValue === 'undefined') return;\r\n\r\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\r\n breakpointOnlyParams[param] = 'auto';\r\n } else if (param === 'slidesPerView') {\r\n breakpointOnlyParams[param] = parseFloat(paramValue);\r\n } else {\r\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\r\n }\r\n });\r\n }\r\n\r\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\r\n var wasMultiRow = params.slidesPerColumn > 1;\r\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\r\n\r\n if (wasMultiRow && !isMultiRow) {\r\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\r\n swiper.emitContainerClasses();\r\n } else if (!wasMultiRow && isMultiRow) {\r\n $el.addClass(params.containerModifierClass + \"multirow\");\r\n\r\n if (breakpointParams.slidesPerColumnFill === 'column') {\r\n $el.addClass(params.containerModifierClass + \"multirow-column\");\r\n }\r\n\r\n swiper.emitContainerClasses();\r\n }\r\n\r\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\r\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\r\n\r\n if (directionChanged && initialized) {\r\n swiper.changeDirection();\r\n }\r\n\r\n extend$1(swiper.params, breakpointParams);\r\n extend$1(swiper, {\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev\r\n });\r\n swiper.currentBreakpoint = breakpoint;\r\n swiper.emit('_beforeBreakpoint', breakpointParams);\r\n\r\n if (needsReLoop && initialized) {\r\n swiper.loopDestroy();\r\n swiper.loopCreate();\r\n swiper.updateSlides();\r\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\r\n }\r\n\r\n swiper.emit('breakpoint', breakpointParams);\r\n }\r\n }\r\n\r\n function getBreakpoints(breakpoints) {\r\n var window = getWindow(); // Get breakpoint for window width\r\n\r\n if (!breakpoints) return undefined;\r\n var breakpoint = false;\r\n var points = Object.keys(breakpoints).map(function (point) {\r\n if (typeof point === 'string' && point.indexOf('@') === 0) {\r\n var minRatio = parseFloat(point.substr(1));\r\n var value = window.innerHeight * minRatio;\r\n return {\r\n value: value,\r\n point: point\r\n };\r\n }\r\n\r\n return {\r\n value: point,\r\n point: point\r\n };\r\n });\r\n points.sort(function (a, b) {\r\n return parseInt(a.value, 10) - parseInt(b.value, 10);\r\n });\r\n\r\n for (var i = 0; i < points.length; i += 1) {\r\n var _points$i = points[i],\r\n point = _points$i.point,\r\n value = _points$i.value;\r\n\r\n if (value <= window.innerWidth) {\r\n breakpoint = point;\r\n }\r\n }\r\n\r\n return breakpoint || 'max';\r\n }\r\n\r\n var breakpoints = {\r\n setBreakpoint: setBreakpoint,\r\n getBreakpoint: getBreakpoints\r\n };\r\n\r\n function addClasses() {\r\n var swiper = this;\r\n var classNames = swiper.classNames,\r\n params = swiper.params,\r\n rtl = swiper.rtl,\r\n $el = swiper.$el,\r\n device = swiper.device;\r\n var suffixes = [];\r\n suffixes.push('initialized');\r\n suffixes.push(params.direction);\r\n\r\n if (params.freeMode) {\r\n suffixes.push('free-mode');\r\n }\r\n\r\n if (params.autoHeight) {\r\n suffixes.push('autoheight');\r\n }\r\n\r\n if (rtl) {\r\n suffixes.push('rtl');\r\n }\r\n\r\n if (params.slidesPerColumn > 1) {\r\n suffixes.push('multirow');\r\n\r\n if (params.slidesPerColumnFill === 'column') {\r\n suffixes.push('multirow-column');\r\n }\r\n }\r\n\r\n if (device.android) {\r\n suffixes.push('android');\r\n }\r\n\r\n if (device.ios) {\r\n suffixes.push('ios');\r\n }\r\n\r\n if (params.cssMode) {\r\n suffixes.push('css-mode');\r\n }\r\n\r\n suffixes.forEach(function (suffix) {\r\n classNames.push(params.containerModifierClass + suffix);\r\n });\r\n $el.addClass(classNames.join(' '));\r\n swiper.emitContainerClasses();\r\n }\r\n\r\n function removeClasses() {\r\n var swiper = this;\r\n var $el = swiper.$el,\r\n classNames = swiper.classNames;\r\n $el.removeClass(classNames.join(' '));\r\n swiper.emitContainerClasses();\r\n }\r\n\r\n var classes = {\r\n addClasses: addClasses,\r\n removeClasses: removeClasses\r\n };\r\n\r\n function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\r\n var window = getWindow();\r\n var image;\r\n\r\n function onReady() {\r\n if (callback) callback();\r\n }\r\n\r\n var isPicture = $(imageEl).parent('picture')[0];\r\n\r\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\r\n if (src) {\r\n image = new window.Image();\r\n image.onload = onReady;\r\n image.onerror = onReady;\r\n\r\n if (sizes) {\r\n image.sizes = sizes;\r\n }\r\n\r\n if (srcset) {\r\n image.srcset = srcset;\r\n }\r\n\r\n if (src) {\r\n image.src = src;\r\n }\r\n } else {\r\n onReady();\r\n }\r\n } else {\r\n // image already loaded...\r\n onReady();\r\n }\r\n }\r\n\r\n function preloadImages() {\r\n var swiper = this;\r\n swiper.imagesToLoad = swiper.$el.find('img');\r\n\r\n function onReady() {\r\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\r\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\r\n\r\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\r\n if (swiper.params.updateOnImagesReady) swiper.update();\r\n swiper.emit('imagesReady');\r\n }\r\n }\r\n\r\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\r\n var imageEl = swiper.imagesToLoad[i];\r\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\r\n }\r\n }\r\n\r\n var images = {\r\n loadImage: loadImage,\r\n preloadImages: preloadImages\r\n };\r\n\r\n function checkOverflow() {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var wasLocked = swiper.isLocked;\r\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\r\n\r\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\r\n swiper.isLocked = lastSlidePosition <= swiper.size;\r\n } else {\r\n swiper.isLocked = swiper.snapGrid.length === 1;\r\n }\r\n\r\n swiper.allowSlideNext = !swiper.isLocked;\r\n swiper.allowSlidePrev = !swiper.isLocked; // events\r\n\r\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\r\n\r\n if (wasLocked && wasLocked !== swiper.isLocked) {\r\n swiper.isEnd = false;\r\n if (swiper.navigation) swiper.navigation.update();\r\n }\r\n }\r\n\r\n var checkOverflow$1 = {\r\n checkOverflow: checkOverflow\r\n };\r\n\r\n var defaults = {\r\n init: true,\r\n direction: 'horizontal',\r\n touchEventsTarget: 'container',\r\n initialSlide: 0,\r\n speed: 300,\r\n cssMode: false,\r\n updateOnWindowResize: true,\r\n nested: false,\r\n // Overrides\r\n width: null,\r\n height: null,\r\n //\r\n preventInteractionOnTransition: false,\r\n // ssr\r\n userAgent: null,\r\n url: null,\r\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\r\n edgeSwipeDetection: false,\r\n edgeSwipeThreshold: 20,\r\n // Free mode\r\n freeMode: false,\r\n freeModeMomentum: true,\r\n freeModeMomentumRatio: 1,\r\n freeModeMomentumBounce: true,\r\n freeModeMomentumBounceRatio: 1,\r\n freeModeMomentumVelocityRatio: 1,\r\n freeModeSticky: false,\r\n freeModeMinimumVelocity: 0.02,\r\n // Autoheight\r\n autoHeight: false,\r\n // Set wrapper width\r\n setWrapperSize: false,\r\n // Virtual Translate\r\n virtualTranslate: false,\r\n // Effects\r\n effect: 'slide',\r\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\r\n // Breakpoints\r\n breakpoints: undefined,\r\n // Slides grid\r\n spaceBetween: 0,\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerColumnFill: 'column',\r\n slidesPerGroup: 1,\r\n slidesPerGroupSkip: 0,\r\n centeredSlides: false,\r\n centeredSlidesBounds: false,\r\n slidesOffsetBefore: 0,\r\n // in px\r\n slidesOffsetAfter: 0,\r\n // in px\r\n normalizeSlideIndex: true,\r\n centerInsufficientSlides: false,\r\n // Disable swiper and hide navigation when container not overflow\r\n watchOverflow: false,\r\n // Round length\r\n roundLengths: false,\r\n // Touches\r\n touchRatio: 1,\r\n touchAngle: 45,\r\n simulateTouch: true,\r\n shortSwipes: true,\r\n longSwipes: true,\r\n longSwipesRatio: 0.5,\r\n longSwipesMs: 300,\r\n followFinger: true,\r\n allowTouchMove: true,\r\n threshold: 0,\r\n touchMoveStopPropagation: false,\r\n touchStartPreventDefault: true,\r\n touchStartForcePreventDefault: false,\r\n touchReleaseOnEdges: false,\r\n // Unique Navigation Elements\r\n uniqueNavElements: true,\r\n // Resistance\r\n resistance: true,\r\n resistanceRatio: 0.85,\r\n // Progress\r\n watchSlidesProgress: false,\r\n watchSlidesVisibility: false,\r\n // Cursor\r\n grabCursor: false,\r\n // Clicks\r\n preventClicks: true,\r\n preventClicksPropagation: true,\r\n slideToClickedSlide: false,\r\n // Images\r\n preloadImages: true,\r\n updateOnImagesReady: true,\r\n // loop\r\n loop: false,\r\n loopAdditionalSlides: 0,\r\n loopedSlides: null,\r\n loopFillGroupWithBlank: false,\r\n loopPreventsSlide: true,\r\n // Swiping/no swiping\r\n allowSlidePrev: true,\r\n allowSlideNext: true,\r\n swipeHandler: null,\r\n // '.swipe-handler',\r\n noSwiping: true,\r\n noSwipingClass: 'swiper-no-swiping',\r\n noSwipingSelector: null,\r\n // Passive Listeners\r\n passiveListeners: true,\r\n // NS\r\n containerModifierClass: 'swiper-container-',\r\n // NEW\r\n slideClass: 'swiper-slide',\r\n slideBlankClass: 'swiper-slide-invisible-blank',\r\n slideActiveClass: 'swiper-slide-active',\r\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\r\n slideVisibleClass: 'swiper-slide-visible',\r\n slideDuplicateClass: 'swiper-slide-duplicate',\r\n slideNextClass: 'swiper-slide-next',\r\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\r\n slidePrevClass: 'swiper-slide-prev',\r\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\r\n wrapperClass: 'swiper-wrapper',\r\n // Callbacks\r\n runCallbacksOnInit: true,\r\n // Internals\r\n _emitClasses: false\r\n };\r\n\r\n var prototypes = {\r\n modular: modular,\r\n eventsEmitter: eventsEmitter,\r\n update: update,\r\n translate: translate,\r\n transition: transition$1,\r\n slide: slide,\r\n loop: loop,\r\n grabCursor: grabCursor,\r\n manipulation: manipulation,\r\n events: events,\r\n breakpoints: breakpoints,\r\n checkOverflow: checkOverflow$1,\r\n classes: classes,\r\n images: images\r\n };\r\n var extendedDefaults = {};\r\n\r\n var Swiper = /*#__PURE__*/function () {\r\n function Swiper() {\r\n var el;\r\n var params;\r\n\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key];\r\n }\r\n\r\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\r\n params = args[0];\r\n } else {\r\n el = args[0];\r\n params = args[1];\r\n }\r\n\r\n if (!params) params = {};\r\n params = extend$1({}, params);\r\n if (el && !params.el) params.el = el; // Swiper Instance\r\n\r\n var swiper = this;\r\n swiper.support = getSupport();\r\n swiper.device = getDevice({\r\n userAgent: params.userAgent\r\n });\r\n swiper.browser = getBrowser();\r\n swiper.eventsListeners = {};\r\n swiper.eventsAnyListeners = [];\r\n\r\n if (typeof swiper.modules === 'undefined') {\r\n swiper.modules = {};\r\n }\r\n\r\n Object.keys(swiper.modules).forEach(function (moduleName) {\r\n var module = swiper.modules[moduleName];\r\n\r\n if (module.params) {\r\n var moduleParamName = Object.keys(module.params)[0];\r\n var moduleParams = module.params[moduleParamName];\r\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\r\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\r\n\r\n if (params[moduleParamName] === true) {\r\n params[moduleParamName] = {\r\n enabled: true\r\n };\r\n }\r\n\r\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\r\n params[moduleParamName].enabled = true;\r\n }\r\n\r\n if (!params[moduleParamName]) params[moduleParamName] = {\r\n enabled: false\r\n };\r\n }\r\n }); // Extend defaults with modules params\r\n\r\n var swiperParams = extend$1({}, defaults);\r\n swiper.useParams(swiperParams); // Extend defaults with passed params\r\n\r\n swiper.params = extend$1({}, swiperParams, extendedDefaults, params);\r\n swiper.originalParams = extend$1({}, swiper.params);\r\n swiper.passedParams = extend$1({}, params); // add event listeners\r\n\r\n if (swiper.params && swiper.params.on) {\r\n Object.keys(swiper.params.on).forEach(function (eventName) {\r\n swiper.on(eventName, swiper.params.on[eventName]);\r\n });\r\n }\r\n\r\n if (swiper.params && swiper.params.onAny) {\r\n swiper.onAny(swiper.params.onAny);\r\n } // Save Dom lib\r\n\r\n\r\n swiper.$ = $; // Find el\r\n\r\n var $el = $(swiper.params.el);\r\n el = $el[0];\r\n\r\n if (!el) {\r\n return undefined;\r\n }\r\n\r\n if ($el.length > 1) {\r\n var swipers = [];\r\n $el.each(function (containerEl) {\r\n var newParams = extend$1({}, params, {\r\n el: containerEl\r\n });\r\n swipers.push(new Swiper(newParams));\r\n });\r\n return swipers;\r\n }\r\n\r\n el.swiper = swiper; // Find Wrapper\r\n\r\n var $wrapperEl;\r\n\r\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\r\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\r\n\r\n $wrapperEl.children = function (options) {\r\n return $el.children(options);\r\n };\r\n } else {\r\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\r\n } // Extend Swiper\r\n\r\n\r\n extend$1(swiper, {\r\n $el: $el,\r\n el: el,\r\n $wrapperEl: $wrapperEl,\r\n wrapperEl: $wrapperEl[0],\r\n // Classes\r\n classNames: [],\r\n // Slides\r\n slides: $(),\r\n slidesGrid: [],\r\n snapGrid: [],\r\n slidesSizesGrid: [],\r\n // isDirection\r\n isHorizontal: function isHorizontal() {\r\n return swiper.params.direction === 'horizontal';\r\n },\r\n isVertical: function isVertical() {\r\n return swiper.params.direction === 'vertical';\r\n },\r\n // RTL\r\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\r\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\r\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\r\n // Indexes\r\n activeIndex: 0,\r\n realIndex: 0,\r\n //\r\n isBeginning: true,\r\n isEnd: false,\r\n // Props\r\n translate: 0,\r\n previousTranslate: 0,\r\n progress: 0,\r\n velocity: 0,\r\n animating: false,\r\n // Locks\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev,\r\n // Touch Events\r\n touchEvents: function touchEvents() {\r\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\r\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\r\n\r\n if (swiper.support.pointerEvents) {\r\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\r\n }\r\n\r\n swiper.touchEventsTouch = {\r\n start: touch[0],\r\n move: touch[1],\r\n end: touch[2],\r\n cancel: touch[3]\r\n };\r\n swiper.touchEventsDesktop = {\r\n start: desktop[0],\r\n move: desktop[1],\r\n end: desktop[2]\r\n };\r\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\r\n }(),\r\n touchEventsData: {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n allowTouchCallbacks: undefined,\r\n touchStartTime: undefined,\r\n isScrolling: undefined,\r\n currentTranslate: undefined,\r\n startTranslate: undefined,\r\n allowThresholdMove: undefined,\r\n // Form elements to match\r\n formElements: 'input, select, option, textarea, button, video, label',\r\n // Last click time\r\n lastClickTime: now(),\r\n clickTimeout: undefined,\r\n // Velocities\r\n velocities: [],\r\n allowMomentumBounce: undefined,\r\n isTouchEvent: undefined,\r\n startMoving: undefined\r\n },\r\n // Clicks\r\n allowClick: true,\r\n // Touches\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n touches: {\r\n startX: 0,\r\n startY: 0,\r\n currentX: 0,\r\n currentY: 0,\r\n diff: 0\r\n },\r\n // Images\r\n imagesToLoad: [],\r\n imagesLoaded: 0\r\n }); // Install Modules\r\n\r\n swiper.useModules();\r\n swiper.emit('_swiper'); // Init\r\n\r\n if (swiper.params.init) {\r\n swiper.init();\r\n } // Return app instance\r\n\r\n\r\n return swiper;\r\n }\r\n\r\n var _proto = Swiper.prototype;\r\n\r\n _proto.emitContainerClasses = function emitContainerClasses() {\r\n var swiper = this;\r\n if (!swiper.params._emitClasses || !swiper.el) return;\r\n var classes = swiper.el.className.split(' ').filter(function (className) {\r\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\r\n });\r\n swiper.emit('_containerClasses', classes.join(' '));\r\n };\r\n\r\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\r\n var swiper = this;\r\n return slideEl.className.split(' ').filter(function (className) {\r\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\r\n }).join(' ');\r\n };\r\n\r\n _proto.emitSlidesClasses = function emitSlidesClasses() {\r\n var swiper = this;\r\n if (!swiper.params._emitClasses || !swiper.el) return;\r\n swiper.slides.each(function (slideEl) {\r\n var classNames = swiper.getSlideClasses(slideEl);\r\n swiper.emit('_slideClass', slideEl, classNames);\r\n });\r\n };\r\n\r\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\r\n var swiper = this;\r\n var params = swiper.params,\r\n slides = swiper.slides,\r\n slidesGrid = swiper.slidesGrid,\r\n swiperSize = swiper.size,\r\n activeIndex = swiper.activeIndex;\r\n var spv = 1;\r\n\r\n if (params.centeredSlides) {\r\n var slideSize = slides[activeIndex].swiperSlideSize;\r\n var breakLoop;\r\n\r\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\r\n if (slides[i] && !breakLoop) {\r\n slideSize += slides[i].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) breakLoop = true;\r\n }\r\n }\r\n\r\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\r\n if (slides[_i] && !breakLoop) {\r\n slideSize += slides[_i].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) breakLoop = true;\r\n }\r\n }\r\n } else {\r\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\r\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\r\n spv += 1;\r\n }\r\n }\r\n }\r\n\r\n return spv;\r\n };\r\n\r\n _proto.update = function update() {\r\n var swiper = this;\r\n if (!swiper || swiper.destroyed) return;\r\n var snapGrid = swiper.snapGrid,\r\n params = swiper.params; // Breakpoints\r\n\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n\r\n function setTranslate() {\r\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\r\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\r\n swiper.setTranslate(newTranslate);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n var translated;\r\n\r\n if (swiper.params.freeMode) {\r\n setTranslate();\r\n\r\n if (swiper.params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n } else {\r\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\r\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n\r\n if (!translated) {\r\n setTranslate();\r\n }\r\n }\r\n\r\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n\r\n swiper.emit('update');\r\n };\r\n\r\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\r\n if (needUpdate === void 0) {\r\n needUpdate = true;\r\n }\r\n\r\n var swiper = this;\r\n var currentDirection = swiper.params.direction;\r\n\r\n if (!newDirection) {\r\n // eslint-disable-next-line\r\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\r\n }\r\n\r\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\r\n return swiper;\r\n }\r\n\r\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\r\n swiper.emitContainerClasses();\r\n swiper.params.direction = newDirection;\r\n swiper.slides.each(function (slideEl) {\r\n if (newDirection === 'vertical') {\r\n slideEl.style.width = '';\r\n } else {\r\n slideEl.style.height = '';\r\n }\r\n });\r\n swiper.emit('changeDirection');\r\n if (needUpdate) swiper.update();\r\n return swiper;\r\n };\r\n\r\n _proto.init = function init() {\r\n var swiper = this;\r\n if (swiper.initialized) return;\r\n swiper.emit('beforeInit'); // Set breakpoint\r\n\r\n if (swiper.params.breakpoints) {\r\n swiper.setBreakpoint();\r\n } // Add Classes\r\n\r\n\r\n swiper.addClasses(); // Create loop\r\n\r\n if (swiper.params.loop) {\r\n swiper.loopCreate();\r\n } // Update size\r\n\r\n\r\n swiper.updateSize(); // Update slides\r\n\r\n swiper.updateSlides();\r\n\r\n if (swiper.params.watchOverflow) {\r\n swiper.checkOverflow();\r\n } // Set Grab Cursor\r\n\r\n\r\n if (swiper.params.grabCursor) {\r\n swiper.setGrabCursor();\r\n }\r\n\r\n if (swiper.params.preloadImages) {\r\n swiper.preloadImages();\r\n } // Slide To Initial Slide\r\n\r\n\r\n if (swiper.params.loop) {\r\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\r\n } else {\r\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\r\n } // Attach events\r\n\r\n\r\n swiper.attachEvents(); // Init Flag\r\n\r\n swiper.initialized = true; // Emit\r\n\r\n swiper.emit('init');\r\n swiper.emit('afterInit');\r\n };\r\n\r\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\r\n if (deleteInstance === void 0) {\r\n deleteInstance = true;\r\n }\r\n\r\n if (cleanStyles === void 0) {\r\n cleanStyles = true;\r\n }\r\n\r\n var swiper = this;\r\n var params = swiper.params,\r\n $el = swiper.$el,\r\n $wrapperEl = swiper.$wrapperEl,\r\n slides = swiper.slides;\r\n\r\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\r\n return null;\r\n }\r\n\r\n swiper.emit('beforeDestroy'); // Init Flag\r\n\r\n swiper.initialized = false; // Detach events\r\n\r\n swiper.detachEvents(); // Destroy loop\r\n\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n } // Cleanup styles\r\n\r\n\r\n if (cleanStyles) {\r\n swiper.removeClasses();\r\n $el.removeAttr('style');\r\n $wrapperEl.removeAttr('style');\r\n\r\n if (slides && slides.length) {\r\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\r\n }\r\n }\r\n\r\n swiper.emit('destroy'); // Detach emitter events\r\n\r\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\r\n swiper.off(eventName);\r\n });\r\n\r\n if (deleteInstance !== false) {\r\n swiper.$el[0].swiper = null;\r\n deleteProps(swiper);\r\n }\r\n\r\n swiper.destroyed = true;\r\n return null;\r\n };\r\n\r\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\r\n extend$1(extendedDefaults, newDefaults);\r\n };\r\n\r\n Swiper.installModule = function installModule(module) {\r\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\r\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\r\n Swiper.prototype.modules[name] = module;\r\n };\r\n\r\n Swiper.use = function use(module) {\r\n if (Array.isArray(module)) {\r\n module.forEach(function (m) {\r\n return Swiper.installModule(m);\r\n });\r\n return Swiper;\r\n }\r\n\r\n Swiper.installModule(module);\r\n return Swiper;\r\n };\r\n\r\n _createClass(Swiper, null, [{\r\n key: \"extendedDefaults\",\r\n get: function get() {\r\n return extendedDefaults;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function get() {\r\n return defaults;\r\n }\r\n }]);\r\n\r\n return Swiper;\r\n }();\r\n\r\n Object.keys(prototypes).forEach(function (prototypeGroup) {\r\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\r\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\r\n });\r\n });\r\n Swiper.use([Resize, Observer$1]);\r\n\r\n var Virtual = {\r\n update: function update(force) {\r\n var swiper = this;\r\n var _swiper$params = swiper.params,\r\n slidesPerView = _swiper$params.slidesPerView,\r\n slidesPerGroup = _swiper$params.slidesPerGroup,\r\n centeredSlides = _swiper$params.centeredSlides;\r\n var _swiper$params$virtua = swiper.params.virtual,\r\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\r\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\r\n var _swiper$virtual = swiper.virtual,\r\n previousFrom = _swiper$virtual.from,\r\n previousTo = _swiper$virtual.to,\r\n slides = _swiper$virtual.slides,\r\n previousSlidesGrid = _swiper$virtual.slidesGrid,\r\n renderSlide = _swiper$virtual.renderSlide,\r\n previousOffset = _swiper$virtual.offset;\r\n swiper.updateActiveIndex();\r\n var activeIndex = swiper.activeIndex || 0;\r\n var offsetProp;\r\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\r\n var slidesAfter;\r\n var slidesBefore;\r\n\r\n if (centeredSlides) {\r\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\r\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\r\n } else {\r\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\r\n slidesBefore = slidesPerGroup + addSlidesBefore;\r\n }\r\n\r\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\r\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\r\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\r\n extend$1(swiper.virtual, {\r\n from: from,\r\n to: to,\r\n offset: offset,\r\n slidesGrid: swiper.slidesGrid\r\n });\r\n\r\n function onRendered() {\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n\r\n if (swiper.lazy && swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n }\r\n\r\n if (previousFrom === from && previousTo === to && !force) {\r\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\r\n swiper.slides.css(offsetProp, offset + \"px\");\r\n }\r\n\r\n swiper.updateProgress();\r\n return;\r\n }\r\n\r\n if (swiper.params.virtual.renderExternal) {\r\n swiper.params.virtual.renderExternal.call(swiper, {\r\n offset: offset,\r\n from: from,\r\n to: to,\r\n slides: function getSlides() {\r\n var slidesToRender = [];\r\n\r\n for (var i = from; i <= to; i += 1) {\r\n slidesToRender.push(slides[i]);\r\n }\r\n\r\n return slidesToRender;\r\n }()\r\n });\r\n\r\n if (swiper.params.virtual.renderExternalUpdate) {\r\n onRendered();\r\n }\r\n\r\n return;\r\n }\r\n\r\n var prependIndexes = [];\r\n var appendIndexes = [];\r\n\r\n if (force) {\r\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\r\n } else {\r\n for (var i = previousFrom; i <= previousTo; i += 1) {\r\n if (i < from || i > to) {\r\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\r\n }\r\n }\r\n }\r\n\r\n for (var _i = 0; _i < slides.length; _i += 1) {\r\n if (_i >= from && _i <= to) {\r\n if (typeof previousTo === 'undefined' || force) {\r\n appendIndexes.push(_i);\r\n } else {\r\n if (_i > previousTo) appendIndexes.push(_i);\r\n if (_i < previousFrom) prependIndexes.push(_i);\r\n }\r\n }\r\n }\r\n\r\n appendIndexes.forEach(function (index) {\r\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\r\n });\r\n prependIndexes.sort(function (a, b) {\r\n return b - a;\r\n }).forEach(function (index) {\r\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\r\n });\r\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + \"px\");\r\n onRendered();\r\n },\r\n renderSlide: function renderSlide(slide, index) {\r\n var swiper = this;\r\n var params = swiper.params.virtual;\r\n\r\n if (params.cache && swiper.virtual.cache[index]) {\r\n return swiper.virtual.cache[index];\r\n }\r\n\r\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\" + slide + \"
\");\r\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\r\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\r\n return $slideEl;\r\n },\r\n appendSlide: function appendSlide(slides) {\r\n var swiper = this;\r\n\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (var i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\r\n }\r\n } else {\r\n swiper.virtual.slides.push(slides);\r\n }\r\n\r\n swiper.virtual.update(true);\r\n },\r\n prependSlide: function prependSlide(slides) {\r\n var swiper = this;\r\n var activeIndex = swiper.activeIndex;\r\n var newActiveIndex = activeIndex + 1;\r\n var numberOfNewSlides = 1;\r\n\r\n if (Array.isArray(slides)) {\r\n for (var i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\r\n }\r\n\r\n newActiveIndex = activeIndex + slides.length;\r\n numberOfNewSlides = slides.length;\r\n } else {\r\n swiper.virtual.slides.unshift(slides);\r\n }\r\n\r\n if (swiper.params.virtual.cache) {\r\n var cache = swiper.virtual.cache;\r\n var newCache = {};\r\n Object.keys(cache).forEach(function (cachedIndex) {\r\n var $cachedEl = cache[cachedIndex];\r\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\r\n\r\n if (cachedElIndex) {\r\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\r\n }\r\n\r\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\r\n });\r\n swiper.virtual.cache = newCache;\r\n }\r\n\r\n swiper.virtual.update(true);\r\n swiper.slideTo(newActiveIndex, 0);\r\n },\r\n removeSlide: function removeSlide(slidesIndexes) {\r\n var swiper = this;\r\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\r\n var activeIndex = swiper.activeIndex;\r\n\r\n if (Array.isArray(slidesIndexes)) {\r\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\r\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\r\n\r\n if (swiper.params.virtual.cache) {\r\n delete swiper.virtual.cache[slidesIndexes[i]];\r\n }\r\n\r\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\r\n activeIndex = Math.max(activeIndex, 0);\r\n }\r\n } else {\r\n swiper.virtual.slides.splice(slidesIndexes, 1);\r\n\r\n if (swiper.params.virtual.cache) {\r\n delete swiper.virtual.cache[slidesIndexes];\r\n }\r\n\r\n if (slidesIndexes < activeIndex) activeIndex -= 1;\r\n activeIndex = Math.max(activeIndex, 0);\r\n }\r\n\r\n swiper.virtual.update(true);\r\n swiper.slideTo(activeIndex, 0);\r\n },\r\n removeAllSlides: function removeAllSlides() {\r\n var swiper = this;\r\n swiper.virtual.slides = [];\r\n\r\n if (swiper.params.virtual.cache) {\r\n swiper.virtual.cache = {};\r\n }\r\n\r\n swiper.virtual.update(true);\r\n swiper.slideTo(0, 0);\r\n }\r\n };\r\n var Virtual$1 = {\r\n name: 'virtual',\r\n params: {\r\n virtual: {\r\n enabled: false,\r\n slides: [],\r\n cache: true,\r\n renderSlide: null,\r\n renderExternal: null,\r\n renderExternalUpdate: true,\r\n addSlidesBefore: 0,\r\n addSlidesAfter: 0\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n virtual: _extends(_extends({}, Virtual), {}, {\r\n slides: swiper.params.virtual.slides,\r\n cache: {}\r\n })\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n if (!swiper.params.virtual.enabled) return;\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\r\n var overwriteParams = {\r\n watchSlidesProgress: true\r\n };\r\n extend$1(swiper.params, overwriteParams);\r\n extend$1(swiper.originalParams, overwriteParams);\r\n\r\n if (!swiper.params.initialSlide) {\r\n swiper.virtual.update();\r\n }\r\n },\r\n setTranslate: function setTranslate(swiper) {\r\n if (!swiper.params.virtual.enabled) return;\r\n swiper.virtual.update();\r\n }\r\n }\r\n };\r\n\r\n var Keyboard = {\r\n handle: function handle(event) {\r\n var swiper = this;\r\n var window = getWindow();\r\n var document = getDocument();\r\n var rtl = swiper.rtlTranslate;\r\n var e = event;\r\n if (e.originalEvent) e = e.originalEvent; // jquery fix\r\n\r\n var kc = e.keyCode || e.charCode;\r\n var pageUpDown = swiper.params.keyboard.pageUpDown;\r\n var isPageUp = pageUpDown && kc === 33;\r\n var isPageDown = pageUpDown && kc === 34;\r\n var isArrowLeft = kc === 37;\r\n var isArrowRight = kc === 39;\r\n var isArrowUp = kc === 38;\r\n var isArrowDown = kc === 40; // Directions locks\r\n\r\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\r\n return false;\r\n }\r\n\r\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\r\n return false;\r\n }\r\n\r\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\r\n return undefined;\r\n }\r\n\r\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\r\n return undefined;\r\n }\r\n\r\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\r\n var inView = false; // Check that swiper should be inside of visible area of window\r\n\r\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\r\n return undefined;\r\n }\r\n\r\n var windowWidth = window.innerWidth;\r\n var windowHeight = window.innerHeight;\r\n var swiperOffset = swiper.$el.offset();\r\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\r\n\r\n for (var i = 0; i < swiperCoord.length; i += 1) {\r\n var point = swiperCoord[i];\r\n\r\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\r\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\r\n\r\n inView = true;\r\n }\r\n }\r\n\r\n if (!inView) return undefined;\r\n }\r\n\r\n if (swiper.isHorizontal()) {\r\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\r\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\r\n }\r\n\r\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\r\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\r\n } else {\r\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\r\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\r\n }\r\n\r\n if (isPageDown || isArrowDown) swiper.slideNext();\r\n if (isPageUp || isArrowUp) swiper.slidePrev();\r\n }\r\n\r\n swiper.emit('keyPress', kc);\r\n return undefined;\r\n },\r\n enable: function enable() {\r\n var swiper = this;\r\n var document = getDocument();\r\n if (swiper.keyboard.enabled) return;\r\n $(document).on('keydown', swiper.keyboard.handle);\r\n swiper.keyboard.enabled = true;\r\n },\r\n disable: function disable() {\r\n var swiper = this;\r\n var document = getDocument();\r\n if (!swiper.keyboard.enabled) return;\r\n $(document).off('keydown', swiper.keyboard.handle);\r\n swiper.keyboard.enabled = false;\r\n }\r\n };\r\n var Keyboard$1 = {\r\n name: 'keyboard',\r\n params: {\r\n keyboard: {\r\n enabled: false,\r\n onlyInViewport: true,\r\n pageUpDown: true\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n keyboard: _extends({\r\n enabled: false\r\n }, Keyboard)\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n if (swiper.params.keyboard.enabled) {\r\n swiper.keyboard.enable();\r\n }\r\n },\r\n destroy: function destroy(swiper) {\r\n if (swiper.keyboard.enabled) {\r\n swiper.keyboard.disable();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function isEventSupported() {\r\n var document = getDocument();\r\n var eventName = 'onwheel';\r\n var isSupported = (eventName in document);\r\n\r\n if (!isSupported) {\r\n var element = document.createElement('div');\r\n element.setAttribute(eventName, 'return;');\r\n isSupported = typeof element[eventName] === 'function';\r\n }\r\n\r\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\r\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\r\n document.implementation.hasFeature('', '') !== true) {\r\n // This is the only way to test support for the `wheel` event in IE9+.\r\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\r\n }\r\n\r\n return isSupported;\r\n }\r\n\r\n var Mousewheel = {\r\n lastScrollTime: now(),\r\n lastEventBeforeSnap: undefined,\r\n recentWheelEvents: [],\r\n event: function event() {\r\n var window = getWindow();\r\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\r\n return isEventSupported() ? 'wheel' : 'mousewheel';\r\n },\r\n normalize: function normalize(e) {\r\n // Reasonable defaults\r\n var PIXEL_STEP = 10;\r\n var LINE_HEIGHT = 40;\r\n var PAGE_HEIGHT = 800;\r\n var sX = 0;\r\n var sY = 0; // spinX, spinY\r\n\r\n var pX = 0;\r\n var pY = 0; // pixelX, pixelY\r\n // Legacy\r\n\r\n if ('detail' in e) {\r\n sY = e.detail;\r\n }\r\n\r\n if ('wheelDelta' in e) {\r\n sY = -e.wheelDelta / 120;\r\n }\r\n\r\n if ('wheelDeltaY' in e) {\r\n sY = -e.wheelDeltaY / 120;\r\n }\r\n\r\n if ('wheelDeltaX' in e) {\r\n sX = -e.wheelDeltaX / 120;\r\n } // side scrolling on FF with DOMMouseScroll\r\n\r\n\r\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\r\n sX = sY;\r\n sY = 0;\r\n }\r\n\r\n pX = sX * PIXEL_STEP;\r\n pY = sY * PIXEL_STEP;\r\n\r\n if ('deltaY' in e) {\r\n pY = e.deltaY;\r\n }\r\n\r\n if ('deltaX' in e) {\r\n pX = e.deltaX;\r\n }\r\n\r\n if (e.shiftKey && !pX) {\r\n // if user scrolls with shift he wants horizontal scroll\r\n pX = pY;\r\n pY = 0;\r\n }\r\n\r\n if ((pX || pY) && e.deltaMode) {\r\n if (e.deltaMode === 1) {\r\n // delta in LINE units\r\n pX *= LINE_HEIGHT;\r\n pY *= LINE_HEIGHT;\r\n } else {\r\n // delta in PAGE units\r\n pX *= PAGE_HEIGHT;\r\n pY *= PAGE_HEIGHT;\r\n }\r\n } // Fall-back if spin cannot be determined\r\n\r\n\r\n if (pX && !sX) {\r\n sX = pX < 1 ? -1 : 1;\r\n }\r\n\r\n if (pY && !sY) {\r\n sY = pY < 1 ? -1 : 1;\r\n }\r\n\r\n return {\r\n spinX: sX,\r\n spinY: sY,\r\n pixelX: pX,\r\n pixelY: pY\r\n };\r\n },\r\n handleMouseEnter: function handleMouseEnter() {\r\n var swiper = this;\r\n swiper.mouseEntered = true;\r\n },\r\n handleMouseLeave: function handleMouseLeave() {\r\n var swiper = this;\r\n swiper.mouseEntered = false;\r\n },\r\n handle: function handle(event) {\r\n var e = event;\r\n var disableParentSwiper = true;\r\n var swiper = this;\r\n var params = swiper.params.mousewheel;\r\n\r\n if (swiper.params.cssMode) {\r\n e.preventDefault();\r\n }\r\n\r\n var target = swiper.$el;\r\n\r\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarget);\r\n }\r\n\r\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\r\n if (e.originalEvent) e = e.originalEvent; // jquery fix\r\n\r\n var delta = 0;\r\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\r\n var data = Mousewheel.normalize(e);\r\n\r\n if (params.forceToAxis) {\r\n if (swiper.isHorizontal()) {\r\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\r\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\r\n } else {\r\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\r\n }\r\n\r\n if (delta === 0) return true;\r\n if (params.invert) delta = -delta; // Get the scroll positions\r\n\r\n var positions = swiper.getTranslate() + delta * params.sensitivity;\r\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\r\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\r\n // the disableParentSwiper will be true.\r\n // When loop is false:\r\n // if the scroll positions is not on edge,\r\n // then the disableParentSwiper will be true.\r\n // if the scroll on edge positions,\r\n // then the disableParentSwiper will be false.\r\n\r\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\r\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\r\n\r\n if (!swiper.params.freeMode) {\r\n // Register the new event in a variable which stores the relevant data\r\n var newEvent = {\r\n time: now(),\r\n delta: Math.abs(delta),\r\n direction: Math.sign(delta),\r\n raw: event\r\n }; // Keep the most recent events\r\n\r\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\r\n\r\n if (recentWheelEvents.length >= 2) {\r\n recentWheelEvents.shift(); // only store the last N events\r\n }\r\n\r\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\r\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\r\n // If direction has changed or\r\n // if the scroll is quicker than the previous one:\r\n // Animate the slider.\r\n // Else (this is the first time the wheel is moved):\r\n // Animate the slider.\r\n\r\n if (prevEvent) {\r\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\r\n swiper.mousewheel.animateSlider(newEvent);\r\n }\r\n } else {\r\n swiper.mousewheel.animateSlider(newEvent);\r\n } // If it's time to release the scroll:\r\n // Return now so you don't hit the preventDefault.\r\n\r\n\r\n if (swiper.mousewheel.releaseScroll(newEvent)) {\r\n return true;\r\n }\r\n } else {\r\n // Freemode or scrollContainer:\r\n // If we recently snapped after a momentum scroll, then ignore wheel events\r\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\r\n // or if it's a new scroll (larger delta or inverse sign as last event before\r\n // an end-of-momentum snap).\r\n var _newEvent = {\r\n time: now(),\r\n delta: Math.abs(delta),\r\n direction: Math.sign(delta)\r\n };\r\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\r\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\r\n\r\n if (!ignoreWheelEvents) {\r\n swiper.mousewheel.lastEventBeforeSnap = undefined;\r\n\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n }\r\n\r\n var position = swiper.getTranslate() + delta * params.sensitivity;\r\n var wasBeginning = swiper.isBeginning;\r\n var wasEnd = swiper.isEnd;\r\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\r\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\r\n swiper.setTransition(0);\r\n swiper.setTranslate(position);\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n if (swiper.params.freeModeSticky) {\r\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\r\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\r\n // 1. do all N events have decreasing or same (absolute value) delta?\r\n // 2. did all N events arrive in the last M (M=500?) msecs?\r\n // 3. does the earliest event have an (absolute value) delta that's\r\n // at least P (P=1?) larger than the most recent event's delta?\r\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\r\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\r\n // Snap immediately and ignore remaining wheel events in this scroll.\r\n // See comment above for \"remaining wheel events in this scroll\" determination.\r\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\r\n clearTimeout(swiper.mousewheel.timeout);\r\n swiper.mousewheel.timeout = undefined;\r\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\r\n\r\n if (_recentWheelEvents.length >= 15) {\r\n _recentWheelEvents.shift(); // only store the last N events\r\n\r\n }\r\n\r\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\r\n\r\n var firstEvent = _recentWheelEvents[0];\r\n\r\n _recentWheelEvents.push(_newEvent);\r\n\r\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\r\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\r\n _recentWheelEvents.splice(0);\r\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\r\n // We're at the end of the deceleration of a momentum scroll, so there's no need\r\n // to wait for more events. Snap ASAP on the next tick.\r\n // Also, because there's some remaining momentum we'll bias the snap in the\r\n // direction of the ongoing scroll because it's better UX for the scroll to snap\r\n // in the same direction as the scroll instead of reversing to snap. Therefore,\r\n // if it's already scrolled more than 20% in the current direction, keep going.\r\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\r\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\r\n\r\n _recentWheelEvents.splice(0);\r\n\r\n swiper.mousewheel.timeout = nextTick(function () {\r\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n }, 0); // no delay; move on next tick\r\n }\r\n\r\n if (!swiper.mousewheel.timeout) {\r\n // if we get here, then we haven't detected the end of a momentum scroll, so\r\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\r\n // for 500ms.\r\n swiper.mousewheel.timeout = nextTick(function () {\r\n var snapToThreshold = 0.5;\r\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\r\n\r\n _recentWheelEvents.splice(0);\r\n\r\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n }, 500);\r\n }\r\n } // Emit event\r\n\r\n\r\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\r\n\r\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\r\n\r\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\r\n }\r\n }\r\n\r\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\r\n return false;\r\n },\r\n animateSlider: function animateSlider(newEvent) {\r\n var swiper = this;\r\n var window = getWindow();\r\n\r\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\r\n // Prevent if delta of wheel scroll delta is below configured threshold\r\n return false;\r\n }\r\n\r\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\r\n // Prevent if time between scrolls is below configured threshold\r\n return false;\r\n } // If the movement is NOT big enough and\r\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\r\n // Don't go any further (avoid insignificant scroll movement).\r\n\r\n\r\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\r\n // Return false as a default\r\n return true;\r\n } // If user is scrolling towards the end:\r\n // If the slider hasn't hit the latest slide or\r\n // if the slider is a loop and\r\n // if the slider isn't moving right now:\r\n // Go to next slide and\r\n // emit a scroll event.\r\n // Else (the user is scrolling towards the beginning) and\r\n // if the slider hasn't hit the first slide or\r\n // if the slider is a loop and\r\n // if the slider isn't moving right now:\r\n // Go to prev slide and\r\n // emit a scroll event.\r\n\r\n\r\n if (newEvent.direction < 0) {\r\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\r\n swiper.slideNext();\r\n swiper.emit('scroll', newEvent.raw);\r\n }\r\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\r\n swiper.slidePrev();\r\n swiper.emit('scroll', newEvent.raw);\r\n } // If you got here is because an animation has been triggered so store the current time\r\n\r\n\r\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\r\n\r\n return false;\r\n },\r\n releaseScroll: function releaseScroll(newEvent) {\r\n var swiper = this;\r\n var params = swiper.params.mousewheel;\r\n\r\n if (newEvent.direction < 0) {\r\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\r\n // Return true to animate scroll on edges\r\n return true;\r\n }\r\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\r\n // Return true to animate scroll on edges\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n enable: function enable() {\r\n var swiper = this;\r\n var event = Mousewheel.event();\r\n\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\r\n return true;\r\n }\r\n\r\n if (!event) return false;\r\n if (swiper.mousewheel.enabled) return false;\r\n var target = swiper.$el;\r\n\r\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarget);\r\n }\r\n\r\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\r\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\r\n target.on(event, swiper.mousewheel.handle);\r\n swiper.mousewheel.enabled = true;\r\n return true;\r\n },\r\n disable: function disable() {\r\n var swiper = this;\r\n var event = Mousewheel.event();\r\n\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\r\n return true;\r\n }\r\n\r\n if (!event) return false;\r\n if (!swiper.mousewheel.enabled) return false;\r\n var target = swiper.$el;\r\n\r\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarget);\r\n }\r\n\r\n target.off(event, swiper.mousewheel.handle);\r\n swiper.mousewheel.enabled = false;\r\n return true;\r\n }\r\n };\r\n var Mousewheel$1 = {\r\n name: 'mousewheel',\r\n params: {\r\n mousewheel: {\r\n enabled: false,\r\n releaseOnEdges: false,\r\n invert: false,\r\n forceToAxis: false,\r\n sensitivity: 1,\r\n eventsTarget: 'container',\r\n thresholdDelta: null,\r\n thresholdTime: null\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n mousewheel: {\r\n enabled: false,\r\n lastScrollTime: now(),\r\n lastEventBeforeSnap: undefined,\r\n recentWheelEvents: [],\r\n enable: Mousewheel.enable,\r\n disable: Mousewheel.disable,\r\n handle: Mousewheel.handle,\r\n handleMouseEnter: Mousewheel.handleMouseEnter,\r\n handleMouseLeave: Mousewheel.handleMouseLeave,\r\n animateSlider: Mousewheel.animateSlider,\r\n releaseScroll: Mousewheel.releaseScroll\r\n }\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\r\n swiper.mousewheel.disable();\r\n }\r\n\r\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\r\n },\r\n destroy: function destroy(swiper) {\r\n if (swiper.params.cssMode) {\r\n swiper.mousewheel.enable();\r\n }\r\n\r\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\r\n }\r\n }\r\n };\r\n\r\n var Navigation = {\r\n update: function update() {\r\n // Update Navigation Buttons\r\n var swiper = this;\r\n var params = swiper.params.navigation;\r\n if (swiper.params.loop) return;\r\n var _swiper$navigation = swiper.navigation,\r\n $nextEl = _swiper$navigation.$nextEl,\r\n $prevEl = _swiper$navigation.$prevEl;\r\n\r\n if ($prevEl && $prevEl.length > 0) {\r\n if (swiper.isBeginning) {\r\n $prevEl.addClass(params.disabledClass);\r\n } else {\r\n $prevEl.removeClass(params.disabledClass);\r\n }\r\n\r\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n\r\n if ($nextEl && $nextEl.length > 0) {\r\n if (swiper.isEnd) {\r\n $nextEl.addClass(params.disabledClass);\r\n } else {\r\n $nextEl.removeClass(params.disabledClass);\r\n }\r\n\r\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n },\r\n onPrevClick: function onPrevClick(e) {\r\n var swiper = this;\r\n e.preventDefault();\r\n if (swiper.isBeginning && !swiper.params.loop) return;\r\n swiper.slidePrev();\r\n },\r\n onNextClick: function onNextClick(e) {\r\n var swiper = this;\r\n e.preventDefault();\r\n if (swiper.isEnd && !swiper.params.loop) return;\r\n swiper.slideNext();\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n var params = swiper.params.navigation;\r\n if (!(params.nextEl || params.prevEl)) return;\r\n var $nextEl;\r\n var $prevEl;\r\n\r\n if (params.nextEl) {\r\n $nextEl = $(params.nextEl);\r\n\r\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\r\n $nextEl = swiper.$el.find(params.nextEl);\r\n }\r\n }\r\n\r\n if (params.prevEl) {\r\n $prevEl = $(params.prevEl);\r\n\r\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\r\n $prevEl = swiper.$el.find(params.prevEl);\r\n }\r\n }\r\n\r\n if ($nextEl && $nextEl.length > 0) {\r\n $nextEl.on('click', swiper.navigation.onNextClick);\r\n }\r\n\r\n if ($prevEl && $prevEl.length > 0) {\r\n $prevEl.on('click', swiper.navigation.onPrevClick);\r\n }\r\n\r\n extend$1(swiper.navigation, {\r\n $nextEl: $nextEl,\r\n nextEl: $nextEl && $nextEl[0],\r\n $prevEl: $prevEl,\r\n prevEl: $prevEl && $prevEl[0]\r\n });\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n var _swiper$navigation2 = swiper.navigation,\r\n $nextEl = _swiper$navigation2.$nextEl,\r\n $prevEl = _swiper$navigation2.$prevEl;\r\n\r\n if ($nextEl && $nextEl.length) {\r\n $nextEl.off('click', swiper.navigation.onNextClick);\r\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n\r\n if ($prevEl && $prevEl.length) {\r\n $prevEl.off('click', swiper.navigation.onPrevClick);\r\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n }\r\n };\r\n var Navigation$1 = {\r\n name: 'navigation',\r\n params: {\r\n navigation: {\r\n nextEl: null,\r\n prevEl: null,\r\n hideOnClick: false,\r\n disabledClass: 'swiper-button-disabled',\r\n hiddenClass: 'swiper-button-hidden',\r\n lockClass: 'swiper-button-lock'\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n navigation: _extends({}, Navigation)\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n swiper.navigation.init();\r\n swiper.navigation.update();\r\n },\r\n toEdge: function toEdge(swiper) {\r\n swiper.navigation.update();\r\n },\r\n fromEdge: function fromEdge(swiper) {\r\n swiper.navigation.update();\r\n },\r\n destroy: function destroy(swiper) {\r\n swiper.navigation.destroy();\r\n },\r\n click: function click(swiper, e) {\r\n var _swiper$navigation3 = swiper.navigation,\r\n $nextEl = _swiper$navigation3.$nextEl,\r\n $prevEl = _swiper$navigation3.$prevEl;\r\n\r\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\r\n var isHidden;\r\n\r\n if ($nextEl) {\r\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\r\n } else if ($prevEl) {\r\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\r\n }\r\n\r\n if (isHidden === true) {\r\n swiper.emit('navigationShow');\r\n } else {\r\n swiper.emit('navigationHide');\r\n }\r\n\r\n if ($nextEl) {\r\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n\r\n if ($prevEl) {\r\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n var Pagination = {\r\n update: function update() {\r\n // Render || Update Pagination bullets/items\r\n var swiper = this;\r\n var rtl = swiper.rtl;\r\n var params = swiper.params.pagination;\r\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\r\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\r\n var $el = swiper.pagination.$el; // Current/Total\r\n\r\n var current;\r\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\r\n\r\n if (swiper.params.loop) {\r\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\r\n\r\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\r\n current -= slidesLength - swiper.loopedSlides * 2;\r\n }\r\n\r\n if (current > total - 1) current -= total;\r\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\r\n } else if (typeof swiper.snapIndex !== 'undefined') {\r\n current = swiper.snapIndex;\r\n } else {\r\n current = swiper.activeIndex || 0;\r\n } // Types\r\n\r\n\r\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\r\n var bullets = swiper.pagination.bullets;\r\n var firstIndex;\r\n var lastIndex;\r\n var midIndex;\r\n\r\n if (params.dynamicBullets) {\r\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\r\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\r\n\r\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\r\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\r\n\r\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\r\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\r\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\r\n swiper.pagination.dynamicBulletIndex = 0;\r\n }\r\n }\r\n\r\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\r\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\r\n midIndex = (lastIndex + firstIndex) / 2;\r\n }\r\n\r\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\r\n\r\n if ($el.length > 1) {\r\n bullets.each(function (bullet) {\r\n var $bullet = $(bullet);\r\n var bulletIndex = $bullet.index();\r\n\r\n if (bulletIndex === current) {\r\n $bullet.addClass(params.bulletActiveClass);\r\n }\r\n\r\n if (params.dynamicBullets) {\r\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\r\n $bullet.addClass(params.bulletActiveClass + \"-main\");\r\n }\r\n\r\n if (bulletIndex === firstIndex) {\r\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\r\n }\r\n\r\n if (bulletIndex === lastIndex) {\r\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\r\n }\r\n }\r\n });\r\n } else {\r\n var $bullet = bullets.eq(current);\r\n var bulletIndex = $bullet.index();\r\n $bullet.addClass(params.bulletActiveClass);\r\n\r\n if (params.dynamicBullets) {\r\n var $firstDisplayedBullet = bullets.eq(firstIndex);\r\n var $lastDisplayedBullet = bullets.eq(lastIndex);\r\n\r\n for (var i = firstIndex; i <= lastIndex; i += 1) {\r\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\r\n }\r\n\r\n if (swiper.params.loop) {\r\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\r\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\r\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\r\n }\r\n\r\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\r\n } else {\r\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\r\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\r\n }\r\n } else {\r\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\r\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\r\n }\r\n }\r\n }\r\n\r\n if (params.dynamicBullets) {\r\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\r\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\r\n var offsetProp = rtl ? 'right' : 'left';\r\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\r\n }\r\n }\r\n\r\n if (params.type === 'fraction') {\r\n $el.find(\".\" + params.currentClass).text(params.formatFractionCurrent(current + 1));\r\n $el.find(\".\" + params.totalClass).text(params.formatFractionTotal(total));\r\n }\r\n\r\n if (params.type === 'progressbar') {\r\n var progressbarDirection;\r\n\r\n if (params.progressbarOpposite) {\r\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\r\n } else {\r\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\r\n }\r\n\r\n var scale = (current + 1) / total;\r\n var scaleX = 1;\r\n var scaleY = 1;\r\n\r\n if (progressbarDirection === 'horizontal') {\r\n scaleX = scale;\r\n } else {\r\n scaleY = scale;\r\n }\r\n\r\n $el.find(\".\" + params.progressbarFillClass).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\r\n }\r\n\r\n if (params.type === 'custom' && params.renderCustom) {\r\n $el.html(params.renderCustom(swiper, current + 1, total));\r\n swiper.emit('paginationRender', $el[0]);\r\n } else {\r\n swiper.emit('paginationUpdate', $el[0]);\r\n }\r\n\r\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n },\r\n render: function render() {\r\n // Render Container\r\n var swiper = this;\r\n var params = swiper.params.pagination;\r\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\r\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\r\n var $el = swiper.pagination.$el;\r\n var paginationHTML = '';\r\n\r\n if (params.type === 'bullets') {\r\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\r\n\r\n for (var i = 0; i < numberOfBullets; i += 1) {\r\n if (params.renderBullet) {\r\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\r\n } else {\r\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\r\n }\r\n }\r\n\r\n $el.html(paginationHTML);\r\n swiper.pagination.bullets = $el.find(\".\" + params.bulletClass.replace(/ /g, '.'));\r\n }\r\n\r\n if (params.type === 'fraction') {\r\n if (params.renderFraction) {\r\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\r\n } else {\r\n paginationHTML = \"\" + ' / ' + (\"\");\r\n }\r\n\r\n $el.html(paginationHTML);\r\n }\r\n\r\n if (params.type === 'progressbar') {\r\n if (params.renderProgressbar) {\r\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\r\n } else {\r\n paginationHTML = \"\";\r\n }\r\n\r\n $el.html(paginationHTML);\r\n }\r\n\r\n if (params.type !== 'custom') {\r\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n var params = swiper.params.pagination;\r\n if (!params.el) return;\r\n var $el = $(params.el);\r\n if ($el.length === 0) return;\r\n\r\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\r\n $el = swiper.$el.find(params.el);\r\n }\r\n\r\n if (params.type === 'bullets' && params.clickable) {\r\n $el.addClass(params.clickableClass);\r\n }\r\n\r\n $el.addClass(params.modifierClass + params.type);\r\n\r\n if (params.type === 'bullets' && params.dynamicBullets) {\r\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\r\n swiper.pagination.dynamicBulletIndex = 0;\r\n\r\n if (params.dynamicMainBullets < 1) {\r\n params.dynamicMainBullets = 1;\r\n }\r\n }\r\n\r\n if (params.type === 'progressbar' && params.progressbarOpposite) {\r\n $el.addClass(params.progressbarOppositeClass);\r\n }\r\n\r\n if (params.clickable) {\r\n $el.on('click', \".\" + params.bulletClass.replace(/ /g, '.'), function onClick(e) {\r\n e.preventDefault();\r\n var index = $(this).index() * swiper.params.slidesPerGroup;\r\n if (swiper.params.loop) index += swiper.loopedSlides;\r\n swiper.slideTo(index);\r\n });\r\n }\r\n\r\n extend$1(swiper.pagination, {\r\n $el: $el,\r\n el: $el[0]\r\n });\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n var params = swiper.params.pagination;\r\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\r\n var $el = swiper.pagination.$el;\r\n $el.removeClass(params.hiddenClass);\r\n $el.removeClass(params.modifierClass + params.type);\r\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\r\n\r\n if (params.clickable) {\r\n $el.off('click', \".\" + params.bulletClass.replace(/ /g, '.'));\r\n }\r\n }\r\n };\r\n var Pagination$1 = {\r\n name: 'pagination',\r\n params: {\r\n pagination: {\r\n el: null,\r\n bulletElement: 'span',\r\n clickable: false,\r\n hideOnClick: false,\r\n renderBullet: null,\r\n renderProgressbar: null,\r\n renderFraction: null,\r\n renderCustom: null,\r\n progressbarOpposite: false,\r\n type: 'bullets',\r\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\r\n dynamicBullets: false,\r\n dynamicMainBullets: 1,\r\n formatFractionCurrent: function formatFractionCurrent(number) {\r\n return number;\r\n },\r\n formatFractionTotal: function formatFractionTotal(number) {\r\n return number;\r\n },\r\n bulletClass: 'swiper-pagination-bullet',\r\n bulletActiveClass: 'swiper-pagination-bullet-active',\r\n modifierClass: 'swiper-pagination-',\r\n // NEW\r\n currentClass: 'swiper-pagination-current',\r\n totalClass: 'swiper-pagination-total',\r\n hiddenClass: 'swiper-pagination-hidden',\r\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\r\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\r\n clickableClass: 'swiper-pagination-clickable',\r\n // NEW\r\n lockClass: 'swiper-pagination-lock'\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n pagination: _extends({\r\n dynamicBulletIndex: 0\r\n }, Pagination)\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n swiper.pagination.init();\r\n swiper.pagination.render();\r\n swiper.pagination.update();\r\n },\r\n activeIndexChange: function activeIndexChange(swiper) {\r\n if (swiper.params.loop) {\r\n swiper.pagination.update();\r\n } else if (typeof swiper.snapIndex === 'undefined') {\r\n swiper.pagination.update();\r\n }\r\n },\r\n snapIndexChange: function snapIndexChange(swiper) {\r\n if (!swiper.params.loop) {\r\n swiper.pagination.update();\r\n }\r\n },\r\n slidesLengthChange: function slidesLengthChange(swiper) {\r\n if (swiper.params.loop) {\r\n swiper.pagination.render();\r\n swiper.pagination.update();\r\n }\r\n },\r\n snapGridLengthChange: function snapGridLengthChange(swiper) {\r\n if (!swiper.params.loop) {\r\n swiper.pagination.render();\r\n swiper.pagination.update();\r\n }\r\n },\r\n destroy: function destroy(swiper) {\r\n swiper.pagination.destroy();\r\n },\r\n click: function click(swiper, e) {\r\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\r\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\r\n\r\n if (isHidden === true) {\r\n swiper.emit('paginationShow');\r\n } else {\r\n swiper.emit('paginationHide');\r\n }\r\n\r\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var Scrollbar = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n var scrollbar = swiper.scrollbar,\r\n rtl = swiper.rtlTranslate,\r\n progress = swiper.progress;\r\n var dragSize = scrollbar.dragSize,\r\n trackSize = scrollbar.trackSize,\r\n $dragEl = scrollbar.$dragEl,\r\n $el = scrollbar.$el;\r\n var params = swiper.params.scrollbar;\r\n var newSize = dragSize;\r\n var newPos = (trackSize - dragSize) * progress;\r\n\r\n if (rtl) {\r\n newPos = -newPos;\r\n\r\n if (newPos > 0) {\r\n newSize = dragSize - newPos;\r\n newPos = 0;\r\n } else if (-newPos + dragSize > trackSize) {\r\n newSize = trackSize + newPos;\r\n }\r\n } else if (newPos < 0) {\r\n newSize = dragSize + newPos;\r\n newPos = 0;\r\n } else if (newPos + dragSize > trackSize) {\r\n newSize = trackSize - newPos;\r\n }\r\n\r\n if (swiper.isHorizontal()) {\r\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\r\n $dragEl[0].style.width = newSize + \"px\";\r\n } else {\r\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\r\n $dragEl[0].style.height = newSize + \"px\";\r\n }\r\n\r\n if (params.hide) {\r\n clearTimeout(swiper.scrollbar.timeout);\r\n $el[0].style.opacity = 1;\r\n swiper.scrollbar.timeout = setTimeout(function () {\r\n $el[0].style.opacity = 0;\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n swiper.scrollbar.$dragEl.transition(duration);\r\n },\r\n updateSize: function updateSize() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n var scrollbar = swiper.scrollbar;\r\n var $dragEl = scrollbar.$dragEl,\r\n $el = scrollbar.$el;\r\n $dragEl[0].style.width = '';\r\n $dragEl[0].style.height = '';\r\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\r\n var divider = swiper.size / swiper.virtualSize;\r\n var moveDivider = divider * (trackSize / swiper.size);\r\n var dragSize;\r\n\r\n if (swiper.params.scrollbar.dragSize === 'auto') {\r\n dragSize = trackSize * divider;\r\n } else {\r\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\r\n }\r\n\r\n if (swiper.isHorizontal()) {\r\n $dragEl[0].style.width = dragSize + \"px\";\r\n } else {\r\n $dragEl[0].style.height = dragSize + \"px\";\r\n }\r\n\r\n if (divider >= 1) {\r\n $el[0].style.display = 'none';\r\n } else {\r\n $el[0].style.display = '';\r\n }\r\n\r\n if (swiper.params.scrollbar.hide) {\r\n $el[0].style.opacity = 0;\r\n }\r\n\r\n extend$1(scrollbar, {\r\n trackSize: trackSize,\r\n divider: divider,\r\n moveDivider: moveDivider,\r\n dragSize: dragSize\r\n });\r\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\r\n },\r\n getPointerPosition: function getPointerPosition(e) {\r\n var swiper = this;\r\n\r\n if (swiper.isHorizontal()) {\r\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\r\n }\r\n\r\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\r\n },\r\n setDragPosition: function setDragPosition(e) {\r\n var swiper = this;\r\n var scrollbar = swiper.scrollbar,\r\n rtl = swiper.rtlTranslate;\r\n var $el = scrollbar.$el,\r\n dragSize = scrollbar.dragSize,\r\n trackSize = scrollbar.trackSize,\r\n dragStartPos = scrollbar.dragStartPos;\r\n var positionRatio;\r\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\r\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\r\n\r\n if (rtl) {\r\n positionRatio = 1 - positionRatio;\r\n }\r\n\r\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\r\n swiper.updateProgress(position);\r\n swiper.setTranslate(position);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n },\r\n onDragStart: function onDragStart(e) {\r\n var swiper = this;\r\n var params = swiper.params.scrollbar;\r\n var scrollbar = swiper.scrollbar,\r\n $wrapperEl = swiper.$wrapperEl;\r\n var $el = scrollbar.$el,\r\n $dragEl = scrollbar.$dragEl;\r\n swiper.scrollbar.isTouched = true;\r\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n $wrapperEl.transition(100);\r\n $dragEl.transition(100);\r\n scrollbar.setDragPosition(e);\r\n clearTimeout(swiper.scrollbar.dragTimeout);\r\n $el.transition(0);\r\n\r\n if (params.hide) {\r\n $el.css('opacity', 1);\r\n }\r\n\r\n if (swiper.params.cssMode) {\r\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\r\n }\r\n\r\n swiper.emit('scrollbarDragStart', e);\r\n },\r\n onDragMove: function onDragMove(e) {\r\n var swiper = this;\r\n var scrollbar = swiper.scrollbar,\r\n $wrapperEl = swiper.$wrapperEl;\r\n var $el = scrollbar.$el,\r\n $dragEl = scrollbar.$dragEl;\r\n if (!swiper.scrollbar.isTouched) return;\r\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\r\n scrollbar.setDragPosition(e);\r\n $wrapperEl.transition(0);\r\n $el.transition(0);\r\n $dragEl.transition(0);\r\n swiper.emit('scrollbarDragMove', e);\r\n },\r\n onDragEnd: function onDragEnd(e) {\r\n var swiper = this;\r\n var params = swiper.params.scrollbar;\r\n var scrollbar = swiper.scrollbar,\r\n $wrapperEl = swiper.$wrapperEl;\r\n var $el = scrollbar.$el;\r\n if (!swiper.scrollbar.isTouched) return;\r\n swiper.scrollbar.isTouched = false;\r\n\r\n if (swiper.params.cssMode) {\r\n swiper.$wrapperEl.css('scroll-snap-type', '');\r\n $wrapperEl.transition('');\r\n }\r\n\r\n if (params.hide) {\r\n clearTimeout(swiper.scrollbar.dragTimeout);\r\n swiper.scrollbar.dragTimeout = nextTick(function () {\r\n $el.css('opacity', 0);\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n\r\n swiper.emit('scrollbarDragEnd', e);\r\n\r\n if (params.snapOnRelease) {\r\n swiper.slideToClosest();\r\n }\r\n },\r\n enableDraggable: function enableDraggable() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el) return;\r\n var document = getDocument();\r\n var scrollbar = swiper.scrollbar,\r\n touchEventsTouch = swiper.touchEventsTouch,\r\n touchEventsDesktop = swiper.touchEventsDesktop,\r\n params = swiper.params,\r\n support = swiper.support;\r\n var $el = scrollbar.$el;\r\n var target = $el[0];\r\n var activeListener = support.passiveListener && params.passiveListeners ? {\r\n passive: false,\r\n capture: false\r\n } : false;\r\n var passiveListener = support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n\r\n if (!support.touch) {\r\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\r\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\r\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n } else {\r\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\r\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\r\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n }\r\n },\r\n disableDraggable: function disableDraggable() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el) return;\r\n var document = getDocument();\r\n var scrollbar = swiper.scrollbar,\r\n touchEventsTouch = swiper.touchEventsTouch,\r\n touchEventsDesktop = swiper.touchEventsDesktop,\r\n params = swiper.params,\r\n support = swiper.support;\r\n var $el = scrollbar.$el;\r\n var target = $el[0];\r\n var activeListener = support.passiveListener && params.passiveListeners ? {\r\n passive: false,\r\n capture: false\r\n } : false;\r\n var passiveListener = support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n\r\n if (!support.touch) {\r\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\r\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\r\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n } else {\r\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\r\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\r\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el) return;\r\n var scrollbar = swiper.scrollbar,\r\n $swiperEl = swiper.$el;\r\n var params = swiper.params.scrollbar;\r\n var $el = $(params.el);\r\n\r\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\r\n $el = $swiperEl.find(params.el);\r\n }\r\n\r\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\r\n\r\n if ($dragEl.length === 0) {\r\n $dragEl = $(\"
\");\r\n $el.append($dragEl);\r\n }\r\n\r\n extend$1(scrollbar, {\r\n $el: $el,\r\n el: $el[0],\r\n $dragEl: $dragEl,\r\n dragEl: $dragEl[0]\r\n });\r\n\r\n if (params.draggable) {\r\n scrollbar.enableDraggable();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.scrollbar.disableDraggable();\r\n }\r\n };\r\n var Scrollbar$1 = {\r\n name: 'scrollbar',\r\n params: {\r\n scrollbar: {\r\n el: null,\r\n dragSize: 'auto',\r\n hide: false,\r\n draggable: false,\r\n snapOnRelease: true,\r\n lockClass: 'swiper-scrollbar-lock',\r\n dragClass: 'swiper-scrollbar-drag'\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n scrollbar: _extends({\r\n isTouched: false,\r\n timeout: null,\r\n dragTimeout: null\r\n }, Scrollbar)\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n swiper.scrollbar.init();\r\n swiper.scrollbar.updateSize();\r\n swiper.scrollbar.setTranslate();\r\n },\r\n update: function update(swiper) {\r\n swiper.scrollbar.updateSize();\r\n },\r\n resize: function resize(swiper) {\r\n swiper.scrollbar.updateSize();\r\n },\r\n observerUpdate: function observerUpdate(swiper) {\r\n swiper.scrollbar.updateSize();\r\n },\r\n setTranslate: function setTranslate(swiper) {\r\n swiper.scrollbar.setTranslate();\r\n },\r\n setTransition: function setTransition(swiper, duration) {\r\n swiper.scrollbar.setTransition(duration);\r\n },\r\n destroy: function destroy(swiper) {\r\n swiper.scrollbar.destroy();\r\n }\r\n }\r\n };\r\n\r\n var Parallax = {\r\n setTransform: function setTransform(el, progress) {\r\n var swiper = this;\r\n var rtl = swiper.rtl;\r\n var $el = $(el);\r\n var rtlFactor = rtl ? -1 : 1;\r\n var p = $el.attr('data-swiper-parallax') || '0';\r\n var x = $el.attr('data-swiper-parallax-x');\r\n var y = $el.attr('data-swiper-parallax-y');\r\n var scale = $el.attr('data-swiper-parallax-scale');\r\n var opacity = $el.attr('data-swiper-parallax-opacity');\r\n\r\n if (x || y) {\r\n x = x || '0';\r\n y = y || '0';\r\n } else if (swiper.isHorizontal()) {\r\n x = p;\r\n y = '0';\r\n } else {\r\n y = p;\r\n x = '0';\r\n }\r\n\r\n if (x.indexOf('%') >= 0) {\r\n x = parseInt(x, 10) * progress * rtlFactor + \"%\";\r\n } else {\r\n x = x * progress * rtlFactor + \"px\";\r\n }\r\n\r\n if (y.indexOf('%') >= 0) {\r\n y = parseInt(y, 10) * progress + \"%\";\r\n } else {\r\n y = y * progress + \"px\";\r\n }\r\n\r\n if (typeof opacity !== 'undefined' && opacity !== null) {\r\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\r\n $el[0].style.opacity = currentOpacity;\r\n }\r\n\r\n if (typeof scale === 'undefined' || scale === null) {\r\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\r\n } else {\r\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\r\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\r\n }\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var $el = swiper.$el,\r\n slides = swiper.slides,\r\n progress = swiper.progress,\r\n snapGrid = swiper.snapGrid;\r\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\r\n swiper.parallax.setTransform(el, progress);\r\n });\r\n slides.each(function (slideEl, slideIndex) {\r\n var slideProgress = slideEl.progress;\r\n\r\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\r\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\r\n }\r\n\r\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\r\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\r\n swiper.parallax.setTransform(el, slideProgress);\r\n });\r\n });\r\n },\r\n setTransition: function setTransition(duration) {\r\n if (duration === void 0) {\r\n duration = this.params.speed;\r\n }\r\n\r\n var swiper = this;\r\n var $el = swiper.$el;\r\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\r\n var $parallaxEl = $(parallaxEl);\r\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\r\n if (duration === 0) parallaxDuration = 0;\r\n $parallaxEl.transition(parallaxDuration);\r\n });\r\n }\r\n };\r\n var Parallax$1 = {\r\n name: 'parallax',\r\n params: {\r\n parallax: {\r\n enabled: false\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n parallax: _extends({}, Parallax)\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n if (!swiper.params.parallax.enabled) return;\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n },\r\n init: function init(swiper) {\r\n if (!swiper.params.parallax.enabled) return;\r\n swiper.parallax.setTranslate();\r\n },\r\n setTranslate: function setTranslate(swiper) {\r\n if (!swiper.params.parallax.enabled) return;\r\n swiper.parallax.setTranslate();\r\n },\r\n setTransition: function setTransition(swiper, duration) {\r\n if (!swiper.params.parallax.enabled) return;\r\n swiper.parallax.setTransition(duration);\r\n }\r\n }\r\n };\r\n\r\n var Zoom = {\r\n // Calc Scale From Multi-touches\r\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\r\n if (e.targetTouches.length < 2) return 1;\r\n var x1 = e.targetTouches[0].pageX;\r\n var y1 = e.targetTouches[0].pageY;\r\n var x2 = e.targetTouches[1].pageX;\r\n var y2 = e.targetTouches[1].pageY;\r\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\r\n return distance;\r\n },\r\n // Events\r\n onGestureStart: function onGestureStart(e) {\r\n var swiper = this;\r\n var support = swiper.support;\r\n var params = swiper.params.zoom;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n zoom.fakeGestureTouched = false;\r\n zoom.fakeGestureMoved = false;\r\n\r\n if (!support.gestures) {\r\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\r\n return;\r\n }\r\n\r\n zoom.fakeGestureTouched = true;\r\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\r\n }\r\n\r\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\r\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\r\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\r\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n\r\n if (gesture.$imageWrapEl.length === 0) {\r\n gesture.$imageEl = undefined;\r\n return;\r\n }\r\n }\r\n\r\n if (gesture.$imageEl) {\r\n gesture.$imageEl.transition(0);\r\n }\r\n\r\n swiper.zoom.isScaling = true;\r\n },\r\n onGestureChange: function onGestureChange(e) {\r\n var swiper = this;\r\n var support = swiper.support;\r\n var params = swiper.params.zoom;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n\r\n if (!support.gestures) {\r\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\r\n return;\r\n }\r\n\r\n zoom.fakeGestureMoved = true;\r\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\r\n }\r\n\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\r\n return;\r\n }\r\n\r\n if (support.gestures) {\r\n zoom.scale = e.scale * zoom.currentScale;\r\n } else {\r\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\r\n }\r\n\r\n if (zoom.scale > gesture.maxRatio) {\r\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\r\n }\r\n\r\n if (zoom.scale < params.minRatio) {\r\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\r\n }\r\n\r\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\r\n },\r\n onGestureEnd: function onGestureEnd(e) {\r\n var swiper = this;\r\n var device = swiper.device;\r\n var support = swiper.support;\r\n var params = swiper.params.zoom;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n\r\n if (!support.gestures) {\r\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\r\n return;\r\n }\r\n\r\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\r\n return;\r\n }\r\n\r\n zoom.fakeGestureTouched = false;\r\n zoom.fakeGestureMoved = false;\r\n }\r\n\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\r\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\r\n zoom.currentScale = zoom.scale;\r\n zoom.isScaling = false;\r\n if (zoom.scale === 1) gesture.$slideEl = undefined;\r\n },\r\n onTouchStart: function onTouchStart(e) {\r\n var swiper = this;\r\n var device = swiper.device;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture,\r\n image = zoom.image;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n if (image.isTouched) return;\r\n if (device.android && e.cancelable) e.preventDefault();\r\n image.isTouched = true;\r\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n },\r\n onTouchMove: function onTouchMove(e) {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture,\r\n image = zoom.image,\r\n velocity = zoom.velocity;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n swiper.allowClick = false;\r\n if (!image.isTouched || !gesture.$slideEl) return;\r\n\r\n if (!image.isMoved) {\r\n image.width = gesture.$imageEl[0].offsetWidth;\r\n image.height = gesture.$imageEl[0].offsetHeight;\r\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\r\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\r\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\r\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\r\n gesture.$imageWrapEl.transition(0);\r\n\r\n if (swiper.rtl) {\r\n image.startX = -image.startX;\r\n image.startY = -image.startY;\r\n }\r\n } // Define if we need image drag\r\n\r\n\r\n var scaledWidth = image.width * zoom.scale;\r\n var scaledHeight = image.height * zoom.scale;\r\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\r\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\r\n image.maxY = -image.minY;\r\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\r\n\r\n if (!image.isMoved && !zoom.isScaling) {\r\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n\r\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n }\r\n\r\n if (e.cancelable) {\r\n e.preventDefault();\r\n }\r\n\r\n e.stopPropagation();\r\n image.isMoved = true;\r\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\r\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\r\n\r\n if (image.currentX < image.minX) {\r\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\r\n }\r\n\r\n if (image.currentX > image.maxX) {\r\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\r\n }\r\n\r\n if (image.currentY < image.minY) {\r\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\r\n }\r\n\r\n if (image.currentY > image.maxY) {\r\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\r\n } // Velocity\r\n\r\n\r\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\r\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\r\n if (!velocity.prevTime) velocity.prevTime = Date.now();\r\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\r\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\r\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\r\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\r\n velocity.prevPositionX = image.touchesCurrent.x;\r\n velocity.prevPositionY = image.touchesCurrent.y;\r\n velocity.prevTime = Date.now();\r\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\r\n },\r\n onTouchEnd: function onTouchEnd() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture,\r\n image = zoom.image,\r\n velocity = zoom.velocity;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\r\n if (!image.isTouched || !image.isMoved) {\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n return;\r\n }\r\n\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n var momentumDurationX = 300;\r\n var momentumDurationY = 300;\r\n var momentumDistanceX = velocity.x * momentumDurationX;\r\n var newPositionX = image.currentX + momentumDistanceX;\r\n var momentumDistanceY = velocity.y * momentumDurationY;\r\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\r\n\r\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\r\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\r\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\r\n image.currentX = newPositionX;\r\n image.currentY = newPositionY; // Define if we need image drag\r\n\r\n var scaledWidth = image.width * zoom.scale;\r\n var scaledHeight = image.height * zoom.scale;\r\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\r\n image.maxY = -image.minY;\r\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\r\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\r\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\r\n },\r\n onTransitionEnd: function onTransitionEnd() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n\r\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\r\n if (gesture.$imageEl) {\r\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\r\n }\r\n\r\n if (gesture.$imageWrapEl) {\r\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\r\n }\r\n\r\n zoom.scale = 1;\r\n zoom.currentScale = 1;\r\n gesture.$slideEl = undefined;\r\n gesture.$imageEl = undefined;\r\n gesture.$imageWrapEl = undefined;\r\n }\r\n },\r\n // Toggle Zoom\r\n toggle: function toggle(e) {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n\r\n if (zoom.scale && zoom.scale !== 1) {\r\n // Zoom Out\r\n zoom.out();\r\n } else {\r\n // Zoom In\r\n zoom.in(e);\r\n }\r\n },\r\n in: function _in(e) {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var params = swiper.params.zoom;\r\n var gesture = zoom.gesture,\r\n image = zoom.image;\r\n\r\n if (!gesture.$slideEl) {\r\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\r\n } else {\r\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n }\r\n\r\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\r\n }\r\n\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\r\n var touchX;\r\n var touchY;\r\n var offsetX;\r\n var offsetY;\r\n var diffX;\r\n var diffY;\r\n var translateX;\r\n var translateY;\r\n var imageWidth;\r\n var imageHeight;\r\n var scaledWidth;\r\n var scaledHeight;\r\n var translateMinX;\r\n var translateMinY;\r\n var translateMaxX;\r\n var translateMaxY;\r\n var slideWidth;\r\n var slideHeight;\r\n\r\n if (typeof image.touchesStart.x === 'undefined' && e) {\r\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\r\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\r\n } else {\r\n touchX = image.touchesStart.x;\r\n touchY = image.touchesStart.y;\r\n }\r\n\r\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n\r\n if (e) {\r\n slideWidth = gesture.$slideEl[0].offsetWidth;\r\n slideHeight = gesture.$slideEl[0].offsetHeight;\r\n offsetX = gesture.$slideEl.offset().left;\r\n offsetY = gesture.$slideEl.offset().top;\r\n diffX = offsetX + slideWidth / 2 - touchX;\r\n diffY = offsetY + slideHeight / 2 - touchY;\r\n imageWidth = gesture.$imageEl[0].offsetWidth;\r\n imageHeight = gesture.$imageEl[0].offsetHeight;\r\n scaledWidth = imageWidth * zoom.scale;\r\n scaledHeight = imageHeight * zoom.scale;\r\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\r\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\r\n translateMaxX = -translateMinX;\r\n translateMaxY = -translateMinY;\r\n translateX = diffX * zoom.scale;\r\n translateY = diffY * zoom.scale;\r\n\r\n if (translateX < translateMinX) {\r\n translateX = translateMinX;\r\n }\r\n\r\n if (translateX > translateMaxX) {\r\n translateX = translateMaxX;\r\n }\r\n\r\n if (translateY < translateMinY) {\r\n translateY = translateMinY;\r\n }\r\n\r\n if (translateY > translateMaxY) {\r\n translateY = translateMaxY;\r\n }\r\n } else {\r\n translateX = 0;\r\n translateY = 0;\r\n }\r\n\r\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\r\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\r\n },\r\n out: function out() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var params = swiper.params.zoom;\r\n var gesture = zoom.gesture;\r\n\r\n if (!gesture.$slideEl) {\r\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\r\n } else {\r\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n }\r\n\r\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\r\n }\r\n\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n zoom.scale = 1;\r\n zoom.currentScale = 1;\r\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\r\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\r\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\r\n gesture.$slideEl = undefined;\r\n },\r\n toggleGestures: function toggleGestures(method) {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var selector = zoom.slideSelector,\r\n passive = zoom.passiveListener;\r\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\r\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\r\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\r\n },\r\n enableGestures: function enableGestures() {\r\n if (this.zoom.gesturesEnabled) return;\r\n this.zoom.gesturesEnabled = true;\r\n this.zoom.toggleGestures('on');\r\n },\r\n disableGestures: function disableGestures() {\r\n if (!this.zoom.gesturesEnabled) return;\r\n this.zoom.gesturesEnabled = false;\r\n this.zoom.toggleGestures('off');\r\n },\r\n // Attach/Detach Events\r\n enable: function enable() {\r\n var swiper = this;\r\n var support = swiper.support;\r\n var zoom = swiper.zoom;\r\n if (zoom.enabled) return;\r\n zoom.enabled = true;\r\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n var activeListenerWithCapture = support.passiveListener ? {\r\n passive: false,\r\n capture: true\r\n } : true;\r\n var slideSelector = \".\" + swiper.params.slideClass;\r\n swiper.zoom.passiveListener = passiveListener;\r\n swiper.zoom.slideSelector = slideSelector; // Scale image\r\n\r\n if (support.gestures) {\r\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\r\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\r\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\r\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\r\n\r\n if (swiper.touchEvents.cancel) {\r\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\r\n }\r\n } // Move image\r\n\r\n\r\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\r\n },\r\n disable: function disable() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n if (!zoom.enabled) return;\r\n var support = swiper.support;\r\n swiper.zoom.enabled = false;\r\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n var activeListenerWithCapture = support.passiveListener ? {\r\n passive: false,\r\n capture: true\r\n } : true;\r\n var slideSelector = \".\" + swiper.params.slideClass; // Scale image\r\n\r\n if (support.gestures) {\r\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\r\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\r\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\r\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\r\n\r\n if (swiper.touchEvents.cancel) {\r\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\r\n }\r\n } // Move image\r\n\r\n\r\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\r\n }\r\n };\r\n var Zoom$1 = {\r\n name: 'zoom',\r\n params: {\r\n zoom: {\r\n enabled: false,\r\n maxRatio: 3,\r\n minRatio: 1,\r\n toggle: true,\r\n containerClass: 'swiper-zoom-container',\r\n zoomedSlideClass: 'swiper-slide-zoomed'\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n zoom: _extends({\r\n enabled: false,\r\n scale: 1,\r\n currentScale: 1,\r\n isScaling: false,\r\n gesture: {\r\n $slideEl: undefined,\r\n slideWidth: undefined,\r\n slideHeight: undefined,\r\n $imageEl: undefined,\r\n $imageWrapEl: undefined,\r\n maxRatio: 3\r\n },\r\n image: {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n currentX: undefined,\r\n currentY: undefined,\r\n minX: undefined,\r\n minY: undefined,\r\n maxX: undefined,\r\n maxY: undefined,\r\n width: undefined,\r\n height: undefined,\r\n startX: undefined,\r\n startY: undefined,\r\n touchesStart: {},\r\n touchesCurrent: {}\r\n },\r\n velocity: {\r\n x: undefined,\r\n y: undefined,\r\n prevPositionX: undefined,\r\n prevPositionY: undefined,\r\n prevTime: undefined\r\n }\r\n }, Zoom)\r\n });\r\n var scale = 1;\r\n Object.defineProperty(swiper.zoom, 'scale', {\r\n get: function get() {\r\n return scale;\r\n },\r\n set: function set(value) {\r\n if (scale !== value) {\r\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\r\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\r\n swiper.emit('zoomChange', value, imageEl, slideEl);\r\n }\r\n\r\n scale = value;\r\n }\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n if (swiper.params.zoom.enabled) {\r\n swiper.zoom.enable();\r\n }\r\n },\r\n destroy: function destroy(swiper) {\r\n swiper.zoom.disable();\r\n },\r\n touchStart: function touchStart(swiper, e) {\r\n if (!swiper.zoom.enabled) return;\r\n swiper.zoom.onTouchStart(e);\r\n },\r\n touchEnd: function touchEnd(swiper, e) {\r\n if (!swiper.zoom.enabled) return;\r\n swiper.zoom.onTouchEnd(e);\r\n },\r\n doubleTap: function doubleTap(swiper, e) {\r\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\r\n swiper.zoom.toggle(e);\r\n }\r\n },\r\n transitionEnd: function transitionEnd(swiper) {\r\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\r\n swiper.zoom.onTransitionEnd();\r\n }\r\n },\r\n slideChange: function slideChange(swiper) {\r\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\r\n swiper.zoom.onTransitionEnd();\r\n }\r\n }\r\n }\r\n };\r\n\r\n var Lazy = {\r\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\r\n if (loadInDuplicate === void 0) {\r\n loadInDuplicate = true;\r\n }\r\n\r\n var swiper = this;\r\n var params = swiper.params.lazy;\r\n if (typeof index === 'undefined') return;\r\n if (swiper.slides.length === 0) return;\r\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\r\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\r\n\r\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\r\n $images.push($slideEl[0]);\r\n }\r\n\r\n if ($images.length === 0) return;\r\n $images.each(function (imageEl) {\r\n var $imageEl = $(imageEl);\r\n $imageEl.addClass(params.loadingClass);\r\n var background = $imageEl.attr('data-background');\r\n var src = $imageEl.attr('data-src');\r\n var srcset = $imageEl.attr('data-srcset');\r\n var sizes = $imageEl.attr('data-sizes');\r\n var $pictureEl = $imageEl.parent('picture');\r\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\r\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\r\n\r\n if (background) {\r\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\r\n $imageEl.removeAttr('data-background');\r\n } else {\r\n if (srcset) {\r\n $imageEl.attr('srcset', srcset);\r\n $imageEl.removeAttr('data-srcset');\r\n }\r\n\r\n if (sizes) {\r\n $imageEl.attr('sizes', sizes);\r\n $imageEl.removeAttr('data-sizes');\r\n }\r\n\r\n if ($pictureEl.length) {\r\n $pictureEl.children('source').each(function (sourceEl) {\r\n var $source = $(sourceEl);\r\n\r\n if ($source.attr('data-srcset')) {\r\n $source.attr('srcset', $source.attr('data-srcset'));\r\n $source.removeAttr('data-srcset');\r\n }\r\n });\r\n }\r\n\r\n if (src) {\r\n $imageEl.attr('src', src);\r\n $imageEl.removeAttr('data-src');\r\n }\r\n }\r\n\r\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\r\n $slideEl.find(\".\" + params.preloaderClass).remove();\r\n\r\n if (swiper.params.loop && loadInDuplicate) {\r\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\r\n\r\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\r\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\r\n swiper.lazy.loadInSlide(originalSlide.index(), false);\r\n } else {\r\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\r\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\r\n }\r\n }\r\n\r\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\r\n\r\n if (swiper.params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n });\r\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\r\n });\r\n },\r\n load: function load() {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl,\r\n swiperParams = swiper.params,\r\n slides = swiper.slides,\r\n activeIndex = swiper.activeIndex;\r\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\r\n var params = swiperParams.lazy;\r\n var slidesPerView = swiperParams.slidesPerView;\r\n\r\n if (slidesPerView === 'auto') {\r\n slidesPerView = 0;\r\n }\r\n\r\n function slideExist(index) {\r\n if (isVirtual) {\r\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\r\n return true;\r\n }\r\n } else if (slides[index]) return true;\r\n\r\n return false;\r\n }\r\n\r\n function slideIndex(slideEl) {\r\n if (isVirtual) {\r\n return $(slideEl).attr('data-swiper-slide-index');\r\n }\r\n\r\n return $(slideEl).index();\r\n }\r\n\r\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\r\n\r\n if (swiper.params.watchSlidesVisibility) {\r\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\r\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\r\n swiper.lazy.loadInSlide(index);\r\n });\r\n } else if (slidesPerView > 1) {\r\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\r\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\r\n }\r\n } else {\r\n swiper.lazy.loadInSlide(activeIndex);\r\n }\r\n\r\n if (params.loadPrevNext) {\r\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\r\n var amount = params.loadPrevNextAmount;\r\n var spv = slidesPerView;\r\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\r\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\r\n\r\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\r\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\r\n } // Prev Slides\r\n\r\n\r\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\r\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\r\n }\r\n } else {\r\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\r\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\r\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\r\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\r\n }\r\n }\r\n },\r\n checkInViewOnLoad: function checkInViewOnLoad() {\r\n var window = getWindow();\r\n var swiper = this;\r\n if (!swiper || swiper.destroyed) return;\r\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\r\n var isWindow = $scrollElement[0] === window;\r\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\r\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\r\n var swiperOffset = swiper.$el.offset();\r\n var rtl = swiper.rtlTranslate;\r\n var inView = false;\r\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\r\n\r\n for (var i = 0; i < swiperCoord.length; i += 1) {\r\n var point = swiperCoord[i];\r\n\r\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\r\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\r\n\r\n inView = true;\r\n }\r\n }\r\n\r\n if (inView) {\r\n swiper.lazy.load();\r\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad);\r\n } else if (!swiper.lazy.scrollHandlerAttached) {\r\n swiper.lazy.scrollHandlerAttached = true;\r\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad);\r\n }\r\n }\r\n };\r\n var Lazy$1 = {\r\n name: 'lazy',\r\n params: {\r\n lazy: {\r\n checkInView: false,\r\n enabled: false,\r\n loadPrevNext: false,\r\n loadPrevNextAmount: 1,\r\n loadOnTransitionStart: false,\r\n scrollingElement: '',\r\n elementClass: 'swiper-lazy',\r\n loadingClass: 'swiper-lazy-loading',\r\n loadedClass: 'swiper-lazy-loaded',\r\n preloaderClass: 'swiper-lazy-preloader'\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n lazy: _extends({\r\n initialImageLoaded: false\r\n }, Lazy)\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\r\n swiper.params.preloadImages = false;\r\n }\r\n },\r\n init: function init(swiper) {\r\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\r\n if (swiper.params.lazy.checkInView) {\r\n swiper.lazy.checkInViewOnLoad();\r\n } else {\r\n swiper.lazy.load();\r\n }\r\n }\r\n },\r\n scroll: function scroll(swiper) {\r\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n resize: function resize(swiper) {\r\n if (swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n scrollbarDragMove: function scrollbarDragMove(swiper) {\r\n if (swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n transitionStart: function transitionStart(swiper) {\r\n if (swiper.params.lazy.enabled) {\r\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\r\n swiper.lazy.load();\r\n }\r\n }\r\n },\r\n transitionEnd: function transitionEnd(swiper) {\r\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n slideChange: function slideChange(swiper) {\r\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\r\n swiper.lazy.load();\r\n }\r\n }\r\n }\r\n };\r\n\r\n var Controller = {\r\n LinearSpline: function LinearSpline(x, y) {\r\n var binarySearch = function search() {\r\n var maxIndex;\r\n var minIndex;\r\n var guess;\r\n return function (array, val) {\r\n minIndex = -1;\r\n maxIndex = array.length;\r\n\r\n while (maxIndex - minIndex > 1) {\r\n guess = maxIndex + minIndex >> 1;\r\n\r\n if (array[guess] <= val) {\r\n minIndex = guess;\r\n } else {\r\n maxIndex = guess;\r\n }\r\n }\r\n\r\n return maxIndex;\r\n };\r\n }();\r\n\r\n this.x = x;\r\n this.y = y;\r\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\r\n // (x1,y1) is the known point before given value,\r\n // (x3,y3) is the known point after given value.\r\n\r\n var i1;\r\n var i3;\r\n\r\n this.interpolate = function interpolate(x2) {\r\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\r\n\r\n i3 = binarySearch(this.x, x2);\r\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\r\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\r\n\r\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\r\n };\r\n\r\n return this;\r\n },\r\n // xxx: for now i will just save one spline function to to\r\n getInterpolateFunction: function getInterpolateFunction(c) {\r\n var swiper = this;\r\n\r\n if (!swiper.controller.spline) {\r\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\r\n }\r\n },\r\n setTranslate: function setTranslate(_setTranslate, byController) {\r\n var swiper = this;\r\n var controlled = swiper.controller.control;\r\n var multiplier;\r\n var controlledTranslate;\r\n var Swiper = swiper.constructor;\r\n\r\n function setControlledTranslate(c) {\r\n // this will create an Interpolate function based on the snapGrids\r\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\r\n // it makes sense to create this only once and recall it for the interpolation\r\n // the function does a lot of value caching for performance\r\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\r\n\r\n if (swiper.params.controller.by === 'slide') {\r\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\r\n // but it did not work out\r\n\r\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\r\n }\r\n\r\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\r\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\r\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\r\n }\r\n\r\n if (swiper.params.controller.inverse) {\r\n controlledTranslate = c.maxTranslate() - controlledTranslate;\r\n }\r\n\r\n c.updateProgress(controlledTranslate);\r\n c.setTranslate(controlledTranslate, swiper);\r\n c.updateActiveIndex();\r\n c.updateSlidesClasses();\r\n }\r\n\r\n if (Array.isArray(controlled)) {\r\n for (var i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTranslate(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTranslate(controlled);\r\n }\r\n },\r\n setTransition: function setTransition(duration, byController) {\r\n var swiper = this;\r\n var Swiper = swiper.constructor;\r\n var controlled = swiper.controller.control;\r\n var i;\r\n\r\n function setControlledTransition(c) {\r\n c.setTransition(duration, swiper);\r\n\r\n if (duration !== 0) {\r\n c.transitionStart();\r\n\r\n if (c.params.autoHeight) {\r\n nextTick(function () {\r\n c.updateAutoHeight();\r\n });\r\n }\r\n\r\n c.$wrapperEl.transitionEnd(function () {\r\n if (!controlled) return;\r\n\r\n if (c.params.loop && swiper.params.controller.by === 'slide') {\r\n c.loopFix();\r\n }\r\n\r\n c.transitionEnd();\r\n });\r\n }\r\n }\r\n\r\n if (Array.isArray(controlled)) {\r\n for (i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTransition(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTransition(controlled);\r\n }\r\n }\r\n };\r\n var Controller$1 = {\r\n name: 'controller',\r\n params: {\r\n controller: {\r\n control: undefined,\r\n inverse: false,\r\n by: 'slide' // or 'container'\r\n\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n controller: _extends({\r\n control: swiper.params.controller.control\r\n }, Controller)\r\n });\r\n },\r\n on: {\r\n update: function update(swiper) {\r\n if (!swiper.controller.control) return;\r\n\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n },\r\n resize: function resize(swiper) {\r\n if (!swiper.controller.control) return;\r\n\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n },\r\n observerUpdate: function observerUpdate(swiper) {\r\n if (!swiper.controller.control) return;\r\n\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n },\r\n setTranslate: function setTranslate(swiper, translate, byController) {\r\n if (!swiper.controller.control) return;\r\n swiper.controller.setTranslate(translate, byController);\r\n },\r\n setTransition: function setTransition(swiper, duration, byController) {\r\n if (!swiper.controller.control) return;\r\n swiper.controller.setTransition(duration, byController);\r\n }\r\n }\r\n };\r\n\r\n var A11y = {\r\n getRandomNumber: function getRandomNumber(size) {\r\n if (size === void 0) {\r\n size = 16;\r\n }\r\n\r\n var randomChar = function randomChar() {\r\n return Math.round(16 * Math.random()).toString(16);\r\n };\r\n\r\n return 'x'.repeat(size).replace(/x/g, randomChar);\r\n },\r\n makeElFocusable: function makeElFocusable($el) {\r\n $el.attr('tabIndex', '0');\r\n return $el;\r\n },\r\n makeElNotFocusable: function makeElNotFocusable($el) {\r\n $el.attr('tabIndex', '-1');\r\n return $el;\r\n },\r\n addElRole: function addElRole($el, role) {\r\n $el.attr('role', role);\r\n return $el;\r\n },\r\n addElRoleDescription: function addElRoleDescription($el, description) {\r\n $el.attr('aria-role-description', description);\r\n return $el;\r\n },\r\n addElControls: function addElControls($el, controls) {\r\n $el.attr('aria-controls', controls);\r\n return $el;\r\n },\r\n addElLabel: function addElLabel($el, label) {\r\n $el.attr('aria-label', label);\r\n return $el;\r\n },\r\n addElId: function addElId($el, id) {\r\n $el.attr('id', id);\r\n return $el;\r\n },\r\n addElLive: function addElLive($el, live) {\r\n $el.attr('aria-live', live);\r\n return $el;\r\n },\r\n disableEl: function disableEl($el) {\r\n $el.attr('aria-disabled', true);\r\n return $el;\r\n },\r\n enableEl: function enableEl($el) {\r\n $el.attr('aria-disabled', false);\r\n return $el;\r\n },\r\n onEnterKey: function onEnterKey(e) {\r\n var swiper = this;\r\n var params = swiper.params.a11y;\r\n if (e.keyCode !== 13) return;\r\n var $targetEl = $(e.target);\r\n\r\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\r\n if (!(swiper.isEnd && !swiper.params.loop)) {\r\n swiper.slideNext();\r\n }\r\n\r\n if (swiper.isEnd) {\r\n swiper.a11y.notify(params.lastSlideMessage);\r\n } else {\r\n swiper.a11y.notify(params.nextSlideMessage);\r\n }\r\n }\r\n\r\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\r\n if (!(swiper.isBeginning && !swiper.params.loop)) {\r\n swiper.slidePrev();\r\n }\r\n\r\n if (swiper.isBeginning) {\r\n swiper.a11y.notify(params.firstSlideMessage);\r\n } else {\r\n swiper.a11y.notify(params.prevSlideMessage);\r\n }\r\n }\r\n\r\n if (swiper.pagination && $targetEl.is(\".\" + swiper.params.pagination.bulletClass.replace(/ /g, '.'))) {\r\n $targetEl[0].click();\r\n }\r\n },\r\n notify: function notify(message) {\r\n var swiper = this;\r\n var notification = swiper.a11y.liveRegion;\r\n if (notification.length === 0) return;\r\n notification.html('');\r\n notification.html(message);\r\n },\r\n updateNavigation: function updateNavigation() {\r\n var swiper = this;\r\n if (swiper.params.loop || !swiper.navigation) return;\r\n var _swiper$navigation = swiper.navigation,\r\n $nextEl = _swiper$navigation.$nextEl,\r\n $prevEl = _swiper$navigation.$prevEl;\r\n\r\n if ($prevEl && $prevEl.length > 0) {\r\n if (swiper.isBeginning) {\r\n swiper.a11y.disableEl($prevEl);\r\n swiper.a11y.makeElNotFocusable($prevEl);\r\n } else {\r\n swiper.a11y.enableEl($prevEl);\r\n swiper.a11y.makeElFocusable($prevEl);\r\n }\r\n }\r\n\r\n if ($nextEl && $nextEl.length > 0) {\r\n if (swiper.isEnd) {\r\n swiper.a11y.disableEl($nextEl);\r\n swiper.a11y.makeElNotFocusable($nextEl);\r\n } else {\r\n swiper.a11y.enableEl($nextEl);\r\n swiper.a11y.makeElFocusable($nextEl);\r\n }\r\n }\r\n },\r\n updatePagination: function updatePagination() {\r\n var swiper = this;\r\n var params = swiper.params.a11y;\r\n\r\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n swiper.pagination.bullets.each(function (bulletEl) {\r\n var $bulletEl = $(bulletEl);\r\n swiper.a11y.makeElFocusable($bulletEl);\r\n\r\n if (!swiper.params.pagination.renderBullet) {\r\n swiper.a11y.addElRole($bulletEl, 'button');\r\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\r\n }\r\n });\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n var params = swiper.params.a11y;\r\n swiper.$el.append(swiper.a11y.liveRegion); // Container\r\n\r\n var $containerEl = swiper.$el;\r\n\r\n if (params.containerRoleDescriptionMessage) {\r\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\r\n }\r\n\r\n if (params.containerMessage) {\r\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\r\n } // Wrapper\r\n\r\n\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\r\n var live;\r\n swiper.a11y.addElId($wrapperEl, wrapperId);\r\n\r\n if (swiper.params.autoplay && swiper.params.autoplay.enabled) {\r\n live = 'off';\r\n } else {\r\n live = 'polite';\r\n }\r\n\r\n swiper.a11y.addElLive($wrapperEl, live); // Slide\r\n\r\n if (params.itemRoleDescriptionMessage) {\r\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\r\n }\r\n\r\n swiper.a11y.addElRole($(swiper.slides), 'group');\r\n swiper.slides.each(function (slideEl) {\r\n var $slideEl = $(slideEl);\r\n swiper.a11y.addElLabel($slideEl, $slideEl.index() + 1 + \" / \" + swiper.slides.length);\r\n }); // Navigation\r\n\r\n var $nextEl;\r\n var $prevEl;\r\n\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n\r\n if ($nextEl && $nextEl.length) {\r\n swiper.a11y.makeElFocusable($nextEl);\r\n\r\n if ($nextEl[0].tagName !== 'BUTTON') {\r\n swiper.a11y.addElRole($nextEl, 'button');\r\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\r\n }\r\n\r\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\r\n swiper.a11y.addElControls($nextEl, wrapperId);\r\n }\r\n\r\n if ($prevEl && $prevEl.length) {\r\n swiper.a11y.makeElFocusable($prevEl);\r\n\r\n if ($prevEl[0].tagName !== 'BUTTON') {\r\n swiper.a11y.addElRole($prevEl, 'button');\r\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\r\n }\r\n\r\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\r\n swiper.a11y.addElControls($prevEl, wrapperId);\r\n } // Pagination\r\n\r\n\r\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n swiper.pagination.$el.on('keydown', \".\" + swiper.params.pagination.bulletClass.replace(/ /g, '.'), swiper.a11y.onEnterKey);\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\r\n var $nextEl;\r\n var $prevEl;\r\n\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n\r\n if ($nextEl) {\r\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\r\n }\r\n\r\n if ($prevEl) {\r\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\r\n } // Pagination\r\n\r\n\r\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n swiper.pagination.$el.off('keydown', \".\" + swiper.params.pagination.bulletClass.replace(/ /g, '.'), swiper.a11y.onEnterKey);\r\n }\r\n }\r\n };\r\n var A11y$1 = {\r\n name: 'a11y',\r\n params: {\r\n a11y: {\r\n enabled: true,\r\n notificationClass: 'swiper-notification',\r\n prevSlideMessage: 'Previous slide',\r\n nextSlideMessage: 'Next slide',\r\n firstSlideMessage: 'This is the first slide',\r\n lastSlideMessage: 'This is the last slide',\r\n paginationBulletMessage: 'Go to slide {{index}}',\r\n containerMessage: null,\r\n containerRoleDescriptionMessage: null,\r\n itemRoleDescriptionMessage: null\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n a11y: _extends(_extends({}, A11y), {}, {\r\n liveRegion: $(\"\")\r\n })\r\n });\r\n },\r\n on: {\r\n afterInit: function afterInit(swiper) {\r\n if (!swiper.params.a11y.enabled) return;\r\n swiper.a11y.init();\r\n swiper.a11y.updateNavigation();\r\n },\r\n toEdge: function toEdge(swiper) {\r\n if (!swiper.params.a11y.enabled) return;\r\n swiper.a11y.updateNavigation();\r\n },\r\n fromEdge: function fromEdge(swiper) {\r\n if (!swiper.params.a11y.enabled) return;\r\n swiper.a11y.updateNavigation();\r\n },\r\n paginationUpdate: function paginationUpdate(swiper) {\r\n if (!swiper.params.a11y.enabled) return;\r\n swiper.a11y.updatePagination();\r\n },\r\n destroy: function destroy(swiper) {\r\n if (!swiper.params.a11y.enabled) return;\r\n swiper.a11y.destroy();\r\n }\r\n }\r\n };\r\n\r\n var History = {\r\n init: function init() {\r\n var swiper = this;\r\n var window = getWindow();\r\n if (!swiper.params.history) return;\r\n\r\n if (!window.history || !window.history.pushState) {\r\n swiper.params.history.enabled = false;\r\n swiper.params.hashNavigation.enabled = true;\r\n return;\r\n }\r\n\r\n var history = swiper.history;\r\n history.initialized = true;\r\n history.paths = History.getPathValues(swiper.params.url);\r\n if (!history.paths.key && !history.paths.value) return;\r\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\r\n\r\n if (!swiper.params.history.replaceState) {\r\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n var window = getWindow();\r\n\r\n if (!swiper.params.history.replaceState) {\r\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\r\n }\r\n },\r\n setHistoryPopState: function setHistoryPopState() {\r\n var swiper = this;\r\n swiper.history.paths = History.getPathValues(swiper.params.url);\r\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\r\n },\r\n getPathValues: function getPathValues(urlOverride) {\r\n var window = getWindow();\r\n var location;\r\n\r\n if (urlOverride) {\r\n location = new URL(urlOverride);\r\n } else {\r\n location = window.location;\r\n }\r\n\r\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\r\n return part !== '';\r\n });\r\n var total = pathArray.length;\r\n var key = pathArray[total - 2];\r\n var value = pathArray[total - 1];\r\n return {\r\n key: key,\r\n value: value\r\n };\r\n },\r\n setHistory: function setHistory(key, index) {\r\n var swiper = this;\r\n var window = getWindow();\r\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\r\n var location;\r\n\r\n if (swiper.params.url) {\r\n location = new URL(swiper.params.url);\r\n } else {\r\n location = window.location;\r\n }\r\n\r\n var slide = swiper.slides.eq(index);\r\n var value = History.slugify(slide.attr('data-history'));\r\n\r\n if (!location.pathname.includes(key)) {\r\n value = key + \"/\" + value;\r\n }\r\n\r\n var currentState = window.history.state;\r\n\r\n if (currentState && currentState.value === value) {\r\n return;\r\n }\r\n\r\n if (swiper.params.history.replaceState) {\r\n window.history.replaceState({\r\n value: value\r\n }, null, value);\r\n } else {\r\n window.history.pushState({\r\n value: value\r\n }, null, value);\r\n }\r\n },\r\n slugify: function slugify(text) {\r\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\r\n },\r\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\r\n var swiper = this;\r\n\r\n if (value) {\r\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n var slide = swiper.slides.eq(i);\r\n var slideHistory = History.slugify(slide.attr('data-history'));\r\n\r\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n var index = slide.index();\r\n swiper.slideTo(index, speed, runCallbacks);\r\n }\r\n }\r\n } else {\r\n swiper.slideTo(0, speed, runCallbacks);\r\n }\r\n }\r\n };\r\n var History$1 = {\r\n name: 'history',\r\n params: {\r\n history: {\r\n enabled: false,\r\n replaceState: false,\r\n key: 'slides'\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n history: _extends({}, History)\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n if (swiper.params.history.enabled) {\r\n swiper.history.init();\r\n }\r\n },\r\n destroy: function destroy(swiper) {\r\n if (swiper.params.history.enabled) {\r\n swiper.history.destroy();\r\n }\r\n },\r\n transitionEnd: function transitionEnd(swiper) {\r\n if (swiper.history.initialized) {\r\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\r\n }\r\n },\r\n slideChange: function slideChange(swiper) {\r\n if (swiper.history.initialized && swiper.params.cssMode) {\r\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var HashNavigation = {\r\n onHashCange: function onHashCange() {\r\n var swiper = this;\r\n var document = getDocument();\r\n swiper.emit('hashChange');\r\n var newHash = document.location.hash.replace('#', '');\r\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\r\n\r\n if (newHash !== activeSlideHash) {\r\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\r\n if (typeof newIndex === 'undefined') return;\r\n swiper.slideTo(newIndex);\r\n }\r\n },\r\n setHash: function setHash() {\r\n var swiper = this;\r\n var window = getWindow();\r\n var document = getDocument();\r\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\r\n\r\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\r\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\r\n swiper.emit('hashSet');\r\n } else {\r\n var slide = swiper.slides.eq(swiper.activeIndex);\r\n var hash = slide.attr('data-hash') || slide.attr('data-history');\r\n document.location.hash = hash || '';\r\n swiper.emit('hashSet');\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n var document = getDocument();\r\n var window = getWindow();\r\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\r\n swiper.hashNavigation.initialized = true;\r\n var hash = document.location.hash.replace('#', '');\r\n\r\n if (hash) {\r\n var speed = 0;\r\n\r\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n var slide = swiper.slides.eq(i);\r\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\r\n\r\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n var index = slide.index();\r\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\r\n }\r\n }\r\n }\r\n\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n var window = getWindow();\r\n\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\r\n }\r\n }\r\n };\r\n var HashNavigation$1 = {\r\n name: 'hash-navigation',\r\n params: {\r\n hashNavigation: {\r\n enabled: false,\r\n replaceState: false,\r\n watchState: false\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n hashNavigation: _extends({\r\n initialized: false\r\n }, HashNavigation)\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n if (swiper.params.hashNavigation.enabled) {\r\n swiper.hashNavigation.init();\r\n }\r\n },\r\n destroy: function destroy(swiper) {\r\n if (swiper.params.hashNavigation.enabled) {\r\n swiper.hashNavigation.destroy();\r\n }\r\n },\r\n transitionEnd: function transitionEnd(swiper) {\r\n if (swiper.hashNavigation.initialized) {\r\n swiper.hashNavigation.setHash();\r\n }\r\n },\r\n slideChange: function slideChange(swiper) {\r\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\r\n swiper.hashNavigation.setHash();\r\n }\r\n }\r\n }\r\n };\r\n\r\n var Autoplay = {\r\n run: function run() {\r\n var swiper = this;\r\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\r\n var delay = swiper.params.autoplay.delay;\r\n\r\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\r\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\r\n }\r\n\r\n clearTimeout(swiper.autoplay.timeout);\r\n swiper.autoplay.timeout = nextTick(function () {\r\n var autoplayResult;\r\n\r\n if (swiper.params.autoplay.reverseDirection) {\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.isBeginning) {\r\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else {\r\n swiper.autoplay.stop();\r\n }\r\n } else if (swiper.params.loop) {\r\n swiper.loopFix();\r\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.isEnd) {\r\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else {\r\n swiper.autoplay.stop();\r\n }\r\n\r\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\r\n swiper.autoplay.run();\r\n }\r\n }, delay);\r\n },\r\n start: function start() {\r\n var swiper = this;\r\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\r\n if (swiper.autoplay.running) return false;\r\n swiper.autoplay.running = true;\r\n swiper.emit('autoplayStart');\r\n swiper.autoplay.run();\r\n return true;\r\n },\r\n stop: function stop() {\r\n var swiper = this;\r\n if (!swiper.autoplay.running) return false;\r\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\r\n\r\n if (swiper.autoplay.timeout) {\r\n clearTimeout(swiper.autoplay.timeout);\r\n swiper.autoplay.timeout = undefined;\r\n }\r\n\r\n swiper.autoplay.running = false;\r\n swiper.emit('autoplayStop');\r\n return true;\r\n },\r\n pause: function pause(speed) {\r\n var swiper = this;\r\n if (!swiper.autoplay.running) return;\r\n if (swiper.autoplay.paused) return;\r\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\r\n swiper.autoplay.paused = true;\r\n\r\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\r\n swiper.autoplay.paused = false;\r\n swiper.autoplay.run();\r\n } else {\r\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\r\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\r\n }\r\n },\r\n onVisibilityChange: function onVisibilityChange() {\r\n var swiper = this;\r\n var document = getDocument();\r\n\r\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\r\n swiper.autoplay.pause();\r\n }\r\n\r\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\r\n swiper.autoplay.run();\r\n swiper.autoplay.paused = false;\r\n }\r\n },\r\n onTransitionEnd: function onTransitionEnd(e) {\r\n var swiper = this;\r\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\r\n if (e.target !== swiper.$wrapperEl[0]) return;\r\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\r\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\r\n swiper.autoplay.paused = false;\r\n\r\n if (!swiper.autoplay.running) {\r\n swiper.autoplay.stop();\r\n } else {\r\n swiper.autoplay.run();\r\n }\r\n }\r\n };\r\n var Autoplay$1 = {\r\n name: 'autoplay',\r\n params: {\r\n autoplay: {\r\n enabled: false,\r\n delay: 3000,\r\n waitForTransition: true,\r\n disableOnInteraction: true,\r\n stopOnLastSlide: false,\r\n reverseDirection: false\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n autoplay: _extends(_extends({}, Autoplay), {}, {\r\n running: false,\r\n paused: false\r\n })\r\n });\r\n },\r\n on: {\r\n init: function init(swiper) {\r\n if (swiper.params.autoplay.enabled) {\r\n swiper.autoplay.start();\r\n var document = getDocument();\r\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\r\n }\r\n },\r\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\r\n if (swiper.autoplay.running) {\r\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\r\n swiper.autoplay.pause(speed);\r\n } else {\r\n swiper.autoplay.stop();\r\n }\r\n }\r\n },\r\n sliderFirstMove: function sliderFirstMove(swiper) {\r\n if (swiper.autoplay.running) {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n swiper.autoplay.stop();\r\n } else {\r\n swiper.autoplay.pause();\r\n }\r\n }\r\n },\r\n touchEnd: function touchEnd(swiper) {\r\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\r\n swiper.autoplay.run();\r\n }\r\n },\r\n destroy: function destroy(swiper) {\r\n if (swiper.autoplay.running) {\r\n swiper.autoplay.stop();\r\n }\r\n\r\n var document = getDocument();\r\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\r\n }\r\n }\r\n };\r\n\r\n var Fade = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var slides = swiper.slides;\r\n\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var $slideEl = swiper.slides.eq(i);\r\n var offset = $slideEl[0].swiperSlideOffset;\r\n var tx = -offset;\r\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\r\n var ty = 0;\r\n\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n\r\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\r\n $slideEl.css({\r\n opacity: slideOpacity\r\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n var slides = swiper.slides,\r\n $wrapperEl = swiper.$wrapperEl;\r\n slides.transition(duration);\r\n\r\n if (swiper.params.virtualTranslate && duration !== 0) {\r\n var eventTriggered = false;\r\n slides.transitionEnd(function () {\r\n if (eventTriggered) return;\r\n if (!swiper || swiper.destroyed) return;\r\n eventTriggered = true;\r\n swiper.animating = false;\r\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n\r\n for (var i = 0; i < triggerEvents.length; i += 1) {\r\n $wrapperEl.trigger(triggerEvents[i]);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n var EffectFade = {\r\n name: 'effect-fade',\r\n params: {\r\n fadeEffect: {\r\n crossFade: false\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n fadeEffect: _extends({}, Fade)\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n if (swiper.params.effect !== 'fade') return;\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\r\n var overwriteParams = {\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: true\r\n };\r\n extend$1(swiper.params, overwriteParams);\r\n extend$1(swiper.originalParams, overwriteParams);\r\n },\r\n setTranslate: function setTranslate(swiper) {\r\n if (swiper.params.effect !== 'fade') return;\r\n swiper.fadeEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(swiper, duration) {\r\n if (swiper.params.effect !== 'fade') return;\r\n swiper.fadeEffect.setTransition(duration);\r\n }\r\n }\r\n };\r\n\r\n var Cube = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var $el = swiper.$el,\r\n $wrapperEl = swiper.$wrapperEl,\r\n slides = swiper.slides,\r\n swiperWidth = swiper.width,\r\n swiperHeight = swiper.height,\r\n rtl = swiper.rtlTranslate,\r\n swiperSize = swiper.size,\r\n browser = swiper.browser;\r\n var params = swiper.params.cubeEffect;\r\n var isHorizontal = swiper.isHorizontal();\r\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n var wrapperRotate = 0;\r\n var $cubeShadowEl;\r\n\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\r\n\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $wrapperEl.append($cubeShadowEl);\r\n }\r\n\r\n $cubeShadowEl.css({\r\n height: swiperWidth + \"px\"\r\n });\r\n } else {\r\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\r\n\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $el.append($cubeShadowEl);\r\n }\r\n }\r\n }\r\n\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var $slideEl = slides.eq(i);\r\n var slideIndex = i;\r\n\r\n if (isVirtual) {\r\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\r\n }\r\n\r\n var slideAngle = slideIndex * 90;\r\n var round = Math.floor(slideAngle / 360);\r\n\r\n if (rtl) {\r\n slideAngle = -slideAngle;\r\n round = Math.floor(-slideAngle / 360);\r\n }\r\n\r\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n var tx = 0;\r\n var ty = 0;\r\n var tz = 0;\r\n\r\n if (slideIndex % 4 === 0) {\r\n tx = -round * 4 * swiperSize;\r\n tz = 0;\r\n } else if ((slideIndex - 1) % 4 === 0) {\r\n tx = 0;\r\n tz = -round * 4 * swiperSize;\r\n } else if ((slideIndex - 2) % 4 === 0) {\r\n tx = swiperSize + round * 4 * swiperSize;\r\n tz = swiperSize;\r\n } else if ((slideIndex - 3) % 4 === 0) {\r\n tx = -swiperSize;\r\n tz = 3 * swiperSize + swiperSize * 4 * round;\r\n }\r\n\r\n if (rtl) {\r\n tx = -tx;\r\n }\r\n\r\n if (!isHorizontal) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n\r\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\r\n\r\n if (progress <= 1 && progress > -1) {\r\n wrapperRotate = slideIndex * 90 + progress * 90;\r\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\r\n }\r\n\r\n $slideEl.transform(transform);\r\n\r\n if (params.slideShadows) {\r\n // Set shadows\r\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = $(\"
\");\r\n $slideEl.append(shadowBefore);\r\n }\r\n\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = $(\"
\");\r\n $slideEl.append(shadowAfter);\r\n }\r\n\r\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n }\r\n }\r\n\r\n $wrapperEl.css({\r\n '-webkit-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\r\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\r\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\r\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\r\n });\r\n\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + params.shadowScale + \")\");\r\n } else {\r\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\r\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\r\n var scale1 = params.shadowScale;\r\n var scale2 = params.shadowScale / multiplier;\r\n var offset = params.shadowOffset;\r\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -swiperHeight / 2 / scale2 + \"px) rotateX(-90deg)\");\r\n }\r\n }\r\n\r\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\r\n $wrapperEl.transform(\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n var $el = swiper.$el,\r\n slides = swiper.slides;\r\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\r\n\r\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\r\n $el.find('.swiper-cube-shadow').transition(duration);\r\n }\r\n }\r\n };\r\n var EffectCube = {\r\n name: 'effect-cube',\r\n params: {\r\n cubeEffect: {\r\n slideShadows: true,\r\n shadow: true,\r\n shadowOffset: 20,\r\n shadowScale: 0.94\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n cubeEffect: _extends({}, Cube)\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n if (swiper.params.effect !== 'cube') return;\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\r\n var overwriteParams = {\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n resistanceRatio: 0,\r\n spaceBetween: 0,\r\n centeredSlides: false,\r\n virtualTranslate: true\r\n };\r\n extend$1(swiper.params, overwriteParams);\r\n extend$1(swiper.originalParams, overwriteParams);\r\n },\r\n setTranslate: function setTranslate(swiper) {\r\n if (swiper.params.effect !== 'cube') return;\r\n swiper.cubeEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(swiper, duration) {\r\n if (swiper.params.effect !== 'cube') return;\r\n swiper.cubeEffect.setTransition(duration);\r\n }\r\n }\r\n };\r\n\r\n var Flip = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var slides = swiper.slides,\r\n rtl = swiper.rtlTranslate;\r\n\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var $slideEl = slides.eq(i);\r\n var progress = $slideEl[0].progress;\r\n\r\n if (swiper.params.flipEffect.limitRotation) {\r\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n }\r\n\r\n var offset = $slideEl[0].swiperSlideOffset;\r\n var rotate = -180 * progress;\r\n var rotateY = rotate;\r\n var rotateX = 0;\r\n var tx = -offset;\r\n var ty = 0;\r\n\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n rotateX = -rotateY;\r\n rotateY = 0;\r\n } else if (rtl) {\r\n rotateY = -rotateY;\r\n }\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\r\n\r\n if (swiper.params.flipEffect.slideShadows) {\r\n // Set shadows\r\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = $(\"
\");\r\n $slideEl.append(shadowBefore);\r\n }\r\n\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = $(\"
\");\r\n $slideEl.append(shadowAfter);\r\n }\r\n\r\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n }\r\n\r\n $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n var slides = swiper.slides,\r\n activeIndex = swiper.activeIndex,\r\n $wrapperEl = swiper.$wrapperEl;\r\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\r\n\r\n if (swiper.params.virtualTranslate && duration !== 0) {\r\n var eventTriggered = false; // eslint-disable-next-line\r\n\r\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\r\n if (eventTriggered) return;\r\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\r\n\r\n eventTriggered = true;\r\n swiper.animating = false;\r\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n\r\n for (var i = 0; i < triggerEvents.length; i += 1) {\r\n $wrapperEl.trigger(triggerEvents[i]);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n var EffectFlip = {\r\n name: 'effect-flip',\r\n params: {\r\n flipEffect: {\r\n slideShadows: true,\r\n limitRotation: true\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n flipEffect: _extends({}, Flip)\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n if (swiper.params.effect !== 'flip') return;\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\r\n var overwriteParams = {\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: true\r\n };\r\n extend$1(swiper.params, overwriteParams);\r\n extend$1(swiper.originalParams, overwriteParams);\r\n },\r\n setTranslate: function setTranslate(swiper) {\r\n if (swiper.params.effect !== 'flip') return;\r\n swiper.flipEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(swiper, duration) {\r\n if (swiper.params.effect !== 'flip') return;\r\n swiper.flipEffect.setTransition(duration);\r\n }\r\n }\r\n };\r\n\r\n var Coverflow = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var swiperWidth = swiper.width,\r\n swiperHeight = swiper.height,\r\n slides = swiper.slides,\r\n slidesSizesGrid = swiper.slidesSizesGrid;\r\n var params = swiper.params.coverflowEffect;\r\n var isHorizontal = swiper.isHorizontal();\r\n var transform = swiper.translate;\r\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\r\n var rotate = isHorizontal ? params.rotate : -params.rotate;\r\n var translate = params.depth; // Each slide offset from center\r\n\r\n for (var i = 0, length = slides.length; i < length; i += 1) {\r\n var $slideEl = slides.eq(i);\r\n var slideSize = slidesSizesGrid[i];\r\n var slideOffset = $slideEl[0].swiperSlideOffset;\r\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\r\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\r\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\r\n\r\n var translateZ = -translate * Math.abs(offsetMultiplier);\r\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\r\n\r\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\r\n stretch = parseFloat(params.stretch) / 100 * slideSize;\r\n }\r\n\r\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\r\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\r\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\r\n\r\n if (Math.abs(translateX) < 0.001) translateX = 0;\r\n if (Math.abs(translateY) < 0.001) translateY = 0;\r\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\r\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\r\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\r\n if (Math.abs(scale) < 0.001) scale = 0;\r\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\r\n $slideEl.transform(slideTransform);\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\r\n\r\n if (params.slideShadows) {\r\n // Set shadows\r\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n\r\n if ($shadowBeforeEl.length === 0) {\r\n $shadowBeforeEl = $(\"
\");\r\n $slideEl.append($shadowBeforeEl);\r\n }\r\n\r\n if ($shadowAfterEl.length === 0) {\r\n $shadowAfterEl = $(\"
\");\r\n $slideEl.append($shadowAfterEl);\r\n }\r\n\r\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\r\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\r\n }\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\r\n }\r\n };\r\n var EffectCoverflow = {\r\n name: 'effect-coverflow',\r\n params: {\r\n coverflowEffect: {\r\n rotate: 50,\r\n stretch: 0,\r\n depth: 100,\r\n scale: 1,\r\n modifier: 1,\r\n slideShadows: true\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n coverflowEffect: _extends({}, Coverflow)\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n if (swiper.params.effect !== 'coverflow') return;\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\r\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n },\r\n setTranslate: function setTranslate(swiper) {\r\n if (swiper.params.effect !== 'coverflow') return;\r\n swiper.coverflowEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(swiper, duration) {\r\n if (swiper.params.effect !== 'coverflow') return;\r\n swiper.coverflowEffect.setTransition(duration);\r\n }\r\n }\r\n };\r\n\r\n var Thumbs = {\r\n init: function init() {\r\n var swiper = this;\r\n var thumbsParams = swiper.params.thumbs;\r\n if (swiper.thumbs.initialized) return false;\r\n swiper.thumbs.initialized = true;\r\n var SwiperClass = swiper.constructor;\r\n\r\n if (thumbsParams.swiper instanceof SwiperClass) {\r\n swiper.thumbs.swiper = thumbsParams.swiper;\r\n extend$1(swiper.thumbs.swiper.originalParams, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false\r\n });\r\n extend$1(swiper.thumbs.swiper.params, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false\r\n });\r\n } else if (isObject$1(thumbsParams.swiper)) {\r\n swiper.thumbs.swiper = new SwiperClass(extend$1({}, thumbsParams.swiper, {\r\n watchSlidesVisibility: true,\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false\r\n }));\r\n swiper.thumbs.swiperCreated = true;\r\n }\r\n\r\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\r\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\r\n return true;\r\n },\r\n onThumbClick: function onThumbClick() {\r\n var swiper = this;\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) return;\r\n var clickedIndex = thumbsSwiper.clickedIndex;\r\n var clickedSlide = thumbsSwiper.clickedSlide;\r\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\r\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\r\n var slideToIndex;\r\n\r\n if (thumbsSwiper.params.loop) {\r\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n slideToIndex = clickedIndex;\r\n }\r\n\r\n if (swiper.params.loop) {\r\n var currentIndex = swiper.activeIndex;\r\n\r\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\r\n swiper.loopFix(); // eslint-disable-next-line\r\n\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n currentIndex = swiper.activeIndex;\r\n }\r\n\r\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\r\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\r\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\r\n }\r\n\r\n swiper.slideTo(slideToIndex);\r\n },\r\n update: function update(initial) {\r\n var swiper = this;\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) return;\r\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\r\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\r\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\r\n\r\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\r\n var currentThumbsIndex = thumbsSwiper.activeIndex;\r\n var newThumbsIndex;\r\n var direction;\r\n\r\n if (thumbsSwiper.params.loop) {\r\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\r\n thumbsSwiper.loopFix(); // eslint-disable-next-line\r\n\r\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\r\n currentThumbsIndex = thumbsSwiper.activeIndex;\r\n } // Find actual thumbs index to slide to\r\n\r\n\r\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\r\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\r\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex;\r\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\r\n } else {\r\n newThumbsIndex = swiper.realIndex;\r\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\r\n }\r\n\r\n if (useOffset) {\r\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\r\n }\r\n\r\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\r\n if (thumbsSwiper.params.centeredSlides) {\r\n if (newThumbsIndex > currentThumbsIndex) {\r\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\r\n } else {\r\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\r\n }\r\n } else if (newThumbsIndex > currentThumbsIndex) {\r\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\r\n }\r\n\r\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\r\n }\r\n } // Activate thumbs\r\n\r\n\r\n var thumbsToActivate = 1;\r\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\r\n\r\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\r\n thumbsToActivate = swiper.params.slidesPerView;\r\n }\r\n\r\n if (!swiper.params.thumbs.multipleActiveThumbs) {\r\n thumbsToActivate = 1;\r\n }\r\n\r\n thumbsToActivate = Math.floor(thumbsToActivate);\r\n thumbsSwiper.slides.removeClass(thumbActiveClass);\r\n\r\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\r\n for (var i = 0; i < thumbsToActivate; i += 1) {\r\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\r\n }\r\n } else {\r\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\r\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\r\n }\r\n }\r\n }\r\n };\r\n var Thumbs$1 = {\r\n name: 'thumbs',\r\n params: {\r\n thumbs: {\r\n swiper: null,\r\n multipleActiveThumbs: true,\r\n autoScrollOffset: 0,\r\n slideThumbActiveClass: 'swiper-slide-thumb-active',\r\n thumbsContainerClass: 'swiper-container-thumbs'\r\n }\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n bindModuleMethods(swiper, {\r\n thumbs: _extends({\r\n swiper: null,\r\n initialized: false\r\n }, Thumbs)\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit(swiper) {\r\n var thumbs = swiper.params.thumbs;\r\n if (!thumbs || !thumbs.swiper) return;\r\n swiper.thumbs.init();\r\n swiper.thumbs.update(true);\r\n },\r\n slideChange: function slideChange(swiper) {\r\n if (!swiper.thumbs.swiper) return;\r\n swiper.thumbs.update();\r\n },\r\n update: function update(swiper) {\r\n if (!swiper.thumbs.swiper) return;\r\n swiper.thumbs.update();\r\n },\r\n resize: function resize(swiper) {\r\n if (!swiper.thumbs.swiper) return;\r\n swiper.thumbs.update();\r\n },\r\n observerUpdate: function observerUpdate(swiper) {\r\n if (!swiper.thumbs.swiper) return;\r\n swiper.thumbs.update();\r\n },\r\n setTransition: function setTransition(swiper, duration) {\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) return;\r\n thumbsSwiper.setTransition(duration);\r\n },\r\n beforeDestroy: function beforeDestroy(swiper) {\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) return;\r\n\r\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\r\n thumbsSwiper.destroy();\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Swiper Class\r\n var components = [Virtual$1, Keyboard$1, Mousewheel$1, Navigation$1, Pagination$1, Scrollbar$1, Parallax$1, Zoom$1, Lazy$1, Controller$1, A11y$1, History$1, HashNavigation$1, Autoplay$1, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs$1];\r\n Swiper.use(components);\r\n\r\n return Swiper;\r\n\r\n})));\r\n//# sourceMappingURL=swiper-bundle.js.map\r\n"],"names":["window","Modernizr","document","undefined","featureName","hasOwnProp","TAGNAMES","feature","docElement","documentElement","mod","mStyle","createElement","style","inputElem","smile","toString","prefixes","split","omPrefixes","cssomPrefixes","domPrefixes","toLowerCase","ns","tests","inputs","attrs","classes","slice","injectElementWithStyles","rule","callback","nodes","testnames","node","docOverflow","div","body","fakeBody","parseInt","id","appendChild","join","innerHTML","background","overflow","ret","parentNode","removeChild","isEventSupported","select","change","submit","reset","error","load","abort","eventName","element","isSupported","setAttribute","removeAttribute","is","_hasOwnProperty","hasOwnProperty","setCss","str","cssText","obj","type","contains","substr","indexOf","testProps","props","prefixed","i","prop","testPropsAll","elem","ucProp","charAt","toUpperCase","item","bind","testDOMProps","call","object","property","constructor","prototype","Function","that","target","this","TypeError","args","arguments","bound","F","self","result","apply","concat","Object","getContext","fillText","WebGLRenderingContext","bool","DocumentTouch","offsetTop","navigator","postMessage","openDatabase","documentMode","history","pushState","backgroundColor","test","textShadow","str1","opacity","length","backgroundImage","offsetLeft","offsetHeight","getElementById","sheet","styleSheet","cssRules","canPlayType","Boolean","ogg","replace","h264","webm","e","mp3","wav","m4a","localStorage","setItem","removeItem","sessionStorage","Worker","applicationCache","createElementNS","createSVGRect","firstChild","namespaceURI","push","input","len","list","HTMLDataListElement","inputElemType","defaultView","value","WebkitAppearance","getComputedStyle","checkValidity","addTest","key","className","supportsHtml5Styles","supportsUnknownElements","options","html5","reSkip","saveClones","expando","expanID","expandoData","getElements","elements","getExpandoData","ownerDocument","data","nodeName","cache","cloneNode","createElem","canHaveChildren","tagUrn","frag","shivDocument","p","shivCSS","hasCSS","parent","getElementsByTagName","insertBefore","lastChild","createFrag","createDocumentFragment","shivMethods","a","childNodes","version","clone","elems","l","_version","_prefixes","_domPrefixes","_cssomPrefixes","mq","matchMedia","msMatchMedia","matches","currentStyle","hasEvent","testProp","testAllProps","testStyles","b","module","exports","Error","r","c","d","f","g","h","j","k","n","fn","init","o","q","s","isWindow","jquery","selector","toArray","get","pushStack","merge","prevObject","context","each","map","first","eq","last","end","sort","splice","extend","isFunction","isPlainObject","isArray","Math","random","isReady","noop","Array","isNumeric","parseFloat","nodeType","isEmptyObject","globalEval","eval","trim","text","head","camelCase","makeArray","inArray","grep","guid","proxy","now","Date","support","Symbol","iterator","t","ca","String","fromCharCode","da","m","u","v","w","x","y","ga","z","A","B","D","E","pop","G","H","I","J","K","L","M","N","O","P","RegExp","Q","R","S","T","U","V","W","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","needsContext","X","Y","Z","$","_","aa","ba","ea","fa","exec","getElementsByClassName","qsa","getAttribute","qa","oa","querySelectorAll","cacheLength","shift","ha","ia","ja","attrHandle","ka","sourceIndex","nextSibling","na","isXML","setDocument","top","addEventListener","attachEvent","attributes","createComment","getById","getElementsByName","find","filter","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","sortDetached","unshift","attr","specified","uniqueSort","detectDuplicates","sortStable","getText","textContent","nodeValue","selectors","createPseudo","match","relative",">","dir"," ","+","~","preFilter","uniqueID","pseudos","setFilters","not","has","innerText","lang","location","hash","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","nth","radio","checkbox","file","password","image","la","ma","pa","ra","sa","ua","va","ta","xa","filters","tokenize","compile","wa","defaultValue","expr","unique","isXMLDoc","ready","parseHTML","children","contents","next","prev","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","removeEventListener","Callbacks","once","stopOnFalse","memory","remove","disable","lock","locked","fireWith","fire","fired","Deferred","state","always","done","fail","then","promise","progress","notify","resolve","reject","pipe","when","notifyWith","resolveWith","readyWait","holdReady","triggerHandler","off","readyState","doScroll","setTimeout","uid","register","defineProperty","writable","configurable","set","access","hasData","parseJSON","removeData","_data","_removeData","name","queue","dequeue","_queueHooks","stop","clearQueue","css","source","cur","cssNumber","unit","start","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","htmlPrefilter","createTextNode","checkClone","noCloneChecked","event","global","handler","events","handle","triggered","dispatch","special","delegateType","bindType","origType","namespace","delegateCount","setup","teardown","removeEvent","fix","delegateTarget","preDispatch","handlers","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","handleObj","preventDefault","stopPropagation","postDispatch","isNaN","fixHooks","keyHooks","which","charCode","keyCode","mouseHooks","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","Event","noBubble","trigger","blur","click","beforeunload","originalEvent","returnValue","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","relatedTarget","on","one","html","src","_evalUrl","cleanData","domManip","detach","append","prepend","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","HTML","BODY","ya","za","write","close","Ca","opener","Da","Aa","Ba","Ea","marginLeft","width","marginRight","Fa","getPropertyValue","pixelMarginRight","minWidth","maxWidth","Ga","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","reliableMarginLeft","reliableMarginRight","Ha","Ia","position","visibility","display","Ja","letterSpacing","fontWeight","Ka","La","Ma","Na","max","Oa","Pa","offsetWidth","Qa","Ra","cssHooks","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","isFinite","getBoundingClientRect","left","margin","padding","border","expand","show","hide","toggle","Tween","easing","propHooks","run","duration","pos","step","fx","linear","swing","cos","PI","Sa","Ta","Ua","Va","Wa","Xa","height","Ya","_a","tweeners","prefilters","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","createTween","rejectWith","$a","timer","anim","complete","Animation","*","tweener","unqueued","overflowX","overflowY","hidden","prefilter","speed","speeds","old","fadeTo","animate","finish","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","tick","interval","setInterval","clearInterval","slow","fast","delay","clearTimeout","checkOn","optSelected","optDisabled","radioValue","ab","bb","removeAttr","attrHooks","propFix","cb","db","removeProp","for","class","eb","fb","addClass","removeClass","toggleClass","hasClass","gb","hb","val","valHooks","ib","isTrigger","parentWindow","simulate","hover","focusin","jb","kb","lb","JSON","parse","parseXML","DOMParser","parseFromString","mb","nb","ob","qb","rb","sb","tb","ub","vb","wb","xb","dataTypes","yb","ajaxSettings","flatOptions","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","xml","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","statusCode","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","success","method","dataType","crossDomain","host","param","traditional","hasContent","ifModified","headers","beforeSend","timeout","send","zb","dataFilter","Ab","statusText","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","wrap","unwrap","visible","getClientRects","Bb","Cb","Db","Eb","Fb","encodeURIComponent","Gb","serialize","serializeArray","xhr","XMLHttpRequest","Hb","0","1223","Ib","cors","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","response","script","text script","charset","scriptCharset","Jb","Kb","jsonp","jsonpCallback","Lb","Mb","animated","offset","setOffset","using","pageYOffset","pageXOffset","offsetParent","scrollTo","Height","Width","content","","unbind","delegate","undelegate","size","andSelf","define","amd","Nb","jQuery","Ob","noConflict","validate","validator","settings","onsubmit","validateDelegate","submitHandler","submitButton","cancelSubmit","currentForm","debug","form","pendingRequest","formSubmitted","focusInvalid","console","warn","valid","removeAttrs","rules","staticRules","normalizeRule","messages","normalizeRules","classRules","attributeRules","dataRules","required","remote","blank","filled","unchecked","defaults","format","groups","errorClass","validClass","errorElement","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","lastActive","focusCleanup","blockFocusCleanup","unhighlight","addWrapper","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","elementValue","lastElement","onclick","highlight","findByName","setDefaults","email","date","dateISO","number","digits","creditcard","equalTo","maxlength","minlength","rangelength","range","min","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","invalid","invalidHandler","checkForm","errorMap","showErrors","prepareForm","currentElements","check","clean","validationTargetFor","prepareElement","numberOfInvalids","toHide","errorList","message","successList","defaultShowErrors","resetForm","hideErrors","objectLength","findLastActive","errors","toShow","parameters","methods","formatAndAdd","log","customDataMessage","substring","customMessage","findDefined","defaultMessage","title","wrapper","showLabel","validElements","invalidElements","idOrName","errorPlacement","getLength","depend","dependTypes","boolean","string","function","startRequest","stopRequest","previousValue","classRuleSettings","addClassRules","Number","depends","addMethod","originalMessage","mode","port","emulateTransitionEnd","called","$el","transition","el","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","Alert","dismiss","$this","$parent","removeElement","alert","Constructor","Button","$element","DEFAULTS","loadingText","setState","resetText","$btn","Carousel","$indicators","paused","sliding","$active","$items","pause","cycle","getActiveIndex","to","activeIndex","slide","$next","isCycling","direction","fallback","$nextIndicator","carousel","action","slideIndex","$target","$carousel","Collapse","transitioning","dimension","startEvent","actives","collapse","scrollSize","Dropdown","clearMenus","getParent","isActive","keydown","dropdown","Modal","$backdrop","isShown","backdrop","keyboard","_relatedTarget","escape","enforceFocus","hideModal","removeBackdrop","doAnimate","modal","Tooltip","hoverState","animation","placement","template","container","getOptions","triggers","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","$tip","actualWidth","orgPlacement","parentWidth","parentHeight","parentLeft","calculatedOffset","tip","setContent","autoPlace","autoToken","getPosition","actualHeight","docScroll","innerWidth","outerWidth","innerHeight","outerHeight","right","getCalculatedOffset","applyPlacement","marginTop","delta","replaceArrow","arrow","getTitle","$e","$arrow","enable","toggleEnabled","destroy","tooltip","Popover","getContent","popover","ScrollSpy","process","$body","$scrollElement","offsets","targets","activeTarget","refresh","offsetMethod","$href","maxScroll","scrollHeight","activate","scrollspy","$spy","Tab","previous","$ul","tab","Affix","$window","checkPosition","checkPositionWithEventLoop","affixed","unpin","RESET","offsetBottom","affix","bottom","require","axis","limit","onAfter","over","contentWindow","onAfterFirst","interrupt","_last","round","$W","$D","requestAFrame","cancelAFrame","forceRedraw","mergeOpts","FancyBox","buttonStr","focusStr","$pressed","_run","instance","items","fancybox","getInstance","$trigger","info","stuff","closeExisting","loop","gutter","preventCaptionOverlap","arrows","infobar","smallBtn","toolbar","buttons","idleTime","protect","preload","iframe","tpl","scrolling","video","autoStart","defaultType","animationEffect","animationDuration","zoomOpacity","transitionEffect","transitionDuration","slideClass","baseClass","baseTpl","spinnerTpl","errorTpl","btnTpl","download","arrowLeft","arrowRight","parentEl","hideScrollbar","autoFocus","backFocus","trapFocus","fullScreen","touch","vertical","momentum","media","slideShow","thumbs","hideOnClose","wheel","onInit","beforeLoad","afterLoad","beforeShow","afterShow","beforeClose","afterClose","onActivate","onDeactivate","clickContent","current","clickSlide","clickOutside","dblclickContent","dblclickSlide","dblclickOutside","mobile","i18n","en","CLOSE","NEXT","PREV","ERROR","PLAY_START","PLAY_STOP","FULL_SCREEN","THUMBS","DOWNLOAD","SHARE","ZOOM","de","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","transitions","opts1","opts2","rez","isMobile","currIndex","prevIndex","prevPos","currPos","firstRun","group","slides","addContent","$container","firstItemOpts","clientWidth","translate","$refs","forEach","jumpTo","arr","srcParts","$item","$orig","found","$thumb","thumb","keys","updateControls","Thumbs","create","addEvents","removeEvents","isScaledDown","requestId","update","stage","keycode","ctrlKey","altKey","shiftKey","idleSecondsCounter","isIdle","showControls","idleInterval","isDragging","hideControls","slidePos","stagePos","diff","groupLen","isClosing","isAnimating","createSlide","forcedDuration","isMoved","$slide","loadSlide","getTranslate","isComplete","leftPos","setTranslate","transform","isLoaded","revealContent","updateSlide","scaleToActual","imgPos","posX","scaleX","scaleY","$content","canvasWidth","canvasHeight","newImgWidth","newImgHeight","hasError","posY","updateCursor","SlideShow","scaleToFit","getFitPos","maxHeight","minRatio","floor","aspectRatio","ratio","adjustCaption","adjustLayout","navigation","clientHeight","centerSlide","abs","nextWidth","nextHeight","Guestures","isZoomable","canPan","fitPos","ajaxLoad","isLoading","setImage","setIframe","videoFormat","setError","showLoading","textStatus","jqXHR","ghost","$img","$image","checkSrcset","$ghost","setBigImage","temp","pxRatio","windowWidth","srcset","devicePixelRatio","postfix","img","sizes","resolveImageSlideSize","naturalWidth","naturalHeight","hideLoading","imgWidth","imgHeight","$iframe","getTime","frameWidth","frameHeight","max-width","ceil","isRevealed","$placeholder","$smallBtn","$spinner","preventOverlap","$caption","captionH","$clone","marginBottom","inlinePadding","actualPadding","disableLayoutFix","effect","effectClassName","getThumbPos","thumbPos","elemCenter","elementFromPoint","btw","brw","bbw","blw","Document","exitFullscreen","webkitExitFullscreen","focusableStr","focusableItems","focusedItemIndex","isVisible","cleanUp","domRect","$focus","scrollX","scrollY","hasHiddenControls","andCaption","toggleControls","command","all","userAgent","use3d","leaveAnimationName","from","propertyName","callCallback","params","youtube","matcher","autoplay","autohide","fs","rel","hd","wmode","enablejsapi","paramPlace","vimeo","show_title","show_byline","show_portrait","fullscreen","instagram","gmap_place","gmap_search","urlParams","paramObj","provider","providerName","providerOpts","decodeURIComponent","p1","origSrc","contentSource","VideoAPILoader","loading","loaded","vendor","_this","onYouTubeIframeAPIReady","YT","Player","onStateChange","Vimeo","afterShow.fb","getPointerXY","touches","changedTouches","distance","point2","point1","what","sqrt","pow","isClickable","atts","isScrollable","horizontal","scrollWidth","$bg","bg","$stage","tapped","ontouchstart","isTouchDevice","realPoints","startPoints","canTap","isPanning","isSwiping","isZooming","isScrolling","distanceX","distanceY","contentLastPos","contentStartPos","sliderStartPos","onscroll","centerPointStartX","centerPointStartY","percentageOfImageAtPinchPointX","percentageOfImageAtPinchPointY","startDistanceBetweenFingers","ontouchmove","newPoints","onSwipe","onPan","onZoom","ontouchend","swiping","sliderLastPos","angle","atan2","transition-duration","limitMovement","currentOffsetX","currentOffsetY","currentWidth","currentHeight","newOffsetX","newOffsetY","minTranslateX","minTranslateY","maxTranslateX","maxTranslateY","limitPosition","newWidth","newHeight","pinchRatio","translateFromZoomingX","translateFromZoomingY","centerPointEndX","centerPointEndY","translateFromTranslatingX","newPos","panning","zooming","endPoints","dMs","onTap","velocityX","velocityY","endPanning","endZooming","endSwiping","canAdvance","prefix","tapX","tapY","where","$button","$progress","inner","force","clear","onInit.fb","beforeShow.fb","afterKeydown.fb","keypress","beforeClose.fb onDeactivate.fb","FullScreen","fnMap","request","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","isFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","beforeClose.fb","CLASS_ACTIVE","FancyThumbs","$grid","$list","share","currentHash","entityMap","&","<","\"","'","/","`","=","shareInstance","shareCurrent","parseUrl","gallery","triggerFromUrl","escapeSelector","getGalleryID","sel","ch","asCodePoint","charCodeAt","origHash","hashTimer","pathname","search","hasCreatedHistory","back","replaceState","tmp","prevTime","currTime","deltaY","deltaX","wheelDelta","detail","factory","Swiper","_defineProperties","descriptor","enumerable","_extends","assign","isObject","ssrDocument","querySelector","createEvent","initEvent","importNode","hostname","origin","getDocument","doc","ssrWindow","go","CustomEvent","Image","screen","getWindow","win","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_construct","Parent","Class","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","_wrapNativeSuper","_cache","Map","Wrapper","Dom7","_Array","subClass","superClass","proto","ReferenceError","_assertThisInitialized","arrayFlat","res","arrayFilter","toCreate","tempParent","uniqueArray","arrayUnique","device","browser","Methods","_len","_key","classNames","_el$classList","classList","_len2","_key2","_el$classList2","_len4","_key4","_len3","_key3","attrName","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","_parents","handleEvent","_event","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","dom7proxy","_len9","_key9","evt","bubbles","cancelable","dataIndex","dispatchEvent","dom","fireCallBack","includeMargins","_styles","styles","_styles2","box","_prop","compareWith","child","previousSibling","returnIndex","newChild","tempDiv","nextElementSibling","nextEls","_next","previousElementSibling","prevEls","_prev","_parent","foundElements","nextTick","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isObject$1","extend$1","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","getSupport","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","gestures","getDevice","overrides","_temp","platform","screenWidth","screenHeight","android","windows","ios","ipad","ipod","iphone","macos","os","getBrowser","isEdge","isSafari","isWebView","methodName","Resize","swiper","resize","resizeHandler","destroyed","initialized","emit","orientationChangeHandler","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","$wrapperEl","disconnect","Observer$1","onResize","allowSlideNext","allowSlidePrev","breakpoints","setBreakpoint","snapGrid","updateSize","updateSlides","updateSlidesClasses","slidesPerView","isEnd","isBeginning","centeredSlides","slideTo","running","watchOverflow","checkOverflow","dummyEventAttached","dummyEventListener","touchEventsTarget","initialSlide","cssMode","updateOnWindowResize","nested","preventInteractionOnTransition","edgeSwipeDetection","edgeSwipeThreshold","freeMode","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","virtualTranslate","spaceBetween","slidesPerColumn","slidesPerColumnFill","slidesPerGroup","slidesPerGroupSkip","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","touchRatio","touchAngle","simulateTouch","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","allowTouchMove","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","watchSlidesProgress","watchSlidesVisibility","grabCursor","preventClicks","preventClicksPropagation","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","isHorizontal","isVertical","swiperSize","rtl","rtlTranslate","wrongRTL","previousSlidesLength","isVirtual","virtual","slidesLength","slidesGrid","slidesSizesGrid","slidesForMargin","slideEl","offsetBefore","offsetAfter","slidesNumberEvenToRows","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","allSlidesSize","maxSnap","_allSlidesSize","allSlidesOffset","slidesPerRow","numFullColumns","slideSize","slideIndexInGroup","currentTransform","currentWebKitTransform","boxSizing","paddingTop","paddingBottom","_slide$2","row","column","newSlideOrderIndex","groupIndex","columnsInGroup","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","slideStyles","paddingLeft","paddingRight","_slide$","_boxSizing","swiperSlideSize","newSlidesGrid","_i","slidesGridItem","_i2","_slidesGridItem","slideSizeValue","snap","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","setTransition","visibleSlides","swiperSlideOffset","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideBefore","slideAfter","slideProgress","minTranslate","updateProgress","multiplier","translatesDiff","maxTranslate","wasBeginning","wasEnd","realIndex","activeSlide","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","updateClickedSlide","slideFound","clickedSlide","clickedIndex","currentTranslate","byController","wrapperEl","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","newTranslate","isH","_wrapperEl$scrollTo","behavior","onTranslateToWrapperTransitionEnd","transitionStart","indexAsNumber","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","increment","loopFix","_clientLeft","slidePrev","normalize","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","setGrabCursor","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","onTouchStart","$targetEl","startX","shouldPreventDefault","touchEventsData","isTouchEvent","isTouched","shadowRoot","path","allowClick","currentX","targetTouches","currentY","startY","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","allowTouchCallbacks","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","isContentEditable","onTouchMove","targetTouch","preventedByNestedSwiper","diffX","diffY","startTranslate","allowMomentumBounce","disableParentSwiper","velocities","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","lastMoveEvent","velocityEvent","velocity","momentumDuration","momentumDistance","newPosition","afterBouncePosition","moveDistance","doBounce","bounceAmount","needsLoopFix","currentSlideSize","stopIndex","groupSize","_increment","nextEl","prevEl","onScroll","onClick","move","passive","cancel","detachEvents","breakpoint","breakpointOnlyParams","breakpointParams","_swiper$loopedSlides","getBreakpoint","currentBreakpoint","paramValue","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","_points$i","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","checkForComplete","onReady","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","moduleParamName","swiperParams","passedParams","desktop","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","clickTimeout","staticProps","_proto","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","protoProps","prototypeGroup","protoMethod","Virtual","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesBefore","slidesAfter","onRendered","lazy","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","$slideEl","newCache","numberOfNewSlides","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","kc","pageUpDown","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","metaKey","onlyInViewport","inView","windowHeight","swiperOffset","swiperCoord","Keyboard$1","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","implementation","hasFeature","sX","sY","pX","pY","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarget","releaseOnEdges","rtlFactor","forceToAxis","invert","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","_recentWheelEvents","snapToThreshold","_prevEvent","firstEvent","autoplayDisableOnInteraction","newEvent","raw","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","Navigation","$nextEl","$prevEl","_swiper$navigation","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","isHidden","_swiper$navigation3","Pagination","pagination","total","paginationType","bullets","firstIndex","lastIndex","midIndex","bulletsOffset","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","dragSize","trackSize","$dragEl","newSize","scrollbar","divider","moveDivider","getPointerPosition","setDragPosition","dragStartPos","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Scrollbar$1","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","translateX","translateY","translateMinX","zoomedSlideClass","touchY","touchX","imageWidth","imageHeight","translateMinY","translateMaxX","translateMaxY","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","Zoom$1","touchStart","touchEnd","doubleTap","slideChange","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","$pictureEl","originalSlide","duplicatedSlide","sourceEl","$source","preloaderClass","slideOriginalIndex","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","scrollingElement","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","Lazy$1","checkInView","loadOnTransitionStart","scroll","scrollbarDragMove","Controller","LinearSpline","guess","i1","i3","binarySearch","array","interpolate","getInterpolateFunction","controller","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","Controller$1","A11y","getRandomNumber","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","addElLive","live","disableEl","enableEl","onEnterKey","a11y","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","tagName","A11y$1","notificationClass","afterInit","paginationUpdate","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","URL","pathArray","part","setHistory","slugify","includes","currentState","History$1","HashNavigation","onHashCange","newHash","setHash","watchState","HashNavigation$1","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","waitForTransition","onVisibilityChange","visibilityState","Autoplay$1","disableOnInteraction","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","scale2","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowOffset","shadowScale","shadowAngle","sin","scale1","zFactor","EffectCube","Flip","rotateY","flipEffect","limitRotation","rotateX","EffectFlip","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","$shadowBeforeEl","$shadowAfterEl","EffectCoverflow","thumbsParams","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","currentIndex","thumbsSwiper","slideThumbActiveClass","initial","currentThumbsIndex","newThumbsIndex","autoScrollOffset","useOffset","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","Thumbs$1","beforeDestroy"],"mappings":"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"}