{"version":3,"file":"main.bundle.js","mappings":"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","sources":["webpack://faber.werkenbij/./src/frontend/scripts/base/index.js","webpack://faber.werkenbij/./src/frontend/scripts/content/index.js","webpack://faber.werkenbij/./src/frontend/scripts/navigation/index.js","webpack://faber.werkenbij/./src/frontend/scripts/vacancies/index.js","webpack://faber.werkenbij/webpack/bootstrap","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/raf.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/caf.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/extend.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/getBody.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/docElement.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/forEach.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/hasClass.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/addClass.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/removeClass.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/getAttr.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/hideElement.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/showElement.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/isVisible.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/addEvents.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/events.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/tiny-slider.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/calc.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/toDegree.js","webpack://faber.werkenbij/./node_modules/tiny-slider/src/helpers/getTouchDirection.js","webpack://faber.werkenbij/./src/frontend/scripts/header/index.js","webpack://faber.werkenbij/./src/frontend/scripts/highlight/index.js","webpack://faber.werkenbij/./src/frontend/scripts/slider/index.js","webpack://faber.werkenbij/./src/frontend/scripts/video/index.js"],"sourcesContent":["const htmlLang = document.documentElement.getAttribute('lang');\n\nif (htmlLang !== navigator.language) {\n document.documentElement.setAttribute('lang', navigator.language);\n}","function addClassToTables () {\n const content = document.getElementById('jsContent');\n\n if (content) {\n const tables = content.getElementsByTagName('table');\n\n for (let i = 0; i < tables.length; ++i ) {\n tables[i].classList.add('table', 'table-striped');\n }\n }\n}\n\naddClassToTables();\n","function closeMenu () {\n const btn = document.getElementById('jsToggleMenu'),\n collapseMenu = document.getElementById('jsNavbarCollapse'),\n submenuItems = document.querySelectorAll('.jsSubMenu');\n\n collapseMenu.classList.remove('collapse-active');\n setTimeout(() => {\n collapseMenu.classList.add('fade-out-collapse');\n }, 1);\n setTimeout(() => {\n collapseMenu.classList.remove('fade-out-collapse');\n collapseMenu.classList.add('d-none');\n }, 301);\n btn.classList.remove('is-open');\n btn.setAttribute('aria-expanded', 'false');\n\n for (let i = 0; i < submenuItems.length; i++) {\n const buttons = submenuItems[i].getElementsByClassName('navigation__link-btn'),\n lists = submenuItems[i].getElementsByClassName('navigation__sub-list');\n\n if (buttons[0] != undefined) {\n buttons[0].setAttribute('aria-expanded', 'false');\n }\n if (lists[0] !== undefined) {\n lists[0].classList.remove('submenu-active', 'h-auto');\n }\n }\n}\n\nfunction toggleMenu () {\n const btn = document.getElementById('jsToggleMenu'),\n collapseMenu = document.getElementById('jsNavbarCollapse');\n\n if (btn) {\n btn.addEventListener('click', () => {\n let attribute = btn.getAttribute('aria-expanded');\n\n if (attribute === 'false') {\n collapseMenu.classList.remove('d-none');\n setTimeout(() => {\n collapseMenu.classList.add('fade-in-collapse');\n }, 1);\n setTimeout(() => {\n collapseMenu.classList.add('collapse-active');\n collapseMenu.classList.remove('fade-in-collapse');\n }, 301);\n btn.classList.add('is-open');\n btn.setAttribute('aria-expanded', 'true');\n } else {\n closeMenu();\n }\n });\n }\n}\n\nfunction toggleSubMenu () {\n const items = document.querySelectorAll('.jsSubMenu');\n\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const buttons = items[i].getElementsByClassName('navigation__link-btn');\n\n buttons[0].addEventListener('click', (e) => {\n let target = e.target,\n submenu = target.parentNode.nextElementSibling;\n\n if (target.getAttribute('aria-expanded') === 'false') {\n submenu.classList.add('scale-in-ver-top');\n setTimeout(() => {\n submenu.classList.add('h-auto');\n }, 100);\n setTimeout(() => {\n submenu.classList.add('submenu-active');\n submenu.classList.remove('scale-in-ver-top');\n }, 201);\n target.setAttribute('aria-expanded', 'true');\n } else {\n submenu.classList.add('scale-out-ver-top');\n setTimeout(() => {\n submenu.classList.remove('submenu-active');\n }, 1);\n setTimeout(() => {\n submenu.classList.remove('scale-out-ver-top');\n submenu.classList.remove('h-auto');\n }, 201);\n target.setAttribute('aria-expanded', 'false');\n }\n });\n }\n }\n}\n\nfunction clickOutsideMenu () {\n const collapseMenu = document.getElementById('jsNavbarCollapse'),\n btn = document.getElementById('jsToggleMenu');\n\n document.addEventListener('click', (e) => {\n let isClickInside = collapseMenu.contains(e.target),\n isMenuToggle = btn.contains(e.target);\n\n if (!isClickInside && !isMenuToggle) {\n closeMenu();\n }\n });\n}\n\nfunction addLanguageEvent () {\n const languageUrls = document.getElementsByClassName('js-redirect-by-language');\n\n for (let i = 0; i < languageUrls.length; i++) {\n const item = languageUrls[i];\n item.onclick = function() {\n window.location.href = this.getAttribute('data-url');\n }\n }\n}\n\naddLanguageEvent();\ntoggleMenu();\ntoggleSubMenu();\nclickOutsideMenu();\n","function showFilters () {\n const btn = document.getElementById('jsFiltersButton'),\n filters = document.getElementById('jsFilters'),\n filterLists = document.getElementById('jsFiltersLists');\n\n if (btn) {\n btn.addEventListener('click', () => {\n if (btn.getAttribute('aria-expanded') === 'false') {\n filterLists.classList.remove('d-none');\n setTimeout(() => {\n filterLists.classList.add('fade-in');\n }, 1);\n setTimeout(() => {\n filterLists.classList.remove('fade-in');\n filterLists.classList.add('filters-active');\n }, 210);\n filters.classList.add('is-open');\n btn.setAttribute('aria-expanded', 'true');\n } else {\n filterLists.classList.add('fade-out');\n setTimeout(() => {\n filterLists.classList.remove('filters-active');\n }, 1);\n setTimeout(() => {\n filterLists.classList.remove('fade-out');\n filterLists.classList.add('d-none');\n }, 210);\n filters.classList.remove('is-open');\n btn.setAttribute('aria-expanded', 'false');\n }\n });\n }\n}\n\nfunction getSubmitUrlFilter() {\n const checked = document.querySelectorAll('input[type=\"checkbox\"]:checked');\n \n //get selected teams\n const checkedTeams = Array.from(checked).filter(x => x.name === 'team');\n let urlTeams = '';\n if (checkedTeams.length) {\n for (let idx=0; idx < checkedTeams.length; idx++) \n {\n if (urlTeams === '') {\n urlTeams = 'team=' + checkedTeams[idx].value.toLowerCase();\n }\n else {\n urlTeams += ',' + checkedTeams[idx].value.toLowerCase();\n }\n }\n }\n \n //get selected companies\n const checkedCompanies = Array.from(checked).filter(x => x.name === 'company');\n let urlCompanies = '';\n if (checkedCompanies.length) {\n for (let idx=0; idx < checkedCompanies.length; idx++) \n {\n if (urlCompanies === '') {\n urlCompanies = 'company=' + checkedCompanies[idx].value.toLowerCase();\n }\n else {\n urlCompanies += ',' + checkedCompanies[idx].value.toLowerCase();\n }\n }\n }\n \n //get selected countries\n const checkedCountries = Array.from(checked).filter(x => x.name === 'country');\n let urlCountries = '';\n if (checkedCountries.length) {\n for (let idx=0; idx < checkedCountries.length; idx++) \n {\n if (urlCountries === '') {\n urlCountries = 'country=' + checkedCountries[idx].value.toLowerCase();\n }\n else {\n urlCountries += ',' + checkedCountries[idx].value.toLowerCase();\n }\n }\n }\n \n let finalUrl = '';\n if (urlTeams !== '') \n {\n finalUrl = urlTeams;\n }\n if (urlCompanies !== '') \n {\n if (finalUrl === '') \n {\n finalUrl = urlCompanies;\n }\n else \n {\n finalUrl = finalUrl + '&' + urlCompanies;\n }\n }\n if (urlCountries !== '') \n {\n if (finalUrl === '') \n {\n finalUrl = urlCountries;\n }\n else \n {\n finalUrl = finalUrl + '&' + urlCountries; \n }\n }\n \n return finalUrl;\n}\n\nfunction getSearchUrl(searchValue, filterUrl) {\n let searchUrl = '';\n if (searchValue !== '') \n {\n searchUrl = '?q=' + searchValue;\n }\n if (filterUrl !== '') \n {\n if (searchUrl === '')\n {\n searchUrl = '?' + filterUrl;\n }\n else\n {\n searchUrl = searchUrl + '&' + filterUrl;\n }\n }\n return searchUrl;\n}\n\nfunction addSearchFilterSubmit () {\n const checkboxes = document.getElementsByClassName('js-filter-checkbox');\n const submit = document.getElementById('js-search-vacancy-button');\n const form = document.getElementById('js-search-vacancy-form');\n const searchBox = document.getElementById('filterSearch');\n\n for(let i = 0; i < checkboxes.length; i++) {\n const item = checkboxes[i];\n item.addEventListener(\"click\", function () {\n const filterUrl = getSubmitUrlFilter();\n document.location = window.location.origin + window.location.pathname + getSearchUrl(searchBox.value,filterUrl);\n });\n } \n}\n\nfunction addSearchSubmit () {\nconst submit = document.getElementById('js-search-vacancy-button');\nconst form = document.getElementById('js-search-vacancy-form');\n const searchBox = document.getElementById('filterSearch');\nif (submit && form) {\n submit.addEventListener(\"click\", function () {\n const filterUrl = getSubmitUrlFilter();\n document.location = window.location.origin + window.location.pathname + getSearchUrl(searchBox.value,filterUrl);\n });\n}\n}\n\nfunction addSearchReset () {\nconst submit = document.getElementById('js-reset-vacancy-button');\nconst form = document.getElementById('js-search-vacancy-form');\nif (submit && form) {\n submit.addEventListener(\"click\", function () {\n document.location = window.location.origin + window.location.pathname;\n });\n}\n}\n\nif (document.getElementById('js-apply-button') !== undefined && document.getElementById('js-apply-button') !== null) {\n document.getElementById('js-applyform').hidden = true;\n document.getElementById('js-apply-button').addEventListener('click', (e) => {\n e.preventDefault();\n showApplicationForm();\n });\n if (document.getElementsByClassName('formsapplyforposition')[0] !== undefined) {\n const vacancyTitle = document.getElementById('js-vacancytitle').value;\n document.getElementsByClassName('formsapplyforposition')[0].querySelectorAll('input')[0].readOnly = true;\n document.getElementsByClassName('formsapplyforposition')[0].querySelectorAll('input')[0].value = vacancyTitle;\n }\n}\n\nfunction showApplicationForm() {\n if (document.getElementById('js-apply') !== undefined) {\n document.getElementById('js-apply').hidden = true;\n if (document.getElementsByClassName('contact__img')[0] !== undefined) {\n document.getElementsByClassName('contact__img')[0].hidden = true;\n }\n document.getElementById('js-applyform').hidden = false;\n document.getElementsByClassName('hiddenemailto')[0].querySelectorAll('input')[0].value = document.getElementById('js-manageremail').value;\n }\n}\n\nif (document.getElementsByClassName('applyingforposition') !== null) {\n var urlParams = new URLSearchParams(window.location.search);\n if (urlParams.has('vacancy')) {\n const vacancyTitle = decodeURIComponent(urlParams.get('vacancy'));\n document.getElementsByClassName('applyingforposition')[0].querySelectorAll('input')[0].readOnly = true;\n document.getElementsByClassName('applyingforposition')[0].querySelectorAll('input')[0].value = vacancyTitle;\n }\n}\n\nconst fileUploads = document.getElementsByClassName('fileupload');\n\nif (fileUploads.length > 0) {\n var array = [].slice.call(fileUploads);\n array.forEach(element => {\n element.querySelectorAll('input')[0].addEventListener('change', () => {\n const inputId = element.classList[1];\n console.log(inputId);\n const fileUploadValue = element.querySelectorAll('input')[0].value.split('\\\\').length > 0 ? element.querySelectorAll('input')[0].value.split('\\\\')[2] : '';\n element.querySelectorAll('div')[0].appendChild(createInputForForm(fileUploadValue, inputId));\n });\n });\n}\n\nfunction createInputForForm(value, id) {\n let input = document.getElementById(id);\n \n if (input === null) {\n input = document.createElement('input');\n input.id = id;\n input.setAttribute('style', 'height:100%;border:0');\n input.setAttribute(\"type\", \"text\");\n }\n\n input.setAttribute(\"value\", value);\n\n return input;\n}\n\naddSearchSubmit();\naddSearchFilterSubmit();\naddSearchReset();\nshowFilters();\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","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', '