{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://bizzkit/./node_modules/headroom.js/dist/headroom.js","webpack://bizzkit/./node_modules/list.js/src/add-async.js","webpack://bizzkit/./node_modules/list.js/src/filter.js","webpack://bizzkit/./node_modules/list.js/src/fuzzy-search.js","webpack://bizzkit/./node_modules/list.js/src/index.js","webpack://bizzkit/./node_modules/list.js/src/item.js","webpack://bizzkit/./node_modules/list.js/src/pagination.js","webpack://bizzkit/./node_modules/list.js/src/parse.js","webpack://bizzkit/./node_modules/list.js/src/search.js","webpack://bizzkit/./node_modules/list.js/src/sort.js","webpack://bizzkit/./node_modules/list.js/src/templater.js","webpack://bizzkit/./node_modules/list.js/src/utils/classes.js","webpack://bizzkit/./node_modules/list.js/src/utils/events.js","webpack://bizzkit/./node_modules/list.js/src/utils/extend.js","webpack://bizzkit/./node_modules/list.js/src/utils/fuzzy.js","webpack://bizzkit/./node_modules/list.js/src/utils/get-attribute.js","webpack://bizzkit/./node_modules/list.js/src/utils/get-by-class.js","webpack://bizzkit/./node_modules/list.js/src/utils/index-of.js","webpack://bizzkit/./node_modules/list.js/src/utils/to-array.js","webpack://bizzkit/./node_modules/list.js/src/utils/to-string.js","webpack://bizzkit/./node_modules/plyr/dist/plyr.min.js","webpack://bizzkit/./node_modules/string-natural-compare/natural-compare.js","webpack://bizzkit/webpack/bootstrap","webpack://bizzkit/webpack/runtime/compat get default export","webpack://bizzkit/webpack/runtime/define property getters","webpack://bizzkit/webpack/runtime/global","webpack://bizzkit/webpack/runtime/hasOwnProperty shorthand","webpack://bizzkit/./src/js/collapsible.ts","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/raf.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/caf.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/extend.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/getBody.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/docElement.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/forEach.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/hasClass.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/addClass.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/removeClass.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/getAttr.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/hideElement.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/showElement.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/isVisible.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/addEvents.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/events.js","webpack://bizzkit/./node_modules/tiny-slider/src/tiny-slider.module.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/calc.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/toDegree.js","webpack://bizzkit/./node_modules/tiny-slider/src/helpers/getTouchDirection.js","webpack://bizzkit/./src/js/scramble.js","webpack://bizzkit/./src/js/autogrow.ts","webpack://bizzkit/./src/js/entry.ts","webpack://bizzkit/./src/js/accordion.js","webpack://bizzkit/./src/js/filter.ts","webpack://bizzkit/./src/js/utils/nextuntil.ts"],"sourcesContent":["/*!\n * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Headroom = factory());\n}(this, function () { 'use strict';\n\n function isBrowser() {\n return typeof window !== \"undefined\";\n }\n\n /**\n * Used to detect browser support for adding an event listener with options\n * Credit: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n */\n function passiveEventsSupported() {\n var supported = false;\n\n try {\n var options = {\n // eslint-disable-next-line getter-return\n get passive() {\n supported = true;\n }\n };\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n supported = false;\n }\n\n return supported;\n }\n\n function isSupported() {\n return !!(\n isBrowser() &&\n function() {}.bind &&\n \"classList\" in document.documentElement &&\n Object.assign &&\n Object.keys &&\n requestAnimationFrame\n );\n }\n\n function isDocument(obj) {\n return obj.nodeType === 9; // Node.DOCUMENT_NODE === 9\n }\n\n function isWindow(obj) {\n // `obj === window` or `obj instanceof Window` is not sufficient,\n // as the obj may be the window of an iframe.\n return obj && obj.document && isDocument(obj.document);\n }\n\n function windowScroller(win) {\n var doc = win.document;\n var body = doc.body;\n var html = doc.documentElement;\n\n return {\n /**\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {Number} the scroll height of the document in pixels\n */\n scrollHeight: function() {\n return Math.max(\n body.scrollHeight,\n html.scrollHeight,\n body.offsetHeight,\n html.offsetHeight,\n body.clientHeight,\n html.clientHeight\n );\n },\n\n /**\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {Number} the height of the viewport in pixels\n */\n height: function() {\n return win.innerHeight || html.clientHeight || body.clientHeight;\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n scrollY: function() {\n if (win.pageYOffset !== undefined) {\n return win.pageYOffset;\n }\n\n return (html || body.parentNode || body).scrollTop;\n }\n };\n }\n\n function elementScroller(element) {\n return {\n /**\n * @return {Number} the scroll height of the element in pixels\n */\n scrollHeight: function() {\n return Math.max(\n element.scrollHeight,\n element.offsetHeight,\n element.clientHeight\n );\n },\n\n /**\n * @return {Number} the height of the element in pixels\n */\n height: function() {\n return Math.max(element.offsetHeight, element.clientHeight);\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the element has scrolled along the Y-axis\n */\n scrollY: function() {\n return element.scrollTop;\n }\n };\n }\n\n function createScroller(element) {\n return isWindow(element) ? windowScroller(element) : elementScroller(element);\n }\n\n /**\n * @param element EventTarget\n */\n function trackScroll(element, options, callback) {\n var isPassiveSupported = passiveEventsSupported();\n var rafId;\n var scrolled = false;\n var scroller = createScroller(element);\n var lastScrollY = scroller.scrollY();\n var details = {};\n\n function update() {\n var scrollY = Math.round(scroller.scrollY());\n var height = scroller.height();\n var scrollHeight = scroller.scrollHeight();\n\n // reuse object for less memory churn\n details.scrollY = scrollY;\n details.lastScrollY = lastScrollY;\n details.direction = scrollY > lastScrollY ? \"down\" : \"up\";\n details.distance = Math.abs(scrollY - lastScrollY);\n details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;\n details.top = scrollY <= options.offset[details.direction];\n details.bottom = scrollY + height >= scrollHeight;\n details.toleranceExceeded =\n details.distance > options.tolerance[details.direction];\n\n callback(details);\n\n lastScrollY = scrollY;\n scrolled = false;\n }\n\n function handleScroll() {\n if (!scrolled) {\n scrolled = true;\n rafId = requestAnimationFrame(update);\n }\n }\n\n var eventOptions = isPassiveSupported\n ? { passive: true, capture: false }\n : false;\n\n element.addEventListener(\"scroll\", handleScroll, eventOptions);\n update();\n\n return {\n destroy: function() {\n cancelAnimationFrame(rafId);\n element.removeEventListener(\"scroll\", handleScroll, eventOptions);\n }\n };\n }\n\n function normalizeUpDown(t) {\n return t === Object(t) ? t : { down: t, up: t };\n }\n\n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n function Headroom(elem, options) {\n options = options || {};\n Object.assign(this, Headroom.options, options);\n this.classes = Object.assign({}, Headroom.options.classes, options.classes);\n\n this.elem = elem;\n this.tolerance = normalizeUpDown(this.tolerance);\n this.offset = normalizeUpDown(this.offset);\n this.initialised = false;\n this.frozen = false;\n }\n Headroom.prototype = {\n constructor: Headroom,\n\n /**\n * Start listening to scrolling\n * @public\n */\n init: function() {\n if (Headroom.cutsTheMustard && !this.initialised) {\n this.addClass(\"initial\");\n this.initialised = true;\n\n // defer event registration to handle browser\n // potentially restoring previous scroll position\n setTimeout(\n function(self) {\n self.scrollTracker = trackScroll(\n self.scroller,\n { offset: self.offset, tolerance: self.tolerance },\n self.update.bind(self)\n );\n },\n 100,\n this\n );\n }\n\n return this;\n },\n\n /**\n * Destroy the widget, clearing up after itself\n * @public\n */\n destroy: function() {\n this.initialised = false;\n Object.keys(this.classes).forEach(this.removeClass, this);\n this.scrollTracker.destroy();\n },\n\n /**\n * Unpin the element\n * @public\n */\n unpin: function() {\n if (this.hasClass(\"pinned\") || !this.hasClass(\"unpinned\")) {\n this.addClass(\"unpinned\");\n this.removeClass(\"pinned\");\n\n if (this.onUnpin) {\n this.onUnpin.call(this);\n }\n }\n },\n\n /**\n * Pin the element\n * @public\n */\n pin: function() {\n if (this.hasClass(\"unpinned\")) {\n this.addClass(\"pinned\");\n this.removeClass(\"unpinned\");\n\n if (this.onPin) {\n this.onPin.call(this);\n }\n }\n },\n\n /**\n * Freezes the current state of the widget\n * @public\n */\n freeze: function() {\n this.frozen = true;\n this.addClass(\"frozen\");\n },\n\n /**\n * Re-enables the default behaviour of the widget\n * @public\n */\n unfreeze: function() {\n this.frozen = false;\n this.removeClass(\"frozen\");\n },\n\n top: function() {\n if (!this.hasClass(\"top\")) {\n this.addClass(\"top\");\n this.removeClass(\"notTop\");\n\n if (this.onTop) {\n this.onTop.call(this);\n }\n }\n },\n\n notTop: function() {\n if (!this.hasClass(\"notTop\")) {\n this.addClass(\"notTop\");\n this.removeClass(\"top\");\n\n if (this.onNotTop) {\n this.onNotTop.call(this);\n }\n }\n },\n\n bottom: function() {\n if (!this.hasClass(\"bottom\")) {\n this.addClass(\"bottom\");\n this.removeClass(\"notBottom\");\n\n if (this.onBottom) {\n this.onBottom.call(this);\n }\n }\n },\n\n notBottom: function() {\n if (!this.hasClass(\"notBottom\")) {\n this.addClass(\"notBottom\");\n this.removeClass(\"bottom\");\n\n if (this.onNotBottom) {\n this.onNotBottom.call(this);\n }\n }\n },\n\n shouldUnpin: function(details) {\n var scrollingDown = details.direction === \"down\";\n\n return scrollingDown && !details.top && details.toleranceExceeded;\n },\n\n shouldPin: function(details) {\n var scrollingUp = details.direction === \"up\";\n\n return (scrollingUp && details.toleranceExceeded) || details.top;\n },\n\n addClass: function(className) {\n this.elem.classList.add.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n removeClass: function(className) {\n this.elem.classList.remove.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n hasClass: function(className) {\n return this.classes[className].split(\" \").every(function(cls) {\n return this.classList.contains(cls);\n }, this.elem);\n },\n\n update: function(details) {\n if (details.isOutOfBounds) {\n // Ignore bouncy scrolling in OSX\n return;\n }\n\n if (this.frozen === true) {\n return;\n }\n\n if (details.top) {\n this.top();\n } else {\n this.notTop();\n }\n\n if (details.bottom) {\n this.bottom();\n } else {\n this.notBottom();\n }\n\n if (this.shouldUnpin(details)) {\n this.unpin();\n } else if (this.shouldPin(details)) {\n this.pin();\n }\n }\n };\n\n /**\n * Default options\n * @type {Object}\n */\n Headroom.options = {\n tolerance: {\n up: 0,\n down: 0\n },\n offset: 0,\n scroller: isBrowser() ? window : null,\n classes: {\n frozen: \"headroom--frozen\",\n pinned: \"headroom--pinned\",\n unpinned: \"headroom--unpinned\",\n top: \"headroom--top\",\n notTop: \"headroom--not-top\",\n bottom: \"headroom--bottom\",\n notBottom: \"headroom--not-bottom\",\n initial: \"headroom\"\n }\n };\n\n Headroom.cutsTheMustard = isSupported();\n\n return Headroom;\n\n}));\n","module.exports = function (list) {\n var addAsync = function (values, callback, items) {\n var valuesToAdd = values.splice(0, 50)\n items = items || []\n items = items.concat(list.add(valuesToAdd))\n if (values.length > 0) {\n setTimeout(function () {\n addAsync(values, callback, items)\n }, 1)\n } else {\n list.update()\n callback(items)\n }\n }\n return addAsync\n}\n","module.exports = function (list) {\n // Add handlers\n list.handlers.filterStart = list.handlers.filterStart || []\n list.handlers.filterComplete = list.handlers.filterComplete || []\n\n return function (filterFunction) {\n list.trigger('filterStart')\n list.i = 1 // Reset paging\n list.reset.filter()\n if (filterFunction === undefined) {\n list.filtered = false\n } else {\n list.filtered = true\n var is = list.items\n for (var i = 0, il = is.length; i < il; i++) {\n var item = is[i]\n if (filterFunction(item)) {\n item.filtered = true\n } else {\n item.filtered = false\n }\n }\n }\n list.update()\n list.trigger('filterComplete')\n return list.visibleItems\n }\n}\n","var classes = require('./utils/classes'),\n events = require('./utils/events'),\n extend = require('./utils/extend'),\n toString = require('./utils/to-string'),\n getByClass = require('./utils/get-by-class'),\n fuzzy = require('./utils/fuzzy')\n\nmodule.exports = function (list, options) {\n options = options || {}\n\n options = extend(\n {\n location: 0,\n distance: 100,\n threshold: 0.4,\n multiSearch: true,\n searchClass: 'fuzzy-search',\n },\n options\n )\n\n var fuzzySearch = {\n search: function (searchString, columns) {\n // Substract arguments from the searchString or put searchString as only argument\n var searchArguments = options.multiSearch ? searchString.replace(/ +$/, '').split(/ +/) : [searchString]\n\n for (var k = 0, kl = list.items.length; k < kl; k++) {\n fuzzySearch.item(list.items[k], columns, searchArguments)\n }\n },\n item: function (item, columns, searchArguments) {\n var found = true\n for (var i = 0; i < searchArguments.length; i++) {\n var foundArgument = false\n for (var j = 0, jl = columns.length; j < jl; j++) {\n if (fuzzySearch.values(item.values(), columns[j], searchArguments[i])) {\n foundArgument = true\n }\n }\n if (!foundArgument) {\n found = false\n }\n }\n item.found = found\n },\n values: function (values, value, searchArgument) {\n if (values.hasOwnProperty(value)) {\n var text = toString(values[value]).toLowerCase()\n\n if (fuzzy(text, searchArgument, options)) {\n return true\n }\n }\n return false\n },\n }\n\n events.bind(\n getByClass(list.listContainer, options.searchClass),\n 'keyup',\n list.utils.events.debounce(function (e) {\n var target = e.target || e.srcElement // IE have srcElement\n list.search(target.value, fuzzySearch.search)\n }, list.searchDelay)\n )\n\n return function (str, columns) {\n list.search(str, columns, fuzzySearch.search)\n }\n}\n","var naturalSort = require('string-natural-compare'),\n getByClass = require('./utils/get-by-class'),\n extend = require('./utils/extend'),\n indexOf = require('./utils/index-of'),\n events = require('./utils/events'),\n toString = require('./utils/to-string'),\n classes = require('./utils/classes'),\n getAttribute = require('./utils/get-attribute'),\n toArray = require('./utils/to-array')\n\nmodule.exports = function (id, options, values) {\n var self = this,\n init,\n Item = require('./item')(self),\n addAsync = require('./add-async')(self),\n initPagination = require('./pagination')(self)\n\n init = {\n start: function () {\n self.listClass = 'list'\n self.searchClass = 'search'\n self.sortClass = 'sort'\n self.page = 10000\n self.i = 1\n self.items = []\n self.visibleItems = []\n self.matchingItems = []\n self.searched = false\n self.filtered = false\n self.searchColumns = undefined\n self.searchDelay = 0\n self.handlers = { updated: [] }\n self.valueNames = []\n self.utils = {\n getByClass: getByClass,\n extend: extend,\n indexOf: indexOf,\n events: events,\n toString: toString,\n naturalSort: naturalSort,\n classes: classes,\n getAttribute: getAttribute,\n toArray: toArray,\n }\n\n self.utils.extend(self, options)\n\n self.listContainer = typeof id === 'string' ? document.getElementById(id) : id\n if (!self.listContainer) {\n return\n }\n self.list = getByClass(self.listContainer, self.listClass, true)\n\n self.parse = require('./parse')(self)\n self.templater = require('./templater')(self)\n self.search = require('./search')(self)\n self.filter = require('./filter')(self)\n self.sort = require('./sort')(self)\n self.fuzzySearch = require('./fuzzy-search')(self, options.fuzzySearch)\n\n this.handlers()\n this.items()\n this.pagination()\n\n self.update()\n },\n handlers: function () {\n for (var handler in self.handlers) {\n if (self[handler] && self.handlers.hasOwnProperty(handler)) {\n self.on(handler, self[handler])\n }\n }\n },\n items: function () {\n self.parse(self.list)\n if (values !== undefined) {\n self.add(values)\n }\n },\n pagination: function () {\n if (options.pagination !== undefined) {\n if (options.pagination === true) {\n options.pagination = [{}]\n }\n if (options.pagination[0] === undefined) {\n options.pagination = [options.pagination]\n }\n for (var i = 0, il = options.pagination.length; i < il; i++) {\n initPagination(options.pagination[i])\n }\n }\n },\n }\n\n /*\n * Re-parse the List, use if html have changed\n */\n this.reIndex = function () {\n self.items = []\n self.visibleItems = []\n self.matchingItems = []\n self.searched = false\n self.filtered = false\n self.parse(self.list)\n }\n\n this.toJSON = function () {\n var json = []\n for (var i = 0, il = self.items.length; i < il; i++) {\n json.push(self.items[i].values())\n }\n return json\n }\n\n /*\n * Add object to list\n */\n this.add = function (values, callback) {\n if (values.length === 0) {\n return\n }\n if (callback) {\n addAsync(values.slice(0), callback)\n return\n }\n var added = [],\n notCreate = false\n if (values[0] === undefined) {\n values = [values]\n }\n for (var i = 0, il = values.length; i < il; i++) {\n var item = null\n notCreate = self.items.length > self.page ? true : false\n item = new Item(values[i], undefined, notCreate)\n self.items.push(item)\n added.push(item)\n }\n self.update()\n return added\n }\n\n this.show = function (i, page) {\n this.i = i\n this.page = page\n self.update()\n return self\n }\n\n /* Removes object from list.\n * Loops through the list and removes objects where\n * property \"valuename\" === value\n */\n this.remove = function (valueName, value, options) {\n var found = 0\n for (var i = 0, il = self.items.length; i < il; i++) {\n if (self.items[i].values()[valueName] == value) {\n self.templater.remove(self.items[i], options)\n self.items.splice(i, 1)\n il--\n i--\n found++\n }\n }\n self.update()\n return found\n }\n\n /* Gets the objects in the list which\n * property \"valueName\" === value\n */\n this.get = function (valueName, value) {\n var matchedItems = []\n for (var i = 0, il = self.items.length; i < il; i++) {\n var item = self.items[i]\n if (item.values()[valueName] == value) {\n matchedItems.push(item)\n }\n }\n return matchedItems\n }\n\n /*\n * Get size of the list\n */\n this.size = function () {\n return self.items.length\n }\n\n /*\n * Removes all items from the list\n */\n this.clear = function () {\n self.templater.clear()\n self.items = []\n return self\n }\n\n this.on = function (event, callback) {\n self.handlers[event].push(callback)\n return self\n }\n\n this.off = function (event, callback) {\n var e = self.handlers[event]\n var index = indexOf(e, callback)\n if (index > -1) {\n e.splice(index, 1)\n }\n return self\n }\n\n this.trigger = function (event) {\n var i = self.handlers[event].length\n while (i--) {\n self.handlers[event][i](self)\n }\n return self\n }\n\n this.reset = {\n filter: function () {\n var is = self.items,\n il = is.length\n while (il--) {\n is[il].filtered = false\n }\n return self\n },\n search: function () {\n var is = self.items,\n il = is.length\n while (il--) {\n is[il].found = false\n }\n return self\n },\n }\n\n this.update = function () {\n var is = self.items,\n il = is.length\n\n self.visibleItems = []\n self.matchingItems = []\n self.templater.clear()\n for (var i = 0; i < il; i++) {\n if (is[i].matching() && self.matchingItems.length + 1 >= self.i && self.visibleItems.length < self.page) {\n is[i].show()\n self.visibleItems.push(is[i])\n self.matchingItems.push(is[i])\n } else if (is[i].matching()) {\n self.matchingItems.push(is[i])\n is[i].hide()\n } else {\n is[i].hide()\n }\n }\n self.trigger('updated')\n return self\n }\n\n init.start()\n}\n","module.exports = function (list) {\n return function (initValues, element, notCreate) {\n var item = this\n\n this._values = {}\n\n this.found = false // Show if list.searched == true and this.found == true\n this.filtered = false // Show if list.filtered == true and this.filtered == true\n\n var init = function (initValues, element, notCreate) {\n if (element === undefined) {\n if (notCreate) {\n item.values(initValues, notCreate)\n } else {\n item.values(initValues)\n }\n } else {\n item.elm = element\n var values = list.templater.get(item, initValues)\n item.values(values)\n }\n }\n\n this.values = function (newValues, notCreate) {\n if (newValues !== undefined) {\n for (var name in newValues) {\n item._values[name] = newValues[name]\n }\n if (notCreate !== true) {\n list.templater.set(item, item.values())\n }\n } else {\n return item._values\n }\n }\n\n this.show = function () {\n list.templater.show(item)\n }\n\n this.hide = function () {\n list.templater.hide(item)\n }\n\n this.matching = function () {\n return (\n (list.filtered && list.searched && item.found && item.filtered) ||\n (list.filtered && !list.searched && item.filtered) ||\n (!list.filtered && list.searched && item.found) ||\n (!list.filtered && !list.searched)\n )\n }\n\n this.visible = function () {\n return item.elm && item.elm.parentNode == list.list ? true : false\n }\n\n init(initValues, element, notCreate)\n }\n}\n","var classes = require('./utils/classes'),\n events = require('./utils/events'),\n List = require('./index')\n\nmodule.exports = function (list) {\n var isHidden = false\n\n var refresh = function (pagingList, options) {\n if (list.page < 1) {\n list.listContainer.style.display = 'none'\n isHidden = true\n return\n } else if (isHidden) {\n list.listContainer.style.display = 'block'\n }\n\n var item,\n l = list.matchingItems.length,\n index = list.i,\n page = list.page,\n pages = Math.ceil(l / page),\n currentPage = Math.ceil(index / page),\n innerWindow = options.innerWindow || 2,\n left = options.left || options.outerWindow || 0,\n right = options.right || options.outerWindow || 0\n\n right = pages - right\n pagingList.clear()\n for (var i = 1; i <= pages; i++) {\n var className = currentPage === i ? 'active' : ''\n\n //console.log(i, left, right, currentPage, (currentPage - innerWindow), (currentPage + innerWindow), className);\n\n if (is.number(i, left, right, currentPage, innerWindow)) {\n item = pagingList.add({\n page: i,\n dotted: false,\n })[0]\n if (className) {\n classes(item.elm).add(className)\n }\n item.elm.firstChild.setAttribute('data-i', i)\n item.elm.firstChild.setAttribute('data-page', page)\n } else if (is.dotted(pagingList, i, left, right, currentPage, innerWindow, pagingList.size())) {\n item = pagingList.add({\n page: '...',\n dotted: true,\n })[0]\n classes(item.elm).add('disabled')\n }\n }\n }\n\n var is = {\n number: function (i, left, right, currentPage, innerWindow) {\n return this.left(i, left) || this.right(i, right) || this.innerWindow(i, currentPage, innerWindow)\n },\n left: function (i, left) {\n return i <= left\n },\n right: function (i, right) {\n return i > right\n },\n innerWindow: function (i, currentPage, innerWindow) {\n return i >= currentPage - innerWindow && i <= currentPage + innerWindow\n },\n dotted: function (pagingList, i, left, right, currentPage, innerWindow, currentPageItem) {\n return (\n this.dottedLeft(pagingList, i, left, right, currentPage, innerWindow) ||\n this.dottedRight(pagingList, i, left, right, currentPage, innerWindow, currentPageItem)\n )\n },\n dottedLeft: function (pagingList, i, left, right, currentPage, innerWindow) {\n return i == left + 1 && !this.innerWindow(i, currentPage, innerWindow) && !this.right(i, right)\n },\n dottedRight: function (pagingList, i, left, right, currentPage, innerWindow, currentPageItem) {\n if (pagingList.items[currentPageItem - 1].values().dotted) {\n return false\n } else {\n return i == right && !this.innerWindow(i, currentPage, innerWindow) && !this.right(i, right)\n }\n },\n }\n\n return function (options) {\n var pagingList = new List(list.listContainer.id, {\n listClass: options.paginationClass || 'pagination',\n item: options.item || \"
  • \",\n valueNames: ['page', 'dotted'],\n searchClass: 'pagination-search-that-is-not-supposed-to-exist',\n sortClass: 'pagination-sort-that-is-not-supposed-to-exist',\n })\n\n events.bind(pagingList.listContainer, 'click', function (e) {\n var target = e.target || e.srcElement,\n page = list.utils.getAttribute(target, 'data-page'),\n i = list.utils.getAttribute(target, 'data-i')\n if (i) {\n list.show((i - 1) * page + 1, page)\n }\n })\n\n list.on('updated', function () {\n refresh(pagingList, options)\n })\n refresh(pagingList, options)\n }\n}\n","module.exports = function (list) {\n var Item = require('./item')(list)\n\n var getChildren = function (parent) {\n var nodes = parent.childNodes,\n items = []\n for (var i = 0, il = nodes.length; i < il; i++) {\n // Only textnodes have a data attribute\n if (nodes[i].data === undefined) {\n items.push(nodes[i])\n }\n }\n return items\n }\n\n var parse = function (itemElements, valueNames) {\n for (var i = 0, il = itemElements.length; i < il; i++) {\n list.items.push(new Item(valueNames, itemElements[i]))\n }\n }\n var parseAsync = function (itemElements, valueNames) {\n var itemsToIndex = itemElements.splice(0, 50) // TODO: If < 100 items, what happens in IE etc?\n parse(itemsToIndex, valueNames)\n if (itemElements.length > 0) {\n setTimeout(function () {\n parseAsync(itemElements, valueNames)\n }, 1)\n } else {\n list.update()\n list.trigger('parseComplete')\n }\n }\n\n list.handlers.parseComplete = list.handlers.parseComplete || []\n\n return function () {\n var itemsToIndex = getChildren(list.list),\n valueNames = list.valueNames\n\n if (list.indexAsync) {\n parseAsync(itemsToIndex, valueNames)\n } else {\n parse(itemsToIndex, valueNames)\n }\n }\n}\n","module.exports = function (list) {\n var item, text, columns, searchString, customSearch\n\n var prepare = {\n resetList: function () {\n list.i = 1\n list.templater.clear()\n customSearch = undefined\n },\n setOptions: function (args) {\n if (args.length == 2 && args[1] instanceof Array) {\n columns = args[1]\n } else if (args.length == 2 && typeof args[1] == 'function') {\n columns = undefined\n customSearch = args[1]\n } else if (args.length == 3) {\n columns = args[1]\n customSearch = args[2]\n } else {\n columns = undefined\n }\n },\n setColumns: function () {\n if (list.items.length === 0) return\n if (columns === undefined) {\n columns = list.searchColumns === undefined ? prepare.toArray(list.items[0].values()) : list.searchColumns\n }\n },\n setSearchString: function (s) {\n s = list.utils.toString(s).toLowerCase()\n s = s.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&') // Escape regular expression characters\n searchString = s\n },\n toArray: function (values) {\n var tmpColumn = []\n for (var name in values) {\n tmpColumn.push(name)\n }\n return tmpColumn\n },\n }\n var search = {\n list: function () {\n // Extract quoted phrases \"word1 word2\" from original searchString\n // searchString is converted to lowercase by List.js\n var words = [],\n phrase,\n ss = searchString\n while ((phrase = ss.match(/\"([^\"]+)\"/)) !== null) {\n words.push(phrase[1])\n ss = ss.substring(0, phrase.index) + ss.substring(phrase.index + phrase[0].length)\n }\n // Get remaining space-separated words (if any)\n ss = ss.trim()\n if (ss.length) words = words.concat(ss.split(/\\s+/))\n for (var k = 0, kl = list.items.length; k < kl; k++) {\n var item = list.items[k]\n item.found = false\n if (!words.length) continue\n for (var i = 0, il = words.length; i < il; i++) {\n var word_found = false\n for (var j = 0, jl = columns.length; j < jl; j++) {\n var values = item.values(),\n column = columns[j]\n if (values.hasOwnProperty(column) && values[column] !== undefined && values[column] !== null) {\n var text = typeof values[column] !== 'string' ? values[column].toString() : values[column]\n if (text.toLowerCase().indexOf(words[i]) !== -1) {\n // word found, so no need to check it against any other columns\n word_found = true\n break\n }\n }\n }\n // this word not found? no need to check any other words, the item cannot match\n if (!word_found) break\n }\n item.found = word_found\n }\n },\n // Removed search.item() and search.values()\n reset: function () {\n list.reset.search()\n list.searched = false\n },\n }\n\n var searchMethod = function (str) {\n list.trigger('searchStart')\n\n prepare.resetList()\n prepare.setSearchString(str)\n prepare.setOptions(arguments) // str, cols|searchFunction, searchFunction\n prepare.setColumns()\n\n if (searchString === '') {\n search.reset()\n } else {\n list.searched = true\n if (customSearch) {\n customSearch(searchString, columns)\n } else {\n search.list()\n }\n }\n\n list.update()\n list.trigger('searchComplete')\n return list.visibleItems\n }\n\n list.handlers.searchStart = list.handlers.searchStart || []\n list.handlers.searchComplete = list.handlers.searchComplete || []\n\n list.utils.events.bind(\n list.utils.getByClass(list.listContainer, list.searchClass),\n 'keyup',\n list.utils.events.debounce(function (e) {\n var target = e.target || e.srcElement, // IE have srcElement\n alreadyCleared = target.value === '' && !list.searched\n if (!alreadyCleared) {\n // If oninput already have resetted the list, do nothing\n searchMethod(target.value)\n }\n }, list.searchDelay)\n )\n\n // Used to detect click on HTML5 clear button\n list.utils.events.bind(list.utils.getByClass(list.listContainer, list.searchClass), 'input', function (e) {\n var target = e.target || e.srcElement\n if (target.value === '') {\n searchMethod('')\n }\n })\n\n return searchMethod\n}\n","module.exports = function (list) {\n var buttons = {\n els: undefined,\n clear: function () {\n for (var i = 0, il = buttons.els.length; i < il; i++) {\n list.utils.classes(buttons.els[i]).remove('asc')\n list.utils.classes(buttons.els[i]).remove('desc')\n }\n },\n getOrder: function (btn) {\n var predefinedOrder = list.utils.getAttribute(btn, 'data-order')\n if (predefinedOrder == 'asc' || predefinedOrder == 'desc') {\n return predefinedOrder\n } else if (list.utils.classes(btn).has('desc')) {\n return 'asc'\n } else if (list.utils.classes(btn).has('asc')) {\n return 'desc'\n } else {\n return 'asc'\n }\n },\n getInSensitive: function (btn, options) {\n var insensitive = list.utils.getAttribute(btn, 'data-insensitive')\n if (insensitive === 'false') {\n options.insensitive = false\n } else {\n options.insensitive = true\n }\n },\n setOrder: function (options) {\n for (var i = 0, il = buttons.els.length; i < il; i++) {\n var btn = buttons.els[i]\n if (list.utils.getAttribute(btn, 'data-sort') !== options.valueName) {\n continue\n }\n var predefinedOrder = list.utils.getAttribute(btn, 'data-order')\n if (predefinedOrder == 'asc' || predefinedOrder == 'desc') {\n if (predefinedOrder == options.order) {\n list.utils.classes(btn).add(options.order)\n }\n } else {\n list.utils.classes(btn).add(options.order)\n }\n }\n },\n }\n\n var sort = function () {\n list.trigger('sortStart')\n var options = {}\n\n var target = arguments[0].currentTarget || arguments[0].srcElement || undefined\n\n if (target) {\n options.valueName = list.utils.getAttribute(target, 'data-sort')\n buttons.getInSensitive(target, options)\n options.order = buttons.getOrder(target)\n } else {\n options = arguments[1] || options\n options.valueName = arguments[0]\n options.order = options.order || 'asc'\n options.insensitive = typeof options.insensitive == 'undefined' ? true : options.insensitive\n }\n\n buttons.clear()\n buttons.setOrder(options)\n\n // caseInsensitive\n // alphabet\n var customSortFunction = options.sortFunction || list.sortFunction || null,\n multi = options.order === 'desc' ? -1 : 1,\n sortFunction\n\n if (customSortFunction) {\n sortFunction = function (itemA, itemB) {\n return customSortFunction(itemA, itemB, options) * multi\n }\n } else {\n sortFunction = function (itemA, itemB) {\n var sort = list.utils.naturalSort\n sort.alphabet = list.alphabet || options.alphabet || undefined\n if (!sort.alphabet && options.insensitive) {\n sort = list.utils.naturalSort.caseInsensitive\n }\n return sort(itemA.values()[options.valueName], itemB.values()[options.valueName]) * multi\n }\n }\n\n list.items.sort(sortFunction)\n list.update()\n list.trigger('sortComplete')\n }\n\n // Add handlers\n list.handlers.sortStart = list.handlers.sortStart || []\n list.handlers.sortComplete = list.handlers.sortComplete || []\n\n buttons.els = list.utils.getByClass(list.listContainer, list.sortClass)\n list.utils.events.bind(buttons.els, 'click', sort)\n list.on('searchStart', buttons.clear)\n list.on('filterStart', buttons.clear)\n\n return sort\n}\n","var Templater = function (list) {\n var createItem,\n templater = this\n\n var init = function () {\n var itemSource\n\n if (typeof list.item === 'function') {\n createItem = function (values) {\n var item = list.item(values)\n return getItemSource(item)\n }\n return\n }\n\n if (typeof list.item === 'string') {\n if (list.item.indexOf('<') === -1) {\n itemSource = document.getElementById(list.item)\n } else {\n itemSource = getItemSource(list.item)\n }\n } else {\n /* If item source does not exists, use the first item in list as\n source for new items */\n itemSource = getFirstListItem()\n }\n\n if (!itemSource) {\n throw new Error(\"The list needs to have at least one item on init otherwise you'll have to add a template.\")\n }\n\n itemSource = createCleanTemplateItem(itemSource, list.valueNames)\n\n createItem = function () {\n return itemSource.cloneNode(true)\n }\n }\n\n var createCleanTemplateItem = function (templateNode, valueNames) {\n var el = templateNode.cloneNode(true)\n el.removeAttribute('id')\n\n for (var i = 0, il = valueNames.length; i < il; i++) {\n var elm = undefined,\n valueName = valueNames[i]\n if (valueName.data) {\n for (var j = 0, jl = valueName.data.length; j < jl; j++) {\n el.setAttribute('data-' + valueName.data[j], '')\n }\n } else if (valueName.attr && valueName.name) {\n elm = list.utils.getByClass(el, valueName.name, true)\n if (elm) {\n elm.setAttribute(valueName.attr, '')\n }\n } else {\n elm = list.utils.getByClass(el, valueName, true)\n if (elm) {\n elm.innerHTML = ''\n }\n }\n }\n return el\n }\n\n var getFirstListItem = function () {\n var nodes = list.list.childNodes\n\n for (var i = 0, il = nodes.length; i < il; i++) {\n // Only textnodes have a data attribute\n if (nodes[i].data === undefined) {\n return nodes[i].cloneNode(true)\n }\n }\n return undefined\n }\n\n var getItemSource = function (itemHTML) {\n if (typeof itemHTML !== 'string') return undefined\n if (/]/g.exec(itemHTML)) {\n var tbody = document.createElement('tbody')\n tbody.innerHTML = itemHTML\n return tbody.firstElementChild\n } else if (itemHTML.indexOf('<') !== -1) {\n var div = document.createElement('div')\n div.innerHTML = itemHTML\n return div.firstElementChild\n }\n return undefined\n }\n\n var getValueName = function (name) {\n for (var i = 0, il = list.valueNames.length; i < il; i++) {\n var valueName = list.valueNames[i]\n if (valueName.data) {\n var data = valueName.data\n for (var j = 0, jl = data.length; j < jl; j++) {\n if (data[j] === name) {\n return { data: name }\n }\n }\n } else if (valueName.attr && valueName.name && valueName.name == name) {\n return valueName\n } else if (valueName === name) {\n return name\n }\n }\n }\n\n var setValue = function (item, name, value) {\n var elm = undefined,\n valueName = getValueName(name)\n if (!valueName) return\n if (valueName.data) {\n item.elm.setAttribute('data-' + valueName.data, value)\n } else if (valueName.attr && valueName.name) {\n elm = list.utils.getByClass(item.elm, valueName.name, true)\n if (elm) {\n elm.setAttribute(valueName.attr, value)\n }\n } else {\n elm = list.utils.getByClass(item.elm, valueName, true)\n if (elm) {\n elm.innerHTML = value\n }\n }\n }\n\n this.get = function (item, valueNames) {\n templater.create(item)\n var values = {}\n for (var i = 0, il = valueNames.length; i < il; i++) {\n var elm = undefined,\n valueName = valueNames[i]\n if (valueName.data) {\n for (var j = 0, jl = valueName.data.length; j < jl; j++) {\n values[valueName.data[j]] = list.utils.getAttribute(item.elm, 'data-' + valueName.data[j])\n }\n } else if (valueName.attr && valueName.name) {\n elm = list.utils.getByClass(item.elm, valueName.name, true)\n values[valueName.name] = elm ? list.utils.getAttribute(elm, valueName.attr) : ''\n } else {\n elm = list.utils.getByClass(item.elm, valueName, true)\n values[valueName] = elm ? elm.innerHTML : ''\n }\n }\n return values\n }\n\n this.set = function (item, values) {\n if (!templater.create(item)) {\n for (var v in values) {\n if (values.hasOwnProperty(v)) {\n setValue(item, v, values[v])\n }\n }\n }\n }\n\n this.create = function (item) {\n if (item.elm !== undefined) {\n return false\n }\n item.elm = createItem(item.values())\n templater.set(item, item.values())\n return true\n }\n this.remove = function (item) {\n if (item.elm.parentNode === list.list) {\n list.list.removeChild(item.elm)\n }\n }\n this.show = function (item) {\n templater.create(item)\n list.list.appendChild(item.elm)\n }\n this.hide = function (item) {\n if (item.elm !== undefined && item.elm.parentNode === list.list) {\n list.list.removeChild(item.elm)\n }\n }\n this.clear = function () {\n /* .innerHTML = ''; fucks up IE */\n if (list.list.hasChildNodes()) {\n while (list.list.childNodes.length >= 1) {\n list.list.removeChild(list.list.firstChild)\n }\n }\n }\n\n init()\n}\n\nmodule.exports = function (list) {\n return new Templater(list)\n}\n","/**\n * Module dependencies.\n */\n\nvar index = require('./index-of')\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function (el) {\n return new ClassList(el)\n}\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required')\n }\n this.el = el\n this.list = el.classList\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function (name) {\n // classList\n if (this.list) {\n this.list.add(name)\n return this\n }\n\n // fallback\n var arr = this.array()\n var i = index(arr, name)\n if (!~i) arr.push(name)\n this.el.className = arr.join(' ')\n return this\n}\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function (name) {\n // classList\n if (this.list) {\n this.list.remove(name)\n return this\n }\n\n // fallback\n var arr = this.array()\n var i = index(arr, name)\n if (~i) arr.splice(i, 1)\n this.el.className = arr.join(' ')\n return this\n}\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function (name, force) {\n // classList\n if (this.list) {\n if ('undefined' !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name) // toggle again to correct\n }\n } else {\n this.list.toggle(name)\n }\n return this\n }\n\n // fallback\n if ('undefined' !== typeof force) {\n if (!force) {\n this.remove(name)\n } else {\n this.add(name)\n }\n } else {\n if (this.has(name)) {\n this.remove(name)\n } else {\n this.add(name)\n }\n }\n\n return this\n}\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function () {\n var className = this.el.getAttribute('class') || ''\n var str = className.replace(/^\\s+|\\s+$/g, '')\n var arr = str.split(re)\n if ('' === arr[0]) arr.shift()\n return arr\n}\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has = ClassList.prototype.contains = function (name) {\n return this.list ? this.list.contains(name) : !!~index(this.array(), name)\n}\n","var bind = window.addEventListener ? 'addEventListener' : 'attachEvent',\n unbind = window.removeEventListener ? 'removeEventListener' : 'detachEvent',\n prefix = bind !== 'addEventListener' ? 'on' : '',\n toArray = require('./to-array')\n\n/**\n * Bind `el` event `type` to `fn`.\n *\n * @param {Element} el, NodeList, HTMLCollection or Array\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @api public\n */\n\nexports.bind = function (el, type, fn, capture) {\n el = toArray(el)\n for (var i = 0, il = el.length; i < il; i++) {\n el[i][bind](prefix + type, fn, capture || false)\n }\n}\n\n/**\n * Unbind `el` event `type`'s callback `fn`.\n *\n * @param {Element} el, NodeList, HTMLCollection or Array\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @api public\n */\n\nexports.unbind = function (el, type, fn, capture) {\n el = toArray(el)\n for (var i = 0, il = el.length; i < il; i++) {\n el[i][unbind](prefix + type, fn, capture || false)\n }\n}\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * `wait` milliseconds. If `immediate` is true, trigger the function on the\n * leading edge, instead of the trailing.\n *\n * @param {Function} fn\n * @param {Integer} wait\n * @param {Boolean} immediate\n * @api public\n */\n\nexports.debounce = function (fn, wait, immediate) {\n var timeout\n return wait\n ? function () {\n var context = this,\n args = arguments\n var later = function () {\n timeout = null\n if (!immediate) fn.apply(context, args)\n }\n var callNow = immediate && !timeout\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n if (callNow) fn.apply(context, args)\n }\n : fn\n}\n","/*\n * Source: https://github.com/segmentio/extend\n */\n\nmodule.exports = function extend(object) {\n // Takes an unlimited number of extenders.\n var args = Array.prototype.slice.call(arguments, 1)\n\n // For each extender, copy their properties on our object.\n for (var i = 0, source; (source = args[i]); i++) {\n if (!source) continue\n for (var property in source) {\n object[property] = source[property]\n }\n }\n\n return object\n}\n","module.exports = function (text, pattern, options) {\n // Aproximately where in the text is the pattern expected to be found?\n var Match_Location = options.location || 0\n\n //Determines how close the match must be to the fuzzy location (specified above). An exact letter match which is 'distance' characters away from the fuzzy location would score as a complete mismatch. A distance of '0' requires the match be at the exact location specified, a threshold of '1000' would require a perfect match to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n var Match_Distance = options.distance || 100\n\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match (of both letters and location), a threshold of '1.0' would match anything.\n var Match_Threshold = options.threshold || 0.4\n\n if (pattern === text) return true // Exact match\n if (pattern.length > 32) return false // This algorithm cannot be used\n\n // Set starting location at beginning text and initialise the alphabet.\n var loc = Match_Location,\n s = (function () {\n var q = {},\n i\n\n for (i = 0; i < pattern.length; i++) {\n q[pattern.charAt(i)] = 0\n }\n\n for (i = 0; i < pattern.length; i++) {\n q[pattern.charAt(i)] |= 1 << (pattern.length - i - 1)\n }\n\n return q\n })()\n\n // Compute and return the score for a match with e errors and x location.\n // Accesses loc and pattern through being a closure.\n\n function match_bitapScore_(e, x) {\n var accuracy = e / pattern.length,\n proximity = Math.abs(loc - x)\n\n if (!Match_Distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n return accuracy + proximity / Match_Distance\n }\n\n var score_threshold = Match_Threshold, // Highest score beyond which we give up.\n best_loc = text.indexOf(pattern, loc) // Is there a nearby exact match? (speedup)\n\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold)\n // What about in the other direction? (speedup)\n best_loc = text.lastIndexOf(pattern, loc + pattern.length)\n\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold)\n }\n }\n\n // Initialise the bit arrays.\n var matchmask = 1 << (pattern.length - 1)\n best_loc = -1\n\n var bin_min, bin_mid\n var bin_max = pattern.length + text.length\n var last_rd\n for (var d = 0; d < pattern.length; d++) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from 'loc' we can stray at this\n // error level.\n bin_min = 0\n bin_mid = bin_max\n while (bin_min < bin_mid) {\n if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) {\n bin_min = bin_mid\n } else {\n bin_max = bin_mid\n }\n bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min)\n }\n // Use the result from this iteration as the maximum for the next.\n bin_max = bin_mid\n var start = Math.max(1, loc - bin_mid + 1)\n var finish = Math.min(loc + bin_mid, text.length) + pattern.length\n\n var rd = Array(finish + 2)\n rd[finish + 1] = (1 << d) - 1\n for (var j = finish; j >= start; j--) {\n // The alphabet (s) is a sparse hash, so the following line generates\n // warnings.\n var charMatch = s[text.charAt(j - 1)]\n if (d === 0) {\n // First pass: exact match.\n rd[j] = ((rd[j + 1] << 1) | 1) & charMatch\n } else {\n // Subsequent passes: fuzzy match.\n rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) | (((last_rd[j + 1] | last_rd[j]) << 1) | 1) | last_rd[j + 1]\n }\n if (rd[j] & matchmask) {\n var score = match_bitapScore_(d, j - 1)\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (score <= score_threshold) {\n // Told you so.\n score_threshold = score\n best_loc = j - 1\n if (best_loc > loc) {\n // When passing loc, don't exceed our current distance from loc.\n start = Math.max(1, 2 * loc - best_loc)\n } else {\n // Already passed loc, downhill from here on in.\n break\n }\n }\n }\n }\n // No hope for a (better) match at greater error levels.\n if (match_bitapScore_(d + 1, loc) > score_threshold) {\n break\n }\n last_rd = rd\n }\n\n return best_loc < 0 ? false : true\n}\n","/**\n * A cross-browser implementation of getAttribute.\n * Source found here: http://stackoverflow.com/a/3755343/361337 written by Vivin Paliath\n *\n * Return the value for `attr` at `element`.\n *\n * @param {Element} el\n * @param {String} attr\n * @api public\n */\n\nmodule.exports = function (el, attr) {\n var result = (el.getAttribute && el.getAttribute(attr)) || null\n if (!result) {\n var attrs = el.attributes\n var length = attrs.length\n for (var i = 0; i < length; i++) {\n if (attrs[i] !== undefined) {\n if (attrs[i].nodeName === attr) {\n result = attrs[i].nodeValue\n }\n }\n }\n }\n return result\n}\n","/**\n * A cross-browser implementation of getElementsByClass.\n * Heavily based on Dustin Diaz's function: http://dustindiaz.com/getelementsbyclass.\n *\n * Find all elements with class `className` inside `container`.\n * Use `single = true` to increase performance in older browsers\n * when only one element is needed.\n *\n * @param {String} className\n * @param {Element} container\n * @param {Boolean} single\n * @api public\n */\n\nvar getElementsByClassName = function (container, className, single) {\n if (single) {\n return container.getElementsByClassName(className)[0]\n } else {\n return container.getElementsByClassName(className)\n }\n}\n\nvar querySelector = function (container, className, single) {\n className = '.' + className\n if (single) {\n return container.querySelector(className)\n } else {\n return container.querySelectorAll(className)\n }\n}\n\nvar polyfill = function (container, className, single) {\n var classElements = [],\n tag = '*'\n\n var els = container.getElementsByTagName(tag)\n var elsLen = els.length\n var pattern = new RegExp('(^|\\\\s)' + className + '(\\\\s|$)')\n for (var i = 0, j = 0; i < elsLen; i++) {\n if (pattern.test(els[i].className)) {\n if (single) {\n return els[i]\n } else {\n classElements[j] = els[i]\n j++\n }\n }\n }\n return classElements\n}\n\nmodule.exports = (function () {\n return function (container, className, single, options) {\n options = options || {}\n if ((options.test && options.getElementsByClassName) || (!options.test && document.getElementsByClassName)) {\n return getElementsByClassName(container, className, single)\n } else if ((options.test && options.querySelector) || (!options.test && document.querySelector)) {\n return querySelector(container, className, single)\n } else {\n return polyfill(container, className, single)\n }\n }\n})()\n","var indexOf = [].indexOf\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0, il = arr.length; i < il; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1\n}\n","/**\n * Source: https://github.com/timoxley/to-array\n *\n * Convert an array-like object into an `Array`.\n * If `collection` is already an `Array`, then will return a clone of `collection`.\n *\n * @param {Array | Mixed} collection An `Array` or array-like object to convert e.g. `arguments` or `NodeList`\n * @return {Array} Naive conversion of `collection` to a new `Array`.\n * @api public\n */\n\nmodule.exports = function toArray(collection) {\n if (typeof collection === 'undefined') return []\n if (collection === null) return [null]\n if (collection === window) return [window]\n if (typeof collection === 'string') return [collection]\n if (isArray(collection)) return collection\n if (typeof collection.length != 'number') return [collection]\n if (typeof collection === 'function' && collection instanceof Function) return [collection]\n\n var arr = [];\n for (var i = 0, il = collection.length; i < il; i++) {\n if (Object.prototype.hasOwnProperty.call(collection, i) || i in collection) {\n arr.push(collection[i])\n }\n }\n if (!arr.length) return []\n return arr\n}\n\nfunction isArray(arr) {\n return Object.prototype.toString.call(arr) === '[object Array]'\n}\n","module.exports = function (s) {\n s = s === undefined ? '' : s\n s = s === null ? '' : s\n s = s.toString()\n return s\n}\n","\"object\"==typeof navigator&&function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Plyr\",t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).Plyr=t()}(this,(function(){\"use strict\";function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function t(e,t){for(var i=0;it){var i=function(e){var t=\"\".concat(e).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var T=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")})(this,e),b(t)?this.element=t:p(t)&&(this.element=document.querySelector(t)),b(this.element)&&v(this.element.rangeTouch)&&(this.config=n({},a,{},i),this.init())}return function(e,i,s){i&&t(e.prototype,i),s&&t(e,s)}(e,[{key:\"init\",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect=\"none\",this.element.style.webKitUserSelect=\"none\",this.element.style.touchAction=\"manipulation\"),this.listeners(!0),this.element.rangeTouch=this)}},{key:\"destroy\",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect=\"\",this.element.style.webKitUserSelect=\"\",this.element.style.touchAction=\"\"),this.listeners(!1),this.element.rangeTouch=null)}},{key:\"listeners\",value:function(e){var t=this,i=e?\"addEventListener\":\"removeEventListener\";[\"touchstart\",\"touchmove\",\"touchend\"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:\"get\",value:function(t){if(!e.enabled||!y(t))return null;var i,s=t.target,n=t.changedTouches[0],a=parseFloat(s.getAttribute(\"min\"))||0,l=parseFloat(s.getAttribute(\"max\"))||100,o=parseFloat(s.getAttribute(\"step\"))||1,r=s.getBoundingClientRect(),c=100/r.width*(this.config.thumbWidth/2)/100;return 0>(i=100/r.width*(n.clientX-r.left))?i=0:100i?i-=(100-2*i)*c:50null!=e?e.constructor:null,C=(e,t)=>Boolean(e&&t&&e instanceof t),A=e=>null==e,S=e=>k(e)===Object,E=e=>k(e)===String,P=e=>k(e)===Function,M=e=>Array.isArray(e),N=e=>C(e,NodeList),x=e=>A(e)||(E(e)||M(e)||N(e))&&!e.length||S(e)&&!Object.keys(e).length;var I=A,L=S,$=e=>k(e)===Number&&!Number.isNaN(e),_=E,O=e=>k(e)===Boolean,j=P,D=M,q=N,H=e=>null!==e&&\"object\"==typeof e&&1===e.nodeType&&\"object\"==typeof e.style&&\"object\"==typeof e.ownerDocument,R=e=>C(e,Event),F=e=>C(e,KeyboardEvent),V=e=>C(e,TextTrack)||!A(e)&&E(e.kind),B=e=>C(e,Promise)&&P(e.then),U=e=>{if(C(e,window.URL))return!0;if(!E(e))return!1;let t=e;e.startsWith(\"http://\")&&e.startsWith(\"https://\")||(t=`http://${e}`);try{return!x(new URL(t).hostname)}catch(e){return!1}},W=x;const z=(()=>{const e=document.createElement(\"span\"),t={WebkitTransition:\"webkitTransitionEnd\",MozTransition:\"transitionend\",OTransition:\"oTransitionEnd otransitionend\",transition:\"transitionend\"},i=Object.keys(t).find((t=>void 0!==e.style[t]));return!!_(i)&&t[i]})();function K(e,t){setTimeout((()=>{try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}}),t)}const Y={isIE:Boolean(window.document.documentMode),isEdge:window.navigator.userAgent.includes(\"Edge\"),isWebkit:\"WebkitAppearance\"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:\"MacIntel\"===navigator.platform&&navigator.maxTouchPoints>1||/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function Q(e,t){return t.split(\".\").reduce(((e,t)=>e&&e[t]),e)}function X(e={},...t){if(!t.length)return e;const i=t.shift();return L(i)?(Object.keys(i).forEach((t=>{L(i[t])?(Object.keys(e).includes(t)||Object.assign(e,{[t]:{}}),X(e[t],i[t])):Object.assign(e,{[t]:i[t]})})),X(e,...t)):e}function J(e,t){const i=e.length?e:[e];Array.from(i).reverse().forEach(((e,i)=>{const s=i>0?t.cloneNode(!0):t,n=e.parentNode,a=e.nextSibling;s.appendChild(e),a?n.insertBefore(s,a):n.appendChild(s)}))}function G(e,t){H(e)&&!W(t)&&Object.entries(t).filter((([,e])=>!I(e))).forEach((([t,i])=>e.setAttribute(t,i)))}function Z(e,t,i){const s=document.createElement(e);return L(t)&&G(s,t),_(i)&&(s.innerText=i),s}function ee(e,t,i,s){H(t)&&t.appendChild(Z(e,i,s))}function te(e){q(e)||D(e)?Array.from(e).forEach(te):H(e)&&H(e.parentNode)&&e.parentNode.removeChild(e)}function ie(e){if(!H(e))return;let{length:t}=e.childNodes;for(;t>0;)e.removeChild(e.lastChild),t-=1}function se(e,t){return H(t)&&H(t.parentNode)&&H(e)?(t.parentNode.replaceChild(e,t),e):null}function ne(e,t){if(!_(e)||W(e))return{};const i={},s=X({},t);return e.split(\",\").forEach((e=>{const t=e.trim(),n=t.replace(\".\",\"\"),a=t.replace(/[[\\]]/g,\"\").split(\"=\"),[l]=a,o=a.length>1?a[1].replace(/[\"']/g,\"\"):\"\";switch(t.charAt(0)){case\".\":_(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case\"#\":i.id=t.replace(\"#\",\"\");break;case\"[\":i[l]=o}})),X(s,i)}function ae(e,t){if(!H(e))return;let i=t;O(i)||(i=!e.hidden),e.hidden=i}function le(e,t,i){if(q(e))return Array.from(e).map((e=>le(e,t,i)));if(H(e)){let s=\"toggle\";return void 0!==i&&(s=i?\"add\":\"remove\"),e.classList[s](t),e.classList.contains(t)}return!1}function oe(e,t){return H(e)&&e.classList.contains(t)}function re(e,t){const{prototype:i}=Element;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function ce(e){return this.elements.container.querySelectorAll(e)}function he(e){return this.elements.container.querySelector(e)}function ue(e=null,t=!1){H(e)&&(e.focus({preventScroll:!0}),t&&le(e,this.config.classNames.tabFocus))}const de={\"audio/ogg\":\"vorbis\",\"audio/wav\":\"1\",\"video/webm\":\"vp8, vorbis\",\"video/mp4\":\"avc1.42E01E, mp4a.40.2\",\"video/ogg\":\"theora\"},me={audio:\"canPlayType\"in document.createElement(\"audio\"),video:\"canPlayType\"in document.createElement(\"video\"),check(e,t,i){const s=Y.isIPhone&&i&&me.playsinline,n=me[e]||\"html5\"!==t;return{api:n,ui:n&&me.rangeInput&&(\"video\"!==e||!Y.isIPhone||s)}},pip:!(Y.isIPhone||!j(Z(\"video\").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||Z(\"video\").disablePictureInPicture)),airplay:j(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:\"playsInline\"in document.createElement(\"video\"),mime(e){if(W(e))return!1;const[t]=e.split(\"/\");let i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(de).includes(i)&&(i+=`; codecs=\"${de[e]}\"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,\"\"))}catch(e){return!1}},textTracks:\"textTracks\"in document.createElement(\"video\"),rangeInput:(()=>{const e=document.createElement(\"input\");return e.type=\"range\",\"range\"===e.type})(),touch:\"ontouchstart\"in document.documentElement,transitions:!1!==z,reducedMotion:\"matchMedia\"in window&&window.matchMedia(\"(prefers-reduced-motion)\").matches},pe=(()=>{let e=!1;try{const t=Object.defineProperty({},\"passive\",{get:()=>(e=!0,null)});window.addEventListener(\"test\",null,t),window.removeEventListener(\"test\",null,t)}catch(e){}return e})();function ge(e,t,i,s=!1,n=!0,a=!1){if(!e||!(\"addEventListener\"in e)||W(t)||!j(i))return;const l=t.split(\" \");let o=a;pe&&(o={passive:n,capture:a}),l.forEach((t=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:e,type:t,callback:i,options:o}),e[s?\"addEventListener\":\"removeEventListener\"](t,i,o)}))}function fe(e,t=\"\",i,s=!0,n=!1){ge.call(this,e,t,i,!0,s,n)}function be(e,t=\"\",i,s=!0,n=!1){ge.call(this,e,t,i,!1,s,n)}function ye(e,t=\"\",i,s=!0,n=!1){const a=(...l)=>{be(e,t,a,s,n),i.apply(this,l)};ge.call(this,e,t,a,!0,s,n)}function ve(e,t=\"\",i=!1,s={}){if(!H(e)||W(t))return;const n=new CustomEvent(t,{bubbles:i,detail:{...s,plyr:this}});e.dispatchEvent(n)}function we(){this&&this.eventListeners&&(this.eventListeners.forEach((e=>{const{element:t,type:i,callback:s,options:n}=e;t.removeEventListener(i,s,n)})),this.eventListeners=[])}function Te(){return new Promise((e=>this.ready?setTimeout(e,0):fe.call(this,this.elements.container,\"ready\",e))).then((()=>{}))}function ke(e){B(e)&&e.then(null,(()=>{}))}function Ce(e){return D(e)?e.filter(((t,i)=>e.indexOf(t)===i)):e}function Ae(e,t){return D(e)&&e.length?e.reduce(((e,i)=>Math.abs(i-t)({...e,[t/i]:[t,i]})),{});function Pe(e){if(!(D(e)||_(e)&&e.includes(\":\")))return!1;return(D(e)?e:e.split(\":\")).map(Number).every($)}function Me(e){if(!D(e)||!e.every($))return null;const[t,i]=e,s=(e,t)=>0===t?e:s(t,e%t),n=s(t,i);return[t/n,i/n]}function Ne(e){const t=e=>Pe(e)?e.split(\":\").map(Number):null;let i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!W(this.embed)&&D(this.embed.ratio)&&({ratio:i}=this.embed),null===i&&this.isHTML5){const{videoWidth:e,videoHeight:t}=this.media;i=[e,t]}return Me(i)}function xe(e){if(!this.isVideo)return{};const{wrapper:t}=this.elements,i=Ne.call(this,e);if(!D(i))return{};const[s,n]=Me(i),a=100/s*n;if(Se(`aspect-ratio: ${s}/${n}`)?t.style.aspectRatio=`${s}/${n}`:t.style.paddingBottom=`${a}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const e=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),i=(e-a)/(e/50);this.fullscreen.active?t.style.paddingBottom=null:this.media.style.transform=`translateY(-${i}%)`}else this.isHTML5&&t.classList.add(this.config.classNames.videoFixedRatio);return{padding:a,ratio:i}}function Ie(e,t,i=.05){const s=e/t,n=Ae(Object.keys(Ee),s);return Math.abs(n-s)<=i?Ee[n]:[e,t]}const Le={getSources(){if(!this.isHTML5)return[];return Array.from(this.media.querySelectorAll(\"source\")).filter((e=>{const t=e.getAttribute(\"type\");return!!W(t)||me.mime.call(this,t)}))},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:Le.getSources.call(this).map((e=>Number(e.getAttribute(\"size\")))).filter(Boolean)},setup(){if(!this.isHTML5)return;const e=this;e.options.speed=e.config.speed.options,W(this.config.ratio)||xe.call(e),Object.defineProperty(e.media,\"quality\",{get(){const t=Le.getSources.call(e).find((t=>t.getAttribute(\"src\")===e.source));return t&&Number(t.getAttribute(\"size\"))},set(t){if(e.quality!==t){if(e.config.quality.forced&&j(e.config.quality.onChange))e.config.quality.onChange(t);else{const i=Le.getSources.call(e).find((e=>Number(e.getAttribute(\"size\"))===t));if(!i)return;const{currentTime:s,paused:n,preload:a,readyState:l,playbackRate:o}=e.media;e.media.src=i.getAttribute(\"src\"),(\"none\"!==a||l)&&(e.once(\"loadedmetadata\",(()=>{e.speed=o,e.currentTime=s,n||ke(e.play())})),e.media.load())}ve.call(e,e.media,\"qualitychange\",!1,{quality:t})}}})},cancelRequests(){this.isHTML5&&(te(Le.getSources.call(this)),this.media.setAttribute(\"src\",this.config.blankVideo),this.media.load(),this.debug.log(\"Cancelled network requests\"))}};function $e(e,...t){return W(e)?e:e.toString().replace(/{(\\d+)}/g,((e,i)=>t[i].toString()))}const _e=(e=\"\",t=\"\",i=\"\")=>e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g,\"\\\\$1\"),\"g\"),i.toString()),Oe=(e=\"\")=>e.toString().replace(/\\w\\S*/g,(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()));function je(e=\"\"){let t=e.toString();return t=function(e=\"\"){let t=e.toString();return t=_e(t,\"-\",\" \"),t=_e(t,\"_\",\" \"),t=Oe(t),_e(t,\" \",\"\")}(t),t.charAt(0).toLowerCase()+t.slice(1)}function De(e){const t=document.createElement(\"div\");return t.appendChild(e),t.innerHTML}const qe={pip:\"PIP\",airplay:\"AirPlay\",html5:\"HTML5\",vimeo:\"Vimeo\",youtube:\"YouTube\"},He={get(e=\"\",t={}){if(W(e)||W(t))return\"\";let i=Q(t.i18n,e);if(W(i))return Object.keys(qe).includes(e)?qe[e]:\"\";const s={\"{seektime}\":t.seekTime,\"{title}\":t.title};return Object.entries(s).forEach((([e,t])=>{i=_e(i,e,t)})),i}};class Re{constructor(t){e(this,\"get\",(e=>{if(!Re.supported||!this.enabled)return null;const t=window.localStorage.getItem(this.key);if(W(t))return null;const i=JSON.parse(t);return _(e)&&e.length?i[e]:i})),e(this,\"set\",(e=>{if(!Re.supported||!this.enabled)return;if(!L(e))return;let t=this.get();W(t)&&(t={}),X(t,e);try{window.localStorage.setItem(this.key,JSON.stringify(t))}catch(e){}})),this.enabled=t.config.storage.enabled,this.key=t.config.storage.key}static get supported(){try{if(!(\"localStorage\"in window))return!1;const e=\"___test\";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}}}function Fe(e,t=\"text\"){return new Promise(((i,s)=>{try{const s=new XMLHttpRequest;if(!(\"withCredentials\"in s))return;s.addEventListener(\"load\",(()=>{if(\"text\"===t)try{i(JSON.parse(s.responseText))}catch(e){i(s.responseText)}else i(s.response)})),s.addEventListener(\"error\",(()=>{throw new Error(s.status)})),s.open(\"GET\",e,!0),s.responseType=t,s.send()}catch(e){s(e)}}))}function Ve(e,t){if(!_(e))return;const i=_(t);let s=!1;const n=()=>null!==document.getElementById(t),a=(e,t)=>{e.innerHTML=t,i&&n()||document.body.insertAdjacentElement(\"afterbegin\",e)};if(!i||!n()){const n=Re.supported,l=document.createElement(\"div\");if(l.setAttribute(\"hidden\",\"\"),i&&l.setAttribute(\"id\",t),n){const e=window.localStorage.getItem(`cache-${t}`);if(s=null!==e,s){const t=JSON.parse(e);a(l,t.content)}}Fe(e).then((e=>{if(!W(e)){if(n)try{window.localStorage.setItem(`cache-${t}`,JSON.stringify({content:e}))}catch(e){}a(l,e)}})).catch((()=>{}))}}const Be=e=>Math.trunc(e/60/60%60,10);function Ue(e=0,t=!1,i=!1){if(!$(e))return Ue(void 0,t,i);const s=e=>`0${e}`.slice(-2);let n=Be(e);const a=(l=e,Math.trunc(l/60%60,10));var l;const o=(e=>Math.trunc(e%60,10))(e);return n=t||n>0?`${n}:`:\"\",`${i&&e>0?\"-\":\"\"}${n}${s(a)}:${s(o)}`}const We={getIconUrl(){const e=new URL(this.config.iconUrl,window.location),t=window.location.host?window.location.host:window.top.location.host,i=e.host!==t||Y.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=he.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:ce.call(this,this.config.selectors.buttons.play),pause:he.call(this,this.config.selectors.buttons.pause),restart:he.call(this,this.config.selectors.buttons.restart),rewind:he.call(this,this.config.selectors.buttons.rewind),fastForward:he.call(this,this.config.selectors.buttons.fastForward),mute:he.call(this,this.config.selectors.buttons.mute),pip:he.call(this,this.config.selectors.buttons.pip),airplay:he.call(this,this.config.selectors.buttons.airplay),settings:he.call(this,this.config.selectors.buttons.settings),captions:he.call(this,this.config.selectors.buttons.captions),fullscreen:he.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=he.call(this,this.config.selectors.progress),this.elements.inputs={seek:he.call(this,this.config.selectors.inputs.seek),volume:he.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:he.call(this,this.config.selectors.display.buffer),currentTime:he.call(this,this.config.selectors.display.currentTime),duration:he.call(this,this.config.selectors.display.duration)},H(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(e){return this.debug.warn(\"It looks like there is a problem with your custom controls HTML\",e),this.toggleNativeControls(!0),!1}},createIcon(e,t){const i=\"http://www.w3.org/2000/svg\",s=We.getIconUrl.call(this),n=`${s.cors?\"\":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,\"svg\");G(a,X(t,{\"aria-hidden\":\"true\",focusable:\"false\"}));const l=document.createElementNS(i,\"use\"),o=`${n}-${e}`;return\"href\"in l&&l.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",o),l.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",o),a.appendChild(l),a},createLabel(e,t={}){const i=He.get(e,this.config);return Z(\"span\",{...t,class:[t.class,this.config.classNames.hidden].filter(Boolean).join(\" \")},i)},createBadge(e){if(W(e))return null;const t=Z(\"span\",{class:this.config.classNames.menu.value});return t.appendChild(Z(\"span\",{class:this.config.classNames.menu.badge},e)),t},createButton(e,t){const i=X({},t);let s=je(e);const n={element:\"button\",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch([\"element\",\"icon\",\"label\"].forEach((e=>{Object.keys(i).includes(e)&&(n[e]=i[e],delete i[e])})),\"button\"!==n.element||Object.keys(i).includes(\"type\")||(i.type=\"button\"),Object.keys(i).includes(\"class\")?i.class.split(\" \").some((e=>e===this.config.classNames.control))||X(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,e){case\"play\":n.toggle=!0,n.label=\"play\",n.labelPressed=\"pause\",n.icon=\"play\",n.iconPressed=\"pause\";break;case\"mute\":n.toggle=!0,n.label=\"mute\",n.labelPressed=\"unmute\",n.icon=\"volume\",n.iconPressed=\"muted\";break;case\"captions\":n.toggle=!0,n.label=\"enableCaptions\",n.labelPressed=\"disableCaptions\",n.icon=\"captions-off\",n.iconPressed=\"captions-on\";break;case\"fullscreen\":n.toggle=!0,n.label=\"enterFullscreen\",n.labelPressed=\"exitFullscreen\",n.icon=\"enter-fullscreen\",n.iconPressed=\"exit-fullscreen\";break;case\"play-large\":i.class+=` ${this.config.classNames.control}--overlaid`,s=\"play\",n.label=\"play\",n.icon=\"play\";break;default:W(n.label)&&(n.label=s),W(n.icon)&&(n.icon=e)}const a=Z(n.element);return n.toggle?(a.appendChild(We.createIcon.call(this,n.iconPressed,{class:\"icon--pressed\"})),a.appendChild(We.createIcon.call(this,n.icon,{class:\"icon--not-pressed\"})),a.appendChild(We.createLabel.call(this,n.labelPressed,{class:\"label--pressed\"})),a.appendChild(We.createLabel.call(this,n.label,{class:\"label--not-pressed\"}))):(a.appendChild(We.createIcon.call(this,n.icon)),a.appendChild(We.createLabel.call(this,n.label))),X(i,ne(this.config.selectors.buttons[s],i)),G(a,i),\"play\"===s?(D(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(e,t){const i=Z(\"input\",X(ne(this.config.selectors.inputs[e]),{type:\"range\",min:0,max:100,step:.01,value:0,autocomplete:\"off\",role:\"slider\",\"aria-label\":He.get(e,this.config),\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-valuenow\":0},t));return this.elements.inputs[e]=i,We.updateRangeFill.call(this,i),T.setup(i),i},createProgress(e,t){const i=Z(\"progress\",X(ne(this.config.selectors.display[e]),{min:0,max:100,value:0,role:\"progressbar\",\"aria-hidden\":!0},t));if(\"volume\"!==e){i.appendChild(Z(\"span\",null,\"0\"));const t={played:\"played\",buffer:\"buffered\"}[e],s=t?He.get(t,this.config):\"\";i.innerText=`% ${s.toLowerCase()}`}return this.elements.display[e]=i,i},createTime(e,t){const i=ne(this.config.selectors.display[e],t),s=Z(\"div\",X(i,{class:`${i.class?i.class:\"\"} ${this.config.classNames.display.time} `.trim(),\"aria-label\":He.get(e,this.config)}),\"00:00\");return this.elements.display[e]=s,s},bindMenuItemShortcuts(e,t){fe.call(this,e,\"keydown keyup\",(i=>{if(![\"Space\",\"ArrowUp\",\"ArrowDown\",\"ArrowRight\"].includes(i.key))return;if(i.preventDefault(),i.stopPropagation(),\"keydown\"===i.type)return;const s=re(e,'[role=\"menuitemradio\"]');if(!s&&[\"Space\",\"ArrowRight\"].includes(i.key))We.showMenuPanel.call(this,t,!0);else{let t;\"Space\"!==i.key&&(\"ArrowDown\"===i.key||s&&\"ArrowRight\"===i.key?(t=e.nextElementSibling,H(t)||(t=e.parentNode.firstElementChild)):(t=e.previousElementSibling,H(t)||(t=e.parentNode.lastElementChild)),ue.call(this,t,!0))}}),!1),fe.call(this,e,\"keyup\",(e=>{\"Return\"===e.key&&We.focusFirstMenuItem.call(this,null,!0)}))},createMenuItem({value:e,list:t,type:i,title:s,badge:n=null,checked:a=!1}){const l=ne(this.config.selectors.inputs[i]),o=Z(\"button\",X(l,{type:\"button\",role:\"menuitemradio\",class:`${this.config.classNames.control} ${l.class?l.class:\"\"}`.trim(),\"aria-checked\":a,value:e})),r=Z(\"span\");r.innerHTML=s,H(n)&&r.appendChild(n),o.appendChild(r),Object.defineProperty(o,\"checked\",{enumerable:!0,get:()=>\"true\"===o.getAttribute(\"aria-checked\"),set(e){e&&Array.from(o.parentNode.children).filter((e=>re(e,'[role=\"menuitemradio\"]'))).forEach((e=>e.setAttribute(\"aria-checked\",\"false\"))),o.setAttribute(\"aria-checked\",e?\"true\":\"false\")}}),this.listeners.bind(o,\"click keyup\",(t=>{if(!F(t)||\"Space\"===t.key){switch(t.preventDefault(),t.stopPropagation(),o.checked=!0,i){case\"language\":this.currentTrack=Number(e);break;case\"quality\":this.quality=e;break;case\"speed\":this.speed=parseFloat(e)}We.showMenuPanel.call(this,\"home\",F(t))}}),i,!1),We.bindMenuItemShortcuts.call(this,o,i),t.appendChild(o)},formatTime(e=0,t=!1){if(!$(e))return e;return Ue(e,Be(this.duration)>0,t)},updateTimeDisplay(e=null,t=0,i=!1){H(e)&&$(t)&&(e.innerText=We.formatTime(t,i))},updateVolume(){this.supported.ui&&(H(this.elements.inputs.volume)&&We.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),H(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange(e,t=0){H(e)&&(e.value=t,We.updateRangeFill.call(this,e))},updateProgress(e){if(!this.supported.ui||!R(e))return;let t=0;const i=(e,t)=>{const i=$(t)?t:0,s=H(e)?e:this.elements.display.buffer;if(H(s)){s.value=i;const e=s.getElementsByTagName(\"span\")[0];H(e)&&(e.childNodes[0].nodeValue=i)}};if(e)switch(e.type){case\"timeupdate\":case\"seeking\":case\"seeked\":s=this.currentTime,n=this.duration,t=0===s||0===n||Number.isNaN(s)||Number.isNaN(n)?0:(s/n*100).toFixed(2),\"timeupdate\"===e.type&&We.setRange.call(this,this.elements.inputs.seek,t);break;case\"playing\":case\"progress\":i(this.elements.display.buffer,100*this.buffered)}var s,n},updateRangeFill(e){const t=R(e)?e.target:e;if(H(t)&&\"range\"===t.getAttribute(\"type\")){if(re(t,this.config.selectors.inputs.seek)){t.setAttribute(\"aria-valuenow\",this.currentTime);const e=We.formatTime(this.currentTime),i=We.formatTime(this.duration),s=He.get(\"seekLabel\",this.config);t.setAttribute(\"aria-valuetext\",s.replace(\"{currentTime}\",e).replace(\"{duration}\",i))}else if(re(t,this.config.selectors.inputs.volume)){const e=100*t.value;t.setAttribute(\"aria-valuenow\",e),t.setAttribute(\"aria-valuetext\",`${e.toFixed(1)}%`)}else t.setAttribute(\"aria-valuenow\",t.value);Y.isWebkit&&t.style.setProperty(\"--value\",t.value/t.max*100+\"%\")}},updateSeekTooltip(e){var t,i;if(!this.config.tooltips.seek||!H(this.elements.inputs.seek)||!H(this.elements.display.seekTooltip)||0===this.duration)return;const s=this.elements.display.seekTooltip,n=`${this.config.classNames.tooltip}--visible`,a=e=>le(s,n,e);if(this.touch)return void a(!1);let l=0;const o=this.elements.progress.getBoundingClientRect();if(R(e))l=100/o.width*(e.pageX-o.left);else{if(!oe(s,n))return;l=parseFloat(s.style.left,10)}l<0?l=0:l>100&&(l=100);const r=this.duration/100*l;s.innerText=We.formatTime(r);const c=null===(t=this.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(r)));c&&s.insertAdjacentHTML(\"afterbegin\",`${c.label}
    `),s.style.left=`${l}%`,R(e)&&[\"mouseenter\",\"mouseleave\"].includes(e.type)&&a(\"mouseenter\"===e.type)},timeUpdate(e){const t=!H(this.elements.display.duration)&&this.config.invertTime;We.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&\"timeupdate\"===e.type&&this.media.seeking||We.updateProgress.call(this,e)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return ae(this.elements.display.currentTime,!0),void ae(this.elements.progress,!0);H(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute(\"aria-valuemax\",this.duration);const e=H(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&We.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&We.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),this.config.markers.enabled&&We.setMarkers.call(this),We.updateSeekTooltip.call(this)},toggleMenuButton(e,t){ae(this.elements.settings.buttons[e],!t)},updateSetting(e,t,i){const s=this.elements.settings.panels[e];let n=null,a=t;if(\"captions\"===e)n=this.currentTrack;else{if(n=W(i)?this[e]:i,W(n)&&(n=this.config[e].default),!W(this.options[e])&&!this.options[e].includes(n))return void this.debug.warn(`Unsupported value of '${n}' for ${e}`);if(!this.config[e].options.includes(n))return void this.debug.warn(`Disabled value of '${n}' for ${e}`)}if(H(a)||(a=s&&s.querySelector('[role=\"menu\"]')),!H(a))return;this.elements.settings.buttons[e].querySelector(`.${this.config.classNames.menu.value}`).innerHTML=We.getLabel.call(this,e,n);const l=a&&a.querySelector(`[value=\"${n}\"]`);H(l)&&(l.checked=!0)},getLabel(e,t){switch(e){case\"speed\":return 1===t?He.get(\"normal\",this.config):`${t}×`;case\"quality\":if($(t)){const e=He.get(`qualityLabel.${t}`,this.config);return e.length?e:`${t}p`}return Oe(t);case\"captions\":return Ye.getLabel.call(this);default:return null}},setQualityMenu(e){if(!H(this.elements.settings.panels.quality))return;const t=\"quality\",i=this.elements.settings.panels.quality.querySelector('[role=\"menu\"]');D(e)&&(this.options.quality=Ce(e).filter((e=>this.config.quality.options.includes(e))));const s=!W(this.options.quality)&&this.options.quality.length>1;if(We.toggleMenuButton.call(this,t,s),ie(i),We.checkMenu.call(this),!s)return;const n=e=>{const t=He.get(`qualityBadge.${e}`,this.config);return t.length?We.createBadge.call(this,t):null};this.options.quality.sort(((e,t)=>{const i=this.config.quality.options;return i.indexOf(e)>i.indexOf(t)?1:-1})).forEach((e=>{We.createMenuItem.call(this,{value:e,list:i,type:t,title:We.getLabel.call(this,\"quality\",e),badge:n(e)})})),We.updateSetting.call(this,t,i)},setCaptionsMenu(){if(!H(this.elements.settings.panels.captions))return;const e=\"captions\",t=this.elements.settings.panels.captions.querySelector('[role=\"menu\"]'),i=Ye.getTracks.call(this),s=Boolean(i.length);if(We.toggleMenuButton.call(this,e,s),ie(t),We.checkMenu.call(this),!s)return;const n=i.map(((e,i)=>({value:i,checked:this.captions.toggled&&this.currentTrack===i,title:Ye.getLabel.call(this,e),badge:e.language&&We.createBadge.call(this,e.language.toUpperCase()),list:t,type:\"language\"})));n.unshift({value:-1,checked:!this.captions.toggled,title:He.get(\"disabled\",this.config),list:t,type:\"language\"}),n.forEach(We.createMenuItem.bind(this)),We.updateSetting.call(this,e,t)},setSpeedMenu(){if(!H(this.elements.settings.panels.speed))return;const e=\"speed\",t=this.elements.settings.panels.speed.querySelector('[role=\"menu\"]');this.options.speed=this.options.speed.filter((e=>e>=this.minimumSpeed&&e<=this.maximumSpeed));const i=!W(this.options.speed)&&this.options.speed.length>1;We.toggleMenuButton.call(this,e,i),ie(t),We.checkMenu.call(this),i&&(this.options.speed.forEach((i=>{We.createMenuItem.call(this,{value:i,list:t,type:e,title:We.getLabel.call(this,\"speed\",i)})})),We.updateSetting.call(this,e,t))},checkMenu(){const{buttons:e}=this.elements.settings,t=!W(e)&&Object.values(e).some((e=>!e.hidden));ae(this.elements.settings.menu,!t)},focusFirstMenuItem(e,t=!1){if(this.elements.settings.popup.hidden)return;let i=e;H(i)||(i=Object.values(this.elements.settings.panels).find((e=>!e.hidden)));const s=i.querySelector('[role^=\"menuitem\"]');ue.call(this,s,t)},toggleMenu(e){const{popup:t}=this.elements.settings,i=this.elements.buttons.settings;if(!H(t)||!H(i))return;const{hidden:s}=t;let n=s;if(O(e))n=e;else if(F(e)&&\"Escape\"===e.key)n=!1;else if(R(e)){const s=j(e.composedPath)?e.composedPath()[0]:e.target,a=t.contains(s);if(a||!a&&e.target!==i&&n)return}i.setAttribute(\"aria-expanded\",n),ae(t,!n),le(this.elements.container,this.config.classNames.menu.open,n),n&&F(e)?We.focusFirstMenuItem.call(this,null,!0):n||s||ue.call(this,i,F(e))},getMenuSize(e){const t=e.cloneNode(!0);t.style.position=\"absolute\",t.style.opacity=0,t.removeAttribute(\"hidden\"),e.parentNode.appendChild(t);const i=t.scrollWidth,s=t.scrollHeight;return te(t),{width:i,height:s}},showMenuPanel(e=\"\",t=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${e}`);if(!H(i))return;const s=i.parentNode,n=Array.from(s.children).find((e=>!e.hidden));if(me.transitions&&!me.reducedMotion){s.style.width=`${n.scrollWidth}px`,s.style.height=`${n.scrollHeight}px`;const e=We.getMenuSize.call(this,i),t=e=>{e.target===s&&[\"width\",\"height\"].includes(e.propertyName)&&(s.style.width=\"\",s.style.height=\"\",be.call(this,s,z,t))};fe.call(this,s,z,t),s.style.width=`${e.width}px`,s.style.height=`${e.height}px`}ae(n,!0),ae(i,!1),We.focusFirstMenuItem.call(this,i,t)},setDownloadUrl(){const e=this.elements.buttons.download;H(e)&&e.setAttribute(\"href\",this.download)},create(e){const{bindMenuItemShortcuts:t,createButton:i,createProgress:s,createRange:n,createTime:a,setQualityMenu:l,setSpeedMenu:o,showMenuPanel:r}=We;this.elements.controls=null,D(this.config.controls)&&this.config.controls.includes(\"play-large\")&&this.elements.container.appendChild(i.call(this,\"play-large\"));const c=Z(\"div\",ne(this.config.selectors.controls.wrapper));this.elements.controls=c;const h={class:\"plyr__controls__item\"};return Ce(D(this.config.controls)?this.config.controls:[]).forEach((l=>{if(\"restart\"===l&&c.appendChild(i.call(this,\"restart\",h)),\"rewind\"===l&&c.appendChild(i.call(this,\"rewind\",h)),\"play\"===l&&c.appendChild(i.call(this,\"play\",h)),\"fast-forward\"===l&&c.appendChild(i.call(this,\"fast-forward\",h)),\"progress\"===l){const t=Z(\"div\",{class:`${h.class} plyr__progress__container`}),i=Z(\"div\",ne(this.config.selectors.progress));if(i.appendChild(n.call(this,\"seek\",{id:`plyr-seek-${e.id}`})),i.appendChild(s.call(this,\"buffer\")),this.config.tooltips.seek){const e=Z(\"span\",{class:this.config.classNames.tooltip},\"00:00\");i.appendChild(e),this.elements.display.seekTooltip=e}this.elements.progress=i,t.appendChild(this.elements.progress),c.appendChild(t)}if(\"current-time\"===l&&c.appendChild(a.call(this,\"currentTime\",h)),\"duration\"===l&&c.appendChild(a.call(this,\"duration\",h)),\"mute\"===l||\"volume\"===l){let{volume:t}=this.elements;if(H(t)&&c.contains(t)||(t=Z(\"div\",X({},h,{class:`${h.class} plyr__volume`.trim()})),this.elements.volume=t,c.appendChild(t)),\"mute\"===l&&t.appendChild(i.call(this,\"mute\")),\"volume\"===l&&!Y.isIos){const i={max:1,step:.05,value:this.config.volume};t.appendChild(n.call(this,\"volume\",X(i,{id:`plyr-volume-${e.id}`})))}}if(\"captions\"===l&&c.appendChild(i.call(this,\"captions\",h)),\"settings\"===l&&!W(this.config.settings)){const s=Z(\"div\",X({},h,{class:`${h.class} plyr__menu`.trim(),hidden:\"\"}));s.appendChild(i.call(this,\"settings\",{\"aria-haspopup\":!0,\"aria-controls\":`plyr-settings-${e.id}`,\"aria-expanded\":!1}));const n=Z(\"div\",{class:\"plyr__menu__container\",id:`plyr-settings-${e.id}`,hidden:\"\"}),a=Z(\"div\"),l=Z(\"div\",{id:`plyr-settings-${e.id}-home`}),o=Z(\"div\",{role:\"menu\"});l.appendChild(o),a.appendChild(l),this.elements.settings.panels.home=l,this.config.settings.forEach((i=>{const s=Z(\"button\",X(ne(this.config.selectors.buttons.settings),{type:\"button\",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:\"menuitem\",\"aria-haspopup\":!0,hidden:\"\"}));t.call(this,s,i),fe.call(this,s,\"click\",(()=>{r.call(this,i,!1)}));const n=Z(\"span\",null,He.get(i,this.config)),l=Z(\"span\",{class:this.config.classNames.menu.value});l.innerHTML=e[i],n.appendChild(l),s.appendChild(n),o.appendChild(s);const c=Z(\"div\",{id:`plyr-settings-${e.id}-${i}`,hidden:\"\"}),h=Z(\"button\",{type:\"button\",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});h.appendChild(Z(\"span\",{\"aria-hidden\":!0},He.get(i,this.config))),h.appendChild(Z(\"span\",{class:this.config.classNames.hidden},He.get(\"menuBack\",this.config))),fe.call(this,c,\"keydown\",(e=>{\"ArrowLeft\"===e.key&&(e.preventDefault(),e.stopPropagation(),r.call(this,\"home\",!0))}),!1),fe.call(this,h,\"click\",(()=>{r.call(this,\"home\",!1)})),c.appendChild(h),c.appendChild(Z(\"div\",{role:\"menu\"})),a.appendChild(c),this.elements.settings.buttons[i]=s,this.elements.settings.panels[i]=c})),n.appendChild(a),s.appendChild(n),c.appendChild(s),this.elements.settings.popup=n,this.elements.settings.menu=s}if(\"pip\"===l&&me.pip&&c.appendChild(i.call(this,\"pip\",h)),\"airplay\"===l&&me.airplay&&c.appendChild(i.call(this,\"airplay\",h)),\"download\"===l){const e=X({},h,{element:\"a\",href:this.download,target:\"_blank\"});this.isHTML5&&(e.download=\"\");const{download:t}=this.config.urls;!U(t)&&this.isEmbed&&X(e,{icon:`logo-${this.provider}`,label:this.provider}),c.appendChild(i.call(this,\"download\",e))}\"fullscreen\"===l&&c.appendChild(i.call(this,\"fullscreen\",h))})),this.isHTML5&&l.call(this,Le.getQualityOptions.call(this)),o.call(this),c},inject(){if(this.config.loadSprite){const e=We.getIconUrl.call(this);e.cors&&Ve(e.url,\"sprite-plyr\")}this.id=Math.floor(1e4*Math.random());let e=null;this.elements.controls=null;const t={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;j(this.config.controls)&&(this.config.controls=this.config.controls.call(this,t)),this.config.controls||(this.config.controls=[]),H(this.config.controls)||_(this.config.controls)?e=this.config.controls:(e=We.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:Ye.getLabel.call(this)}),i=!1);let s;i&&_(this.config.controls)&&(e=(e=>{let i=e;return Object.entries(t).forEach((([e,t])=>{i=_e(i,`{${e}}`,t)})),i})(e)),_(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),H(s)||(s=this.elements.container);if(s[H(e)?\"insertAdjacentElement\":\"insertAdjacentHTML\"](\"afterbegin\",e),H(this.elements.controls)||We.findElements.call(this),!W(this.elements.buttons)){const e=e=>{const t=this.config.classNames.controlPressed;Object.defineProperty(e,\"pressed\",{enumerable:!0,get:()=>oe(e,t),set(i=!1){le(e,t,i)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((t=>{D(t)||q(t)?Array.from(t).filter(Boolean).forEach(e):e(t)}))}if(Y.isEdge&&K(s),this.config.tooltips.controls){const{classNames:e,selectors:t}=this.config,i=`${t.controls.wrapper} ${t.labels} .${e.hidden}`,s=ce.call(this,i);Array.from(s).forEach((e=>{le(e,this.config.classNames.hidden,!1),le(e,this.config.classNames.tooltip,!0)}))}},setMediaMetadata(){try{\"mediaSession\"in navigator&&(navigator.mediaSession.metadata=new window.MediaMetadata({title:this.config.mediaMetadata.title,artist:this.config.mediaMetadata.artist,album:this.config.mediaMetadata.album,artwork:this.config.mediaMetadata.artwork}))}catch(e){}},setMarkers(){var e,t;if(!this.duration||this.elements.markers)return;const i=null===(e=this.config.markers)||void 0===e||null===(t=e.points)||void 0===t?void 0:t.filter((({time:e})=>e>0&&ele(a,l,e);i.forEach((e=>{const t=Z(\"span\",{class:this.config.classNames.marker},\"\"),i=e.time/this.duration*100+\"%\";a&&(t.addEventListener(\"mouseenter\",(()=>{e.label||(a.style.left=i,a.innerHTML=e.label,o(!0))})),t.addEventListener(\"mouseleave\",(()=>{o(!1)}))),t.addEventListener(\"click\",(()=>{this.currentTime=e.time})),t.style.left=i,n.appendChild(t)})),s.appendChild(n),this.config.tooltips.seek||(a=Z(\"span\",{class:this.config.classNames.tooltip},\"\"),s.appendChild(a)),this.elements.markers={points:n,tip:a},this.elements.progress.appendChild(s)}};function ze(e,t=!0){let i=e;if(t){const e=document.createElement(\"a\");e.href=i,i=e.href}try{return new URL(i)}catch(e){return null}}function Ke(e){const t=new URLSearchParams;return L(e)&&Object.entries(e).forEach((([e,i])=>{t.set(e,i)})),t}const Ye={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!me.textTracks)return void(D(this.config.controls)&&this.config.controls.includes(\"settings\")&&this.config.settings.includes(\"captions\")&&We.setCaptionsMenu.call(this));var e,t;if(H(this.elements.captions)||(this.elements.captions=Z(\"div\",ne(this.config.selectors.captions)),e=this.elements.captions,t=this.elements.wrapper,H(e)&&H(t)&&t.parentNode.insertBefore(e,t.nextSibling)),Y.isIE&&window.URL){const e=this.media.querySelectorAll(\"track\");Array.from(e).forEach((e=>{const t=e.getAttribute(\"src\"),i=ze(t);null!==i&&i.hostname!==window.location.href.hostname&&[\"http:\",\"https:\"].includes(i.protocol)&&Fe(t,\"blob\").then((t=>{e.setAttribute(\"src\",window.URL.createObjectURL(t))})).catch((()=>{te(e)}))}))}const i=Ce((navigator.languages||[navigator.language||navigator.userLanguage||\"en\"]).map((e=>e.split(\"-\")[0])));let s=(this.storage.get(\"language\")||this.config.captions.language||\"auto\").toLowerCase();\"auto\"===s&&([s]=i);let n=this.storage.get(\"captions\");if(O(n)||({active:n}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:n,language:s,languages:i}),this.isHTML5){const e=this.config.captions.update?\"addtrack removetrack\":\"removetrack\";fe.call(this,this.media.textTracks,e,Ye.update.bind(this))}setTimeout(Ye.update.bind(this),0)},update(){const e=Ye.getTracks.call(this,!0),{active:t,language:i,meta:s,currentTrackNode:n}=this.captions,a=Boolean(e.find((e=>e.language===i)));this.isHTML5&&this.isVideo&&e.filter((e=>!s.get(e))).forEach((e=>{this.debug.log(\"Track added\",e),s.set(e,{default:\"showing\"===e.mode}),\"showing\"===e.mode&&(e.mode=\"hidden\"),fe.call(this,e,\"cuechange\",(()=>Ye.updateCues.call(this)))})),(a&&this.language!==i||!e.includes(n))&&(Ye.setLanguage.call(this,i),Ye.toggle.call(this,t&&a)),this.elements&&le(this.elements.container,this.config.classNames.captions.enabled,!W(e)),D(this.config.controls)&&this.config.controls.includes(\"settings\")&&this.config.settings.includes(\"captions\")&&We.setCaptionsMenu.call(this)},toggle(e,t=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,n=I(e)?!i:e;if(n!==i){if(t||(this.captions.active=n,this.storage.set({captions:n})),!this.language&&n&&!t){const e=Ye.getTracks.call(this),t=Ye.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=t.language,void Ye.set.call(this,e.indexOf(t))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=n),le(this.elements.container,s,n),this.captions.toggled=n,We.updateSetting.call(this,\"captions\"),ve.call(this,this.media,n?\"captionsenabled\":\"captionsdisabled\")}setTimeout((()=>{n&&this.captions.toggled&&(this.captions.currentTrackNode.mode=\"hidden\")}))},set(e,t=!0){const i=Ye.getTracks.call(this);if(-1!==e)if($(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;const s=i[e],{language:n}=s||{};this.captions.currentTrackNode=s,We.updateSetting.call(this,\"captions\"),t||(this.captions.language=n,this.storage.set({language:n})),this.isVimeo&&this.embed.enableTextTrack(n),ve.call(this,this.media,\"languagechange\")}Ye.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&Ye.updateCues.call(this)}else this.debug.warn(\"Track not found\",e);else this.debug.warn(\"Invalid caption argument\",e);else Ye.toggle.call(this,!1,t)},setLanguage(e,t=!0){if(!_(e))return void this.debug.warn(\"Invalid language argument\",e);const i=e.toLowerCase();this.captions.language=i;const s=Ye.getTracks.call(this),n=Ye.findTrack.call(this,[i]);Ye.set.call(this,s.indexOf(n),t)},getTracks(e=!1){return Array.from((this.media||{}).textTracks||[]).filter((t=>!this.isHTML5||e||this.captions.meta.has(t))).filter((e=>[\"captions\",\"subtitles\"].includes(e.kind)))},findTrack(e,t=!1){const i=Ye.getTracks.call(this),s=e=>Number((this.captions.meta.get(e)||{}).default),n=Array.from(i).sort(((e,t)=>s(t)-s(e)));let a;return e.every((e=>(a=n.find((t=>t.language===e)),!a))),a||(t?n[0]:void 0)},getCurrentTrack(){return Ye.getTracks.call(this)[this.currentTrack]},getLabel(e){let t=e;return!V(t)&&me.textTracks&&this.captions.toggled&&(t=Ye.getCurrentTrack.call(this)),V(t)?W(t.label)?W(t.language)?He.get(\"enabled\",this.config):e.language.toUpperCase():t.label:He.get(\"disabled\",this.config)},updateCues(e){if(!this.supported.ui)return;if(!H(this.elements.captions))return void this.debug.warn(\"No captions element to render to\");if(!I(e)&&!Array.isArray(e))return void this.debug.warn(\"updateCues: Invalid input\",e);let t=e;if(!t){const e=Ye.getCurrentTrack.call(this);t=Array.from((e||{}).activeCues||[]).map((e=>e.getCueAsHTML())).map(De)}const i=t.map((e=>e.trim())).join(\"\\n\");if(i!==this.elements.captions.innerHTML){ie(this.elements.captions);const e=Z(\"span\",ne(this.config.selectors.caption));e.innerHTML=i,this.elements.captions.appendChild(e),ve.call(this,this.media,\"cuechange\")}}},Qe={enabled:!0,title:\"\",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:\"plyr\",iconUrl:\"https://cdn.plyr.io/3.7.2/plyr.svg\",blankVideo:\"https://cdn.plyr.io/static/blank.mp4\",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:\"auto\",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:\"plyr\"},controls:[\"play-large\",\"play\",\"progress\",\"current-time\",\"mute\",\"volume\",\"captions\",\"settings\",\"pip\",\"airplay\",\"fullscreen\"],settings:[\"captions\",\"quality\",\"speed\"],i18n:{restart:\"Restart\",rewind:\"Rewind {seektime}s\",play:\"Play\",pause:\"Pause\",fastForward:\"Forward {seektime}s\",seek:\"Seek\",seekLabel:\"{currentTime} of {duration}\",played:\"Played\",buffered:\"Buffered\",currentTime:\"Current time\",duration:\"Duration\",volume:\"Volume\",mute:\"Mute\",unmute:\"Unmute\",enableCaptions:\"Enable captions\",disableCaptions:\"Disable captions\",download:\"Download\",enterFullscreen:\"Enter fullscreen\",exitFullscreen:\"Exit fullscreen\",frameTitle:\"Player for {title}\",captions:\"Captions\",settings:\"Settings\",pip:\"PIP\",menuBack:\"Go back to previous menu\",speed:\"Speed\",normal:\"Normal\",quality:\"Quality\",loop:\"Loop\",start:\"Start\",end:\"End\",all:\"All\",reset:\"Reset\",disabled:\"Disabled\",enabled:\"Enabled\",advertisement:\"Ad\",qualityBadge:{2160:\"4K\",1440:\"HD\",1080:\"HD\",720:\"HD\",576:\"SD\",480:\"SD\"}},urls:{download:null,vimeo:{sdk:\"https://player.vimeo.com/api/player.js\",iframe:\"https://player.vimeo.com/video/{0}?{1}\",api:\"https://vimeo.com/api/oembed.json?url={0}\"},youtube:{sdk:\"https://www.youtube.com/iframe_api\",api:\"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}\"},googleIMA:{sdk:\"https://imasdk.googleapis.com/js/sdkloader/ima3.js\"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:[\"ended\",\"progress\",\"stalled\",\"playing\",\"waiting\",\"canplay\",\"canplaythrough\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"timeupdate\",\"volumechange\",\"play\",\"pause\",\"error\",\"seeking\",\"seeked\",\"emptied\",\"ratechange\",\"cuechange\",\"download\",\"enterfullscreen\",\"exitfullscreen\",\"captionsenabled\",\"captionsdisabled\",\"languagechange\",\"controlshidden\",\"controlsshown\",\"ready\",\"statechange\",\"qualitychange\",\"adsloaded\",\"adscontentpause\",\"adscontentresume\",\"adstarted\",\"adsmidpoint\",\"adscomplete\",\"adsallcomplete\",\"adsimpression\",\"adsclick\"],selectors:{editable:\"input, textarea, select, [contenteditable]\",container:\".plyr\",controls:{container:null,wrapper:\".plyr__controls\"},labels:\"[data-plyr]\",buttons:{play:'[data-plyr=\"play\"]',pause:'[data-plyr=\"pause\"]',restart:'[data-plyr=\"restart\"]',rewind:'[data-plyr=\"rewind\"]',fastForward:'[data-plyr=\"fast-forward\"]',mute:'[data-plyr=\"mute\"]',captions:'[data-plyr=\"captions\"]',download:'[data-plyr=\"download\"]',fullscreen:'[data-plyr=\"fullscreen\"]',pip:'[data-plyr=\"pip\"]',airplay:'[data-plyr=\"airplay\"]',settings:'[data-plyr=\"settings\"]',loop:'[data-plyr=\"loop\"]'},inputs:{seek:'[data-plyr=\"seek\"]',volume:'[data-plyr=\"volume\"]',speed:'[data-plyr=\"speed\"]',language:'[data-plyr=\"language\"]',quality:'[data-plyr=\"quality\"]'},display:{currentTime:\".plyr__time--current\",duration:\".plyr__time--duration\",buffer:\".plyr__progress__buffer\",loop:\".plyr__progress__loop\",volume:\".plyr__volume--display\"},progress:\".plyr__progress\",captions:\".plyr__captions\",caption:\".plyr__caption\"},classNames:{type:\"plyr--{0}\",provider:\"plyr--{0}\",video:\"plyr__video-wrapper\",embed:\"plyr__video-embed\",videoFixedRatio:\"plyr__video-wrapper--fixed-ratio\",embedContainer:\"plyr__video-embed__container\",poster:\"plyr__poster\",posterEnabled:\"plyr__poster-enabled\",ads:\"plyr__ads\",control:\"plyr__control\",controlPressed:\"plyr__control--pressed\",playing:\"plyr--playing\",paused:\"plyr--paused\",stopped:\"plyr--stopped\",loading:\"plyr--loading\",hover:\"plyr--hover\",tooltip:\"plyr__tooltip\",cues:\"plyr__cues\",marker:\"plyr__progress__marker\",hidden:\"plyr__sr-only\",hideControls:\"plyr--hide-controls\",isIos:\"plyr--is-ios\",isTouch:\"plyr--is-touch\",uiSupported:\"plyr--full-ui\",noTransition:\"plyr--no-transition\",display:{time:\"plyr__time\"},menu:{value:\"plyr__menu__value\",badge:\"plyr__badge\",open:\"plyr--menu-open\"},captions:{enabled:\"plyr--captions-enabled\",active:\"plyr--captions-active\"},fullscreen:{enabled:\"plyr--fullscreen-enabled\",fallback:\"plyr--fullscreen-fallback\"},pip:{supported:\"plyr--pip-supported\",active:\"plyr--pip-active\"},airplay:{supported:\"plyr--airplay-supported\",active:\"plyr--airplay-active\"},tabFocus:\"plyr__tab-focus\",previewThumbnails:{thumbContainer:\"plyr__preview-thumb\",thumbContainerShown:\"plyr__preview-thumb--is-shown\",imageContainer:\"plyr__preview-thumb__image-container\",timeContainer:\"plyr__preview-thumb__time-container\",scrubbingContainer:\"plyr__preview-scrubbing\",scrubbingContainerShown:\"plyr__preview-scrubbing--is-shown\"}},attributes:{embed:{provider:\"data-plyr-provider\",id:\"data-plyr-embed-id\",hash:\"data-plyr-embed-hash\"}},ads:{enabled:!1,publisherId:\"\",tagUrl:\"\"},previewThumbnails:{enabled:!1,src:\"\"},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1},mediaMetadata:{title:\"\",artist:\"\",album:\"\",artwork:[]},markers:{enabled:!1,points:[]}},Xe=\"picture-in-picture\",Je=\"inline\",Ge={html5:\"html5\",youtube:\"youtube\",vimeo:\"vimeo\"},Ze=\"audio\",et=\"video\";const tt=()=>{};class it{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log(\"Debugging enabled\")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):tt}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):tt}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):tt}}class st{constructor(t){e(this,\"onChange\",(()=>{if(!this.enabled)return;const e=this.player.elements.buttons.fullscreen;H(e)&&(e.pressed=this.active);const t=this.target===this.player.media?this.target:this.player.elements.container;ve.call(this.player,t,this.active?\"enterfullscreen\":\"exitfullscreen\",!0)})),e(this,\"toggleFallback\",((e=!1)=>{if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?\"hidden\":\"\",le(this.target,this.player.config.classNames.fullscreen.fallback,e),Y.isIos){let t=document.head.querySelector('meta[name=\"viewport\"]');const i=\"viewport-fit=cover\";t||(t=document.createElement(\"meta\"),t.setAttribute(\"name\",\"viewport\"));const s=_(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!s,s||(t.content+=`,${i}`)):this.cleanupViewport&&(t.content=t.content.split(\",\").filter((e=>e.trim()!==i)).join(\",\"))}this.onChange()})),e(this,\"trapFocus\",(e=>{if(Y.isIos||!this.active||\"Tab\"!==e.key)return;const t=document.activeElement,i=ce.call(this.player,\"a[href], button:not(:disabled), input:not(:disabled), [tabindex]\"),[s]=i,n=i[i.length-1];t!==n||e.shiftKey?t===s&&e.shiftKey&&(n.focus(),e.preventDefault()):(s.focus(),e.preventDefault())})),e(this,\"update\",(()=>{if(this.enabled){let e;e=this.forceFallback?\"Fallback (forced)\":st.native?\"Native\":\"Fallback\",this.player.debug.log(`${e} fullscreen enabled`)}else this.player.debug.log(\"Fullscreen not supported and fallback disabled\");le(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)})),e(this,\"enter\",(()=>{this.enabled&&(Y.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!st.native||this.forceFallback?this.toggleFallback(!0):this.prefix?W(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:\"hide\"}))})),e(this,\"exit\",(()=>{if(this.enabled)if(Y.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),ke(this.player.play());else if(!st.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!W(this.prefix)){const e=\"moz\"===this.prefix?\"Cancel\":\"Exit\";document[`${this.prefix}${e}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)})),e(this,\"toggle\",(()=>{this.active?this.exit():this.enter()})),this.player=t,this.prefix=st.prefix,this.property=st.property,this.scrollPosition={x:0,y:0},this.forceFallback=\"force\"===t.config.fullscreen.fallback,this.player.elements.fullscreen=t.config.fullscreen.container&&function(e,t){const{prototype:i}=Element;return(i.closest||function(){let e=this;do{if(re.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,t.config.fullscreen.container),fe.call(this.player,document,\"ms\"===this.prefix?\"MSFullscreenChange\":`${this.prefix}fullscreenchange`,(()=>{this.onChange()})),fe.call(this.player,this.player.elements.container,\"dblclick\",(e=>{H(this.player.elements.controls)&&this.player.elements.controls.contains(e.target)||this.player.listeners.proxy(e,this.toggle,\"fullscreen\")})),fe.call(this,this.player.elements.container,\"keydown\",(e=>this.trapFocus(e))),this.update()}static get native(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get usingNative(){return st.native&&!this.forceFallback}static get prefix(){if(j(document.exitFullscreen))return\"\";let e=\"\";return[\"webkit\",\"moz\",\"ms\"].some((t=>!(!j(document[`${t}ExitFullscreen`])&&!j(document[`${t}CancelFullScreen`]))&&(e=t,!0))),e}static get property(){return\"moz\"===this.prefix?\"FullScreen\":\"Fullscreen\"}get enabled(){return(st.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}get active(){if(!this.enabled)return!1;if(!st.native||this.forceFallback)return oe(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return Y.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}function nt(e,t=1){return new Promise(((i,s)=>{const n=new Image,a=()=>{delete n.onload,delete n.onerror,(n.naturalWidth>=t?i:s)(n)};Object.assign(n,{onload:a,onerror:a,src:e})}))}const at={addStyleHook(){le(this.elements.container,this.config.selectors.container.replace(\".\",\"\"),!0),le(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(e=!1){e&&this.isHTML5?this.media.setAttribute(\"controls\",\"\"):this.media.removeAttribute(\"controls\")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void at.toggleNativeControls.call(this,!0);H(this.elements.controls)||(We.inject.call(this),this.listeners.controls()),at.toggleNativeControls.call(this),this.isHTML5&&Ye.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,We.updateVolume.call(this),We.timeUpdate.call(this),We.durationUpdate.call(this),at.checkPlaying.call(this),le(this.elements.container,this.config.classNames.pip.supported,me.pip&&this.isHTML5&&this.isVideo),le(this.elements.container,this.config.classNames.airplay.supported,me.airplay&&this.isHTML5),le(this.elements.container,this.config.classNames.isIos,Y.isIos),le(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((()=>{ve.call(this,this.media,\"ready\")}),0),at.setTitle.call(this),this.poster&&at.setPoster.call(this,this.poster,!1).catch((()=>{})),this.config.duration&&We.durationUpdate.call(this),this.config.mediaMetadata&&We.setMediaMetadata.call(this)},setTitle(){let e=He.get(\"play\",this.config);if(_(this.config.title)&&!W(this.config.title)&&(e+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach((t=>{t.setAttribute(\"aria-label\",e)})),this.isEmbed){const e=he.call(this,\"iframe\");if(!H(e))return;const t=W(this.config.title)?\"video\":this.config.title,i=He.get(\"frameTitle\",this.config);e.setAttribute(\"title\",i.replace(\"{title}\",t))}},togglePoster(e){le(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster(e,t=!0){return t&&this.poster?Promise.reject(new Error(\"Poster already set\")):(this.media.setAttribute(\"data-poster\",e),this.elements.poster.removeAttribute(\"hidden\"),Te.call(this).then((()=>nt(e))).catch((t=>{throw e===this.poster&&at.togglePoster.call(this,!1),t})).then((()=>{if(e!==this.poster)throw new Error(\"setPoster cancelled by later call to setPoster\")})).then((()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${e}')`,backgroundSize:\"\"}),at.togglePoster.call(this,!0),e))))},checkPlaying(e){le(this.elements.container,this.config.classNames.playing,this.playing),le(this.elements.container,this.config.classNames.paused,this.paused),le(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute(\"aria-label\",He.get(this.playing?\"pause\":\"play\",this.config))})),R(e)&&\"timeupdate\"===e.type||at.toggleControls.call(this)},checkLoading(e){this.loading=[\"stalled\",\"waiting\"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((()=>{le(this.elements.container,this.config.classNames.loading,this.loading),at.toggleControls.call(this)}),this.loading?250:0)},toggleControls(e){const{controls:t}=this.elements;if(t&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles(){Object.values({...this.media.style}).filter((e=>!W(e)&&_(e)&&e.startsWith(\"--plyr\"))).forEach((e=>{this.elements.container.style.setProperty(e,this.media.style.getPropertyValue(e)),this.media.style.removeProperty(e)})),W(this.media.style)&&this.media.removeAttribute(\"style\")}};class lt{constructor(t){e(this,\"firstTouch\",(()=>{const{player:e}=this,{elements:t}=e;e.touch=!0,le(t.container,e.config.classNames.isTouch,!0)})),e(this,\"setTabFocus\",(e=>{const{player:t}=this,{elements:i}=t,{key:s,type:n,timeStamp:a}=e;if(clearTimeout(this.focusTimer),\"keydown\"===n&&\"Tab\"!==s)return;\"keydown\"===n&&(this.lastKeyDown=a);const l=a-this.lastKeyDown<=20;(\"focus\"!==n||l)&&((()=>{const e=t.config.classNames.tabFocus;le(ce.call(t,`.${e}`),e,!1)})(),\"focusout\"!==n&&(this.focusTimer=setTimeout((()=>{const e=document.activeElement;i.container.contains(e)&&le(document.activeElement,t.config.classNames.tabFocus,!0)}),10)))})),e(this,\"global\",((e=!0)=>{const{player:t}=this;t.config.keyboard.global&&ge.call(t,window,\"keydown keyup\",this.handleKey,e,!1),ge.call(t,document.body,\"click\",this.toggleMenu,e),ye.call(t,document.body,\"touchstart\",this.firstTouch),ge.call(t,document.body,\"keydown focus blur focusout\",this.setTabFocus,e,!1,!0)})),e(this,\"container\",(()=>{const{player:e}=this,{config:t,elements:i,timers:s}=e;!t.keyboard.global&&t.keyboard.focused&&fe.call(e,i.container,\"keydown keyup\",this.handleKey,!1),fe.call(e,i.container,\"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen\",(t=>{const{controls:n}=i;n&&\"enterfullscreen\"===t.type&&(n.pressed=!1,n.hover=!1);let a=0;[\"touchstart\",\"touchmove\",\"mousemove\"].includes(t.type)&&(at.toggleControls.call(e,!0),a=e.touch?3e3:2e3),clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),a)}));const n=()=>{if(!e.isVimeo||e.config.vimeo.premium)return;const t=i.wrapper,{active:s}=e.fullscreen,[n,a]=Ne.call(e),l=Se(`aspect-ratio: ${n} / ${a}`);if(!s)return void(l?(t.style.width=null,t.style.height=null):(t.style.maxWidth=null,t.style.margin=null));const[o,r]=[Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)],c=o/r>n/a;l?(t.style.width=c?\"auto\":\"100%\",t.style.height=c?\"100%\":\"auto\"):(t.style.maxWidth=c?r/a*n+\"px\":null,t.style.margin=c?\"0 auto\":null)},a=()=>{clearTimeout(s.resized),s.resized=setTimeout(n,50)};fe.call(e,i.container,\"enterfullscreen exitfullscreen\",(t=>{const{target:s}=e.fullscreen;if(s!==i.container)return;if(!e.isEmbed&&W(e.config.ratio))return;n();(\"enterfullscreen\"===t.type?fe:be).call(e,window,\"resize\",a)}))})),e(this,\"media\",(()=>{const{player:e}=this,{elements:t}=e;if(fe.call(e,e.media,\"timeupdate seeking seeked\",(t=>We.timeUpdate.call(e,t))),fe.call(e,e.media,\"durationchange loadeddata loadedmetadata\",(t=>We.durationUpdate.call(e,t))),fe.call(e,e.media,\"ended\",(()=>{e.isHTML5&&e.isVideo&&e.config.resetOnEnd&&(e.restart(),e.pause())})),fe.call(e,e.media,\"progress playing seeking seeked\",(t=>We.updateProgress.call(e,t))),fe.call(e,e.media,\"volumechange\",(t=>We.updateVolume.call(e,t))),fe.call(e,e.media,\"playing play pause ended emptied timeupdate\",(t=>at.checkPlaying.call(e,t))),fe.call(e,e.media,\"waiting canplay seeked playing\",(t=>at.checkLoading.call(e,t))),e.supported.ui&&e.config.clickToPlay&&!e.isAudio){const i=he.call(e,`.${e.config.classNames.video}`);if(!H(i))return;fe.call(e,t.container,\"click\",(s=>{([t.container,i].includes(s.target)||i.contains(s.target))&&(e.touch&&e.config.hideControls||(e.ended?(this.proxy(s,e.restart,\"restart\"),this.proxy(s,(()=>{ke(e.play())}),\"play\")):this.proxy(s,(()=>{ke(e.togglePlay())}),\"play\")))}))}e.supported.ui&&e.config.disableContextMenu&&fe.call(e,t.wrapper,\"contextmenu\",(e=>{e.preventDefault()}),!1),fe.call(e,e.media,\"volumechange\",(()=>{e.storage.set({volume:e.volume,muted:e.muted})})),fe.call(e,e.media,\"ratechange\",(()=>{We.updateSetting.call(e,\"speed\"),e.storage.set({speed:e.speed})})),fe.call(e,e.media,\"qualitychange\",(t=>{We.updateSetting.call(e,\"quality\",null,t.detail.quality)})),fe.call(e,e.media,\"ready qualitychange\",(()=>{We.setDownloadUrl.call(e)}));const i=e.config.events.concat([\"keyup\",\"keydown\"]).join(\" \");fe.call(e,e.media,i,(i=>{let{detail:s={}}=i;\"error\"===i.type&&(s=e.media.error),ve.call(e,t.container,i.type,!0,s)}))})),e(this,\"proxy\",((e,t,i)=>{const{player:s}=this,n=s.config.listeners[i];let a=!0;j(n)&&(a=n.call(s,e)),!1!==a&&j(t)&&t.call(s,e)})),e(this,\"bind\",((e,t,i,s,n=!0)=>{const{player:a}=this,l=a.config.listeners[s],o=j(l);fe.call(a,e,t,(e=>this.proxy(e,i,s)),n&&!o)})),e(this,\"controls\",(()=>{const{player:e}=this,{elements:t}=e,i=Y.isIE?\"change\":\"input\";if(t.buttons.play&&Array.from(t.buttons.play).forEach((t=>{this.bind(t,\"click\",(()=>{ke(e.togglePlay())}),\"play\")})),this.bind(t.buttons.restart,\"click\",e.restart,\"restart\"),this.bind(t.buttons.rewind,\"click\",(()=>{e.lastSeekTime=Date.now(),e.rewind()}),\"rewind\"),this.bind(t.buttons.fastForward,\"click\",(()=>{e.lastSeekTime=Date.now(),e.forward()}),\"fastForward\"),this.bind(t.buttons.mute,\"click\",(()=>{e.muted=!e.muted}),\"mute\"),this.bind(t.buttons.captions,\"click\",(()=>e.toggleCaptions())),this.bind(t.buttons.download,\"click\",(()=>{ve.call(e,e.media,\"download\")}),\"download\"),this.bind(t.buttons.fullscreen,\"click\",(()=>{e.fullscreen.toggle()}),\"fullscreen\"),this.bind(t.buttons.pip,\"click\",(()=>{e.pip=\"toggle\"}),\"pip\"),this.bind(t.buttons.airplay,\"click\",e.airplay,\"airplay\"),this.bind(t.buttons.settings,\"click\",(t=>{t.stopPropagation(),t.preventDefault(),We.toggleMenu.call(e,t)}),null,!1),this.bind(t.buttons.settings,\"keyup\",(t=>{[\"Space\",\"Enter\"].includes(t.key)&&(\"Enter\"!==t.key?(t.preventDefault(),t.stopPropagation(),We.toggleMenu.call(e,t)):We.focusFirstMenuItem.call(e,null,!0))}),null,!1),this.bind(t.settings.menu,\"keydown\",(t=>{\"Escape\"===t.key&&We.toggleMenu.call(e,t)})),this.bind(t.inputs.seek,\"mousedown mousemove\",(e=>{const i=t.progress.getBoundingClientRect(),s=100/i.width*(e.pageX-i.left);e.currentTarget.setAttribute(\"seek-value\",s)})),this.bind(t.inputs.seek,\"mousedown mouseup keydown keyup touchstart touchend\",(t=>{const i=t.currentTarget,s=\"play-on-seeked\";if(F(t)&&![\"ArrowLeft\",\"ArrowRight\"].includes(t.key))return;e.lastSeekTime=Date.now();const n=i.hasAttribute(s),a=[\"mouseup\",\"touchend\",\"keyup\"].includes(t.type);n&&a?(i.removeAttribute(s),ke(e.play())):!a&&e.playing&&(i.setAttribute(s,\"\"),e.pause())})),Y.isIos){const t=ce.call(e,'input[type=\"range\"]');Array.from(t).forEach((e=>this.bind(e,i,(e=>K(e.target)))))}this.bind(t.inputs.seek,i,(t=>{const i=t.currentTarget;let s=i.getAttribute(\"seek-value\");W(s)&&(s=i.value),i.removeAttribute(\"seek-value\"),e.currentTime=s/i.max*e.duration}),\"seek\"),this.bind(t.progress,\"mouseenter mouseleave mousemove\",(t=>We.updateSeekTooltip.call(e,t))),this.bind(t.progress,\"mousemove touchmove\",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startMove(t)})),this.bind(t.progress,\"mouseleave touchend click\",(()=>{const{previewThumbnails:t}=e;t&&t.loaded&&t.endMove(!1,!0)})),this.bind(t.progress,\"mousedown touchstart\",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startScrubbing(t)})),this.bind(t.progress,\"mouseup touchend\",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.endScrubbing(t)})),Y.isWebkit&&Array.from(ce.call(e,'input[type=\"range\"]')).forEach((t=>{this.bind(t,\"input\",(t=>We.updateRangeFill.call(e,t.target)))})),e.config.toggleInvert&&!H(t.display.duration)&&this.bind(t.display.currentTime,\"click\",(()=>{0!==e.currentTime&&(e.config.invertTime=!e.config.invertTime,We.timeUpdate.call(e))})),this.bind(t.inputs.volume,i,(t=>{e.volume=t.target.value}),\"volume\"),this.bind(t.controls,\"mouseenter mouseleave\",(i=>{t.controls.hover=!e.touch&&\"mouseenter\"===i.type})),t.fullscreen&&Array.from(t.fullscreen.children).filter((e=>!e.contains(t.container))).forEach((i=>{this.bind(i,\"mouseenter mouseleave\",(i=>{t.controls&&(t.controls.hover=!e.touch&&\"mouseenter\"===i.type)}))})),this.bind(t.controls,\"mousedown mouseup touchstart touchend touchcancel\",(e=>{t.controls.pressed=[\"mousedown\",\"touchstart\"].includes(e.type)})),this.bind(t.controls,\"focusin\",(()=>{const{config:i,timers:s}=e;le(t.controls,i.classNames.noTransition,!0),at.toggleControls.call(e,!0),setTimeout((()=>{le(t.controls,i.classNames.noTransition,!1)}),0);const n=this.touch?3e3:4e3;clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),n)})),this.bind(t.inputs.volume,\"wheel\",(t=>{const i=t.webkitDirectionInvertedFromDevice,[s,n]=[t.deltaX,-t.deltaY].map((e=>i?-e:e)),a=Math.sign(Math.abs(s)>Math.abs(n)?s:n);e.increaseVolume(a/50);const{volume:l}=e.media;(1===a&&l<1||-1===a&&l>0)&&t.preventDefault()}),\"volume\",!1)})),this.player=t,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:t}=this,{elements:i}=t,{key:s,type:n,altKey:a,ctrlKey:l,metaKey:o,shiftKey:r}=e,c=\"keydown\"===n,h=c&&s===this.lastKey;if(a||l||o||r)return;if(!s)return;if(c){const n=document.activeElement;if(H(n)){const{editable:s}=t.config.selectors,{seek:a}=i.inputs;if(n!==a&&re(n,s))return;if(\"Space\"===e.key&&re(n,'button, [role^=\"menuitem\"]'))return}switch([\"Space\",\"ArrowLeft\",\"ArrowUp\",\"ArrowRight\",\"ArrowDown\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"c\",\"f\",\"k\",\"l\",\"m\"].includes(s)&&(e.preventDefault(),e.stopPropagation()),s){case\"0\":case\"1\":case\"2\":case\"3\":case\"4\":case\"5\":case\"6\":case\"7\":case\"8\":case\"9\":h||(u=parseInt(s,10),t.currentTime=t.duration/10*u);break;case\"Space\":case\"k\":h||ke(t.togglePlay());break;case\"ArrowUp\":t.increaseVolume(.1);break;case\"ArrowDown\":t.decreaseVolume(.1);break;case\"m\":h||(t.muted=!t.muted);break;case\"ArrowRight\":t.forward();break;case\"ArrowLeft\":t.rewind();break;case\"f\":t.fullscreen.toggle();break;case\"c\":h||t.toggleCaptions();break;case\"l\":t.loop=!t.loop}\"Escape\"===s&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=s}else this.lastKey=null;var u}toggleMenu(e){We.toggleMenu.call(this.player,e)}}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var ot=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},s={};function n(e,t){e=e.push?e:[e];var n,a,l,o=[],r=e.length,c=r;for(n=function(e,i){i.length&&o.push(e),--c||t(o)};r--;)a=e[r],(l=i[a])?n(a,l):(s[a]=s[a]||[]).push(n)}function a(e,t){if(e){var n=s[e];if(i[e]=t,n)for(;n.length;)n[0](e,t),n.splice(0,1)}}function l(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function o(t,i,s,n){var a,l,r=document,c=s.async,h=(s.numRetries||0)+1,u=s.before||e,d=t.replace(/[\\?|#].*$/,\"\"),m=t.replace(/^(css|img)!/,\"\");n=n||0,/(^css!|\\.css$)/.test(d)?((l=r.createElement(\"link\")).rel=\"stylesheet\",l.href=m,(a=\"hideFocus\"in l)&&l.relList&&(a=0,l.rel=\"preload\",l.as=\"style\")):/(^img!|\\.(png|gif|jpg|svg|webp)$)/.test(d)?(l=r.createElement(\"img\")).src=m:((l=r.createElement(\"script\")).src=t,l.async=void 0===c||c),l.onload=l.onerror=l.onbeforeload=function(e){var r=e.type[0];if(a)try{l.sheet.cssText.length||(r=\"e\")}catch(e){18!=e.code&&(r=\"e\")}if(\"e\"==r){if((n+=1){ot(e,{success:t,error:i})}))}function ct(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?\"play\":\"pause\"))}const ht={setup(){const e=this;le(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,xe.call(e),L(window.Vimeo)?ht.ready.call(e):rt(e.config.urls.vimeo.sdk).then((()=>{ht.ready.call(e)})).catch((t=>{e.debug.warn(\"Vimeo SDK (player.js) failed to load\",t)}))},ready(){const e=this,t=e.config.vimeo,{premium:i,referrerPolicy:s,...n}=t;let a=e.media.getAttribute(\"src\"),l=\"\";W(a)?(a=e.media.getAttribute(e.config.attributes.embed.id),l=e.media.getAttribute(e.config.attributes.embed.hash)):l=function(e){const t=e.match(/^.*(vimeo.com\\/|video\\/)(\\d+)(\\?.*&*h=|\\/)+([\\d,a-f]+)/);return t&&5===t.length?t[4]:null}(a);const o=l?{h:l}:{};i&&Object.assign(n,{controls:!1,sidedock:!1});const r=Ke({loop:e.config.loop.active,autoplay:e.autoplay,muted:e.muted,gesture:\"media\",playsinline:!this.config.fullscreen.iosNative,...o,...n}),c=W(h=a)?null:$(Number(h))?h:h.match(/^.*(vimeo.com\\/|video\\/)(\\d+).*/)?RegExp.$2:h;var h;const u=Z(\"iframe\"),d=$e(e.config.urls.vimeo.iframe,c,r);if(u.setAttribute(\"src\",d),u.setAttribute(\"allowfullscreen\",\"\"),u.setAttribute(\"allow\",[\"autoplay\",\"fullscreen\",\"picture-in-picture\",\"encrypted-media\",\"accelerometer\",\"gyroscope\"].join(\"; \")),W(s)||u.setAttribute(\"referrerPolicy\",s),i||!t.customControls)u.setAttribute(\"data-poster\",e.poster),e.media=se(u,e.media);else{const t=Z(\"div\",{class:e.config.classNames.embedContainer,\"data-poster\":e.poster});t.appendChild(u),e.media=se(t,e.media)}t.customControls||Fe($e(e.config.urls.vimeo.api,d)).then((t=>{!W(t)&&t.thumbnail_url&&at.setPoster.call(e,t.thumbnail_url).catch((()=>{}))})),e.embed=new window.Vimeo.Player(u,{autopause:e.config.autopause,muted:e.muted}),e.media.paused=!0,e.media.currentTime=0,e.supported.ui&&e.embed.disableTextTrack(),e.media.play=()=>(ct.call(e,!0),e.embed.play()),e.media.pause=()=>(ct.call(e,!1),e.embed.pause()),e.media.stop=()=>{e.pause(),e.currentTime=0};let{currentTime:m}=e.media;Object.defineProperty(e.media,\"currentTime\",{get:()=>m,set(t){const{embed:i,media:s,paused:n,volume:a}=e,l=n&&!i.hasPlayed;s.seeking=!0,ve.call(e,s,\"seeking\"),Promise.resolve(l&&i.setVolume(0)).then((()=>i.setCurrentTime(t))).then((()=>l&&i.pause())).then((()=>l&&i.setVolume(a))).catch((()=>{}))}});let p=e.config.speed.selected;Object.defineProperty(e.media,\"playbackRate\",{get:()=>p,set(t){e.embed.setPlaybackRate(t).then((()=>{p=t,ve.call(e,e.media,\"ratechange\")})).catch((()=>{e.options.speed=[1]}))}});let{volume:g}=e.config;Object.defineProperty(e.media,\"volume\",{get:()=>g,set(t){e.embed.setVolume(t).then((()=>{g=t,ve.call(e,e.media,\"volumechange\")}))}});let{muted:f}=e.config;Object.defineProperty(e.media,\"muted\",{get:()=>f,set(t){const i=!!O(t)&&t;e.embed.setVolume(i?0:e.config.volume).then((()=>{f=i,ve.call(e,e.media,\"volumechange\")}))}});let b,{loop:y}=e.config;Object.defineProperty(e.media,\"loop\",{get:()=>y,set(t){const i=O(t)?t:e.config.loop.active;e.embed.setLoop(i).then((()=>{y=i}))}}),e.embed.getVideoUrl().then((t=>{b=t,We.setDownloadUrl.call(e)})).catch((e=>{this.debug.warn(e)})),Object.defineProperty(e.media,\"currentSrc\",{get:()=>b}),Object.defineProperty(e.media,\"ended\",{get:()=>e.currentTime===e.duration}),Promise.all([e.embed.getVideoWidth(),e.embed.getVideoHeight()]).then((t=>{const[i,s]=t;e.embed.ratio=Ie(i,s),xe.call(this)})),e.embed.setAutopause(e.config.autopause).then((t=>{e.config.autopause=t})),e.embed.getVideoTitle().then((t=>{e.config.title=t,at.setTitle.call(this)})),e.embed.getCurrentTime().then((t=>{m=t,ve.call(e,e.media,\"timeupdate\")})),e.embed.getDuration().then((t=>{e.media.duration=t,ve.call(e,e.media,\"durationchange\")})),e.embed.getTextTracks().then((t=>{e.media.textTracks=t,Ye.setup.call(e)})),e.embed.on(\"cuechange\",(({cues:t=[]})=>{const i=t.map((e=>function(e){const t=document.createDocumentFragment(),i=document.createElement(\"div\");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText}(e.text)));Ye.updateCues.call(e,i)})),e.embed.on(\"loaded\",(()=>{if(e.embed.getPaused().then((t=>{ct.call(e,!t),t||ve.call(e,e.media,\"playing\")})),H(e.embed.element)&&e.supported.ui){e.embed.element.setAttribute(\"tabindex\",-1)}})),e.embed.on(\"bufferstart\",(()=>{ve.call(e,e.media,\"waiting\")})),e.embed.on(\"bufferend\",(()=>{ve.call(e,e.media,\"playing\")})),e.embed.on(\"play\",(()=>{ct.call(e,!0),ve.call(e,e.media,\"playing\")})),e.embed.on(\"pause\",(()=>{ct.call(e,!1)})),e.embed.on(\"timeupdate\",(t=>{e.media.seeking=!1,m=t.seconds,ve.call(e,e.media,\"timeupdate\")})),e.embed.on(\"progress\",(t=>{e.media.buffered=t.percent,ve.call(e,e.media,\"progress\"),1===parseInt(t.percent,10)&&ve.call(e,e.media,\"canplaythrough\"),e.embed.getDuration().then((t=>{t!==e.media.duration&&(e.media.duration=t,ve.call(e,e.media,\"durationchange\"))}))})),e.embed.on(\"seeked\",(()=>{e.media.seeking=!1,ve.call(e,e.media,\"seeked\")})),e.embed.on(\"ended\",(()=>{e.media.paused=!0,ve.call(e,e.media,\"ended\")})),e.embed.on(\"error\",(t=>{e.media.error=t,ve.call(e,e.media,\"error\")})),t.customControls&&setTimeout((()=>at.build.call(e)),0)}};function ut(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?\"play\":\"pause\"))}function dt(e){return e.noCookie?\"https://www.youtube-nocookie.com\":\"http:\"===window.location.protocol?\"http://www.youtube.com\":void 0}const mt={setup(){if(le(this.elements.wrapper,this.config.classNames.embed,!0),L(window.YT)&&j(window.YT.Player))mt.ready.call(this);else{const e=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{j(e)&&e(),mt.ready.call(this)},rt(this.config.urls.youtube.sdk).catch((e=>{this.debug.warn(\"YouTube API failed to load\",e)}))}},getTitle(e){Fe($e(this.config.urls.youtube.api,e)).then((e=>{if(L(e)){const{title:t,height:i,width:s}=e;this.config.title=t,at.setTitle.call(this),this.embed.ratio=Ie(s,i)}xe.call(this)})).catch((()=>{xe.call(this)}))},ready(){const e=this,t=e.config.youtube,i=e.media&&e.media.getAttribute(\"id\");if(!W(i)&&i.startsWith(\"youtube-\"))return;let s=e.media.getAttribute(\"src\");W(s)&&(s=e.media.getAttribute(this.config.attributes.embed.id));const n=W(a=s)?null:a.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/)?RegExp.$2:a;var a;const l=Z(\"div\",{id:`${e.provider}-${Math.floor(1e4*Math.random())}`,\"data-poster\":t.customControls?e.poster:void 0});if(e.media=se(l,e.media),t.customControls){const t=e=>`https://i.ytimg.com/vi/${n}/${e}default.jpg`;nt(t(\"maxres\"),121).catch((()=>nt(t(\"sd\"),121))).catch((()=>nt(t(\"hq\")))).then((t=>at.setPoster.call(e,t.src))).then((t=>{t.includes(\"maxres\")||(e.elements.poster.style.backgroundSize=\"cover\")})).catch((()=>{}))}e.embed=new window.YT.Player(e.media,{videoId:n,host:dt(t),playerVars:X({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui&&t.customControls?0:1,disablekb:1,playsinline:e.config.fullscreen.iosNative?0:1,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},t),events:{onError(t){if(!e.media.error){const i=t.data,s={2:\"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.\",5:\"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.\",100:\"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.\",101:\"The owner of the requested video does not allow it to be played in embedded players.\",150:\"The owner of the requested video does not allow it to be played in embedded players.\"}[i]||\"An unknown error occured\";e.media.error={code:i,message:s},ve.call(e,e.media,\"error\")}},onPlaybackRateChange(t){const i=t.target;e.media.playbackRate=i.getPlaybackRate(),ve.call(e,e.media,\"ratechange\")},onReady(i){if(j(e.media.play))return;const s=i.target;mt.getTitle.call(e,n),e.media.play=()=>{ut.call(e,!0),s.playVideo()},e.media.pause=()=>{ut.call(e,!1),s.pauseVideo()},e.media.stop=()=>{s.stopVideo()},e.media.duration=s.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,\"currentTime\",{get:()=>Number(s.getCurrentTime()),set(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,ve.call(e,e.media,\"seeking\"),s.seekTo(t)}}),Object.defineProperty(e.media,\"playbackRate\",{get:()=>s.getPlaybackRate(),set(e){s.setPlaybackRate(e)}});let{volume:a}=e.config;Object.defineProperty(e.media,\"volume\",{get:()=>a,set(t){a=t,s.setVolume(100*a),ve.call(e,e.media,\"volumechange\")}});let{muted:l}=e.config;Object.defineProperty(e.media,\"muted\",{get:()=>l,set(t){const i=O(t)?t:l;l=i,s[i?\"mute\":\"unMute\"](),s.setVolume(100*a),ve.call(e,e.media,\"volumechange\")}}),Object.defineProperty(e.media,\"currentSrc\",{get:()=>s.getVideoUrl()}),Object.defineProperty(e.media,\"ended\",{get:()=>e.currentTime===e.duration});const o=s.getAvailablePlaybackRates();e.options.speed=o.filter((t=>e.config.speed.options.includes(t))),e.supported.ui&&t.customControls&&e.media.setAttribute(\"tabindex\",-1),ve.call(e,e.media,\"timeupdate\"),ve.call(e,e.media,\"durationchange\"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval((()=>{e.media.buffered=s.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBufferedat.build.call(e)),50)},onStateChange(i){const s=i.target;clearInterval(e.timers.playing);switch(e.media.seeking&&[1,2].includes(i.data)&&(e.media.seeking=!1,ve.call(e,e.media,\"seeked\")),i.data){case-1:ve.call(e,e.media,\"timeupdate\"),e.media.buffered=s.getVideoLoadedFraction(),ve.call(e,e.media,\"progress\");break;case 0:ut.call(e,!1),e.media.loop?(s.stopVideo(),s.playVideo()):ve.call(e,e.media,\"ended\");break;case 1:t.customControls&&!e.config.autoplay&&e.media.paused&&!e.embed.hasPlayed?e.media.pause():(ut.call(e,!0),ve.call(e,e.media,\"playing\"),e.timers.playing=setInterval((()=>{ve.call(e,e.media,\"timeupdate\")}),50),e.media.duration!==s.getDuration()&&(e.media.duration=s.getDuration(),ve.call(e,e.media,\"durationchange\")));break;case 2:e.muted||e.embed.unMute(),ut.call(e,!1);break;case 3:ve.call(e,e.media,\"waiting\")}ve.call(e,e.elements.container,\"statechange\",!1,{code:i.data})}}})}},pt={setup(){this.media?(le(this.elements.container,this.config.classNames.type.replace(\"{0}\",this.type),!0),le(this.elements.container,this.config.classNames.provider.replace(\"{0}\",this.provider),!0),this.isEmbed&&le(this.elements.container,this.config.classNames.type.replace(\"{0}\",\"video\"),!0),this.isVideo&&(this.elements.wrapper=Z(\"div\",{class:this.config.classNames.video}),J(this.media,this.elements.wrapper),this.elements.poster=Z(\"div\",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?Le.setup.call(this):this.isYouTube?mt.setup.call(this):this.isVimeo&&ht.setup.call(this)):this.debug.warn(\"No media element found!\")}};class gt{constructor(t){e(this,\"load\",(()=>{this.enabled&&(L(window.google)&&L(window.google.ima)?this.ready():rt(this.player.config.urls.googleIMA.sdk).then((()=>{this.ready()})).catch((()=>{this.trigger(\"error\",new Error(\"Google IMA SDK failed to load\"))})))})),e(this,\"ready\",(()=>{var e;this.enabled||((e=this).manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()),this.startSafetyTimer(12e3,\"ready()\"),this.managerPromise.then((()=>{this.clearSafetyTimer(\"onAdsManagerLoaded()\")})),this.listeners(),this.setupIMA()})),e(this,\"setupIMA\",(()=>{this.elements.container=Z(\"div\",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(e=>this.onAdsManagerLoaded(e)),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e)),!1),this.requestAds()})),e(this,\"requestAds\",(()=>{const{container:e}=this.player.elements;try{const t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(e){this.onAdError(e)}})),e(this,\"pollCountdown\",((e=!1)=>{if(!e)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute(\"data-badge-text\");this.countdownTimer=setInterval((()=>{const e=Ue(Math.max(this.manager.getRemainingTime(),0)),t=`${He.get(\"advertisement\",this.player.config)} - ${e}`;this.elements.container.setAttribute(\"data-badge-text\",t)}),100)})),e(this,\"onAdsManagerLoaded\",(e=>{if(!this.enabled)return;const t=new google.ima.AdsRenderingSettings;t.restoreCustomPlaybackStateOnAdBreakComplete=!0,t.enablePreloading=!0,this.manager=e.getAdsManager(this.player,t),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e))),Object.keys(google.ima.AdEvent.Type).forEach((e=>{this.manager.addEventListener(google.ima.AdEvent.Type[e],(e=>this.onAdEvent(e)))})),this.trigger(\"loaded\")})),e(this,\"addCuePoints\",(()=>{W(this.cuePoints)||this.cuePoints.forEach((e=>{if(0!==e&&-1!==e&&e{const{container:t}=this.player.elements,i=e.getAd(),s=e.getAdData();switch((e=>{ve.call(this.player,this.player.media,`ads${e.replace(/_/g,\"\").toLowerCase()}`)})(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger(\"loaded\"),this.pollCountdown(!0),i.isLinear()||(i.width=t.offsetWidth,i.height=t.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:s.adError&&this.player.debug.warn(`Non-fatal ad error: ${s.adError.getMessage()}`)}})),e(this,\"onAdError\",(e=>{this.cancel(),this.player.debug.warn(\"Ads error\",e)})),e(this,\"listeners\",(()=>{const{container:e}=this.player.elements;let t;this.player.on(\"canplay\",(()=>{this.addCuePoints()})),this.player.on(\"ended\",(()=>{this.loader.contentComplete()})),this.player.on(\"timeupdate\",(()=>{t=this.player.currentTime})),this.player.on(\"seeked\",(()=>{const e=this.player.currentTime;W(this.cuePoints)||this.cuePoints.forEach(((i,s)=>{t{this.manager&&this.manager.resize(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL)}))})),e(this,\"play\",(()=>{const{container:e}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then((()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(e){this.onAdError(e)}})).catch((()=>{}))})),e(this,\"resumeContent\",(()=>{this.elements.container.style.zIndex=\"\",this.playing=!1,ke(this.player.media.play())})),e(this,\"pauseContent\",(()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()})),e(this,\"cancel\",(()=>{this.initialized&&this.resumeContent(),this.trigger(\"error\"),this.loadAds()})),e(this,\"loadAds\",(()=>{this.managerPromise.then((()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise((e=>{this.on(\"loaded\",e),this.player.debug.log(this.manager)})),this.initialized=!1,this.requestAds()})).catch((()=>{}))})),e(this,\"trigger\",((e,...t)=>{const i=this.events[e];D(i)&&i.forEach((e=>{j(e)&&e.apply(this,t)}))})),e(this,\"on\",((e,t)=>(D(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this))),e(this,\"startSafetyTimer\",((e,t)=>{this.player.debug.log(`Safety timer invoked from: ${t}`),this.safetyTimer=setTimeout((()=>{this.cancel(),this.clearSafetyTimer(\"startSafetyTimer()\")}),e)})),e(this,\"clearSafetyTimer\",(e=>{I(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${e}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)})),this.player=t,this.config=t.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise(((e,t)=>{this.on(\"loaded\",e),this.on(\"error\",t)})),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!W(e.publisherId)||U(e.tagUrl))}get tagUrl(){const{config:e}=this;if(U(e.tagUrl))return e.tagUrl;return`https://go.aniview.com/api/adserver6/vast/?${Ke({AV_PUBLISHERID:\"58c25bb0073ef448b1087ad6\",AV_CHANNELID:\"5a0458dc28a06145e4519d21\",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId})}`}}function ft(e=0,t=0,i=255){return Math.min(Math.max(e,t),i)}const bt=e=>{const t=[];return e.split(/\\r\\n\\r\\n|\\n\\n|\\r\\r/).forEach((e=>{const i={};e.split(/\\r\\n|\\n|\\r/).forEach((e=>{if($(i.startTime)){if(!W(e.trim())&&W(i.text)){const t=e.trim().split(\"#xywh=\");[i.text]=t,t[1]&&([i.x,i.y,i.w,i.h]=t[1].split(\",\"))}}else{const t=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);t&&(i.startTime=60*Number(t[1]||0)*60+60*Number(t[2])+Number(t[3])+Number(`0.${t[4]}`),i.endTime=60*Number(t[6]||0)*60+60*Number(t[7])+Number(t[8])+Number(`0.${t[9]}`))}})),i.text&&t.push(i)})),t},yt=(e,t)=>{const i={};return e>t.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i};class vt{constructor(t){e(this,\"load\",(()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.loaded=!0)}))})),e(this,\"getThumbnails\",(()=>new Promise((e=>{const{src:t}=this.player.config.previewThumbnails;if(W(t))throw new Error(\"Missing previewThumbnails.src config attribute\");const i=()=>{this.thumbnails.sort(((e,t)=>e.height-t.height)),this.player.debug.log(\"Preview thumbnails\",this.thumbnails),e()};if(j(t))t((e=>{this.thumbnails=e,i()}));else{const e=(_(t)?[t]:t).map((e=>this.getThumbnail(e)));Promise.all(e).then(i)}})))),e(this,\"getThumbnail\",(e=>new Promise((t=>{Fe(e).then((i=>{const s={frames:bt(i),height:null,urlPrefix:\"\"};s.frames[0].text.startsWith(\"/\")||s.frames[0].text.startsWith(\"http://\")||s.frames[0].text.startsWith(\"https://\")||(s.urlPrefix=e.substring(0,e.lastIndexOf(\"/\")+1));const n=new Image;n.onload=()=>{s.height=n.naturalHeight,s.width=n.naturalWidth,this.thumbnails.push(s),t()},n.src=s.urlPrefix+s.frames[0].text}))})))),e(this,\"startMove\",(e=>{if(this.loaded&&R(e)&&[\"touchmove\",\"mousemove\"].includes(e.type)&&this.player.media.duration){if(\"touchmove\"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t,i;const s=this.player.elements.progress.getBoundingClientRect(),n=100/s.width*(e.pageX-s.left);this.seekTime=this.player.media.duration*(n/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=Ue(this.seekTime);const a=null===(t=this.player.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(this.seekTime)));a&&this.elements.thumb.time.insertAdjacentHTML(\"afterbegin\",`${a.label}
    `)}this.showImageAtCurrentTime()}})),e(this,\"endMove\",(()=>{this.toggleThumbContainer(!1,!0)})),e(this,\"startScrubbing\",(e=>{(I(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))})),e(this,\"endScrubbing\",(()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):ye.call(this.player,this.player.media,\"timeupdate\",(()=>{this.mouseDown||this.toggleScrubbingContainer(!1)}))})),e(this,\"listeners\",(()=>{this.player.on(\"play\",(()=>{this.toggleThumbContainer(!1,!0)})),this.player.on(\"seeked\",(()=>{this.toggleThumbContainer(!1)})),this.player.on(\"timeupdate\",(()=>{this.lastTime=this.player.media.currentTime}))})),e(this,\"render\",(()=>{this.elements.thumb.container=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const e=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=Z(\"span\",{},\"00:00\"),e.appendChild(this.elements.thumb.time),this.elements.thumb.imageContainer.appendChild(e),H(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)})),e(this,\"destroy\",(()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()})),e(this,\"showImageAtCurrentTime\",(()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const e=this.thumbnails[0].frames.findIndex((e=>this.seekTime>=e.startTime&&this.seekTime<=e.endTime)),t=e>=0;let i=0;this.mouseDown||this.toggleThumbContainer(t),t&&(this.thumbnails.forEach(((t,s)=>{this.loadedImages.includes(t.frames[e].text)&&(i=s)})),e!==this.showingThumb&&(this.showingThumb=e,this.loadImage(i)))})),e(this,\"loadImage\",((e=0)=>{const t=this.showingThumb,i=this.thumbnails[e],{urlPrefix:s}=i,n=i.frames[t],a=i.frames[t].text,l=s+a;if(this.currentImageElement&&this.currentImageElement.dataset.filename===a)this.showImage(this.currentImageElement,n,e,t,a,!1),this.currentImageElement.dataset.index=t,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const i=new Image;i.src=l,i.dataset.index=t,i.dataset.filename=a,this.showingThumbFilename=a,this.player.debug.log(`Loading image: ${l}`),i.onload=()=>this.showImage(i,n,e,t,a,!0),this.loadingImage=i,this.removeOldImages(i)}})),e(this,\"showImage\",((e,t,i,s,n,a=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${s}. qual: ${i}. newimg: ${a}`),this.setImageSizeAndOffset(e,t),a&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(s,!0).then(this.preloadNearby(s,!1)).then(this.getHigherQuality(i,e,t,n))})),e(this,\"removeOldImages\",(e=>{Array.from(this.currentImageContainer.children).forEach((t=>{if(\"img\"!==t.tagName.toLowerCase())return;const i=this.usingSprites?500:1e3;if(t.dataset.index!==e.dataset.index&&!t.dataset.deleting){t.dataset.deleting=!0;const{currentImageContainer:e}=this;setTimeout((()=>{e.removeChild(t),this.player.debug.log(`Removing thumb: ${t.dataset.filename}`)}),i)}}))})),e(this,\"preloadNearby\",((e,t=!0)=>new Promise((i=>{setTimeout((()=>{const s=this.thumbnails[0].frames[e].text;if(this.showingThumbFilename===s){let n;n=t?this.thumbnails[0].frames.slice(e):this.thumbnails[0].frames.slice(0,e).reverse();let a=!1;n.forEach((e=>{const t=e.text;if(t!==s&&!this.loadedImages.includes(t)){a=!0,this.player.debug.log(`Preloading thumb filename: ${t}`);const{urlPrefix:e}=this.thumbnails[0],s=e+t,n=new Image;n.src=s,n.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${t}`),this.loadedImages.includes(t)||this.loadedImages.push(t),i()}}})),a||i()}}),300)})))),e(this,\"getHigherQuality\",((e,t,i,s)=>{if(e{this.showingThumbFilename===s&&(this.player.debug.log(`Showing higher quality thumb for: ${s}`),this.loadImage(e+1))}),300)}})),e(this,\"toggleThumbContainer\",((e=!1,t=!1)=>{const i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,\"toggleScrubbingContainer\",((e=!1)=>{const t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,\"determineContainerAutoSizing\",(()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)})),e(this,\"setThumbContainerSizeAndPos\",(()=>{const{imageContainer:e}=this.elements.thumb;if(this.sizeSpecifiedInCSS){if(e.clientHeight>20&&e.clientWidth<20){const t=Math.floor(e.clientHeight*this.thumbAspectRatio);e.style.width=`${t}px`}else if(e.clientHeight<20&&e.clientWidth>20){const t=Math.floor(e.clientWidth/this.thumbAspectRatio);e.style.height=`${t}px`}}else{const t=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);e.style.height=`${this.thumbContainerHeight}px`,e.style.width=`${t}px`}this.setThumbContainerPos()})),e(this,\"setThumbContainerPos\",(()=>{const e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),{container:i}=this.elements.thumb,s=t.left-e.left+10,n=t.right-e.left-i.clientWidth-10,a=this.mousePosX-e.left-i.clientWidth/2,l=ft(a,s,n);i.style.left=`${l}px`,i.style.setProperty(\"--preview-arrow-offset\",a-l+\"px\")})),e(this,\"setScrubbingContainerSize\",(()=>{const{width:e,height:t}=yt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${e}px`,this.elements.scrubbing.container.style.height=`${t}px`})),e(this,\"setImageSizeAndOffset\",((e,t)=>{if(!this.usingSprites)return;const i=this.thumbContainerHeight/t.h;e.style.height=e.naturalHeight*i+\"px\",e.style.width=e.naturalWidth*i+\"px\",e.style.left=`-${t.x*i}px`,e.style.top=`-${t.y*i}px`})),this.player=t,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes(\"w\")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=yt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}const wt={insertElements(e,t){_(t)?ee(e,this.media,{src:t}):D(t)&&t.forEach((t=>{ee(e,this.media,t)}))},change(e){Q(e,\"sources.length\")?(Le.cancelRequests.call(this),this.destroy.call(this,(()=>{this.options.quality=[],te(this.media),this.media=null,H(this.elements.container)&&this.elements.container.removeAttribute(\"class\");const{sources:t,type:i}=e,[{provider:s=Ge.html5,src:n}]=t,a=\"html5\"===s?i:\"div\",l=\"html5\"===s?{}:{src:n};Object.assign(this,{provider:s,type:i,supported:me.check(i,s,this.config.playsinline),media:Z(a,l)}),this.elements.container.appendChild(this.media),O(e.autoplay)&&(this.config.autoplay=e.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute(\"crossorigin\",\"\"),this.config.autoplay&&this.media.setAttribute(\"autoplay\",\"\"),W(e.poster)||(this.poster=e.poster),this.config.loop.active&&this.media.setAttribute(\"loop\",\"\"),this.config.muted&&this.media.setAttribute(\"muted\",\"\"),this.config.playsinline&&this.media.setAttribute(\"playsinline\",\"\")),at.addStyleHook.call(this),this.isHTML5&&wt.insertElements.call(this,\"source\",t),this.config.title=e.title,pt.setup.call(this),this.isHTML5&&Object.keys(e).includes(\"tracks\")&&wt.insertElements.call(this,\"track\",e.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.isHTML5&&this.media.load(),W(e.previewThumbnails)||(Object.assign(this.config.previewThumbnails,e.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))),this.fullscreen.update()}),!0)):this.debug.warn(\"Invalid source format\")}};class Tt{constructor(t,i){if(e(this,\"play\",(()=>j(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((()=>this.ads.play())).catch((()=>ke(this.media.play()))),this.media.play()):null)),e(this,\"pause\",(()=>this.playing&&j(this.media.pause)?this.media.pause():null)),e(this,\"togglePlay\",(e=>(O(e)?e:!this.playing)?this.play():this.pause())),e(this,\"stop\",(()=>{this.isHTML5?(this.pause(),this.restart()):j(this.media.stop)&&this.media.stop()})),e(this,\"restart\",(()=>{this.currentTime=0})),e(this,\"rewind\",(e=>{this.currentTime-=$(e)?e:this.config.seekTime})),e(this,\"forward\",(e=>{this.currentTime+=$(e)?e:this.config.seekTime})),e(this,\"increaseVolume\",(e=>{const t=this.media.muted?0:this.volume;this.volume=t+($(e)?e:0)})),e(this,\"decreaseVolume\",(e=>{this.increaseVolume(-e)})),e(this,\"airplay\",(()=>{me.airplay&&this.media.webkitShowPlaybackTargetPicker()})),e(this,\"toggleControls\",(e=>{if(this.supported.ui&&!this.isAudio){const t=oe(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,s=le(this.elements.container,this.config.classNames.hideControls,i);if(s&&D(this.config.controls)&&this.config.controls.includes(\"settings\")&&!W(this.config.settings)&&We.toggleMenu.call(this,!1),s!==t){const e=s?\"controlshidden\":\"controlsshown\";ve.call(this,this.media,e)}return!s}return!1})),e(this,\"on\",((e,t)=>{fe.call(this,this.elements.container,e,t)})),e(this,\"once\",((e,t)=>{ye.call(this,this.elements.container,e,t)})),e(this,\"off\",((e,t)=>{be(this.elements.container,e,t)})),e(this,\"destroy\",((e,t=!1)=>{if(!this.ready)return;const i=()=>{document.body.style.overflow=\"\",this.embed=null,t?(Object.keys(this.elements).length&&(te(this.elements.buttons.play),te(this.elements.captions),te(this.elements.controls),te(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),j(e)&&e()):(we.call(this),Le.cancelRequests.call(this),se(this.elements.original,this.elements.container),ve.call(this,this.elements.original,\"destroyed\",!0),j(e)&&e.call(this.elements.original),this.ready=!1,setTimeout((()=>{this.elements=null,this.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(at.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&j(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))})),e(this,\"supports\",(e=>me.mime.call(this,e))),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=me.touch,this.media=t,_(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||q(this.media)||D(this.media))&&(this.media=this.media[0]),this.config=X({},Qe,Tt.defaults,i||{},(()=>{try{return JSON.parse(this.media.getAttribute(\"data-plyr-config\"))}catch(e){return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new it(this.config.debug),this.debug.log(\"Config\",this.config),this.debug.log(\"Support\",me),I(this.media)||!H(this.media))return void this.debug.error(\"Setup failed: no suitable element passed\");if(this.media.plyr)return void this.debug.warn(\"Target already setup\");if(!this.config.enabled)return void this.debug.error(\"Setup failed: disabled by config\");if(!me.check().api)return void this.debug.error(\"Setup failed: no support\");const s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;const n=this.media.tagName.toLowerCase();let a=null,l=null;switch(n){case\"div\":if(a=this.media.querySelector(\"iframe\"),H(a)){if(l=ze(a.getAttribute(\"src\")),this.provider=function(e){return/^(https?:\\/\\/)?(www\\.)?(youtube\\.com|youtube-nocookie\\.com|youtu\\.?be)\\/.+$/.test(e)?Ge.youtube:/^https?:\\/\\/player.vimeo.com\\/video\\/\\d{0,9}(?=\\b|\\/)/.test(e)?Ge.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=a,this.elements.container.className=\"\",l.search.length){const e=[\"1\",\"true\"];e.includes(l.searchParams.get(\"autoplay\"))&&(this.config.autoplay=!0),e.includes(l.searchParams.get(\"loop\"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=e.includes(l.searchParams.get(\"playsinline\")),this.config.youtube.hl=l.searchParams.get(\"hl\")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(W(this.provider)||!Object.values(Ge).includes(this.provider))return void this.debug.error(\"Setup failed: Invalid provider\");this.type=et;break;case\"video\":case\"audio\":this.type=n,this.provider=Ge.html5,this.media.hasAttribute(\"crossorigin\")&&(this.config.crossorigin=!0),this.media.hasAttribute(\"autoplay\")&&(this.config.autoplay=!0),(this.media.hasAttribute(\"playsinline\")||this.media.hasAttribute(\"webkit-playsinline\"))&&(this.config.playsinline=!0),this.media.hasAttribute(\"muted\")&&(this.config.muted=!0),this.media.hasAttribute(\"loop\")&&(this.config.loop.active=!0);break;default:return void this.debug.error(\"Setup failed: unsupported type\")}this.supported=me.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new lt(this),this.storage=new Re(this),this.media.plyr=this,H(this.elements.container)||(this.elements.container=Z(\"div\",{tabindex:0}),J(this.media,this.elements.container)),at.migrateStyles.call(this),at.addStyleHook.call(this),pt.setup.call(this),this.config.debug&&fe.call(this,this.elements.container,this.config.events.join(\" \"),(e=>{this.debug.log(`event: ${e.type}`)})),this.fullscreen=new st(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new gt(this)),this.isHTML5&&this.config.autoplay&&this.once(\"canplay\",(()=>ke(this.play()))),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))):this.debug.error(\"Setup failed: no support\")}get isHTML5(){return this.provider===Ge.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===Ge.youtube}get isVimeo(){return this.provider===Ge.vimeo}get isVideo(){return this.type===et}get isAudio(){return this.type===Ze}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&0===this.currentTime)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const t=$(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return $(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=$(t)&&t!==1/0?t:0;return e||i}set volume(e){let t=e;_(t)&&(t=Number(t)),$(t)||(t=this.storage.get(\"volume\")),$(t)||({volume:t}=this.config),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!W(e)&&this.muted&&t>0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let t=e;O(t)||(t=this.storage.get(\"muted\")),O(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}set speed(e){let t=null;$(e)&&(t=e),$(t)||(t=this.storage.get(\"speed\")),$(t)||(t=this.config.speed.selected);const{minimumSpeed:i,maximumSpeed:s}=this;t=ft(t,i,s),this.config.speed.selected=t,setTimeout((()=>{this.media&&(this.media.playbackRate=t)}),0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const t=this.config.quality,i=this.options.quality;if(!i.length)return;let s=[!W(e)&&Number(e),this.storage.get(\"quality\"),t.selected,t.default].find($),n=!0;if(!i.includes(s)){const e=Ae(i,s);this.debug.warn(`Unsupported quality option: ${s}, using ${e} instead`),s=e,n=!1}t.selected=s,this.media.quality=s,n&&this.storage.set({quality:s})}get quality(){return this.media.quality}set loop(e){const t=O(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t}get loop(){return Boolean(this.media.loop)}set source(e){wt.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return U(e)?e:this.source}set download(e){U(e)&&(this.config.urls.download=e,We.setDownloadUrl.call(this))}set poster(e){this.isVideo?at.setPoster.call(this,e,!1).catch((()=>{})):this.debug.warn(\"Poster can only be set for video\")}get poster(){return this.isVideo?this.media.getAttribute(\"poster\")||this.media.getAttribute(\"data-poster\"):null}get ratio(){if(!this.isVideo)return null;const e=Me(Ne.call(this));return D(e)?e.join(\":\"):e}set ratio(e){this.isVideo?_(e)&&Pe(e)?(this.config.ratio=Me(e),xe.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn(\"Aspect ratio can only be set for video\")}set autoplay(e){this.config.autoplay=O(e)?e:this.config.autoplay}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){Ye.toggle.call(this,e,!1)}set currentTrack(e){Ye.set.call(this,e,!1),Ye.setup.call(this)}get currentTrack(){const{toggled:e,currentTrack:t}=this.captions;return e?t:-1}set language(e){Ye.setLanguage.call(this,e,!1)}get language(){return(Ye.getCurrentTrack.call(this)||{}).language}set pip(e){if(!me.pip)return;const t=O(e)?e:!this.pip;j(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?Xe:Je),j(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}get pip(){return me.pip?W(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===Xe:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))}static supported(e,t,i){return me.check(e,t,i)}static loadSprite(e,t){return Ve(e,t)}static setup(e,t={}){let i=null;return _(e)?i=Array.from(document.querySelectorAll(e)):q(e)?i=Array.from(e):D(e)&&(i=e.filter(H)),W(i)?null:i.map((e=>new Tt(e,t)))}}var kt;return Tt.defaults=(kt=Qe,JSON.parse(JSON.stringify(kt))),Tt}));\n//# sourceMappingURL=plyr.min.js.map\n","'use strict';\n\nvar alphabet;\nvar alphabetIndexMap;\nvar alphabetIndexMapLength = 0;\n\nfunction isNumberCode(code) {\n return code >= 48 && code <= 57;\n}\n\nfunction naturalCompare(a, b) {\n var lengthA = (a += '').length;\n var lengthB = (b += '').length;\n var aIndex = 0;\n var bIndex = 0;\n\n while (aIndex < lengthA && bIndex < lengthB) {\n var charCodeA = a.charCodeAt(aIndex);\n var charCodeB = b.charCodeAt(bIndex);\n\n if (isNumberCode(charCodeA)) {\n if (!isNumberCode(charCodeB)) {\n return charCodeA - charCodeB;\n }\n\n var numStartA = aIndex;\n var numStartB = bIndex;\n\n while (charCodeA === 48 && ++numStartA < lengthA) {\n charCodeA = a.charCodeAt(numStartA);\n }\n while (charCodeB === 48 && ++numStartB < lengthB) {\n charCodeB = b.charCodeAt(numStartB);\n }\n\n var numEndA = numStartA;\n var numEndB = numStartB;\n\n while (numEndA < lengthA && isNumberCode(a.charCodeAt(numEndA))) {\n ++numEndA;\n }\n while (numEndB < lengthB && isNumberCode(b.charCodeAt(numEndB))) {\n ++numEndB;\n }\n\n var difference = numEndA - numStartA - numEndB + numStartB; // numA length - numB length\n if (difference) {\n return difference;\n }\n\n while (numStartA < numEndA) {\n difference = a.charCodeAt(numStartA++) - b.charCodeAt(numStartB++);\n if (difference) {\n return difference;\n }\n }\n\n aIndex = numEndA;\n bIndex = numEndB;\n continue;\n }\n\n if (charCodeA !== charCodeB) {\n if (\n charCodeA < alphabetIndexMapLength &&\n charCodeB < alphabetIndexMapLength &&\n alphabetIndexMap[charCodeA] !== -1 &&\n alphabetIndexMap[charCodeB] !== -1\n ) {\n return alphabetIndexMap[charCodeA] - alphabetIndexMap[charCodeB];\n }\n\n return charCodeA - charCodeB;\n }\n\n ++aIndex;\n ++bIndex;\n }\n\n if (aIndex >= lengthA && bIndex < lengthB && lengthA >= lengthB) {\n return -1;\n }\n\n if (bIndex >= lengthB && aIndex < lengthA && lengthB >= lengthA) {\n return 1;\n }\n\n return lengthA - lengthB;\n}\n\nnaturalCompare.caseInsensitive = naturalCompare.i = function(a, b) {\n return naturalCompare(('' + a).toLowerCase(), ('' + b).toLowerCase());\n};\n\nObject.defineProperties(naturalCompare, {\n alphabet: {\n get: function() {\n return alphabet;\n },\n\n set: function(value) {\n alphabet = value;\n alphabetIndexMap = [];\n\n var i = 0;\n\n if (alphabet) {\n for (; i < alphabet.length; i++) {\n alphabetIndexMap[alphabet.charCodeAt(i)] = i;\n }\n }\n\n alphabetIndexMapLength = alphabetIndexMap.length;\n\n for (i = 0; i < alphabetIndexMapLength; i++) {\n if (alphabetIndexMap[i] === undefined) {\n alphabetIndexMap[i] = -1;\n }\n }\n },\n },\n});\n\nmodule.exports = naturalCompare;\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].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","function collapsible(): void {\r\n const selector = \"[data-js-collapsible]\"\r\n const openClass = \"is-open\"\r\n const hoverClass = \"headroom--collapsible-hover\"\r\n\r\n function handleClickOutside(e: Event) {\r\n e.stopPropagation()\r\n const collapsibles = getAllCollapsibles()\r\n const eventTarget = e.target as HTMLElement\r\n collapsibles.forEach((collapsible: HTMLElement) => {\r\n const targetElement = document.getElementById(collapsible.getAttribute(\"aria-controls\"))\r\n\r\n if (!targetElement.contains(eventTarget) && !collapsible.contains(eventTarget)) {\r\n close(collapsible)\r\n }\r\n })\r\n }\r\n\r\n function getAllCollapsibles() {\r\n return Array.from(document.querySelectorAll(selector))\r\n }\r\n\r\n function indicateOpenStateOnParent(el: HTMLElement) {\r\n const parentId = el.dataset.jsCollapsibleParentId\r\n const parentIndicatorClass = el.dataset.jsCollapsibleParentIndicatorClass\r\n const mainHeaderId = \"header\"\r\n const mainHeaderClass = el.dataset.jsCollapsibleMainHeaderClass\r\n\r\n if (!(parentId && mainHeaderId && parentIndicatorClass && mainHeaderClass)) return\r\n\r\n const parent = document.getElementById(parentId)\r\n const mainHeader = document.getElementById(mainHeaderId)\r\n\r\n if (!(parent && mainHeader)) return\r\n\r\n if (parent.querySelectorAll(`.${openClass}`).length > 0) {\r\n parent.classList.add(parentIndicatorClass)\r\n mainHeader.classList.add(mainHeaderClass)\r\n } else {\r\n parent.classList.remove(parentIndicatorClass)\r\n mainHeader.classList.remove(mainHeaderClass)\r\n }\r\n }\r\n\r\n function close(el: HTMLElement) {\r\n const targetElement = document.getElementById(el.getAttribute(\"aria-controls\"))\r\n const collapsibleBodyClass = el.dataset.jsCollapsibleBodyClass\r\n\r\n if (collapsibleBodyClass) {\r\n document.body.classList.remove(collapsibleBodyClass)\r\n }\r\n\r\n el.setAttribute(\"aria-expanded\", \"false\")\r\n targetElement.classList.remove(openClass)\r\n\r\n indicateOpenStateOnParent(el)\r\n }\r\n\r\n function toggleExpandedState(el: HTMLElement) {\r\n const isExpanded = el.getAttribute(\"aria-expanded\") === \"true\"\r\n const collapsibleBodyClass = el.dataset.jsCollapsibleBodyClass\r\n\r\n if (collapsibleBodyClass) {\r\n document.body.classList.toggle(collapsibleBodyClass)\r\n }\r\n\r\n el.setAttribute(\"aria-expanded\", isExpanded ? \"false\" : \"true\")\r\n }\r\n\r\n function toggleTargetNodeVisibility(el: HTMLElement) {\r\n el.classList.toggle(openClass)\r\n }\r\n\r\n function addEventListeners() {\r\n const collapsibles = getAllCollapsibles()\r\n const mainHeaderElement = document.getElementById(\"header\") as HTMLElement\r\n\r\n collapsibles.forEach((collapsible: HTMLElement) => {\r\n const targetElement = document.getElementById(collapsible.getAttribute(\"aria-controls\"))\r\n\r\n collapsible.addEventListener(\"click\", function (e): void {\r\n e.preventDefault()\r\n\r\n toggleExpandedState(e.currentTarget as HTMLElement)\r\n toggleTargetNodeVisibility(targetElement)\r\n indicateOpenStateOnParent(e.currentTarget as HTMLElement)\r\n })\r\n\r\n const parentNavItem = collapsible.closest(\".nav-main__item\")\r\n\r\n if (parentNavItem) {\r\n parentNavItem.addEventListener(\"mouseenter\", function () {\r\n mainHeaderElement.classList.add(hoverClass)\r\n })\r\n\r\n parentNavItem.addEventListener(\"mouseleave\", function () {\r\n mainHeaderElement.classList.remove(hoverClass)\r\n })\r\n }\r\n })\r\n\r\n window.addEventListener(\"click\", handleClickOutside)\r\n }\r\n\r\n function init() {\r\n addEventListeners()\r\n }\r\n\r\n init()\r\n}\r\n\r\nexport default collapsible\r\n","var win = window;\n\nexport var raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n","var win = window;\n\nexport var caf = win.cancelAnimationFrame\n || win.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n","export function extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}","export function checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}","export function setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}","export function getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}","export var docElement = document.documentElement;","import { docElement } from './docElement.js';\n\nexport function setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}","import { docElement } from './docElement.js';\n\nexport function resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}","// cross browsers addRule method\nimport { raf } from './raf.js';\nexport function addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ?\n sheet.insertRule(selector + '{' + rules + '}', index) :\n sheet.addRule(selector, rules, index);\n // });\n}","export function getCssRulesLength(sheet) {\n var rule = ('insertRule' in sheet) ? sheet.cssRules : sheet.rules;\n return rule.length;\n}","// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nexport function forEach (arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}","export var classListSupport = 'classList' in document.createElement('_');","import { classListSupport } from './classListSupport.js';\n\nvar hasClass = classListSupport ?\n function (el, str) { return el.classList.contains(str); } :\n function (el, str) { return el.className.indexOf(str) >= 0; };\n\nexport { classListSupport, hasClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar addClass = classListSupport ?\n function (el, str) {\n if (!hasClass(el, str)) { el.classList.add(str); }\n } :\n function (el, str) {\n if (!hasClass(el, str)) { el.className += ' ' + str; }\n };\n\nexport { addClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar removeClass = classListSupport ?\n function (el, str) {\n if (hasClass(el, str)) { el.classList.remove(str); }\n } :\n function (el, str) {\n if (hasClass(el, str)) { el.className = el.className.replace(str, ''); }\n };\n\nexport { removeClass };","export function hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}","export function getAttr(el, attr) {\n return el.getAttribute(attr);\n}","export function isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\"; \n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function setAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n if (Object.prototype.toString.call(attrs) !== '[object Object]') { return; }\n\n for (var i = els.length; i--;) {\n for(var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function removeAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n attrs = (attrs instanceof Array) ? attrs : [attrs];\n\n var attrLength = attrs.length;\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}","export function arrayFromNodeList (nl) {\n var arr = [];\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n return arr;\n}","export function hideElement(el, forceHide) {\n if (el.style.display !== 'none') { el.style.display = 'none'; }\n}","export function showElement(el, forceHide) {\n if (el.style.display === 'none') { el.style.display = ''; }\n}","export function isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}","export function whichProperty(props){\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n \n prefixes.forEach(function(prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n for(var i = 0; i < props.length; i++){\n var prop = props[i];\n if( el.style[prop] !== undefined ){ return prop; }\n }\n\n return false; // explicit for ie9-\n}\n","// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nexport function getEndProperty(propIn, propOut) {\n var endProp = false;\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n return endProp;\n}","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\nexport var passiveOption = supportsPassive ? { passive: true } : false;","import { passiveOption } from './passiveOption.js';\n\nexport function addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}","import { passiveOption } from './passiveOption.js';\n\nexport function removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}","export function Events() {\n return {\n topics: {},\n on: function (eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function (eventName, data) {\n data.type = eventName;\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function(fn) {\n fn(data, eventName);\n });\n }\n }\n };\n};","// Object.keys\nif (!Object.keys) {\n Object.keys = function(object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n}\n\n// ChildNode.remove\nif(!(\"remove\" in Element.prototype)){\n Element.prototype.remove = function(){\n if(this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\nimport { raf } from './helpers/raf.js';\nimport { caf } from './helpers/caf.js';\nimport { extend } from './helpers/extend.js';\nimport { checkStorageValue } from './helpers/checkStorageValue.js';\nimport { setLocalStorage } from './helpers/setLocalStorage.js';\nimport { getSlideId } from './helpers/getSlideId.js';\nimport { calc } from './helpers/calc.js';\nimport { percentageLayout } from './helpers/percentageLayout.js';\nimport { mediaquerySupport } from './helpers/mediaquerySupport.js';\nimport { createStyleSheet } from './helpers/createStyleSheet.js';\nimport { addCSSRule } from './helpers/addCSSRule.js';\nimport { removeCSSRule } from './helpers/removeCSSRule.js';\nimport { getCssRulesLength } from './helpers/getCssRulesLength.js';\nimport { toDegree } from './helpers/toDegree.js';\nimport { getTouchDirection } from './helpers/getTouchDirection.js';\nimport { forEach } from './helpers/forEach.js';\nimport { hasClass } from './helpers/hasClass.js';\nimport { addClass } from './helpers/addClass.js';\nimport { removeClass } from './helpers/removeClass.js';\nimport { hasAttr } from './helpers/hasAttr.js';\nimport { getAttr } from './helpers/getAttr.js';\nimport { setAttrs } from './helpers/setAttrs.js';\nimport { removeAttrs } from './helpers/removeAttrs.js';\nimport { arrayFromNodeList } from './helpers/arrayFromNodeList.js';\nimport { hideElement } from './helpers/hideElement.js';\nimport { showElement } from './helpers/showElement.js';\nimport { isVisible } from './helpers/isVisible.js';\nimport { whichProperty } from './helpers/whichProperty.js';\nimport { has3DTransforms } from './helpers/has3DTransforms.js';\nimport { getEndProperty } from './helpers/getEndProperty.js';\nimport { addEvents } from './helpers/addEvents.js';\nimport { removeEvents } from './helpers/removeEvents.js';\nimport { Events } from './helpers/events.js';\nimport { jsTransform } from './helpers/jsTransform.js';\n\nexport var tns = function(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n nonce: false\n }, options || {});\n\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date;\n\n try {\n tnsStorage = win.localStorage;\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n if (!localStorageAccess) { tnsStorage = {}; }\n } catch(e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function(item) { tnsStorage.removeItem(item); });\n }\n // update browserInfo\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess);\n\n // get element nodes from selectors\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n\n tnsList.forEach(function(item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) { console.warn('Can\\'t find', options[item]); }\n return;\n }\n }\n });\n\n // make sure at least 1 slide\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) { console.warn('No slides found in', options.container); }\n return;\n }\n\n // update options\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n for (var key in responsive) {\n var val = responsive[key];\n // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n val = typeof val === 'number' ? {items: val} : val;\n responsiveTem[key] = val;\n }\n responsive = responsiveTem;\n responsiveTem = null;\n }\n\n // update options\n function updateOptions (obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') { obj[key] = 'page'; }\n if (key === 'edgePadding') { obj[key] = false; }\n if (key === 'autoHeight') { obj[key] = false; }\n }\n\n // update responsive options\n if (key === 'responsive') { updateOptions(obj[key]); }\n }\n }\n if (!carousel) { updateOptions(options); }\n\n\n // === define and set variables ===\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n if (responsive) { setBreakpointZone(); }\n if (carousel) { container.className += ' tns-vpfix'; }\n\n // fixedWidth: viewport > rightBoundary > indexMax\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions, // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = (!carousel || !loop) ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = (function () {\n if (fixedWidth) {\n return function() { return center && !loop ? slideCount - 1 : Math.ceil(- rightBoundary / (fixedWidth + gutter)); };\n } else if (autoWidth) {\n return function() {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= - rightBoundary) { return i; }\n }\n };\n } else {\n return function() {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n })(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {'visibilitychange': onVisibilityChange},\n docmentKeydownEvent = {'keydown': onDocumentKeydown},\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n }, dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false;\n\n // controls\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n }\n\n // nav\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n }\n\n // autoplay\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['', ' animation'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ?\n function(a, b) { return a.x - b.x; } :\n function(a, b) { return a.y - b.y; };\n }\n\n // disable slider when slidecount <= items\n if (!autoWidth) { resetVariblesWhenDisable(disable || freeze); }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n\n }\n\n if (carousel) { container.className = container.className.replace('tns-vpfix', ''); }\n initStructure();\n initSheet();\n initSliderTransform();\n\n // === COMMON FUNCTIONS === //\n function resetVariblesWhenDisable (condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide () {\n var tem = carousel ? index - cloneCount : index;\n while (tem < 0) { tem += slideCount; }\n return tem%slideCount + 1;\n }\n\n function getStartIndex (ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex (i) {\n if (i == null) { i = index; }\n\n if (carousel) { i -= cloneCount; }\n while (i < 0) { i += slideCount; }\n\n return Math.floor(i%slideCount);\n }\n\n function getCurrentNavIndex () {\n var absIndex = getAbsIndex(),\n result;\n\n result = navAsThumbnails ? absIndex :\n fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) :\n Math.floor(absIndex / items);\n\n // set active nav to the last one when reaches the right edge\n if (!loop && carousel && index === indexMax) { result = pages - 1; }\n\n return result;\n }\n\n function getItemsMax () {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || (fixedWidth && !viewportMax)) {\n return slideCount - 1;\n // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) { arr.push(options[str]); }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n if (tem && (fixedWidth || tem < slideCount)) { arr.push(tem); }\n }\n }\n\n if (!arr.length) { arr.push(0); }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop () {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount)/2) : (itemsMax * 4 - slideCount);\n result = Math.max(itemsMax, result);\n\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth () {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition (pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth (el) {\n if (el == null) { return; }\n var div = doc.createElement('div'), rect, width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth () {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption (item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) { return true; }\n }\n }\n return false;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n function getOption (item, ww) {\n if (ww == null) { ww = windowWidth; }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) { result = responsive[bp][item]; }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') { result = getOption('items'); }\n if (!carousel && (item === 'slideBy' || item === 'items')) { result = Math.floor(result); }\n\n return result;\n }\n }\n\n function getSlideMarginLeft (i) {\n return CALC ?\n CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' :\n i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles (edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n if (gutterTem) { gap -= gutterTem; }\n str = horizontal ?\n 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' :\n 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';'\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { str += getTransitionDurationStyle(speedTem); }\n return str;\n }\n\n function getContainerWidth (fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ?\n CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' :\n slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle (fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = (fixedWidthTem + gutterTem) + 'px';\n } else {\n if (!carousel) { itemsTem = Math.floor(itemsTem); }\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ?\n CALC + '(100% / ' + dividend + ')' :\n 100 / dividend + '%';\n }\n\n width = 'width:' + width;\n\n // inner slider: overwrite outer slider styles\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle (gutterTem) {\n var str = '';\n\n // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix (name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n if (prefix) { prefix = '-' + prefix + '-'; }\n\n return prefix;\n }\n\n function getTransitionDurationStyle (speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle (speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure () {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw';\n\n // set container properties\n if (container.id === '') { container.id = slideId; }\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n if (autoWidth) { newContainerClasses += ' tns-autowidth'; }\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses;\n\n // add constrain layer for carousel\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container);\n\n // add id, class, aria attributes\n // before clone slides\n forEach(slideItems, function(item, i) {\n addClass(item, 'tns-item');\n if (!item.id) { item.id = slideId + '-item' + i; }\n if (!carousel && animateNormal) { addClass(item, animateNormal); }\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n });\n\n // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j%slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n\n }\n\n function initSliderTransform () {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img');\n\n // add img load event listener\n forEach(imgs, function(img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n\n img.src = src;\n // data img\n } else {\n imgLoaded(img);\n }\n }\n });\n\n // set imgsComplete\n raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), function() { imgsComplete = true; }); });\n\n // reset imgs for auto height: check visible imgs only\n if (hasOption('autoHeight')) { imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); });\n\n } else {\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck () {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n\n (Math.abs(left - right) <= 1) ?\n initSliderTransformCore() :\n setTimeout(function(){ stylesApplicationCheck() }, 16);\n })();\n\n } else {\n initSliderTransformCore();\n }\n }\n\n\n function initSliderTransformCore () {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n if (freezable) { freeze = getFreeze(); }\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n }\n\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n\n function initSheet () {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // #### LAYOUT\n\n // ## INLINE-BLOCK VS FLOAT\n\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n }\n\n\n // ## BASIC STYLES\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n }\n\n // inner wrapper styles\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet));\n\n // container styles\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n }\n\n // slide styles\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n if (options.gutter) { str += getSlideGutterStyle(options.gutter); }\n // set gallery items transition-duration\n if (!carousel) {\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n if (ANIMATIONDURATION) { str += getAnimationDurationStyle(speed); }\n }\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n\n // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n } else {\n // middle wrapper styles\n update_carousel_transition_duration();\n\n // inner wrapper styles\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight);\n\n // container styles\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n if (gutter) { str += getSlideGutterStyle(gutter); }\n\n // append to the last line\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n }\n\n // ## MEDIAQUERIES\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp);\n\n // middle wrapper string\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n }\n\n // inner wrapper string\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n }\n\n // container string\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || (fixedWidth && 'gutter' in opts))) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n }\n\n // slide string\n if ('fixedWidth' in opts || (fixedWidth && 'gutter' in opts) || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n }\n // set gallery items transition-duration\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) { slideStr += getTransitionDurationStyle(speedBP); }\n if (ANIMATIONDURATION) { slideStr += getAnimationDurationStyle(speedBP); }\n }\n if (slideStr) { slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; }\n\n // add up\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools () {\n // == slides ==\n updateSlideStatus();\n\n // == live region ==\n outerWrapper.insertAdjacentHTML('afterbegin', '
    slide ' + getLiveRegionStr() + ' of ' + slideCount + '
    ');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current');\n\n // == autoplayInit ==\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n if (autoplayButton) {\n setAttrs(autoplayButton, {'data-action': txt});\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n }\n\n // add event\n if (autoplayButton) {\n addEvents(autoplayButton, {'click': toggleAutoplay});\n }\n\n if (autoplay) {\n startAutoplay();\n if (autoplayHoverPause) { addEvents(container, hoverEvents); }\n if (autoplayResetOnVisibility) { addEvents(container, visibilityEvent); }\n }\n }\n\n // == navInit ==\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount;\n // customized nav\n // will not hide the navs in case they're thumbnails\n if (navContainer) {\n setAttrs(navContainer, {'aria-label': 'Carousel Pagination'});\n navItems = navContainer.children;\n forEach(navItems, function(item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId,\n });\n });\n\n // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '';\n }\n navHtml = '
    ' + navHtml + '
    ';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility();\n\n // add transition\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass);\n\n // add events\n addEvents(navContainer, navEvents);\n }\n\n\n\n // == controlsInit ==\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '
    ');\n\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1',\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs(prevButton, {'data-controls' : 'prev'});\n setAttrs(nextButton, {'data-controls' : 'next'});\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n\n updateControlsStatus();\n\n // add events\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n }\n\n // hide tools if needed\n disableUI();\n }\n\n function initEvents () {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) { addEvents(container, touchEvents, options.preventScrollOnTouch); }\n if (mouseDrag) { addEvents(container, dragEvents); }\n if (arrowKeys) { addEvents(doc, docmentKeydownEvent); }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {'resize': onResize});\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) { doAutoHeight(); }\n }\n\n doLazyLoad();\n if (disable) { disableSlider(); } else if (freeze) { freezeSlider(); }\n\n events.on('indexChanged', additionalUpdates);\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n if (typeof onInit === 'function') { onInit(info()); }\n isOn = true;\n }\n\n function destroy () {\n // sheet\n sheet.disabled = true;\n if (sheet.ownerNode) { sheet.ownerNode.remove(); }\n\n // remove win event listeners\n removeEvents(win, {'resize': onResize});\n\n // arrowKeys, controls, nav\n if (arrowKeys) { removeEvents(doc, docmentKeydownEvent); }\n if (controlsContainer) { removeEvents(controlsContainer, controlsEvents); }\n if (navContainer) { removeEvents(navContainer, navEvents); }\n\n // autoplay\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n if (autoplayButton) { removeEvents(autoplayButton, {'click': toggleAutoplay}); }\n if (autoplay) { clearInterval(autoplayTimer); }\n\n // container\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n if (touch) { removeEvents(container, touchEvents); }\n if (mouseDrag) { removeEvents(container, dragEvents); }\n\n // cache Object values in options && reset HTML\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n\n tnsList.forEach(function(item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (typeof el === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n });\n\n\n // reset variables\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null;\n // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') { this[a] = null; }\n }\n isOn = false;\n }\n\n// === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n function onResize (e) {\n raf(function(){ resizeTasks(getEvent(e)); });\n }\n\n function resizeTasks (e) {\n if (!isOn) { return; }\n if (nested === 'outer') { events.emit('outerResized', info(e)); }\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone;\n // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n if (bpChanged) { events.emit('newBreakpointStart', info(e)); }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n }\n // update options\n resetVariblesWhenDisable(disable);\n\n viewport = getViewportWidth(); // <= edgePadding, gutter\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n needContainerTransform = true;\n }\n }\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) { indexMax = getIndexMax(); } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n if (!autoplay) { autoplayHoverPause = autoplayResetOnVisibility = false; }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ?\n addEvents(doc, docmentKeydownEvent) :\n removeEvents(doc, docmentKeydownEvent);\n }\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer)\n }\n }\n if (touch !== touchTem) {\n touch ?\n addEvents(container, touchEvents, options.preventScrollOnTouch) :\n removeEvents(container, touchEvents);\n }\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ?\n addEvents(container, dragEvents) :\n removeEvents(container, dragEvents);\n }\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) { showElement(autoplayButton); }\n if (!animating && !autoplayUserPaused) { startAutoplay(); }\n } else {\n if (autoplayButton) { hideElement(autoplayButton); }\n if (animating) { stopAutoplay(); }\n }\n }\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ?\n addEvents(container, hoverEvents) :\n removeEvents(container, hoverEvents);\n }\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ?\n addEvents(doc, visibilityEvent) :\n removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) { needContainerTransform = true; }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) { innerWrapper.style.height = ''; }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) { needContainerTransform = true; }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) { additionalUpdates(); }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) { updateGallerySlidePositions(); }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = getSlideWidthStyle(fixedWidth, gutter, items) +\n getSlideGutterStyle(gutter);\n\n // remove the last line and\n // add new styles\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n }\n\n // auto height\n if (autoHeight) { doAutoHeight(); }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) { events.emit('newBreakpointEnd', info(e)); }\n }\n\n\n\n\n\n // === INITIALIZATION FUNCTIONS === //\n function getFreeze () {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone () {\n breakpointZone = 0;\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n if (windowWidth >= bp) { breakpointZone = bp; }\n }\n }\n\n // (slideBy, indexMin, indexMax) => index\n var updateIndex = (function () {\n return loop ?\n carousel ?\n // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n\n leftEdge += slideBy;\n rightEdge -= slideBy;\n\n // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter)%(fixedWidth + gutter)) { rightEdge -= 1; }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } :\n // loop + gallery\n function() {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) { index -= slideCount; }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) { index += slideCount; }\n }\n } :\n // non-loop\n function() {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n })();\n\n function disableUI () {\n if (!autoplay && autoplayButton) { hideElement(autoplayButton); }\n if (!nav && navContainer) { hideElement(navContainer); }\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n\n function enableUI () {\n if (autoplay && autoplayButton) { showElement(autoplayButton); }\n if (nav && navContainer) { showElement(navContainer); }\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n }\n }\n\n function freezeSlider () {\n if (frozen) { return; }\n\n // remove edge padding from inner wrapper\n if (edgePadding) { innerWrapper.style.margin = '0px'; }\n\n // add class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { addClass(slideItems[i], str); }\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n disableUI();\n\n frozen = true;\n }\n\n function unfreezeSlider () {\n if (!frozen) { return; }\n\n // restore edge padding for inner wrapper\n // for mordern browsers\n if (edgePadding && CSSMQ) { innerWrapper.style.margin = ''; }\n\n // remove class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { removeClass(slideItems[i], str); }\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n enableUI();\n\n frozen = false;\n }\n\n function disableSlider () {\n if (disabled) { return; }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { hideElement(slideItems[j]); }\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // vertical slider\n if (!horizontal || !carousel) { removeAttrs(innerWrapper, ['style']); }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // update tools\n disableUI();\n\n disabled = true;\n }\n\n function enableSlider () {\n if (!disabled) { return; }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { showElement(slideItems[j]); }\n showElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n }\n\n // update tools\n enableUI();\n\n disabled = false;\n }\n\n function updateLiveRegion () {\n var str = getLiveRegionStr();\n if (liveregionCurrent.innerHTML !== str) { liveregionCurrent.innerHTML = str; }\n }\n\n function getLiveRegionStr () {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange (val) {\n if (val == null) { val = getContainerTransformValue(); }\n var start = index, end, rangestart, rangeend;\n\n // get range start, range end for autoWidth and fixedWidth\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = - (parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n }\n\n // get start, end\n // - check auto width\n if (autoWidth) {\n slidePositions.forEach(function(point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) { start = i; }\n if (rangeend - point >= 0.5) { end = i; }\n }\n });\n\n // - check percentage width, fixed width\n } else {\n\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n if (center || edgePadding) {\n start = Math.floor(rangestart/cell);\n end = Math.ceil(rangeend/cell - 1);\n } else {\n end = start + Math.ceil(viewport/cell) - 1;\n }\n\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad () {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n eve[TRANSITIONEND] = function (e) { e.stopPropagation(); };\n addEvents(img, eve);\n\n addEvents(img, imgEvents);\n\n // update src\n img.src = getAttr(img, 'data-src');\n\n // update srcset\n var srcset = getAttr(img, 'data-srcset');\n if (srcset) { img.srcset = srcset; }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded (e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed (e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded (img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed (img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted (img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray (start, end, imgSelector) {\n var imgs = [];\n if (!imgSelector) { imgSelector = 'img'; }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) { imgs.push(img); });\n start++;\n }\n\n return imgs;\n }\n\n // check if all visible images are loaded\n // and update container height if it's done\n function doAutoHeight () {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function(){ imgsLoadedCheck(imgs, updateInnerWrapperHeight); });\n }\n\n function imgsLoadedCheck (imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) { return cb(); }\n\n // check image classes\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) { imgCompleted(img); } // Check image.complete\n if (hasClass(img, imgCompleteClass)) { imgs.splice(index, 1); }\n });\n\n // execute callback function if selected images are all complete\n if (!imgs.length) { return cb(); }\n\n // otherwise execute this functiona again\n raf(function(){ imgsLoadedCheck(imgs, cb); });\n }\n\n function additionalUpdates () {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n\n function update_carousel_transition_duration () {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight (slideStart, slideRange) {\n var heights = [];\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n }\n\n // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n function updateInnerWrapperHeight () {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) { wp.style.height = maxHeight + 'px'; }\n }\n\n // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n function setSlidePositions () {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n\n forEach(slideItems, function(item, i) {\n // skip the first slide\n if (i) { slidePositions.push(item.getBoundingClientRect()[attr] - base); }\n // add the end edge\n if (i === slideCountNew - 1) { slidePositions.push(item.getBoundingClientRect()[attr2] - base); }\n });\n }\n\n // update slide\n function updateSlideStatus () {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n\n forEach(slideItems, function(item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n }\n // hide slides\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n }\n\n // gallery: update slide position\n function updateGallerySlidePositions () {\n var l = index + Math.min(slideCount, items);\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n }\n\n // remove outlet animation\n removeClass(item, animateOut);\n }\n\n // removing '.tns-moving'\n setTimeout(function() {\n forEach(slideItems, function(el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n }\n\n // set tabindex on Nav\n function updateNavStatus () {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n\n setAttrs(navCurrent, {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName (el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton (el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled (el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement (isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n }\n\n // set 'disabled' to true on controls when reach the edges\n function updateControlsStatus () {\n if (!controls || rewind || loop) { return; }\n\n var prevDisabled = (prevIsButton) ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = (nextIsButton) ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = (index <= indexMin) ? true : false,\n disableNext = (!rewind && index >= indexMax) ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n }\n\n // set duration\n function resetDuration (el, str) {\n if (TRANSITIONDURATION) { el.style[TRANSITIONDURATION] = str; }\n }\n\n function getSliderWidth () {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap (num) {\n if (num == null) { num = index; }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? ((viewport - gap) - (slidePositions[num + 1] - slidePositions[num] - gutter))/2 :\n fixedWidth ? (viewport - fixedWidth) / 2 :\n (items - 1) / 2;\n }\n\n function getRightBoundary () {\n var gap = edgePadding ? gutter : 0,\n result = (viewport + gap) - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? - (fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() :\n getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n if (result > 0) { result = 0; }\n\n return result;\n }\n\n function getContainerTransformValue (num) {\n if (num == null) { num = index; }\n\n var val;\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = - (fixedWidth + gutter) * num;\n if (center) { val += getCenterGap(); }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n if (center) { num -= getCenterGap(); }\n val = - num * 100 / denominator;\n }\n } else {\n val = - slidePositions[num];\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) { val = Math.max(val, rightBoundary); }\n\n val += (horizontal && !autoWidth && !fixedWidth) ? '%' : 'px';\n\n return val;\n }\n\n function doContainerTransformSilent (val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform (val) {\n if (val == null) { val = getContainerTransformValue(); }\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide (number, classOut, classIn, isOut) {\n var l = number + items;\n if (!loop) { l = Math.min(l, slideCountNew); }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i];\n\n // set item positions\n if (!isOut) { item.style.left = (i - index) * 100 / items + '%'; }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) { slideItemsOut.push(item); }\n }\n }\n\n // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n var transformCore = (function () {\n return carousel ?\n function () {\n resetDuration(container, '');\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform();\n // run fallback function manually\n // when duration is 0 / container is hidden\n if (!speed || !isVisible(container)) { onTransitionEnd(); }\n\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) { updateContentWrapperHeight(); }\n } :\n function () {\n slideItemsOut = [];\n\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn);\n\n // run fallback function manually\n // when transition or animation not supported / duration is 0\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { onTransitionEnd(); }\n };\n })();\n\n function render (e, sliderMoved) {\n if (updateIndexBeforeTransform) { updateIndex(); }\n\n // render when slider was moved (touch or drag) even though index may not change\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n if (autoHeight) { doAutoHeight(); }\n\n // pause autoplay when click or keydown from user\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { stopAutoplay(); }\n\n running = true;\n transformCore();\n }\n }\n\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n function strTrans (str) {\n return str.toLowerCase().replace(/-/g, '');\n }\n\n // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n function onTransitionEnd (event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i];\n // set item positions\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n if (!event ||\n !carousel && event.target.parentNode === container ||\n event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n running = false;\n indexCached = index;\n }\n }\n\n }\n\n // # ACTIONS\n function goTo (targetIndex, e) {\n if (freeze) { return; }\n\n // prev slideBy\n if (targetIndex === 'prev') {\n onControlsClick(e, -1);\n\n // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1);\n\n // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = - absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') { targetIndex = parseInt(targetIndex); }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) { targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); }\n\n indexGap = targetIndex - absIndex;\n }\n }\n\n // gallery: make sure new page won't overlap with current page\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += (index + indexGap - slideCount) >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap;\n\n // make sure index is in range\n if (carousel && loop) {\n if (index < indexMin) { index += slideCount; }\n if (index > indexMax) { index -= slideCount; }\n }\n\n // if index is changed, start rendering\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n\n }\n }\n\n // on controls click\n function onControlsClick (e, dir) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { target = target.parentNode; }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n if (autoWidth) { index = Math.floor(index); }\n // pass e when click control buttons or keydown\n render((passEventObject || (e && e.type === 'keydown')) ? e : null);\n }\n }\n\n // on nav click\n function onNavClick (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n e = getEvent(e);\n var target = getTarget(e), navIndex;\n\n // find the clicked nav item\n while (target !== navContainer && !hasAttr(target, 'data-nav')) { target = target.parentNode; }\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) { stopAutoplay(); }\n navClicked = -1; // reset navClicked\n }\n }\n }\n\n // autoplay functions\n function setAutoplayTimer () {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n\n animating = true;\n }\n\n function stopAutoplayTimer () {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton (action, txt) {\n setAttrs(autoplayButton, {'data-action': action});\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay () {\n setAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('stop', autoplayText[1]); }\n }\n\n function stopAutoplay () {\n stopAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('start', autoplayText[0]); }\n }\n\n // programaitcally play/pause the slider\n function play () {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n function pause () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange () {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause () {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart () {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n }\n\n // keydown events on document\n function onDocumentKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n }\n\n // on key control\n function onControlsKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) { onControlsClick(e, -1); }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n }\n\n // set focus\n function setFocus (el) {\n el.focus();\n }\n\n // on key nav\n function onNavKeydown (e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n if (!hasAttr(curElement, 'data-nav')) { return; }\n\n // var code = e.keyCode,\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) { setFocus(navItems[navIndex - 1]); }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) { setFocus(navItems[navIndex + 1]); }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent (e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n function getTarget (e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent (e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior (e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected () {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n if (autoplay && animating) { stopAutoplayTimer(); }\n\n panStart = true;\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove (e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) { rafIndex = raf(function(){ panUpdate(e); }); }\n } else {\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) { preventScroll = true; }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate (e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n caf(rafIndex);\n if (panStart) { rafIndex = raf(function(){ panUpdate(e); }); }\n\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) { preventScroll = true; }\n\n try {\n if (e.type) { events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); }\n } catch(err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew): dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd (e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n if (carousel) { resetDuration(container, ''); }\n panStart = false;\n\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {'click': function preventClick (e) {\n preventDefaultBehavior(e);\n removeEvents(target, {'click': preventClick});\n }});\n }\n\n if (carousel) {\n rafIndex = raf(function() {\n if (horizontal && !autoWidth) {\n var indexMoved = - dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n index += indexMoved;\n } else {\n var moved = - (translateInit + dist);\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n if (moved > slidePositions[i] && dist < 0) { index += 1; }\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n }\n\n // reset\n if (options.preventScrollOnTouch === 'auto') { preventScroll = false; }\n if (swipeAngle) { moveDirectionExpected = '?'; }\n if (autoplay && !animating) { setAutoplayTimer(); }\n }\n\n // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n function updateContentWrapperHeight () {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages () {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n function updateNavVisibility () {\n if (!nav || navAsThumbnails) { return; }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n }\n\n // cache pages\n pagesCached = pages;\n }\n }\n\n function info (e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {},\n };\n }\n\n return {\n version: '2.9.4',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function() {\n return tns(extend(options, optionsElements));\n }\n };\n};\n","// get css-calc \n// @return - false | calc | -webkit-calc | -moz-calc\n// @usage - var calc = getCalc(); \nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}","// get subpixel support value\n// @return - boolean\nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '
    ';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function mediaquerySupport () {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}\n","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function has3DTransforms(tf){\n if (!tf) { return false; }\n if (!window.getComputedStyle) { return false; }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n\n cssTF += 'transform';\n\n // Add it to the body to get the computed style\n body.insertBefore(el, null);\n\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n\n return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\n}\n","export function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}","// create and append style sheet\nexport function createStyleSheet (media, nonce) {\n // Create the