{"version":3,"file":"script-services.js","mappings":"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CA;EACEC,QAAQ,EAAE,KAAK;EAEf;AACF;AACA;AACA;AACA;EACEC,UAAU,EAAE,IAAI;EAEhB;AACF;AACA;AACA;AACA;EACEC,QAAQ,EAAE,IAAI;EAEd;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE,KAAK;EAEZ;AACF;AACA;AACA;AACA;EACEC,cAAc,EAAE,EAAE;EAElB;AACF;AACA;AACA;AACA;EACEC,aAAa,EAAE,GAAG;EAElB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,QAAQ,EAAE,EAAE;EAEZ;AACF;AACA;AACA;AACA;EACEC,UAAU,EAAE,GAAG;EAEf;AACF;AACA;AACA;AACA;EACEC,UAAU,EAAE,EAAE;EAEd;AACF;AACA;AACA;AACA;EACEC,iBAAiB,EAAE,GAAG;EAEtB;AACF;AACA;AACA;AACA;EACEC,MAAM,EAAE,IAAI;EAEZ;AACF;AACA;AACA;AACA;EACEC,cAAc,EAAE,GAAG;EAEnB;AACF;AACA;AACA;AACA;EACEC,mBAAmB,EAAE,mCAAmC;EAExD;AACF;AACA;AACA;AACA;EACEC,iBAAiB,EAAE,IAAI;EAEvB;AACF;AACA;AACA;AACA;EACEC,QAAQ,EAAE,EAAE;EAEZ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,SAAS,EAAE,KAAK;EAEhB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,IAAI,EAAE,CAAC;EAEP;AACF;AACA;AACA;AACA;EACEC,YAAY,EAAE,CAAC;EAEf;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,WAAW,EAAE,CAAC,CAAC;EAEf;AACF;AACA;AACA;AACA;AACA;EACEC,OAAO,EAAE;IACPC,SAAS,EAAE,kBAAkB;IAC7BC,QAAQ,EAAE,iBAAiB;IAC3BN,SAAS,EAAE;MACTO,GAAG,EAAE,YAAY;MACjBC,GAAG,EAAE;IACP,CAAC;IACD5B,IAAI,EAAE;MACJ6B,MAAM,EAAE,eAAe;MACvBC,QAAQ,EAAE;IAC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","sources":["webpack://ayahealthcare-sunrise/./src/js/modules/modal.js","webpack://ayahealthcare-sunrise/./node_modules/@glidejs/glide/dist/glide.esm.js","webpack://ayahealthcare-sunrise/webpack/bootstrap","webpack://ayahealthcare-sunrise/webpack/runtime/define property getters","webpack://ayahealthcare-sunrise/webpack/runtime/hasOwnProperty shorthand","webpack://ayahealthcare-sunrise/webpack/runtime/make namespace object","webpack://ayahealthcare-sunrise/./src/js/pages/script-services.js"],"sourcesContent":["let modal = () => {\n document.addEventListener(\"DOMContentLoaded\", () => {\n // Functions to open and close a modal\n function openModal($el,$vid_src) {\n $el.classList.add(\"is-active\");\n\n if ($el.classList.contains(\"js-modal-youtube\")) {\n let youTubeSrc = $el.dataset.src;\n $el.querySelector(\"iframe\").setAttribute(\"src\", youTubeSrc);\n }\n if ($el.classList.contains(\"js-modal-vimeo\")) {\n $el.querySelector(\"iframe\").setAttribute(\"src\", $vid_src);\n }\n if ($el.classList.contains(\"js-modal-mp4\")) {\n let videoPlayer = document.querySelector('.js-modal-mp4 video');\n videoPlayer.src = $vid_src;\n }\n }\n\n function closeModal($el) {\n $el.classList.remove(\"is-active\");\n\n if ($el.classList.contains(\"js-modal-youtube\")) {\n $el.querySelector(\"iframe\").removeAttribute(\"src\");\n }\n if ($el.classList.contains(\"js-modal-vimeo\")) {\n $el.querySelector(\"iframe\").removeAttribute(\"src\");\n }\n if ($el.classList.contains(\"js-modal-mp4\")) {\n let videoPlayer = document.querySelector('.js-modal-mp4 video');\n videoPlayer.src = '';\n }\n }\n\n function closeAllModals() {\n (document.querySelectorAll(\".modal\") || []).forEach(($modal) => {\n closeModal($modal);\n });\n }\n\n // Add a click event on buttons to open a specific modal\n (document.querySelectorAll(\".js-modal-trigger\") || []).forEach(\n ($trigger) => {\n const modal = $trigger.dataset.target;\n const src = $trigger.dataset.src;\n const $target = document.getElementById(modal);\n \n $trigger.addEventListener(\"click\", (e) => {\n e.preventDefault();\n openModal($target, src); \n });\n }\n );\n\n // Add a click event on various child elements to close the parent modal\n (\n document.querySelectorAll(\n \".modal-background, .modal-close, .modal-card-head .delete, .modal-card-foot .button\"\n ) || []\n ).forEach(($close) => {\n const $target = $close.closest(\".modal\");\n\n $close.addEventListener(\"click\", () => {\n closeModal($target);\n });\n });\n\n // Add a keyboard event to close all modals\n document.addEventListener(\"keydown\", (event) => {\n const e = event || window.event;\n\n if (e.keyCode === 27) {\n // Escape key\n closeAllModals();\n }\n });\n });\n};\n\nexport { modal };\n","/*!\n * Glide.js v3.6.2\n * (c) 2013-2024 JÄ™drzej ChaÅ‚ubek (https://github.com/jedrzejchalubek/)\n * Released under the MIT License.\n */\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}\n\nvar defaults = {\n /**\n * Type of the movement.\n *\n * Available types:\n * `slider` - Rewinds slider to the start/end when it reaches the first or last slide.\n * `carousel` - Changes slides without starting over when it reaches the first or last slide.\n *\n * @type {String}\n */\n type: 'slider',\n\n /**\n * Start at specific slide number defined with zero-based index.\n *\n * @type {Number}\n */\n startAt: 0,\n\n /**\n * A number of slides visible on the single viewport.\n *\n * @type {Number}\n */\n perView: 1,\n\n /**\n * Focus currently active slide at a specified position in the track.\n *\n * Available inputs:\n * `center` - Current slide will be always focused at the center of a track.\n * `0,1,2,3...` - Current slide will be focused on the specified zero-based index.\n *\n * @type {String|Number}\n */\n focusAt: 0,\n\n /**\n * A size of the gap added between slides.\n *\n * @type {Number}\n */\n gap: 10,\n\n /**\n * Change slides after a specified interval. Use `false` for turning off autoplay.\n *\n * @type {Number|Boolean}\n */\n autoplay: false,\n\n /**\n * Stop autoplay on mouseover event.\n *\n * @type {Boolean}\n */\n hoverpause: true,\n\n /**\n * Allow for changing slides with left and right keyboard arrows.\n *\n * @type {Boolean}\n */\n keyboard: true,\n\n /**\n * Stop running `perView` number of slides from the end. Use this\n * option if you don't want to have an empty space after\n * a slider. Works only with `slider` type and a\n * non-centered `focusAt` setting.\n *\n * @type {Boolean}\n */\n bound: false,\n\n /**\n * Minimal swipe distance needed to change the slide. Use `false` for turning off a swiping.\n *\n * @type {Number|Boolean}\n */\n swipeThreshold: 80,\n\n /**\n * Minimal mouse drag distance needed to change the slide. Use `false` for turning off a dragging.\n *\n * @type {Number|Boolean}\n */\n dragThreshold: 120,\n\n /**\n * A number of slides moved on single swipe.\n *\n * Available types:\n * `` - Moves slider by one slide per swipe\n * `|` - Moves slider between views per swipe (number of slides defined in `perView` options)\n *\n * @type {String}\n */\n perSwipe: '',\n\n /**\n * Moving distance ratio of the slides on a swiping and dragging.\n *\n * @type {Number}\n */\n touchRatio: 0.5,\n\n /**\n * Angle required to activate slides moving on swiping or dragging.\n *\n * @type {Number}\n */\n touchAngle: 45,\n\n /**\n * Duration of the animation in milliseconds.\n *\n * @type {Number}\n */\n animationDuration: 400,\n\n /**\n * Allows looping the `slider` type. Slider will rewind to the first/last slide when it's at the start/end.\n *\n * @type {Boolean}\n */\n rewind: true,\n\n /**\n * Duration of the rewinding animation of the `slider` type in milliseconds.\n *\n * @type {Number}\n */\n rewindDuration: 800,\n\n /**\n * Easing function for the animation.\n *\n * @type {String}\n */\n animationTimingFunc: 'cubic-bezier(.165, .840, .440, 1)',\n\n /**\n * Wait for the animation to finish until the next user input can be processed\n *\n * @type {boolean}\n */\n waitForTransition: true,\n\n /**\n * Throttle costly events at most once per every wait milliseconds.\n *\n * @type {Number}\n */\n throttle: 10,\n\n /**\n * Moving direction mode.\n *\n * Available inputs:\n * - 'ltr' - left to right movement,\n * - 'rtl' - right to left movement.\n *\n * @type {String}\n */\n direction: 'ltr',\n\n /**\n * The distance value of the next and previous viewports which\n * have to peek in the current view. Accepts number and\n * pixels as a string. Left and right peeking can be\n * set up separately with a directions object.\n *\n * For example:\n * `100` - Peek 100px on the both sides.\n * { before: 100, after: 50 }` - Peek 100px on the left side and 50px on the right side.\n *\n * @type {Number|String|Object}\n */\n peek: 0,\n\n /**\n * Defines how many clones of current viewport will be generated.\n *\n * @type {Number}\n */\n cloningRatio: 1,\n\n /**\n * Collection of options applied at specified media breakpoints.\n * For example: display two slides per view under 800px.\n * `{\n * '800px': {\n * perView: 2\n * }\n * }`\n */\n breakpoints: {},\n\n /**\n * Collection of internally used HTML classes.\n *\n * @todo Refactor `slider` and `carousel` properties to single `type: { slider: '', carousel: '' }` object\n * @type {Object}\n */\n classes: {\n swipeable: 'glide--swipeable',\n dragging: 'glide--dragging',\n direction: {\n ltr: 'glide--ltr',\n rtl: 'glide--rtl'\n },\n type: {\n slider: 'glide--slider',\n carousel: 'glide--carousel'\n },\n slide: {\n clone: 'glide__slide--clone',\n active: 'glide__slide--active'\n },\n arrow: {\n disabled: 'glide__arrow--disabled'\n },\n nav: {\n active: 'glide__bullet--active'\n }\n }\n};\n\n/**\n * Outputs warning message to the bowser console.\n *\n * @param {String} msg\n * @return {Void}\n */\nfunction warn(msg) {\n console.error(\"[Glide warn]: \".concat(msg));\n}\n\n/**\n * Converts value entered as number\n * or string to integer value.\n *\n * @param {String} value\n * @returns {Number}\n */\nfunction toInt(value) {\n return parseInt(value);\n}\n/**\n * Converts value entered as number\n * or string to flat value.\n *\n * @param {String} value\n * @returns {Number}\n */\n\nfunction toFloat(value) {\n return parseFloat(value);\n}\n/**\n * Indicates whether the specified value is a string.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * Indicates whether the specified value is an object.\n *\n * @param {*} value\n * @return {Boolean}\n *\n * @see https://github.com/jashkenas/underscore\n */\n\nfunction isObject(value) {\n var type = _typeof(value);\n\n return type === 'function' || type === 'object' && !!value; // eslint-disable-line no-mixed-operators\n}\n/**\n * Indicates whether the specified value is a function.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Indicates whether the specified value is undefined.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n/**\n * Indicates whether the specified value is an array.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isArray(value) {\n return value.constructor === Array;\n}\n\n/**\n * Creates and initializes specified collection of extensions.\n * Each extension receives access to instance of glide and rest of components.\n *\n * @param {Object} glide\n * @param {Object} extensions\n *\n * @returns {Object}\n */\n\nfunction mount(glide, extensions, events) {\n var components = {};\n\n for (var name in extensions) {\n if (isFunction(extensions[name])) {\n components[name] = extensions[name](glide, components, events);\n } else {\n warn('Extension must be a function');\n }\n }\n\n for (var _name in components) {\n if (isFunction(components[_name].mount)) {\n components[_name].mount();\n }\n }\n\n return components;\n}\n\n/**\n * Defines getter and setter property on the specified object.\n *\n * @param {Object} obj Object where property has to be defined.\n * @param {String} prop Name of the defined property.\n * @param {Object} definition Get and set definitions for the property.\n * @return {Void}\n */\nfunction define(obj, prop, definition) {\n Object.defineProperty(obj, prop, definition);\n}\n/**\n * Sorts aphabetically object keys.\n *\n * @param {Object} obj\n * @return {Object}\n */\n\nfunction sortKeys(obj) {\n return Object.keys(obj).sort().reduce(function (r, k) {\n r[k] = obj[k];\n return r[k], r;\n }, {});\n}\n/**\n * Merges passed settings object with default options.\n *\n * @param {Object} defaults\n * @param {Object} settings\n * @return {Object}\n */\n\nfunction mergeOptions(defaults, settings) {\n var options = Object.assign({}, defaults, settings); // `Object.assign` do not deeply merge objects, so we\n // have to do it manually for every nested object\n // in options. Although it does not look smart,\n // it's smaller and faster than some fancy\n // merging deep-merge algorithm script.\n\n if (settings.hasOwnProperty('classes')) {\n options.classes = Object.assign({}, defaults.classes, settings.classes);\n var properties = ['direction', 'type', 'slide', 'arrow', 'nav'];\n properties.forEach(function (property) {\n if (settings.classes.hasOwnProperty(property)) {\n options.classes[property] = _objectSpread2(_objectSpread2({}, defaults.classes[property]), settings.classes[property]);\n }\n });\n }\n\n if (settings.hasOwnProperty('breakpoints')) {\n options.breakpoints = Object.assign({}, defaults.breakpoints, settings.breakpoints);\n }\n\n return options;\n}\n\nvar EventsBus = /*#__PURE__*/function () {\n /**\n * Construct a EventBus instance.\n *\n * @param {Object} events\n */\n function EventsBus() {\n var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, EventsBus);\n\n this.events = events;\n this.hop = events.hasOwnProperty;\n }\n /**\n * Adds listener to the specifed event.\n *\n * @param {String|Array} event\n * @param {Function} handler\n */\n\n\n _createClass(EventsBus, [{\n key: \"on\",\n value: function on(event, handler) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.on(event[i], handler);\n }\n\n return;\n } // Create the event's object if not yet created\n\n\n if (!this.hop.call(this.events, event)) {\n this.events[event] = [];\n } // Add the handler to queue\n\n\n var index = this.events[event].push(handler) - 1; // Provide handle back for removal of event\n\n return {\n remove: function remove() {\n delete this.events[event][index];\n }\n };\n }\n /**\n * Runs registered handlers for specified event.\n *\n * @param {String|Array} event\n * @param {Object=} context\n */\n\n }, {\n key: \"emit\",\n value: function emit(event, context) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.emit(event[i], context);\n }\n\n return;\n } // If the event doesn't exist, or there's no handlers in queue, just leave\n\n\n if (!this.hop.call(this.events, event)) {\n return;\n } // Cycle through events queue, fire!\n\n\n this.events[event].forEach(function (item) {\n item(context || {});\n });\n }\n }]);\n\n return EventsBus;\n}();\n\nvar Glide$1 = /*#__PURE__*/function () {\n /**\r\n * Construct glide.\r\n *\r\n * @param {String} selector\r\n * @param {Object} options\r\n */\n function Glide(selector) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Glide);\n\n this._c = {};\n this._t = [];\n this._e = new EventsBus();\n this.disabled = false;\n this.selector = selector;\n this.settings = mergeOptions(defaults, options);\n this.index = this.settings.startAt;\n }\n /**\r\n * Initializes glide.\r\n *\r\n * @param {Object} extensions Collection of extensions to initialize.\r\n * @return {Glide}\r\n */\n\n\n _createClass(Glide, [{\n key: \"mount\",\n value: function mount$1() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._e.emit('mount.before');\n\n if (isObject(extensions)) {\n this._c = mount(this, extensions, this._e);\n } else {\n warn('You need to provide a object on `mount()`');\n }\n\n this._e.emit('mount.after');\n\n return this;\n }\n /**\r\n * Collects an instance `translate` transformers.\r\n *\r\n * @param {Array} transformers Collection of transformers.\r\n * @return {Void}\r\n */\n\n }, {\n key: \"mutate\",\n value: function mutate() {\n var transformers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (isArray(transformers)) {\n this._t = transformers;\n } else {\n warn('You need to provide a array on `mutate()`');\n }\n\n return this;\n }\n /**\r\n * Updates glide with specified settings.\r\n *\r\n * @param {Object} settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"update\",\n value: function update() {\n var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.settings = mergeOptions(this.settings, settings);\n\n if (settings.hasOwnProperty('startAt')) {\n this.index = settings.startAt;\n }\n\n this._e.emit('update');\n\n return this;\n }\n /**\r\n * Change slide with specified pattern. A pattern must be in the special format:\r\n * `>` - Move one forward\r\n * `<` - Move one backward\r\n * `={i}` - Go to {i} zero-based slide (eq. '=1', will go to second slide)\r\n * `>>` - Rewinds to end (last slide)\r\n * `<<` - Rewinds to start (first slide)\r\n * `|>` - Move one viewport forward\r\n * `|<` - Move one viewport backward\r\n *\r\n * @param {String} pattern\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"go\",\n value: function go(pattern) {\n this._c.Run.make(pattern);\n\n return this;\n }\n /**\r\n * Move track by specified distance.\r\n *\r\n * @param {String} distance\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"move\",\n value: function move(distance) {\n this._c.Transition.disable();\n\n this._c.Move.make(distance);\n\n return this;\n }\n /**\r\n * Destroy instance and revert all changes done by this._c.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._e.emit('destroy');\n\n return this;\n }\n /**\r\n * Start instance autoplaying.\r\n *\r\n * @param {Boolean|Number} interval Run autoplaying with passed interval regardless of `autoplay` settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"play\",\n value: function play() {\n var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (interval) {\n this.settings.autoplay = interval;\n }\n\n this._e.emit('play');\n\n return this;\n }\n /**\r\n * Stop instance autoplaying.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n this._e.emit('pause');\n\n return this;\n }\n /**\r\n * Sets glide into a idle status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"disable\",\n value: function disable() {\n this.disabled = true;\n return this;\n }\n /**\r\n * Sets glide into a active status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"enable\",\n value: function enable() {\n this.disabled = false;\n return this;\n }\n /**\r\n * Adds cuutom event listener with handler.\r\n *\r\n * @param {String|Array} event\r\n * @param {Function} handler\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"on\",\n value: function on(event, handler) {\n this._e.on(event, handler);\n\n return this;\n }\n /**\r\n * Checks if glide is a precised type.\r\n *\r\n * @param {String} name\r\n * @return {Boolean}\r\n */\n\n }, {\n key: \"isType\",\n value: function isType(name) {\n return this.settings.type === name;\n }\n /**\r\n * Gets value of the core options.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: \"settings\",\n get: function get() {\n return this._o;\n }\n /**\r\n * Sets value of the core options.\r\n *\r\n * @param {Object} o\r\n * @return {Void}\r\n */\n ,\n set: function set(o) {\n if (isObject(o)) {\n this._o = o;\n } else {\n warn('Options must be an `object` instance.');\n }\n }\n /**\r\n * Gets current index of the slider.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: \"index\",\n get: function get() {\n return this._i;\n }\n /**\r\n * Sets current index a slider.\r\n *\r\n * @return {Object}\r\n */\n ,\n set: function set(i) {\n this._i = toInt(i);\n }\n /**\r\n * Gets type name of the slider.\r\n *\r\n * @return {String}\r\n */\n\n }, {\n key: \"type\",\n get: function get() {\n return this.settings.type;\n }\n /**\r\n * Gets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n\n }, {\n key: \"disabled\",\n get: function get() {\n return this._d;\n }\n /**\r\n * Sets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n ,\n set: function set(status) {\n this._d = !!status;\n }\n }]);\n\n return Glide;\n}();\n\nfunction Run (Glide, Components, Events) {\n var Run = {\n /**\n * Initializes autorunning of the glide.\n *\n * @return {Void}\n */\n mount: function mount() {\n this._o = false;\n },\n\n /**\n * Makes glides running based on the passed moving schema.\n *\n * @param {String} move\n */\n make: function make(move) {\n var _this = this;\n\n if (!Glide.disabled) {\n !Glide.settings.waitForTransition || Glide.disable();\n this.move = move;\n Events.emit('run.before', this.move);\n this.calculate();\n Events.emit('run', this.move);\n Components.Transition.after(function () {\n if (_this.isStart()) {\n Events.emit('run.start', _this.move);\n }\n\n if (_this.isEnd()) {\n Events.emit('run.end', _this.move);\n }\n\n if (_this.isOffset()) {\n _this._o = false;\n Events.emit('run.offset', _this.move);\n }\n\n Events.emit('run.after', _this.move);\n Glide.enable();\n });\n }\n },\n\n /**\n * Calculates current index based on defined move.\n *\n * @return {Number|Undefined}\n */\n calculate: function calculate() {\n var move = this.move,\n length = this.length;\n var steps = move.steps,\n direction = move.direction; // By default assume that size of view is equal to one slide\n\n var viewSize = 1; // While direction is `=` we want jump to\n // a specified index described in steps.\n\n if (direction === '=') {\n // Check if bound is true, \n // as we want to avoid whitespaces.\n if (Glide.settings.bound && toInt(steps) > length) {\n Glide.index = length;\n return;\n }\n\n Glide.index = steps;\n return;\n } // When pattern is equal to `>>` we want\n // fast forward to the last slide.\n\n\n if (direction === '>' && steps === '>') {\n Glide.index = length;\n return;\n } // When pattern is equal to `<<` we want\n // fast forward to the first slide.\n\n\n if (direction === '<' && steps === '<') {\n Glide.index = 0;\n return;\n } // pagination movement\n\n\n if (direction === '|') {\n viewSize = Glide.settings.perView || 1;\n } // we are moving forward\n\n\n if (direction === '>' || direction === '|' && steps === '>') {\n var index = calculateForwardIndex(viewSize);\n\n if (index > length) {\n this._o = true;\n }\n\n Glide.index = normalizeForwardIndex(index, viewSize);\n return;\n } // we are moving backward\n\n\n if (direction === '<' || direction === '|' && steps === '<') {\n var _index = calculateBackwardIndex(viewSize);\n\n if (_index < 0) {\n this._o = true;\n }\n\n Glide.index = normalizeBackwardIndex(_index, viewSize);\n return;\n }\n\n warn(\"Invalid direction pattern [\".concat(direction).concat(steps, \"] has been used\"));\n },\n\n /**\n * Checks if we are on the first slide.\n *\n * @return {Boolean}\n */\n isStart: function isStart() {\n return Glide.index <= 0;\n },\n\n /**\n * Checks if we are on the last slide.\n *\n * @return {Boolean}\n */\n isEnd: function isEnd() {\n return Glide.index >= this.length;\n },\n\n /**\n * Checks if we are making a offset run.\n *\n * @param {String} direction\n * @return {Boolean}\n */\n isOffset: function isOffset() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n if (!direction) {\n return this._o;\n }\n\n if (!this._o) {\n return false;\n } // did we view to the right?\n\n\n if (direction === '|>') {\n return this.move.direction === '|' && this.move.steps === '>';\n } // did we view to the left?\n\n\n if (direction === '|<') {\n return this.move.direction === '|' && this.move.steps === '<';\n }\n\n return this.move.direction === direction;\n },\n\n /**\n * Checks if bound mode is active\n *\n * @return {Boolean}\n */\n isBound: function isBound() {\n return Glide.isType('slider') && Glide.settings.focusAt !== 'center' && Glide.settings.bound;\n }\n };\n /**\n * Returns index value to move forward/to the right\n *\n * @param viewSize\n * @returns {Number}\n */\n\n function calculateForwardIndex(viewSize) {\n var index = Glide.index;\n\n if (Glide.isType('carousel')) {\n return index + viewSize;\n }\n\n return index + (viewSize - index % viewSize);\n }\n /**\n * Normalizes the given forward index based on glide settings, preventing it to exceed certain boundaries\n *\n * @param index\n * @param length\n * @param viewSize\n * @returns {Number}\n */\n\n\n function normalizeForwardIndex(index, viewSize) {\n var length = Run.length;\n\n if (index <= length) {\n return index;\n }\n\n if (Glide.isType('carousel')) {\n return index - (length + 1);\n }\n\n if (Glide.settings.rewind) {\n // bound does funny things with the length, therefor we have to be certain\n // that we are on the last possible index value given by bound\n if (Run.isBound() && !Run.isEnd()) {\n return length;\n }\n\n return 0;\n }\n\n if (Run.isBound()) {\n return length;\n }\n\n return Math.floor(length / viewSize) * viewSize;\n }\n /**\n * Calculates index value to move backward/to the left\n *\n * @param viewSize\n * @returns {Number}\n */\n\n\n function calculateBackwardIndex(viewSize) {\n var index = Glide.index;\n\n if (Glide.isType('carousel')) {\n return index - viewSize;\n } // ensure our back navigation results in the same index as a forward navigation\n // to experience a homogeneous paging\n\n\n var view = Math.ceil(index / viewSize);\n return (view - 1) * viewSize;\n }\n /**\n * Normalizes the given backward index based on glide settings, preventing it to exceed certain boundaries\n *\n * @param index\n * @param length\n * @param viewSize\n * @returns {*}\n */\n\n\n function normalizeBackwardIndex(index, viewSize) {\n var length = Run.length;\n\n if (index >= 0) {\n return index;\n }\n\n if (Glide.isType('carousel')) {\n return index + (length + 1);\n }\n\n if (Glide.settings.rewind) {\n // bound does funny things with the length, therefor we have to be certain\n // that we are on first possible index value before we to rewind to the length given by bound\n if (Run.isBound() && Run.isStart()) {\n return length;\n }\n\n return Math.floor(length / viewSize) * viewSize;\n }\n\n return 0;\n }\n\n define(Run, 'move', {\n /**\n * Gets value of the move schema.\n *\n * @returns {Object}\n */\n get: function get() {\n return this._m;\n },\n\n /**\n * Sets value of the move schema.\n *\n * @returns {Object}\n */\n set: function set(value) {\n var step = value.substr(1);\n this._m = {\n direction: value.substr(0, 1),\n steps: step ? toInt(step) ? toInt(step) : step : 0\n };\n }\n });\n define(Run, 'length', {\n /**\n * Gets value of the running distance based\n * on zero-indexing number of slides.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n var length = Components.Html.slides.length; // If the `bound` option is active, a maximum running distance should be\n // reduced by `perView` and `focusAt` settings. Running distance\n // should end before creating an empty space after instance.\n\n if (this.isBound()) {\n return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt);\n }\n\n return length - 1;\n }\n });\n define(Run, 'offset', {\n /**\n * Gets status of the offsetting flag.\n *\n * @return {Boolean}\n */\n get: function get() {\n return this._o;\n }\n });\n return Run;\n}\n\n/**\n * Returns a current time.\n *\n * @return {Number}\n */\nfunction now() {\n return new Date().getTime();\n}\n\n/**\n * Returns a function, that, when invoked, will only be triggered\n * at most once during a given window of time.\n *\n * @param {Function} func\n * @param {Number} wait\n * @param {Object=} options\n * @return {Function}\n *\n * @see https://github.com/jashkenas/underscore\n */\n\nfunction throttle(func, wait) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout, context, args, result;\n var previous = 0;\n\n var later = function later() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function throttled() {\n var at = now();\n if (!previous && options.leading === false) previous = at;\n var remaining = wait - (at - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = at;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n\n throttled.cancel = function () {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\nvar MARGIN_TYPE = {\n ltr: ['marginLeft', 'marginRight'],\n rtl: ['marginRight', 'marginLeft']\n};\nfunction Gaps (Glide, Components, Events) {\n var Gaps = {\n /**\n * Applies gaps between slides. First and last\n * slides do not receive it's edge margins.\n *\n * @param {HTMLCollection} slides\n * @return {Void}\n */\n apply: function apply(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n var direction = Components.Direction.value;\n\n if (i !== 0) {\n style[MARGIN_TYPE[direction][0]] = \"\".concat(this.value / 2, \"px\");\n } else {\n style[MARGIN_TYPE[direction][0]] = '';\n }\n\n if (i !== slides.length - 1) {\n style[MARGIN_TYPE[direction][1]] = \"\".concat(this.value / 2, \"px\");\n } else {\n style[MARGIN_TYPE[direction][1]] = '';\n }\n }\n },\n\n /**\n * Removes gaps from the slides.\n *\n * @param {HTMLCollection} slides\n * @returns {Void}\n */\n remove: function remove(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n style.marginLeft = '';\n style.marginRight = '';\n }\n }\n };\n define(Gaps, 'value', {\n /**\n * Gets value of the gap.\n *\n * @returns {Number}\n */\n get: function get() {\n return toInt(Glide.settings.gap);\n }\n });\n define(Gaps, 'grow', {\n /**\n * Gets additional dimensions value caused by gaps.\n * Used to increase width of the slides wrapper.\n *\n * @returns {Number}\n */\n get: function get() {\n return Gaps.value * Components.Sizes.length;\n }\n });\n define(Gaps, 'reductor', {\n /**\n * Gets reduction value caused by gaps.\n * Used to subtract width of the slides.\n *\n * @returns {Number}\n */\n get: function get() {\n var perView = Glide.settings.perView;\n return Gaps.value * (perView - 1) / perView;\n }\n });\n /**\n * Apply calculated gaps:\n * - after building, so slides (including clones) will receive proper margins\n * - on updating via API, to recalculate gaps with new options\n */\n\n Events.on(['build.after', 'update'], throttle(function () {\n Gaps.apply(Components.Html.wrapper.children);\n }, 30));\n /**\n * Remove gaps:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Gaps.remove(Components.Html.wrapper.children);\n });\n return Gaps;\n}\n\n/**\n * Finds siblings nodes of the passed node.\n *\n * @param {Element} node\n * @return {Array}\n */\nfunction siblings(node) {\n if (node && node.parentNode) {\n var n = node.parentNode.firstChild;\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== node) {\n matched.push(n);\n }\n }\n\n return matched;\n }\n\n return [];\n}\n/**\n * Coerces a NodeList to an Array.\n *\n * @param {NodeList} nodeList\n * @return {Array}\n */\n\nfunction toArray(nodeList) {\n return Array.prototype.slice.call(nodeList);\n}\n\nvar TRACK_SELECTOR = '[data-glide-el=\"track\"]';\nfunction Html (Glide, Components, Events) {\n var Html = {\n /**\n * Setup slider HTML nodes.\n *\n * @param {Glide} glide\n */\n mount: function mount() {\n this.root = Glide.selector;\n this.track = this.root.querySelector(TRACK_SELECTOR);\n this.collectSlides();\n },\n\n /**\n * Collect slides\n */\n collectSlides: function collectSlides() {\n this.slides = toArray(this.wrapper.children).filter(function (slide) {\n return !slide.classList.contains(Glide.settings.classes.slide.clone);\n });\n }\n };\n define(Html, 'root', {\n /**\n * Gets node of the glide main element.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._r;\n },\n\n /**\n * Sets node of the glide main element.\n *\n * @return {Object}\n */\n set: function set(r) {\n if (isString(r)) {\n r = document.querySelector(r);\n }\n\n if (r !== null) {\n Html._r = r;\n } else {\n warn('Root element must be a existing Html node');\n }\n }\n });\n define(Html, 'track', {\n /**\n * Gets node of the glide track with slides.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._t;\n },\n\n /**\n * Sets node of the glide track with slides.\n *\n * @return {Object}\n */\n set: function set(t) {\n Html._t = t;\n }\n });\n define(Html, 'wrapper', {\n /**\n * Gets node of the slides wrapper.\n *\n * @return {Object}\n */\n get: function get() {\n return Html.track.children[0];\n }\n });\n /**\n * Add/remove/reorder dynamic slides\n */\n\n Events.on('update', function () {\n Html.collectSlides();\n });\n return Html;\n}\n\nfunction Peek (Glide, Components, Events) {\n var Peek = {\n /**\n * Setups how much to peek based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.peek;\n }\n };\n define(Peek, 'value', {\n /**\n * Gets value of the peek.\n *\n * @returns {Number|Object}\n */\n get: function get() {\n return Peek._v;\n },\n\n /**\n * Sets value of the peek.\n *\n * @param {Number|Object} value\n * @return {Void}\n */\n set: function set(value) {\n if (isObject(value)) {\n value.before = toInt(value.before);\n value.after = toInt(value.after);\n } else {\n value = toInt(value);\n }\n\n Peek._v = value;\n }\n });\n define(Peek, 'reductor', {\n /**\n * Gets reduction value caused by peek.\n *\n * @returns {Number}\n */\n get: function get() {\n var value = Peek.value;\n var perView = Glide.settings.perView;\n\n if (isObject(value)) {\n return value.before / perView + value.after / perView;\n }\n\n return value * 2 / perView;\n }\n });\n /**\n * Recalculate peeking sizes on:\n * - when resizing window to update to proper percents\n */\n\n Events.on(['resize', 'update'], function () {\n Peek.mount();\n });\n return Peek;\n}\n\nfunction Move (Glide, Components, Events) {\n var Move = {\n /**\n * Constructs move component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n this._o = 0;\n },\n\n /**\n * Calculates a movement value based on passed offset and currently active index.\n *\n * @param {Number} offset\n * @return {Void}\n */\n make: function make() {\n var _this = this;\n\n var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n this.offset = offset;\n Events.emit('move', {\n movement: this.value\n });\n Components.Transition.after(function () {\n Events.emit('move.after', {\n movement: _this.value\n });\n });\n }\n };\n define(Move, 'offset', {\n /**\n * Gets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n get: function get() {\n return Move._o;\n },\n\n /**\n * Sets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n set: function set(value) {\n Move._o = !isUndefined(value) ? toInt(value) : 0;\n }\n });\n define(Move, 'translate', {\n /**\n * Gets a raw movement value.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Sizes.slideWidth * Glide.index;\n }\n });\n define(Move, 'value', {\n /**\n * Gets an actual movement value corrected by offset.\n *\n * @return {Number}\n */\n get: function get() {\n var offset = this.offset;\n var translate = this.translate;\n\n if (Components.Direction.is('rtl')) {\n return translate + offset;\n }\n\n return translate - offset;\n }\n });\n /**\n * Make movement to proper slide on:\n * - before build, so glide will start at `startAt` index\n * - on each standard run to move to newly calculated index\n */\n\n Events.on(['build.before', 'run'], function () {\n Move.make();\n });\n return Move;\n}\n\nfunction Sizes (Glide, Components, Events) {\n var Sizes = {\n /**\n * Setups dimensions of slides.\n *\n * @return {Void}\n */\n setupSlides: function setupSlides() {\n var width = \"\".concat(this.slideWidth, \"px\");\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = width;\n }\n },\n\n /**\n * Setups dimensions of slides wrapper.\n *\n * @return {Void}\n */\n setupWrapper: function setupWrapper() {\n Components.Html.wrapper.style.width = \"\".concat(this.wrapperSize, \"px\");\n },\n\n /**\n * Removes applied styles from HTML elements.\n *\n * @returns {Void}\n */\n remove: function remove() {\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = '';\n }\n\n Components.Html.wrapper.style.width = '';\n }\n };\n define(Sizes, 'length', {\n /**\n * Gets count number of the slides.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.slides.length;\n }\n });\n define(Sizes, 'width', {\n /**\n * Gets width value of the slider (visible area).\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.track.offsetWidth;\n }\n });\n define(Sizes, 'wrapperSize', {\n /**\n * Gets size of the slides wrapper.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.slideWidth * Sizes.length + Components.Gaps.grow + Components.Clones.grow;\n }\n });\n define(Sizes, 'slideWidth', {\n /**\n * Gets width value of a single slide.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.width / Glide.settings.perView - Components.Peek.reductor - Components.Gaps.reductor;\n }\n });\n /**\n * Apply calculated glide's dimensions:\n * - before building, so other dimensions (e.g. translate) will be calculated propertly\n * - when resizing window to recalculate sildes dimensions\n * - on updating via API, to calculate dimensions based on new options\n */\n\n Events.on(['build.before', 'resize', 'update'], function () {\n Sizes.setupSlides();\n Sizes.setupWrapper();\n });\n /**\n * Remove calculated glide's dimensions:\n * - on destoting to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Sizes.remove();\n });\n return Sizes;\n}\n\nfunction Build (Glide, Components, Events) {\n var Build = {\n /**\n * Init glide building. Adds classes, sets\n * dimensions and setups initial state.\n *\n * @return {Void}\n */\n mount: function mount() {\n Events.emit('build.before');\n this.typeClass();\n this.activeClass();\n Events.emit('build.after');\n },\n\n /**\n * Adds `type` class to the glide element.\n *\n * @return {Void}\n */\n typeClass: function typeClass() {\n Components.Html.root.classList.add(Glide.settings.classes.type[Glide.settings.type]);\n },\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n activeClass: function activeClass() {\n var classes = Glide.settings.classes;\n var slide = Components.Html.slides[Glide.index];\n\n if (slide) {\n slide.classList.add(classes.slide.active);\n siblings(slide).forEach(function (sibling) {\n sibling.classList.remove(classes.slide.active);\n });\n }\n },\n\n /**\n * Removes HTML classes applied at building.\n *\n * @return {Void}\n */\n removeClasses: function removeClasses() {\n var _Glide$settings$class = Glide.settings.classes,\n type = _Glide$settings$class.type,\n slide = _Glide$settings$class.slide;\n Components.Html.root.classList.remove(type[Glide.settings.type]);\n Components.Html.slides.forEach(function (sibling) {\n sibling.classList.remove(slide.active);\n });\n }\n };\n /**\n * Clear building classes:\n * - on destroying to bring HTML to its initial state\n * - on updating to remove classes before remounting component\n */\n\n Events.on(['destroy', 'update'], function () {\n Build.removeClasses();\n });\n /**\n * Remount component:\n * - on resizing of the window to calculate new dimensions\n * - on updating settings via API\n */\n\n Events.on(['resize', 'update'], function () {\n Build.mount();\n });\n /**\n * Swap active class of current slide:\n * - after each move to the new index\n */\n\n Events.on('move.after', function () {\n Build.activeClass();\n });\n return Build;\n}\n\nfunction Clones (Glide, Components, Events) {\n var Clones = {\n /**\n * Create pattern map and collect slides to be cloned.\n */\n mount: function mount() {\n this.items = [];\n\n if (Glide.isType('carousel')) {\n this.items = this.collect();\n }\n },\n\n /**\n * Collect clones with pattern.\n *\n * @return {[]}\n */\n collect: function collect() {\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var slides = Components.Html.slides;\n var _Glide$settings = Glide.settings,\n perView = _Glide$settings.perView,\n classes = _Glide$settings.classes,\n cloningRatio = _Glide$settings.cloningRatio;\n\n if (slides.length > 0) {\n var peekIncrementer = +!!Glide.settings.peek;\n var cloneCount = perView + peekIncrementer + Math.round(perView / 2);\n var append = slides.slice(0, cloneCount).reverse();\n var prepend = slides.slice(cloneCount * -1);\n\n for (var r = 0; r < Math.max(cloningRatio, Math.floor(perView / slides.length)); r++) {\n for (var i = 0; i < append.length; i++) {\n var clone = append[i].cloneNode(true);\n clone.classList.add(classes.slide.clone);\n items.push(clone);\n }\n\n for (var _i = 0; _i < prepend.length; _i++) {\n var _clone = prepend[_i].cloneNode(true);\n\n _clone.classList.add(classes.slide.clone);\n\n items.unshift(_clone);\n }\n }\n }\n\n return items;\n },\n\n /**\n * Append cloned slides with generated pattern.\n *\n * @return {Void}\n */\n append: function append() {\n var items = this.items;\n var _Components$Html = Components.Html,\n wrapper = _Components$Html.wrapper,\n slides = _Components$Html.slides;\n var half = Math.floor(items.length / 2);\n var prepend = items.slice(0, half).reverse();\n var append = items.slice(half * -1).reverse();\n var width = \"\".concat(Components.Sizes.slideWidth, \"px\");\n\n for (var i = 0; i < append.length; i++) {\n wrapper.appendChild(append[i]);\n }\n\n for (var _i2 = 0; _i2 < prepend.length; _i2++) {\n wrapper.insertBefore(prepend[_i2], slides[0]);\n }\n\n for (var _i3 = 0; _i3 < items.length; _i3++) {\n items[_i3].style.width = width;\n }\n },\n\n /**\n * Remove all cloned slides.\n *\n * @return {Void}\n */\n remove: function remove() {\n var items = this.items;\n\n for (var i = 0; i < items.length; i++) {\n Components.Html.wrapper.removeChild(items[i]);\n }\n }\n };\n define(Clones, 'grow', {\n /**\n * Gets additional dimensions value caused by clones.\n *\n * @return {Number}\n */\n get: function get() {\n return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones.items.length;\n }\n });\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n\n Events.on('update', function () {\n Clones.remove();\n Clones.mount();\n Clones.append();\n });\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n\n Events.on('build.before', function () {\n if (Glide.isType('carousel')) {\n Clones.append();\n }\n });\n /**\n * Remove clones HTMLElements:\n * - on destroying, to bring HTML to its initial state\n */\n\n Events.on('destroy', function () {\n Clones.remove();\n });\n return Clones;\n}\n\nvar EventsBinder = /*#__PURE__*/function () {\n /**\n * Construct a EventsBinder instance.\n */\n function EventsBinder() {\n var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, EventsBinder);\n\n this.listeners = listeners;\n }\n /**\n * Adds events listeners to arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Function} closure\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n\n _createClass(EventsBinder, [{\n key: \"on\",\n value: function on(events, el, closure) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n this.listeners[events[i]] = closure;\n el.addEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n /**\n * Removes event listeners from arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n }, {\n key: \"off\",\n value: function off(events, el) {\n var capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n el.removeEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n /**\n * Destroy collected listeners.\n *\n * @returns {Void}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n delete this.listeners;\n }\n }]);\n\n return EventsBinder;\n}();\n\nfunction Resize (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Resize = {\n /**\n * Initializes window bindings.\n */\n mount: function mount() {\n this.bind();\n },\n\n /**\n * Binds `rezsize` listener to the window.\n * It's a costly event, so we are debouncing it.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('resize', window, throttle(function () {\n Events.emit('resize');\n }, Glide.settings.throttle));\n },\n\n /**\n * Unbinds listeners from the window.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('resize', window);\n }\n };\n /**\n * Remove bindings from window:\n * - on destroying, to remove added EventListener\n */\n\n Events.on('destroy', function () {\n Resize.unbind();\n Binder.destroy();\n });\n return Resize;\n}\n\nvar VALID_DIRECTIONS = ['ltr', 'rtl'];\nvar FLIPED_MOVEMENTS = {\n '>': '<',\n '<': '>',\n '=': '='\n};\nfunction Direction (Glide, Components, Events) {\n var Direction = {\n /**\n * Setups gap value based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.direction;\n },\n\n /**\n * Resolves pattern based on direction value\n *\n * @param {String} pattern\n * @returns {String}\n */\n resolve: function resolve(pattern) {\n var token = pattern.slice(0, 1);\n\n if (this.is('rtl')) {\n return pattern.split(token).join(FLIPED_MOVEMENTS[token]);\n }\n\n return pattern;\n },\n\n /**\n * Checks value of direction mode.\n *\n * @param {String} direction\n * @returns {Boolean}\n */\n is: function is(direction) {\n return this.value === direction;\n },\n\n /**\n * Applies direction class to the root HTML element.\n *\n * @return {Void}\n */\n addClass: function addClass() {\n Components.Html.root.classList.add(Glide.settings.classes.direction[this.value]);\n },\n\n /**\n * Removes direction class from the root HTML element.\n *\n * @return {Void}\n */\n removeClass: function removeClass() {\n Components.Html.root.classList.remove(Glide.settings.classes.direction[this.value]);\n }\n };\n define(Direction, 'value', {\n /**\n * Gets value of the direction.\n *\n * @returns {Number}\n */\n get: function get() {\n return Direction._v;\n },\n\n /**\n * Sets value of the direction.\n *\n * @param {String} value\n * @return {Void}\n */\n set: function set(value) {\n if (VALID_DIRECTIONS.indexOf(value) > -1) {\n Direction._v = value;\n } else {\n warn('Direction value must be `ltr` or `rtl`');\n }\n }\n });\n /**\n * Clear direction class:\n * - on destroy to bring HTML to its initial state\n * - on update to remove class before reappling bellow\n */\n\n Events.on(['destroy', 'update'], function () {\n Direction.removeClass();\n });\n /**\n * Remount component:\n * - on update to reflect changes in direction value\n */\n\n Events.on('update', function () {\n Direction.mount();\n });\n /**\n * Apply direction class:\n * - before building to apply class for the first time\n * - on updating to reapply direction class that may changed\n */\n\n Events.on(['build.before', 'update'], function () {\n Direction.addClass();\n });\n return Direction;\n}\n\n/**\n * Reflects value of glide movement.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Rtl (Glide, Components) {\n return {\n /**\n * Negates the passed translate if glide is in RTL option.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Components.Direction.is('rtl')) {\n return -translate;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `gap` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Gap (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with number in the `gap` settings.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var multiplier = Math.floor(translate / Components.Sizes.slideWidth);\n return translate + Components.Gaps.value * multiplier;\n }\n };\n}\n\n/**\n * Updates glide movement with width of additional clones width.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Grow (Glide, Components) {\n return {\n /**\n * Adds to the passed translate width of the half of clones.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n return translate + Components.Clones.grow / 2;\n }\n };\n}\n\n/**\n * Updates glide movement with a `peek` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\n\nfunction Peeking (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with a `peek` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Glide.settings.focusAt >= 0) {\n var peek = Components.Peek.value;\n\n if (isObject(peek)) {\n return translate - peek.before;\n }\n\n return translate - peek;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `focusAt` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Focusing (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with index in the `focusAt` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var gap = Components.Gaps.value;\n var width = Components.Sizes.width;\n var focusAt = Glide.settings.focusAt;\n var slideWidth = Components.Sizes.slideWidth;\n\n if (focusAt === 'center') {\n return translate - (width / 2 - slideWidth / 2);\n }\n\n return translate - slideWidth * focusAt - gap * focusAt;\n }\n };\n}\n\n/**\n * Applies diffrent transformers on translate value.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\n\nfunction mutator (Glide, Components, Events) {\n /**\n * Merge instance transformers with collection of default transformers.\n * It's important that the Rtl component be last on the list,\n * so it reflects all previous transformations.\n *\n * @type {Array}\n */\n var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide._t, [Rtl]);\n return {\n /**\n * Piplines translate value with registered transformers.\n *\n * @param {Number} translate\n * @return {Number}\n */\n mutate: function mutate(translate) {\n for (var i = 0; i < TRANSFORMERS.length; i++) {\n var transformer = TRANSFORMERS[i];\n\n if (isFunction(transformer) && isFunction(transformer().modify)) {\n translate = transformer(Glide, Components, Events).modify(translate);\n } else {\n warn('Transformer should be a function that returns an object with `modify()` method');\n }\n }\n\n return translate;\n }\n };\n}\n\nfunction Translate (Glide, Components, Events) {\n var Translate = {\n /**\n * Sets value of translate on HTML element.\n *\n * @param {Number} value\n * @return {Void}\n */\n set: function set(value) {\n var transform = mutator(Glide, Components).mutate(value);\n var translate3d = \"translate3d(\".concat(-1 * transform, \"px, 0px, 0px)\");\n Components.Html.wrapper.style.mozTransform = translate3d; // needed for supported Firefox 10-15\n\n Components.Html.wrapper.style.webkitTransform = translate3d; // needed for supported Chrome 10-35, Safari 5.1-8, and Opera 15-22\n\n Components.Html.wrapper.style.transform = translate3d;\n },\n\n /**\n * Removes value of translate from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transform = '';\n },\n\n /**\n * @return {number}\n */\n getStartIndex: function getStartIndex() {\n var length = Components.Sizes.length;\n var index = Glide.index;\n var perView = Glide.settings.perView;\n\n if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {\n return length + (index - perView);\n } // \"modulo length\" converts an index that equals length to zero\n\n\n return (index + perView) % length;\n },\n\n /**\n * @return {number}\n */\n getTravelDistance: function getTravelDistance() {\n var travelDistance = Components.Sizes.slideWidth * Glide.settings.perView;\n\n if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {\n // reverse travel distance so that we don't have to change subtract operations\n return travelDistance * -1;\n }\n\n return travelDistance;\n }\n };\n /**\n * Set new translate value:\n * - on move to reflect index change\n * - on updating via API to reflect possible changes in options\n */\n\n Events.on('move', function (context) {\n if (!Glide.isType('carousel') || !Components.Run.isOffset()) {\n return Translate.set(context.movement);\n }\n\n Components.Transition.after(function () {\n Events.emit('translate.jump');\n Translate.set(Components.Sizes.slideWidth * Glide.index);\n });\n var startWidth = Components.Sizes.slideWidth * Components.Translate.getStartIndex();\n return Translate.set(startWidth - Components.Translate.getTravelDistance());\n });\n /**\n * Remove translate:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Translate.remove();\n });\n return Translate;\n}\n\nfunction Transition (Glide, Components, Events) {\n /**\n * Holds inactivity status of transition.\n * When true transition is not applied.\n *\n * @type {Boolean}\n */\n var disabled = false;\n var Transition = {\n /**\n * Composes string of the CSS transition.\n *\n * @param {String} property\n * @return {String}\n */\n compose: function compose(property) {\n var settings = Glide.settings;\n\n if (disabled) {\n return \"\".concat(property, \" 0ms \").concat(settings.animationTimingFunc);\n }\n\n return \"\".concat(property, \" \").concat(this.duration, \"ms \").concat(settings.animationTimingFunc);\n },\n\n /**\n * Sets value of transition on HTML element.\n *\n * @param {String=} property\n * @return {Void}\n */\n set: function set() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n Components.Html.wrapper.style.transition = this.compose(property);\n },\n\n /**\n * Removes value of transition from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transition = '';\n },\n\n /**\n * Runs callback after animation.\n *\n * @param {Function} callback\n * @return {Void}\n */\n after: function after(callback) {\n setTimeout(function () {\n callback();\n }, this.duration);\n },\n\n /**\n * Enable transition.\n *\n * @return {Void}\n */\n enable: function enable() {\n disabled = false;\n this.set();\n },\n\n /**\n * Disable transition.\n *\n * @return {Void}\n */\n disable: function disable() {\n disabled = true;\n this.set();\n }\n };\n define(Transition, 'duration', {\n /**\n * Gets duration of the transition based\n * on currently running animation type.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n\n if (Glide.isType('slider') && Components.Run.offset) {\n return settings.rewindDuration;\n }\n\n return settings.animationDuration;\n }\n });\n /**\n * Set transition `style` value:\n * - on each moving, because it may be cleared by offset move\n */\n\n Events.on('move', function () {\n Transition.set();\n });\n /**\n * Disable transition:\n * - before initial build to avoid transitioning from `0` to `startAt` index\n * - while resizing window and recalculating dimensions\n * - on jumping from offset transition at start and end edges in `carousel` type\n */\n\n Events.on(['build.before', 'resize', 'translate.jump'], function () {\n Transition.disable();\n });\n /**\n * Enable transition:\n * - on each running, because it may be disabled by offset move\n */\n\n Events.on('run', function () {\n Transition.enable();\n });\n /**\n * Remove transition:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Transition.remove();\n });\n return Transition;\n}\n\n/**\n * Test via a getter in the options object to see\n * if the passive property is accessed.\n *\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n */\nvar supportsPassive = false;\n\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n} catch (e) {}\n\nvar supportsPassive$1 = supportsPassive;\n\nvar START_EVENTS = ['touchstart', 'mousedown'];\nvar MOVE_EVENTS = ['touchmove', 'mousemove'];\nvar END_EVENTS = ['touchend', 'touchcancel', 'mouseup', 'mouseleave'];\nvar MOUSE_EVENTS = ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];\nfunction Swipe (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var swipeSin = 0;\n var swipeStartX = 0;\n var swipeStartY = 0;\n var disabled = false;\n var capture = supportsPassive$1 ? {\n passive: true\n } : false;\n var Swipe = {\n /**\n * Initializes swipe bindings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bindSwipeStart();\n },\n\n /**\n * Handler for `swipestart` event. Calculates entry points of the user's tap.\n *\n * @param {Object} event\n * @return {Void}\n */\n start: function start(event) {\n if (!disabled && !Glide.disabled) {\n this.disable();\n var swipe = this.touches(event);\n swipeSin = null;\n swipeStartX = toInt(swipe.pageX);\n swipeStartY = toInt(swipe.pageY);\n this.bindSwipeMove();\n this.bindSwipeEnd();\n Events.emit('swipe.start');\n }\n },\n\n /**\n * Handler for `swipemove` event. Calculates user's tap angle and distance.\n *\n * @param {Object} event\n */\n move: function move(event) {\n if (!Glide.disabled) {\n var _Glide$settings = Glide.settings,\n touchAngle = _Glide$settings.touchAngle,\n touchRatio = _Glide$settings.touchRatio,\n classes = _Glide$settings.classes;\n var swipe = this.touches(event);\n var subExSx = toInt(swipe.pageX) - swipeStartX;\n var subEySy = toInt(swipe.pageY) - swipeStartY;\n var powEX = Math.abs(subExSx << 2);\n var powEY = Math.abs(subEySy << 2);\n var swipeHypotenuse = Math.sqrt(powEX + powEY);\n var swipeCathetus = Math.sqrt(powEY);\n swipeSin = Math.asin(swipeCathetus / swipeHypotenuse);\n\n if (swipeSin * 180 / Math.PI < touchAngle) {\n event.stopPropagation();\n Components.Move.make(subExSx * toFloat(touchRatio));\n Components.Html.root.classList.add(classes.dragging);\n Events.emit('swipe.move');\n } else {\n return false;\n }\n }\n },\n\n /**\n * Handler for `swipeend` event. Finitializes user's tap and decides about glide move.\n *\n * @param {Object} event\n * @return {Void}\n */\n end: function end(event) {\n if (!Glide.disabled) {\n var _Glide$settings2 = Glide.settings,\n perSwipe = _Glide$settings2.perSwipe,\n touchAngle = _Glide$settings2.touchAngle,\n classes = _Glide$settings2.classes;\n var swipe = this.touches(event);\n var threshold = this.threshold(event);\n var swipeDistance = swipe.pageX - swipeStartX;\n var swipeDeg = swipeSin * 180 / Math.PI;\n this.enable();\n\n if (swipeDistance > threshold && swipeDeg < touchAngle) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \"<\")));\n } else if (swipeDistance < -threshold && swipeDeg < touchAngle) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \">\")));\n } else {\n // While swipe don't reach distance apply previous transform.\n Components.Move.make();\n }\n\n Components.Html.root.classList.remove(classes.dragging);\n this.unbindSwipeMove();\n this.unbindSwipeEnd();\n Events.emit('swipe.end');\n }\n },\n\n /**\n * Binds swipe's starting event.\n *\n * @return {Void}\n */\n bindSwipeStart: function bindSwipeStart() {\n var _this = this;\n\n var _Glide$settings3 = Glide.settings,\n swipeThreshold = _Glide$settings3.swipeThreshold,\n dragThreshold = _Glide$settings3.dragThreshold;\n\n if (swipeThreshold) {\n Binder.on(START_EVENTS[0], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n\n if (dragThreshold) {\n Binder.on(START_EVENTS[1], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n },\n\n /**\n * Unbinds swipe's starting event.\n *\n * @return {Void}\n */\n unbindSwipeStart: function unbindSwipeStart() {\n Binder.off(START_EVENTS[0], Components.Html.wrapper, capture);\n Binder.off(START_EVENTS[1], Components.Html.wrapper, capture);\n },\n\n /**\n * Binds swipe's moving event.\n *\n * @return {Void}\n */\n bindSwipeMove: function bindSwipeMove() {\n var _this2 = this;\n\n Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function (event) {\n _this2.move(event);\n }, Glide.settings.throttle), capture);\n },\n\n /**\n * Unbinds swipe's moving event.\n *\n * @return {Void}\n */\n unbindSwipeMove: function unbindSwipeMove() {\n Binder.off(MOVE_EVENTS, Components.Html.wrapper, capture);\n },\n\n /**\n * Binds swipe's ending event.\n *\n * @return {Void}\n */\n bindSwipeEnd: function bindSwipeEnd() {\n var _this3 = this;\n\n Binder.on(END_EVENTS, Components.Html.wrapper, function (event) {\n _this3.end(event);\n });\n },\n\n /**\n * Unbinds swipe's ending event.\n *\n * @return {Void}\n */\n unbindSwipeEnd: function unbindSwipeEnd() {\n Binder.off(END_EVENTS, Components.Html.wrapper);\n },\n\n /**\n * Normalizes event touches points accorting to different types.\n *\n * @param {Object} event\n */\n touches: function touches(event) {\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n /**\n * Gets value of minimum swipe distance settings based on event type.\n *\n * @return {Number}\n */\n threshold: function threshold(event) {\n var settings = Glide.settings;\n\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return settings.dragThreshold;\n }\n\n return settings.swipeThreshold;\n },\n\n /**\n * Enables swipe event.\n *\n * @return {self}\n */\n enable: function enable() {\n disabled = false;\n Components.Transition.enable();\n return this;\n },\n\n /**\n * Disables swipe event.\n *\n * @return {self}\n */\n disable: function disable() {\n disabled = true;\n Components.Transition.disable();\n return this;\n }\n };\n /**\n * Add component class:\n * - after initial building\n */\n\n Events.on('build.after', function () {\n Components.Html.root.classList.add(Glide.settings.classes.swipeable);\n });\n /**\n * Remove swiping bindings:\n * - on destroying, to remove added EventListeners\n */\n\n Events.on('destroy', function () {\n Swipe.unbindSwipeStart();\n Swipe.unbindSwipeMove();\n Swipe.unbindSwipeEnd();\n Binder.destroy();\n });\n return Swipe;\n}\n\nfunction Images (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Images = {\n /**\n * Binds listener to glide wrapper.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bind();\n },\n\n /**\n * Binds `dragstart` event on wrapper to prevent dragging images.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('dragstart', Components.Html.wrapper, this.dragstart);\n },\n\n /**\n * Unbinds `dragstart` event on wrapper.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('dragstart', Components.Html.wrapper);\n },\n\n /**\n * Event handler. Prevents dragging.\n *\n * @return {Void}\n */\n dragstart: function dragstart(event) {\n event.preventDefault();\n }\n };\n /**\n * Remove bindings from images:\n * - on destroying, to remove added EventListeners\n */\n\n Events.on('destroy', function () {\n Images.unbind();\n Binder.destroy();\n });\n return Images;\n}\n\nfunction Anchors (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n /**\n * Holds detaching status of anchors.\n * Prevents detaching of already detached anchors.\n *\n * @private\n * @type {Boolean}\n */\n\n var detached = false;\n /**\n * Holds preventing status of anchors.\n * If `true` redirection after click will be disabled.\n *\n * @private\n * @type {Boolean}\n */\n\n var prevented = false;\n var Anchors = {\n /**\n * Setups a initial state of anchors component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n /**\n * Holds collection of anchors elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._a = Components.Html.wrapper.querySelectorAll('a');\n this.bind();\n },\n\n /**\n * Binds events to anchors inside a track.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('click', Components.Html.wrapper, this.click);\n },\n\n /**\n * Unbinds events attached to anchors inside a track.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('click', Components.Html.wrapper);\n },\n\n /**\n * Handler for click event. Prevents clicks when glide is in `prevent` status.\n *\n * @param {Object} event\n * @return {Void}\n */\n click: function click(event) {\n if (prevented) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n\n /**\n * Detaches anchors click event inside glide.\n *\n * @return {self}\n */\n detach: function detach() {\n prevented = true;\n\n if (!detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = false;\n }\n\n detached = true;\n }\n\n return this;\n },\n\n /**\n * Attaches anchors click events inside glide.\n *\n * @return {self}\n */\n attach: function attach() {\n prevented = false;\n\n if (detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = true;\n }\n\n detached = false;\n }\n\n return this;\n }\n };\n define(Anchors, 'items', {\n /**\n * Gets collection of the arrows HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Anchors._a;\n }\n });\n /**\n * Detach anchors inside slides:\n * - on swiping, so they won't redirect to its `href` attributes\n */\n\n Events.on('swipe.move', function () {\n Anchors.detach();\n });\n /**\n * Attach anchors inside slides:\n * - after swiping and transitions ends, so they can redirect after click again\n */\n\n Events.on('swipe.end', function () {\n Components.Transition.after(function () {\n Anchors.attach();\n });\n });\n /**\n * Unbind anchors inside slides:\n * - on destroying, to bring anchors to its initial state\n */\n\n Events.on('destroy', function () {\n Anchors.attach();\n Anchors.unbind();\n Binder.destroy();\n });\n return Anchors;\n}\n\nvar NAV_SELECTOR = '[data-glide-el=\"controls[nav]\"]';\nvar CONTROLS_SELECTOR = '[data-glide-el^=\"controls\"]';\nvar PREVIOUS_CONTROLS_SELECTOR = \"\".concat(CONTROLS_SELECTOR, \" [data-glide-dir*=\\\"<\\\"]\");\nvar NEXT_CONTROLS_SELECTOR = \"\".concat(CONTROLS_SELECTOR, \" [data-glide-dir*=\\\">\\\"]\");\nfunction Controls (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var capture = supportsPassive$1 ? {\n passive: true\n } : false;\n var Controls = {\n /**\n * Inits arrows. Binds events listeners\n * to the arrows HTML elements.\n *\n * @return {Void}\n */\n mount: function mount() {\n /**\n * Collection of navigation HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR);\n /**\n * Collection of controls HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n\n this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR);\n /**\n * Collection of arrow control HTML elements.\n *\n * @private\n * @type {Object}\n */\n\n this._arrowControls = {\n previous: Components.Html.root.querySelectorAll(PREVIOUS_CONTROLS_SELECTOR),\n next: Components.Html.root.querySelectorAll(NEXT_CONTROLS_SELECTOR)\n };\n this.addBindings();\n },\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n setActive: function setActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.addClass(this._n[i].children);\n }\n },\n\n /**\n * Removes active class to current slide.\n *\n * @return {Void}\n */\n removeActive: function removeActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.removeClass(this._n[i].children);\n }\n },\n\n /**\n * Toggles active class on items inside navigation.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n addClass: function addClass(controls) {\n var settings = Glide.settings;\n var item = controls[Glide.index];\n\n if (!item) {\n return;\n }\n\n item.classList.add(settings.classes.nav.active);\n siblings(item).forEach(function (sibling) {\n sibling.classList.remove(settings.classes.nav.active);\n });\n },\n\n /**\n * Removes active class from active control.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n removeClass: function removeClass(controls) {\n var item = controls[Glide.index];\n item === null || item === void 0 ? void 0 : item.classList.remove(Glide.settings.classes.nav.active);\n },\n\n /**\n * Calculates, removes or adds `Glide.settings.classes.disabledArrow` class on the control arrows\n */\n setArrowState: function setArrowState() {\n if (Glide.settings.rewind) {\n return;\n }\n\n var next = Controls._arrowControls.next;\n var previous = Controls._arrowControls.previous;\n this.resetArrowState(next, previous);\n\n if (Glide.index === 0) {\n this.disableArrow(previous);\n }\n\n if (Glide.index === Components.Run.length) {\n this.disableArrow(next);\n }\n },\n\n /**\n * Removes `Glide.settings.classes.disabledArrow` from given NodeList elements\n *\n * @param {NodeList[]} lists\n */\n resetArrowState: function resetArrowState() {\n var settings = Glide.settings;\n\n for (var _len = arguments.length, lists = new Array(_len), _key = 0; _key < _len; _key++) {\n lists[_key] = arguments[_key];\n }\n\n lists.forEach(function (list) {\n toArray(list).forEach(function (element) {\n element.classList.remove(settings.classes.arrow.disabled);\n });\n });\n },\n\n /**\n * Adds `Glide.settings.classes.disabledArrow` to given NodeList elements\n *\n * @param {NodeList[]} lists\n */\n disableArrow: function disableArrow() {\n var settings = Glide.settings;\n\n for (var _len2 = arguments.length, lists = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n lists[_key2] = arguments[_key2];\n }\n\n lists.forEach(function (list) {\n toArray(list).forEach(function (element) {\n element.classList.add(settings.classes.arrow.disabled);\n });\n });\n },\n\n /**\n * Adds handles to the each group of controls.\n *\n * @return {Void}\n */\n addBindings: function addBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.bind(this._c[i].children);\n }\n },\n\n /**\n * Removes handles from the each group of controls.\n *\n * @return {Void}\n */\n removeBindings: function removeBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.unbind(this._c[i].children);\n }\n },\n\n /**\n * Binds events to arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n bind: function bind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.on('click', elements[i], this.click);\n Binder.on('touchstart', elements[i], this.click, capture);\n }\n },\n\n /**\n * Unbinds events binded to the arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n unbind: function unbind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.off(['click', 'touchstart'], elements[i]);\n }\n },\n\n /**\n * Handles `click` event on the arrows HTML elements.\n * Moves slider in direction given via the\n * `data-glide-dir` attribute.\n *\n * @param {Object} event\n * @return {void}\n */\n click: function click(event) {\n if (!supportsPassive$1 && event.type === 'touchstart') {\n event.preventDefault();\n }\n\n var direction = event.currentTarget.getAttribute('data-glide-dir');\n Components.Run.make(Components.Direction.resolve(direction));\n }\n };\n define(Controls, 'items', {\n /**\n * Gets collection of the controls HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Controls._c;\n }\n });\n /**\n * Swap active class of current navigation item:\n * - after mounting to set it to initial index\n * - after each move to the new index\n */\n\n Events.on(['mount.after', 'move.after'], function () {\n Controls.setActive();\n });\n /**\n * Add or remove disabled class of arrow elements\n */\n\n Events.on(['mount.after', 'run'], function () {\n Controls.setArrowState();\n });\n /**\n * Remove bindings and HTML Classes:\n * - on destroying, to bring markup to its initial state\n */\n\n Events.on('destroy', function () {\n Controls.removeBindings();\n Controls.removeActive();\n Binder.destroy();\n });\n return Controls;\n}\n\nfunction Keyboard (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Keyboard = {\n /**\n * Binds keyboard events on component mount.\n *\n * @return {Void}\n */\n mount: function mount() {\n if (Glide.settings.keyboard) {\n this.bind();\n }\n },\n\n /**\n * Adds keyboard press events.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('keyup', document, this.press);\n },\n\n /**\n * Removes keyboard press events.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('keyup', document);\n },\n\n /**\n * Handles keyboard's arrows press and moving glide foward and backward.\n *\n * @param {Object} event\n * @return {Void}\n */\n press: function press(event) {\n var perSwipe = Glide.settings.perSwipe;\n var arrowSymbols = {\n ArrowRight: '>',\n ArrowLeft: '<'\n };\n\n if (['ArrowRight', 'ArrowLeft'].includes(event.code)) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe).concat(arrowSymbols[event.code])));\n }\n }\n };\n /**\n * Remove bindings from keyboard:\n * - on destroying to remove added events\n * - on updating to remove events before remounting\n */\n\n Events.on(['destroy', 'update'], function () {\n Keyboard.unbind();\n });\n /**\n * Remount component\n * - on updating to reflect potential changes in settings\n */\n\n Events.on('update', function () {\n Keyboard.mount();\n });\n /**\n * Destroy binder:\n * - on destroying to remove listeners\n */\n\n Events.on('destroy', function () {\n Binder.destroy();\n });\n return Keyboard;\n}\n\nfunction Autoplay (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Autoplay = {\n /**\n * Initializes autoplaying and events.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.enable();\n this.start();\n\n if (Glide.settings.hoverpause) {\n this.bind();\n }\n },\n\n /**\n * Enables autoplaying\n *\n * @returns {Void}\n */\n enable: function enable() {\n this._e = true;\n },\n\n /**\n * Disables autoplaying.\n *\n * @returns {Void}\n */\n disable: function disable() {\n this._e = false;\n },\n\n /**\n * Starts autoplaying in configured interval.\n *\n * @param {Boolean|Number} force Run autoplaying with passed interval regardless of `autoplay` settings\n * @return {Void}\n */\n start: function start() {\n var _this = this;\n\n if (!this._e) {\n return;\n }\n\n this.enable();\n\n if (Glide.settings.autoplay) {\n if (isUndefined(this._i)) {\n this._i = setInterval(function () {\n _this.stop();\n\n Components.Run.make('>');\n\n _this.start();\n\n Events.emit('autoplay');\n }, this.time);\n }\n }\n },\n\n /**\n * Stops autorunning of the glide.\n *\n * @return {Void}\n */\n stop: function stop() {\n this._i = clearInterval(this._i);\n },\n\n /**\n * Stops autoplaying while mouse is over glide's area.\n *\n * @return {Void}\n */\n bind: function bind() {\n var _this2 = this;\n\n Binder.on('mouseover', Components.Html.root, function () {\n if (_this2._e) {\n _this2.stop();\n }\n });\n Binder.on('mouseout', Components.Html.root, function () {\n if (_this2._e) {\n _this2.start();\n }\n });\n },\n\n /**\n * Unbind mouseover events.\n *\n * @returns {Void}\n */\n unbind: function unbind() {\n Binder.off(['mouseover', 'mouseout'], Components.Html.root);\n }\n };\n define(Autoplay, 'time', {\n /**\n * Gets time period value for the autoplay interval. Prioritizes\n * times in `data-glide-autoplay` attrubutes over options.\n *\n * @return {Number}\n */\n get: function get() {\n var autoplay = Components.Html.slides[Glide.index].getAttribute('data-glide-autoplay');\n\n if (autoplay) {\n return toInt(autoplay);\n }\n\n return toInt(Glide.settings.autoplay);\n }\n });\n /**\n * Stop autoplaying and unbind events:\n * - on destroying, to clear defined interval\n * - on updating via API to reset interval that may changed\n */\n\n Events.on(['destroy', 'update'], function () {\n Autoplay.unbind();\n });\n /**\n * Stop autoplaying:\n * - before each run, to restart autoplaying\n * - on pausing via API\n * - on destroying, to clear defined interval\n * - while starting a swipe\n * - on updating via API to reset interval that may changed\n */\n\n Events.on(['run.before', 'swipe.start', 'update'], function () {\n Autoplay.stop();\n });\n Events.on(['pause', 'destroy'], function () {\n Autoplay.disable();\n Autoplay.stop();\n });\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n\n Events.on(['run.after', 'swipe.end'], function () {\n Autoplay.start();\n });\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n\n Events.on(['play'], function () {\n Autoplay.enable();\n Autoplay.start();\n });\n /**\n * Remount autoplaying:\n * - on updating via API to reset interval that may changed\n */\n\n Events.on('update', function () {\n Autoplay.mount();\n });\n /**\n * Destroy a binder:\n * - on destroying glide instance to clearup listeners\n */\n\n Events.on('destroy', function () {\n Binder.destroy();\n });\n return Autoplay;\n}\n\n/**\n * Sorts keys of breakpoint object so they will be ordered from lower to bigger.\n *\n * @param {Object} points\n * @returns {Object}\n */\n\nfunction sortBreakpoints(points) {\n if (isObject(points)) {\n return sortKeys(points);\n } else {\n warn(\"Breakpoints option must be an object\");\n }\n\n return {};\n}\n\nfunction Breakpoints (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n /**\n * Holds reference to settings.\n *\n * @type {Object}\n */\n\n var settings = Glide.settings;\n /**\n * Holds reference to breakpoints object in settings. Sorts breakpoints\n * from smaller to larger. It is required in order to proper\n * matching currently active breakpoint settings.\n *\n * @type {Object}\n */\n\n var points = sortBreakpoints(settings.breakpoints);\n /**\n * Cache initial settings before overwritting.\n *\n * @type {Object}\n */\n\n var defaults = Object.assign({}, settings);\n var Breakpoints = {\n /**\n * Matches settings for currectly matching media breakpoint.\n *\n * @param {Object} points\n * @returns {Object}\n */\n match: function match(points) {\n if (typeof window.matchMedia !== 'undefined') {\n for (var point in points) {\n if (points.hasOwnProperty(point)) {\n if (window.matchMedia(\"(max-width: \".concat(point, \"px)\")).matches) {\n return points[point];\n }\n }\n }\n }\n\n return defaults;\n }\n };\n /**\n * Overwrite instance settings with currently matching breakpoint settings.\n * This happens right after component initialization.\n */\n\n Object.assign(settings, Breakpoints.match(points));\n /**\n * Update glide with settings of matched brekpoint:\n * - window resize to update slider\n */\n\n Binder.on('resize', window, throttle(function () {\n Glide.settings = mergeOptions(settings, Breakpoints.match(points));\n }, Glide.settings.throttle));\n /**\n * Resort and update default settings:\n * - on reinit via API, so breakpoint matching will be performed with options\n */\n\n Events.on('update', function () {\n points = sortBreakpoints(points);\n defaults = Object.assign({}, settings);\n });\n /**\n * Unbind resize listener:\n * - on destroying, to bring markup to its initial state\n */\n\n Events.on('destroy', function () {\n Binder.off('resize', window);\n });\n return Breakpoints;\n}\n\nvar COMPONENTS = {\n // 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 // 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 = /*#__PURE__*/function (_Core) {\n _inherits(Glide, _Core);\n\n var _super = _createSuper(Glide);\n\n function Glide() {\n _classCallCheck(this, Glide);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Glide, [{\n key: \"mount\",\n value: function mount() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _get(_getPrototypeOf(Glide.prototype), \"mount\", this).call(this, Object.assign({}, COMPONENTS, extensions));\n }\n }]);\n\n return Glide;\n}(Glide$1);\n\nexport { Glide as default };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Glide from '@glidejs/glide';\nimport { modal } from \"../modules/modal\";\nmodal();\n\nlet testimonialsSlider = new Glide('#testimonials-slider', {\n type: 'carousel',\n perView: 1,\n focusAt: 'center'\n});\n\n\n// testimonialsSlider.on('build.after', function() {\n// let slideHeight = jQuery('.glide__slide--active').outerHeight();\n// let glideTrack = jQuery('.glide__track').outerHeight();\n// if (slideHeight != glideTrack) {\n// let newHeight = slideHeight;\n// jQuery('.glide__track').css('height', newHeight);\n// }\n// });\n\n// testimonialsSlider.on('run.before', function(obj) {\n// let slideHeight = jQuery('.glide__slide--active').next('.glide__slide').outerHeight();\n// if (obj.direction === '<') {\n// slideHeight = jQuery('.glide__slide--active').prev('.glide__slide').outerHeight();\n// }\n// let glideTrack = jQuery('.glide__track').outerHeight();\n// if (slideHeight != glideTrack) {\n// let newHeight = slideHeight;\n// jQuery('.glide__track').css('height', newHeight);\n// window.dispatchEvent(new Event('resize'));\n// }\n// })\n\n// testimonialsSlider.on('run.after', function(obj) {\n// window.dispatchEvent(new Event('resize'));\n// })\n\ntestimonialsSlider.mount();\n\n\n\n// Hubspot form\nwindow.addEventListener('message', event => {\n if (event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormReady') {\n\n let checkboxes = document.querySelectorAll('.hs-services_interest.hs-fieldtype-checkbox ul.inputs-list input.hs-input')\n\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => {\n checkbox.checked = true\n });\n }\n\n }\n});\n\n\n// _hsq event\n\nconst data_isresource = document.querySelector('.glide__slides');\n\ndata_isresource.addEventListener(\"click\", (e) => {\n\n if ( e.target.parentNode.nodeName === \"A\" && \"isresource\" in e.target.parentNode.dataset || e.target.nodeName === \"A\" && \"isresource\" in e.target.dataset ){\n \n e.preventDefault();\n\n let el = e.target.parentNode;\n\n const resourceName = el.dataset.resourcename;\n const resourceType = el.dataset.resourcetype;\n\n const _hsq = window._hsq = window._hsq || []; \n _hsq.push([\n 'trackCustomBehavioralEvent',\n {\n name: \"pe5133778_marketing___resources_interaction\",\n properties: {\n resource_brand: \"¾ÅÐãÖ±²¥\",\n resource_type: resourceType,\n resource_name: resourceName\n },\n },\n ]);\n \n }\n\n});\n// END _hsq event"],"names":["modal","document","addEventListener","openModal","$el","$vid_src","classList","add","contains","youTubeSrc","dataset","src","querySelector","setAttribute","videoPlayer","closeModal","remove","removeAttribute","closeAllModals","querySelectorAll","forEach","$modal","$trigger","target","$target","getElementById","e","preventDefault","$close","closest","event","window","keyCode","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","i","arguments","length","source","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","value","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_typeof2","_createSuper","Derived","hasNativeReflectConstruct","_createSuperInternal","Super","result","NewTarget","_superPropBase","property","hasOwnProperty","_get","get","receiver","base","desc","defaults","type","startAt","perView","focusAt","gap","autoplay","hoverpause","keyboard","bound","swipeThreshold","dragThreshold","perSwipe","touchRatio","touchAngle","animationDuration","rewind","rewindDuration","animationTimingFunc","waitForTransition","throttle","direction","peek","cloningRatio","breakpoints","classes","swipeable","dragging","ltr","rtl","slider","carousel","slide","clone","active","arrow","disabled","nav","warn","msg","console","error","concat","toInt","parseInt","toFloat","parseFloat","isString","isObject","isFunction","isUndefined","isArray","Array","mount","glide","extensions","events","components","name","_name","define","prop","definition","sortKeys","sort","reduce","r","k","mergeOptions","settings","options","assign","properties","EventsBus","undefined","hop","on","handler","index","emit","context","item","Glide$1","Glide","selector","_c","_t","_e","mount$1","mutate","transformers","update","go","pattern","Run","make","move","distance","Transition","disable","Move","destroy","play","interval","pause","enable","isType","_o","set","_i","_d","status","Components","Events","_this","calculate","after","isStart","isEnd","isOffset","steps","viewSize","calculateForwardIndex","normalizeForwardIndex","_index","calculateBackwardIndex","normalizeBackwardIndex","isBound","Math","floor","view","ceil","_m","step","substr","Html","slides","now","Date","getTime","func","wait","timeout","args","previous","later","leading","throttled","at","remaining","clearTimeout","trailing","setTimeout","cancel","MARGIN_TYPE","Gaps","len","style","Direction","marginLeft","marginRight","Sizes","wrapper","children","siblings","node","parentNode","n","firstChild","matched","nextSibling","nodeType","toArray","nodeList","slice","TRACK_SELECTOR","root","track","collectSlides","_r","t","Peek","_v","before","offset","movement","slideWidth","translate","is","setupSlides","width","setupWrapper","wrapperSize","offsetWidth","grow","Clones","reductor","Build","typeClass","activeClass","sibling","removeClasses","_Glide$settings$class","items","collect","_Glide$settings","peekIncrementer","cloneCount","round","append","reverse","prepend","max","cloneNode","_clone","unshift","_Components$Html","half","appendChild","_i2","insertBefore","_i3","removeChild","EventsBinder","listeners","el","closure","capture","off","removeEventListener","Resize","Binder","bind","unbind","VALID_DIRECTIONS","FLIPED_MOVEMENTS","resolve","token","split","join","addClass","removeClass","indexOf","Rtl","modify","Gap","multiplier","Grow","Peeking","Focusing","mutator","TRANSFORMERS","transformer","Translate","transform","translate3d","mozTransform","webkitTransform","getStartIndex","getTravelDistance","travelDistance","startWidth","compose","duration","transition","callback","supportsPassive","opts","supportsPassive$1","START_EVENTS","MOVE_EVENTS","END_EVENTS","MOUSE_EVENTS","Swipe","swipeSin","swipeStartX","swipeStartY","passive","bindSwipeStart","start","swipe","touches","pageX","pageY","bindSwipeMove","bindSwipeEnd","subExSx","subEySy","powEX","abs","powEY","swipeHypotenuse","sqrt","swipeCathetus","asin","PI","stopPropagation","end","_Glide$settings2","threshold","swipeDistance","swipeDeg","unbindSwipeMove","unbindSwipeEnd","_Glide$settings3","unbindSwipeStart","_this2","_this3","changedTouches","Images","dragstart","Anchors","detached","prevented","_a","click","detach","draggable","attach","NAV_SELECTOR","CONTROLS_SELECTOR","PREVIOUS_CONTROLS_SELECTOR","NEXT_CONTROLS_SELECTOR","Controls","_n","_arrowControls","next","addBindings","setActive","removeActive","controls","setArrowState","resetArrowState","disableArrow","_len","lists","_key","list","element","_len2","_key2","removeBindings","elements","currentTarget","getAttribute","Keyboard","press","arrowSymbols","ArrowRight","ArrowLeft","includes","code","Autoplay","setInterval","stop","time","clearInterval","sortBreakpoints","points","Breakpoints","match","matchMedia","point","matches","COMPONENTS","_Core","_super","default","testimonialsSlider","data","eventName","checkboxes","checkbox","checked","data_isresource","nodeName","resourceName","resourcename","resourceType","resourcetype","_hsq","resource_brand","resource_type","resource_name"],"sourceRoot":""}