-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.bundle.js.map
1 lines (1 loc) Β· 115 KB
/
app.bundle.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/index.js","webpack:///./node_modules/@glidejs/glide/dist/glide.esm.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","window","addEventListener","configs","packages__slider","perView","breakpoints","800","type","autoplay","dragThreshold","keys","forEach","Glide","mount","sliders","__webpack_exports__","defaults","startAt","focusAt","gap","hoverpause","keyboard","bound","swipeThreshold","perTouch","touchRatio","touchAngle","animationDuration","rewind","rewindDuration","animationTimingFunc","throttle","direction","peek","classes","ltr","rtl","slider","carousel","swipeable","dragging","cloneSlide","activeNav","activeSlide","disabledArrow","warn","msg","console","error","_typeof","iterator","obj","constructor","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","length","descriptor","configurable","writable","protoProps","staticProps","_extends","assign","arguments","source","possibleConstructorReturn","self","ReferenceError","toInt","parseInt","isString","isObject","isFunction","isUndefined","isArray","Array","define","prop","definition","mergeOptions","settings","options","EventsBus","events","undefined","this","hop","event","handler","on","index","push","remove","context","emit","item","selector","_c","_t","_e","disabled","extensions","glide","components","_name","transformers","pattern","Run","make","distance","Transition","disable","Move","interval","_o","set","_i","_d","status","now","Date","getTime","func","wait","timeout","args","result","previous","later","leading","apply","throttled","at","remaining","clearTimeout","trailing","setTimeout","cancel","MARGIN_TYPE","siblings","node","parentNode","firstChild","matched","nextSibling","nodeType","exist","HTMLElement","TRACK_SELECTOR","EventsBinder","listeners","el","closure","capture","removeEventListener","VALID_DIRECTIONS","FLIPED_MOVEMENTS",">","<","=","Rtl","Components","modify","translate","Direction","is","mutator","Events","TRANSFORMERS","Gaps","Clones","grow","Peek","before","width","Sizes","slideWidth","concat","mutate","transformer","START_EVENTS","MOVE_EVENTS","END_EVENTS","MOUSE_EVENTS","NAV_SELECTOR","CONTROLS_SELECTOR","sortBreakpoints","points","sort","reduce","k","sortKeys","COMPONENTS","Html","root","track","querySelector","slides","slice","wrapper","children","filter","slide","classList","contains","_r","document","Translate","transform","style","isType","isOffset","after","movement","compose","duration","transition","callback","enable","offset","resolve","token","split","join","addClass","add","removeClass","_v","indexOf","setupSlides","setupWrapper","dimention","wrapperSize","offsetWidth","reductor","len","marginLeft","marginRight","_this","items","collect","_Glide$settings","start","end","Math","max","floor","clone","cloneNode","_clone","unshift","append","_Components$Html","half","prepend","reverse","appendChild","_i2","insertBefore","_i3","removeChild","Resize","Binder","unbind","off","destroy","Build","typeClass","activeClass","sibling","removeClasses","move","calculate","steps","countableSteps","isNumber","isEnd","min","isStart","_m","substr","Swipe","swipeSin","swipeStartX","swipeStartY","bindSwipeStart","swipe","touches","pageX","pageY","bindSwipeMove","bindSwipeEnd","subExSx","subEySy","powEX","abs","powEY","swipeHypotenuse","swipeCathetus","asin","parseFloat","toFloat","PI","stopPropagation","threshold","swipeDistance","swipeDeg","round","unbindSwipeMove","unbindSwipeEnd","unbindSwipeStart","_this2","_this3","changedTouches","Images","dragstart","preventDefault","Anchors","detached","prevented","_a","querySelectorAll","click","detach","draggable","setAttribute","getAttribute","removeAttribute","attach","Controls","_n","addBindings","setActive","removeActive","controls","removeBindings","elements","currentTarget","Keyboard","press","keyCode","Autoplay","setInterval","stop","time","clearInterval","Breakpoints","match","matchMedia","point","matches","Glide$1","_Core","Glide$$1","__proto__","getPrototypeOf","subClass","superClass","setPrototypeOf","inherits","receiver","Function","desc","getOwnPropertyDescriptor","parent"],"mappings":"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","file":"app.bundle.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import '../css/main.scss';\r\n\r\nimport Glide from '@glidejs/glide'\r\n// import Glide, { Controls, Breakpoints, Autoplay } from '@glidejs/glide/dist/glide.modular.esm';\r\n\r\nwindow.addEventListener('load', main);\r\n\r\nfunction sliders() {\r\n const configs = {\r\n packages__slider: {\r\n perView: 3,\r\n breakpoints: {\r\n 800: {\r\n perView: 1\r\n }\r\n },\r\n type: 'carousel',\r\n autoplay: 4000,\r\n dragThreshold: 120\r\n }\r\n }\r\n\r\n Object.keys(configs).forEach(key => new Glide(`.${key}`, configs[key]).mount())\r\n}\r\n\r\nfunction main() {\r\n sliders();\r\n}\r\n\r\nif (module.hot) {\r\n module.hot.accept();\r\n}\r\n","/*!\n * Glide.js v3.2.3\n * (c) 2013-2018 JΔdrzej ChaΕubek <[email protected]> (http://jedrzejchalubek.com/)\n * Released under the MIT License.\n */\n\nvar defaults = {\n /**\n * Type of the movement.\n *\n * Available types:\n * `slider` - Rewinds slider to the start/end when it reaches the first or last slide.\n * `carousel` - Changes slides without starting over when it reaches the first or last slide.\n *\n * @type {String}\n */\n type: 'slider',\n\n /**\n * Start at specific slide number defined with zero-based index.\n *\n * @type {Number}\n */\n startAt: 0,\n\n /**\n * A number of slides visible on the single viewport.\n *\n * @type {Number}\n */\n perView: 1,\n\n /**\n * Focus currently active slide at a specified position in the track.\n *\n * Available inputs:\n * `center` - Current slide will be always focused at the center of a track.\n * `0,1,2,3...` - Current slide will be focused on the specified zero-based index.\n *\n * @type {String|Number}\n */\n focusAt: 0,\n\n /**\n * A size of the gap added between slides.\n *\n * @type {Number}\n */\n gap: 10,\n\n /**\n * Change slides after a specified interval. Use `false` for turning off autoplay.\n *\n * @type {Number|Boolean}\n */\n autoplay: false,\n\n /**\n * Stop autoplay on mouseover event.\n *\n * @type {Boolean}\n */\n hoverpause: true,\n\n /**\n * Allow for changing slides with left and right keyboard arrows.\n *\n * @type {Boolean}\n */\n keyboard: true,\n\n /**\n * Stop running `perView` number of slides from the end. Use this\n * option if you don't want to have an empty space after\n * a slider. Works only with `slider` type and a\n * non-centered `focusAt` setting.\n *\n * @type {Boolean}\n */\n bound: false,\n\n /**\n * Minimal swipe distance needed to change the slide. Use `false` for turning off a swiping.\n *\n * @type {Number|Boolean}\n */\n swipeThreshold: 80,\n\n /**\n * Minimal mouse drag distance needed to change the slide. Use `false` for turning off a dragging.\n *\n * @type {Number|Boolean}\n */\n dragThreshold: 120,\n\n /**\n * A maximum number of slides to which movement will be made on swiping or dragging. Use `false` for unlimited.\n *\n * @type {Number|Boolean}\n */\n perTouch: false,\n\n /**\n * Moving distance ratio of the slides on a swiping and dragging.\n *\n * @type {Number}\n */\n touchRatio: 0.5,\n\n /**\n * Angle required to activate slides moving on swiping or dragging.\n *\n * @type {Number}\n */\n touchAngle: 45,\n\n /**\n * Duration of the animation in milliseconds.\n *\n * @type {Number}\n */\n animationDuration: 400,\n\n /**\n * Allows looping the `slider` type. Slider will rewind to the first/last slide when it's at the start/end.\n *\n * @type {Boolean}\n */\n rewind: true,\n\n /**\n * Duration of the rewinding animation of the `slider` type in milliseconds.\n *\n * @type {Number}\n */\n rewindDuration: 800,\n\n /**\n * Easing function for the animation.\n *\n * @type {String}\n */\n animationTimingFunc: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n\n /**\n * Throttle costly events at most once per every wait milliseconds.\n *\n * @type {Number}\n */\n throttle: 10,\n\n /**\n * Moving direction mode.\n *\n * Available inputs:\n * - 'ltr' - left to right movement,\n * - 'rtl' - right to left movement.\n *\n * @type {String}\n */\n direction: 'ltr',\n\n /**\n * The distance value of the next and previous viewports which\n * have to peek in the current view. Accepts number and\n * pixels as a string. Left and right peeking can be\n * set up separately with a directions object.\n *\n * For example:\n * `100` - Peek 100px on the both sides.\n * { before: 100, after: 50 }` - Peek 100px on the left side and 50px on the right side.\n *\n * @type {Number|String|Object}\n */\n peek: 0,\n\n /**\n * Collection of options applied at specified media breakpoints.\n * For example: display two slides per view under 800px.\n * `{\n * '800px': {\n * perView: 2\n * }\n * }`\n */\n breakpoints: {},\n\n /**\n * Collection of internally used HTML classes.\n *\n * @todo Refactor `slider` and `carousel` properties to single `type: { slider: '', carousel: '' }` object\n * @type {Object}\n */\n classes: {\n direction: {\n ltr: 'glide--ltr',\n rtl: 'glide--rtl'\n },\n slider: 'glide--slider',\n carousel: 'glide--carousel',\n swipeable: 'glide--swipeable',\n dragging: 'glide--dragging',\n cloneSlide: 'glide__slide--clone',\n activeNav: 'glide__bullet--active',\n activeSlide: 'glide__slide--active',\n disabledArrow: 'glide__arrow--disabled'\n }\n};\n\n/**\n * Outputs warning message to the bowser console.\n *\n * @param {String} msg\n * @return {Void}\n */\nfunction warn(msg) {\n console.error(\"[Glide warn]: \" + msg);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n/**\n * Converts value entered as number\n * or string to integer value.\n *\n * @param {String} value\n * @returns {Number}\n */\nfunction toInt(value) {\n return parseInt(value);\n}\n\n/**\n * Converts value entered as number\n * or string to flat value.\n *\n * @param {String} value\n * @returns {Number}\n */\nfunction toFloat(value) {\n return parseFloat(value);\n}\n\n/**\n * Indicates whether the specified value is a string.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isString(value) {\n return typeof value === 'string';\n}\n\n/**\n * Indicates whether the specified value is an object.\n *\n * @param {*} value\n * @return {Boolean}\n *\n * @see https://github.com/jashkenas/underscore\n */\nfunction isObject(value) {\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n return type === 'function' || type === 'object' && !!value; // eslint-disable-line no-mixed-operators\n}\n\n/**\n * Indicates whether the specified value is a number.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\n/**\n * Indicates whether the specified value is a function.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\n/**\n * Indicates whether the specified value is undefined.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n\n/**\n * Indicates whether the specified value is an array.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isArray(value) {\n return value.constructor === Array;\n}\n\n/**\n * Creates and initializes specified collection of extensions.\n * Each extension receives access to instance of glide and rest of components.\n *\n * @param {Object} glide\n * @param {Object} extensions\n *\n * @returns {Object}\n */\nfunction mount(glide, extensions, events) {\n var components = {};\n\n for (var name in extensions) {\n if (isFunction(extensions[name])) {\n components[name] = extensions[name](glide, components, events);\n } else {\n warn('Extension must be a function');\n }\n }\n\n for (var _name in components) {\n if (isFunction(components[_name].mount)) {\n components[_name].mount();\n }\n }\n\n return components;\n}\n\n/**\n * Defines getter and setter property on the specified object.\n *\n * @param {Object} obj Object where property has to be defined.\n * @param {String} prop Name of the defined property.\n * @param {Object} definition Get and set definitions for the property.\n * @return {Void}\n */\nfunction define(obj, prop, definition) {\n Object.defineProperty(obj, prop, definition);\n}\n\n/**\n * Sorts aphabetically object keys.\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction sortKeys(obj) {\n return Object.keys(obj).sort().reduce(function (r, k) {\n r[k] = obj[k];\n\n return r[k], r;\n }, {});\n}\n\n/**\n * Merges passed settings object with default options.\n *\n * @param {Object} defaults\n * @param {Object} settings\n * @return {Object}\n */\nfunction mergeOptions(defaults, settings) {\n var options = _extends({}, defaults, settings);\n\n // `Object.assign` do not deeply merge objects, so we\n // have to do it manually for every nested object\n // in options. Although it does not look smart,\n // it's smaller and faster than some fancy\n // merging deep-merge algorithm script.\n if (settings.hasOwnProperty('classes')) {\n options.classes = _extends({}, defaults.classes, settings.classes);\n\n if (settings.classes.hasOwnProperty('direction')) {\n options.classes.direction = _extends({}, defaults.classes.direction, settings.classes.direction);\n }\n }\n\n if (settings.hasOwnProperty('breakpoints')) {\n options.breakpoints = _extends({}, defaults.breakpoints, settings.breakpoints);\n }\n\n return options;\n}\n\nvar EventsBus = function () {\n /**\n * Construct a EventBus instance.\n *\n * @param {Object} events\n */\n function EventsBus() {\n var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n classCallCheck(this, EventsBus);\n\n this.events = events;\n this.hop = events.hasOwnProperty;\n }\n\n /**\n * Adds listener to the specifed event.\n *\n * @param {String|Array} event\n * @param {Function} handler\n */\n\n\n createClass(EventsBus, [{\n key: 'on',\n value: function on(event, handler) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.on(event[i], handler);\n }\n }\n\n // Create the event's object if not yet created\n if (!this.hop.call(this.events, event)) {\n this.events[event] = [];\n }\n\n // Add the handler to queue\n var index = this.events[event].push(handler) - 1;\n\n // Provide handle back for removal of event\n return {\n remove: function remove() {\n delete this.events[event][index];\n }\n };\n }\n\n /**\n * Runs registered handlers for specified event.\n *\n * @param {String|Array} event\n * @param {Object=} context\n */\n\n }, {\n key: 'emit',\n value: function emit(event, context) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.emit(event[i], context);\n }\n }\n\n // If the event doesn't exist, or there's no handlers in queue, just leave\n if (!this.hop.call(this.events, event)) {\n return;\n }\n\n // Cycle through events queue, fire!\n this.events[event].forEach(function (item) {\n item(context || {});\n });\n }\n }]);\n return EventsBus;\n}();\n\nvar Glide = function () {\n /**\r\n * Construct glide.\r\n *\r\n * @param {String} selector\r\n * @param {Object} options\r\n */\n function Glide(selector) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, Glide);\n\n this._c = {};\n this._t = [];\n this._e = new EventsBus();\n\n this.disabled = false;\n this.selector = selector;\n this.settings = mergeOptions(defaults, options);\n this.index = this.settings.startAt;\n }\n\n /**\r\n * Initializes glide.\r\n *\r\n * @param {Object} extensions Collection of extensions to initialize.\r\n * @return {Glide}\r\n */\n\n\n createClass(Glide, [{\n key: 'mount',\n value: function mount$$1() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._e.emit('mount.before');\n\n if (isObject(extensions)) {\n this._c = mount(this, extensions, this._e);\n } else {\n warn('You need to provide a object on `mount()`');\n }\n\n this._e.emit('mount.after');\n\n return this;\n }\n\n /**\r\n * Collects an instance `translate` transformers.\r\n *\r\n * @param {Array} transformers Collection of transformers.\r\n * @return {Void}\r\n */\n\n }, {\n key: 'mutate',\n value: function mutate() {\n var transformers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (isArray(transformers)) {\n this._t = transformers;\n } else {\n warn('You need to provide a array on `mutate()`');\n }\n\n return this;\n }\n\n /**\r\n * Updates glide with specified settings.\r\n *\r\n * @param {Object} settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'update',\n value: function update() {\n var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.settings = mergeOptions(this.settings, settings);\n\n if (settings.hasOwnProperty('startAt')) {\n this.index = settings.startAt;\n }\n\n this._e.emit('update');\n\n return this;\n }\n\n /**\r\n * Change slide with specified pattern. A pattern must be in the special format:\r\n * `>` - Move one forward\r\n * `<` - Move one backward\r\n * `={i}` - Go to {i} zero-based slide (eq. '=1', will go to second slide)\r\n * `>>` - Rewinds to end (last slide)\r\n * `<<` - Rewinds to start (first slide)\r\n *\r\n * @param {String} pattern\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'go',\n value: function go(pattern) {\n this._c.Run.make(pattern);\n\n return this;\n }\n\n /**\r\n * Move track by specified distance.\r\n *\r\n * @param {String} distance\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'move',\n value: function move(distance) {\n this._c.Transition.disable();\n this._c.Move.make(distance);\n\n return this;\n }\n\n /**\r\n * Destroy instance and revert all changes done by this._c.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this._e.emit('destroy');\n\n return this;\n }\n\n /**\r\n * Start instance autoplaying.\r\n *\r\n * @param {Boolean|Number} interval Run autoplaying with passed interval regardless of `autoplay` settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'play',\n value: function play() {\n var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (interval) {\n this.settings.autoplay = interval;\n }\n\n this._e.emit('play');\n\n return this;\n }\n\n /**\r\n * Stop instance autoplaying.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'pause',\n value: function pause() {\n this._e.emit('pause');\n\n return this;\n }\n\n /**\r\n * Sets glide into a idle status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'disable',\n value: function disable() {\n this.disabled = true;\n\n return this;\n }\n\n /**\r\n * Sets glide into a active status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'enable',\n value: function enable() {\n this.disabled = false;\n\n return this;\n }\n\n /**\r\n * Adds cuutom event listener with handler.\r\n *\r\n * @param {String|Array} event\r\n * @param {Function} handler\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'on',\n value: function on(event, handler) {\n this._e.on(event, handler);\n\n return this;\n }\n\n /**\r\n * Checks if glide is a precised type.\r\n *\r\n * @param {String} name\r\n * @return {Boolean}\r\n */\n\n }, {\n key: 'isType',\n value: function isType(name) {\n return this.settings.type === name;\n }\n\n /**\r\n * Gets value of the core options.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: 'settings',\n get: function get$$1() {\n return this._o;\n }\n\n /**\r\n * Sets value of the core options.\r\n *\r\n * @param {Object} o\r\n * @return {Void}\r\n */\n ,\n set: function set$$1(o) {\n if (isObject(o)) {\n this._o = o;\n } else {\n warn('Options must be an `object` instance.');\n }\n }\n\n /**\r\n * Gets current index of the slider.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: 'index',\n get: function get$$1() {\n return this._i;\n }\n\n /**\r\n * Sets current index a slider.\r\n *\r\n * @return {Object}\r\n */\n ,\n set: function set$$1(i) {\n this._i = toInt(i);\n }\n\n /**\r\n * Gets type name of the slider.\r\n *\r\n * @return {String}\r\n */\n\n }, {\n key: 'type',\n get: function get$$1() {\n return this.settings.type;\n }\n\n /**\r\n * Gets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n\n }, {\n key: 'disabled',\n get: function get$$1() {\n return this._d;\n }\n\n /**\r\n * Sets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n ,\n set: function set$$1(status) {\n this._d = !!status;\n }\n }]);\n return Glide;\n}();\n\nfunction Run (Glide, Components, Events) {\n var Run = {\n /**\n * Initializes autorunning of the glide.\n *\n * @return {Void}\n */\n mount: function mount() {\n this._o = false;\n },\n\n\n /**\n * Makes glides running based on the passed moving schema.\n *\n * @param {String} move\n */\n make: function make(move) {\n var _this = this;\n\n if (!Glide.disabled) {\n Glide.disable();\n\n this.move = move;\n\n Events.emit('run.before', this.move);\n\n this.calculate();\n\n Events.emit('run', this.move);\n\n Components.Transition.after(function () {\n if (_this.isOffset('<') || _this.isOffset('>')) {\n _this._o = false;\n\n Events.emit('run.offset', _this.move);\n }\n\n Events.emit('run.after', _this.move);\n\n Glide.enable();\n });\n }\n },\n\n\n /**\n * Calculates current index based on defined move.\n *\n * @return {Void}\n */\n calculate: function calculate() {\n var move = this.move,\n length = this.length;\n var steps = move.steps,\n direction = move.direction;\n\n\n var countableSteps = isNumber(toInt(steps)) && toInt(steps) !== 0;\n\n switch (direction) {\n case '>':\n if (steps === '>') {\n Glide.index = length;\n } else if (this.isEnd()) {\n if (!(Glide.isType('slider') && !Glide.settings.rewind)) {\n this._o = true;\n\n Glide.index = 0;\n }\n\n Events.emit('run.end', move);\n } else if (countableSteps) {\n Glide.index += Math.min(length - Glide.index, -toInt(steps));\n } else {\n Glide.index++;\n }\n break;\n\n case '<':\n if (steps === '<') {\n Glide.index = 0;\n } else if (this.isStart()) {\n if (!(Glide.isType('slider') && !Glide.settings.rewind)) {\n this._o = true;\n\n Glide.index = length;\n }\n\n Events.emit('run.start', move);\n } else if (countableSteps) {\n Glide.index -= Math.min(Glide.index, toInt(steps));\n } else {\n Glide.index--;\n }\n break;\n\n case '=':\n Glide.index = steps;\n break;\n }\n },\n\n\n /**\n * Checks if we are on the first slide.\n *\n * @return {Boolean}\n */\n isStart: function isStart() {\n return Glide.index === 0;\n },\n\n\n /**\n * Checks if we are on the last slide.\n *\n * @return {Boolean}\n */\n isEnd: function isEnd() {\n return Glide.index === this.length;\n },\n\n\n /**\n * Checks if we are making a offset run.\n *\n * @param {String} direction\n * @return {Boolean}\n */\n isOffset: function isOffset(direction) {\n return this._o && this.move.direction === direction;\n }\n };\n\n define(Run, 'move', {\n /**\n * Gets value of the move schema.\n *\n * @returns {Object}\n */\n get: function get() {\n return this._m;\n },\n\n\n /**\n * Sets value of the move schema.\n *\n * @returns {Object}\n */\n set: function set(value) {\n this._m = {\n direction: value.substr(0, 1),\n steps: value.substr(1) ? value.substr(1) : 0\n };\n }\n });\n\n define(Run, 'length', {\n /**\n * Gets value of the running distance based\n * on zero-indexing number of slides.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n var length = Components.Html.slides.length;\n\n // While number of slides inside instance is smaller\n // that `perView` settings we should't run at all.\n // Running distance has to be zero.\n\n if (settings.perView > length) {\n return 0;\n }\n\n // If the `bound` option is acitve, a maximum running distance should be\n // reduced by `perView` and `focusAt` settings. Running distance\n // should end before creating an empty space after instance.\n if (Glide.isType('slider') && settings.focusAt !== 'center' && settings.bound) {\n return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt);\n }\n\n return length - 1;\n }\n });\n\n define(Run, 'offset', {\n /**\n * Gets status of the offsetting flag.\n *\n * @return {Boolean}\n */\n get: function get() {\n return this._o;\n }\n });\n\n return Run;\n}\n\n/**\n * Returns a current time.\n *\n * @return {Number}\n */\nfunction now() {\n return new Date().getTime();\n}\n\n/**\n * Returns a function, that, when invoked, will only be triggered\n * at most once during a given window of time.\n *\n * @param {Function} func\n * @param {Number} wait\n * @param {Object=} options\n * @return {Function}\n *\n * @see https://github.com/jashkenas/underscore\n */\nfunction throttle(func, wait, options) {\n var timeout = void 0,\n context = void 0,\n args = void 0,\n result = void 0;\n var previous = 0;\n if (!options) options = {};\n\n var later = function later() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function throttled() {\n var at = now();\n if (!previous && options.leading === false) previous = at;\n var remaining = wait - (at - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = at;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function () {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\nvar MARGIN_TYPE = {\n ltr: ['marginLeft', 'marginRight'],\n rtl: ['marginRight', 'marginLeft']\n};\n\nfunction Gaps (Glide, Components, Events) {\n var Gaps = {\n /**\n * Applies gaps between slides. First and last\n * slides do not receive it's edge margins.\n *\n * @param {HTMLCollection} slides\n * @return {Void}\n */\n apply: function apply(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n var direction = Components.Direction.value;\n\n if (i !== 0) {\n style[MARGIN_TYPE[direction][0]] = this.value / 2 + 'px';\n } else {\n style[MARGIN_TYPE[direction][0]] = '';\n }\n\n if (i !== slides.length - 1) {\n style[MARGIN_TYPE[direction][1]] = this.value / 2 + 'px';\n } else {\n style[MARGIN_TYPE[direction][1]] = '';\n }\n }\n },\n\n\n /**\n * Removes gaps from the slides.\n *\n * @param {HTMLCollection} slides\n * @returns {Void}\n */\n remove: function remove(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n\n style.marginLeft = '';\n style.marginRight = '';\n }\n }\n };\n\n define(Gaps, 'value', {\n /**\n * Gets value of the gap.\n *\n * @returns {Number}\n */\n get: function get() {\n return toInt(Glide.settings.gap);\n }\n });\n\n define(Gaps, 'grow', {\n /**\n * Gets additional dimentions value caused by gaps.\n * Used to increase width of the slides wrapper.\n *\n * @returns {Number}\n */\n get: function get() {\n return Gaps.value * (Components.Sizes.length - 1);\n }\n });\n\n define(Gaps, 'reductor', {\n /**\n * Gets reduction value caused by gaps.\n * Used to subtract width of the slides.\n *\n * @returns {Number}\n */\n get: function get() {\n var perView = Glide.settings.perView;\n\n return Gaps.value * (perView - 1) / perView;\n }\n });\n\n /**\n * Apply calculated gaps:\n * - after building, so slides (including clones) will receive proper margins\n * - on updating via API, to recalculate gaps with new options\n */\n Events.on(['build.after', 'update'], throttle(function () {\n Gaps.apply(Components.Html.wrapper.children);\n }, 30));\n\n /**\n * Remove gaps:\n * - on destroying to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Gaps.remove(Components.Html.wrapper.children);\n });\n\n return Gaps;\n}\n\n/**\n * Finds siblings nodes of the passed node.\n *\n * @param {Element} node\n * @return {Array}\n */\nfunction siblings(node) {\n if (node && node.parentNode) {\n var n = node.parentNode.firstChild;\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== node) {\n matched.push(n);\n }\n }\n\n return matched;\n }\n\n return [];\n}\n\n/**\n * Checks if passed node exist and is a valid element.\n *\n * @param {Element} node\n * @return {Boolean}\n */\nfunction exist(node) {\n if (node && node instanceof window.HTMLElement) {\n return true;\n }\n\n return false;\n}\n\nvar TRACK_SELECTOR = '[data-glide-el=\"track\"]';\n\nfunction Html (Glide, Components) {\n var Html = {\n /**\n * Setup slider HTML nodes.\n *\n * @param {Glide} glide\n */\n mount: function mount() {\n this.root = Glide.selector;\n this.track = this.root.querySelector(TRACK_SELECTOR);\n this.slides = Array.prototype.slice.call(this.wrapper.children).filter(function (slide) {\n return !slide.classList.contains(Glide.settings.classes.cloneSlide);\n });\n }\n };\n\n define(Html, 'root', {\n /**\n * Gets node of the glide main element.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._r;\n },\n\n\n /**\n * Sets node of the glide main element.\n *\n * @return {Object}\n */\n set: function set(r) {\n if (isString(r)) {\n r = document.querySelector(r);\n }\n\n if (exist(r)) {\n Html._r = r;\n } else {\n warn('Root element must be a existing Html node');\n }\n }\n });\n\n define(Html, 'track', {\n /**\n * Gets node of the glide track with slides.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._t;\n },\n\n\n /**\n * Sets node of the glide track with slides.\n *\n * @return {Object}\n */\n set: function set(t) {\n if (exist(t)) {\n Html._t = t;\n } else {\n warn('Could not find track element. Please use ' + TRACK_SELECTOR + ' attribute.');\n }\n }\n });\n\n define(Html, 'wrapper', {\n /**\n * Gets node of the slides wrapper.\n *\n * @return {Object}\n */\n get: function get() {\n return Html.track.children[0];\n }\n });\n\n return Html;\n}\n\nfunction Peek (Glide, Components, Events) {\n var Peek = {\n /**\n * Setups how much to peek based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.peek;\n }\n };\n\n define(Peek, 'value', {\n /**\n * Gets value of the peek.\n *\n * @returns {Number|Object}\n */\n get: function get() {\n return Peek._v;\n },\n\n\n /**\n * Sets value of the peek.\n *\n * @param {Number|Object} value\n * @return {Void}\n */\n set: function set(value) {\n if (isObject(value)) {\n value.before = toInt(value.before);\n value.after = toInt(value.after);\n } else {\n value = toInt(value);\n }\n\n Peek._v = value;\n }\n });\n\n define(Peek, 'reductor', {\n /**\n * Gets reduction value caused by peek.\n *\n * @returns {Number}\n */\n get: function get() {\n var value = Peek.value;\n var perView = Glide.settings.perView;\n\n if (isObject(value)) {\n return value.before / perView + value.after / perView;\n }\n\n return value * 2 / perView;\n }\n });\n\n /**\n * Recalculate peeking sizes on:\n * - when resizing window to update to proper percents\n */\n Events.on(['resize', 'update'], function () {\n Peek.mount();\n });\n\n return Peek;\n}\n\nfunction Move (Glide, Components, Events) {\n var Move = {\n /**\n * Constructs move component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n this._o = 0;\n },\n\n\n /**\n * Calculates a movement value based on passed offset and currently active index.\n *\n * @param {Number} offset\n * @return {Void}\n */\n make: function make() {\n var _this = this;\n\n var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n this.offset = offset;\n\n Events.emit('move', {\n movement: this.value\n });\n\n Components.Transition.after(function () {\n Events.emit('move.after', {\n movement: _this.value\n });\n });\n }\n };\n\n define(Move, 'offset', {\n /**\n * Gets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n get: function get() {\n return Move._o;\n },\n\n\n /**\n * Sets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n set: function set(value) {\n Move._o = !isUndefined(value) ? toInt(value) : 0;\n }\n });\n\n define(Move, 'translate', {\n /**\n * Gets a raw movement value.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Sizes.slideWidth * Glide.index;\n }\n });\n\n define(Move, 'value', {\n /**\n * Gets an actual movement value corrected by offset.\n *\n * @return {Number}\n */\n get: function get() {\n var offset = this.offset;\n var translate = this.translate;\n\n if (Components.Direction.is('rtl')) {\n return translate + offset;\n }\n\n return translate - offset;\n }\n });\n\n /**\n * Make movement to proper slide on:\n * - before build, so glide will start at `startAt` index\n * - on each standard run to move to newly calculated index\n */\n Events.on(['build.before', 'run'], function () {\n Move.make();\n });\n\n return Move;\n}\n\nfunction Sizes (Glide, Components, Events) {\n var Sizes = {\n /**\n * Setups dimentions of slides.\n *\n * @return {Void}\n */\n setupSlides: function setupSlides() {\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = this.slideWidth + 'px';\n }\n },\n\n\n /**\n * Setups dimentions of slides wrapper.\n *\n * @return {Void}\n */\n setupWrapper: function setupWrapper(dimention) {\n Components.Html.wrapper.style.width = this.wrapperSize + 'px';\n },\n\n\n /**\n * Removes applied styles from HTML elements.\n *\n * @returns {Void}\n */\n remove: function remove() {\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = '';\n }\n\n Components.Html.wrapper.style.width = '';\n }\n };\n\n define(Sizes, 'length', {\n /**\n * Gets count number of the slides.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.slides.length;\n }\n });\n\n define(Sizes, 'width', {\n /**\n * Gets width value of the glide.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.root.offsetWidth;\n }\n });\n\n define(Sizes, 'wrapperSize', {\n /**\n * Gets size of the slides wrapper.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.slideWidth * Sizes.length + Components.Gaps.grow + Components.Clones.grow;\n }\n });\n\n define(Sizes, 'slideWidth', {\n /**\n * Gets width value of the single slide.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.width / Glide.settings.perView - Components.Peek.reductor - Components.Gaps.reductor;\n }\n });\n\n /**\n * Apply calculated glide's dimensions:\n * - before building, so other dimentions (e.g. translate) will be calculated propertly\n * - when resizing window to recalculate sildes dimensions\n * - on updating via API, to calculate dimensions based on new options\n */\n Events.on(['build.before', 'resize', 'update'], function () {\n Sizes.setupSlides();\n Sizes.setupWrapper();\n });\n\n /**\n * Remove calculated glide's dimensions:\n * - on destoting to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Sizes.remove();\n });\n\n return Sizes;\n}\n\nfunction Build (Glide, Components, Events) {\n var Build = {\n /**\n * Init glide building. Adds classes, sets\n * dimensions and setups initial state.\n *\n * @return {Void}\n */\n mount: function mount() {\n Events.emit('build.before');\n\n this.typeClass();\n this.activeClass();\n\n Events.emit('build.after');\n },\n\n\n /**\n * Adds `type` class to the glide element.\n *\n * @return {Void}\n */\n typeClass: function typeClass() {\n Components.Html.root.classList.add(Glide.settings.classes[Glide.settings.type]);\n },\n\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n activeClass: function activeClass() {\n var classes = Glide.settings.classes;\n var slide = Components.Html.slides[Glide.index];\n\n if (slide) {\n slide.classList.add(classes.activeSlide);\n\n siblings(slide).forEach(function (sibling) {\n sibling.classList.remove(classes.activeSlide);\n });\n }\n },\n\n\n /**\n * Removes HTML classes applied at building.\n *\n * @return {Void}\n */\n removeClasses: function removeClasses() {\n var classes = Glide.settings.classes;\n\n Components.Html.root.classList.remove(classes[Glide.settings.type]);\n\n Components.Html.slides.forEach(function (sibling) {\n sibling.classList.remove(classes.activeSlide);\n });\n }\n };\n\n /**\n * Clear building classes:\n * - on destroying to bring HTML to its initial state\n * - on updating to remove classes before remounting component\n */\n Events.on(['destroy', 'update'], function () {\n Build.removeClasses();\n });\n\n /**\n * Remount component:\n * - on resizing of the window to calculate new dimentions\n * - on updating settings via API\n */\n Events.on(['resize', 'update'], function () {\n Build.mount();\n });\n\n /**\n * Swap active class of current slide:\n * - after each move to the new index\n */\n Events.on('move.after', function () {\n Build.activeClass();\n });\n\n return Build;\n}\n\nfunction Clones (Glide, Components, Events) {\n var Clones = {\n /**\n * Create pattern map and collect slides to be cloned.\n */\n mount: function mount() {\n this.items = [];\n\n if (Glide.isType('carousel')) {\n this.items = this.collect();\n }\n },\n\n\n /**\n * Collect clones with pattern.\n *\n * @return {Void}\n */\n collect: function collect() {\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var slides = Components.Html.slides;\n var _Glide$settings = Glide.settings,\n perView = _Glide$settings.perView,\n classes = _Glide$settings.classes;\n\n\n var start = slides.slice(0, perView);\n var end = slides.slice(-perView);\n\n for (var r = 0; r < Math.max(1, Math.floor(perView / slides.length)); r++) {\n for (var i = 0; i < start.length; i++) {\n var clone = start[i].cloneNode(true);\n\n clone.classList.add(classes.cloneSlide);\n\n items.push(clone);\n }\n\n for (var _i = 0; _i < end.length; _i++) {\n var _clone = end[_i].cloneNode(true);\n\n _clone.classList.add(classes.cloneSlide);\n\n items.unshift(_clone);\n }\n }\n\n return items;\n },\n\n\n /**\n * Append cloned slides with generated pattern.\n *\n * @return {Void}\n */\n append: function append() {\n var items = this.items;\n var _Components$Html = Components.Html,\n wrapper = _Components$Html.wrapper,\n slides = _Components$Html.slides;\n\n\n var half = Math.floor(items.length / 2);\n var prepend = items.slice(0, half).reverse();\n var append = items.slice(half, items.length);\n\n for (var i = 0; i < append.length; i++) {\n wrapper.appendChild(append[i]);\n }\n\n for (var _i2 = 0; _i2 < prepend.length; _i2++) {\n wrapper.insertBefore(prepend[_i2], slides[0]);\n }\n\n for (var _i3 = 0; _i3 < items.length; _i3++) {\n items[_i3].style.width = Components.Sizes.slideWidth + 'px';\n }\n },\n\n\n /**\n * Remove all cloned slides.\n *\n * @return {Void}\n */\n remove: function remove() {\n var items = this.items;\n\n\n for (var i = 0; i < items.length; i++) {\n Components.Html.wrapper.removeChild(items[i]);\n }\n }\n };\n\n define(Clones, 'grow', {\n /**\n * Gets additional dimentions value caused by clones.\n *\n * @return {Number}\n */\n get: function get() {\n return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones.items.length;\n }\n });\n\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n Events.on('update', function () {\n Clones.remove();\n Clones.mount();\n Clones.append();\n });\n\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n Events.on('build.before', function () {\n if (Glide.isType('carousel')) {\n Clones.append();\n }\n });\n\n /**\n * Remove clones HTMLElements:\n * - on destroying, to bring HTML to its initial state\n */\n Events.on('destroy', function () {\n Clones.remove();\n });\n\n return Clones;\n}\n\nvar EventsBinder = function () {\n /**\n * Construct a EventsBinder instance.\n */\n function EventsBinder() {\n var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n classCallCheck(this, EventsBinder);\n\n this.listeners = listeners;\n }\n\n /**\n * Adds events listeners to arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Function} closure\n * @return {Void}\n */\n\n\n createClass(EventsBinder, [{\n key: 'on',\n value: function on(events, el, closure) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n this.listeners[events[i]] = closure;\n\n el.addEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n\n /**\n * Removes event listeners from arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @return {Void}\n */\n\n }, {\n key: 'off',\n value: function off(events, el) {\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n el.removeEventListener(events[i], this.listeners[events[i]], false);\n }\n }\n\n /**\n * Destroy collected listeners.\n *\n * @returns {Void}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n delete this.listeners;\n }\n }]);\n return EventsBinder;\n}();\n\nfunction Resize (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Resize = {\n /**\n * Initializes window bindings.\n */\n mount: function mount() {\n this.bind();\n },\n\n\n /**\n * Binds `rezsize` listener to the window.\n * It's a costly event, so we are debouncing it.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('resize', window, throttle(function () {\n Events.emit('resize');\n }, Glide.settings.throttle));\n },\n\n\n /**\n * Unbinds listeners from the window.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('resize', window);\n }\n };\n\n /**\n * Remove bindings from window:\n * - on destroying, to remove added EventListener\n */\n Events.on('destroy', function () {\n Resize.unbind();\n Binder.destroy();\n });\n\n return Resize;\n}\n\nvar VALID_DIRECTIONS = ['ltr', 'rtl'];\nvar FLIPED_MOVEMENTS = {\n '>': '<',\n '<': '>',\n '=': '='\n};\n\nfunction Direction (Glide, Components, Events) {\n var Direction = {\n /**\n * Setups gap value based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.direction;\n },\n\n\n /**\n * Resolves pattern based on direction value\n *\n * @param {String} pattern\n * @returns {String}\n */\n resolve: function resolve(pattern) {\n var token = pattern.slice(0, 1);\n\n if (this.is('rtl')) {\n return pattern.split(token).join(FLIPED_MOVEMENTS[token]);\n }\n\n return pattern;\n },\n\n\n /**\n * Checks value of direction mode.\n *\n * @param {String} direction\n * @returns {Boolean}\n */\n is: function is(direction) {\n return this.value === direction;\n },\n\n\n /**\n * Applies direction class to the root HTML element.\n *\n * @return {Void}\n */\n addClass: function addClass() {\n Components.Html.root.classList.add(Glide.settings.classes.direction[this.value]);\n },\n\n\n /**\n * Removes direction class from the root HTML element.\n *\n * @return {Void}\n */\n removeClass: function removeClass() {\n Components.Html.root.classList.remove(Glide.settings.classes.direction[this.value]);\n }\n };\n\n define(Direction, 'value', {\n /**\n * Gets value of the direction.\n *\n * @returns {Number}\n */\n get: function get() {\n return Direction._v;\n },\n\n\n /**\n * Sets value of the direction.\n *\n * @param {String} value\n * @return {Void}\n */\n set: function set(value) {\n if (VALID_DIRECTIONS.indexOf(value) > -1) {\n Direction._v = value;\n } else {\n warn('Direction value must be `ltr` or `rtl`');\n }\n }\n });\n\n /**\n * Clear direction class:\n * - on destroy to bring HTML to its initial state\n * - on update to remove class before reappling bellow\n */\n Events.on(['destroy', 'update'], function () {\n Direction.removeClass();\n });\n\n /**\n * Remount component:\n * - on update to reflect changes in direction value\n */\n Events.on('update', function () {\n Direction.mount();\n });\n\n /**\n * Apply direction class:\n * - before building to apply class for the first time\n * - on updating to reapply direction class that may changed\n */\n Events.on(['build.before', 'update'], function () {\n Direction.addClass();\n });\n\n return Direction;\n}\n\n/**\n * Reflects value of glide movement.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Rtl (Glide, Components) {\n return {\n /**\n * Negates the passed translate if glide is in RTL option.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Components.Direction.is('rtl')) {\n return -translate;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `gap` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Gap (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with number in the `gap` settings.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n return translate + Components.Gaps.value * Glide.index;\n }\n };\n}\n\n/**\n * Updates glide movement with width of additional clones width.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Grow (Glide, Components) {\n return {\n /**\n * Adds to the passed translate width of the half of clones.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n return translate + Components.Clones.grow / 2;\n }\n };\n}\n\n/**\n * Updates glide movement with a `peek` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Peeking (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with a `peek` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Glide.settings.focusAt >= 0) {\n var peek = Components.Peek.value;\n\n if (isObject(peek)) {\n return translate - peek.before;\n }\n\n return translate - peek;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `focusAt` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Focusing (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with index in the `focusAt` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var gap = Components.Gaps.value;\n var width = Components.Sizes.width;\n var focusAt = Glide.settings.focusAt;\n var slideWidth = Components.Sizes.slideWidth;\n\n if (focusAt === 'center') {\n return translate - (width / 2 - slideWidth / 2);\n }\n\n return translate - slideWidth * focusAt - gap * focusAt;\n }\n };\n}\n\n/**\n * Applies diffrent transformers on translate value.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction mutator (Glide, Components, Events) {\n /**\n * Merge instance transformers with collection of default transformers.\n * It's important that the Rtl component be last on the list,\n * so it reflects all previous transformations.\n *\n * @type {Array}\n */\n var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide._t, [Rtl]);\n\n return {\n /**\n * Piplines translate value with registered transformers.\n *\n * @param {Number} translate\n * @return {Number}\n */\n mutate: function mutate(translate) {\n for (var i = 0; i < TRANSFORMERS.length; i++) {\n var transformer = TRANSFORMERS[i];\n\n if (isFunction(transformer) && isFunction(transformer().modify)) {\n translate = transformer(Glide, Components, Events).modify(translate);\n } else {\n warn('Transformer should be a function that returns an object with `modify()` method');\n }\n }\n\n return translate;\n }\n };\n}\n\nfunction Translate (Glide, Components, Events) {\n var Translate = {\n /**\n * Sets value of translate on HTML element.\n *\n * @param {Number} value\n * @return {Void}\n */\n set: function set(value) {\n var transform = mutator(Glide, Components).mutate(value);\n\n Components.Html.wrapper.style.transform = 'translate3d(' + -1 * transform + 'px, 0px, 0px)';\n },\n\n\n /**\n * Removes value of translate from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transform = '';\n }\n };\n\n /**\n * Set new translate value:\n * - on move to reflect index change\n * - on updating via API to reflect possible changes in options\n */\n Events.on('move', function (context) {\n var gap = Components.Gaps.value;\n var length = Components.Sizes.length;\n var width = Components.Sizes.slideWidth;\n\n if (Glide.isType('carousel') && Components.Run.isOffset('<')) {\n Components.Transition.after(function () {\n Events.emit('translate.jump');\n\n Translate.set(width * (length - 1));\n });\n\n return Translate.set(-width - gap * length);\n }\n\n if (Glide.isType('carousel') && Components.Run.isOffset('>')) {\n Components.Transition.after(function () {\n Events.emit('translate.jump');\n\n Translate.set(0);\n });\n\n return Translate.set(width * length + gap * length);\n }\n\n return Translate.set(context.movement);\n });\n\n /**\n * Remove translate:\n * - on destroying to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Translate.remove();\n });\n\n return Translate;\n}\n\nfunction Transition (Glide, Components, Events) {\n /**\n * Holds inactivity status of transition.\n * When true transition is not applied.\n *\n * @type {Boolean}\n */\n var disabled = false;\n\n var Transition = {\n /**\n * Composes string of the CSS transition.\n *\n * @param {String} property\n * @return {String}\n */\n compose: function compose(property) {\n var settings = Glide.settings;\n\n if (!disabled) {\n return property + ' ' + this.duration + 'ms ' + settings.animationTimingFunc;\n }\n\n return property + ' 0ms ' + settings.animationTimingFunc;\n },\n\n\n /**\n * Sets value of transition on HTML element.\n *\n * @param {String=} property\n * @return {Void}\n */\n set: function set() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n\n Components.Html.wrapper.style.transition = this.compose(property);\n },\n\n\n /**\n * Removes value of transition from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transition = '';\n },\n\n\n /**\n * Runs callback after animation.\n *\n * @param {Function} callback\n * @return {Void}\n */\n after: function after(callback) {\n setTimeout(function () {\n callback();\n }, this.duration);\n },\n\n\n /**\n * Enable transition.\n *\n * @return {Void}\n */\n enable: function enable() {\n disabled = false;\n\n this.set();\n },\n\n\n /**\n * Disable transition.\n *\n * @return {Void}\n */\n disable: function disable() {\n disabled = true;\n\n this.set();\n }\n };\n\n define(Transition, 'duration', {\n /**\n * Gets duration of the transition based\n * on currently running animation type.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n\n if (Glide.isType('slider') && Components.Run.offset) {\n return settings.rewindDuration;\n }\n\n return settings.animationDuration;\n }\n });\n\n /**\n * Set transition `style` value:\n * - on each moving, because it may be cleared by offset move\n */\n Events.on('move', function () {\n Transition.set();\n });\n\n /**\n * Disable transition:\n * - before initial build to avoid transitioning from `0` to `startAt` index\n * - while resizing window and recalculating dimentions\n * - on jumping from offset transition at start and end edges in `carousel` type\n */\n Events.on(['build.before', 'resize', 'translate.jump'], function () {\n Transition.disable();\n });\n\n /**\n * Enable transition:\n * - on each running, because it may be disabled by offset move\n */\n Events.on('run', function () {\n Transition.enable();\n });\n\n /**\n * Remove transition:\n * - on destroying to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Transition.remove();\n });\n\n return Transition;\n}\n\nvar START_EVENTS = ['touchstart', 'mousedown'];\nvar MOVE_EVENTS = ['touchmove', 'mousemove'];\nvar END_EVENTS = ['touchend', 'touchcancel', 'mouseup', 'mouseleave'];\nvar MOUSE_EVENTS = ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];\n\nfunction Swipe (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var swipeSin = 0;\n var swipeStartX = 0;\n var swipeStartY = 0;\n var disabled = false;\n\n var Swipe = {\n /**\n * Initializes swipe bindings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bindSwipeStart();\n },\n\n\n /**\n * Handler for `swipestart` event. Calculates entry points of the user's tap.\n *\n * @param {Object} event\n * @return {Void}\n */\n start: function start(event) {\n if (!disabled && !Glide.disabled) {\n this.disable();\n\n var swipe = this.touches(event);\n\n swipeSin = null;\n swipeStartX = toInt(swipe.pageX);\n swipeStartY = toInt(swipe.pageY);\n\n this.bindSwipeMove();\n this.bindSwipeEnd();\n\n Events.emit('swipe.start');\n }\n },\n\n\n /**\n * Handler for `swipemove` event. Calculates user's tap angle and distance.\n *\n * @param {Object} event\n */\n move: function move(event) {\n if (!Glide.disabled) {\n var _Glide$settings = Glide.settings,\n touchAngle = _Glide$settings.touchAngle,\n touchRatio = _Glide$settings.touchRatio,\n classes = _Glide$settings.classes;\n\n\n var swipe = this.touches(event);\n\n var subExSx = toInt(swipe.pageX) - swipeStartX;\n var subEySy = toInt(swipe.pageY) - swipeStartY;\n var powEX = Math.abs(subExSx << 2);\n var powEY = Math.abs(subEySy << 2);\n var swipeHypotenuse = (powEX + powEY) * (powEX + powEY);\n var swipeCathetus = powEY * powEY;\n\n swipeSin = Math.asin(swipeCathetus / swipeHypotenuse);\n\n Components.Move.make(subExSx * toFloat(touchRatio));\n\n if (swipeSin * 180 / Math.PI < touchAngle) {\n event.stopPropagation();\n\n Components.Html.root.classList.add(classes.dragging);\n\n Events.emit('swipe.move');\n } else {\n return false;\n }\n }\n },\n\n\n /**\n * Handler for `swipeend` event. Finitializes user's tap and decides about glide move.\n *\n * @param {Object} event\n * @return {Void}\n */\n end: function end(event) {\n if (!Glide.disabled) {\n var settings = Glide.settings;\n\n var swipe = this.touches(event);\n var threshold = this.threshold(event);\n\n var swipeDistance = swipe.pageX - swipeStartX;\n var swipeDeg = swipeSin * 180 / Math.PI;\n var steps = Math.round(swipeDistance / Components.Sizes.slideWidth);\n\n this.enable();\n\n if (swipeDistance > threshold && swipeDeg < settings.touchAngle) {\n // While swipe is positive and greater than threshold move backward.\n if (settings.perTouch) {\n steps = Math.min(steps, toInt(settings.perTouch));\n }\n\n if (Components.Direction.is('rtl')) {\n steps = -steps;\n }\n\n Components.Run.make(Components.Direction.resolve('<' + steps));\n } else if (swipeDistance < -threshold && swipeDeg < settings.touchAngle) {\n // While swipe is negative and lower than negative threshold move forward.\n if (settings.perTouch) {\n steps = Math.max(steps, -toInt(settings.perTouch));\n }\n\n if (Components.Direction.is('rtl')) {\n steps = -steps;\n }\n\n Components.Run.make(Components.Direction.resolve('>' + steps));\n } else {\n // While swipe don't reach distance apply previous transform.\n Components.Move.make();\n }\n\n Components.Html.root.classList.remove(settings.classes.dragging);\n\n this.unbindSwipeMove();\n this.unbindSwipeEnd();\n\n Events.emit('swipe.end');\n }\n },\n\n\n /**\n * Binds swipe's starting event.\n *\n * @return {Void}\n */\n bindSwipeStart: function bindSwipeStart() {\n var _this = this;\n\n var settings = Glide.settings;\n\n if (settings.swipeThreshold) {\n Binder.on(START_EVENTS[0], Components.Html.wrapper, function (event) {\n _this.start(event);\n });\n }\n\n if (settings.dragThreshold) {\n Binder.on(START_EVENTS[1], Components.Html.wrapper, function (event) {\n _this.start(event);\n });\n }\n },\n\n\n /**\n * Unbinds swipe's starting event.\n *\n * @return {Void}\n */\n unbindSwipeStart: function unbindSwipeStart() {\n Binder.off(START_EVENTS[0], Components.Html.wrapper);\n Binder.off(START_EVENTS[1], Components.Html.wrapper);\n },\n\n\n /**\n * Binds swipe's moving event.\n *\n * @return {Void}\n */\n bindSwipeMove: function bindSwipeMove() {\n var _this2 = this;\n\n Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function (event) {\n _this2.move(event);\n }, Glide.settings.throttle));\n },\n\n\n /**\n * Unbinds swipe's moving event.\n *\n * @return {Void}\n */\n unbindSwipeMove: function unbindSwipeMove() {\n Binder.off(MOVE_EVENTS, Components.Html.wrapper);\n },\n\n\n /**\n * Binds swipe's ending event.\n *\n * @return {Void}\n */\n bindSwipeEnd: function bindSwipeEnd() {\n var _this3 = this;\n\n Binder.on(END_EVENTS, Components.Html.wrapper, function (event) {\n _this3.end(event);\n });\n },\n\n\n /**\n * Unbinds swipe's ending event.\n *\n * @return {Void}\n */\n unbindSwipeEnd: function unbindSwipeEnd() {\n Binder.off(END_EVENTS, Components.Html.wrapper);\n },\n\n\n /**\n * Normalizes event touches points accorting to different types.\n *\n * @param {Object} event\n */\n touches: function touches(event) {\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n\n /**\n * Gets value of minimum swipe distance settings based on event type.\n *\n * @return {Number}\n */\n threshold: function threshold(event) {\n var settings = Glide.settings;\n\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return settings.dragThreshold;\n }\n\n return settings.swipeThreshold;\n },\n\n\n /**\n * Enables swipe event.\n *\n * @return {self}\n */\n enable: function enable() {\n disabled = false;\n\n Components.Transition.enable();\n\n return this;\n },\n\n\n /**\n * Disables swipe event.\n *\n * @return {self}\n */\n disable: function disable() {\n disabled = true;\n\n Components.Transition.disable();\n\n return this;\n }\n };\n\n /**\n * Add component class:\n * - after initial building\n */\n Events.on('build.after', function () {\n Components.Html.root.classList.add(Glide.settings.classes.swipeable);\n });\n\n /**\n * Remove swiping bindings:\n * - on destroying, to remove added EventListeners\n */\n Events.on('destroy', function () {\n Swipe.unbindSwipeStart();\n Swipe.unbindSwipeMove();\n Swipe.unbindSwipeEnd();\n Binder.destroy();\n });\n\n return Swipe;\n}\n\nfunction Images (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Images = {\n /**\n * Binds listener to glide wrapper.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bind();\n },\n\n\n /**\n * Binds `dragstart` event on wrapper to prevent dragging images.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('dragstart', Components.Html.wrapper, this.dragstart);\n },\n\n\n /**\n * Unbinds `dragstart` event on wrapper.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('dragstart', Components.Html.wrapper);\n },\n\n\n /**\n * Event handler. Prevents dragging.\n *\n * @return {Void}\n */\n dragstart: function dragstart(event) {\n event.preventDefault();\n }\n };\n\n /**\n * Remove bindings from images:\n * - on destroying, to remove added EventListeners\n */\n Events.on('destroy', function () {\n Images.unbind();\n Binder.destroy();\n });\n\n return Images;\n}\n\nfunction Anchors (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n /**\n * Holds detaching status of anchors.\n * Prevents detaching of already detached anchors.\n *\n * @private\n * @type {Boolean}\n */\n var detached = false;\n\n /**\n * Holds preventing status of anchors.\n * If `true` redirection after click will be disabled.\n *\n * @private\n * @type {Boolean}\n */\n var prevented = false;\n\n var Anchors = {\n /**\n * Setups a initial state of anchors component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n /**\n * Holds collection of anchors elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._a = Components.Html.wrapper.querySelectorAll('a');\n\n this.bind();\n },\n\n\n /**\n * Binds events to anchors inside a track.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('click', Components.Html.wrapper, this.click);\n },\n\n\n /**\n * Unbinds events attached to anchors inside a track.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('click', Components.Html.wrapper);\n },\n\n\n /**\n * Handler for click event. Prevents clicks when glide is in `prevent` status.\n *\n * @param {Object} event\n * @return {Void}\n */\n click: function click(event) {\n event.stopPropagation();\n\n if (prevented) {\n event.preventDefault();\n }\n },\n\n\n /**\n * Detaches anchors click event inside glide.\n *\n * @return {self}\n */\n detach: function detach() {\n prevented = true;\n\n if (!detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = false;\n\n this.items[i].setAttribute('data-href', this.items[i].getAttribute('href'));\n\n this.items[i].removeAttribute('href');\n }\n\n detached = true;\n }\n\n return this;\n },\n\n\n /**\n * Attaches anchors click events inside glide.\n *\n * @return {self}\n */\n attach: function attach() {\n prevented = false;\n\n if (detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = true;\n\n this.items[i].setAttribute('href', this.items[i].getAttribute('data-href'));\n }\n\n detached = false;\n }\n\n return this;\n }\n };\n\n define(Anchors, 'items', {\n /**\n * Gets collection of the arrows HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Anchors._a;\n }\n });\n\n /**\n * Detach anchors inside slides:\n * - on swiping, so they won't redirect to its `href` attributes\n */\n Events.on('swipe.move', function () {\n Anchors.detach();\n });\n\n /**\n * Attach anchors inside slides:\n * - after swiping and transitions ends, so they can redirect after click again\n */\n Events.on('swipe.end', function () {\n Components.Transition.after(function () {\n Anchors.attach();\n });\n });\n\n /**\n * Unbind anchors inside slides:\n * - on destroying, to bring anchors to its initial state\n */\n Events.on('destroy', function () {\n Anchors.attach();\n Anchors.unbind();\n Binder.destroy();\n });\n\n return Anchors;\n}\n\nvar NAV_SELECTOR = '[data-glide-el=\"controls[nav]\"]';\nvar CONTROLS_SELECTOR = '[data-glide-el^=\"controls\"]';\n\nfunction Controls (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Controls = {\n /**\n * Inits arrows. Binds events listeners\n * to the arrows HTML elements.\n *\n * @return {Void}\n */\n mount: function mount() {\n /**\n * Collection of navigation HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR);\n\n /**\n * Collection of controls HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR);\n\n this.addBindings();\n },\n\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n setActive: function setActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.addClass(this._n[i].children);\n }\n },\n\n\n /**\n * Removes active class to current slide.\n *\n * @return {Void}\n */\n removeActive: function removeActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.removeClass(this._n[i].children);\n }\n },\n\n\n /**\n * Toggles active class on items inside navigation.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n addClass: function addClass(controls) {\n var settings = Glide.settings;\n var item = controls[Glide.index];\n\n item.classList.add(settings.classes.activeNav);\n\n siblings(item).forEach(function (sibling) {\n sibling.classList.remove(settings.classes.activeNav);\n });\n },\n\n\n /**\n * Removes active class from active control.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n removeClass: function removeClass(controls) {\n controls[Glide.index].classList.remove(Glide.settings.classes.activeNav);\n },\n\n\n /**\n * Adds handles to the each group of controls.\n *\n * @return {Void}\n */\n addBindings: function addBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.bind(this._c[i].children);\n }\n },\n\n\n /**\n * Removes handles from the each group of controls.\n *\n * @return {Void}\n */\n removeBindings: function removeBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.unbind(this._c[i].children);\n }\n },\n\n\n /**\n * Binds events to arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n bind: function bind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.on(['click', 'touchstart'], elements[i], this.click);\n }\n },\n\n\n /**\n * Unbinds events binded to the arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n unbind: function unbind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.off(['click', 'touchstart'], elements[i]);\n }\n },\n\n\n /**\n * Handles `click` event on the arrows HTML elements.\n * Moves slider in driection precised in\n * `data-glide-dir` attribute.\n *\n * @param {Object} event\n * @return {Void}\n */\n click: function click(event) {\n event.preventDefault();\n\n Components.Run.make(Components.Direction.resolve(event.currentTarget.getAttribute('data-glide-dir')));\n }\n };\n\n define(Controls, 'items', {\n /**\n * Gets collection of the controls HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Controls._c;\n }\n });\n\n /**\n * Swap active class of current navigation item:\n * - after mounting to set it to initial index\n * - after each move to the new index\n */\n Events.on(['mount.after', 'move.after'], function () {\n Controls.setActive();\n });\n\n /**\n * Remove bindings and HTML Classes:\n * - on destroying, to bring markup to its initial state\n */\n Events.on('destroy', function () {\n Controls.removeBindings();\n Controls.removeActive();\n Binder.destroy();\n });\n\n return Controls;\n}\n\nfunction Keyboard (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Keyboard = {\n /**\n * Binds keyboard events on component mount.\n *\n * @return {Void}\n */\n mount: function mount() {\n if (Glide.settings.keyboard) {\n this.bind();\n }\n },\n\n\n /**\n * Adds keyboard press events.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('keyup', document, this.press);\n },\n\n\n /**\n * Removes keyboard press events.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('keyup', document);\n },\n\n\n /**\n * Handles keyboard's arrows press and moving glide foward and backward.\n *\n * @param {Object} event\n * @return {Void}\n */\n press: function press(event) {\n if (event.keyCode === 39) {\n Components.Run.make(Components.Direction.resolve('>'));\n }\n\n if (event.keyCode === 37) {\n Components.Run.make(Components.Direction.resolve('<'));\n }\n }\n };\n\n /**\n * Remove bindings from keyboard:\n * - on destroying to remove added events\n * - on updating to remove events before remounting\n */\n Events.on(['destroy', 'update'], function () {\n Keyboard.unbind();\n });\n\n /**\n * Remount component\n * - on updating to reflect potential changes in settings\n */\n Events.on('update', function () {\n Keyboard.mount();\n });\n\n /**\n * Destroy binder:\n * - on destroying to remove listeners\n */\n Events.on('destroy', function () {\n Binder.destroy();\n });\n\n return Keyboard;\n}\n\nfunction Autoplay (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Autoplay = {\n /**\n * Initializes autoplaying and events.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.start();\n\n if (Glide.settings.hoverpause) {\n this.bind();\n }\n },\n\n\n /**\n * Starts autoplaying in configured interval.\n *\n * @param {Boolean|Number} force Run autoplaying with passed interval regardless of `autoplay` settings\n * @return {Void}\n */\n start: function start() {\n var _this = this;\n\n if (Glide.settings.autoplay) {\n if (isUndefined(this._i)) {\n this._i = setInterval(function () {\n _this.stop();\n\n Components.Run.make('>');\n\n _this.start();\n }, this.time);\n }\n }\n },\n\n\n /**\n * Stops autorunning of the glide.\n *\n * @return {Void}\n */\n stop: function stop() {\n this._i = clearInterval(this._i);\n },\n\n\n /**\n * Stops autoplaying while mouse is over glide's area.\n *\n * @return {Void}\n */\n bind: function bind() {\n var _this2 = this;\n\n Binder.on('mouseover', Components.Html.root, function () {\n _this2.stop();\n });\n\n Binder.on('mouseout', Components.Html.root, function () {\n _this2.start();\n });\n },\n\n\n /**\n * Unbind mouseover events.\n *\n * @returns {Void}\n */\n unbind: function unbind() {\n Binder.off(['mouseover', 'mouseout'], Components.Html.root);\n }\n };\n\n define(Autoplay, 'time', {\n /**\n * Gets time period value for the autoplay interval. Prioritizes\n * times in `data-glide-autoplay` attrubutes over options.\n *\n * @return {Number}\n */\n get: function get() {\n var autoplay = Components.Html.slides[Glide.index].getAttribute('data-glide-autoplay');\n\n if (autoplay) {\n return toInt(autoplay);\n }\n\n return toInt(Glide.settings.autoplay);\n }\n });\n\n /**\n * Stop autoplaying and unbind events:\n * - on destroying, to clear defined interval\n * - on updating via API to reset interval that may changed\n */\n Events.on(['destroy', 'update'], function () {\n Autoplay.unbind();\n });\n\n /**\n * Stop autoplaying:\n * - before each run, to restart autoplaying\n * - on pausing via API\n * - on destroying, to clear defined interval\n * - while starting a swipe\n * - on updating via API to reset interval that may changed\n */\n Events.on(['run.before', 'pause', 'destroy', 'swipe.start', 'update'], function () {\n Autoplay.stop();\n });\n\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n Events.on(['run.after', 'play', 'swipe.end'], function () {\n Autoplay.start();\n });\n\n /**\n * Remount autoplaying:\n * - on updating via API to reset interval that may changed\n */\n Events.on('update', function () {\n Autoplay.mount();\n });\n\n /**\n * Destroy a binder:\n * - on destroying glide instance to clearup listeners\n */\n Events.on('destroy', function () {\n Binder.destroy();\n });\n\n return Autoplay;\n}\n\n/**\n * Sorts keys of breakpoint object so they will be ordered from lower to bigger.\n *\n * @param {Object} points\n * @returns {Object}\n */\nfunction sortBreakpoints(points) {\n if (isObject(points)) {\n return sortKeys(points);\n } else {\n warn('Breakpoints option must be an object');\n }\n\n return {};\n}\n\nfunction Breakpoints (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n /**\n * Holds reference to settings.\n *\n * @type {Object}\n */\n var settings = Glide.settings;\n\n /**\n * Holds reference to breakpoints object in settings. Sorts breakpoints\n * from smaller to larger. It is required in order to proper\n * matching currently active breakpoint settings.\n *\n * @type {Object}\n */\n var points = sortBreakpoints(settings.breakpoints);\n\n /**\n * Cache initial settings before overwritting.\n *\n * @type {Object}\n */\n var defaults = _extends({}, settings);\n\n var Breakpoints = {\n /**\n * Matches settings for currectly matching media breakpoint.\n *\n * @param {Object} points\n * @returns {Object}\n */\n match: function match(points) {\n if (typeof window.matchMedia !== 'undefined') {\n for (var point in points) {\n if (points.hasOwnProperty(point)) {\n if (window.matchMedia('(max-width: ' + point + 'px)').matches) {\n return points[point];\n }\n }\n }\n }\n\n return defaults;\n }\n };\n\n /**\n * Overwrite instance settings with currently matching breakpoint settings.\n * This happens right after component initialization.\n */\n _extends(settings, Breakpoints.match(points));\n\n /**\n * Update glide with settings of matched brekpoint:\n * - window resize to update slider\n */\n Binder.on('resize', window, throttle(function () {\n Glide.settings = mergeOptions(settings, Breakpoints.match(points));\n }, Glide.settings.throttle));\n\n /**\n * Resort and update default settings:\n * - on reinit via API, so breakpoint matching will be performed with options\n */\n Events.on('update', function () {\n points = sortBreakpoints(points);\n\n defaults = _extends({}, settings);\n });\n\n /**\n * Unbind resize listener:\n * - on destroying, to bring markup to its initial state\n */\n Events.on('destroy', function () {\n Binder.off('resize', window);\n });\n\n return Breakpoints;\n}\n\nvar COMPONENTS = {\n // Required\n Html: Html,\n Translate: Translate,\n Transition: Transition,\n Direction: Direction,\n Peek: Peek,\n Sizes: Sizes,\n Gaps: Gaps,\n Move: Move,\n Clones: Clones,\n Resize: Resize,\n Build: Build,\n Run: Run,\n\n // Optional\n Swipe: Swipe,\n Images: Images,\n Anchors: Anchors,\n Controls: Controls,\n Keyboard: Keyboard,\n Autoplay: Autoplay,\n Breakpoints: Breakpoints\n};\n\nvar Glide$1 = function (_Core) {\n inherits(Glide$$1, _Core);\n\n function Glide$$1() {\n classCallCheck(this, Glide$$1);\n return possibleConstructorReturn(this, (Glide$$1.__proto__ || Object.getPrototypeOf(Glide$$1)).apply(this, arguments));\n }\n\n createClass(Glide$$1, [{\n key: 'mount',\n value: function mount() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return get(Glide$$1.prototype.__proto__ || Object.getPrototypeOf(Glide$$1.prototype), 'mount', this).call(this, _extends({}, COMPONENTS, extensions));\n }\n }]);\n return Glide$$1;\n}(Glide);\n\nexport default Glide$1;\n"],"sourceRoot":""}