{"version":3,"sources":["webpack:///./node_modules/when-dom-ready/dist/index.es2015.js","webpack:///./node_modules/tiny-slider/src/helpers/raf.js","webpack:///./node_modules/tiny-slider/src/helpers/caf.js","webpack:///./node_modules/tiny-slider/src/helpers/extend.js","webpack:///./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack:///./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack:///./node_modules/tiny-slider/src/helpers/getBody.js","webpack:///./node_modules/tiny-slider/src/helpers/docElement.js","webpack:///./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack:///./node_modules/tiny-slider/src/helpers/forEach.js","webpack:///./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack:///./node_modules/tiny-slider/src/helpers/hasClass.js","webpack:///./node_modules/tiny-slider/src/helpers/addClass.js","webpack:///./node_modules/tiny-slider/src/helpers/removeClass.js","webpack:///./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/getAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/hideElement.js","webpack:///./node_modules/tiny-slider/src/helpers/showElement.js","webpack:///./node_modules/tiny-slider/src/helpers/isVisible.js","webpack:///./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack:///./node_modules/tiny-slider/src/helpers/addEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/events.js","webpack:///./node_modules/tiny-slider/src/tiny-slider.js","webpack:///./node_modules/tiny-slider/src/helpers/calc.js","webpack:///./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack:///./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack:///./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack:///./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack:///./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack:///./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack:///./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/toDegree.js","webpack:///./node_modules/tiny-slider/src/helpers/getTouchDirection.js"],"names":["loadedStates","whenDomReady","cb","doc","Promise","resolve","window","document","done","setTimeout","indexOf","readyState","addEventListener","resume","val","then","raf","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","caf","cancelAnimationFrame","mozCancelAnimationFrame","id","clearTimeout","extend","obj","name","copy","target","arguments","i","length","undefined","checkStorageValue","value","JSON","parse","setLocalStorage","storage","key","access","setItem","e","getBody","body","createElement","fake","docElement","documentElement","setFakeBody","docOverflow","style","overflow","background","appendChild","resetFakeBody","remove","offsetHeight","addCSSRule","sheet","selector","rules","index","insertRule","addRule","getCssRulesLength","cssRules","forEach","arr","callback","scope","l","call","classListSupport","hasClass","el","str","classList","contains","className","addClass","add","removeClass","replace","hasAttr","attr","hasAttribute","getAttr","getAttribute","isNodeList","item","setAttrs","els","attrs","Array","Object","prototype","toString","setAttribute","removeAttrs","attrLength","j","removeAttribute","arrayFromNodeList","nl","push","hideElement","forceHide","display","showElement","isVisible","getComputedStyle","whichProperty","props","Props","charAt","toUpperCase","substr","prefix","prop","getEndProperty","propIn","propOut","endProp","test","toLowerCase","supportsPassive","defineProperty","get","passiveOption","passive","addEvents","preventScrolling","option","removeEvents","removeEventListener","Events","topics","on","eventName","fn","this","off","splice","emit","data","type","keys","object","hasOwnProperty","Element","parentNode","removeChild","tns","options","container","mode","axis","items","gutter","edgePadding","fixedWidth","autoWidth","viewportMax","slideBy","center","controls","controlsPosition","controlsText","controlsContainer","prevButton","nextButton","nav","navPosition","navContainer","navAsThumbnails","arrowKeys","speed","autoplay","autoplayPosition","autoplayTimeout","autoplayDirection","autoplayText","autoplayHoverPause","autoplayButton","autoplayButtonOutput","autoplayResetOnVisibility","animateIn","animateOut","animateNormal","animateDelay","loop","rewind","autoHeight","responsive","lazyload","lazyloadSelector","touch","mouseDrag","swipeAngle","nested","preventActionWhenRunning","preventScrollOnTouch","freezable","onInit","useLocalStorage","nonce","win","KEYS","ENTER","SPACE","LEFT","RIGHT","tnsStorage","localStorageAccess","browserInfo","navigator","userAgent","uid","Date","localStorage","getItem","removeItem","CALC","div","result","vals","width","offsetWidth","calc","PERCENTAGELAYOUT","supported","wrapper","outer","innerHTML","Math","abs","getBoundingClientRect","left","children","count","percentageLayout","CSSMQ","matchMedia","msMatchMedia","position","rule","styleSheet","cssText","createTextNode","currentStyle","mediaquerySupport","TRANSFORM","HAS3DTRANSFORMS","tf","has3d","cssTF","slice","insertBefore","getPropertyValue","has3DTransforms","TRANSITIONDURATION","TRANSITIONDELAY","ANIMATIONDURATION","ANIMATIONDELAY","TRANSITIONEND","ANIMATIONEND","supportConsoleWarn","console","warn","tnsList","optionsElements","querySelector","nodeName","carousel","responsiveTem","updateOptions","middleWrapper","breakpointZone","horizontal","outerWrapper","innerWrapper","containerParent","containerHTML","outerHTML","slideItems","slideCount","windowWidth","getWindowWidth","isOn","setBreakpointZone","slidePositions","imgsComplete","liveregionCurrent","itemsMax","media","getOption","viewport","getViewportWidth","floor","fixedWidthViewportWidth","slideItemsOut","cloneCount","bp","tem","ceil","min","apply","max","getItemsMax","hasOption","slideCountNew","hasRightDeadZone","rightBoundary","getRightBoundary","updateIndexBeforeTransform","transformAttr","transformPrefix","transformPostfix","getIndexMax","getStartIndex","indexCached","indexMin","getCurrentSlide","indexMax","moveDirectionExpected","running","events","newContainerClasses","slideId","tnsId","disable","disabled","freeze","getFreeze","frozen","controlsEvents","onControlsClick","getEvent","keyIndex","keyCode","navEvents","onTransitionEnd","getTarget","navIndex","navClicked","Number","targetIndexBase","pages","goTo","navCurrentIndex","animating","stopAutoplay","curElement","activeElement","setFocus","navItems","hoverEvents","stopAutoplayTimer","autoplayHoverPaused","setAutoplayTimer","visibilityEvent","hidden","autoplayVisibilityPaused","docmentKeydownEvent","touchEvents","onPanStart","onPanMove","onPanEnd","dragEvents","hasControls","hasNav","hasAutoplay","hasTouch","hasMouseDrag","slideActiveClass","imgCompleteClass","imgEvents","imgLoaded","img","imgCompleted","preventScroll","prevIsButton","nextIsButton","controlsContainerHTML","prevButtonHTML","nextButtonHTML","navContainerHTML","getPages","pagesCached","getCurrentNavIndex","navCurrentIndexCached","navActiveClass","navStr","navStrCurrent","autoplayTimer","autoplayUserPaused","autoplayButtonHTML","autoplayHtmlStrings","translateInit","rafIndex","initPosition","lastPosition","panStart","getDist","a","b","x","y","resetVariblesWhenDisable","fragmentBefore","createDocumentFragment","fragmentAfter","num","cloneFirst","cloneNode","firstChild","cloneLast","initStructure","fontSize","slide","marginLeft","getSlideMarginLeft","getTransitionDurationStyle","getInnerWrapperStyles","getContainerWidth","getSlideWidthStyle","getSlideGutterStyle","getAnimationDurationStyle","parseInt","opts","middleWrapperStr","innerWrapperStr","containerStr","slideStr","itemsBP","fixedWidthBP","speedBP","edgePaddingBP","autoHeightBP","gutterBP","initSheet","initSliderTransform","updateIndex","leftEdge","rightEdge","transformCore","element","postfix","to","duration","tick","unit","from","positionTick","resetDuration","doContainerTransform","getContainerTransformValue","moveElement","updateContentWrapperHeight","eve","animateSlide","version","getInfo","info","play","startAutoplay","pause","updateSliderHeight","updateInnerWrapperHeight","refresh","destroy","ownerNode","onResize","toggleAutoplay","clearInterval","htmlList","prevEl","previousElementSibling","parentEl","nextElementSibling","firstElementChild","rebuild","condition","ind","getAbsIndex","absIndex","innerWidth","clientWidth","getInsertPosition","pos","gap","getClientWidth","rect","right","ww","edgePaddingTem","gutterTem","fixedWidthTem","speedTem","gutterTemUnit","itemsTem","dividend","getCSSPrefix","substring","imgs","querySelectorAll","src","imgsLoadedCheck","getImageArray","initSliderTransformStyleCheck","doContainerTransformSilent","initTools","initEvents","stylesApplicationCheck","initSliderTransformCore","setSlidePositions","updateSlideStatus","insertAdjacentHTML","getLiveRegionStr","txt","navHtml","hiddenStr","updateNavVisibility","isButton","updateControlsStatus","disableUI","resizeTasks","doAutoHeight","doLazyLoad","disableSlider","freezeSlider","additionalUpdates","bpChanged","breakpointZoneTem","needContainerTransform","indChanged","itemsChanged","disableTem","freezeTem","arrowKeysTem","controlsTem","navTem","touchTem","mouseDragTem","autoplayTem","autoplayHoverPauseTem","autoplayResetOnVisibilityTem","indexTem","autoHeightTem","controlsTextTem","centerTem","autoplayTextTem","classN","enableUI","enableSlider","margin","unfreezeSlider","height","html","len","updateLiveRegion","updateGallerySlidePositions","deleteRule","removeRule","removeCSSRule","vp","getVisibleSlideRange","start","end","rangestart","rangeend","parseFloat","point","cell","arg","stopPropagation","srcset","imgSelector","complete","navPrev","navCurrent","updateNavStatus","getMaxSlideHeight","slideStart","slideRange","heights","maxHeight","wp","attr2","base","range","getLowerCaseNodeName","isAriaDisabled","disEnableElement","prevDisabled","nextDisabled","disablePrev","disableNext","getCenterGap","denominator","number","classOut","classIn","isOut","render","sliderMoved","strTrans","event","propertyName","targetIndex","indexGap","isNaN","factor","dir","passEventObject","targetIn","setInterval","updateAutoplayButton","action","focus","isTouchEvent","changedTouches","srcElement","preventDefaultBehavior","preventDefault","returnValue","getMoveDirectionExpected","angle","atan2","PI","direction","$","clientX","clientY","panUpdate","err","dist","cancelable","preventClick","indexMoved","moved","rough","displayIndex"],"mappings":"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","file":"vendors~fifty-fifty-slider-c9cc361fb53b89eece95.js","sourcesContent":["/* eslint no-void: \"off\" */\n\n// Loaded ready states\nvar loadedStates = ['interactive', 'complete'];\n\n// Return Promise\nvar whenDomReady = function whenDomReady(cb, doc) {\n\treturn new Promise(function (resolve) {\n\t\t// Allow doc to be passed in as the lone first param\n\t\tif (cb && typeof cb !== 'function') {\n\t\t\tdoc = cb;\n\t\t\tcb = null;\n\t\t}\n\n\t\t// Use global document if we don't have one\n\t\tdoc = doc || window.document;\n\n\t\t// Handle DOM load\n\t\tvar done = function done() {\n\t\t\treturn resolve(void (cb && setTimeout(cb)));\n\t\t};\n\n\t\t// Resolve now if DOM has already loaded\n\t\t// Otherwise wait for DOMContentLoaded\n\t\tif (loadedStates.indexOf(doc.readyState) !== -1) {\n\t\t\tdone();\n\t\t} else {\n\t\t\tdoc.addEventListener('DOMContentLoaded', done);\n\t\t}\n\t});\n};\n\n// Promise chain helper\nwhenDomReady.resume = function (doc) {\n\treturn function (val) {\n\t\treturn whenDomReady(doc).then(function () {\n\t\t\treturn val;\n\t\t});\n\t};\n};\n\nexport default whenDomReady;\n//# sourceMappingURL=index.es2015.js.map\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', '