{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../20240516021954/app/javascript/packs/shared/header.js","webpack:////home/beleaf_calendar/vcare/shared/node_modules/owl.carousel2/dist/owl.carousel.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","document","ready","owlCarousel","stagePadding","items","loop","margin","singleItem","autoplay","autoplayTimeout","autoplayHoverPause","window","undefined","Owl","element","options","this","settings","extend","Defaults","$element","_handlers","_plugins","_supress","_current","_speed","_coordinates","_breakpoint","_width","_items","_clones","_mergers","_widths","_invalidated","_pipe","_drag","time","target","pointer","stage","start","current","direction","_states","tags","each","proxy","handler","Plugins","plugin","charAt","toLowerCase","slice","Workers","priority","worker","push","filter","run","setup","initialize","center","rewind","mouseDrag","touchDrag","pullDrag","freeDrag","merge","mergeFit","autoWidth","startPosition","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsive","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Width","Default","Inner","Outer","Type","Event","State","width","cache","relative","$stage","children","remove","grid","css","toFixed","iterator","length","widths","Math","min","clones","view","max","size","ceil","repeat","normalize","clone","addClass","appendTo","prependTo","previous","coordinates","padding","abs","eq","removeAttr","index","minimum","maximum","reset","animate","inner","outer","begin","end","matches","op","removeClass","join","imgs","nestedSelector","enter","trigger","toggleClass","is","find","preloadAutoWidthImages","wrap","append","parent","replace","not","refresh","invalidate","registerEventHandlers","leave","viewport","overwrites","match","breakpoint","Number","attr","RegExp","optionsLogic","prepare","item","event","content","data","update","all","grep","dimension","onThrottledResize","clearTimeout","resizeTimer","setTimeout","onResize","isDefaultPrevented","support","transition","on","onTransitionEnd","onDragStart","onDragEnd","which","transform","x","split","y","position","left","top","stop","type","speed","Date","getTime","one","delta","difference","onDragMove","preventDefault","pull","off","closest","coordinate","transform3d","state","part","map","v","suppress","release","isNumeric","reciprocalItemsWidth","elementWidth","mergers","odd","even","multiplier","newPosition","duration","from","to","factor","revert","distance","next","prev","stopPropagation","srcElement","originalTarget","innerWidth","documentElement","clientWidth","console","warn","empty","jQuery","nodeType","addBack","add","after","before","splice","images","Image","e","src","destroy","unwrap","contents","removeData","a","b","listener","capture","addEventListener","attachEvent","removeEventListener","detachEvent","namespace","status","count","camelCase","relatedTarget","onTrigger","register","concat","special","owl","_default","apply","indexOf","arguments","tag","inArray","events","result","originalEvent","touches","changedTouches","pageX","pageY","clientX","clientY","number","isNaN","parseFloat","first","second","fn","option","args","Array","$this","Constructor","Zepto","AutoRefresh","carousel","_core","_interval","_visible","autoRefresh","watch","autoRefreshInterval","setInterval","clearInterval","getOwnPropertyNames","Lazy","_loaded","lazyLoad","load","$item","$elements","image","url","devicePixelRatio","onload","handlers","AutoHeight","autoHeight","autoHeightClass","maxheight","visible","toArray","heights","height","Video","_videos","_playing","video","isInFullScreen","fetch","play","videoHeight","videoWidth","id","Error","thumbnail","tnLink","path","dimensions","customTn","srcType","lazyClass","ajax","jsonp","dataType","success","thumbnail_large","framegrab_url","html","insertAfter","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","hasClass","Animate","scope","core","swapping","animateOut","animateIn","swap","animation","clear","incoming","outgoing","Autoplay","_timeout","_paused","_setAutoPlayInterval","pause","autoplaySpeed","timeout","_getNextTimeout","hidden","Navigation","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","pop","draw","nav","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dots","dotsEach","dotsSpeed","dotsContainer","override","$relative","$previous","$next","prop","$absolute","control","overides","j","lower","upper","disabled","page","getPosition","successor","standard","Hash","_hashes","hash","location","substring","URLhashListener","style","prefixes","WebkitTransition","MozTransition","OTransition","WebkitAnimation","MozAnimation","OAnimation","tests","test","prefixed","toUpperCase","String"],"mappings":"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","file":"js/shared/header-808d7a55e37927ce540c.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 212);\n","import 'owl.carousel2/dist/assets/owl.carousel.css';\nimport 'owl.carousel2/dist/owl.carousel.js';\n\n$(document).ready(function(){\n $('.owl-carousel').owlCarousel({\n stagePadding: 0,\n items: 1,\n loop:true,\n margin:0,\n singleItem:true,\n autoplay:true,\n autoplayTimeout:3000,\n autoplayHoverPause:true\n });\n});","/**\n * Owl Carousel v2.2.1\n * Copyright 2013-2017 Saurabh Sharma\n * Licensed under ()\n */\n/**\n * Owl carousel\n * @version 2.1.6\n * @author Bartosz Wojciechowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n * @todo Lazy Load Icon\n * @todo prevent animationend bubling\n * @todo itemsScaleUp\n * @todo Test Zepto\n * @todo stagePadding calculate wrong active classes\n */\n;\n(function ($, window, document, undefined) {\n /**\n * Creates a carousel.\n * @class The Owl Carousel.\n * @public\n * @param {HTMLElement|jQuery} element - The element to create the carousel for.\n * @param {Object} [options] - The options\n */\n function Owl(element, options) {\n /**\n * Current settings for the carousel.\n * @public\n */\n this.settings = null;\n\n /**\n * Current options set by the caller including defaults.\n * @public\n */\n this.options = $.extend({}, Owl.Defaults, options);\n\n /**\n * Plugin element.\n * @public\n */\n this.$element = $(element);\n\n /**\n * Proxied event handlers.\n * @protected\n */\n this._handlers = {};\n\n /**\n * References to the running plugins of this carousel.\n * @protected\n */\n this._plugins = {};\n\n /**\n * Currently suppressed events to prevent them from beeing retriggered.\n * @protected\n */\n this._supress = {};\n\n /**\n * Absolute current position.\n * @protected\n */\n this._current = null;\n\n /**\n * Animation speed in milliseconds.\n * @protected\n */\n this._speed = null;\n\n /**\n * Coordinates of all items in pixel.\n * @todo The name of this member is missleading.\n * @protected\n */\n this._coordinates = [];\n\n /**\n * Current breakpoint.\n * @todo Real media queries would be nice.\n * @protected\n */\n this._breakpoint = null;\n\n /**\n * Current width of the plugin element.\n */\n this._width = null;\n\n /**\n * All real items.\n * @protected\n */\n this._items = [];\n\n /**\n * All cloned items.\n * @protected\n */\n this._clones = [];\n\n /**\n * Merge values of all items.\n * @todo Maybe this could be part of a plugin.\n * @protected\n */\n this._mergers = [];\n\n /**\n * Widths of all items.\n */\n this._widths = [];\n\n /**\n * Invalidated parts within the update process.\n * @protected\n */\n this._invalidated = {};\n\n /**\n * Ordered list of workers for the update process.\n * @protected\n */\n this._pipe = [];\n\n /**\n * Current state information for the drag operation.\n * @todo #261\n * @protected\n */\n this._drag = {\n time: null,\n target: null,\n pointer: null,\n stage: {\n start: null,\n current: null\n },\n direction: null\n };\n\n /**\n * Current state information and their tags.\n * @type {Object}\n * @protected\n */\n this._states = {\n current: {},\n tags: {\n 'initializing': ['busy'],\n 'animating': ['busy'],\n 'dragging': ['interacting']\n }\n };\n $.each(['onResize', 'onThrottledResize'], $.proxy(function (i, handler) {\n this._handlers[handler] = $.proxy(this[handler], this);\n }, this));\n $.each(Owl.Plugins, $.proxy(function (key, plugin) {\n this._plugins[key.charAt(0).toLowerCase() + key.slice(1)] = new plugin(this);\n }, this));\n $.each(Owl.Workers, $.proxy(function (priority, worker) {\n this._pipe.push({\n 'filter': worker.filter,\n 'run': $.proxy(worker.run, this)\n });\n }, this));\n this.setup();\n this.initialize();\n }\n\n /**\n * Default options for the carousel.\n * @public\n */\n Owl.Defaults = {\n items: 3,\n loop: false,\n center: false,\n rewind: false,\n mouseDrag: true,\n touchDrag: true,\n pullDrag: true,\n freeDrag: false,\n margin: 0,\n stagePadding: 0,\n merge: false,\n mergeFit: true,\n autoWidth: false,\n startPosition: 0,\n rtl: false,\n smartSpeed: 250,\n fluidSpeed: false,\n dragEndSpeed: false,\n responsive: {},\n responsiveRefreshRate: 200,\n responsiveBaseElement: window,\n fallbackEasing: 'swing',\n info: false,\n nestedItemSelector: false,\n itemElement: 'div',\n stageElement: 'div',\n refreshClass: 'owl-refresh',\n loadedClass: 'owl-loaded',\n loadingClass: 'owl-loading',\n rtlClass: 'owl-rtl',\n responsiveClass: 'owl-responsive',\n dragClass: 'owl-drag',\n itemClass: 'owl-item',\n stageClass: 'owl-stage',\n stageOuterClass: 'owl-stage-outer',\n grabClass: 'owl-grab'\n };\n\n /**\n * Enumeration for width.\n * @public\n * @readonly\n * @enum {String}\n */\n Owl.Width = {\n Default: 'default',\n Inner: 'inner',\n Outer: 'outer'\n };\n\n /**\n * Enumeration for types.\n * @public\n * @readonly\n * @enum {String}\n */\n Owl.Type = {\n Event: 'event',\n State: 'state'\n };\n\n /**\n * Contains all registered plugins.\n * @public\n */\n Owl.Plugins = {};\n\n /**\n * List of workers involved in the update process.\n */\n Owl.Workers = [{\n filter: ['width', 'settings'],\n run: function () {\n this._width = this.$element.width();\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function (cache) {\n cache.current = this._items && this._items[this.relative(this._current)];\n }\n }, {\n filter: ['items', 'settings'],\n run: function () {\n this.$stage.children('.cloned').remove();\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function (cache) {\n var margin = this.settings.margin || '',\n grid = !this.settings.autoWidth,\n rtl = this.settings.rtl,\n css = {\n 'width': 'auto',\n 'margin-left': rtl ? margin : '',\n 'margin-right': rtl ? '' : margin\n };\n !grid && this.$stage.children().css(css);\n cache.css = css;\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function (cache) {\n var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,\n merge = null,\n iterator = this._items.length,\n grid = !this.settings.autoWidth,\n widths = [];\n cache.items = {\n merge: false,\n width: width\n };\n while (iterator--) {\n merge = this._mergers[iterator];\n merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;\n cache.items.merge = merge > 1 || cache.items.merge;\n widths[iterator] = !grid ? this._items[iterator].width() : width * merge;\n }\n this._widths = widths;\n }\n }, {\n filter: ['items', 'settings'],\n run: function () {\n var clones = [],\n items = this._items,\n settings = this.settings,\n // TODO: Should be computed from number of min width items in stage\n view = Math.max(settings.items * 2, 4),\n size = Math.ceil(items.length / 2) * 2,\n repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,\n append = '',\n prepend = '';\n repeat /= 2;\n while (repeat--) {\n // Switch to only using appended clones\n clones.push(this.normalize(clones.length / 2, true));\n $(items[clones[clones.length - 1]][0]).clone(true).addClass('cloned').appendTo(this.$stage);\n clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\n $(items[clones[clones.length - 1]][0]).clone(true).addClass('cloned').prependTo(this.$stage);\n }\n this._clones = clones;\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function () {\n var rtl = this.settings.rtl ? 1 : -1,\n size = this._clones.length + this._items.length,\n iterator = -1,\n previous = 0,\n current = 0,\n coordinates = [];\n while (++iterator < size) {\n previous = coordinates[iterator - 1] || 0;\n current = this._widths[this.relative(iterator)] + this.settings.margin;\n coordinates.push(previous + current * rtl);\n }\n this._coordinates = coordinates;\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function () {\n var padding = this.settings.stagePadding,\n coordinates = this._coordinates,\n css = {\n 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\n 'padding-left': padding || '',\n 'padding-right': padding || ''\n };\n this.$stage.css(css);\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function (cache) {\n var iterator = this._coordinates.length,\n grid = !this.settings.autoWidth,\n items = this.$stage.children();\n if (grid && cache.items.merge) {\n while (iterator--) {\n cache.css.width = this._widths[this.relative(iterator)];\n items.eq(iterator).css(cache.css);\n }\n } else if (grid) {\n cache.css.width = cache.items.width;\n items.css(cache.css);\n }\n }\n }, {\n filter: ['items'],\n run: function () {\n this._coordinates.length < 1 && this.$stage.removeAttr('style');\n }\n }, {\n filter: ['width', 'items', 'settings'],\n run: function (cache) {\n cache.current = cache.current ? this.$stage.children().index(cache.current) : 0;\n cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));\n this.reset(cache.current);\n }\n }, {\n filter: ['position'],\n run: function () {\n this.animate(this.coordinates(this._current));\n }\n }, {\n filter: ['width', 'position', 'items', 'settings'],\n run: function () {\n var rtl = this.settings.rtl ? 1 : -1,\n padding = this.settings.stagePadding * 2,\n begin = this.coordinates(this.current()) + padding,\n end = begin + this.width() * rtl,\n inner,\n outer,\n matches = [],\n i,\n n;\n for (i = 0, n = this._coordinates.length; i < n; i++) {\n inner = this._coordinates[i - 1] || 0;\n outer = Math.abs(this._coordinates[i]) + padding * rtl;\n if (this.op(inner, '<=', begin) && this.op(inner, '>', end) || this.op(outer, '<', begin) && this.op(outer, '>', end)) {\n matches.push(i);\n }\n }\n this.$stage.children('.active').removeClass('active');\n this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');\n if (this.settings.center) {\n this.$stage.children('.center').removeClass('center');\n this.$stage.children().eq(this.current()).addClass('center');\n }\n }\n }];\n\n /**\n * Initializes the carousel.\n * @protected\n */\n Owl.prototype.initialize = function () {\n this.enter('initializing');\n this.trigger('initialize');\n this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);\n if (this.settings.autoWidth && !this.is('pre-loading')) {\n var imgs, nestedSelector, width;\n imgs = this.$element.find('img');\n nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;\n width = this.$element.children(nestedSelector).width();\n if (imgs.length && width <= 0) {\n this.preloadAutoWidthImages(imgs);\n }\n }\n this.$element.addClass(this.options.loadingClass);\n\n // create stage\n this.$stage = $('<' + this.settings.stageElement + ' class=\"' + this.settings.stageClass + '\"/>').wrap('
');\n\n // append stage\n this.$element.append(this.$stage.parent());\n\n // append content\n this.replace(this.$element.children().not(this.$stage.parent()));\n\n // check visibility\n if (this.$element.is(':visible')) {\n // update view\n this.refresh();\n } else {\n // invalidate width\n this.invalidate('width');\n }\n this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass);\n\n // register event handlers\n this.registerEventHandlers();\n this.leave('initializing');\n this.trigger('initialized');\n };\n\n /**\n * Setups the current settings.\n * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\n * @todo Support for media queries by using `matchMedia` would be nice.\n * @public\n */\n Owl.prototype.setup = function () {\n var viewport = this.viewport(),\n overwrites = this.options.responsive,\n match = -1,\n settings = null;\n if (!overwrites) {\n settings = $.extend({}, this.options);\n } else {\n $.each(overwrites, function (breakpoint) {\n if (breakpoint <= viewport && breakpoint > match) {\n match = Number(breakpoint);\n }\n });\n settings = $.extend({}, this.options, overwrites[match]);\n if (typeof settings.stagePadding === 'function') {\n settings.stagePadding = settings.stagePadding();\n }\n delete settings.responsive;\n\n // responsive class\n if (settings.responsiveClass) {\n this.$element.attr('class', this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\\\S+\\\\s', 'g'), '$1' + match));\n }\n }\n this.trigger('change', {\n property: {\n name: 'settings',\n value: settings\n }\n });\n this._breakpoint = match;\n this.settings = settings;\n this.invalidate('settings');\n this.trigger('changed', {\n property: {\n name: 'settings',\n value: this.settings\n }\n });\n };\n\n /**\n * Updates option logic if necessery.\n * @protected\n */\n Owl.prototype.optionsLogic = function () {\n if (this.settings.autoWidth) {\n this.settings.stagePadding = false;\n this.settings.merge = false;\n }\n };\n\n /**\n * Prepares an item before add.\n * @todo Rename event parameter `content` to `item`.\n * @protected\n * @returns {jQuery|HTMLElement} - The item container.\n */\n Owl.prototype.prepare = function (item) {\n var event = this.trigger('prepare', {\n content: item\n });\n if (!event.data) {\n event.data = $('<' + this.settings.itemElement + '/>').addClass(this.options.itemClass).append(item);\n }\n this.trigger('prepared', {\n content: event.data\n });\n return event.data;\n };\n\n /**\n * Updates the view.\n * @public\n */\n Owl.prototype.update = function () {\n var i = 0,\n n = this._pipe.length,\n filter = $.proxy(function (p) {\n return this[p];\n }, this._invalidated),\n cache = {};\n while (i < n) {\n if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {\n this._pipe[i].run(cache);\n }\n i++;\n }\n this._invalidated = {};\n !this.is('valid') && this.enter('valid');\n };\n\n /**\n * Gets the width of the view.\n * @public\n * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.\n * @returns {Number} - The width of the view in pixel.\n */\n Owl.prototype.width = function (dimension) {\n dimension = dimension || Owl.Width.Default;\n switch (dimension) {\n case Owl.Width.Inner:\n case Owl.Width.Outer:\n return this._width;\n default:\n return this._width - this.settings.stagePadding * 2 + this.settings.margin;\n }\n };\n\n /**\n * Refreshes the carousel primarily for adaptive purposes.\n * @public\n */\n Owl.prototype.refresh = function () {\n this.enter('refreshing');\n this.trigger('refresh');\n this.setup();\n this.optionsLogic();\n this.$element.addClass(this.options.refreshClass);\n this.update();\n this.$element.removeClass(this.options.refreshClass);\n this.leave('refreshing');\n this.trigger('refreshed');\n };\n\n /**\n * Checks window `resize` event.\n * @protected\n */\n Owl.prototype.onThrottledResize = function () {\n window.clearTimeout(this.resizeTimer);\n this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);\n };\n\n /**\n * Checks window `resize` event.\n * @protected\n */\n Owl.prototype.onResize = function () {\n if (!this._items.length) {\n return false;\n }\n if (this._width === this.$element.width()) {\n return false;\n }\n if (!this.$element.is(':visible')) {\n return false;\n }\n this.enter('resizing');\n if (this.trigger('resize').isDefaultPrevented()) {\n this.leave('resizing');\n return false;\n }\n this.invalidate('width');\n this.refresh();\n this.leave('resizing');\n this.trigger('resized');\n };\n\n /**\n * Registers event handlers.\n * @todo Check `msPointerEnabled`\n * @todo #261\n * @protected\n */\n Owl.prototype.registerEventHandlers = function () {\n if ($.support.transition) {\n this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));\n }\n if (this.settings.responsive !== false) {\n this.on(window, 'resize', this._handlers.onThrottledResize);\n }\n if (this.settings.mouseDrag) {\n this.$element.addClass(this.options.dragClass);\n this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));\n this.$stage.on('dragstart.owl.core selectstart.owl.core', function () {\n return false;\n });\n }\n if (this.settings.touchDrag) {\n this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));\n this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));\n }\n };\n\n /**\n * Handles `touchstart` and `mousedown` events.\n * @todo Horizontal swipe threshold as option\n * @todo #261\n * @protected\n * @param {Event} event - The event arguments.\n */\n Owl.prototype.onDragStart = function (event) {\n var stage = null;\n if (event.which === 3) {\n return;\n }\n if ($.support.transform) {\n stage = this.$stage.css('transform').replace(/.*\\(|\\)| /g, '').split(',');\n stage = {\n x: stage[stage.length === 16 ? 12 : 4],\n y: stage[stage.length === 16 ? 13 : 5]\n };\n } else {\n stage = this.$stage.position();\n stage = {\n x: this.settings.rtl ? stage.left + this.$stage.width() - this.width() + this.settings.margin : stage.left,\n y: stage.top\n };\n }\n if (this.is('animating')) {\n $.support.transform ? this.animate(stage.x) : this.$stage.stop();\n this.invalidate('position');\n }\n this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');\n this.speed(0);\n this._drag.time = new Date().getTime();\n this._drag.target = $(event.target);\n this._drag.stage.start = stage;\n this._drag.stage.current = stage;\n this._drag.pointer = this.pointer(event);\n $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));\n $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function (event) {\n var delta = this.difference(this._drag.pointer, this.pointer(event));\n $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));\n if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {\n return;\n }\n event.preventDefault();\n this.enter('dragging');\n this.trigger('drag');\n }, this));\n };\n\n /**\n * Handles the `touchmove` and `mousemove` events.\n * @todo #261\n * @protected\n * @param {Event} event - The event arguments.\n */\n Owl.prototype.onDragMove = function (event) {\n var minimum = null,\n maximum = null,\n pull = null,\n delta = this.difference(this._drag.pointer, this.pointer(event)),\n stage = this.difference(this._drag.stage.start, delta);\n if (!this.is('dragging')) {\n return;\n }\n event.preventDefault();\n if (this.settings.loop) {\n minimum = this.coordinates(this.minimum());\n maximum = this.coordinates(this.maximum() + 1) - minimum;\n stage.x = ((stage.x - minimum) % maximum + maximum) % maximum + minimum;\n } else {\n minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\n maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\n pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\n stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\n }\n this._drag.stage.current = stage;\n this.animate(stage.x);\n };\n\n /**\n * Handles the `touchend` and `mouseup` events.\n * @todo #261\n * @todo Threshold for click event\n * @protected\n * @param {Event} event - The event arguments.\n */\n Owl.prototype.onDragEnd = function (event) {\n var delta = this.difference(this._drag.pointer, this.pointer(event)),\n stage = this._drag.stage.current,\n direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';\n $(document).off('.owl.core');\n this.$element.removeClass(this.options.grabClass);\n if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\n this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);\n this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));\n this.invalidate('position');\n this.update();\n this._drag.direction = direction;\n if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {\n this._drag.target.one('click.owl.core', function () {\n return false;\n });\n }\n }\n if (!this.is('dragging')) {\n return;\n }\n this.leave('dragging');\n this.trigger('dragged');\n };\n\n /**\n * Gets absolute position of the closest item for a coordinate.\n * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\n * @protected\n * @param {Number} coordinate - The coordinate in pixel.\n * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.\n * @return {Number} - The absolute position of the closest item.\n */\n Owl.prototype.closest = function (coordinate, direction) {\n var position = -1,\n pull = 30,\n width = this.width(),\n coordinates = this.coordinates();\n if (!this.settings.freeDrag) {\n // check closest item\n $.each(coordinates, $.proxy(function (index, value) {\n // on a left pull, check on current index\n if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {\n position = index;\n // on a right pull, check on previous index\n // to do so, subtract width from value and set position = index + 1\n } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {\n position = index + 1;\n } else if (this.op(coordinate, '<', value) && this.op(coordinate, '>', coordinates[index + 1] || value - width)) {\n position = direction === 'left' ? index + 1 : index;\n }\n return position === -1;\n }, this));\n }\n if (!this.settings.loop) {\n // non loop boundries\n if (this.op(coordinate, '>', coordinates[this.minimum()])) {\n position = coordinate = this.minimum();\n } else if (this.op(coordinate, '<', coordinates[this.maximum()])) {\n position = coordinate = this.maximum();\n }\n }\n return position;\n };\n\n /**\n * Animates the stage.\n * @todo #270\n * @public\n * @param {Number} coordinate - The coordinate in pixels.\n */\n Owl.prototype.animate = function (coordinate) {\n var animate = this.speed() > 0;\n this.is('animating') && this.onTransitionEnd();\n if (animate) {\n this.enter('animating');\n this.trigger('translate');\n }\n if ($.support.transform3d && $.support.transition) {\n this.$stage.css({\n transform: 'translate3d(' + coordinate + 'px,0px,0px)',\n transition: this.speed() / 1000 + 's'\n });\n } else if (animate) {\n this.$stage.animate({\n left: coordinate + 'px'\n }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));\n } else {\n this.$stage.css({\n left: coordinate + 'px'\n });\n }\n };\n\n /**\n * Checks whether the carousel is in a specific state or not.\n * @param {String} state - The state to check.\n * @returns {Boolean} - The flag which indicates if the carousel is busy.\n */\n Owl.prototype.is = function (state) {\n return this._states.current[state] && this._states.current[state] > 0;\n };\n\n /**\n * Sets the absolute position of the current item.\n * @public\n * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.\n * @returns {Number} - The absolute position of the current item.\n */\n Owl.prototype.current = function (position) {\n if (position === undefined) {\n return this._current;\n }\n if (this._items.length === 0) {\n return undefined;\n }\n position = this.normalize(position);\n if (this._current !== position) {\n var event = this.trigger('change', {\n property: {\n name: 'position',\n value: position\n }\n });\n if (event.data !== undefined) {\n position = this.normalize(event.data);\n }\n this._current = position;\n this.invalidate('position');\n this.trigger('changed', {\n property: {\n name: 'position',\n value: this._current\n }\n });\n }\n return this._current;\n };\n\n /**\n * Invalidates the given part of the update routine.\n * @param {String} [part] - The part to invalidate.\n * @returns {Array.} - The invalidated parts.\n */\n Owl.prototype.invalidate = function (part) {\n if ($.type(part) === 'string') {\n this._invalidated[part] = true;\n this.is('valid') && this.leave('valid');\n }\n return $.map(this._invalidated, function (v, i) {\n return i;\n });\n };\n\n /**\n * Resets the absolute position of the current item.\n * @public\n * @param {Number} position - The absolute position of the new item.\n */\n Owl.prototype.reset = function (position) {\n position = this.normalize(position);\n if (position === undefined) {\n return;\n }\n this._speed = 0;\n this._current = position;\n this.suppress(['translate', 'translated']);\n this.animate(this.coordinates(position));\n this.release(['translate', 'translated']);\n };\n\n /**\n * Normalizes an absolute or a relative position of an item.\n * @public\n * @param {Number} position - The absolute or relative position to normalize.\n * @param {Boolean} [relative=false] - Whether the given position is relative or not.\n * @returns {Number} - The normalized position.\n */\n Owl.prototype.normalize = function (position, relative) {\n var n = this._items.length,\n m = relative ? 0 : this._clones.length;\n if (!this.isNumeric(position) || n < 1) {\n position = undefined;\n } else if (position < 0 || position >= n + m) {\n position = ((position - m / 2) % n + n) % n + m / 2;\n }\n return position;\n };\n\n /**\n * Converts an absolute position of an item into a relative one.\n * @public\n * @param {Number} position - The absolute position to convert.\n * @returns {Number} - The converted position.\n */\n Owl.prototype.relative = function (position) {\n position -= this._clones.length / 2;\n return this.normalize(position, true);\n };\n\n /**\n * Gets the maximum position for the current item.\n * @public\n * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n * @returns {Number}\n */\n Owl.prototype.maximum = function (relative) {\n var settings = this.settings,\n maximum = this._coordinates.length,\n iterator,\n reciprocalItemsWidth,\n elementWidth;\n if (settings.loop) {\n maximum = this._clones.length / 2 + this._items.length - 1;\n } else if (settings.autoWidth || settings.merge) {\n iterator = this._items.length;\n reciprocalItemsWidth = this._items[--iterator].width();\n elementWidth = this.$element.width();\n while (iterator--) {\n reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin;\n if (reciprocalItemsWidth > elementWidth) {\n break;\n }\n }\n maximum = iterator + 1;\n } else if (settings.center) {\n maximum = this._items.length - 1;\n } else {\n maximum = this._items.length - settings.items;\n }\n if (relative) {\n maximum -= this._clones.length / 2;\n }\n return Math.max(maximum, 0);\n };\n\n /**\n * Gets the minimum position for the current item.\n * @public\n * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n * @returns {Number}\n */\n Owl.prototype.minimum = function (relative) {\n return relative ? 0 : this._clones.length / 2;\n };\n\n /**\n * Gets an item at the specified relative position.\n * @public\n * @param {Number} [position] - The relative position of the item.\n * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n */\n Owl.prototype.items = function (position) {\n if (position === undefined) {\n return this._items.slice();\n }\n position = this.normalize(position, true);\n return this._items[position];\n };\n\n /**\n * Gets an item at the specified relative position.\n * @public\n * @param {Number} [position] - The relative position of the item.\n * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n */\n Owl.prototype.mergers = function (position) {\n if (position === undefined) {\n return this._mergers.slice();\n }\n position = this.normalize(position, true);\n return this._mergers[position];\n };\n\n /**\n * Gets the absolute positions of clones for an item.\n * @public\n * @param {Number} [position] - The relative position of the item.\n * @returns {Array.} - The absolute positions of clones for the item or all if no position was given.\n */\n Owl.prototype.clones = function (position) {\n var odd = this._clones.length / 2,\n even = odd + this._items.length,\n map = function (index) {\n return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2;\n };\n if (position === undefined) {\n return $.map(this._clones, function (v, i) {\n return map(i);\n });\n }\n return $.map(this._clones, function (v, i) {\n return v === position ? map(i) : null;\n });\n };\n\n /**\n * Sets the current animation speed.\n * @public\n * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.\n * @returns {Number} - The current animation speed in milliseconds.\n */\n Owl.prototype.speed = function (speed) {\n if (speed !== undefined) {\n this._speed = speed;\n }\n return this._speed;\n };\n\n /**\n * Gets the coordinate of an item.\n * @todo The name of this method is missleanding.\n * @public\n * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.\n * @returns {Number|Array.} - The coordinate of the item in pixel or all coordinates.\n */\n Owl.prototype.coordinates = function (position) {\n var multiplier = 1,\n newPosition = position - 1,\n coordinate;\n if (position === undefined) {\n return $.map(this._coordinates, $.proxy(function (coordinate, index) {\n return this.coordinates(index);\n }, this));\n }\n if (this.settings.center) {\n if (this.settings.rtl) {\n multiplier = -1;\n newPosition = position + 1;\n }\n coordinate = this._coordinates[position];\n coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\n } else {\n coordinate = this._coordinates[newPosition] || 0;\n }\n coordinate = Math.ceil(coordinate);\n return coordinate;\n };\n\n /**\n * Calculates the speed for a translation.\n * @protected\n * @param {Number} from - The absolute position of the start item.\n * @param {Number} to - The absolute position of the target item.\n * @param {Number} [factor=undefined] - The time factor in milliseconds.\n * @returns {Number} - The time in milliseconds for the translation.\n */\n Owl.prototype.duration = function (from, to, factor) {\n if (factor === 0) {\n return 0;\n }\n return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs(factor || this.settings.smartSpeed);\n };\n\n /**\n * Slides to the specified item.\n * @public\n * @param {Number} position - The position of the item.\n * @param {Number} [speed] - The time in milliseconds for the transition.\n */\n Owl.prototype.to = function (position, speed) {\n var current = this.current(),\n revert = null,\n distance = position - this.relative(current),\n direction = (distance > 0) - (distance < 0),\n items = this._items.length,\n minimum = this.minimum(),\n maximum = this.maximum();\n if (this.settings.loop) {\n if (!this.settings.rewind && Math.abs(distance) > items / 2) {\n distance += direction * -1 * items;\n }\n position = current + distance;\n revert = ((position - minimum) % items + items) % items + minimum;\n if (revert !== position && revert - distance <= maximum && revert - distance > 0) {\n current = revert - distance;\n position = revert;\n this.reset(current);\n }\n } else if (this.settings.rewind) {\n maximum += 1;\n position = (position % maximum + maximum) % maximum;\n } else {\n position = Math.max(minimum, Math.min(maximum, position));\n }\n this.speed(this.duration(current, position, speed));\n this.current(position);\n if (this.$element.is(':visible')) {\n this.update();\n }\n };\n\n /**\n * Slides to the next item.\n * @public\n * @param {Number} [speed] - The time in milliseconds for the transition.\n */\n Owl.prototype.next = function (speed) {\n speed = speed || false;\n this.to(this.relative(this.current()) + 1, speed);\n };\n\n /**\n * Slides to the previous item.\n * @public\n * @param {Number} [speed] - The time in milliseconds for the transition.\n */\n Owl.prototype.prev = function (speed) {\n speed = speed || false;\n this.to(this.relative(this.current()) - 1, speed);\n };\n\n /**\n * Handles the end of an animation.\n * @protected\n * @param {Event} event - The event arguments.\n */\n Owl.prototype.onTransitionEnd = function (event) {\n // if css2 animation then event object is undefined\n if (event !== undefined) {\n event.stopPropagation();\n\n // Catch only owl-stage transitionEnd event\n if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {\n return false;\n }\n }\n this.leave('animating');\n this.trigger('translated');\n };\n\n /**\n * Gets viewport width.\n * @protected\n * @return {Number} - The width in pixel.\n */\n Owl.prototype.viewport = function () {\n var width;\n if (this.options.responsiveBaseElement !== window) {\n width = $(this.options.responsiveBaseElement).width();\n } else if (window.innerWidth) {\n width = window.innerWidth;\n } else if (document.documentElement && document.documentElement.clientWidth) {\n width = document.documentElement.clientWidth;\n } else {\n console.warn('Can not detect viewport width.');\n }\n return width;\n };\n\n /**\n * Replaces the current content.\n * @public\n * @param {HTMLElement|jQuery|String} content - The new content.\n */\n Owl.prototype.replace = function (content) {\n this.$stage.empty();\n this._items = [];\n if (content) {\n content = content instanceof jQuery ? content : $(content);\n }\n if (this.settings.nestedItemSelector) {\n content = content.find('.' + this.settings.nestedItemSelector);\n }\n content.filter(function () {\n return this.nodeType === 1;\n }).each($.proxy(function (index, item) {\n item = this.prepare(item);\n this.$stage.append(item);\n this._items.push(item);\n this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n }, this));\n this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);\n this.invalidate('items');\n };\n\n /**\n * Adds an item.\n * @todo Use `item` instead of `content` for the event arguments.\n * @public\n * @param {HTMLElement|jQuery|String} content - The item content to add.\n * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.\n */\n Owl.prototype.add = function (content, position) {\n var current = this.relative(this._current);\n position = position === undefined ? this._items.length : this.normalize(position, true);\n content = content instanceof jQuery ? content : $(content);\n this.trigger('add', {\n content: content,\n position: position\n });\n content = this.prepare(content);\n if (this._items.length === 0 || position === this._items.length) {\n this._items.length === 0 && this.$stage.append(content);\n this._items.length !== 0 && this._items[position - 1].after(content);\n this._items.push(content);\n this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n } else {\n this._items[position].before(content);\n this._items.splice(position, 0, content);\n this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n }\n this._items[current] && this.reset(this._items[current].index());\n this.invalidate('items');\n this.trigger('added', {\n content: content,\n position: position\n });\n };\n\n /**\n * Removes an item by its position.\n * @todo Use `item` instead of `content` for the event arguments.\n * @public\n * @param {Number} position - The relative position of the item to remove.\n */\n Owl.prototype.remove = function (position) {\n position = this.normalize(position, true);\n if (position === undefined) {\n return;\n }\n this.trigger('remove', {\n content: this._items[position],\n position: position\n });\n this._items[position].remove();\n this._items.splice(position, 1);\n this._mergers.splice(position, 1);\n this.invalidate('items');\n this.trigger('removed', {\n content: null,\n position: position\n });\n };\n\n /**\n * Preloads images with auto width.\n * @todo Replace by a more generic approach\n * @protected\n */\n Owl.prototype.preloadAutoWidthImages = function (images) {\n images.each($.proxy(function (i, element) {\n this.enter('pre-loading');\n element = $(element);\n $(new Image()).one('load', $.proxy(function (e) {\n element.attr('src', e.target.src);\n element.css('opacity', 1);\n this.leave('pre-loading');\n !this.is('pre-loading') && !this.is('initializing') && this.refresh();\n }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));\n }, this));\n };\n\n /**\n * Destroys the carousel.\n * @public\n */\n Owl.prototype.destroy = function () {\n this.$element.off('.owl.core');\n this.$stage.off('.owl.core');\n $(document).off('.owl.core');\n if (this.settings.responsive !== false) {\n window.clearTimeout(this.resizeTimer);\n this.off(window, 'resize', this._handlers.onThrottledResize);\n }\n for (var i in this._plugins) {\n this._plugins[i].destroy();\n }\n this.$stage.children('.cloned').remove();\n this.$stage.unwrap();\n this.$stage.children().contents().unwrap();\n this.$stage.children().unwrap();\n this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\\\S+\\\\s', 'g'), '')).removeData('owl.carousel');\n };\n\n /**\n * Operators to calculate right-to-left and left-to-right.\n * @protected\n * @param {Number} [a] - The left side operand.\n * @param {String} [o] - The operator.\n * @param {Number} [b] - The right side operand.\n */\n Owl.prototype.op = function (a, o, b) {\n var rtl = this.settings.rtl;\n switch (o) {\n case '<':\n return rtl ? a > b : a < b;\n case '>':\n return rtl ? a < b : a > b;\n case '>=':\n return rtl ? a <= b : a >= b;\n case '<=':\n return rtl ? a >= b : a <= b;\n default:\n break;\n }\n };\n\n /**\n * Attaches to an internal event.\n * @protected\n * @param {HTMLElement} element - The event source.\n * @param {String} event - The event name.\n * @param {Function} listener - The event handler to attach.\n * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.\n */\n Owl.prototype.on = function (element, event, listener, capture) {\n if (element.addEventListener) {\n element.addEventListener(event, listener, capture);\n } else if (element.attachEvent) {\n element.attachEvent('on' + event, listener);\n }\n };\n\n /**\n * Detaches from an internal event.\n * @protected\n * @param {HTMLElement} element - The event source.\n * @param {String} event - The event name.\n * @param {Function} listener - The attached event handler to detach.\n * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.\n */\n Owl.prototype.off = function (element, event, listener, capture) {\n if (element.removeEventListener) {\n element.removeEventListener(event, listener, capture);\n } else if (element.detachEvent) {\n element.detachEvent('on' + event, listener);\n }\n };\n\n /**\n * Triggers a public event.\n * @todo Remove `status`, `relatedTarget` should be used instead.\n * @protected\n * @param {String} name - The event name.\n * @param {*} [data=null] - The event data.\n * @param {String} [namespace=carousel] - The event namespace.\n * @param {String} [state] - The state which is associated with the event.\n * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.\n * @returns {Event} - The event arguments.\n */\n Owl.prototype.trigger = function (name, data, namespace, state, enter) {\n var status = {\n item: {\n count: this._items.length,\n index: this.current()\n }\n },\n handler = $.camelCase($.grep(['on', name, namespace], function (v) {\n return v;\n }).join('-').toLowerCase()),\n event = $.Event([name, 'owl', namespace || 'carousel'].join('.').toLowerCase(), $.extend({\n relatedTarget: this\n }, status, data));\n if (!this._supress[name]) {\n $.each(this._plugins, function (name, plugin) {\n if (plugin.onTrigger) {\n plugin.onTrigger(event);\n }\n });\n this.register({\n type: Owl.Type.Event,\n name: name\n });\n this.$element.trigger(event);\n if (this.settings && typeof this.settings[handler] === 'function') {\n this.settings[handler].call(this, event);\n }\n }\n return event;\n };\n\n /**\n * Enters a state.\n * @param name - The state name.\n */\n Owl.prototype.enter = function (name) {\n $.each([name].concat(this._states.tags[name] || []), $.proxy(function (i, name) {\n if (this._states.current[name] === undefined) {\n this._states.current[name] = 0;\n }\n this._states.current[name]++;\n }, this));\n };\n\n /**\n * Leaves a state.\n * @param name - The state name.\n */\n Owl.prototype.leave = function (name) {\n $.each([name].concat(this._states.tags[name] || []), $.proxy(function (i, name) {\n this._states.current[name]--;\n }, this));\n };\n\n /**\n * Registers an event or state.\n * @public\n * @param {Object} object - The event or state to register.\n */\n Owl.prototype.register = function (object) {\n if (object.type === Owl.Type.Event) {\n if (!$.event.special[object.name]) {\n $.event.special[object.name] = {};\n }\n if (!$.event.special[object.name].owl) {\n var _default = $.event.special[object.name]._default;\n $.event.special[object.name]._default = function (e) {\n if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {\n return _default.apply(this, arguments);\n }\n return e.namespace && e.namespace.indexOf('owl') > -1;\n };\n $.event.special[object.name].owl = true;\n }\n } else if (object.type === Owl.Type.State) {\n if (!this._states.tags[object.name]) {\n this._states.tags[object.name] = object.tags;\n } else {\n this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);\n }\n this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function (tag, i) {\n return $.inArray(tag, this._states.tags[object.name]) === i;\n }, this));\n }\n };\n\n /**\n * Suppresses events.\n * @protected\n * @param {Array.} events - The events to suppress.\n */\n Owl.prototype.suppress = function (events) {\n $.each(events, $.proxy(function (index, event) {\n this._supress[event] = true;\n }, this));\n };\n\n /**\n * Releases suppressed events.\n * @protected\n * @param {Array.} events - The events to release.\n */\n Owl.prototype.release = function (events) {\n $.each(events, $.proxy(function (index, event) {\n delete this._supress[event];\n }, this));\n };\n\n /**\n * Gets unified pointer coordinates from event.\n * @todo #261\n * @protected\n * @param {Event} - The `mousedown` or `touchstart` event.\n * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.\n */\n Owl.prototype.pointer = function (event) {\n var result = {\n x: null,\n y: null\n };\n event = event.originalEvent || event || window.event;\n event = event.touches && event.touches.length ? event.touches[0] : event.changedTouches && event.changedTouches.length ? event.changedTouches[0] : event;\n if (event.pageX) {\n result.x = event.pageX;\n result.y = event.pageY;\n } else {\n result.x = event.clientX;\n result.y = event.clientY;\n }\n return result;\n };\n\n /**\n * Determines if the input is a Number or something that can be coerced to a Number\n * @protected\n * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested\n * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number\n */\n Owl.prototype.isNumeric = function (number) {\n return !isNaN(parseFloat(number));\n };\n\n /**\n * Gets the difference of two vectors.\n * @todo #261\n * @protected\n * @param {Object} - The first vector.\n * @param {Object} - The second vector.\n * @returns {Object} - The difference.\n */\n Owl.prototype.difference = function (first, second) {\n return {\n x: first.x - second.x,\n y: first.y - second.y\n };\n };\n\n /**\n * The jQuery Plugin for the Owl Carousel\n * @todo Navigation plugin `next` and `prev`\n * @public\n */\n $.fn.owlCarousel = function (option) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.each(function () {\n var $this = $(this),\n data = $this.data('owl.carousel');\n if (!data) {\n data = new Owl(this, typeof option == 'object' && option);\n $this.data('owl.carousel', data);\n $.each(['next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'], function (i, event) {\n data.register({\n type: Owl.Type.Event,\n name: event\n });\n data.$element.on(event + '.owl.carousel.core', $.proxy(function (e) {\n if (e.namespace && e.relatedTarget !== this) {\n this.suppress([event]);\n data[event].apply(this, [].slice.call(arguments, 1));\n this.release([event]);\n }\n }, data));\n });\n }\n if (typeof option == 'string' && option.charAt(0) !== '_') {\n data[option].apply(data, args);\n }\n });\n };\n\n /**\n * The constructor for the jQuery Plugin\n * @public\n */\n $.fn.owlCarousel.Constructor = Owl;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * AutoRefresh Plugin\n * @version 2.1.0\n * @author Artus Kolanowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n /**\n * Creates the auto refresh plugin.\n * @class The Auto Refresh Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var AutoRefresh = function (carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n\n /**\n * Refresh interval.\n * @protected\n * @type {number}\n */\n this._interval = null;\n\n /**\n * Whether the element is currently visible or not.\n * @protected\n * @type {Boolean}\n */\n this._visible = null;\n\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n this._handlers = {\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoRefresh) {\n this.watch();\n }\n }, this)\n };\n\n // set default options\n this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options);\n\n // register event handlers\n this._core.$element.on(this._handlers);\n };\n\n /**\n * Default options.\n * @public\n */\n AutoRefresh.Defaults = {\n autoRefresh: true,\n autoRefreshInterval: 500\n };\n\n /**\n * Watches the element.\n */\n AutoRefresh.prototype.watch = function () {\n if (this._interval) {\n return;\n }\n this._visible = this._core.$element.is(':visible');\n this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);\n };\n\n /**\n * Refreshes the element.\n */\n AutoRefresh.prototype.refresh = function () {\n if (this._core.$element.is(':visible') === this._visible) {\n return;\n }\n this._visible = !this._visible;\n this._core.$element.toggleClass('owl-hidden', !this._visible);\n this._visible && this._core.invalidate('width') && this._core.refresh();\n };\n\n /**\n * Destroys the plugin.\n */\n AutoRefresh.prototype.destroy = function () {\n var handler, property;\n window.clearInterval(this._interval);\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Lazy Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n /**\n * Creates the lazy plugin.\n * @class The Lazy Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var Lazy = function (carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n\n /**\n * Already loaded items.\n * @protected\n * @type {Array.}\n */\n this._loaded = [];\n\n /**\n * Event handlers.\n * @protected\n * @type {Object}\n */\n this._handlers = {\n 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function (e) {\n if (!e.namespace) {\n return;\n }\n if (!this._core.settings || !this._core.settings.lazyLoad) {\n return;\n }\n if (e.property && e.property.name == 'position' || e.type == 'initialized') {\n var settings = this._core.settings,\n n = settings.center && Math.ceil(settings.items / 2) || settings.items,\n i = settings.center && n * -1 || 0,\n position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i,\n clones = this._core.clones().length,\n load = $.proxy(function (i, v) {\n this.load(v);\n }, this);\n while (i++ < n) {\n this.load(clones / 2 + this._core.relative(position));\n clones && $.each(this._core.clones(this._core.relative(position)), load);\n position++;\n }\n }\n }, this)\n };\n\n // set the default options\n this._core.options = $.extend({}, Lazy.Defaults, this._core.options);\n\n // register event handler\n this._core.$element.on(this._handlers);\n };\n\n /**\n * Default options.\n * @public\n */\n Lazy.Defaults = {\n lazyLoad: false\n };\n\n /**\n * Loads all resources of an item at the specified position.\n * @param {Number} position - The absolute position of the item.\n * @protected\n */\n Lazy.prototype.load = function (position) {\n var $item = this._core.$stage.children().eq(position),\n $elements = $item && $item.find('.owl-lazy');\n if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {\n return;\n }\n $elements.each($.proxy(function (index, element) {\n var $element = $(element),\n image,\n url = window.devicePixelRatio > 1 && $element.attr('data-src-retina') || $element.attr('data-src');\n this._core.trigger('load', {\n element: $element,\n url: url\n }, 'lazy');\n if ($element.is('img')) {\n $element.one('load.owl.lazy', $.proxy(function () {\n $element.css('opacity', 1);\n this._core.trigger('loaded', {\n element: $element,\n url: url\n }, 'lazy');\n }, this)).attr('src', url);\n } else {\n image = new Image();\n image.onload = $.proxy(function () {\n $element.css({\n 'background-image': 'url(\"' + url + '\")',\n 'opacity': '1'\n });\n this._core.trigger('loaded', {\n element: $element,\n url: url\n }, 'lazy');\n }, this);\n image.src = url;\n }\n }, this));\n this._loaded.push($item.get(0));\n };\n\n /**\n * Destroys the plugin.\n * @public\n */\n Lazy.prototype.destroy = function () {\n var handler, property;\n for (handler in this.handlers) {\n this._core.$element.off(handler, this.handlers[handler]);\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * AutoHeight Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n /**\n * Creates the auto height plugin.\n * @class The Auto Height Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var AutoHeight = function (carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n this._handlers = {\n 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoHeight) {\n this.update();\n }\n }, this),\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoHeight && e.property.name == 'position') {\n this.update();\n }\n }, this),\n 'loaded.owl.lazy': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoHeight && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {\n this.update();\n }\n }, this)\n };\n\n // set default options\n this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);\n\n // register event handlers\n this._core.$element.on(this._handlers);\n };\n\n /**\n * Default options.\n * @public\n */\n AutoHeight.Defaults = {\n autoHeight: false,\n autoHeightClass: 'owl-height'\n };\n\n /**\n * Updates the view.\n */\n AutoHeight.prototype.update = function () {\n var start = this._core._current,\n end = start + this._core.settings.items,\n visible = this._core.$stage.children().toArray().slice(start, end),\n heights = [],\n maxheight = 0;\n $.each(visible, function (index, item) {\n heights.push($(item).height());\n });\n maxheight = Math.max.apply(null, heights);\n this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass);\n };\n AutoHeight.prototype.destroy = function () {\n var handler, property;\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Video Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n /**\n * Creates the video plugin.\n * @class The Video Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var Video = function (carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n\n /**\n * Cache all video URLs.\n * @protected\n * @type {Object}\n */\n this._videos = {};\n\n /**\n * Current playing item.\n * @protected\n * @type {jQuery}\n */\n this._playing = null;\n\n /**\n * All event handlers.\n * @todo The cloned content removale is too late\n * @protected\n * @type {Object}\n */\n this._handlers = {\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace) {\n this._core.register({\n type: 'state',\n name: 'playing',\n tags: ['interacting']\n });\n }\n }, this),\n 'resize.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.video && this.isInFullScreen()) {\n e.preventDefault();\n }\n }, this),\n 'refreshed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.is('resizing')) {\n this._core.$stage.find('.cloned .owl-video-frame').remove();\n }\n }, this),\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name === 'position' && this._playing) {\n this.stop();\n }\n }, this),\n 'prepared.owl.carousel': $.proxy(function (e) {\n if (!e.namespace) {\n return;\n }\n var $element = $(e.content).find('.owl-video');\n if ($element.length) {\n $element.css('display', 'none');\n this.fetch($element, $(e.content));\n }\n }, this)\n };\n\n // set default options\n this._core.options = $.extend({}, Video.Defaults, this._core.options);\n\n // register event handlers\n this._core.$element.on(this._handlers);\n this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function (e) {\n this.play(e);\n }, this));\n };\n\n /**\n * Default options.\n * @public\n */\n Video.Defaults = {\n video: false,\n videoHeight: false,\n videoWidth: false\n };\n\n /**\n * Gets the video ID and the type (YouTube/Vimeo/vzaar only).\n * @protected\n * @param {jQuery} target - The target containing the video data.\n * @param {jQuery} item - The item containing the video.\n */\n Video.prototype.fetch = function (target, item) {\n var type = function () {\n if (target.attr('data-vimeo-id')) {\n return 'vimeo';\n } else if (target.attr('data-vzaar-id')) {\n return 'vzaar';\n } else {\n return 'youtube';\n }\n }(),\n id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'),\n width = target.attr('data-width') || this._core.settings.videoWidth,\n height = target.attr('data-height') || this._core.settings.videoHeight,\n url = target.attr('href');\n if (url) {\n /*\n \t\tParses the id's out of the following urls (and probably more):\n \t\thttps://www.youtube.com/watch?v=:id\n \t\thttps://youtu.be/:id\n \t\thttps://vimeo.com/:id\n \t\thttps://vimeo.com/channels/:channel/:id\n \t\thttps://vimeo.com/groups/:group/videos/:id\n \t\thttps://app.vzaar.com/videos/:id\n \t\t\tVisual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F\n */\n\n id = url.match(/(http:|https:|)\\/\\/(player.|www.|app.)?(vimeo\\.com|youtu(be\\.com|\\.be|be\\.googleapis\\.com)|vzaar\\.com)\\/(video\\/|videos\\/|embed\\/|channels\\/.+\\/|groups\\/.+\\/|watch\\?v=|v\\/)?([A-Za-z0-9._%-]*)(\\&\\S+)?/);\n if (id[3].indexOf('youtu') > -1) {\n type = 'youtube';\n } else if (id[3].indexOf('vimeo') > -1) {\n type = 'vimeo';\n } else if (id[3].indexOf('vzaar') > -1) {\n type = 'vzaar';\n } else {\n throw new Error('Video URL not supported.');\n }\n id = id[6];\n } else {\n throw new Error('Missing video URL.');\n }\n this._videos[url] = {\n type: type,\n id: id,\n width: width,\n height: height\n };\n item.attr('data-video', url);\n this.thumbnail(target, this._videos[url]);\n };\n\n /**\n * Creates video thumbnail.\n * @protected\n * @param {jQuery} target - The target containing the video data.\n * @param {Object} info - The video info object.\n * @see `fetch`\n */\n Video.prototype.thumbnail = function (target, video) {\n var tnLink,\n icon,\n path,\n dimensions = video.width && video.height ? 'style=\"width:' + video.width + 'px;height:' + video.height + 'px;\"' : '',\n customTn = target.find('img'),\n srcType = 'src',\n lazyClass = '',\n settings = this._core.settings,\n create = function (path) {\n icon = '
';\n if (settings.lazyLoad) {\n tnLink = '
';\n } else {\n tnLink = '
';\n }\n target.after(tnLink);\n target.after(icon);\n };\n\n // wrap video content into owl-video-wrapper div\n target.wrap('
');\n if (this._core.settings.lazyLoad) {\n srcType = 'data-src';\n lazyClass = 'owl-lazy';\n }\n\n // custom thumbnail\n if (customTn.length) {\n create(customTn.attr(srcType));\n customTn.remove();\n return false;\n }\n if (video.type === 'youtube') {\n path = \"//img.youtube.com/vi/\" + video.id + \"/hqdefault.jpg\";\n create(path);\n } else if (video.type === 'vimeo') {\n $.ajax({\n type: 'GET',\n url: '//vimeo.com/api/v2/video/' + video.id + '.json',\n jsonp: 'callback',\n dataType: 'jsonp',\n success: function (data) {\n path = data[0].thumbnail_large;\n create(path);\n }\n });\n } else if (video.type === 'vzaar') {\n $.ajax({\n type: 'GET',\n url: '//vzaar.com/api/videos/' + video.id + '.json',\n jsonp: 'callback',\n dataType: 'jsonp',\n success: function (data) {\n path = data.framegrab_url;\n create(path);\n }\n });\n }\n };\n\n /**\n * Stops the current video.\n * @public\n */\n Video.prototype.stop = function () {\n this._core.trigger('stop', null, 'video');\n this._playing.find('.owl-video-frame').remove();\n this._playing.removeClass('owl-video-playing');\n this._playing = null;\n this._core.leave('playing');\n this._core.trigger('stopped', null, 'video');\n };\n\n /**\n * Starts the current video.\n * @public\n * @param {Event} event - The event arguments.\n */\n Video.prototype.play = function (event) {\n var target = $(event.target),\n item = target.closest('.' + this._core.settings.itemClass),\n video = this._videos[item.attr('data-video')],\n width = video.width || '100%',\n height = video.height || this._core.$stage.height(),\n html;\n if (this._playing) {\n return;\n }\n this._core.enter('playing');\n this._core.trigger('play', null, 'video');\n item = this._core.items(this._core.relative(item.index()));\n this._core.reset(item.index());\n if (video.type === 'youtube') {\n html = '';\n } else if (video.type === 'vimeo') {\n html = '';\n } else if (video.type === 'vzaar') {\n html = '';\n }\n $('
' + html + '
').insertAfter(item.find('.owl-video'));\n this._playing = item.addClass('owl-video-playing');\n };\n\n /**\n * Checks whether an video is currently in full screen mode or not.\n * @todo Bad style because looks like a readonly method but changes members.\n * @protected\n * @returns {Boolean}\n */\n Video.prototype.isInFullScreen = function () {\n var element = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n return element && $(element).parent().hasClass('owl-video-frame');\n };\n\n /**\n * Destroys the plugin.\n */\n Video.prototype.destroy = function () {\n var handler, property;\n this._core.$element.off('click.owl.video');\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.Video = Video;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Animate Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n /**\n * Creates the animate plugin.\n * @class The Navigation Plugin\n * @param {Owl} scope - The Owl Carousel\n */\n var Animate = function (scope) {\n this.core = scope;\n this.core.options = $.extend({}, Animate.Defaults, this.core.options);\n this.swapping = true;\n this.previous = undefined;\n this.next = undefined;\n this.handlers = {\n 'change.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name == 'position') {\n this.previous = this.core.current();\n this.next = e.property.value;\n }\n }, this),\n 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function (e) {\n if (e.namespace) {\n this.swapping = e.type == 'translated';\n }\n }, this),\n 'translate.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {\n this.swap();\n }\n }, this)\n };\n this.core.$element.on(this.handlers);\n };\n\n /**\n * Default options.\n * @public\n */\n Animate.Defaults = {\n animateOut: false,\n animateIn: false\n };\n\n /**\n * Toggles the animation classes whenever an translations starts.\n * @protected\n * @returns {Boolean|undefined}\n */\n Animate.prototype.swap = function () {\n if (this.core.settings.items !== 1) {\n return;\n }\n if (!$.support.animation || !$.support.transition) {\n return;\n }\n this.core.speed(0);\n var left,\n clear = $.proxy(this.clear, this),\n previous = this.core.$stage.children().eq(this.previous),\n next = this.core.$stage.children().eq(this.next),\n incoming = this.core.settings.animateIn,\n outgoing = this.core.settings.animateOut;\n if (this.core.current() === this.previous) {\n return;\n }\n if (outgoing) {\n left = this.core.coordinates(this.previous) - this.core.coordinates(this.next);\n previous.one($.support.animation.end, clear).css({\n 'left': left + 'px'\n }).addClass('animated owl-animated-out').addClass(outgoing);\n }\n if (incoming) {\n next.one($.support.animation.end, clear).addClass('animated owl-animated-in').addClass(incoming);\n }\n };\n Animate.prototype.clear = function (e) {\n $(e.target).css({\n 'left': ''\n }).removeClass('animated owl-animated-out owl-animated-in').removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut);\n this.core.onTransitionEnd();\n };\n\n /**\n * Destroys the plugin.\n * @public\n */\n Animate.prototype.destroy = function () {\n var handler, property;\n for (handler in this.handlers) {\n this.core.$element.off(handler, this.handlers[handler]);\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.Animate = Animate;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Autoplay Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author Artus Kolanowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n /**\n * Creates the autoplay plugin.\n * @class The Autoplay Plugin\n * @param {Owl} scope - The Owl Carousel\n */\n var Autoplay = function (carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n\n /**\n * The autoplay timeout.\n * @type {Timeout}\n */\n this._timeout = null;\n\n /**\n * Indicates whenever the autoplay is paused.\n * @type {Boolean}\n */\n this._paused = false;\n\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n this._handlers = {\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name === 'settings') {\n if (this._core.settings.autoplay) {\n this.play();\n } else {\n this.stop();\n }\n } else if (e.namespace && e.property.name === 'position') {\n //console.log('play?', e);\n if (this._core.settings.autoplay) {\n this._setAutoPlayInterval();\n }\n }\n }, this),\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.autoplay) {\n this.play();\n }\n }, this),\n 'play.owl.autoplay': $.proxy(function (e, t, s) {\n if (e.namespace) {\n this.play(t, s);\n }\n }, this),\n 'stop.owl.autoplay': $.proxy(function (e) {\n if (e.namespace) {\n this.stop();\n }\n }, this),\n 'mouseover.owl.autoplay': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n this.pause();\n }\n }, this),\n 'mouseleave.owl.autoplay': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n this.play();\n }\n }, this),\n 'touchstart.owl.core': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n this.pause();\n }\n }, this),\n 'touchend.owl.core': $.proxy(function () {\n if (this._core.settings.autoplayHoverPause) {\n this.play();\n }\n }, this)\n };\n\n // register event handlers\n this._core.$element.on(this._handlers);\n\n // set default options\n this._core.options = $.extend({}, Autoplay.Defaults, this._core.options);\n };\n\n /**\n * Default options.\n * @public\n */\n Autoplay.Defaults = {\n autoplay: false,\n autoplayTimeout: 5000,\n autoplayHoverPause: false,\n autoplaySpeed: false\n };\n\n /**\n * Starts the autoplay.\n * @public\n * @param {Number} [timeout] - The interval before the next animation starts.\n * @param {Number} [speed] - The animation speed for the animations.\n */\n Autoplay.prototype.play = function (timeout, speed) {\n this._paused = false;\n if (this._core.is('rotating')) {\n return;\n }\n this._core.enter('rotating');\n this._setAutoPlayInterval();\n };\n\n /**\n * Gets a new timeout\n * @private\n * @param {Number} [timeout] - The interval before the next animation starts.\n * @param {Number} [speed] - The animation speed for the animations.\n * @return {Timeout}\n */\n Autoplay.prototype._getNextTimeout = function (timeout, speed) {\n if (this._timeout) {\n window.clearTimeout(this._timeout);\n }\n return window.setTimeout($.proxy(function () {\n if (this._paused || this._core.is('busy') || this._core.is('interacting') || document.hidden) {\n return;\n }\n this._core.next(speed || this._core.settings.autoplaySpeed);\n }, this), timeout || this._core.settings.autoplayTimeout);\n };\n\n /**\n * Sets autoplay in motion.\n * @private\n */\n Autoplay.prototype._setAutoPlayInterval = function () {\n this._timeout = this._getNextTimeout();\n };\n\n /**\n * Stops the autoplay.\n * @public\n */\n Autoplay.prototype.stop = function () {\n if (!this._core.is('rotating')) {\n return;\n }\n window.clearTimeout(this._timeout);\n this._core.leave('rotating');\n };\n\n /**\n * Stops the autoplay.\n * @public\n */\n Autoplay.prototype.pause = function () {\n if (!this._core.is('rotating')) {\n return;\n }\n this._paused = true;\n };\n\n /**\n * Destroys the plugin.\n */\n Autoplay.prototype.destroy = function () {\n var handler, property;\n this.stop();\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Navigation Plugin\n * @version 2.1.0\n * @author Artus Kolanowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n 'use strict';\n\n /**\n * Creates the navigation plugin.\n * @class The Navigation Plugin\n * @param {Owl} carousel - The Owl Carousel.\n */\n var Navigation = function (carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n\n /**\n * Indicates whether the plugin is initialized or not.\n * @protected\n * @type {Boolean}\n */\n this._initialized = false;\n\n /**\n * The current paging indexes.\n * @protected\n * @type {Array}\n */\n this._pages = [];\n\n /**\n * All DOM elements of the user interface.\n * @protected\n * @type {Object}\n */\n this._controls = {};\n\n /**\n * Markup for an indicator.\n * @protected\n * @type {Array.}\n */\n this._templates = [];\n\n /**\n * The carousel element.\n * @type {jQuery}\n */\n this.$element = this._core.$element;\n\n /**\n * Overridden methods of the carousel.\n * @protected\n * @type {Object}\n */\n this._overrides = {\n next: this._core.next,\n prev: this._core.prev,\n to: this._core.to\n };\n\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n this._handlers = {\n 'prepared.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.dotsData) {\n this._templates.push('
' + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
');\n }\n }, this),\n 'added.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.dotsData) {\n this._templates.splice(e.position, 0, this._templates.pop());\n }\n }, this),\n 'remove.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.dotsData) {\n this._templates.splice(e.position, 1);\n }\n }, this),\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name == 'position') {\n this.draw();\n }\n }, this),\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace && !this._initialized) {\n this._core.trigger('initialize', null, 'navigation');\n this.initialize();\n this.update();\n this.draw();\n this._initialized = true;\n this._core.trigger('initialized', null, 'navigation');\n }\n }, this),\n 'refreshed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._initialized) {\n this._core.trigger('refresh', null, 'navigation');\n this.update();\n this.draw();\n this._core.trigger('refreshed', null, 'navigation');\n }\n }, this)\n };\n\n // set default options\n this._core.options = $.extend({}, Navigation.Defaults, this._core.options);\n\n // register event handlers\n this.$element.on(this._handlers);\n };\n\n /**\n * Default options.\n * @public\n * @todo Rename `slideBy` to `navBy`\n */\n Navigation.Defaults = {\n nav: false,\n navText: ['prev', 'next'],\n navSpeed: false,\n navElement: 'div',\n navContainer: false,\n navContainerClass: 'owl-nav',\n navClass: ['owl-prev', 'owl-next'],\n slideBy: 1,\n dotClass: 'owl-dot',\n dotsClass: 'owl-dots',\n dots: true,\n dotsEach: false,\n dotsData: false,\n dotsSpeed: false,\n dotsContainer: false\n };\n\n /**\n * Initializes the layout of the plugin and extends the carousel.\n * @protected\n */\n Navigation.prototype.initialize = function () {\n var override,\n settings = this._core.settings;\n\n // create DOM structure for relative navigation\n this._controls.$relative = (settings.navContainer ? $(settings.navContainer) : $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');\n this._controls.$previous = $('<' + settings.navElement + '>').addClass(settings.navClass[0]).html(settings.navText[0]).prependTo(this._controls.$relative).on('click', $.proxy(function (e) {\n this.prev(settings.navSpeed);\n }, this));\n this._controls.$next = $('<' + settings.navElement + '>').addClass(settings.navClass[1]).html(settings.navText[1]).appendTo(this._controls.$relative).on('click', $.proxy(function (e) {\n this.next(settings.navSpeed);\n }, this));\n\n // create DOM structure for absolute navigation\n if (!settings.dotsData) {\n this._templates = [$('
').addClass(settings.dotClass).append($('')).prop('outerHTML')];\n }\n this._controls.$absolute = (settings.dotsContainer ? $(settings.dotsContainer) : $('
').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');\n this._controls.$absolute.on('click', 'div', $.proxy(function (e) {\n var index = $(e.target).parent().is(this._controls.$absolute) ? $(e.target).index() : $(e.target).parent().index();\n e.preventDefault();\n this.to(index, settings.dotsSpeed);\n }, this));\n\n // override public methods of the carousel\n for (override in this._overrides) {\n this._core[override] = $.proxy(this[override], this);\n }\n };\n\n /**\n * Destroys the plugin.\n * @protected\n */\n Navigation.prototype.destroy = function () {\n var handler, control, property, override;\n for (handler in this._handlers) {\n this.$element.off(handler, this._handlers[handler]);\n }\n for (control in this._controls) {\n this._controls[control].remove();\n }\n for (override in this.overides) {\n this._core[override] = this._overrides[override];\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n\n /**\n * Updates the internal state.\n * @protected\n */\n Navigation.prototype.update = function () {\n var i,\n j,\n k,\n lower = this._core.clones().length / 2,\n upper = lower + this._core.items().length,\n maximum = this._core.maximum(true),\n settings = this._core.settings,\n size = settings.center || settings.autoWidth || settings.dotsData ? 1 : settings.dotsEach || settings.items;\n if (settings.slideBy !== 'page') {\n settings.slideBy = Math.min(settings.slideBy, settings.items);\n }\n if (settings.dots || settings.slideBy == 'page') {\n this._pages = [];\n for (i = lower, j = 0, k = 0; i < upper; i++) {\n if (j >= size || j === 0) {\n this._pages.push({\n start: Math.min(maximum, i - lower),\n end: i - lower + size - 1\n });\n if (Math.min(maximum, i - lower) === maximum) {\n break;\n }\n j = 0, ++k;\n }\n j += this._core.mergers(this._core.relative(i));\n }\n }\n };\n\n /**\n * Draws the user interface.\n * @todo The option `dotsData` wont work.\n * @protected\n */\n Navigation.prototype.draw = function () {\n var difference,\n settings = this._core.settings,\n disabled = this._core.items().length <= settings.items,\n index = this._core.relative(this._core.current()),\n loop = settings.loop || settings.rewind;\n this._controls.$relative.toggleClass('disabled', !settings.nav || disabled);\n if (settings.nav) {\n this._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(true));\n this._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(true));\n }\n this._controls.$absolute.toggleClass('disabled', !settings.dots || disabled);\n if (settings.dots) {\n difference = this._pages.length - this._controls.$absolute.children().length;\n if (settings.dotsData && difference !== 0) {\n this._controls.$absolute.html(this._templates.join(''));\n } else if (difference > 0) {\n this._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));\n } else if (difference < 0) {\n this._controls.$absolute.children().slice(difference).remove();\n }\n this._controls.$absolute.find('.active').removeClass('active');\n this._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');\n }\n };\n\n /**\n * Extends event data.\n * @protected\n * @param {Event} event - The event object which gets thrown.\n */\n Navigation.prototype.onTrigger = function (event) {\n var settings = this._core.settings;\n event.page = {\n index: $.inArray(this.current(), this._pages),\n count: this._pages.length,\n size: settings && (settings.center || settings.autoWidth || settings.dotsData ? 1 : settings.dotsEach || settings.items)\n };\n };\n\n /**\n * Gets the current page position of the carousel.\n * @protected\n * @returns {Number}\n */\n Navigation.prototype.current = function () {\n var current = this._core.relative(this._core.current());\n return $.grep(this._pages, $.proxy(function (page, index) {\n return page.start <= current && page.end >= current;\n }, this)).pop();\n };\n\n /**\n * Gets the current succesor/predecessor position.\n * @protected\n * @returns {Number}\n */\n Navigation.prototype.getPosition = function (successor) {\n var position,\n length,\n settings = this._core.settings;\n if (settings.slideBy == 'page') {\n position = $.inArray(this.current(), this._pages);\n length = this._pages.length;\n successor ? ++position : --position;\n position = this._pages[(position % length + length) % length].start;\n } else {\n position = this._core.relative(this._core.current());\n length = this._core.items().length;\n successor ? position += settings.slideBy : position -= settings.slideBy;\n }\n return position;\n };\n\n /**\n * Slides to the next item or page.\n * @public\n * @param {Number} [speed=false] - The time in milliseconds for the transition.\n */\n Navigation.prototype.next = function (speed) {\n $.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);\n };\n\n /**\n * Slides to the previous item or page.\n * @public\n * @param {Number} [speed=false] - The time in milliseconds for the transition.\n */\n Navigation.prototype.prev = function (speed) {\n $.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);\n };\n\n /**\n * Slides to the specified item or page.\n * @public\n * @param {Number} position - The position of the item or page.\n * @param {Number} [speed] - The time in milliseconds for the transition.\n * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.\n */\n Navigation.prototype.to = function (position, speed, standard) {\n var length;\n if (!standard && this._pages.length) {\n length = this._pages.length;\n $.proxy(this._overrides.to, this._core)(this._pages[(position % length + length) % length].start, speed);\n } else {\n $.proxy(this._overrides.to, this._core)(position, speed);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Hash Plugin\n * @version 2.1.0\n * @author Artus Kolanowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n 'use strict';\n\n /**\n * Creates the hash plugin.\n * @class The Hash Plugin\n * @param {Owl} carousel - The Owl Carousel\n */\n var Hash = function (carousel) {\n /**\n * Reference to the core.\n * @protected\n * @type {Owl}\n */\n this._core = carousel;\n\n /**\n * Hash index for the items.\n * @protected\n * @type {Object}\n */\n this._hashes = {};\n\n /**\n * The carousel element.\n * @type {jQuery}\n */\n this.$element = this._core.$element;\n\n /**\n * All event handlers.\n * @protected\n * @type {Object}\n */\n this._handlers = {\n 'initialized.owl.carousel': $.proxy(function (e) {\n if (e.namespace && this._core.settings.startPosition === 'URLHash') {\n $(window).trigger('hashchange.owl.navigation');\n }\n }, this),\n 'prepared.owl.carousel': $.proxy(function (e) {\n if (e.namespace) {\n var hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');\n if (!hash) {\n return;\n }\n this._hashes[hash] = e.content;\n }\n }, this),\n 'changed.owl.carousel': $.proxy(function (e) {\n if (e.namespace && e.property.name === 'position') {\n var current = this._core.items(this._core.relative(this._core.current())),\n hash = $.map(this._hashes, function (item, hash) {\n return item === current ? hash : null;\n }).join();\n if (!hash || window.location.hash.slice(1) === hash) {\n return;\n }\n window.location.hash = hash;\n }\n }, this)\n };\n\n // set default options\n this._core.options = $.extend({}, Hash.Defaults, this._core.options);\n\n // register the event handlers\n this.$element.on(this._handlers);\n\n // register event listener for hash navigation\n $(window).on('hashchange.owl.navigation', $.proxy(function (e) {\n var hash = window.location.hash.substring(1),\n items = this._core.$stage.children(),\n position = this._hashes[hash] && items.index(this._hashes[hash]);\n if (position === undefined || position === this._core.current()) {\n return;\n }\n this._core.to(this._core.relative(position), false, true);\n }, this));\n };\n\n /**\n * Default options.\n * @public\n */\n Hash.Defaults = {\n URLhashListener: false\n };\n\n /**\n * Destroys the plugin.\n * @public\n */\n Hash.prototype.destroy = function () {\n var handler, property;\n $(window).off('hashchange.owl.navigation');\n for (handler in this._handlers) {\n this._core.$element.off(handler, this._handlers[handler]);\n }\n for (property in Object.getOwnPropertyNames(this)) {\n typeof this[property] != 'function' && (this[property] = null);\n }\n };\n $.fn.owlCarousel.Constructor.Plugins.Hash = Hash;\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Support Plugin\n *\n * @version 2.1.0\n * @author Vivid Planet Software GmbH\n * @author Artus Kolanowski\n * @author Saurabh Sharma\n * @license The MIT License (MIT)\n */\n;\n(function ($, window, document, undefined) {\n var style = $('').get(0).style,\n prefixes = 'Webkit Moz O ms'.split(' '),\n events = {\n transition: {\n end: {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd',\n transition: 'transitionend'\n }\n },\n animation: {\n end: {\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'animationend',\n OAnimation: 'oAnimationEnd',\n animation: 'animationend'\n }\n }\n },\n tests = {\n csstransforms: function () {\n return !!test('transform');\n },\n csstransforms3d: function () {\n return !!test('perspective');\n },\n csstransitions: function () {\n return !!test('transition');\n },\n cssanimations: function () {\n return !!test('animation');\n }\n };\n function test(property, prefixed) {\n var result = false,\n upper = property.charAt(0).toUpperCase() + property.slice(1);\n $.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function (i, property) {\n if (style[property] !== undefined) {\n result = prefixed ? property : true;\n return false;\n }\n });\n return result;\n }\n function prefixed(property) {\n return test(property, true);\n }\n if (tests.csstransitions()) {\n /* jshint -W053 */\n $.support.transition = new String(prefixed('transition'));\n $.support.transition.end = events.transition.end[$.support.transition];\n }\n if (tests.cssanimations()) {\n /* jshint -W053 */\n $.support.animation = new String(prefixed('animation'));\n $.support.animation.end = events.animation.end[$.support.animation];\n }\n if (tests.csstransforms()) {\n /* jshint -W053 */\n $.support.transform = new String(prefixed('transform'));\n $.support.transform3d = tests.csstransforms3d();\n }\n})(window.Zepto || window.jQuery, window, document);"],"sourceRoot":""}