{"version":3,"sources":["../../node_modules/uikit/dist/js/uikit.js","../../node_modules/nodelist-foreach-polyfill/index.js","../../source/js/background-srcset.js","../../source/js/navigation.js","../../source/js/skip-link-focus-fix.js","../../source/js/main.js"],"names":["module","exports","objPrototype","Object","prototype","hasOwnProperty","hasOwn","obj","key","call","hyphenateCache","hyphenateRe","hyphenate","str","replace","toLowerCase","camelizeRe","camelize","toUpper","_","c","toUpperCase","ucfirst","length","charAt","slice","strPrototype","String","startsWithFn","startsWith","search","this","lastIndexOf","endsWithFn","endsWith","substr","arrPrototype","Array","includesFn","i","indexOf","includesStr","includes","includesArray","isString","findIndexFn","findIndex","predicate","arguments$1","arguments","array","isArray","isFunction","isObject","toString","isPlainObject","isWindow","window","isDocument","nodeType","isJQuery","jquery","isNode","isElement","isNodeCollection","match","isBoolean","value","isNumber","isNumeric","isNaN","parseFloat","isEmpty","keys","isUndefined","toBoolean","toNumber","number","Number","toFloat","toNode","element","toNodes","map","filter","Boolean","toArray","toWindow","ownerDocument","defaultView","toList","split","trim","toMs","time","isEqual","other","each","val","swap","a","b","RegExp","assign","target","args","len","source","last","cb","sortBy","prop","sort","ref","ref$1","propA","propB","uniqueBy","seen","Set","check","has","add","clamp","min","max","Math","noop","intersectRect","r1","r2","left","right","top","bottom","pointInRect","point","rect","x","y","Dimensions","ratio","dimensions","aProp","round","contain","maxDimensions","this$1","cover","attr","name","getAttribute","forEach","removeAttr","setAttribute","hasAttr","some","hasAttribute","removeAttribute","data","attribute","attrs","inBrowser","isIE","test","navigator","userAgent","isRtl","document","documentElement","hasTouchEvents","hasPointerEvents","PointerEvent","hasTouch","DocumentTouch","maxTouchPoints","pointerDown","pointerMove","pointerUp","pointerEnter","pointerLeave","pointerCancel","query","selector","context","find","getContext","queryAll","nodes","findAll","isContextSelector","_query","queryFn","removes","contextSanitizeRe","selectorRe","splitSelector","ctx","selectors","closest","parent","join","selectors$1","prev","previousElementSibling","matches","id","Date","now","push","escape","e","remove","contextSelectorRe","elProto","Element","matchesFn","webkitMatchesSelector","msMatchesSelector","closestFn","ancestor","parentNode","escapeFn","CSS","css","voidElements","area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","track","wbr","isVoidElement","tagName","isVisible","offsetWidth","offsetHeight","getClientRects","selInput","isInput","within","contains","parents","elements","children","on","getArgs","targets","type","listener","useCapture","toEventTargets","detail","self","selfFilter","delegate","useCaptureFilter","addEventListener","off","removeEventListener","once","condition","result","trigger","event","reduce","notCanceled","dispatchEvent","createEvent","bubbles","cancelable","initCustomEvent","splice","delegates","current","reverse","apply","concat","currentTarget","options","capture","isEventTarget","toEventTarget","isTouch","pointerType","touches","getEventPos","changedTouches","clientX","clientY","Promise","PromiseFn","Deferred","promise","resolve","reject","async","setImmediate","setTimeout","executor","state","undefined","deferred","r","all","iterable","count","resolver","then","race","p","ajax","url","env","method","headers","xhr","XMLHttpRequest","beforeSend","responseType","header","open","setRequestHeader","status","response","copyXhr","JSON","parse","Error","statusText","send","getImage","src","srcset","sizes","Image","onerror","onload","ready","fn","readyState","unbind","index","getIndex","finite","empty","$","innerHTML","html","append","hasChildNodes","insertNodes","appendChild","before","insertBefore","after","nextSibling","fragment","removeChild","wrapAll","structure","firstChild","wrapInner","childNodes","unwrap","TypeError","called","notify","reason","shift","onResolved","onRejected","catch","fragmentRe","singleTagRe","exec","createElement","container","insertAdjacentHTML","textContent","node","firstElementChild","next","nextElementSibling","isHtml","$$","addClass","apply$1","removeClass","removeClasses","cls","replaceClass","hasClass","classList","toggleClass","force","getArgs$1","pop","supports","Force","toggle","Multiple","arg","get","_multiple","_force","cssNumber","animation-iteration-count","column-count","fill-opacity","flex-grow","flex-shrink","font-weight","line-height","opacity","order","orphans","stroke-dasharray","stroke-dashoffset","widows","z-index","zoom","property","propName","getStyle","style","removeProperty","styles","getStyles","props","pseudoElt","getComputedStyle","vars","getCssVar","docEl","getPropertyValue","cssProps","ret","prefixedName","cssPrefixes","vendorPropName","transition","duration","timing","timer","clearTimeout","transitionProperty","transitionDuration","transitionTimingFunction","Transition","start","stop","cancel","inProgress","animate","animation","origin","out","Animation","in","dirs","width","height","positionAt","elAttach","targetAttach","elOffset","targetOffset","flip","boundary","getPos","flipped","dim","getDimensions","targetDim","position","moveTo","getOffsets","boundaries","unshift","dir","align","alignFlip","elemOffset","centerOffset","centerTargetOffset","newVal","toFixed","el","offset","coordinates","currentOffset","pos","hidden","pageYOffset","pageXOffset","innerHeight","innerWidth","getBoundingClientRect","offsetParent","elementOffset","parentOffset","offsetPosition","offsetTop","offsetLeft","win","dimension","doc","boxModelAdjust","sizing","attach","factor","offsets","flipPosition","toPx","percent","fastdom","reads","writes","read","task","scheduleFlush","write","clear","remove$1","flush","recursion","runTasks","scheduled","requestAnimationFrame","tasks","item","MouseTracker","positions","init","interval","setInterval","clearInterval","movesTo","prevPosition","path","diagonal","intersection","ref_0","x1","y1","ref_1","x2","y2","ref$1_0","x3","y3","ref$1_1","x4","y4","denominator","ua","intersect","strats","mergeFnData","parentVal","childVal","vm","computed","concatStrat","defaultStrat","mergeOptions","child","extends","mixins","l","mergeKey","key$1","parseOptions","option","events","created","beforeConnect","connected","beforeDisconnect","disconnected","destroy","update","methods","Player","post","cmd","contentWindow","postMessage","stringify","isInView","overflowParents","every","client","getViewport","scrollTop","getScrollingElement","scrollIntoView","offsetBy","loop","dist","scrollElement","scroll","ceil","abs","pow","step","k","cos","PI","scrolledOver","heightOffset","scrollParents","scrollHeight","viewportHeight","viewportTop","viewportDist","overflowRe","scrollEl","scrollingElement","isVideo","isYoutube","isVimeo","isHTML5","isIFrame","enableApi","poller","youtube","vimeo","player_id","play","func","pause","mute","muted","IntersectionObserver","IntersectionObserverClass","callback","rootMargin","pending","records","takeRecords","passive","entry","inView","isIntersecting","observe","disconnect","util","freeze","__proto__","prepend","getComponentName","UIkit","_init","prefix","version","DATA","_connected","_callUpdate","use","plugin","installed","mixin","component","extend","Sub","create","constructor","super","body","defineProperty","set","globalAPI","_callHook","hook","handlers","$options","handler","_callConnected","_data","_computeds","_frames","_initProps","_initEvents","_initObserver","_callDisconnected","_observer","_unbindEvents","_callWatches","updates","_watch","initital","hasPrev","watch","immediate","hooksAPI","uid","getProps","opts","data$1","coerce","prop$1","registerComputed","enumerable","$props","$el","registerEvent","_events","bind","notIn","arr","normalizeData","_uid","_initData","_initMethods","_initComputeds","$mount","$name","exclude","MutationObserver","attributeName","$reset","attributes","attributeFilter","stateAPI","components","argsArray","functional","instance","getComponent","$destroy","opt","install","_initialized","getComponents","connect","name$1","componentAPI","$create","removeEl","$emit","$update","$getComponent","names","defineProperties","$container","getOwnPropertyDescriptor","instanceAPI","Class","Togglable","initProps","overflow","paddingTop","paddingBottom","marginTop","marginBottom","hideProps","hasAnimation","hasTransition","toggleElement","show","_toggleElement","isToggled","updateAria","cmp","toggleHeight","_toggle","toggled","changed","focus","blur","inner","lastElementChild","currentHeight","endHeight","Accordion","active","collapsible","multiple","content","clsOpen","items","hide","preventDefault","activeItems","_wrapper","alert","close","selClose","Video","automute","autoplay","preload","player","visible","getPositionedParent","naturalWidth","videoWidth","clientWidth","naturalHeight","videoHeight","clientHeight","Position","clsPos","offset$1","axis","getAxis","drop","mode","boundaryAlign","delayShow","delayHide","clsDrop","tracker","isActive","defaultPrevented","hash","clearTimers","relatedTarget","newTarget","keyCode","delay","isDelaying","showTimer","hideTimer","alignTo","formCustom","files","selected","gif","inview","Margin","margin","firstColumn","rows","getRows","columns","getColumns","row","sortBy$1","column","startProp","endProp","sorted","getOffset","j","startDim","grid","masonry","parallax","clsStack","transitionInProgress","translates","columnHeights","sum","getColumnHeights","getMarginTop","elHeight","rowHeights","getTranslates","padding","newPadding","hgt","height$1","scrolled","FlexBug","selMinHeight","forceHeight","heightMatch","heights","getHeights","hasMinHeight","minHeight","hasShrunk","heightViewport","expand","offsetBottom","box","dataset","heightExpand","SVG","icon","class","strokeAnimation","focusable","include","svg","getSvg","applyAttributes","svgEl","root","equals","insertSVG","getMaxPathLength","setProperty","svgs","decodeURIComponent","symbols","symbolRe","lastIndex","parseSymbols","parseSVG","viewBox","stroke","getTotalLength","icons","spinner","totop","marker","close-icon","close-large","navbar-toggle-icon","overlay-icon","pagination-next","pagination-previous","search-icon","search-large","search-navbar","slidenav-next","slidenav-next-large","slidenav-previous","slidenav-previous-large","Icon","added","parsed","isIcon","applyRtl","cloneNode","getIcon","IconComponent","Slidenav","Search","Close","Spinner","dataSrc","dataSrcset","cacheKey","dataWidth","dataHeight","dataSizes","isImg","storage","setSrcAttrs","sizesToPixel","getPlaceholderImage","observer","load","image","currentSrc","devicePixelRatio","bgSize","srcSize","descriptors","srcSetRe","size","entries","backgroundImage","sizesRe","matchMedia","substring","sizeRe","additionRe","sessionStorage","Media","media","toMedia","leader","fill","clsWrapper","clsHide","attrFill","wrapper","floor","Container","active$1","Modal","selPanel","escClose","bgClose","stack","overlay","panel","transitionElement","modal","clsPage","animate$1","_reject","openDialog","tmpl","hideFn","submitFn","labels","dialog","resolved","message","confirm","prompt","ok","nav","navbar","dropdown","dropbar","dropbarMode","dropbarAnchor","_dropbar","dropdowns","getDropdown","getActive","transitionTo","newHeight","oldHeight","clip","offcanvas","clsContainer","clsFlip","clsContainerAnimation","clsSidebarAnimation","clsMode","clsOverlay","targetTouches","getViewport$1","viewport","head","overflowAuto","selContainer","selContent","responsive","scrollTo","click","scrollspy","repeat","inViewClass","_ukScrollspyState","queued","scrollspyNav","links","sticky","clsActive","clsInactive","clsFixed","clsBelow","selTarget","widthElement","showOnUp","placeholder","isFixed","location","elTop","inactive","topOffset","bottomOffset","parseProp","margins","initTimestamp","lastDir","lastScroll","initScroll","propOffset","Switcher","swiping","attrItem","connects","list","toggles","tab","href","Alert","Cover","Drop","Dropdown","FormCustom","Gif","Grid","HeightMatch","HeightViewport","Img","Leader","Nav","Navbar","Offcanvas","OverflowAuto","Responsive","Scroll","Scrollspy","ScrollspyNav","Sticky","Svg","Tab","Toggle","SlidenavNext","SlidenavPrevious","SearchIcon","Marker","NavbarToggleIcon","OverlayIcon","PaginationNext","PaginationPrevious","Totop","started","mutations","mutation","addedNodes","removedNodes","i$1","applyChildList","applyAttribute","applyMutation","childList","subtree","characterData","boot","countdown","date","days","hours","minutes","seconds","units","unit","total","timespan","digits","digit","Animate","action","sheet","insertRule","children$1","propsFrom","oldScrollY","reset","propsTo","getPositionWithMargin","from","display","zIndex","pointerEvents","filter$1","selActive","updateState","actives","old","listA","listB","setState","mergeState","getState","","stateFilter","ref_sort","stateSort","stateOrder","getFilter","group","matchFilter","applyState","getSelector","localeCompare","numeric","sortItems","filterBy","Animations","slide","transform","translate","translated","scale3d","Animations$1","fade","scale","triggerUpdate","SliderAutoplay","autoplayInterval","pauseOnHover","startAutoplay","stopAutoplay","slides","draggable","SliderDrag","threshold","prevPos","selSlides","button","drag","_transitioner","getDistance","dragging","prevIndex","move","unbindMove","visualViewport","end","distance","dis","nextIndex","_getDistance","itemShown","edge","_translate","_show","dirChange","userSelect","Slider","selNav","selNavItem","navItems","maxIndex","updateNav","getValidIndex","clsActivated","easing","velocity","Transitioner","transitionOptions","speedUp","selList","itemshown","queueIndex","forward","getDirection","_getTransitioner","transitioner","Slideshow","linear","itemshow itemhide itemshown itemhidden","beforeitemshow","itemhidden","LightboxPanel","delayControls","videoAutoplay","template","selCaption","caption","showControls","hideControls","getItem","loadItem","alt","poster","setItem","iframeAttrs","frameborder","allow","allowfullscreen","uk-responsive","uk-video","createEl","setError","video","controls","playsinline","encodeURI","withCredentials","ref_response","getSlide","childElementCount","controlsTimer","tag","lightbox","Lightbox","lightboxPanel","toItem","notification","timeout","clsClose","clsMsg","closeAll","marginProp","startProps","removeFn","Parallax","properties","bgPos","diff","isColor","isCssProp","steps","getUnit","color","parseColor","covers","down","bgProps","bg","backgroundSize","_image","dimEl","dimImage","span","posPercentage","backgroundRepeat","getCss","getStep","getValue","parseInt","getOffsetElement","ease","SliderReactive","getLeft","center","getElLeft","centerEl","getMax","getWidth","triggerUpdate$1","slider","sets","to","updateTranslates","getItemIn","getActives","slideLeft","avgWidth","leftCenter","slideWidth","reorder","itemshow","slideIndex","sliderParallax","selItem","ref_detail","getCurrent","isIn","trackTimer","obj$1","Animations$2","pull","slideshow","maxHeight","sortable","clsItem","clsPlaceholder","clsDrag","clsDragState","clsBase","clsNoDrag","clsEmpty","clsCustom","handle","tBodies","handles","touchAction","ref$2","ref$3","elementFromPoint","getSortable","previous","insert","touched","clone","outerHTML","boxSizing","trackScroll","classes","isPredecessor","tooltip","title","_hasTitle","aria-expanded","_unbind","upload","clsDragover","concurrent","maxSize","mime","msgInvalidMime","msgInvalidName","msgInvalidSize","params","abort","beforeAll","complete","completeAll","error","fail","loadEnd","loadStart","progress","change","transfer","dataTransfer","dragenter","dragover","dragleave","match$1","chunks","chunk","FormData","file","pattern","stopPropagation","Countdown","Filter","Notification","SliderParallax","SlideshowParallax","Sortable","Tooltip","Upload","factory","NodeList","thisArg","bgSrcset","querySelectorAll","newSrcFound","imgSize","backgroundImageSrc","srcsetRules","rule","ruleElements","newSrc","getElementById","getElementsByTagName","menu","className","onclick","toggleFocus","touchStartFn","parentLink","menuItem","parentElement","tabIndex","updateLeapMenu","querySelector","bindEvent","eventName","eventHandler","attachEvent","XDSlider","openModalToIndex","modalTarget","modalSliderTarget","addModalTriggers","currentIndex","_toConsumableArray","parentId","onresize","XDCarousel","XDMediaGrid","lightboxId","onkeydown","code","current_menu_id","menuId","target_menu_id","menuTarget","current_menu","target_menu","newsletterNoCollapseFields","newsletterCloseButton","menuClasses"],"mappings":"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","sourcesContent":["/*! UIkit 3.5.6 | https://www.getuikit.com | (c) 2014 - 2020 YOOtheme | MIT License */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define('uikit', factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.UIkit = factory());\n}(this, (function () { 'use strict';\n\n var objPrototype = Object.prototype;\n var hasOwnProperty = objPrototype.hasOwnProperty;\n\n function hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n }\n\n var hyphenateCache = {};\n var hyphenateRe = /([a-z\\d])([A-Z])/g;\n\n function hyphenate(str) {\n\n if (!(str in hyphenateCache)) {\n hyphenateCache[str] = str\n .replace(hyphenateRe, '$1-$2')\n .toLowerCase();\n }\n\n return hyphenateCache[str];\n }\n\n var camelizeRe = /-(\\w)/g;\n\n function camelize(str) {\n return str.replace(camelizeRe, toUpper);\n }\n\n function toUpper(_, c) {\n return c ? c.toUpperCase() : '';\n }\n\n function ucfirst(str) {\n return str.length ? toUpper(null, str.charAt(0)) + str.slice(1) : '';\n }\n\n var strPrototype = String.prototype;\n var startsWithFn = strPrototype.startsWith || function (search) { return this.lastIndexOf(search, 0) === 0; };\n\n function startsWith(str, search) {\n return startsWithFn.call(str, search);\n }\n\n var endsWithFn = strPrototype.endsWith || function (search) { return this.substr(-search.length) === search; };\n\n function endsWith(str, search) {\n return endsWithFn.call(str, search);\n }\n\n var arrPrototype = Array.prototype;\n\n var includesFn = function (search, i) { return !!~this.indexOf(search, i); };\n var includesStr = strPrototype.includes || includesFn;\n var includesArray = arrPrototype.includes || includesFn;\n\n function includes(obj, search) {\n return obj && (isString(obj) ? includesStr : includesArray).call(obj, search);\n }\n\n var findIndexFn = arrPrototype.findIndex || function (predicate) {\n var arguments$1 = arguments;\n\n for (var i = 0; i < this.length; i++) {\n if (predicate.call(arguments$1[1], this[i], i, this)) {\n return i;\n }\n }\n return -1;\n };\n\n function findIndex(array, predicate) {\n return findIndexFn.call(array, predicate);\n }\n\n var isArray = Array.isArray;\n\n function isFunction(obj) {\n return typeof obj === 'function';\n }\n\n function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n }\n\n var toString = objPrototype.toString;\n function isPlainObject(obj) {\n return toString.call(obj) === '[object Object]';\n }\n\n function isWindow(obj) {\n return isObject(obj) && obj === obj.window;\n }\n\n function isDocument(obj) {\n return isObject(obj) && obj.nodeType === 9;\n }\n\n function isJQuery(obj) {\n return isObject(obj) && !!obj.jquery;\n }\n\n function isNode(obj) {\n return isObject(obj) && obj.nodeType >= 1;\n }\n\n function isElement(obj) {\n return isObject(obj) && obj.nodeType === 1;\n }\n\n function isNodeCollection(obj) {\n return toString.call(obj).match(/^\\[object (NodeList|HTMLCollection)\\]$/);\n }\n\n function isBoolean(value) {\n return typeof value === 'boolean';\n }\n\n function isString(value) {\n return typeof value === 'string';\n }\n\n function isNumber(value) {\n return typeof value === 'number';\n }\n\n function isNumeric(value) {\n return isNumber(value) || isString(value) && !isNaN(value - parseFloat(value));\n }\n\n function isEmpty(obj) {\n return !(isArray(obj)\n ? obj.length\n : isObject(obj)\n ? Object.keys(obj).length\n : false\n );\n }\n\n function isUndefined(value) {\n return value === void 0;\n }\n\n function toBoolean(value) {\n return isBoolean(value)\n ? value\n : value === 'true' || value === '1' || value === ''\n ? true\n : value === 'false' || value === '0'\n ? false\n : value;\n }\n\n function toNumber(value) {\n var number = Number(value);\n return !isNaN(number) ? number : false;\n }\n\n function toFloat(value) {\n return parseFloat(value) || 0;\n }\n\n function toNode(element) {\n return isNode(element)\n ? element\n : isNodeCollection(element) || isJQuery(element)\n ? element[0]\n : isArray(element)\n ? toNode(element[0])\n : null;\n }\n\n function toNodes(element) {\n return isNode(element)\n ? [element]\n : isNodeCollection(element)\n ? arrPrototype.slice.call(element)\n : isArray(element)\n ? element.map(toNode).filter(Boolean)\n : isJQuery(element)\n ? element.toArray()\n : [];\n }\n\n function toWindow(element) {\n if (isWindow(element)) {\n return element;\n }\n\n element = toNode(element);\n\n return element\n ? (isDocument(element)\n ? element\n : element.ownerDocument\n ).defaultView\n : window;\n }\n\n function toList(value) {\n return isArray(value)\n ? value\n : isString(value)\n ? value.split(/,(?![^(]*\\))/).map(function (value) { return isNumeric(value)\n ? toNumber(value)\n : toBoolean(value.trim()); })\n : [value];\n }\n\n function toMs(time) {\n return !time\n ? 0\n : endsWith(time, 'ms')\n ? toFloat(time)\n : toFloat(time) * 1000;\n }\n\n function isEqual(value, other) {\n return value === other\n || isObject(value)\n && isObject(other)\n && Object.keys(value).length === Object.keys(other).length\n && each(value, function (val, key) { return val === other[key]; });\n }\n\n function swap(value, a, b) {\n return value.replace(\n new RegExp((a + \"|\" + b), 'g'),\n function (match) { return match === a ? b : a; }\n );\n }\n\n var assign = Object.assign || function (target) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n target = Object(target);\n for (var i = 0; i < args.length; i++) {\n var source = args[i];\n if (source !== null) {\n for (var key in source) {\n if (hasOwn(source, key)) {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n\n function last(array) {\n return array[array.length - 1];\n }\n\n function each(obj, cb) {\n for (var key in obj) {\n if (false === cb(obj[key], key)) {\n return false;\n }\n }\n return true;\n }\n\n function sortBy(array, prop) {\n return array.sort(function (ref, ref$1) {\n var propA = ref[prop]; if ( propA === void 0 ) propA = 0;\n var propB = ref$1[prop]; if ( propB === void 0 ) propB = 0;\n\n return propA > propB\n ? 1\n : propB > propA\n ? -1\n : 0;\n }\n );\n }\n\n function uniqueBy(array, prop) {\n var seen = new Set();\n return array.filter(function (ref) {\n var check = ref[prop];\n\n return seen.has(check)\n ? false\n : seen.add(check) || true;\n } // IE 11 does not return the Set object\n );\n }\n\n function clamp(number, min, max) {\n if ( min === void 0 ) min = 0;\n if ( max === void 0 ) max = 1;\n\n return Math.min(Math.max(toNumber(number) || 0, min), max);\n }\n\n function noop() {}\n\n function intersectRect(r1, r2) {\n return r1.left < r2.right &&\n r1.right > r2.left &&\n r1.top < r2.bottom &&\n r1.bottom > r2.top;\n }\n\n function pointInRect(point, rect) {\n return point.x <= rect.right &&\n point.x >= rect.left &&\n point.y <= rect.bottom &&\n point.y >= rect.top;\n }\n\n var Dimensions = {\n\n ratio: function(dimensions, prop, value) {\n var obj;\n\n\n var aProp = prop === 'width' ? 'height' : 'width';\n\n return ( obj = {}, obj[aProp] = dimensions[prop] ? Math.round(value * dimensions[aProp] / dimensions[prop]) : dimensions[aProp], obj[prop] = value, obj );\n },\n\n contain: function(dimensions, maxDimensions) {\n var this$1 = this;\n\n dimensions = assign({}, dimensions);\n\n each(dimensions, function (_, prop) { return dimensions = dimensions[prop] > maxDimensions[prop]\n ? this$1.ratio(dimensions, prop, maxDimensions[prop])\n : dimensions; }\n );\n\n return dimensions;\n },\n\n cover: function(dimensions, maxDimensions) {\n var this$1 = this;\n\n dimensions = this.contain(dimensions, maxDimensions);\n\n each(dimensions, function (_, prop) { return dimensions = dimensions[prop] < maxDimensions[prop]\n ? this$1.ratio(dimensions, prop, maxDimensions[prop])\n : dimensions; }\n );\n\n return dimensions;\n }\n\n };\n\n function attr(element, name, value) {\n\n if (isObject(name)) {\n for (var key in name) {\n attr(element, key, name[key]);\n }\n return;\n }\n\n if (isUndefined(value)) {\n element = toNode(element);\n return element && element.getAttribute(name);\n } else {\n toNodes(element).forEach(function (element) {\n\n if (isFunction(value)) {\n value = value.call(element, attr(element, name));\n }\n\n if (value === null) {\n removeAttr(element, name);\n } else {\n element.setAttribute(name, value);\n }\n });\n }\n\n }\n\n function hasAttr(element, name) {\n return toNodes(element).some(function (element) { return element.hasAttribute(name); });\n }\n\n function removeAttr(element, name) {\n element = toNodes(element);\n name.split(' ').forEach(function (name) { return element.forEach(function (element) { return element.hasAttribute(name) && element.removeAttribute(name); }\n ); }\n );\n }\n\n function data(element, attribute) {\n for (var i = 0, attrs = [attribute, (\"data-\" + attribute)]; i < attrs.length; i++) {\n if (hasAttr(element, attrs[i])) {\n return attr(element, attrs[i]);\n }\n }\n }\n\n /* global DocumentTouch */\n\n var inBrowser = typeof window !== 'undefined';\n var isIE = inBrowser && /msie|trident/i.test(window.navigator.userAgent);\n var isRtl = inBrowser && attr(document.documentElement, 'dir') === 'rtl';\n\n var hasTouchEvents = inBrowser && 'ontouchstart' in window;\n var hasPointerEvents = inBrowser && window.PointerEvent;\n var hasTouch = inBrowser && (hasTouchEvents\n || window.DocumentTouch && document instanceof DocumentTouch\n || navigator.maxTouchPoints); // IE >=11\n\n var pointerDown = hasPointerEvents ? 'pointerdown' : hasTouchEvents ? 'touchstart' : 'mousedown';\n var pointerMove = hasPointerEvents ? 'pointermove' : hasTouchEvents ? 'touchmove' : 'mousemove';\n var pointerUp = hasPointerEvents ? 'pointerup' : hasTouchEvents ? 'touchend' : 'mouseup';\n var pointerEnter = hasPointerEvents ? 'pointerenter' : hasTouchEvents ? '' : 'mouseenter';\n var pointerLeave = hasPointerEvents ? 'pointerleave' : hasTouchEvents ? '' : 'mouseleave';\n var pointerCancel = hasPointerEvents ? 'pointercancel' : 'touchcancel';\n\n function query(selector, context) {\n return toNode(selector) || find(selector, getContext(selector, context));\n }\n\n function queryAll(selector, context) {\n var nodes = toNodes(selector);\n return nodes.length && nodes || findAll(selector, getContext(selector, context));\n }\n\n function getContext(selector, context) {\n if ( context === void 0 ) context = document;\n\n return isContextSelector(selector) || isDocument(context)\n ? context\n : context.ownerDocument;\n }\n\n function find(selector, context) {\n return toNode(_query(selector, context, 'querySelector'));\n }\n\n function findAll(selector, context) {\n return toNodes(_query(selector, context, 'querySelectorAll'));\n }\n\n function _query(selector, context, queryFn) {\n if ( context === void 0 ) context = document;\n\n\n if (!selector || !isString(selector)) {\n return null;\n }\n\n selector = selector.replace(contextSanitizeRe, '$1 *');\n\n var removes;\n\n if (isContextSelector(selector)) {\n\n removes = [];\n\n selector = splitSelector(selector).map(function (selector, i) {\n\n var ctx = context;\n\n if (selector[0] === '!') {\n\n var selectors = selector.substr(1).trim().split(' ');\n ctx = closest(parent(context), selectors[0]);\n selector = selectors.slice(1).join(' ').trim();\n\n }\n\n if (selector[0] === '-') {\n\n var selectors$1 = selector.substr(1).trim().split(' ');\n var prev = (ctx || context).previousElementSibling;\n ctx = matches(prev, selector.substr(1)) ? prev : null;\n selector = selectors$1.slice(1).join(' ');\n\n }\n\n if (!ctx) {\n return null;\n }\n\n if (!ctx.id) {\n ctx.id = \"uk-\" + (Date.now()) + i;\n removes.push(function () { return removeAttr(ctx, 'id'); });\n }\n\n return (\"#\" + (escape(ctx.id)) + \" \" + selector);\n\n }).filter(Boolean).join(',');\n\n context = document;\n\n }\n\n try {\n\n return context[queryFn](selector);\n\n } catch (e) {\n\n return null;\n\n } finally {\n\n removes && removes.forEach(function (remove) { return remove(); });\n\n }\n\n }\n\n var contextSelectorRe = /(^|[^\\\\],)\\s*[!>+~-]/;\n var contextSanitizeRe = /([!>+~-])(?=\\s+[!>+~-]|\\s*$)/g;\n\n function isContextSelector(selector) {\n return isString(selector) && selector.match(contextSelectorRe);\n }\n\n var selectorRe = /.*?[^\\\\](?:,|$)/g;\n\n function splitSelector(selector) {\n return selector.match(selectorRe).map(function (selector) { return selector.replace(/,$/, '').trim(); });\n }\n\n var elProto = inBrowser ? Element.prototype : {};\n var matchesFn = elProto.matches || elProto.webkitMatchesSelector || elProto.msMatchesSelector || noop;\n\n function matches(element, selector) {\n return toNodes(element).some(function (element) { return matchesFn.call(element, selector); });\n }\n\n var closestFn = elProto.closest || function (selector) {\n var ancestor = this;\n\n do {\n\n if (matches(ancestor, selector)) {\n return ancestor;\n }\n\n } while ((ancestor = parent(ancestor)));\n };\n\n function closest(element, selector) {\n\n if (startsWith(selector, '>')) {\n selector = selector.slice(1);\n }\n\n return isElement(element)\n ? closestFn.call(element, selector)\n : toNodes(element).map(function (element) { return closest(element, selector); }).filter(Boolean);\n }\n\n function parent(element) {\n element = toNode(element);\n return element && isElement(element.parentNode) && element.parentNode;\n }\n\n var escapeFn = inBrowser && window.CSS && CSS.escape || function (css) { return css.replace(/([^\\x7f-\\uFFFF\\w-])/g, function (match) { return (\"\\\\\" + match); }); };\n function escape(css) {\n return isString(css) ? escapeFn.call(null, css) : '';\n }\n\n var voidElements = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n menuitem: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n };\n function isVoidElement(element) {\n return toNodes(element).some(function (element) { return voidElements[element.tagName.toLowerCase()]; });\n }\n\n function isVisible(element) {\n return toNodes(element).some(function (element) { return element.offsetWidth || element.offsetHeight || element.getClientRects().length; });\n }\n\n var selInput = 'input,select,textarea,button';\n function isInput(element) {\n return toNodes(element).some(function (element) { return matches(element, selInput); });\n }\n\n function filter(element, selector) {\n return toNodes(element).filter(function (element) { return matches(element, selector); });\n }\n\n function within(element, selector) {\n return !isString(selector)\n ? element === selector || (isDocument(selector)\n ? selector.documentElement\n : toNode(selector)).contains(toNode(element)) // IE 11 document does not implement contains\n : matches(element, selector) || !!closest(element, selector);\n }\n\n function parents(element, selector) {\n var elements = [];\n\n while ((element = parent(element))) {\n if (!selector || matches(element, selector)) {\n elements.push(element);\n }\n }\n\n return elements;\n }\n\n function children(element, selector) {\n element = toNode(element);\n var children = element ? toNodes(element.children) : [];\n return selector ? filter(children, selector) : children;\n }\n\n function on() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n\n var ref = getArgs(args);\n var targets = ref[0];\n var type = ref[1];\n var selector = ref[2];\n var listener = ref[3];\n var useCapture = ref[4];\n\n targets = toEventTargets(targets);\n\n if (listener.length > 1) {\n listener = detail(listener);\n }\n\n if (useCapture && useCapture.self) {\n listener = selfFilter(listener);\n }\n\n if (selector) {\n listener = delegate(targets, selector, listener);\n }\n\n useCapture = useCaptureFilter(useCapture);\n\n type.split(' ').forEach(function (type) { return targets.forEach(function (target) { return target.addEventListener(type, listener, useCapture); }\n ); }\n );\n return function () { return off(targets, type, listener, useCapture); };\n }\n\n function off(targets, type, listener, useCapture) {\n if ( useCapture === void 0 ) useCapture = false;\n\n useCapture = useCaptureFilter(useCapture);\n targets = toEventTargets(targets);\n type.split(' ').forEach(function (type) { return targets.forEach(function (target) { return target.removeEventListener(type, listener, useCapture); }\n ); }\n );\n }\n\n function once() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n\n var ref = getArgs(args);\n var element = ref[0];\n var type = ref[1];\n var selector = ref[2];\n var listener = ref[3];\n var useCapture = ref[4];\n var condition = ref[5];\n var off = on(element, type, selector, function (e) {\n var result = !condition || condition(e);\n if (result) {\n off();\n listener(e, result);\n }\n }, useCapture);\n\n return off;\n }\n\n function trigger(targets, event, detail) {\n return toEventTargets(targets).reduce(function (notCanceled, target) { return notCanceled && target.dispatchEvent(createEvent(event, true, true, detail)); }\n , true);\n }\n\n function createEvent(e, bubbles, cancelable, detail) {\n if ( bubbles === void 0 ) bubbles = true;\n if ( cancelable === void 0 ) cancelable = false;\n\n if (isString(e)) {\n var event = document.createEvent('CustomEvent'); // IE 11\n event.initCustomEvent(e, bubbles, cancelable, detail);\n e = event;\n }\n\n return e;\n }\n\n function getArgs(args) {\n if (isFunction(args[2])) {\n args.splice(2, 0, false);\n }\n return args;\n }\n\n function delegate(delegates, selector, listener) {\n var this$1 = this;\n\n return function (e) {\n\n delegates.forEach(function (delegate) {\n\n var current = selector[0] === '>'\n ? findAll(selector, delegate).reverse().filter(function (element) { return within(e.target, element); })[0]\n : closest(e.target, selector);\n\n if (current) {\n e.delegate = delegate;\n e.current = current;\n\n listener.call(this$1, e);\n }\n\n });\n\n };\n }\n\n function detail(listener) {\n return function (e) { return isArray(e.detail) ? listener.apply(void 0, [ e ].concat( e.detail )) : listener(e); };\n }\n\n function selfFilter(listener) {\n return function (e) {\n if (e.target === e.currentTarget || e.target === e.current) {\n return listener.call(null, e);\n }\n };\n }\n\n function useCaptureFilter(options) {\n return options && isIE && !isBoolean(options)\n ? !!options.capture\n : options;\n }\n\n function isEventTarget(target) {\n return target && 'addEventListener' in target;\n }\n\n function toEventTarget(target) {\n return isEventTarget(target) ? target : toNode(target);\n }\n\n function toEventTargets(target) {\n return isArray(target)\n ? target.map(toEventTarget).filter(Boolean)\n : isString(target)\n ? findAll(target)\n : isEventTarget(target)\n ? [target]\n : toNodes(target);\n }\n\n function isTouch(e) {\n return e.pointerType === 'touch' || !!e.touches;\n }\n\n function getEventPos(e) {\n var touches = e.touches;\n var changedTouches = e.changedTouches;\n var ref = touches && touches[0] || changedTouches && changedTouches[0] || e;\n var x = ref.clientX;\n var y = ref.clientY;\n\n return {x: x, y: y};\n }\n\n /* global setImmediate */\n\n var Promise = inBrowser && window.Promise || PromiseFn;\n\n var Deferred = function() {\n var this$1 = this;\n\n this.promise = new Promise(function (resolve, reject) {\n this$1.reject = reject;\n this$1.resolve = resolve;\n });\n };\n\n /**\n * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)\n */\n\n var RESOLVED = 0;\n var REJECTED = 1;\n var PENDING = 2;\n\n var async = inBrowser && window.setImmediate || setTimeout;\n\n function PromiseFn(executor) {\n\n this.state = PENDING;\n this.value = undefined;\n this.deferred = [];\n\n var promise = this;\n\n try {\n executor(\n function (x) {\n promise.resolve(x);\n },\n function (r) {\n promise.reject(r);\n }\n );\n } catch (e) {\n promise.reject(e);\n }\n }\n\n PromiseFn.reject = function (r) {\n return new PromiseFn(function (resolve, reject) {\n reject(r);\n });\n };\n\n PromiseFn.resolve = function (x) {\n return new PromiseFn(function (resolve, reject) {\n resolve(x);\n });\n };\n\n PromiseFn.all = function all(iterable) {\n return new PromiseFn(function (resolve, reject) {\n var result = [];\n var count = 0;\n\n if (iterable.length === 0) {\n resolve(result);\n }\n\n function resolver(i) {\n return function (x) {\n result[i] = x;\n count += 1;\n\n if (count === iterable.length) {\n resolve(result);\n }\n };\n }\n\n for (var i = 0; i < iterable.length; i += 1) {\n PromiseFn.resolve(iterable[i]).then(resolver(i), reject);\n }\n });\n };\n\n PromiseFn.race = function race(iterable) {\n return new PromiseFn(function (resolve, reject) {\n for (var i = 0; i < iterable.length; i += 1) {\n PromiseFn.resolve(iterable[i]).then(resolve, reject);\n }\n });\n };\n\n var p = PromiseFn.prototype;\n\n p.resolve = function resolve(x) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (x === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n var called = false;\n\n try {\n var then = x && x.then;\n\n if (x !== null && isObject(x) && isFunction(then)) {\n then.call(\n x,\n function (x) {\n if (!called) {\n promise.resolve(x);\n }\n called = true;\n },\n function (r) {\n if (!called) {\n promise.reject(r);\n }\n called = true;\n }\n );\n return;\n }\n } catch (e) {\n if (!called) {\n promise.reject(e);\n }\n return;\n }\n\n promise.state = RESOLVED;\n promise.value = x;\n promise.notify();\n }\n };\n\n p.reject = function reject(reason) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (reason === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n promise.state = REJECTED;\n promise.value = reason;\n promise.notify();\n }\n };\n\n p.notify = function notify() {\n var this$1 = this;\n\n async(function () {\n if (this$1.state !== PENDING) {\n while (this$1.deferred.length) {\n var ref = this$1.deferred.shift();\n var onResolved = ref[0];\n var onRejected = ref[1];\n var resolve = ref[2];\n var reject = ref[3];\n\n try {\n if (this$1.state === RESOLVED) {\n if (isFunction(onResolved)) {\n resolve(onResolved.call(undefined, this$1.value));\n } else {\n resolve(this$1.value);\n }\n } else if (this$1.state === REJECTED) {\n if (isFunction(onRejected)) {\n resolve(onRejected.call(undefined, this$1.value));\n } else {\n reject(this$1.value);\n }\n }\n } catch (e) {\n reject(e);\n }\n }\n }\n });\n };\n\n p.then = function then(onResolved, onRejected) {\n var this$1 = this;\n\n return new PromiseFn(function (resolve, reject) {\n this$1.deferred.push([onResolved, onRejected, resolve, reject]);\n this$1.notify();\n });\n };\n\n p.catch = function (onRejected) {\n return this.then(undefined, onRejected);\n };\n\n function ajax(url, options) {\n return new Promise(function (resolve, reject) {\n\n var env = assign({\n data: null,\n method: 'GET',\n headers: {},\n xhr: new XMLHttpRequest(),\n beforeSend: noop,\n responseType: ''\n }, options);\n\n env.beforeSend(env);\n\n var xhr = env.xhr;\n\n for (var prop in env) {\n if (prop in xhr) {\n try {\n\n xhr[prop] = env[prop];\n\n } catch (e) {}\n }\n }\n\n xhr.open(env.method.toUpperCase(), url);\n\n for (var header in env.headers) {\n xhr.setRequestHeader(header, env.headers[header]);\n }\n\n on(xhr, 'load', function () {\n\n if (xhr.status === 0 || xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\n // IE 11 does not support responseType 'json'\n if (env.responseType === 'json' && isString(xhr.response)) {\n xhr = assign(copyXhr(xhr), {response: JSON.parse(xhr.response)});\n }\n\n resolve(xhr);\n\n } else {\n reject(assign(Error(xhr.statusText), {\n xhr: xhr,\n status: xhr.status\n }));\n }\n\n });\n\n on(xhr, 'error', function () { return reject(assign(Error('Network Error'), {xhr: xhr})); });\n on(xhr, 'timeout', function () { return reject(assign(Error('Network Timeout'), {xhr: xhr})); });\n\n xhr.send(env.data);\n });\n }\n\n function getImage(src, srcset, sizes) {\n\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onerror = function (e) { return reject(e); };\n img.onload = function () { return resolve(img); };\n\n sizes && (img.sizes = sizes);\n srcset && (img.srcset = srcset);\n img.src = src;\n });\n\n }\n\n function copyXhr(source) {\n var target = {};\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n }\n\n function ready(fn) {\n\n if (document.readyState !== 'loading') {\n fn();\n return;\n }\n\n var unbind = on(document, 'DOMContentLoaded', function () {\n unbind();\n fn();\n });\n }\n\n function index(element, ref) {\n return ref\n ? toNodes(element).indexOf(toNode(ref))\n : children(parent(element)).indexOf(element);\n }\n\n function getIndex(i, elements, current, finite) {\n if ( current === void 0 ) current = 0;\n if ( finite === void 0 ) finite = false;\n\n\n elements = toNodes(elements);\n\n var length = elements.length;\n\n i = isNumeric(i)\n ? toNumber(i)\n : i === 'next'\n ? current + 1\n : i === 'previous'\n ? current - 1\n : index(elements, i);\n\n if (finite) {\n return clamp(i, 0, length - 1);\n }\n\n i %= length;\n\n return i < 0 ? i + length : i;\n }\n\n function empty(element) {\n element = $(element);\n element.innerHTML = '';\n return element;\n }\n\n function html(parent, html) {\n parent = $(parent);\n return isUndefined(html)\n ? parent.innerHTML\n : append(parent.hasChildNodes() ? empty(parent) : parent, html);\n }\n\n function prepend(parent, element) {\n\n parent = $(parent);\n\n if (!parent.hasChildNodes()) {\n return append(parent, element);\n } else {\n return insertNodes(element, function (element) { return parent.insertBefore(element, parent.firstChild); });\n }\n }\n\n function append(parent, element) {\n parent = $(parent);\n return insertNodes(element, function (element) { return parent.appendChild(element); });\n }\n\n function before(ref, element) {\n ref = $(ref);\n return insertNodes(element, function (element) { return ref.parentNode.insertBefore(element, ref); });\n }\n\n function after(ref, element) {\n ref = $(ref);\n return insertNodes(element, function (element) { return ref.nextSibling\n ? before(ref.nextSibling, element)\n : append(ref.parentNode, element); }\n );\n }\n\n function insertNodes(element, fn) {\n element = isString(element) ? fragment(element) : element;\n return element\n ? 'length' in element\n ? toNodes(element).map(fn)\n : fn(element)\n : null;\n }\n\n function remove(element) {\n toNodes(element).map(function (element) { return element.parentNode && element.parentNode.removeChild(element); });\n }\n\n function wrapAll(element, structure) {\n\n structure = toNode(before(element, structure));\n\n while (structure.firstChild) {\n structure = structure.firstChild;\n }\n\n append(structure, element);\n\n return structure;\n }\n\n function wrapInner(element, structure) {\n return toNodes(toNodes(element).map(function (element) { return element.hasChildNodes ? wrapAll(toNodes(element.childNodes), structure) : append(element, structure); }\n ));\n }\n\n function unwrap(element) {\n toNodes(element)\n .map(parent)\n .filter(function (value, index, self) { return self.indexOf(value) === index; })\n .forEach(function (parent) {\n before(parent, parent.childNodes);\n remove(parent);\n });\n }\n\n var fragmentRe = /^\\s*<(\\w+|!)[^>]*>/;\n var singleTagRe = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/;\n\n function fragment(html) {\n\n var matches = singleTagRe.exec(html);\n if (matches) {\n return document.createElement(matches[1]);\n }\n\n var container = document.createElement('div');\n if (fragmentRe.test(html)) {\n container.insertAdjacentHTML('beforeend', html.trim());\n } else {\n container.textContent = html;\n }\n\n return container.childNodes.length > 1 ? toNodes(container.childNodes) : container.firstChild;\n\n }\n\n function apply(node, fn) {\n\n if (!isElement(node)) {\n return;\n }\n\n fn(node);\n node = node.firstElementChild;\n while (node) {\n var next = node.nextElementSibling;\n apply(node, fn);\n node = next;\n }\n }\n\n function $(selector, context) {\n return !isString(selector)\n ? toNode(selector)\n : isHtml(selector)\n ? toNode(fragment(selector))\n : find(selector, context);\n }\n\n function $$(selector, context) {\n return !isString(selector)\n ? toNodes(selector)\n : isHtml(selector)\n ? toNodes(fragment(selector))\n : findAll(selector, context);\n }\n\n function isHtml(str) {\n return str[0] === '<' || str.match(/^\\s* 0 ) args[ len ] = arguments[ len + 1 ];\n\n apply$1(element, args, 'add');\n }\n\n function removeClass(element) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n apply$1(element, args, 'remove');\n }\n\n function removeClasses(element, cls) {\n attr(element, 'class', function (value) { return (value || '').replace(new RegExp((\"\\\\b\" + cls + \"\\\\b\"), 'g'), ''); });\n }\n\n function replaceClass(element) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n args[0] && removeClass(element, args[0]);\n args[1] && addClass(element, args[1]);\n }\n\n function hasClass(element, cls) {\n return cls && toNodes(element).some(function (element) { return element.classList.contains(cls.split(' ')[0]); });\n }\n\n function toggleClass(element) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n\n if (!args.length) {\n return;\n }\n\n args = getArgs$1(args);\n\n var force = !isString(last(args)) ? args.pop() : []; // in iOS 9.3 force === undefined evaluates to false\n\n args = args.filter(Boolean);\n\n toNodes(element).forEach(function (ref) {\n var classList = ref.classList;\n\n for (var i = 0; i < args.length; i++) {\n supports.Force\n ? classList.toggle.apply(classList, [args[i]].concat(force))\n : (classList[(!isUndefined(force) ? force : !classList.contains(args[i])) ? 'add' : 'remove'](args[i]));\n }\n });\n\n }\n\n function apply$1(element, args, fn) {\n args = getArgs$1(args).filter(Boolean);\n\n args.length && toNodes(element).forEach(function (ref) {\n var classList = ref.classList;\n\n supports.Multiple\n ? classList[fn].apply(classList, args)\n : args.forEach(function (cls) { return classList[fn](cls); });\n });\n }\n\n function getArgs$1(args) {\n return args.reduce(function (args, arg) { return args.concat.call(args, isString(arg) && includes(arg, ' ') ? arg.trim().split(' ') : arg); }\n , []);\n }\n\n // IE 11\n var supports = {\n\n get Multiple() {\n return this.get('_multiple');\n },\n\n get Force() {\n return this.get('_force');\n },\n\n get: function(key) {\n\n if (!hasOwn(this, key)) {\n var ref = document.createElement('_');\n var classList = ref.classList;\n classList.add('a', 'b');\n classList.toggle('c', false);\n this._multiple = classList.contains('b');\n this._force = !classList.contains('c');\n }\n\n return this[key];\n }\n\n };\n\n var cssNumber = {\n 'animation-iteration-count': true,\n 'column-count': true,\n 'fill-opacity': true,\n 'flex-grow': true,\n 'flex-shrink': true,\n 'font-weight': true,\n 'line-height': true,\n 'opacity': true,\n 'order': true,\n 'orphans': true,\n 'stroke-dasharray': true,\n 'stroke-dashoffset': true,\n 'widows': true,\n 'z-index': true,\n 'zoom': true\n };\n\n function css(element, property, value) {\n\n return toNodes(element).map(function (element) {\n\n if (isString(property)) {\n\n property = propName(property);\n\n if (isUndefined(value)) {\n return getStyle(element, property);\n } else if (!value && !isNumber(value)) {\n element.style.removeProperty(property);\n } else {\n element.style[property] = isNumeric(value) && !cssNumber[property] ? (value + \"px\") : value;\n }\n\n } else if (isArray(property)) {\n\n var styles = getStyles(element);\n\n return property.reduce(function (props, property) {\n props[property] = styles[propName(property)];\n return props;\n }, {});\n\n } else if (isObject(property)) {\n each(property, function (value, property) { return css(element, property, value); });\n }\n\n return element;\n\n })[0];\n\n }\n\n function getStyles(element, pseudoElt) {\n element = toNode(element);\n return element.ownerDocument.defaultView.getComputedStyle(element, pseudoElt);\n }\n\n function getStyle(element, property, pseudoElt) {\n return getStyles(element, pseudoElt)[property];\n }\n\n var vars = {};\n\n function getCssVar(name) {\n\n var docEl = document.documentElement;\n\n if (!isIE) {\n return getStyles(docEl).getPropertyValue((\"--uk-\" + name));\n }\n\n if (!(name in vars)) {\n\n /* usage in css: .uk-name:before { content:\"xyz\" } */\n\n var element = append(docEl, document.createElement('div'));\n\n addClass(element, (\"uk-\" + name));\n\n vars[name] = getStyle(element, 'content', ':before').replace(/^[\"'](.*)[\"']$/, '$1');\n\n remove(element);\n\n }\n\n return vars[name];\n\n }\n\n var cssProps = {};\n\n function propName(name) {\n\n var ret = cssProps[name];\n if (!ret) {\n ret = cssProps[name] = vendorPropName(name) || name;\n }\n return ret;\n }\n\n var cssPrefixes = ['webkit', 'moz', 'ms'];\n\n function vendorPropName(name) {\n\n name = hyphenate(name);\n\n var ref = document.documentElement;\n var style = ref.style;\n\n if (name in style) {\n return name;\n }\n\n var i = cssPrefixes.length, prefixedName;\n\n while (i--) {\n prefixedName = \"-\" + (cssPrefixes[i]) + \"-\" + name;\n if (prefixedName in style) {\n return prefixedName;\n }\n }\n }\n\n function transition(element, props, duration, timing) {\n if ( duration === void 0 ) duration = 400;\n if ( timing === void 0 ) timing = 'linear';\n\n\n return Promise.all(toNodes(element).map(function (element) { return new Promise(function (resolve, reject) {\n\n for (var name in props) {\n var value = css(element, name);\n if (value === '') {\n css(element, name, value);\n }\n }\n\n var timer = setTimeout(function () { return trigger(element, 'transitionend'); }, duration);\n\n once(element, 'transitionend transitioncanceled', function (ref) {\n var type = ref.type;\n\n clearTimeout(timer);\n removeClass(element, 'uk-transition');\n css(element, {\n transitionProperty: '',\n transitionDuration: '',\n transitionTimingFunction: ''\n });\n type === 'transitioncanceled' ? reject() : resolve();\n }, {self: true});\n\n addClass(element, 'uk-transition');\n css(element, assign({\n transitionProperty: Object.keys(props).map(propName).join(','),\n transitionDuration: (duration + \"ms\"),\n transitionTimingFunction: timing\n }, props));\n\n }); }\n ));\n\n }\n\n var Transition = {\n\n start: transition,\n\n stop: function(element) {\n trigger(element, 'transitionend');\n return Promise.resolve();\n },\n\n cancel: function(element) {\n trigger(element, 'transitioncanceled');\n },\n\n inProgress: function(element) {\n return hasClass(element, 'uk-transition');\n }\n\n };\n\n var animationPrefix = 'uk-animation-';\n\n function animate(element, animation, duration, origin, out) {\n if ( duration === void 0 ) duration = 200;\n\n\n return Promise.all(toNodes(element).map(function (element) { return new Promise(function (resolve, reject) {\n\n trigger(element, 'animationcanceled');\n var timer = setTimeout(function () { return trigger(element, 'animationend'); }, duration);\n\n once(element, 'animationend animationcanceled', function (ref) {\n var type = ref.type;\n\n\n clearTimeout(timer);\n\n type === 'animationcanceled' ? reject() : resolve();\n\n css(element, 'animationDuration', '');\n removeClasses(element, (animationPrefix + \"\\\\S*\"));\n\n }, {self: true});\n\n css(element, 'animationDuration', (duration + \"ms\"));\n addClass(element, animation, animationPrefix + (out ? 'leave' : 'enter'));\n\n if (startsWith(animation, animationPrefix)) {\n addClass(element, origin && (\"uk-transform-origin-\" + origin), out && (animationPrefix + \"reverse\"));\n }\n\n }); }\n ));\n\n }\n\n var inProgress = new RegExp((animationPrefix + \"(enter|leave)\"));\n var Animation = {\n\n in: animate,\n\n out: function(element, animation, duration, origin) {\n return animate(element, animation, duration, origin, true);\n },\n\n inProgress: function(element) {\n return inProgress.test(attr(element, 'class'));\n },\n\n cancel: function(element) {\n trigger(element, 'animationcanceled');\n }\n\n };\n\n var dirs = {\n width: ['x', 'left', 'right'],\n height: ['y', 'top', 'bottom']\n };\n\n function positionAt(element, target, elAttach, targetAttach, elOffset, targetOffset, flip, boundary) {\n\n elAttach = getPos(elAttach);\n targetAttach = getPos(targetAttach);\n\n var flipped = {element: elAttach, target: targetAttach};\n\n if (!element || !target) {\n return flipped;\n }\n\n var dim = getDimensions(element);\n var targetDim = getDimensions(target);\n var position = targetDim;\n\n moveTo(position, elAttach, dim, -1);\n moveTo(position, targetAttach, targetDim, 1);\n\n elOffset = getOffsets(elOffset, dim.width, dim.height);\n targetOffset = getOffsets(targetOffset, targetDim.width, targetDim.height);\n\n elOffset['x'] += targetOffset['x'];\n elOffset['y'] += targetOffset['y'];\n\n position.left += elOffset['x'];\n position.top += elOffset['y'];\n\n if (flip) {\n\n var boundaries = [getDimensions(toWindow(element))];\n\n if (boundary) {\n boundaries.unshift(getDimensions(boundary));\n }\n\n each(dirs, function (ref, prop) {\n var dir = ref[0];\n var align = ref[1];\n var alignFlip = ref[2];\n\n\n if (!(flip === true || includes(flip, dir))) {\n return;\n }\n\n boundaries.some(function (boundary) {\n\n var elemOffset = elAttach[dir] === align\n ? -dim[prop]\n : elAttach[dir] === alignFlip\n ? dim[prop]\n : 0;\n\n var targetOffset = targetAttach[dir] === align\n ? targetDim[prop]\n : targetAttach[dir] === alignFlip\n ? -targetDim[prop]\n : 0;\n\n if (position[align] < boundary[align] || position[align] + dim[prop] > boundary[alignFlip]) {\n\n var centerOffset = dim[prop] / 2;\n var centerTargetOffset = targetAttach[dir] === 'center' ? -targetDim[prop] / 2 : 0;\n\n return elAttach[dir] === 'center' && (\n apply(centerOffset, centerTargetOffset)\n || apply(-centerOffset, -centerTargetOffset)\n ) || apply(elemOffset, targetOffset);\n\n }\n\n function apply(elemOffset, targetOffset) {\n\n var newVal = (position[align] + elemOffset + targetOffset - elOffset[dir] * 2).toFixed(4);\n\n if (newVal >= boundary[align] && newVal + dim[prop] <= boundary[alignFlip]) {\n position[align] = newVal;\n\n ['element', 'target'].forEach(function (el) {\n flipped[el][dir] = !elemOffset\n ? flipped[el][dir]\n : flipped[el][dir] === dirs[prop][1]\n ? dirs[prop][2]\n : dirs[prop][1];\n });\n\n return true;\n }\n\n }\n\n });\n\n });\n }\n\n offset(element, position);\n\n return flipped;\n }\n\n function offset(element, coordinates) {\n\n if (!coordinates) {\n return getDimensions(element);\n }\n\n var currentOffset = getDimensions(element);\n var pos = css(element, 'position');\n\n ['left', 'top'].forEach(function (prop) {\n if (prop in coordinates) {\n var value = css(element, prop);\n css(element, prop, coordinates[prop] - currentOffset[prop]\n + toFloat(pos === 'absolute' && value === 'auto'\n ? position(element)[prop]\n : value)\n );\n }\n });\n }\n\n function getDimensions(element) {\n\n if (!element) {\n return {};\n }\n\n var ref = toWindow(element);\n var top = ref.pageYOffset;\n var left = ref.pageXOffset;\n\n if (isWindow(element)) {\n\n var height = element.innerHeight;\n var width = element.innerWidth;\n\n return {\n top: top,\n left: left,\n height: height,\n width: width,\n bottom: top + height,\n right: left + width\n };\n }\n\n var style, hidden;\n\n if (!isVisible(element) && css(element, 'display') === 'none') {\n\n style = attr(element, 'style');\n hidden = attr(element, 'hidden');\n\n attr(element, {\n style: ((style || '') + \";display:block !important;\"),\n hidden: null\n });\n }\n\n element = toNode(element);\n\n var rect = element.getBoundingClientRect();\n\n if (!isUndefined(style)) {\n attr(element, {style: style, hidden: hidden});\n }\n\n return {\n height: rect.height,\n width: rect.width,\n top: rect.top + top,\n left: rect.left + left,\n bottom: rect.bottom + top,\n right: rect.right + left\n };\n }\n\n function position(element, parent) {\n\n parent = parent || (toNode(element) || {}).offsetParent || toWindow(element).document.documentElement;\n\n var elementOffset = offset(element);\n var parentOffset = offset(parent);\n\n return {\n top: elementOffset.top - parentOffset.top - toFloat(css(parent, 'borderTopWidth')),\n left: elementOffset.left - parentOffset.left - toFloat(css(parent, 'borderLeftWidth'))\n };\n }\n\n function offsetPosition(element) {\n var offset = [0, 0];\n\n element = toNode(element);\n\n do {\n\n offset[0] += element.offsetTop;\n offset[1] += element.offsetLeft;\n\n if (css(element, 'position') === 'fixed') {\n var win = toWindow(element);\n offset[0] += win.pageYOffset;\n offset[1] += win.pageXOffset;\n return offset;\n }\n\n } while ((element = element.offsetParent));\n\n return offset;\n }\n\n var height = dimension('height');\n var width = dimension('width');\n\n function dimension(prop) {\n var propName = ucfirst(prop);\n return function (element, value) {\n\n if (isUndefined(value)) {\n\n if (isWindow(element)) {\n return element[(\"inner\" + propName)];\n }\n\n if (isDocument(element)) {\n var doc = element.documentElement;\n return Math.max(doc[(\"offset\" + propName)], doc[(\"scroll\" + propName)]);\n }\n\n element = toNode(element);\n\n value = css(element, prop);\n value = value === 'auto' ? element[(\"offset\" + propName)] : toFloat(value) || 0;\n\n return value - boxModelAdjust(element, prop);\n\n } else {\n\n css(element, prop, !value && value !== 0\n ? ''\n : +value + boxModelAdjust(element, prop) + 'px'\n );\n\n }\n\n };\n }\n\n function boxModelAdjust(element, prop, sizing) {\n if ( sizing === void 0 ) sizing = 'border-box';\n\n return css(element, 'boxSizing') === sizing\n ? dirs[prop].slice(1).map(ucfirst).reduce(function (value, prop) { return value\n + toFloat(css(element, (\"padding\" + prop)))\n + toFloat(css(element, (\"border\" + prop + \"Width\"))); }\n , 0)\n : 0;\n }\n\n function moveTo(position, attach, dim, factor) {\n each(dirs, function (ref, prop) {\n var dir = ref[0];\n var align = ref[1];\n var alignFlip = ref[2];\n\n if (attach[dir] === alignFlip) {\n position[align] += dim[prop] * factor;\n } else if (attach[dir] === 'center') {\n position[align] += dim[prop] * factor / 2;\n }\n });\n }\n\n function getPos(pos) {\n\n var x = /left|center|right/;\n var y = /top|center|bottom/;\n\n pos = (pos || '').split(' ');\n\n if (pos.length === 1) {\n pos = x.test(pos[0])\n ? pos.concat('center')\n : y.test(pos[0])\n ? ['center'].concat(pos)\n : ['center', 'center'];\n }\n\n return {\n x: x.test(pos[0]) ? pos[0] : 'center',\n y: y.test(pos[1]) ? pos[1] : 'center'\n };\n }\n\n function getOffsets(offsets, width, height) {\n\n var ref = (offsets || '').split(' ');\n var x = ref[0];\n var y = ref[1];\n\n return {\n x: x ? toFloat(x) * (endsWith(x, '%') ? width / 100 : 1) : 0,\n y: y ? toFloat(y) * (endsWith(y, '%') ? height / 100 : 1) : 0\n };\n }\n\n function flipPosition(pos) {\n switch (pos) {\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n default:\n return pos;\n }\n }\n\n function toPx(value, property, element) {\n if ( property === void 0 ) property = 'width';\n if ( element === void 0 ) element = window;\n\n return isNumeric(value)\n ? +value\n : endsWith(value, 'vh')\n ? percent(height(toWindow(element)), value)\n : endsWith(value, 'vw')\n ? percent(width(toWindow(element)), value)\n : endsWith(value, '%')\n ? percent(getDimensions(element)[property], value)\n : toFloat(value);\n }\n\n function percent(base, value) {\n return base * toFloat(value) / 100;\n }\n\n /*\n Based on:\n Copyright (c) 2016 Wilson Page wilsonpage@me.com\n https://github.com/wilsonpage/fastdom\n */\n\n var fastdom = {\n\n reads: [],\n writes: [],\n\n read: function(task) {\n this.reads.push(task);\n scheduleFlush();\n return task;\n },\n\n write: function(task) {\n this.writes.push(task);\n scheduleFlush();\n return task;\n },\n\n clear: function(task) {\n return remove$1(this.reads, task) || remove$1(this.writes, task);\n },\n\n flush: flush\n\n };\n\n function flush(recursion) {\n if ( recursion === void 0 ) recursion = 1;\n\n runTasks(fastdom.reads);\n runTasks(fastdom.writes.splice(0, fastdom.writes.length));\n\n fastdom.scheduled = false;\n\n if (fastdom.reads.length || fastdom.writes.length) {\n scheduleFlush(recursion + 1);\n }\n }\n\n var RECURSION_LIMIT = 4;\n function scheduleFlush(recursion) {\n\n if (fastdom.scheduled) {\n return;\n }\n\n fastdom.scheduled = true;\n if (recursion && recursion < RECURSION_LIMIT) {\n Promise.resolve().then(function () { return flush(recursion); });\n } else {\n requestAnimationFrame(function () { return flush(); });\n }\n\n }\n\n function runTasks(tasks) {\n var task;\n while ((task = tasks.shift())) {\n task();\n }\n }\n\n function remove$1(array, item) {\n var index = array.indexOf(item);\n return !!~index && !!array.splice(index, 1);\n }\n\n function MouseTracker() {}\n\n MouseTracker.prototype = {\n\n positions: [],\n\n init: function() {\n var this$1 = this;\n\n\n this.positions = [];\n\n var position;\n this.unbind = on(document, 'mousemove', function (e) { return position = getEventPos(e); });\n this.interval = setInterval(function () {\n\n if (!position) {\n return;\n }\n\n this$1.positions.push(position);\n\n if (this$1.positions.length > 5) {\n this$1.positions.shift();\n }\n }, 50);\n\n },\n\n cancel: function() {\n this.unbind && this.unbind();\n this.interval && clearInterval(this.interval);\n },\n\n movesTo: function(target) {\n\n if (this.positions.length < 2) {\n return false;\n }\n\n var p = target.getBoundingClientRect();\n var left = p.left;\n var right = p.right;\n var top = p.top;\n var bottom = p.bottom;\n\n var ref = this.positions;\n var prevPosition = ref[0];\n var position = last(this.positions);\n var path = [prevPosition, position];\n\n if (pointInRect(position, p)) {\n return false;\n }\n\n var diagonals = [[{x: left, y: top}, {x: right, y: bottom}], [{x: left, y: bottom}, {x: right, y: top}]];\n\n return diagonals.some(function (diagonal) {\n var intersection = intersect(path, diagonal);\n return intersection && pointInRect(intersection, p);\n });\n }\n\n };\n\n // Inspired by http://paulbourke.net/geometry/pointlineplane/\n function intersect(ref, ref$1) {\n var ref_0 = ref[0];\n var x1 = ref_0.x;\n var y1 = ref_0.y;\n var ref_1 = ref[1];\n var x2 = ref_1.x;\n var y2 = ref_1.y;\n var ref$1_0 = ref$1[0];\n var x3 = ref$1_0.x;\n var y3 = ref$1_0.y;\n var ref$1_1 = ref$1[1];\n var x4 = ref$1_1.x;\n var y4 = ref$1_1.y;\n\n\n var denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) {\n return false;\n }\n\n var ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n\n if (ua < 0) {\n return false;\n }\n\n // Return an object with the x and y coordinates of the intersection\n return {x: x1 + ua * (x2 - x1), y: y1 + ua * (y2 - y1)};\n }\n\n var strats = {};\n\n strats.events =\n strats.created =\n strats.beforeConnect =\n strats.connected =\n strats.beforeDisconnect =\n strats.disconnected =\n strats.destroy = concatStrat;\n\n // args strategy\n strats.args = function (parentVal, childVal) {\n return childVal !== false && concatStrat(childVal || parentVal);\n };\n\n // update strategy\n strats.update = function (parentVal, childVal) {\n return sortBy(concatStrat(parentVal, isFunction(childVal) ? {read: childVal} : childVal), 'order');\n };\n\n // property strategy\n strats.props = function (parentVal, childVal) {\n\n if (isArray(childVal)) {\n childVal = childVal.reduce(function (value, key) {\n value[key] = String;\n return value;\n }, {});\n }\n\n return strats.methods(parentVal, childVal);\n };\n\n // extend strategy\n strats.computed =\n strats.methods = function (parentVal, childVal) {\n return childVal\n ? parentVal\n ? assign({}, parentVal, childVal)\n : childVal\n : parentVal;\n };\n\n // data strategy\n strats.data = function (parentVal, childVal, vm) {\n\n if (!vm) {\n\n if (!childVal) {\n return parentVal;\n }\n\n if (!parentVal) {\n return childVal;\n }\n\n return function (vm) {\n return mergeFnData(parentVal, childVal, vm);\n };\n\n }\n\n return mergeFnData(parentVal, childVal, vm);\n };\n\n function mergeFnData(parentVal, childVal, vm) {\n return strats.computed(\n isFunction(parentVal)\n ? parentVal.call(vm, vm)\n : parentVal,\n isFunction(childVal)\n ? childVal.call(vm, vm)\n : childVal\n );\n }\n\n // concat strategy\n function concatStrat(parentVal, childVal) {\n\n parentVal = parentVal && !isArray(parentVal) ? [parentVal] : parentVal;\n\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n }\n\n // default strategy\n function defaultStrat(parentVal, childVal) {\n return isUndefined(childVal) ? parentVal : childVal;\n }\n\n function mergeOptions(parent, child, vm) {\n\n var options = {};\n\n if (isFunction(child)) {\n child = child.options;\n }\n\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n\n for (var key in parent) {\n mergeKey(key);\n }\n\n for (var key$1 in child) {\n if (!hasOwn(parent, key$1)) {\n mergeKey(key$1);\n }\n }\n\n function mergeKey(key) {\n options[key] = (strats[key] || defaultStrat)(parent[key], child[key], vm);\n }\n\n return options;\n }\n\n function parseOptions(options, args) {\n var obj;\n\n if ( args === void 0 ) args = [];\n\n try {\n\n return !options\n ? {}\n : startsWith(options, '{')\n ? JSON.parse(options)\n : args.length && !includes(options, ':')\n ? (( obj = {}, obj[args[0]] = options, obj ))\n : options.split(';').reduce(function (options, option) {\n var ref = option.split(/:(.*)/);\n var key = ref[0];\n var value = ref[1];\n if (key && !isUndefined(value)) {\n options[key.trim()] = value.trim();\n }\n return options;\n }, {});\n\n } catch (e) {\n return {};\n }\n\n }\n\n var id = 0;\n\n var Player = function(el) {\n this.id = ++id;\n this.el = toNode(el);\n };\n\n Player.prototype.isVideo = function () {\n return this.isYoutube() || this.isVimeo() || this.isHTML5();\n };\n\n Player.prototype.isHTML5 = function () {\n return this.el.tagName === 'VIDEO';\n };\n\n Player.prototype.isIFrame = function () {\n return this.el.tagName === 'IFRAME';\n };\n\n Player.prototype.isYoutube = function () {\n return this.isIFrame() && !!this.el.src.match(/\\/\\/.*?youtube(-nocookie)?\\.[a-z]+\\/(watch\\?v=[^&\\s]+|embed)|youtu\\.be\\/.*/);\n };\n\n Player.prototype.isVimeo = function () {\n return this.isIFrame() && !!this.el.src.match(/vimeo\\.com\\/video\\/.*/);\n };\n\n Player.prototype.enableApi = function () {\n var this$1 = this;\n\n\n if (this.ready) {\n return this.ready;\n }\n\n var youtube = this.isYoutube();\n var vimeo = this.isVimeo();\n\n var poller;\n\n if (youtube || vimeo) {\n\n return this.ready = new Promise(function (resolve) {\n\n once(this$1.el, 'load', function () {\n if (youtube) {\n var listener = function () { return post(this$1.el, {event: 'listening', id: this$1.id}); };\n poller = setInterval(listener, 100);\n listener();\n }\n });\n\n listen(function (data) { return youtube && data.id === this$1.id && data.event === 'onReady' || vimeo && Number(data.player_id) === this$1.id; })\n .then(function () {\n resolve();\n poller && clearInterval(poller);\n });\n\n attr(this$1.el, 'src', (\"\" + (this$1.el.src) + (includes(this$1.el.src, '?') ? '&' : '?') + (youtube ? 'enablejsapi=1' : (\"api=1&player_id=\" + (this$1.id)))));\n\n });\n\n }\n\n return Promise.resolve();\n\n };\n\n Player.prototype.play = function () {\n var this$1 = this;\n\n\n if (!this.isVideo()) {\n return;\n }\n\n if (this.isIFrame()) {\n this.enableApi().then(function () { return post(this$1.el, {func: 'playVideo', method: 'play'}); });\n } else if (this.isHTML5()) {\n try {\n var promise = this.el.play();\n\n if (promise) {\n promise.catch(noop);\n }\n } catch (e) {}\n }\n };\n\n Player.prototype.pause = function () {\n var this$1 = this;\n\n\n if (!this.isVideo()) {\n return;\n }\n\n if (this.isIFrame()) {\n this.enableApi().then(function () { return post(this$1.el, {func: 'pauseVideo', method: 'pause'}); });\n } else if (this.isHTML5()) {\n this.el.pause();\n }\n };\n\n Player.prototype.mute = function () {\n var this$1 = this;\n\n\n if (!this.isVideo()) {\n return;\n }\n\n if (this.isIFrame()) {\n this.enableApi().then(function () { return post(this$1.el, {func: 'mute', method: 'setVolume', value: 0}); });\n } else if (this.isHTML5()) {\n this.el.muted = true;\n attr(this.el, 'muted', '');\n }\n\n };\n\n function post(el, cmd) {\n try {\n el.contentWindow.postMessage(JSON.stringify(assign({event: 'command'}, cmd)), '*');\n } catch (e) {}\n }\n\n function listen(cb) {\n\n return new Promise(function (resolve) { return once(window, 'message', function (_, data) { return resolve(data); }, false, function (ref) {\n var data = ref.data;\n\n\n try {\n data = JSON.parse(data);\n return data && cb(data);\n } catch (e) {}\n\n }); }\n\n );\n\n }\n\n function isInView(element, offsetTop, offsetLeft) {\n if ( offsetTop === void 0 ) offsetTop = 0;\n if ( offsetLeft === void 0 ) offsetLeft = 0;\n\n\n if (!isVisible(element)) {\n return false;\n }\n\n var parents = overflowParents(element);\n\n return parents.every(function (parent, i) {\n\n var client = offset(parents[i + 1] || element);\n var ref = offset(getViewport(parent));\n var top = ref.top;\n var left = ref.left;\n var bottom = ref.bottom;\n var right = ref.right;\n\n return intersectRect(client, {\n top: top - offsetTop,\n left: left - offsetLeft,\n bottom: bottom + offsetTop,\n right: right + offsetLeft\n });\n });\n }\n\n function scrollTop(element, top) {\n\n if (isWindow(element) || isDocument(element)) {\n element = getScrollingElement(element);\n } else {\n element = toNode(element);\n }\n\n element.scrollTop = top;\n }\n\n function scrollIntoView(element, ref) {\n if ( ref === void 0 ) ref = {};\n var offsetBy = ref.offset; if ( offsetBy === void 0 ) offsetBy = 0;\n\n\n if (!isVisible(element)) {\n return;\n }\n\n var parents = overflowParents(element).concat(element);\n\n var promise = Promise.resolve();\n var loop = function ( i ) {\n promise = promise.then(function () { return new Promise(function (resolve) {\n\n var scrollElement = parents[i];\n var element = parents[i + 1];\n\n var scroll = scrollElement.scrollTop;\n var top = Math.ceil(position(element, getViewport(scrollElement)).top - offsetBy);\n var duration = getDuration(Math.abs(top));\n\n var start = Date.now();\n var step = function () {\n\n var percent = ease(clamp((Date.now() - start) / duration));\n\n scrollTop(scrollElement, scroll + top * percent);\n\n // scroll more if we have not reached our destination\n if (percent !== 1) {\n requestAnimationFrame(step);\n } else {\n resolve();\n }\n\n };\n\n step();\n }); }\n );\n };\n\n for (var i = 0; i < parents.length - 1; i++) loop( i );\n\n return promise;\n\n function getDuration(dist) {\n return 40 * Math.pow(dist, .375);\n }\n\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n }\n\n function scrolledOver(element, heightOffset) {\n if ( heightOffset === void 0 ) heightOffset = 0;\n\n\n if (!isVisible(element)) {\n return 0;\n }\n\n var scrollElement = last(scrollParents(element));\n var scrollHeight = scrollElement.scrollHeight;\n var scrollTop = scrollElement.scrollTop;\n var viewport = getViewport(scrollElement);\n var viewportHeight = offset(viewport).height;\n var viewportTop = offsetPosition(element)[0] - scrollTop - offsetPosition(scrollElement)[0];\n var viewportDist = Math.min(viewportHeight, viewportTop + scrollTop);\n\n var top = viewportTop - viewportDist;\n var dist = Math.min(\n offset(element).height + heightOffset + viewportDist,\n scrollHeight - (viewportTop + scrollTop),\n scrollHeight - viewportHeight\n );\n\n return clamp(-1 * top / dist);\n }\n\n function scrollParents(element, overflowRe) {\n if ( overflowRe === void 0 ) overflowRe = /auto|scroll/;\n\n var scrollEl = getScrollingElement(element);\n var scrollParents = parents(element).filter(function (parent) { return parent === scrollEl\n || overflowRe.test(css(parent, 'overflow'))\n && parent.scrollHeight > Math.round(offset(parent).height); }\n ).reverse();\n return scrollParents.length ? scrollParents : [scrollEl];\n }\n\n function getViewport(scrollElement) {\n return scrollElement === getScrollingElement(scrollElement) ? window : scrollElement;\n }\n\n function overflowParents(element) {\n return scrollParents(element, /auto|scroll|hidden/);\n }\n\n function getScrollingElement(element) {\n var ref = toWindow(element);\n var document = ref.document;\n return document.scrollingElement || document.documentElement;\n }\n\n var IntersectionObserver = inBrowser && window.IntersectionObserver\n || /*@__PURE__*/(function () {\n function IntersectionObserverClass(callback, ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var rootMargin = ref.rootMargin; if ( rootMargin === void 0 ) rootMargin = '0 0';\n\n\n this.targets = [];\n\n var ref$1 = (rootMargin || '0 0').split(' ').map(toFloat);\n var offsetTop = ref$1[0];\n var offsetLeft = ref$1[1];\n\n this.offsetTop = offsetTop;\n this.offsetLeft = offsetLeft;\n\n var pending;\n this.apply = function () {\n\n if (pending) {\n return;\n }\n\n pending = requestAnimationFrame(function () { return setTimeout(function () {\n var records = this$1.takeRecords();\n\n if (records.length) {\n callback(records, this$1);\n }\n\n pending = false;\n }); });\n\n };\n\n this.off = on(window, 'scroll resize load', this.apply, {passive: true, capture: true});\n\n }\n\n IntersectionObserverClass.prototype.takeRecords = function () {\n var this$1 = this;\n\n return this.targets.filter(function (entry) {\n\n var inView = isInView(entry.target, this$1.offsetTop, this$1.offsetLeft);\n\n if (entry.isIntersecting === null || inView ^ entry.isIntersecting) {\n entry.isIntersecting = inView;\n return true;\n }\n\n });\n };\n\n IntersectionObserverClass.prototype.observe = function (target) {\n this.targets.push({\n target: target,\n isIntersecting: null\n });\n this.apply();\n };\n\n IntersectionObserverClass.prototype.disconnect = function () {\n this.targets = [];\n this.off();\n };\n\n return IntersectionObserverClass;\n }());\n\n var util = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ajax: ajax,\n getImage: getImage,\n transition: transition,\n Transition: Transition,\n animate: animate,\n Animation: Animation,\n attr: attr,\n hasAttr: hasAttr,\n removeAttr: removeAttr,\n data: data,\n addClass: addClass,\n removeClass: removeClass,\n removeClasses: removeClasses,\n replaceClass: replaceClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n positionAt: positionAt,\n offset: offset,\n position: position,\n offsetPosition: offsetPosition,\n height: height,\n width: width,\n boxModelAdjust: boxModelAdjust,\n flipPosition: flipPosition,\n toPx: toPx,\n ready: ready,\n index: index,\n getIndex: getIndex,\n empty: empty,\n html: html,\n prepend: prepend,\n append: append,\n before: before,\n after: after,\n remove: remove,\n wrapAll: wrapAll,\n wrapInner: wrapInner,\n unwrap: unwrap,\n fragment: fragment,\n apply: apply,\n $: $,\n $$: $$,\n inBrowser: inBrowser,\n isIE: isIE,\n isRtl: isRtl,\n hasTouch: hasTouch,\n pointerDown: pointerDown,\n pointerMove: pointerMove,\n pointerUp: pointerUp,\n pointerEnter: pointerEnter,\n pointerLeave: pointerLeave,\n pointerCancel: pointerCancel,\n on: on,\n off: off,\n once: once,\n trigger: trigger,\n createEvent: createEvent,\n toEventTargets: toEventTargets,\n isTouch: isTouch,\n getEventPos: getEventPos,\n fastdom: fastdom,\n isVoidElement: isVoidElement,\n isVisible: isVisible,\n selInput: selInput,\n isInput: isInput,\n filter: filter,\n within: within,\n parents: parents,\n children: children,\n hasOwn: hasOwn,\n hyphenate: hyphenate,\n camelize: camelize,\n ucfirst: ucfirst,\n startsWith: startsWith,\n endsWith: endsWith,\n includes: includes,\n findIndex: findIndex,\n isArray: isArray,\n isFunction: isFunction,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isWindow: isWindow,\n isDocument: isDocument,\n isJQuery: isJQuery,\n isNode: isNode,\n isElement: isElement,\n isNodeCollection: isNodeCollection,\n isBoolean: isBoolean,\n isString: isString,\n isNumber: isNumber,\n isNumeric: isNumeric,\n isEmpty: isEmpty,\n isUndefined: isUndefined,\n toBoolean: toBoolean,\n toNumber: toNumber,\n toFloat: toFloat,\n toNode: toNode,\n toNodes: toNodes,\n toWindow: toWindow,\n toList: toList,\n toMs: toMs,\n isEqual: isEqual,\n swap: swap,\n assign: assign,\n last: last,\n each: each,\n sortBy: sortBy,\n uniqueBy: uniqueBy,\n clamp: clamp,\n noop: noop,\n intersectRect: intersectRect,\n pointInRect: pointInRect,\n Dimensions: Dimensions,\n MouseTracker: MouseTracker,\n mergeOptions: mergeOptions,\n parseOptions: parseOptions,\n Player: Player,\n Promise: Promise,\n Deferred: Deferred,\n IntersectionObserver: IntersectionObserver,\n query: query,\n queryAll: queryAll,\n find: find,\n findAll: findAll,\n matches: matches,\n closest: closest,\n parent: parent,\n escape: escape,\n css: css,\n getStyles: getStyles,\n getStyle: getStyle,\n getCssVar: getCssVar,\n propName: propName,\n isInView: isInView,\n scrollTop: scrollTop,\n scrollIntoView: scrollIntoView,\n scrolledOver: scrolledOver,\n scrollParents: scrollParents,\n getViewport: getViewport\n });\n\n function globalAPI (UIkit) {\n\n var DATA = UIkit.data;\n\n UIkit.use = function (plugin) {\n\n if (plugin.installed) {\n return;\n }\n\n plugin.call(null, this);\n plugin.installed = true;\n\n return this;\n };\n\n UIkit.mixin = function (mixin, component) {\n component = (isString(component) ? UIkit.component(component) : component) || this;\n component.options = mergeOptions(component.options, mixin);\n };\n\n UIkit.extend = function (options) {\n\n options = options || {};\n\n var Super = this;\n var Sub = function UIkitComponent(options) {\n this._init(options);\n };\n\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.options = mergeOptions(Super.options, options);\n\n Sub.super = Super;\n Sub.extend = Super.extend;\n\n return Sub;\n };\n\n UIkit.update = function (element, e) {\n\n element = element ? toNode(element) : document.body;\n\n parents(element).reverse().forEach(function (element) { return update(element[DATA], e); });\n apply(element, function (element) { return update(element[DATA], e); });\n\n };\n\n var container;\n Object.defineProperty(UIkit, 'container', {\n\n get: function() {\n return container || document.body;\n },\n\n set: function(element) {\n container = $(element);\n }\n\n });\n\n function update(data, e) {\n\n if (!data) {\n return;\n }\n\n for (var name in data) {\n if (data[name]._connected) {\n data[name]._callUpdate(e);\n }\n }\n\n }\n }\n\n function hooksAPI (UIkit) {\n\n UIkit.prototype._callHook = function (hook) {\n var this$1 = this;\n\n\n var handlers = this.$options[hook];\n\n if (handlers) {\n handlers.forEach(function (handler) { return handler.call(this$1); });\n }\n };\n\n UIkit.prototype._callConnected = function () {\n\n if (this._connected) {\n return;\n }\n\n this._data = {};\n this._computeds = {};\n this._frames = {reads: {}, writes: {}};\n\n this._initProps();\n\n this._callHook('beforeConnect');\n this._connected = true;\n\n this._initEvents();\n this._initObserver();\n\n this._callHook('connected');\n this._callUpdate();\n };\n\n UIkit.prototype._callDisconnected = function () {\n\n if (!this._connected) {\n return;\n }\n\n this._callHook('beforeDisconnect');\n\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n\n this._unbindEvents();\n this._callHook('disconnected');\n\n this._connected = false;\n\n };\n\n UIkit.prototype._callUpdate = function (e) {\n var this$1 = this;\n if ( e === void 0 ) e = 'update';\n\n\n var type = e.type || e;\n\n if (includes(['update', 'resize'], type)) {\n this._callWatches();\n }\n\n var updates = this.$options.update;\n var ref = this._frames;\n var reads = ref.reads;\n var writes = ref.writes;\n\n if (!updates) {\n return;\n }\n\n updates.forEach(function (ref, i) {\n var read = ref.read;\n var write = ref.write;\n var events = ref.events;\n\n\n if (type !== 'update' && !includes(events, type)) {\n return;\n }\n\n if (read && !includes(fastdom.reads, reads[i])) {\n reads[i] = fastdom.read(function () {\n\n var result = this$1._connected && read.call(this$1, this$1._data, type);\n\n if (result === false && write) {\n fastdom.clear(writes[i]);\n } else if (isPlainObject(result)) {\n assign(this$1._data, result);\n }\n });\n }\n\n if (write && !includes(fastdom.writes, writes[i])) {\n writes[i] = fastdom.write(function () { return this$1._connected && write.call(this$1, this$1._data, type); });\n }\n\n });\n\n };\n\n UIkit.prototype._callWatches = function () {\n var this$1 = this;\n\n\n var ref = this;\n var _frames = ref._frames;\n\n if (_frames._watch) {\n return;\n }\n\n var initital = !hasOwn(_frames, '_watch');\n\n _frames._watch = fastdom.read(function () {\n\n if (!this$1._connected) {\n return;\n }\n\n var ref = this$1;\n var computed = ref.$options.computed;\n var _computeds = ref._computeds;\n\n for (var key in computed) {\n\n var hasPrev = hasOwn(_computeds, key);\n var prev = _computeds[key];\n\n delete _computeds[key];\n\n var ref$1 = computed[key];\n var watch = ref$1.watch;\n var immediate = ref$1.immediate;\n if (watch && (\n initital && immediate\n || hasPrev && !isEqual(prev, this$1[key])\n )) {\n watch.call(this$1, this$1[key], prev);\n }\n\n }\n\n _frames._watch = null;\n\n });\n\n };\n\n }\n\n function stateAPI (UIkit) {\n\n var uid = 0;\n\n UIkit.prototype._init = function (options) {\n\n options = options || {};\n options.data = normalizeData(options, this.constructor.options);\n\n this.$options = mergeOptions(this.constructor.options, options, this);\n this.$el = null;\n this.$props = {};\n\n this._uid = uid++;\n this._initData();\n this._initMethods();\n this._initComputeds();\n this._callHook('created');\n\n if (options.el) {\n this.$mount(options.el);\n }\n };\n\n UIkit.prototype._initData = function () {\n\n var ref = this.$options;\n var data = ref.data; if ( data === void 0 ) data = {};\n\n for (var key in data) {\n this.$props[key] = this[key] = data[key];\n }\n };\n\n UIkit.prototype._initMethods = function () {\n\n var ref = this.$options;\n var methods = ref.methods;\n\n if (methods) {\n for (var key in methods) {\n this[key] = methods[key].bind(this);\n }\n }\n };\n\n UIkit.prototype._initComputeds = function () {\n\n var ref = this.$options;\n var computed = ref.computed;\n\n this._computeds = {};\n\n if (computed) {\n for (var key in computed) {\n registerComputed(this, key, computed[key]);\n }\n }\n };\n\n UIkit.prototype._initProps = function (props) {\n\n var key;\n\n props = props || getProps(this.$options, this.$name);\n\n for (key in props) {\n if (!isUndefined(props[key])) {\n this.$props[key] = props[key];\n }\n }\n\n var exclude = [this.$options.computed, this.$options.methods];\n for (key in this.$props) {\n if (key in props && notIn(exclude, key)) {\n this[key] = this.$props[key];\n }\n }\n };\n\n UIkit.prototype._initEvents = function () {\n var this$1 = this;\n\n\n this._events = [];\n\n var ref = this.$options;\n var events = ref.events;\n\n if (events) {\n\n events.forEach(function (event) {\n\n if (!hasOwn(event, 'handler')) {\n for (var key in event) {\n registerEvent(this$1, event[key], key);\n }\n } else {\n registerEvent(this$1, event);\n }\n\n });\n }\n };\n\n UIkit.prototype._unbindEvents = function () {\n this._events.forEach(function (unbind) { return unbind(); });\n delete this._events;\n };\n\n UIkit.prototype._initObserver = function () {\n var this$1 = this;\n\n\n var ref = this.$options;\n var attrs = ref.attrs;\n var props = ref.props;\n var el = ref.el;\n if (this._observer || !props || attrs === false) {\n return;\n }\n\n attrs = isArray(attrs) ? attrs : Object.keys(props);\n\n this._observer = new MutationObserver(function (records) {\n var data = getProps(this$1.$options, this$1.$name);\n if (records.some(function (ref) {\n var attributeName = ref.attributeName;\n\n var prop = attributeName.replace('data-', '');\n return (prop === this$1.$name ? attrs : [camelize(prop), camelize(attributeName)]).some(function (prop) { return !isUndefined(data[prop]) && data[prop] !== this$1.$props[prop]; }\n );\n })) {\n this$1.$reset();\n }\n\n });\n\n var filter = attrs.map(function (key) { return hyphenate(key); }).concat(this.$name);\n\n this._observer.observe(el, {\n attributes: true,\n attributeFilter: filter.concat(filter.map(function (key) { return (\"data-\" + key); }))\n });\n };\n\n function getProps(opts, name) {\n\n var data$1 = {};\n var args = opts.args; if ( args === void 0 ) args = [];\n var props = opts.props; if ( props === void 0 ) props = {};\n var el = opts.el;\n\n if (!props) {\n return data$1;\n }\n\n for (var key in props) {\n var prop = hyphenate(key);\n var value = data(el, prop);\n\n if (isUndefined(value)) {\n continue;\n }\n\n value = props[key] === Boolean && value === ''\n ? true\n : coerce(props[key], value);\n\n if (prop === 'target' && (!value || startsWith(value, '_'))) {\n continue;\n }\n\n data$1[key] = value;\n }\n\n var options = parseOptions(data(el, name), args);\n\n for (var key$1 in options) {\n var prop$1 = camelize(key$1);\n if (props[prop$1] !== undefined) {\n data$1[prop$1] = coerce(props[prop$1], options[key$1]);\n }\n }\n\n return data$1;\n }\n\n function registerComputed(component, key, cb) {\n Object.defineProperty(component, key, {\n\n enumerable: true,\n\n get: function() {\n\n var _computeds = component._computeds;\n var $props = component.$props;\n var $el = component.$el;\n\n if (!hasOwn(_computeds, key)) {\n _computeds[key] = (cb.get || cb).call(component, $props, $el);\n }\n\n return _computeds[key];\n },\n\n set: function(value) {\n\n var _computeds = component._computeds;\n\n _computeds[key] = cb.set ? cb.set.call(component, value) : value;\n\n if (isUndefined(_computeds[key])) {\n delete _computeds[key];\n }\n }\n\n });\n }\n\n function registerEvent(component, event, key) {\n\n if (!isPlainObject(event)) {\n event = ({name: key, handler: event});\n }\n\n var name = event.name;\n var el = event.el;\n var handler = event.handler;\n var capture = event.capture;\n var passive = event.passive;\n var delegate = event.delegate;\n var filter = event.filter;\n var self = event.self;\n el = isFunction(el)\n ? el.call(component)\n : el || component.$el;\n\n if (isArray(el)) {\n el.forEach(function (el) { return registerEvent(component, assign({}, event, {el: el}), key); });\n return;\n }\n\n if (!el || filter && !filter.call(component)) {\n return;\n }\n\n component._events.push(\n on(\n el,\n name,\n !delegate\n ? null\n : isString(delegate)\n ? delegate\n : delegate.call(component),\n isString(handler) ? component[handler] : handler.bind(component),\n {passive: passive, capture: capture, self: self}\n )\n );\n\n }\n\n function notIn(options, key) {\n return options.every(function (arr) { return !arr || !hasOwn(arr, key); });\n }\n\n function coerce(type, value) {\n\n if (type === Boolean) {\n return toBoolean(value);\n } else if (type === Number) {\n return toNumber(value);\n } else if (type === 'list') {\n return toList(value);\n }\n\n return type ? type(value) : value;\n }\n\n function normalizeData(ref, ref$1) {\n var data = ref.data;\n var el = ref.el;\n var args = ref$1.args;\n var props = ref$1.props; if ( props === void 0 ) props = {};\n\n data = isArray(data)\n ? !isEmpty(args)\n ? data.slice(0, args.length).reduce(function (data, value, index) {\n if (isPlainObject(value)) {\n assign(data, value);\n } else {\n data[args[index]] = value;\n }\n return data;\n }, {})\n : undefined\n : data;\n\n if (data) {\n for (var key in data) {\n if (isUndefined(data[key])) {\n delete data[key];\n } else {\n data[key] = props[key] ? coerce(props[key], data[key]) : data[key];\n }\n }\n }\n\n return data;\n }\n }\n\n function instanceAPI (UIkit) {\n\n var DATA = UIkit.data;\n\n UIkit.prototype.$create = function (component, element, data) {\n return UIkit[component](element, data);\n };\n\n UIkit.prototype.$mount = function (el) {\n\n var ref = this.$options;\n var name = ref.name;\n\n if (!el[DATA]) {\n el[DATA] = {};\n }\n\n if (el[DATA][name]) {\n return;\n }\n\n el[DATA][name] = this;\n\n this.$el = this.$options.el = this.$options.el || el;\n\n if (within(el, document)) {\n this._callConnected();\n }\n };\n\n UIkit.prototype.$reset = function () {\n this._callDisconnected();\n this._callConnected();\n };\n\n UIkit.prototype.$destroy = function (removeEl) {\n if ( removeEl === void 0 ) removeEl = false;\n\n\n var ref = this.$options;\n var el = ref.el;\n var name = ref.name;\n\n if (el) {\n this._callDisconnected();\n }\n\n this._callHook('destroy');\n\n if (!el || !el[DATA]) {\n return;\n }\n\n delete el[DATA][name];\n\n if (!isEmpty(el[DATA])) {\n delete el[DATA];\n }\n\n if (removeEl) {\n remove(this.$el);\n }\n };\n\n UIkit.prototype.$emit = function (e) {\n this._callUpdate(e);\n };\n\n UIkit.prototype.$update = function (element, e) {\n if ( element === void 0 ) element = this.$el;\n\n UIkit.update(element, e);\n };\n\n UIkit.prototype.$getComponent = UIkit.getComponent;\n\n var names = {};\n Object.defineProperties(UIkit.prototype, {\n\n $container: Object.getOwnPropertyDescriptor(UIkit, 'container'),\n\n $name: {\n\n get: function() {\n var ref = this.$options;\n var name = ref.name;\n\n if (!names[name]) {\n names[name] = UIkit.prefix + hyphenate(name);\n }\n\n return names[name];\n }\n\n }\n\n });\n\n }\n\n function componentAPI (UIkit) {\n\n var DATA = UIkit.data;\n\n var components = {};\n\n UIkit.component = function (name, options) {\n\n var id = hyphenate(name);\n\n name = camelize(id);\n\n if (!options) {\n\n if (isPlainObject(components[name])) {\n components[name] = UIkit.extend(components[name]);\n }\n\n return components[name];\n\n }\n\n UIkit[name] = function (element, data) {\n var i = arguments.length, argsArray = Array(i);\n while ( i-- ) argsArray[i] = arguments[i];\n\n\n var component = UIkit.component(name);\n\n return component.options.functional\n ? new component({data: isPlainObject(element) ? element : [].concat( argsArray )})\n : !element ? init(element) : $$(element).map(init)[0];\n\n function init(element) {\n\n var instance = UIkit.getComponent(element, name);\n\n if (instance) {\n if (!data) {\n return instance;\n } else {\n instance.$destroy();\n }\n }\n\n return new component({el: element, data: data});\n\n }\n\n };\n\n var opt = isPlainObject(options) ? assign({}, options) : options.options;\n\n opt.name = name;\n\n if (opt.install) {\n opt.install(UIkit, opt, name);\n }\n\n if (UIkit._initialized && !opt.functional) {\n fastdom.read(function () { return UIkit[name]((\"[uk-\" + id + \"],[data-uk-\" + id + \"]\")); });\n }\n\n return components[name] = isPlainObject(options) ? opt : options;\n };\n\n UIkit.getComponents = function (element) { return element && element[DATA] || {}; };\n UIkit.getComponent = function (element, name) { return UIkit.getComponents(element)[name]; };\n\n UIkit.connect = function (node) {\n\n if (node[DATA]) {\n for (var name in node[DATA]) {\n node[DATA][name]._callConnected();\n }\n }\n\n for (var i = 0; i < node.attributes.length; i++) {\n\n var name$1 = getComponentName(node.attributes[i].name);\n\n if (name$1 && name$1 in components) {\n UIkit[name$1](node);\n }\n\n }\n\n };\n\n UIkit.disconnect = function (node) {\n for (var name in node[DATA]) {\n node[DATA][name]._callDisconnected();\n }\n };\n\n }\n\n function getComponentName(attribute) {\n return startsWith(attribute, 'uk-') || startsWith(attribute, 'data-uk-')\n ? camelize(attribute.replace('data-uk-', '').replace('uk-', ''))\n : false;\n }\n\n var UIkit = function (options) {\n this._init(options);\n };\n\n UIkit.util = util;\n UIkit.data = '__uikit__';\n UIkit.prefix = 'uk-';\n UIkit.options = {};\n UIkit.version = '3.5.6';\n\n globalAPI(UIkit);\n hooksAPI(UIkit);\n stateAPI(UIkit);\n componentAPI(UIkit);\n instanceAPI(UIkit);\n\n function Core (UIkit) {\n\n inBrowser && ready(function () {\n\n UIkit.update();\n on(window, 'load resize', function () { return UIkit.update(null, 'resize'); });\n on(document, 'loadedmetadata load', function (ref) {\n var target = ref.target;\n\n return UIkit.update(target, 'resize');\n }, true);\n\n // throttle `scroll` event (Safari triggers multiple `scroll` events per frame)\n var pending;\n on(window, 'scroll', function (e) {\n\n if (pending) {\n return;\n }\n pending = true;\n fastdom.write(function () { return pending = false; });\n\n UIkit.update(null, e.type);\n\n }, {passive: true, capture: true});\n\n var started = 0;\n on(document, 'animationstart', function (ref) {\n var target = ref.target;\n\n if ((css(target, 'animationName') || '').match(/^uk-.*(left|right)/)) {\n\n started++;\n css(document.body, 'overflowX', 'hidden');\n setTimeout(function () {\n if (!--started) {\n css(document.body, 'overflowX', '');\n }\n }, toMs(css(target, 'animationDuration')) + 100);\n }\n }, true);\n\n var off;\n on(document, pointerDown, function (e) {\n\n off && off();\n\n if (!isTouch(e)) {\n return;\n }\n\n // Handle Swipe Gesture\n var pos = getEventPos(e);\n var target = 'tagName' in e.target ? e.target : e.target.parentNode;\n off = once(document, (pointerUp + \" \" + pointerCancel), function (e) {\n\n var ref = getEventPos(e);\n var x = ref.x;\n var y = ref.y;\n\n // swipe\n if (target && x && Math.abs(pos.x - x) > 100 || y && Math.abs(pos.y - y) > 100) {\n\n setTimeout(function () {\n trigger(target, 'swipe');\n trigger(target, (\"swipe\" + (swipeDirection(pos.x, pos.y, x, y))));\n });\n\n }\n\n });\n\n }, {passive: true});\n\n });\n\n }\n\n function swipeDirection(x1, y1, x2, y2) {\n return Math.abs(x1 - x2) >= Math.abs(y1 - y2)\n ? x1 - x2 > 0\n ? 'Left'\n : 'Right'\n : y1 - y2 > 0\n ? 'Up'\n : 'Down';\n }\n\n function boot (UIkit) {\n\n var connect = UIkit.connect;\n var disconnect = UIkit.disconnect;\n\n if (!inBrowser || !window.MutationObserver) {\n return;\n }\n\n fastdom.read(init);\n\n function init() {\n\n if (document.body) {\n apply(document.body, connect);\n }\n\n (new MutationObserver(function (mutations) {\n var updates = [];\n mutations.forEach(function (mutation) { return applyMutation(mutation, updates); });\n updates.forEach(function (el) { return UIkit.update(el); });\n })).observe(document, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true\n });\n\n UIkit._initialized = true;\n }\n\n function applyMutation(mutation, updates) {\n\n var target = mutation.target;\n var type = mutation.type;\n\n var update = type !== 'attributes'\n ? applyChildList(mutation)\n : applyAttribute(mutation);\n\n if (update && !updates.some(function (element) { return element.contains(target); })) {\n updates.push(target.contains ? target : target.parentNode); // IE 11 text node does not implement contains\n }\n\n }\n\n function applyAttribute(ref) {\n var target = ref.target;\n var attributeName = ref.attributeName;\n\n\n if (attributeName === 'href') {\n return true;\n }\n\n var name = getComponentName(attributeName);\n\n if (!name || !(name in UIkit)) {\n return;\n }\n\n if (hasAttr(target, attributeName)) {\n UIkit[name](target);\n return true;\n }\n\n var component = UIkit.getComponent(target, name);\n\n if (component) {\n component.$destroy();\n return true;\n }\n\n }\n\n function applyChildList(ref) {\n var addedNodes = ref.addedNodes;\n var removedNodes = ref.removedNodes;\n\n\n for (var i = 0; i < addedNodes.length; i++) {\n apply(addedNodes[i], connect);\n }\n\n for (var i$1 = 0; i$1 < removedNodes.length; i$1++) {\n apply(removedNodes[i$1], disconnect);\n }\n\n return true;\n }\n\n }\n\n var Class = {\n\n connected: function() {\n !hasClass(this.$el, this.$name) && addClass(this.$el, this.$name);\n }\n\n };\n\n var Togglable = {\n\n props: {\n cls: Boolean,\n animation: 'list',\n duration: Number,\n origin: String,\n transition: String\n },\n\n data: {\n cls: false,\n animation: [false],\n duration: 200,\n origin: false,\n transition: 'linear',\n\n initProps: {\n overflow: '',\n height: '',\n paddingTop: '',\n paddingBottom: '',\n marginTop: '',\n marginBottom: ''\n },\n\n hideProps: {\n overflow: 'hidden',\n height: 0,\n paddingTop: 0,\n paddingBottom: 0,\n marginTop: 0,\n marginBottom: 0\n }\n\n },\n\n computed: {\n\n hasAnimation: function(ref) {\n var animation = ref.animation;\n\n return !!animation[0];\n },\n\n hasTransition: function(ref) {\n var animation = ref.animation;\n\n return this.hasAnimation && animation[0] === true;\n }\n\n },\n\n methods: {\n\n toggleElement: function(targets, show, animate) {\n var this$1 = this;\n\n return Promise.all(toNodes(targets).map(function (el) { return new Promise(function (resolve) { return this$1._toggleElement(el, show, animate).then(resolve, noop); }\n ); }\n ));\n },\n\n isToggled: function(el) {\n var nodes = toNodes(el || this.$el);\n return this.cls\n ? hasClass(nodes, this.cls.split(' ')[0])\n : !hasAttr(nodes, 'hidden');\n },\n\n updateAria: function(el) {\n if (this.cls === false) {\n attr(el, 'aria-hidden', !this.isToggled(el));\n }\n },\n\n _toggleElement: function(el, show, animate) {\n var this$1 = this;\n\n\n show = isBoolean(show)\n ? show\n : Animation.inProgress(el)\n ? hasClass(el, 'uk-animation-leave')\n : Transition.inProgress(el)\n ? el.style.height === '0px'\n : !this.isToggled(el);\n\n if (!trigger(el, (\"before\" + (show ? 'show' : 'hide')), [this])) {\n return Promise.reject();\n }\n\n var promise = (\n isFunction(animate)\n ? animate\n : animate === false || !this.hasAnimation\n ? this._toggle\n : this.hasTransition\n ? toggleHeight(this)\n : toggleAnimation(this)\n )(el, show);\n\n trigger(el, show ? 'show' : 'hide', [this]);\n\n var final = function () {\n trigger(el, show ? 'shown' : 'hidden', [this$1]);\n this$1.$update(el);\n };\n\n return (promise || Promise.resolve()).then(final);\n },\n\n _toggle: function(el, toggled) {\n\n if (!el) {\n return;\n }\n\n toggled = Boolean(toggled);\n\n var changed;\n if (this.cls) {\n changed = includes(this.cls, ' ') || toggled !== hasClass(el, this.cls);\n changed && toggleClass(el, this.cls, includes(this.cls, ' ') ? undefined : toggled);\n } else {\n changed = toggled === hasAttr(el, 'hidden');\n changed && attr(el, 'hidden', !toggled ? '' : null);\n }\n\n $$('[autofocus]', el).some(function (el) { return isVisible(el) ? el.focus() || true : el.blur(); });\n\n this.updateAria(el);\n\n if (changed) {\n trigger(el, 'toggled', [this]);\n this.$update(el);\n }\n }\n\n }\n\n };\n\n function toggleHeight(ref) {\n var isToggled = ref.isToggled;\n var duration = ref.duration;\n var initProps = ref.initProps;\n var hideProps = ref.hideProps;\n var transition = ref.transition;\n var _toggle = ref._toggle;\n\n return function (el, show) {\n\n var inProgress = Transition.inProgress(el);\n var inner = el.hasChildNodes ? toFloat(css(el.firstElementChild, 'marginTop')) + toFloat(css(el.lastElementChild, 'marginBottom')) : 0;\n var currentHeight = isVisible(el) ? height(el) + (inProgress ? 0 : inner) : 0;\n\n Transition.cancel(el);\n\n if (!isToggled(el)) {\n _toggle(el, true);\n }\n\n height(el, '');\n\n // Update child components first\n fastdom.flush();\n\n var endHeight = height(el) + (inProgress ? 0 : inner);\n height(el, currentHeight);\n\n return (show\n ? Transition.start(el, assign({}, initProps, {overflow: 'hidden', height: endHeight}), Math.round(duration * (1 - currentHeight / endHeight)), transition)\n : Transition.start(el, hideProps, Math.round(duration * (currentHeight / endHeight)), transition).then(function () { return _toggle(el, false); })\n ).then(function () { return css(el, initProps); });\n\n };\n }\n\n function toggleAnimation(cmp) {\n return function (el, show) {\n\n Animation.cancel(el);\n\n var animation = cmp.animation;\n var duration = cmp.duration;\n var _toggle = cmp._toggle;\n\n if (show) {\n _toggle(el, true);\n return Animation.in(el, animation[0], duration, cmp.origin);\n }\n\n return Animation.out(el, animation[1] || animation[0], duration, cmp.origin).then(function () { return _toggle(el, false); });\n };\n }\n\n var Accordion = {\n\n mixins: [Class, Togglable],\n\n props: {\n targets: String,\n active: null,\n collapsible: Boolean,\n multiple: Boolean,\n toggle: String,\n content: String,\n transition: String,\n offset: Number\n },\n\n data: {\n targets: '> *',\n active: false,\n animation: [true],\n collapsible: true,\n multiple: false,\n clsOpen: 'uk-open',\n toggle: '> .uk-accordion-title',\n content: '> .uk-accordion-content',\n transition: 'ease',\n offset: 0\n },\n\n computed: {\n\n items: {\n\n get: function(ref, $el) {\n var targets = ref.targets;\n\n return $$(targets, $el);\n },\n\n watch: function(items, prev) {\n var this$1 = this;\n\n\n items.forEach(function (el) { return hide($(this$1.content, el), !hasClass(el, this$1.clsOpen)); });\n\n if (prev || hasClass(items, this.clsOpen)) {\n return;\n }\n\n var active = this.active !== false && items[Number(this.active)]\n || !this.collapsible && items[0];\n\n if (active) {\n this.toggle(active, false);\n }\n\n },\n\n immediate: true\n\n }\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return ((this.targets) + \" \" + (this.$props.toggle));\n },\n\n handler: function(e) {\n e.preventDefault();\n this.toggle(index($$(((this.targets) + \" \" + (this.$props.toggle)), this.$el), e.current));\n }\n\n }\n\n ],\n\n methods: {\n\n toggle: function(item, animate) {\n var this$1 = this;\n\n\n var items = [this.items[getIndex(item, this.items)]];\n var activeItems = filter(this.items, (\".\" + (this.clsOpen)));\n\n if (!this.multiple && !includes(activeItems, items[0])) {\n items = items.concat(activeItems);\n }\n\n if (!this.collapsible && activeItems.length < 2 && !filter(items, (\":not(.\" + (this.clsOpen) + \")\")).length) {\n return;\n }\n\n items.forEach(function (el) { return this$1.toggleElement(el, !hasClass(el, this$1.clsOpen), function (el, show) {\n\n toggleClass(el, this$1.clsOpen, show);\n\n var content = $((\"\" + (el._wrapper ? '> * ' : '') + (this$1.content)), el);\n\n if (animate === false || !this$1.hasTransition) {\n hide(content, !show);\n return;\n }\n\n if (!el._wrapper) {\n el._wrapper = wrapAll(content, (\"\"));\n }\n\n hide(content, false);\n return toggleHeight(this$1)(el._wrapper, show).then(function () {\n hide(content, !show);\n delete el._wrapper;\n unwrap(content);\n\n if (show) {\n var toggle = $(this$1.$props.toggle, el);\n if (!isInView(toggle)) {\n scrollIntoView(toggle, {offset: this$1.offset});\n }\n }\n });\n }); });\n }\n\n }\n\n };\n\n function hide(el, hide) {\n attr(el, 'hidden', hide ? '' : null);\n }\n\n var alert = {\n\n mixins: [Class, Togglable],\n\n args: 'animation',\n\n props: {\n close: String\n },\n\n data: {\n animation: [true],\n selClose: '.uk-alert-close',\n duration: 150,\n hideProps: assign({opacity: 0}, Togglable.data.hideProps)\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return this.selClose;\n },\n\n handler: function(e) {\n e.preventDefault();\n this.close();\n }\n\n }\n\n ],\n\n methods: {\n\n close: function() {\n var this$1 = this;\n\n this.toggleElement(this.$el).then(function () { return this$1.$destroy(true); });\n }\n\n }\n\n };\n\n var Video = {\n\n args: 'autoplay',\n\n props: {\n automute: Boolean,\n autoplay: Boolean\n },\n\n data: {\n automute: false,\n autoplay: true\n },\n\n computed: {\n\n inView: function(ref) {\n var autoplay = ref.autoplay;\n\n return autoplay === 'inview';\n }\n\n },\n\n connected: function() {\n\n if (this.inView && !hasAttr(this.$el, 'preload')) {\n this.$el.preload = 'none';\n }\n\n this.player = new Player(this.$el);\n\n if (this.automute) {\n this.player.mute();\n }\n\n },\n\n update: {\n\n read: function() {\n\n return !this.player\n ? false\n : {\n visible: isVisible(this.$el) && css(this.$el, 'visibility') !== 'hidden',\n inView: this.inView && isInView(this.$el)\n };\n },\n\n write: function(ref) {\n var visible = ref.visible;\n var inView = ref.inView;\n\n\n if (!visible || this.inView && !inView) {\n this.player.pause();\n } else if (this.autoplay === true || this.inView && inView) {\n this.player.play();\n }\n\n },\n\n events: ['resize', 'scroll']\n\n }\n\n };\n\n var cover = {\n\n mixins: [Class, Video],\n\n props: {\n width: Number,\n height: Number\n },\n\n data: {\n automute: true\n },\n\n update: {\n\n read: function() {\n\n var el = this.$el;\n var ref = getPositionedParent(el) || el.parentNode;\n var height = ref.offsetHeight;\n var width = ref.offsetWidth;\n var dim = Dimensions.cover(\n {\n width: this.width || el.naturalWidth || el.videoWidth || el.clientWidth,\n height: this.height || el.naturalHeight || el.videoHeight || el.clientHeight\n },\n {\n width: width + (width % 2 ? 1 : 0),\n height: height + (height % 2 ? 1 : 0)\n }\n );\n\n if (!dim.width || !dim.height) {\n return false;\n }\n\n return dim;\n },\n\n write: function(ref) {\n var height = ref.height;\n var width = ref.width;\n\n css(this.$el, {height: height, width: width});\n },\n\n events: ['resize']\n\n }\n\n };\n\n function getPositionedParent(el) {\n while ((el = parent(el))) {\n if (css(el, 'position') !== 'static') {\n return el;\n }\n }\n }\n\n var Position = {\n\n props: {\n pos: String,\n offset: null,\n flip: Boolean,\n clsPos: String\n },\n\n data: {\n pos: (\"bottom-\" + (!isRtl ? 'left' : 'right')),\n flip: true,\n offset: false,\n clsPos: ''\n },\n\n computed: {\n\n pos: function(ref) {\n var pos = ref.pos;\n\n return (pos + (!includes(pos, '-') ? '-center' : '')).split('-');\n },\n\n dir: function() {\n return this.pos[0];\n },\n\n align: function() {\n return this.pos[1];\n }\n\n },\n\n methods: {\n\n positionAt: function(element, target, boundary) {\n\n removeClasses(element, ((this.clsPos) + \"-(top|bottom|left|right)(-[a-z]+)?\"));\n\n var node;\n var ref = this;\n var offset$1 = ref.offset;\n var axis = this.getAxis();\n\n if (!isNumeric(offset$1)) {\n node = $(offset$1);\n offset$1 = node\n ? offset(node)[axis === 'x' ? 'left' : 'top'] - offset(target)[axis === 'x' ? 'right' : 'bottom']\n : 0;\n }\n\n var ref$1 = positionAt(\n element,\n target,\n axis === 'x' ? ((flipPosition(this.dir)) + \" \" + (this.align)) : ((this.align) + \" \" + (flipPosition(this.dir))),\n axis === 'x' ? ((this.dir) + \" \" + (this.align)) : ((this.align) + \" \" + (this.dir)),\n axis === 'x' ? (\"\" + (this.dir === 'left' ? -offset$1 : offset$1)) : (\" \" + (this.dir === 'top' ? -offset$1 : offset$1)),\n null,\n this.flip,\n boundary\n ).target;\n var x = ref$1.x;\n var y = ref$1.y;\n\n this.dir = axis === 'x' ? x : y;\n this.align = axis === 'x' ? y : x;\n\n toggleClass(element, ((this.clsPos) + \"-\" + (this.dir) + \"-\" + (this.align)), this.offset === false);\n\n },\n\n getAxis: function() {\n return this.dir === 'top' || this.dir === 'bottom' ? 'y' : 'x';\n }\n\n }\n\n };\n\n var active;\n\n var drop = {\n\n mixins: [Position, Togglable],\n\n args: 'pos',\n\n props: {\n mode: 'list',\n toggle: Boolean,\n boundary: Boolean,\n boundaryAlign: Boolean,\n delayShow: Number,\n delayHide: Number,\n clsDrop: String\n },\n\n data: {\n mode: ['click', 'hover'],\n toggle: '- *',\n boundary: inBrowser && window,\n boundaryAlign: false,\n delayShow: 0,\n delayHide: 800,\n clsDrop: false,\n animation: ['uk-animation-fade'],\n cls: 'uk-open'\n },\n\n computed: {\n\n boundary: function(ref, $el) {\n var boundary = ref.boundary;\n\n return query(boundary, $el);\n },\n\n clsDrop: function(ref) {\n var clsDrop = ref.clsDrop;\n\n return clsDrop || (\"uk-\" + (this.$options.name));\n },\n\n clsPos: function() {\n return this.clsDrop;\n }\n\n },\n\n created: function() {\n this.tracker = new MouseTracker();\n },\n\n connected: function() {\n\n addClass(this.$el, this.clsDrop);\n\n var ref = this.$props;\n var toggle = ref.toggle;\n this.toggle = toggle && this.$create('toggle', query(toggle, this.$el), {\n target: this.$el,\n mode: this.mode\n });\n\n !this.toggle && trigger(this.$el, 'updatearia');\n\n },\n\n disconnected: function() {\n if (this.isActive()) {\n active = null;\n }\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return (\".\" + (this.clsDrop) + \"-close\");\n },\n\n handler: function(e) {\n e.preventDefault();\n this.hide(false);\n }\n\n },\n\n {\n\n name: 'click',\n\n delegate: function() {\n return 'a[href^=\"#\"]';\n },\n\n handler: function(ref) {\n var defaultPrevented = ref.defaultPrevented;\n var hash = ref.current.hash;\n\n if (!defaultPrevented && hash && !within(hash, this.$el)) {\n this.hide(false);\n }\n }\n\n },\n\n {\n\n name: 'beforescroll',\n\n handler: function() {\n this.hide(false);\n }\n\n },\n\n {\n\n name: 'toggle',\n\n self: true,\n\n handler: function(e, toggle) {\n\n e.preventDefault();\n\n if (this.isToggled()) {\n this.hide(false);\n } else {\n this.show(toggle, false);\n }\n }\n\n },\n\n {\n\n name: 'toggleshow',\n\n self: true,\n\n handler: function(e, toggle) {\n e.preventDefault();\n this.show(toggle);\n }\n\n },\n\n {\n\n name: 'togglehide',\n\n self: true,\n\n handler: function(e) {\n e.preventDefault();\n this.hide();\n }\n\n },\n\n {\n\n name: pointerEnter,\n\n filter: function() {\n return includes(this.mode, 'hover');\n },\n\n handler: function(e) {\n if (!isTouch(e)) {\n this.clearTimers();\n }\n }\n\n },\n\n {\n\n name: pointerLeave,\n\n filter: function() {\n return includes(this.mode, 'hover');\n },\n\n handler: function(e) {\n if (!isTouch(e) && e.relatedTarget) {\n this.hide();\n }\n }\n\n },\n\n {\n\n name: 'toggled',\n\n self: true,\n\n handler: function() {\n\n if (!this.isToggled()) {\n return;\n }\n\n this.clearTimers();\n this.position();\n }\n\n },\n\n {\n\n name: 'show',\n\n self: true,\n\n handler: function() {\n var this$1 = this;\n\n\n active = this;\n\n this.tracker.init();\n trigger(this.$el, 'updatearia');\n\n once(this.$el, 'hide', on(document, pointerDown, function (ref) {\n var target = ref.target;\n\n return !within(target, this$1.$el) && once(document, (pointerUp + \" \" + pointerCancel + \" scroll\"), function (ref) {\n var defaultPrevented = ref.defaultPrevented;\n var type = ref.type;\n var newTarget = ref.target;\n\n if (!defaultPrevented && type === pointerUp && target === newTarget && !(this$1.toggle && within(target, this$1.toggle.$el))) {\n this$1.hide(false);\n }\n }, true);\n }\n ), {self: true});\n\n once(this.$el, 'hide', on(document, 'keydown', function (e) {\n if (e.keyCode === 27) {\n e.preventDefault();\n this$1.hide(false);\n }\n }), {self: true});\n\n }\n\n },\n\n {\n\n name: 'beforehide',\n\n self: true,\n\n handler: function() {\n this.clearTimers();\n }\n\n },\n\n {\n\n name: 'hide',\n\n handler: function(ref) {\n var target = ref.target;\n\n\n if (this.$el !== target) {\n active = active === null && within(target, this.$el) && this.isToggled() ? this : active;\n return;\n }\n\n active = this.isActive() ? null : active;\n trigger(this.$el, 'updatearia');\n this.tracker.cancel();\n }\n\n },\n\n {\n\n name: 'updatearia',\n\n self: true,\n\n handler: function(e, toggle) {\n\n e.preventDefault();\n\n this.updateAria(this.$el);\n\n if (toggle || this.toggle) {\n attr((toggle || this.toggle).$el, 'aria-expanded', this.isToggled());\n toggleClass(this.toggle.$el, this.cls, this.isToggled());\n }\n }\n }\n\n ],\n\n update: {\n\n write: function() {\n\n if (this.isToggled() && !Animation.inProgress(this.$el)) {\n this.position();\n }\n\n },\n\n events: ['resize']\n\n },\n\n methods: {\n\n show: function(toggle, delay) {\n var this$1 = this;\n if ( toggle === void 0 ) toggle = this.toggle;\n if ( delay === void 0 ) delay = true;\n\n\n if (this.isToggled() && toggle && this.toggle && toggle.$el !== this.toggle.$el) {\n this.hide(false);\n }\n\n this.toggle = toggle;\n\n this.clearTimers();\n\n if (this.isActive()) {\n return;\n }\n\n if (active) {\n\n if (delay && active.isDelaying) {\n this.showTimer = setTimeout(this.show, 10);\n return;\n }\n\n var prev;\n while (active && prev !== active && !within(this.$el, active.$el)) {\n prev = active;\n active.hide(false);\n }\n\n }\n\n this.showTimer = setTimeout(function () { return !this$1.isToggled() && this$1.toggleElement(this$1.$el, true); }, delay && this.delayShow || 0);\n\n },\n\n hide: function(delay) {\n var this$1 = this;\n if ( delay === void 0 ) delay = true;\n\n\n var hide = function () { return this$1.toggleElement(this$1.$el, false, false); };\n\n this.clearTimers();\n\n this.isDelaying = getPositionedElements(this.$el).some(function (el) { return this$1.tracker.movesTo(el); });\n\n if (delay && this.isDelaying) {\n this.hideTimer = setTimeout(this.hide, 50);\n } else if (delay && this.delayHide) {\n this.hideTimer = setTimeout(hide, this.delayHide);\n } else {\n hide();\n }\n },\n\n clearTimers: function() {\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n this.showTimer = null;\n this.hideTimer = null;\n this.isDelaying = false;\n },\n\n isActive: function() {\n return active === this;\n },\n\n position: function() {\n\n removeClass(this.$el, ((this.clsDrop) + \"-stack\"));\n toggleClass(this.$el, ((this.clsDrop) + \"-boundary\"), this.boundaryAlign);\n\n var boundary = offset(this.boundary);\n var alignTo = this.boundaryAlign ? boundary : offset(this.toggle.$el);\n\n if (this.align === 'justify') {\n var prop = this.getAxis() === 'y' ? 'width' : 'height';\n css(this.$el, prop, alignTo[prop]);\n } else if (this.$el.offsetWidth > Math.max(boundary.right - alignTo.left, alignTo.right - boundary.left)) {\n addClass(this.$el, ((this.clsDrop) + \"-stack\"));\n }\n\n this.positionAt(this.$el, this.boundaryAlign ? this.boundary : this.toggle.$el, this.boundary);\n\n }\n\n }\n\n };\n\n function getPositionedElements(el) {\n var result = [];\n apply(el, function (el) { return css(el, 'position') !== 'static' && result.push(el); });\n return result;\n }\n\n var formCustom = {\n\n mixins: [Class],\n\n args: 'target',\n\n props: {\n target: Boolean\n },\n\n data: {\n target: false\n },\n\n computed: {\n\n input: function(_, $el) {\n return $(selInput, $el);\n },\n\n state: function() {\n return this.input.nextElementSibling;\n },\n\n target: function(ref, $el) {\n var target = ref.target;\n\n return target && (target === true\n && this.input.parentNode === $el\n && this.input.nextElementSibling\n || query(target, $el));\n }\n\n },\n\n update: function() {\n\n var ref = this;\n var target = ref.target;\n var input = ref.input;\n\n if (!target) {\n return;\n }\n\n var option;\n var prop = isInput(target) ? 'value' : 'textContent';\n var prev = target[prop];\n var value = input.files && input.files[0]\n ? input.files[0].name\n : matches(input, 'select') && (option = $$('option', input).filter(function (el) { return el.selected; })[0]) // eslint-disable-line prefer-destructuring\n ? option.textContent\n : input.value;\n\n if (prev !== value) {\n target[prop] = value;\n }\n\n },\n\n events: [\n\n {\n name: 'change',\n\n handler: function() {\n this.$update();\n }\n },\n\n {\n name: 'reset',\n\n el: function() {\n return closest(this.$el, 'form');\n },\n\n handler: function() {\n this.$update();\n }\n }\n\n ]\n\n };\n\n // Deprecated\n var gif = {\n\n update: {\n\n read: function(data) {\n\n var inview = isInView(this.$el);\n\n if (!inview || data.isInView === inview) {\n return false;\n }\n\n data.isInView = inview;\n },\n\n write: function() {\n this.$el.src = '' + this.$el.src; // force self-assign\n },\n\n events: ['scroll', 'resize']\n }\n\n };\n\n var Margin = {\n\n props: {\n margin: String,\n firstColumn: Boolean\n },\n\n data: {\n margin: 'uk-margin-small-top',\n firstColumn: 'uk-first-column'\n },\n\n update: {\n\n read: function() {\n\n var rows = getRows(this.$el.children);\n\n return {\n rows: rows,\n columns: getColumns(rows)\n };\n },\n\n write: function(ref) {\n var this$1 = this;\n var columns = ref.columns;\n var rows = ref.rows;\n\n rows.forEach(function (row, i) { return row.forEach(function (el) {\n toggleClass(el, this$1.margin, i !== 0);\n toggleClass(el, this$1.firstColumn, includes(columns[0], el));\n }); }\n );\n },\n\n events: ['resize']\n\n }\n\n };\n\n function getRows(items) {\n return sortBy$1(items, 'top', 'bottom');\n }\n\n function getColumns(rows) {\n\n var columns = [[]];\n\n rows.forEach(function (row) { return sortBy$1(row, 'left', 'right').forEach(function (column, i) { return columns[i] = !columns[i] ? column : columns[i].concat(column); }\n ); }\n );\n\n return isRtl\n ? columns.reverse()\n : columns;\n }\n\n function sortBy$1(items, startProp, endProp) {\n\n var sorted = [[]];\n\n for (var i = 0; i < items.length; i++) {\n\n var el = items[i];\n\n if (!isVisible(el)) {\n continue;\n }\n\n var dim = getOffset(el);\n\n for (var j = sorted.length - 1; j >= 0; j--) {\n\n var current = sorted[j];\n\n if (!current[0]) {\n current.push(el);\n break;\n }\n\n var startDim = (void 0);\n if (current[0].offsetParent === el.offsetParent) {\n startDim = getOffset(current[0]);\n } else {\n dim = getOffset(el, true);\n startDim = getOffset(current[0], true);\n }\n\n if (dim[startProp] >= startDim[endProp] - 1 && dim[startProp] !== startDim[startProp]) {\n sorted.push([el]);\n break;\n }\n\n if (dim[endProp] - 1 > startDim[startProp] || dim[startProp] === startDim[startProp]) {\n current.push(el);\n break;\n }\n\n if (j === 0) {\n sorted.unshift([el]);\n break;\n }\n\n }\n\n }\n\n return sorted;\n }\n\n function getOffset(element, offset) {\n var assign;\n\n if ( offset === void 0 ) offset = false;\n\n var offsetTop = element.offsetTop;\n var offsetLeft = element.offsetLeft;\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth;\n\n if (offset) {\n (assign = offsetPosition(element), offsetTop = assign[0], offsetLeft = assign[1]);\n }\n\n return {\n top: offsetTop,\n left: offsetLeft,\n bottom: offsetTop + offsetHeight,\n right: offsetLeft + offsetWidth\n };\n }\n\n var grid = {\n\n extends: Margin,\n\n mixins: [Class],\n\n name: 'grid',\n\n props: {\n masonry: Boolean,\n parallax: Number\n },\n\n data: {\n margin: 'uk-grid-margin',\n clsStack: 'uk-grid-stack',\n masonry: false,\n parallax: 0\n },\n\n connected: function() {\n this.masonry && addClass(this.$el, 'uk-flex-top uk-flex-wrap-top');\n },\n\n update: [\n\n {\n\n write: function(ref) {\n var columns = ref.columns;\n\n toggleClass(this.$el, this.clsStack, columns.length < 2);\n },\n\n events: ['resize']\n\n },\n\n {\n\n read: function(ref) {\n var columns = ref.columns;\n var rows = ref.rows;\n\n\n var nodes = children(this.$el);\n\n if (!nodes.length || !this.masonry && !this.parallax) {\n return false;\n }\n\n var transitionInProgress = nodes.some(Transition.inProgress);\n var translates = false;\n\n var columnHeights = getColumnHeights(columns);\n var margin = getMarginTop(nodes, this.margin) * (rows.length - 1);\n var elHeight = Math.max.apply(Math, columnHeights) + margin;\n\n if (this.masonry) {\n columns = columns.map(function (column) { return sortBy(column, 'offsetTop'); });\n translates = getTranslates(rows, columns);\n }\n\n var padding = Math.abs(this.parallax);\n if (padding) {\n padding = columnHeights.reduce(function (newPadding, hgt, i) { return Math.max(newPadding, hgt + margin + (i % 2 ? padding : padding / 8) - elHeight); }\n , 0);\n }\n\n return {padding: padding, columns: columns, translates: translates, height: transitionInProgress ? false : this.masonry ? elHeight : ''};\n\n },\n\n write: function(ref) {\n var height = ref.height;\n var padding = ref.padding;\n\n\n css(this.$el, 'paddingBottom', padding || '');\n height !== false && css(this.$el, 'height', height);\n\n },\n\n events: ['resize']\n\n },\n\n {\n\n read: function(ref) {\n var height$1 = ref.height;\n\n return {\n scrolled: this.parallax\n ? scrolledOver(this.$el, height$1 ? height$1 - height(this.$el) : 0) * Math.abs(this.parallax)\n : false\n };\n },\n\n write: function(ref) {\n var columns = ref.columns;\n var scrolled = ref.scrolled;\n var translates = ref.translates;\n\n\n if (scrolled === false && !translates) {\n return;\n }\n\n columns.forEach(function (column, i) { return column.forEach(function (el, j) { return css(el, 'transform', !scrolled && !translates ? '' : (\"translateY(\" + ((translates && -translates[i][j]) + (scrolled ? i % 2 ? scrolled : scrolled / 8 : 0)) + \"px)\")); }\n ); }\n );\n\n },\n\n events: ['scroll', 'resize']\n\n }\n\n ]\n\n };\n\n function getTranslates(rows, columns) {\n\n var rowHeights = rows.map(function (row) { return Math.max.apply(Math, row.map(function (el) { return el.offsetHeight; })); }\n );\n\n return columns.map(function (elements) {\n var prev = 0;\n return elements.map(function (element, row) { return prev += row\n ? rowHeights[row - 1] - elements[row - 1].offsetHeight\n : 0; }\n );\n });\n }\n\n function getMarginTop(nodes, cls) {\n\n var ref = nodes.filter(function (el) { return hasClass(el, cls); });\n var node = ref[0];\n\n return toFloat(node\n ? css(node, 'marginTop')\n : css(nodes[0], 'paddingLeft'));\n }\n\n function getColumnHeights(columns) {\n return columns.map(function (column) { return column.reduce(function (sum, el) { return sum + el.offsetHeight; }, 0); }\n );\n }\n\n // IE 11 fix (min-height on a flex container won't apply to its flex items)\n var FlexBug = isIE ? {\n\n props: {\n selMinHeight: String\n },\n\n data: {\n selMinHeight: false,\n forceHeight: false\n },\n\n computed: {\n\n elements: function(ref, $el) {\n var selMinHeight = ref.selMinHeight;\n\n return selMinHeight ? $$(selMinHeight, $el) : [$el];\n }\n\n },\n\n update: [\n\n {\n\n read: function() {\n css(this.elements, 'height', '');\n },\n\n order: -5,\n\n events: ['resize']\n\n },\n\n {\n\n write: function() {\n var this$1 = this;\n\n this.elements.forEach(function (el) {\n var height = toFloat(css(el, 'minHeight'));\n if (height && (this$1.forceHeight || Math.round(height + boxModelAdjust(el, 'height', 'content-box')) >= el.offsetHeight)) {\n css(el, 'height', height);\n }\n });\n },\n\n order: 5,\n\n events: ['resize']\n\n }\n\n ]\n\n } : {};\n\n var heightMatch = {\n\n mixins: [FlexBug],\n\n args: 'target',\n\n props: {\n target: String,\n row: Boolean\n },\n\n data: {\n target: '> *',\n row: true,\n forceHeight: true\n },\n\n computed: {\n\n elements: function(ref, $el) {\n var target = ref.target;\n\n return $$(target, $el);\n }\n\n },\n\n update: {\n\n read: function() {\n return {\n rows: (this.row ? getRows(this.elements) : [this.elements]).map(match)\n };\n },\n\n write: function(ref) {\n var rows = ref.rows;\n\n rows.forEach(function (ref) {\n var heights = ref.heights;\n var elements = ref.elements;\n\n return elements.forEach(function (el, i) { return css(el, 'minHeight', heights[i]); }\n );\n }\n );\n },\n\n events: ['resize']\n\n }\n\n };\n\n function match(elements) {\n var assign;\n\n\n if (elements.length < 2) {\n return {heights: [''], elements: elements};\n }\n\n var ref = getHeights(elements);\n var heights = ref.heights;\n var max = ref.max;\n var hasMinHeight = elements.some(function (el) { return el.style.minHeight; });\n var hasShrunk = elements.some(function (el, i) { return !el.style.minHeight && heights[i] < max; });\n\n if (hasMinHeight && hasShrunk) {\n css(elements, 'minHeight', '');\n ((assign = getHeights(elements), heights = assign.heights, max = assign.max));\n }\n\n heights = elements.map(function (el, i) { return heights[i] === max && toFloat(el.style.minHeight).toFixed(2) !== max.toFixed(2) ? '' : max; }\n );\n\n return {heights: heights, elements: elements};\n }\n\n function getHeights(elements) {\n var heights = elements.map(function (el) { return offset(el).height - boxModelAdjust(el, 'height', 'content-box'); });\n var max = Math.max.apply(null, heights);\n\n return {heights: heights, max: max};\n }\n\n var heightViewport = {\n\n mixins: [FlexBug],\n\n props: {\n expand: Boolean,\n offsetTop: Boolean,\n offsetBottom: Boolean,\n minHeight: Number\n },\n\n data: {\n expand: false,\n offsetTop: false,\n offsetBottom: false,\n minHeight: 0\n },\n\n update: {\n\n read: function(ref) {\n var prev = ref.minHeight;\n\n\n if (!isVisible(this.$el)) {\n return false;\n }\n\n var minHeight = '';\n var box = boxModelAdjust(this.$el, 'height', 'content-box');\n\n if (this.expand) {\n\n this.$el.dataset.heightExpand = '';\n\n if ($('[data-height-expand]') !== this.$el) {\n return false;\n }\n\n minHeight = height(window) - (offsetHeight(document.documentElement) - offsetHeight(this.$el)) - box || '';\n\n } else {\n\n // on mobile devices (iOS and Android) window.innerHeight !== 100vh\n minHeight = 'calc(100vh';\n\n if (this.offsetTop) {\n\n var ref$1 = offset(this.$el);\n var top = ref$1.top;\n minHeight += top > 0 && top < height(window) / 2 ? (\" - \" + top + \"px\") : '';\n\n }\n\n if (this.offsetBottom === true) {\n\n minHeight += \" - \" + (offsetHeight(this.$el.nextElementSibling)) + \"px\";\n\n } else if (isNumeric(this.offsetBottom)) {\n\n minHeight += \" - \" + (this.offsetBottom) + \"vh\";\n\n } else if (this.offsetBottom && endsWith(this.offsetBottom, 'px')) {\n\n minHeight += \" - \" + (toFloat(this.offsetBottom)) + \"px\";\n\n } else if (isString(this.offsetBottom)) {\n\n minHeight += \" - \" + (offsetHeight(query(this.offsetBottom, this.$el))) + \"px\";\n\n }\n\n minHeight += (box ? (\" - \" + box + \"px\") : '') + \")\";\n\n }\n\n return {minHeight: minHeight, prev: prev};\n },\n\n write: function(ref) {\n var minHeight = ref.minHeight;\n var prev = ref.prev;\n\n\n css(this.$el, {minHeight: minHeight});\n\n if (minHeight !== prev) {\n this.$update(this.$el, 'resize');\n }\n\n if (this.minHeight && toFloat(css(this.$el, 'minHeight')) < this.minHeight) {\n css(this.$el, 'minHeight', this.minHeight);\n }\n\n },\n\n events: ['resize']\n\n }\n\n };\n\n function offsetHeight(el) {\n return el && offset(el).height || 0;\n }\n\n var SVG = {\n\n args: 'src',\n\n props: {\n id: Boolean,\n icon: String,\n src: String,\n style: String,\n width: Number,\n height: Number,\n ratio: Number,\n class: String,\n strokeAnimation: Boolean,\n focusable: Boolean, // IE 11\n attributes: 'list'\n },\n\n data: {\n ratio: 1,\n include: ['style', 'class', 'focusable'],\n class: '',\n strokeAnimation: false\n },\n\n beforeConnect: function() {\n this.class += ' uk-svg';\n },\n\n connected: function() {\n var this$1 = this;\n var assign;\n\n\n if (!this.icon && includes(this.src, '#')) {\n (assign = this.src.split('#'), this.src = assign[0], this.icon = assign[1]);\n }\n\n this.svg = this.getSvg().then(function (el) {\n this$1.applyAttributes(el);\n return this$1.svgEl = insertSVG(el, this$1.$el);\n }, noop);\n\n },\n\n disconnected: function() {\n var this$1 = this;\n\n\n if (isVoidElement(this.$el)) {\n attr(this.$el, 'hidden', null);\n }\n\n if (this.svg) {\n this.svg.then(function (svg) { return (!this$1._connected || svg !== this$1.svgEl) && remove(svg); }, noop);\n }\n\n this.svg = this.svgEl = null;\n\n },\n\n update: {\n\n read: function() {\n return !!(this.strokeAnimation && this.svgEl && isVisible(this.svgEl));\n },\n\n write: function() {\n applyAnimation(this.svgEl);\n },\n\n type: ['resize']\n\n },\n\n methods: {\n\n getSvg: function() {\n var this$1 = this;\n\n return loadSVG(this.src).then(function (svg) { return parseSVG(svg, this$1.icon) || Promise.reject('SVG not found.'); }\n );\n },\n\n applyAttributes: function(el) {\n var this$1 = this;\n\n\n for (var prop in this.$options.props) {\n if (this[prop] && includes(this.include, prop)) {\n attr(el, prop, this[prop]);\n }\n }\n\n for (var attribute in this.attributes) {\n var ref = this.attributes[attribute].split(':', 2);\n var prop$1 = ref[0];\n var value = ref[1];\n attr(el, prop$1, value);\n }\n\n if (!this.id) {\n removeAttr(el, 'id');\n }\n\n var props = ['width', 'height'];\n var dimensions = [this.width, this.height];\n\n if (!dimensions.some(function (val) { return val; })) {\n dimensions = props.map(function (prop) { return attr(el, prop); });\n }\n\n var viewBox = attr(el, 'viewBox');\n if (viewBox && !dimensions.some(function (val) { return val; })) {\n dimensions = viewBox.split(' ').slice(2);\n }\n\n dimensions.forEach(function (val, i) {\n val = (val | 0) * this$1.ratio;\n val && attr(el, props[i], val);\n\n if (val && !dimensions[i ^ 1]) {\n removeAttr(el, props[i ^ 1]);\n }\n });\n\n attr(el, 'data-svg', this.icon || this.src);\n\n }\n\n }\n\n };\n\n var svgs = {};\n\n function loadSVG(src) {\n\n if (svgs[src]) {\n return svgs[src];\n }\n\n return svgs[src] = new Promise(function (resolve, reject) {\n\n if (!src) {\n reject();\n return;\n }\n\n if (startsWith(src, 'data:')) {\n resolve(decodeURIComponent(src.split(',')[1]));\n } else {\n\n ajax(src).then(\n function (xhr) { return resolve(xhr.response); },\n function () { return reject('SVG not found.'); }\n );\n\n }\n\n });\n }\n\n function parseSVG(svg, icon) {\n\n if (icon && includes(svg, '/g;\n var symbols = {};\n\n function parseSymbols(svg, icon) {\n\n if (!symbols[svg]) {\n\n symbols[svg] = {};\n\n symbolRe.lastIndex = 0;\n\n var match;\n while ((match = symbolRe.exec(svg))) {\n symbols[svg][match[3]] = \"\";\n }\n\n }\n\n return symbols[svg][icon];\n }\n\n function applyAnimation(el) {\n\n var length = getMaxPathLength(el);\n\n if (length) {\n el.style.setProperty('--uk-animation-stroke', length);\n }\n\n }\n\n function getMaxPathLength(el) {\n return Math.ceil(Math.max.apply(Math, [ 0 ].concat( $$('[stroke]', el).map(function (stroke) {\n try {\n return stroke.getTotalLength();\n } catch (e) {\n return 0;\n }\n }) )));\n }\n\n function insertSVG(el, root) {\n\n if (isVoidElement(root) || root.tagName === 'CANVAS') {\n\n attr(root, 'hidden', true);\n\n var next = root.nextElementSibling;\n return equals(el, next)\n ? next\n : after(root, el);\n\n }\n\n var last = root.lastElementChild;\n return equals(el, last)\n ? last\n : append(root, el);\n }\n\n function equals(el, other) {\n return attr(el, 'data-svg') === attr(other, 'data-svg');\n }\n\n var closeIcon = \"\";\n\n var closeLarge = \"\";\n\n var marker = \"\";\n\n var navbarToggleIcon = \"\";\n\n var overlayIcon = \"\";\n\n var paginationNext = \"\";\n\n var paginationPrevious = \"\";\n\n var searchIcon = \"\";\n\n var searchLarge = \"\";\n\n var searchNavbar = \"\";\n\n var slidenavNext = \"\";\n\n var slidenavNextLarge = \"\";\n\n var slidenavPrevious = \"\";\n\n var slidenavPreviousLarge = \"\";\n\n var spinner = \"\";\n\n var totop = \"\";\n\n var icons = {\n spinner: spinner,\n totop: totop,\n marker: marker,\n 'close-icon': closeIcon,\n 'close-large': closeLarge,\n 'navbar-toggle-icon': navbarToggleIcon,\n 'overlay-icon': overlayIcon,\n 'pagination-next': paginationNext,\n 'pagination-previous': paginationPrevious,\n 'search-icon': searchIcon,\n 'search-large': searchLarge,\n 'search-navbar': searchNavbar,\n 'slidenav-next': slidenavNext,\n 'slidenav-next-large': slidenavNextLarge,\n 'slidenav-previous': slidenavPrevious,\n 'slidenav-previous-large': slidenavPreviousLarge\n };\n\n var Icon = {\n\n install: install,\n\n extends: SVG,\n\n args: 'icon',\n\n props: ['icon'],\n\n data: {\n include: ['focusable']\n },\n\n isIcon: true,\n\n beforeConnect: function() {\n addClass(this.$el, 'uk-icon');\n },\n\n methods: {\n\n getSvg: function() {\n\n var icon = getIcon(this.icon);\n\n if (!icon) {\n return Promise.reject('Icon not found.');\n }\n\n return Promise.resolve(icon);\n }\n\n }\n\n };\n\n var IconComponent = {\n\n args: false,\n\n extends: Icon,\n\n data: function (vm) { return ({\n icon: hyphenate(vm.constructor.options.name)\n }); },\n\n beforeConnect: function() {\n addClass(this.$el, this.$name);\n }\n\n };\n\n var Slidenav = {\n\n extends: IconComponent,\n\n beforeConnect: function() {\n addClass(this.$el, 'uk-slidenav');\n },\n\n computed: {\n\n icon: function(ref, $el) {\n var icon = ref.icon;\n\n return hasClass($el, 'uk-slidenav-large')\n ? (icon + \"-large\")\n : icon;\n }\n\n }\n\n };\n\n var Search = {\n\n extends: IconComponent,\n\n computed: {\n\n icon: function(ref, $el) {\n var icon = ref.icon;\n\n return hasClass($el, 'uk-search-icon') && parents($el, '.uk-search-large').length\n ? 'search-large'\n : parents($el, '.uk-search-navbar').length\n ? 'search-navbar'\n : icon;\n }\n\n }\n\n };\n\n var Close = {\n\n extends: IconComponent,\n\n computed: {\n\n icon: function() {\n return (\"close-\" + (hasClass(this.$el, 'uk-close-large') ? 'large' : 'icon'));\n }\n\n }\n\n };\n\n var Spinner = {\n\n extends: IconComponent,\n\n connected: function() {\n var this$1 = this;\n\n this.svg.then(function (svg) { return this$1.ratio !== 1 && css($('circle', svg), 'strokeWidth', 1 / this$1.ratio); }, noop);\n }\n\n };\n\n var parsed = {};\n function install(UIkit) {\n UIkit.icon.add = function (name, svg) {\n var obj;\n\n\n var added = isString(name) ? (( obj = {}, obj[name] = svg, obj )) : name;\n each(added, function (svg, name) {\n icons[name] = svg;\n delete parsed[name];\n });\n\n if (UIkit._initialized) {\n apply(document.body, function (el) { return each(UIkit.getComponents(el), function (cmp) {\n cmp.$options.isIcon && cmp.icon in added && cmp.$reset();\n }); }\n );\n }\n };\n }\n\n function getIcon(icon) {\n\n if (!icons[icon]) {\n return null;\n }\n\n if (!parsed[icon]) {\n parsed[icon] = $((icons[applyRtl(icon)] || icons[icon]).trim());\n }\n\n return parsed[icon].cloneNode(true);\n }\n\n function applyRtl(icon) {\n return isRtl ? swap(swap(icon, 'left', 'right'), 'previous', 'next') : icon;\n }\n\n var img = {\n\n args: 'dataSrc',\n\n props: {\n dataSrc: String,\n dataSrcset: Boolean,\n sizes: String,\n width: Number,\n height: Number,\n offsetTop: String,\n offsetLeft: String,\n target: String\n },\n\n data: {\n dataSrc: '',\n dataSrcset: false,\n sizes: false,\n width: false,\n height: false,\n offsetTop: '50vh',\n offsetLeft: 0,\n target: false\n },\n\n computed: {\n\n cacheKey: function(ref) {\n var dataSrc = ref.dataSrc;\n\n return ((this.$name) + \".\" + dataSrc);\n },\n\n width: function(ref) {\n var width = ref.width;\n var dataWidth = ref.dataWidth;\n\n return width || dataWidth;\n },\n\n height: function(ref) {\n var height = ref.height;\n var dataHeight = ref.dataHeight;\n\n return height || dataHeight;\n },\n\n sizes: function(ref) {\n var sizes = ref.sizes;\n var dataSizes = ref.dataSizes;\n\n return sizes || dataSizes;\n },\n\n isImg: function(_, $el) {\n return isImg($el);\n },\n\n target: {\n\n get: function(ref) {\n var target = ref.target;\n\n return [this.$el ].concat( queryAll(target, this.$el));\n },\n\n watch: function() {\n this.observe();\n }\n\n },\n\n offsetTop: function(ref) {\n var offsetTop = ref.offsetTop;\n\n return toPx(offsetTop, 'height');\n },\n\n offsetLeft: function(ref) {\n var offsetLeft = ref.offsetLeft;\n\n return toPx(offsetLeft, 'width');\n }\n\n },\n\n connected: function() {\n\n if (storage[this.cacheKey]) {\n setSrcAttrs(this.$el, storage[this.cacheKey] || this.dataSrc, this.dataSrcset, this.sizes);\n } else if (this.isImg && this.width && this.height) {\n setSrcAttrs(this.$el, getPlaceholderImage(this.width, this.height, this.sizes));\n }\n\n this.observer = new IntersectionObserver(this.load, {\n rootMargin: ((this.offsetTop) + \"px \" + (this.offsetLeft) + \"px\")\n });\n\n requestAnimationFrame(this.observe);\n\n },\n\n disconnected: function() {\n this.observer.disconnect();\n },\n\n update: {\n\n read: function(ref) {\n var this$1 = this;\n var image = ref.image;\n\n\n if (!image && document.readyState === 'complete') {\n this.load(this.observer.takeRecords());\n }\n\n if (this.isImg) {\n return false;\n }\n\n image && image.then(function (img) { return img && img.currentSrc !== '' && setSrcAttrs(this$1.$el, currentSrc(img)); });\n\n },\n\n write: function(data) {\n\n if (this.dataSrcset && window.devicePixelRatio !== 1) {\n\n var bgSize = css(this.$el, 'backgroundSize');\n if (bgSize.match(/^(auto\\s?)+$/) || toFloat(bgSize) === data.bgSize) {\n data.bgSize = getSourceSize(this.dataSrcset, this.sizes);\n css(this.$el, 'backgroundSize', ((data.bgSize) + \"px\"));\n }\n\n }\n\n },\n\n events: ['resize']\n\n },\n\n methods: {\n\n load: function(entries) {\n var this$1 = this;\n\n\n // Old chromium based browsers (UC Browser) did not implement `isIntersecting`\n if (!entries.some(function (entry) { return isUndefined(entry.isIntersecting) || entry.isIntersecting; })) {\n return;\n }\n\n this._data.image = getImage(this.dataSrc, this.dataSrcset, this.sizes).then(function (img) {\n\n setSrcAttrs(this$1.$el, currentSrc(img), img.srcset, img.sizes);\n storage[this$1.cacheKey] = currentSrc(img);\n return img;\n\n }, function (e) { return trigger(this$1.$el, new e.constructor(e.type, e)); });\n\n this.observer.disconnect();\n },\n\n observe: function() {\n var this$1 = this;\n\n if (this._connected && !this._data.image) {\n this.target.forEach(function (el) { return this$1.observer.observe(el); });\n }\n }\n\n }\n\n };\n\n function setSrcAttrs(el, src, srcset, sizes) {\n\n if (isImg(el)) {\n sizes && (el.sizes = sizes);\n srcset && (el.srcset = srcset);\n src && (el.src = src);\n } else if (src) {\n\n var change = !includes(el.style.backgroundImage, src);\n if (change) {\n css(el, 'backgroundImage', (\"url(\" + (escape(src)) + \")\"));\n trigger(el, createEvent('load', false));\n }\n\n }\n\n }\n\n function getPlaceholderImage(width, height, sizes) {\n var assign;\n\n\n if (sizes) {\n ((assign = Dimensions.ratio({width: width, height: height}, 'width', toPx(sizesToPixel(sizes))), width = assign.width, height = assign.height));\n }\n\n return (\"data:image/svg+xml;utf8,\");\n }\n\n var sizesRe = /\\s*(.*?)\\s*(\\w+|calc\\(.*?\\))\\s*(?:,|$)/g;\n function sizesToPixel(sizes) {\n var matches;\n\n sizesRe.lastIndex = 0;\n\n while ((matches = sizesRe.exec(sizes))) {\n if (!matches[1] || window.matchMedia(matches[1]).matches) {\n matches = evaluateSize(matches[2]);\n break;\n }\n }\n\n return matches || '100vw';\n }\n\n var sizeRe = /\\d+(?:\\w+|%)/g;\n var additionRe = /[+-]?(\\d+)/g;\n function evaluateSize(size) {\n return startsWith(size, 'calc')\n ? size\n .substring(5, size.length - 1)\n .replace(sizeRe, function (size) { return toPx(size); })\n .replace(/ /g, '')\n .match(additionRe)\n .reduce(function (a, b) { return a + +b; }, 0)\n : size;\n }\n\n var srcSetRe = /\\s+\\d+w\\s*(?:,|$)/g;\n function getSourceSize(srcset, sizes) {\n var srcSize = toPx(sizesToPixel(sizes));\n var descriptors = (srcset.match(srcSetRe) || []).map(toFloat).sort(function (a, b) { return a - b; });\n\n return descriptors.filter(function (size) { return size >= srcSize; })[0] || descriptors.pop() || '';\n }\n\n function isImg(el) {\n return el.tagName === 'IMG';\n }\n\n function currentSrc(el) {\n return el.currentSrc || el.src;\n }\n\n var key = '__test__';\n var storage;\n\n // workaround for Safari's private browsing mode and accessing sessionStorage in Blink\n try {\n storage = window.sessionStorage || {};\n storage[key] = 1;\n delete storage[key];\n } catch (e) {\n storage = {};\n }\n\n var Media = {\n\n props: {\n media: Boolean\n },\n\n data: {\n media: false\n },\n\n computed: {\n\n matchMedia: function() {\n var media = toMedia(this.media);\n return !media || window.matchMedia(media).matches;\n }\n\n }\n\n };\n\n function toMedia(value) {\n\n if (isString(value)) {\n if (value[0] === '@') {\n var name = \"breakpoint-\" + (value.substr(1));\n value = toFloat(getCssVar(name));\n } else if (isNaN(value)) {\n return value;\n }\n }\n\n return value && !isNaN(value) ? (\"(min-width: \" + value + \"px)\") : false;\n }\n\n var leader = {\n\n mixins: [Class, Media],\n\n props: {\n fill: String\n },\n\n data: {\n fill: '',\n clsWrapper: 'uk-leader-fill',\n clsHide: 'uk-leader-hide',\n attrFill: 'data-fill'\n },\n\n computed: {\n\n fill: function(ref) {\n var fill = ref.fill;\n\n return fill || getCssVar('leader-fill-content');\n }\n\n },\n\n connected: function() {\n var assign;\n\n (assign = wrapInner(this.$el, (\"\")), this.wrapper = assign[0]);\n },\n\n disconnected: function() {\n unwrap(this.wrapper.childNodes);\n },\n\n update: {\n\n read: function(ref) {\n var changed = ref.changed;\n var width = ref.width;\n\n\n var prev = width;\n\n width = Math.floor(this.$el.offsetWidth / 2);\n\n return {\n width: width,\n fill: this.fill,\n changed: changed || prev !== width,\n hide: !this.matchMedia\n };\n },\n\n write: function(data) {\n\n toggleClass(this.wrapper, this.clsHide, data.hide);\n\n if (data.changed) {\n data.changed = false;\n attr(this.wrapper, this.attrFill, new Array(data.width).join(data.fill));\n }\n\n },\n\n events: ['resize']\n\n }\n\n };\n\n var Container = {\n\n props: {\n container: Boolean\n },\n\n data: {\n container: true\n },\n\n computed: {\n\n container: function(ref) {\n var container = ref.container;\n\n return container === true && this.$container || container && $(container);\n }\n\n }\n\n };\n\n var active$1 = [];\n\n var Modal = {\n\n mixins: [Class, Container, Togglable],\n\n props: {\n selPanel: String,\n selClose: String,\n escClose: Boolean,\n bgClose: Boolean,\n stack: Boolean\n },\n\n data: {\n cls: 'uk-open',\n escClose: true,\n bgClose: true,\n overlay: true,\n stack: false\n },\n\n computed: {\n\n panel: function(ref, $el) {\n var selPanel = ref.selPanel;\n\n return $(selPanel, $el);\n },\n\n transitionElement: function() {\n return this.panel;\n },\n\n bgClose: function(ref) {\n var bgClose = ref.bgClose;\n\n return bgClose && this.panel;\n }\n\n },\n\n beforeDisconnect: function() {\n if (this.isToggled()) {\n this.toggleElement(this.$el, false, false);\n }\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return this.selClose;\n },\n\n handler: function(e) {\n e.preventDefault();\n this.hide();\n }\n\n },\n\n {\n\n name: 'toggle',\n\n self: true,\n\n handler: function(e) {\n\n if (e.defaultPrevented) {\n return;\n }\n\n e.preventDefault();\n\n if (this.isToggled() === includes(active$1, this)) {\n this.toggle();\n }\n }\n\n },\n\n {\n name: 'beforeshow',\n\n self: true,\n\n handler: function(e) {\n\n if (includes(active$1, this)) {\n return false;\n }\n\n if (!this.stack && active$1.length) {\n Promise.all(active$1.map(function (modal) { return modal.hide(); })).then(this.show);\n e.preventDefault();\n } else {\n active$1.push(this);\n }\n }\n\n },\n\n {\n\n name: 'show',\n\n self: true,\n\n handler: function() {\n var this$1 = this;\n\n\n if (width(window) - width(document) && this.overlay) {\n css(document.body, 'overflowY', 'scroll');\n }\n\n this.stack && css(this.$el, 'zIndex', css(this.$el, 'zIndex') + active$1.length);\n\n addClass(document.documentElement, this.clsPage);\n\n if (this.bgClose) {\n once(this.$el, 'hide', on(document, pointerDown, function (ref) {\n var target = ref.target;\n\n\n if (last(active$1) !== this$1 || this$1.overlay && !within(target, this$1.$el) || within(target, this$1.panel)) {\n return;\n }\n\n once(document, (pointerUp + \" \" + pointerCancel + \" scroll\"), function (ref) {\n var defaultPrevented = ref.defaultPrevented;\n var type = ref.type;\n var newTarget = ref.target;\n\n if (!defaultPrevented && type === pointerUp && target === newTarget) {\n this$1.hide();\n }\n }, true);\n\n }), {self: true});\n }\n\n if (this.escClose) {\n once(this.$el, 'hide', on(document, 'keydown', function (e) {\n if (e.keyCode === 27 && last(active$1) === this$1) {\n e.preventDefault();\n this$1.hide();\n }\n }), {self: true});\n }\n }\n\n },\n\n {\n\n name: 'hidden',\n\n self: true,\n\n handler: function() {\n var this$1 = this;\n\n\n active$1.splice(active$1.indexOf(this), 1);\n\n if (!active$1.length) {\n css(document.body, 'overflowY', '');\n }\n\n css(this.$el, 'zIndex', '');\n\n if (!active$1.some(function (modal) { return modal.clsPage === this$1.clsPage; })) {\n removeClass(document.documentElement, this.clsPage);\n }\n\n }\n\n }\n\n ],\n\n methods: {\n\n toggle: function() {\n return this.isToggled() ? this.hide() : this.show();\n },\n\n show: function() {\n var this$1 = this;\n\n\n if (this.container && this.$el.parentNode !== this.container) {\n append(this.container, this.$el);\n return new Promise(function (resolve) { return requestAnimationFrame(function () { return this$1.show().then(resolve); }\n ); }\n );\n }\n\n return this.toggleElement(this.$el, true, animate$1(this));\n },\n\n hide: function() {\n return this.toggleElement(this.$el, false, animate$1(this));\n }\n\n }\n\n };\n\n function animate$1(ref) {\n var transitionElement = ref.transitionElement;\n var _toggle = ref._toggle;\n\n return function (el, show) { return new Promise(function (resolve, reject) { return once(el, 'show hide', function () {\n el._reject && el._reject();\n el._reject = reject;\n\n _toggle(el, show);\n\n var off = once(transitionElement, 'transitionstart', function () {\n once(transitionElement, 'transitionend transitioncancel', resolve, {self: true});\n clearTimeout(timer);\n }, {self: true});\n\n var timer = setTimeout(function () {\n off();\n resolve();\n }, toMs(css(transitionElement, 'transitionDuration')));\n\n }); }\n ); };\n }\n\n var modal = {\n\n install: install$1,\n\n mixins: [Modal],\n\n data: {\n clsPage: 'uk-modal-page',\n selPanel: '.uk-modal-dialog',\n selClose: '.uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full'\n },\n\n events: [\n\n {\n name: 'show',\n\n self: true,\n\n handler: function() {\n\n if (hasClass(this.panel, 'uk-margin-auto-vertical')) {\n addClass(this.$el, 'uk-flex');\n } else {\n css(this.$el, 'display', 'block');\n }\n\n height(this.$el); // force reflow\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler: function() {\n\n css(this.$el, 'display', '');\n removeClass(this.$el, 'uk-flex');\n\n }\n }\n\n ]\n\n };\n\n function install$1(ref) {\n var modal = ref.modal;\n\n\n modal.dialog = function (content, options) {\n\n var dialog = modal(\n (\"
\" + content + \"
\"),\n options\n );\n\n dialog.show();\n\n on(dialog.$el, 'hidden', function () { return Promise.resolve().then(function () { return dialog.$destroy(true); }\n ); }, {self: true}\n );\n\n return dialog;\n };\n\n modal.alert = function (message, options) {\n return openDialog(\n function (ref) {\n var labels = ref.labels;\n\n return (\"
\" + (isString(message) ? message : html(message)) + \"
\");\n },\n options,\n function (deferred) { return deferred.resolve(); }\n );\n };\n\n modal.confirm = function (message, options) {\n return openDialog(\n function (ref) {\n var labels = ref.labels;\n\n return (\"
\" + (isString(message) ? message : html(message)) + \"
\");\n },\n options,\n function (deferred) { return deferred.reject(); }\n );\n };\n\n modal.prompt = function (message, value, options) {\n return openDialog(\n function (ref) {\n var labels = ref.labels;\n\n return (\"
\");\n },\n options,\n function (deferred) { return deferred.resolve(null); },\n function (dialog) { return $('input', dialog.$el).value; }\n );\n };\n\n modal.labels = {\n ok: 'Ok',\n cancel: 'Cancel'\n };\n\n function openDialog(tmpl, options, hideFn, submitFn) {\n\n options = assign({bgClose: false, escClose: true, labels: modal.labels}, options);\n\n var dialog = modal.dialog(tmpl(options), options);\n var deferred = new Deferred();\n\n var resolved = false;\n\n on(dialog.$el, 'submit', 'form', function (e) {\n e.preventDefault();\n deferred.resolve(submitFn && submitFn(dialog));\n resolved = true;\n dialog.hide();\n });\n\n on(dialog.$el, 'hide', function () { return !resolved && hideFn(deferred); });\n\n deferred.promise.dialog = dialog;\n\n return deferred.promise;\n }\n\n }\n\n var nav = {\n\n extends: Accordion,\n\n data: {\n targets: '> .uk-parent',\n toggle: '> a',\n content: '> ul'\n }\n\n };\n\n var navbar = {\n\n mixins: [Class, FlexBug],\n\n props: {\n dropdown: String,\n mode: 'list',\n align: String,\n offset: Number,\n boundary: Boolean,\n boundaryAlign: Boolean,\n clsDrop: String,\n delayShow: Number,\n delayHide: Number,\n dropbar: Boolean,\n dropbarMode: String,\n dropbarAnchor: Boolean,\n duration: Number\n },\n\n data: {\n dropdown: '.uk-navbar-nav > li',\n align: !isRtl ? 'left' : 'right',\n clsDrop: 'uk-navbar-dropdown',\n mode: undefined,\n offset: undefined,\n delayShow: undefined,\n delayHide: undefined,\n boundaryAlign: undefined,\n flip: 'x',\n boundary: true,\n dropbar: false,\n dropbarMode: 'slide',\n dropbarAnchor: false,\n duration: 200,\n forceHeight: true,\n selMinHeight: '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle'\n },\n\n computed: {\n\n boundary: function(ref, $el) {\n var boundary = ref.boundary;\n var boundaryAlign = ref.boundaryAlign;\n\n return (boundary === true || boundaryAlign) ? $el : boundary;\n },\n\n dropbarAnchor: function(ref, $el) {\n var dropbarAnchor = ref.dropbarAnchor;\n\n return query(dropbarAnchor, $el);\n },\n\n pos: function(ref) {\n var align = ref.align;\n\n return (\"bottom-\" + align);\n },\n\n dropbar: {\n\n get: function(ref) {\n var dropbar = ref.dropbar;\n\n\n if (!dropbar) {\n return null;\n }\n\n dropbar = this._dropbar || query(dropbar, this.$el) || $('+ .uk-navbar-dropbar', this.$el);\n\n return dropbar ? dropbar : (this._dropbar = $('
'));\n\n },\n\n watch: function(dropbar) {\n addClass(dropbar, 'uk-navbar-dropbar');\n },\n\n immediate: true\n\n },\n\n dropdowns: {\n\n get: function(ref, $el) {\n var dropdown = ref.dropdown;\n var clsDrop = ref.clsDrop;\n\n return $$((dropdown + \" .\" + clsDrop), $el);\n },\n\n watch: function(dropdowns) {\n var this$1 = this;\n\n this.$create(\n 'drop',\n dropdowns.filter(function (el) { return !this$1.getDropdown(el); }),\n assign({}, this.$props, {boundary: this.boundary, pos: this.pos, offset: this.dropbar || this.offset})\n );\n },\n\n immediate: true\n\n }\n\n },\n\n disconnected: function() {\n this.dropbar && remove(this.dropbar);\n delete this._dropbar;\n },\n\n events: [\n\n {\n name: 'mouseover',\n\n delegate: function() {\n return this.dropdown;\n },\n\n handler: function(ref) {\n var current = ref.current;\n\n var active = this.getActive();\n if (active && active.toggle && !within(active.toggle.$el, current) && !active.tracker.movesTo(active.$el)) {\n active.hide(false);\n }\n }\n\n },\n\n {\n name: 'mouseleave',\n\n el: function() {\n return this.dropbar;\n },\n\n handler: function() {\n var active = this.getActive();\n\n if (active && !this.dropdowns.some(function (el) { return matches(el, ':hover'); })) {\n active.hide();\n }\n }\n },\n\n {\n name: 'beforeshow',\n\n capture: true,\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function() {\n\n if (!this.dropbar.parentNode) {\n after(this.dropbarAnchor || this.$el, this.dropbar);\n }\n\n }\n },\n\n {\n name: 'show',\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function(_, ref) {\n var $el = ref.$el;\n var dir = ref.dir;\n\n\n if (this.dropbarMode === 'slide') {\n addClass(this.dropbar, 'uk-navbar-dropbar-slide');\n }\n\n this.clsDrop && addClass($el, ((this.clsDrop) + \"-dropbar\"));\n\n if (dir === 'bottom') {\n this.transitionTo($el.offsetHeight + toFloat(css($el, 'marginTop')) + toFloat(css($el, 'marginBottom')), $el);\n }\n }\n },\n\n {\n name: 'beforehide',\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function(e, ref) {\n var $el = ref.$el;\n\n\n var active = this.getActive();\n\n if (matches(this.dropbar, ':hover') && active && active.$el === $el) {\n e.preventDefault();\n }\n }\n },\n\n {\n name: 'hide',\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function(_, ref) {\n var $el = ref.$el;\n\n\n var active = this.getActive();\n\n if (!active || active && active.$el === $el) {\n this.transitionTo(0);\n }\n }\n }\n\n ],\n\n methods: {\n\n getActive: function() {\n var ref = this.dropdowns.map(this.getDropdown).filter(function (drop) { return drop && drop.isActive(); });\n var active = ref[0];\n return active && includes(active.mode, 'hover') && within(active.toggle.$el, this.$el) && active;\n },\n\n transitionTo: function(newHeight, el) {\n var this$1 = this;\n\n\n var ref = this;\n var dropbar = ref.dropbar;\n var oldHeight = isVisible(dropbar) ? height(dropbar) : 0;\n\n el = oldHeight < newHeight && el;\n\n css(el, 'clip', (\"rect(0,\" + (el.offsetWidth) + \"px,\" + oldHeight + \"px,0)\"));\n\n height(dropbar, oldHeight);\n\n Transition.cancel([el, dropbar]);\n return Promise.all([\n Transition.start(dropbar, {height: newHeight}, this.duration),\n Transition.start(el, {clip: (\"rect(0,\" + (el.offsetWidth) + \"px,\" + newHeight + \"px,0)\")}, this.duration)\n ])\n .catch(noop)\n .then(function () {\n css(el, {clip: ''});\n this$1.$update(dropbar);\n });\n },\n\n getDropdown: function(el) {\n return this.$getComponent(el, 'drop') || this.$getComponent(el, 'dropdown');\n }\n\n }\n\n };\n\n var offcanvas = {\n\n mixins: [Modal],\n\n args: 'mode',\n\n props: {\n mode: String,\n flip: Boolean,\n overlay: Boolean\n },\n\n data: {\n mode: 'slide',\n flip: false,\n overlay: false,\n clsPage: 'uk-offcanvas-page',\n clsContainer: 'uk-offcanvas-container',\n selPanel: '.uk-offcanvas-bar',\n clsFlip: 'uk-offcanvas-flip',\n clsContainerAnimation: 'uk-offcanvas-container-animation',\n clsSidebarAnimation: 'uk-offcanvas-bar-animation',\n clsMode: 'uk-offcanvas',\n clsOverlay: 'uk-offcanvas-overlay',\n selClose: '.uk-offcanvas-close',\n container: false\n },\n\n computed: {\n\n clsFlip: function(ref) {\n var flip = ref.flip;\n var clsFlip = ref.clsFlip;\n\n return flip ? clsFlip : '';\n },\n\n clsOverlay: function(ref) {\n var overlay = ref.overlay;\n var clsOverlay = ref.clsOverlay;\n\n return overlay ? clsOverlay : '';\n },\n\n clsMode: function(ref) {\n var mode = ref.mode;\n var clsMode = ref.clsMode;\n\n return (clsMode + \"-\" + mode);\n },\n\n clsSidebarAnimation: function(ref) {\n var mode = ref.mode;\n var clsSidebarAnimation = ref.clsSidebarAnimation;\n\n return mode === 'none' || mode === 'reveal' ? '' : clsSidebarAnimation;\n },\n\n clsContainerAnimation: function(ref) {\n var mode = ref.mode;\n var clsContainerAnimation = ref.clsContainerAnimation;\n\n return mode !== 'push' && mode !== 'reveal' ? '' : clsContainerAnimation;\n },\n\n transitionElement: function(ref) {\n var mode = ref.mode;\n\n return mode === 'reveal' ? this.panel.parentNode : this.panel;\n }\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return 'a[href^=\"#\"]';\n },\n\n handler: function(ref) {\n var hash = ref.current.hash;\n var defaultPrevented = ref.defaultPrevented;\n\n if (!defaultPrevented && hash && $(hash, document.body)) {\n this.hide();\n }\n }\n\n },\n\n {\n name: 'touchstart',\n\n passive: true,\n\n el: function() {\n return this.panel;\n },\n\n handler: function(ref) {\n var targetTouches = ref.targetTouches;\n\n\n if (targetTouches.length === 1) {\n this.clientY = targetTouches[0].clientY;\n }\n\n }\n\n },\n\n {\n name: 'touchmove',\n\n self: true,\n passive: false,\n\n filter: function() {\n return this.overlay;\n },\n\n handler: function(e) {\n e.cancelable && e.preventDefault();\n }\n\n },\n\n {\n name: 'touchmove',\n\n passive: false,\n\n el: function() {\n return this.panel;\n },\n\n handler: function(e) {\n\n if (e.targetTouches.length !== 1) {\n return;\n }\n\n var clientY = event.targetTouches[0].clientY - this.clientY;\n var ref = this.panel;\n var scrollTop = ref.scrollTop;\n var scrollHeight = ref.scrollHeight;\n var clientHeight = ref.clientHeight;\n\n if (clientHeight >= scrollHeight\n || scrollTop === 0 && clientY > 0\n || scrollHeight - scrollTop <= clientHeight && clientY < 0\n ) {\n e.cancelable && e.preventDefault();\n }\n\n }\n\n },\n\n {\n name: 'show',\n\n self: true,\n\n handler: function() {\n\n if (this.mode === 'reveal' && !hasClass(this.panel.parentNode, this.clsMode)) {\n wrapAll(this.panel, '
');\n addClass(this.panel.parentNode, this.clsMode);\n }\n\n css(document.documentElement, 'overflowY', this.overlay ? 'hidden' : '');\n addClass(document.body, this.clsContainer, this.clsFlip);\n css(document.body, 'touch-action', 'pan-y pinch-zoom');\n css(this.$el, 'display', 'block');\n addClass(this.$el, this.clsOverlay);\n addClass(this.panel, this.clsSidebarAnimation, this.mode !== 'reveal' ? this.clsMode : '');\n\n height(document.body); // force reflow\n addClass(document.body, this.clsContainerAnimation);\n\n this.clsContainerAnimation && suppressUserScale();\n\n\n }\n },\n\n {\n name: 'hide',\n\n self: true,\n\n handler: function() {\n removeClass(document.body, this.clsContainerAnimation);\n css(document.body, 'touch-action', '');\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler: function() {\n\n this.clsContainerAnimation && resumeUserScale();\n\n if (this.mode === 'reveal') {\n unwrap(this.panel);\n }\n\n removeClass(this.panel, this.clsSidebarAnimation, this.clsMode);\n removeClass(this.$el, this.clsOverlay);\n css(this.$el, 'display', '');\n removeClass(document.body, this.clsContainer, this.clsFlip);\n\n css(document.documentElement, 'overflowY', '');\n\n }\n },\n\n {\n name: 'swipeLeft swipeRight',\n\n handler: function(e) {\n\n if (this.isToggled() && endsWith(e.type, 'Left') ^ this.flip) {\n this.hide();\n }\n\n }\n }\n\n ]\n\n };\n\n // Chrome in responsive mode zooms page upon opening offcanvas\n function suppressUserScale() {\n getViewport$1().content += ',user-scalable=0';\n }\n\n function resumeUserScale() {\n var viewport = getViewport$1();\n viewport.content = viewport.content.replace(/,user-scalable=0$/, '');\n }\n\n function getViewport$1() {\n return $('meta[name=\"viewport\"]', document.head) || append(document.head, '');\n }\n\n var overflowAuto = {\n\n mixins: [Class],\n\n props: {\n selContainer: String,\n selContent: String\n },\n\n data: {\n selContainer: '.uk-modal',\n selContent: '.uk-modal-dialog'\n },\n\n computed: {\n\n container: function(ref, $el) {\n var selContainer = ref.selContainer;\n\n return closest($el, selContainer);\n },\n\n content: function(ref, $el) {\n var selContent = ref.selContent;\n\n return closest($el, selContent);\n }\n\n },\n\n connected: function() {\n css(this.$el, 'minHeight', 150);\n },\n\n update: {\n\n read: function() {\n\n if (!this.content || !this.container) {\n return false;\n }\n\n return {\n current: toFloat(css(this.$el, 'maxHeight')),\n max: Math.max(150, height(this.container) - (offset(this.content).height - height(this.$el)))\n };\n },\n\n write: function(ref) {\n var current = ref.current;\n var max = ref.max;\n\n css(this.$el, 'maxHeight', max);\n if (Math.round(current) !== Math.round(max)) {\n trigger(this.$el, 'resize');\n }\n },\n\n events: ['resize']\n\n }\n\n };\n\n var responsive = {\n\n props: ['width', 'height'],\n\n connected: function() {\n addClass(this.$el, 'uk-responsive-width');\n },\n\n update: {\n\n read: function() {\n return isVisible(this.$el) && this.width && this.height\n ? {width: width(this.$el.parentNode), height: this.height}\n : false;\n },\n\n write: function(dim) {\n height(this.$el, Dimensions.contain({\n height: this.height,\n width: this.width\n }, dim).height);\n },\n\n events: ['resize']\n\n }\n\n };\n\n var scroll = {\n\n props: {\n offset: Number\n },\n\n data: {\n offset: 0\n },\n\n methods: {\n\n scrollTo: function(el) {\n var this$1 = this;\n\n\n el = el && $(el) || document.body;\n\n if (trigger(this.$el, 'beforescroll', [this, el])) {\n scrollIntoView(el, {offset: this.offset}).then(function () { return trigger(this$1.$el, 'scrolled', [this$1, el]); }\n );\n }\n\n }\n\n },\n\n events: {\n\n click: function(e) {\n\n if (e.defaultPrevented) {\n return;\n }\n\n e.preventDefault();\n this.scrollTo(escape(decodeURIComponent(this.$el.hash)).substr(1));\n }\n\n }\n\n };\n\n var scrollspy = {\n\n args: 'cls',\n\n props: {\n cls: String,\n target: String,\n hidden: Boolean,\n offsetTop: Number,\n offsetLeft: Number,\n repeat: Boolean,\n delay: Number\n },\n\n data: function () { return ({\n cls: false,\n target: false,\n hidden: true,\n offsetTop: 0,\n offsetLeft: 0,\n repeat: false,\n delay: 0,\n inViewClass: 'uk-scrollspy-inview'\n }); },\n\n computed: {\n\n elements: {\n\n get: function(ref, $el) {\n var target = ref.target;\n\n return target ? $$(target, $el) : [$el];\n },\n\n watch: function(elements) {\n if (this.hidden) {\n css(filter(elements, (\":not(.\" + (this.inViewClass) + \")\")), 'visibility', 'hidden');\n }\n },\n\n immediate: true\n\n }\n\n },\n\n update: [\n\n {\n\n read: function(ref) {\n var this$1 = this;\n var update = ref.update;\n\n\n if (!update) {\n return;\n }\n\n this.elements.forEach(function (el) {\n\n var state = el._ukScrollspyState;\n\n if (!state) {\n state = {cls: data(el, 'uk-scrollspy-class') || this$1.cls};\n }\n\n state.show = isInView(el, this$1.offsetTop, this$1.offsetLeft);\n el._ukScrollspyState = state;\n\n });\n\n },\n\n write: function(data) {\n var this$1 = this;\n\n\n // Let child components be applied at least once first\n if (!data.update) {\n this.$emit();\n return data.update = true;\n }\n\n this.elements.forEach(function (el) {\n\n var state = el._ukScrollspyState;\n var toggle = function (inview) {\n\n css(el, 'visibility', !inview && this$1.hidden ? 'hidden' : '');\n\n toggleClass(el, this$1.inViewClass, inview);\n toggleClass(el, state.cls);\n\n trigger(el, inview ? 'inview' : 'outview');\n\n state.inview = inview;\n\n this$1.$update(el);\n\n };\n\n if (state.show && !state.inview && !state.queued) {\n\n state.queued = true;\n\n data.promise = (data.promise || Promise.resolve()).then(function () { return new Promise(function (resolve) { return setTimeout(resolve, this$1.delay); }\n ); }\n ).then(function () {\n toggle(true);\n setTimeout(function () {\n state.queued = false;\n this$1.$emit();\n }, 300);\n });\n\n } else if (!state.show && state.inview && !state.queued && this$1.repeat) {\n\n toggle(false);\n\n }\n\n });\n\n },\n\n events: ['scroll', 'resize']\n\n }\n\n ]\n\n };\n\n var scrollspyNav = {\n\n props: {\n cls: String,\n closest: String,\n scroll: Boolean,\n overflow: Boolean,\n offset: Number\n },\n\n data: {\n cls: 'uk-active',\n closest: false,\n scroll: false,\n overflow: true,\n offset: 0\n },\n\n computed: {\n\n links: {\n\n get: function(_, $el) {\n return $$('a[href^=\"#\"]', $el).filter(function (el) { return el.hash; });\n },\n\n watch: function(links) {\n if (this.scroll) {\n this.$create('scroll', links, {offset: this.offset || 0});\n }\n },\n\n immediate: true\n\n },\n\n targets: function() {\n return $$(this.links.map(function (el) { return escape(el.hash).substr(1); }).join(','));\n },\n\n elements: function(ref) {\n var selector = ref.closest;\n\n return closest(this.links, selector || '*');\n }\n\n },\n\n update: [\n\n {\n\n read: function() {\n var this$1 = this;\n\n\n var ref = this.targets;\n var length = ref.length;\n\n if (!length || !isVisible(this.$el)) {\n return false;\n }\n\n var scrollElement = last(scrollParents(this.targets[0]));\n var scrollTop = scrollElement.scrollTop;\n var scrollHeight = scrollElement.scrollHeight;\n var viewport = getViewport(scrollElement);\n var max = scrollHeight - offset(viewport).height;\n var active = false;\n\n if (scrollTop === max) {\n active = length - 1;\n } else {\n\n this.targets.every(function (el, i) {\n if (position(el, viewport).top - this$1.offset <= 0) {\n active = i;\n return true;\n }\n });\n\n if (active === false && this.overflow) {\n active = 0;\n }\n }\n\n return {active: active};\n },\n\n write: function(ref) {\n var active = ref.active;\n\n\n this.links.forEach(function (el) { return el.blur(); });\n removeClass(this.elements, this.cls);\n\n if (active !== false) {\n trigger(this.$el, 'active', [active, addClass(this.elements[active], this.cls)]);\n }\n\n },\n\n events: ['scroll', 'resize']\n\n }\n\n ]\n\n };\n\n var sticky = {\n\n mixins: [Class, Media],\n\n props: {\n top: null,\n bottom: Boolean,\n offset: String,\n animation: String,\n clsActive: String,\n clsInactive: String,\n clsFixed: String,\n clsBelow: String,\n selTarget: String,\n widthElement: Boolean,\n showOnUp: Boolean,\n targetOffset: Number\n },\n\n data: {\n top: 0,\n bottom: false,\n offset: 0,\n animation: '',\n clsActive: 'uk-active',\n clsInactive: '',\n clsFixed: 'uk-sticky-fixed',\n clsBelow: 'uk-sticky-below',\n selTarget: '',\n widthElement: false,\n showOnUp: false,\n targetOffset: false\n },\n\n computed: {\n\n offset: function(ref) {\n var offset = ref.offset;\n\n return toPx(offset);\n },\n\n selTarget: function(ref, $el) {\n var selTarget = ref.selTarget;\n\n return selTarget && $(selTarget, $el) || $el;\n },\n\n widthElement: function(ref, $el) {\n var widthElement = ref.widthElement;\n\n return query(widthElement, $el) || this.placeholder;\n },\n\n isActive: {\n\n get: function() {\n return hasClass(this.selTarget, this.clsActive);\n },\n\n set: function(value) {\n if (value && !this.isActive) {\n replaceClass(this.selTarget, this.clsInactive, this.clsActive);\n trigger(this.$el, 'active');\n } else if (!value && !hasClass(this.selTarget, this.clsInactive)) {\n replaceClass(this.selTarget, this.clsActive, this.clsInactive);\n trigger(this.$el, 'inactive');\n }\n }\n\n }\n\n },\n\n connected: function() {\n this.placeholder = $('+ .uk-sticky-placeholder', this.$el) || $('
');\n this.isFixed = false;\n this.isActive = false;\n },\n\n disconnected: function() {\n\n if (this.isFixed) {\n this.hide();\n removeClass(this.selTarget, this.clsInactive);\n }\n\n remove(this.placeholder);\n this.placeholder = null;\n this.widthElement = null;\n },\n\n events: [\n\n {\n\n name: 'load hashchange popstate',\n\n el: inBrowser && window,\n\n handler: function() {\n var this$1 = this;\n\n\n if (!(this.targetOffset !== false && location.hash && window.pageYOffset > 0)) {\n return;\n }\n\n var target = $(location.hash);\n\n if (target) {\n fastdom.read(function () {\n\n var ref = offset(target);\n var top = ref.top;\n var elTop = offset(this$1.$el).top;\n var elHeight = this$1.$el.offsetHeight;\n\n if (this$1.isFixed && elTop + elHeight >= top && elTop <= top + target.offsetHeight) {\n scrollTop(window, top - elHeight - (isNumeric(this$1.targetOffset) ? this$1.targetOffset : 0) - this$1.offset);\n }\n\n });\n }\n\n }\n\n }\n\n ],\n\n update: [\n\n {\n\n read: function(ref, type) {\n var height = ref.height;\n\n\n this.inactive = !this.matchMedia || !isVisible(this.$el);\n\n if (this.inactive) {\n return false;\n }\n\n if (this.isActive && type !== 'update') {\n this.hide();\n height = this.$el.offsetHeight;\n this.show();\n }\n\n height = !this.isActive ? this.$el.offsetHeight : height;\n\n this.topOffset = offset(this.isFixed ? this.placeholder : this.$el).top;\n this.bottomOffset = this.topOffset + height;\n\n var bottom = parseProp('bottom', this);\n\n this.top = Math.max(toFloat(parseProp('top', this)), this.topOffset) - this.offset;\n this.bottom = bottom && bottom - this.$el.offsetHeight;\n this.width = offset(isVisible(this.widthElement) ? this.widthElement : this.$el).width;\n\n return {\n height: height,\n top: offsetPosition(this.placeholder)[0],\n margins: css(this.$el, ['marginTop', 'marginBottom', 'marginLeft', 'marginRight'])\n };\n },\n\n write: function(ref) {\n var height = ref.height;\n var margins = ref.margins;\n\n\n var ref$1 = this;\n var placeholder = ref$1.placeholder;\n\n css(placeholder, assign({height: height}, margins));\n\n if (!within(placeholder, document)) {\n after(this.$el, placeholder);\n attr(placeholder, 'hidden', '');\n }\n\n this.isActive = !!this.isActive; // force self-assign\n\n },\n\n events: ['resize']\n\n },\n\n {\n\n read: function(ref) {\n var scroll = ref.scroll; if ( scroll === void 0 ) scroll = 0;\n\n\n this.scroll = window.pageYOffset;\n\n return {\n dir: scroll <= this.scroll ? 'down' : 'up',\n scroll: this.scroll\n };\n },\n\n write: function(data, type) {\n var this$1 = this;\n\n\n var now = Date.now();\n var initTimestamp = data.initTimestamp; if ( initTimestamp === void 0 ) initTimestamp = 0;\n var dir = data.dir;\n var lastDir = data.lastDir;\n var lastScroll = data.lastScroll;\n var scroll = data.scroll;\n var top = data.top;\n\n data.lastScroll = scroll;\n\n if (scroll < 0 || scroll === lastScroll && type === 'scroll' || this.showOnUp && type !== 'scroll' && !this.isFixed) {\n return;\n }\n\n if (now - initTimestamp > 300 || dir !== lastDir) {\n data.initScroll = scroll;\n data.initTimestamp = now;\n }\n\n data.lastDir = dir;\n\n if (this.showOnUp && !this.isFixed && Math.abs(data.initScroll - scroll) <= 30 && Math.abs(lastScroll - scroll) <= 10) {\n return;\n }\n\n if (this.inactive\n || scroll < this.top\n || this.showOnUp && (scroll <= this.top || dir === 'down' && type === 'scroll' || dir === 'up' && !this.isFixed && scroll <= this.bottomOffset)\n ) {\n\n if (!this.isFixed) {\n\n if (Animation.inProgress(this.$el) && top > scroll) {\n Animation.cancel(this.$el);\n this.hide();\n }\n\n return;\n }\n\n this.isFixed = false;\n\n if (this.animation && scroll > this.topOffset) {\n Animation.cancel(this.$el);\n Animation.out(this.$el, this.animation).then(function () { return this$1.hide(); }, noop);\n } else {\n this.hide();\n }\n\n } else if (this.isFixed) {\n\n this.update();\n\n } else if (this.animation) {\n\n Animation.cancel(this.$el);\n this.show();\n Animation.in(this.$el, this.animation).catch(noop);\n\n } else {\n this.show();\n }\n\n },\n\n events: ['resize', 'scroll']\n\n }\n\n ],\n\n methods: {\n\n show: function() {\n\n this.isFixed = true;\n this.update();\n attr(this.placeholder, 'hidden', null);\n\n },\n\n hide: function() {\n\n this.isActive = false;\n removeClass(this.$el, this.clsFixed, this.clsBelow);\n css(this.$el, {position: '', top: '', width: ''});\n attr(this.placeholder, 'hidden', '');\n\n },\n\n update: function() {\n\n var active = this.top !== 0 || this.scroll > this.top;\n var top = Math.max(0, this.offset);\n\n if (isNumeric(this.bottom) && this.scroll > this.bottom - this.offset) {\n top = this.bottom - this.scroll;\n }\n\n css(this.$el, {\n position: 'fixed',\n top: (top + \"px\"),\n width: this.width\n });\n\n this.isActive = active;\n toggleClass(this.$el, this.clsBelow, this.scroll > this.bottomOffset);\n addClass(this.$el, this.clsFixed);\n\n }\n\n }\n\n };\n\n function parseProp(prop, ref) {\n var $props = ref.$props;\n var $el = ref.$el;\n var propOffset = ref[(prop + \"Offset\")];\n\n\n var value = $props[prop];\n\n if (!value) {\n return;\n }\n\n if (isString(value) && value.match(/^-?\\d/)) {\n\n return propOffset + toPx(value);\n\n } else {\n\n return offset(value === true ? $el.parentNode : query(value, $el)).bottom;\n\n }\n }\n\n var Switcher = {\n\n mixins: [Togglable],\n\n args: 'connect',\n\n props: {\n connect: String,\n toggle: String,\n active: Number,\n swiping: Boolean\n },\n\n data: {\n connect: '~.uk-switcher',\n toggle: '> * > :first-child',\n active: 0,\n swiping: true,\n cls: 'uk-active',\n clsContainer: 'uk-switcher',\n attrItem: 'uk-switcher-item'\n },\n\n computed: {\n\n connects: {\n\n get: function(ref, $el) {\n var connect = ref.connect;\n\n return queryAll(connect, $el);\n },\n\n watch: function(connects) {\n var this$1 = this;\n\n\n connects.forEach(function (list) { return this$1.updateAria(list.children); });\n\n if (this.swiping) {\n css(connects, 'touch-action', 'pan-y pinch-zoom');\n }\n\n },\n\n immediate: true\n\n },\n\n toggles: {\n\n get: function(ref, $el) {\n var toggle = ref.toggle;\n\n return $$(toggle, $el).filter(function (el) { return !matches(el, '.uk-disabled *, .uk-disabled, [disabled]'); });\n },\n\n watch: function(toggles) {\n var active = this.index();\n this.show(~active && active || toggles[this.active] || toggles[0]);\n },\n\n immediate: true\n\n },\n\n children: function() {\n var this$1 = this;\n\n return children(this.$el).filter(function (child) { return this$1.toggles.some(function (toggle) { return within(toggle, child); }); });\n }\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return this.toggle;\n },\n\n handler: function(e) {\n if (!includes(this.toggles, e.current)) {\n return;\n }\n e.preventDefault();\n this.show(e.current);\n }\n\n },\n\n {\n name: 'click',\n\n el: function() {\n return this.connects;\n },\n\n delegate: function() {\n return (\"[\" + (this.attrItem) + \"],[data-\" + (this.attrItem) + \"]\");\n },\n\n handler: function(e) {\n e.preventDefault();\n this.show(data(e.current, this.attrItem));\n }\n },\n\n {\n name: 'swipeRight swipeLeft',\n\n filter: function() {\n return this.swiping;\n },\n\n el: function() {\n return this.connects;\n },\n\n handler: function(ref) {\n var type = ref.type;\n\n this.show(endsWith(type, 'Left') ? 'next' : 'previous');\n }\n }\n\n ],\n\n methods: {\n\n index: function() {\n var this$1 = this;\n\n return findIndex(this.children, function (el) { return hasClass(el, this$1.cls); });\n },\n\n show: function(item) {\n var this$1 = this;\n\n\n var prev = this.index();\n var next = getIndex(item, this.toggles, prev);\n\n this.children.forEach(function (child, i) {\n toggleClass(child, this$1.cls, next === i);\n attr(this$1.toggles[i], 'aria-expanded', next === i);\n });\n\n this.connects.forEach(function (ref) {\n var children = ref.children;\n\n return this$1.toggleElement(toNodes(children).filter(function (child, i) { return i !== next && this$1.isToggled(child); }\n ), false, prev >= 0).then(function () { return this$1.toggleElement(children[next], true, prev >= 0); }\n );\n }\n );\n }\n\n }\n\n };\n\n var tab = {\n\n mixins: [Class],\n\n extends: Switcher,\n\n props: {\n media: Boolean\n },\n\n data: {\n media: 960,\n attrItem: 'uk-tab-item'\n },\n\n connected: function() {\n\n var cls = hasClass(this.$el, 'uk-tab-left')\n ? 'uk-tab-left'\n : hasClass(this.$el, 'uk-tab-right')\n ? 'uk-tab-right'\n : false;\n\n if (cls) {\n this.$create('toggle', this.$el, {cls: cls, mode: 'media', media: this.media});\n }\n }\n\n };\n\n var toggle = {\n\n mixins: [Media, Togglable],\n\n args: 'target',\n\n props: {\n href: String,\n target: null,\n mode: 'list',\n queued: Boolean\n },\n\n data: {\n href: false,\n target: false,\n mode: 'click',\n queued: true\n },\n\n computed: {\n\n target: {\n\n get: function(ref, $el) {\n var href = ref.href;\n var target = ref.target;\n\n target = queryAll(target || href, $el);\n return target.length && target || [$el];\n },\n\n watch: function() {\n trigger(this.target, 'updatearia', [this]);\n },\n\n immediate: true\n\n }\n\n },\n\n events: [\n\n {\n\n name: (pointerEnter + \" \" + pointerLeave),\n\n filter: function() {\n return includes(this.mode, 'hover');\n },\n\n handler: function(e) {\n if (!isTouch(e)) {\n this.toggle((\"toggle\" + (e.type === pointerEnter ? 'show' : 'hide')));\n }\n }\n\n },\n\n {\n\n name: 'click',\n\n filter: function() {\n return includes(this.mode, 'click') || hasTouch && includes(this.mode, 'hover');\n },\n\n handler: function(e) {\n\n // TODO better isToggled handling\n var link;\n if (closest(e.target, 'a[href=\"#\"], a[href=\"\"]')\n || (link = closest(e.target, 'a[href]')) && (\n this.cls && !hasClass(this.target, this.cls.split(' ')[0])\n || !isVisible(this.target)\n || link.hash && matches(this.target, link.hash)\n )\n ) {\n e.preventDefault();\n }\n\n this.toggle();\n }\n\n }\n\n ],\n\n update: {\n\n read: function() {\n return includes(this.mode, 'media') && this.media\n ? {match: this.matchMedia}\n : false;\n },\n\n write: function(ref) {\n var match = ref.match;\n\n\n var toggled = this.isToggled(this.target);\n if (match ? !toggled : toggled) {\n this.toggle();\n }\n\n },\n\n events: ['resize']\n\n },\n\n methods: {\n\n toggle: function(type) {\n var this$1 = this;\n\n\n if (!trigger(this.target, type || 'toggle', [this])) {\n return;\n }\n\n if (this.queued) {\n\n var toggled = this.target.filter(this.isToggled);\n this.toggleElement(toggled, false).then(function () { return this$1.toggleElement(this$1.target.filter(function (el) { return !includes(toggled, el); }\n ), true); }\n );\n\n } else {\n this.toggleElement(this.target);\n }\n }\n\n }\n\n };\n\n var components = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Accordion: Accordion,\n Alert: alert,\n Cover: cover,\n Drop: drop,\n Dropdown: drop,\n FormCustom: formCustom,\n Gif: gif,\n Grid: grid,\n HeightMatch: heightMatch,\n HeightViewport: heightViewport,\n Icon: Icon,\n Img: img,\n Leader: leader,\n Margin: Margin,\n Modal: modal,\n Nav: nav,\n Navbar: navbar,\n Offcanvas: offcanvas,\n OverflowAuto: overflowAuto,\n Responsive: responsive,\n Scroll: scroll,\n Scrollspy: scrollspy,\n ScrollspyNav: scrollspyNav,\n Sticky: sticky,\n Svg: SVG,\n Switcher: Switcher,\n Tab: tab,\n Toggle: toggle,\n Video: Video,\n Close: Close,\n Spinner: Spinner,\n SlidenavNext: Slidenav,\n SlidenavPrevious: Slidenav,\n SearchIcon: Search,\n Marker: IconComponent,\n NavbarToggleIcon: IconComponent,\n OverlayIcon: IconComponent,\n PaginationNext: IconComponent,\n PaginationPrevious: IconComponent,\n Totop: IconComponent\n });\n\n // register components\n each(components, function (component, name) { return UIkit.component(name, component); }\n );\n\n // core functionality\n UIkit.use(Core);\n\n boot(UIkit);\n\n var countdown = {\n\n mixins: [Class],\n\n props: {\n date: String,\n clsWrapper: String\n },\n\n data: {\n date: '',\n clsWrapper: '.uk-countdown-%unit%'\n },\n\n computed: {\n\n date: function(ref) {\n var date = ref.date;\n\n return Date.parse(date);\n },\n\n days: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'days'), $el);\n },\n\n hours: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'hours'), $el);\n },\n\n minutes: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'minutes'), $el);\n },\n\n seconds: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'seconds'), $el);\n },\n\n units: function() {\n var this$1 = this;\n\n return ['days', 'hours', 'minutes', 'seconds'].filter(function (unit) { return this$1[unit]; });\n }\n\n },\n\n connected: function() {\n this.start();\n },\n\n disconnected: function() {\n var this$1 = this;\n\n this.stop();\n this.units.forEach(function (unit) { return empty(this$1[unit]); });\n },\n\n events: [\n\n {\n\n name: 'visibilitychange',\n\n el: inBrowser && document,\n\n handler: function() {\n if (document.hidden) {\n this.stop();\n } else {\n this.start();\n }\n }\n\n }\n\n ],\n\n update: {\n\n write: function() {\n var this$1 = this;\n\n\n var timespan = getTimeSpan(this.date);\n\n if (timespan.total <= 0) {\n\n this.stop();\n\n timespan.days\n = timespan.hours\n = timespan.minutes\n = timespan.seconds\n = 0;\n }\n\n this.units.forEach(function (unit) {\n\n var digits = String(Math.floor(timespan[unit]));\n\n digits = digits.length < 2 ? (\"0\" + digits) : digits;\n\n var el = this$1[unit];\n if (el.textContent !== digits) {\n digits = digits.split('');\n\n if (digits.length !== el.children.length) {\n html(el, digits.map(function () { return ''; }).join(''));\n }\n\n digits.forEach(function (digit, i) { return el.children[i].textContent = digit; });\n }\n\n });\n\n }\n\n },\n\n methods: {\n\n start: function() {\n\n this.stop();\n\n if (this.date && this.units.length) {\n this.$update();\n this.timer = setInterval(this.$update, 1000);\n }\n\n },\n\n stop: function() {\n\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n\n }\n\n }\n\n };\n\n function getTimeSpan(date) {\n\n var total = date - Date.now();\n\n return {\n total: total,\n seconds: total / 1000 % 60,\n minutes: total / 1000 / 60 % 60,\n hours: total / 1000 / 60 / 60 % 24,\n days: total / 1000 / 60 / 60 / 24\n };\n }\n\n var targetClass = 'uk-animation-target';\n\n var Animate = {\n\n props: {\n animation: Number\n },\n\n data: {\n animation: 150\n },\n\n methods: {\n\n animate: function(action, target) {\n var this$1 = this;\n if ( target === void 0 ) target = this.$el;\n\n\n addStyle();\n\n var children$1 = children(target);\n var propsFrom = children$1.map(function (el) { return getProps(el, true); });\n\n var oldHeight = height(target);\n var oldScrollY = window.pageYOffset;\n\n action();\n\n Transition.cancel(target);\n children$1.forEach(Transition.cancel);\n\n reset(target);\n this.$update(target, 'resize');\n fastdom.flush();\n\n var newHeight = height(target);\n\n children$1 = children$1.concat(children(target).filter(function (el) { return !includes(children$1, el); }));\n\n var propsTo = children$1.map(function (el, i) { return el.parentNode && i in propsFrom\n ? propsFrom[i]\n ? isVisible(el)\n ? getPositionWithMargin(el)\n : {opacity: 0}\n : {opacity: isVisible(el) ? 1 : 0}\n : false; }\n );\n\n propsFrom = propsTo.map(function (props, i) {\n var from = children$1[i].parentNode === target\n ? propsFrom[i] || getProps(children$1[i])\n : false;\n\n if (from) {\n if (!props) {\n delete from.opacity;\n } else if (!('opacity' in props)) {\n var opacity = from.opacity;\n\n if (opacity % 1) {\n props.opacity = 1;\n } else {\n delete from.opacity;\n }\n }\n }\n\n return from;\n });\n\n addClass(target, targetClass);\n children$1.forEach(function (el, i) { return propsFrom[i] && css(el, propsFrom[i]); });\n css(target, {height: oldHeight, display: 'block'});\n scrollTop(window, oldScrollY);\n\n return Promise.all(\n children$1.map(function (el, i) { return ['top', 'left', 'height', 'width'].some(function (prop) { return propsFrom[i][prop] !== propsTo[i][prop]; }\n ) && Transition.start(el, propsTo[i], this$1.animation, 'ease'); }\n ).concat(oldHeight !== newHeight && Transition.start(target, {height: newHeight}, this.animation, 'ease'))\n ).then(function () {\n children$1.forEach(function (el, i) { return css(el, {display: propsTo[i].opacity === 0 ? 'none' : '', zIndex: ''}); });\n reset(target);\n this$1.$update(target, 'resize');\n fastdom.flush(); // needed for IE11\n }, noop);\n\n }\n }\n };\n\n function getProps(el, opacity) {\n\n var zIndex = css(el, 'zIndex');\n\n return isVisible(el)\n ? assign({\n display: '',\n opacity: opacity ? css(el, 'opacity') : '0',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: zIndex === 'auto' ? index(el) : zIndex\n }, getPositionWithMargin(el))\n : false;\n }\n\n function reset(el) {\n css(el.children, {\n height: '',\n left: '',\n opacity: '',\n pointerEvents: '',\n position: '',\n top: '',\n width: ''\n });\n removeClass(el, targetClass);\n css(el, {height: '', display: ''});\n }\n\n function getPositionWithMargin(el) {\n var ref = offset(el);\n var height = ref.height;\n var width = ref.width;\n var ref$1 = position(el);\n var top = ref$1.top;\n var left = ref$1.left;\n\n return {top: top, left: left, height: height, width: width};\n }\n\n var style;\n\n function addStyle() {\n if (style) {\n return;\n }\n style = append(document.head, '