PageSourceSearch

https://genesight.com/wp-content/themes/sage-theme/dist/scripts/main.js

js genesight.com collected 2026-10-03 22:12:45 UTC 520,216 bytes, 15,559 lines download raw bytes

1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// The module cache
3/******/ 	var installedModules = {};
4/******/
5/******/ 	// The require function
6/******/ 	function __webpack_require__(moduleId) {
7/******/
8/******/ 		// Check if module is in cache
9/******/ 		if(installedModules[moduleId]) {
10/******/ 			return installedModules[moduleId].exports;
11/******/ 		}
12/******/ 		// Create a new module (and put it into the cache)
13/******/ 		var module = installedModules[moduleId] = {
14/******/ 			i: moduleId,
15/******/ 			l: false,
16/******/ 			exports: {}
17/******/ 		};
18/******/
19/******/ 		// Execute the module function
20/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ 		// Flag the module as loaded
23/******/ 		module.l = true;
24/******/
25/******/ 		// Return the exports of the module
26/******/ 		return module.exports;
27/******/ 	}
28/******/
29/******/
30/******/ 	// expose the modules object (__webpack_modules__)
31/******/ 	__webpack_require__.m = modules;
32/******/
33/******/ 	// expose the module cache
34/******/ 	__webpack_require__.c = installedModules;
35/******/
36/******/ 	// define getter function for harmony exports
37/******/ 	__webpack_require__.d = function(exports, name, getter) {
38/******/ 		if(!__webpack_require__.o(exports, name)) {
39/******/ 			Object.defineProperty(exports, name, {
40/******/ 				configurable: false,
41/******/ 				enumerable: true,
42/******/ 				get: getter
43/******/ 			});
44/******/ 		}
45/******/ 	};
46/******/
47/******/ 	// getDefaultExport function for compatibility with non-harmony modules
48/******/ 	__webpack_require__.n = function(module) {
49/******/ 		var getter = module && module.__esModule ?
50/******/ 			function getDefault() { return module['default']; } :
51/******/ 			function getModuleExports() { return module; };
52/******/ 		__webpack_require__.d(getter, 'a', getter);
53/******/ 		return getter;
54/******/ 	};
55/******/
56/******/ 	// Object.prototype.hasOwnProperty.call
57/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58/******/
59/******/ 	// __webpack_public_path__
60/******/ 	__webpack_require__.p = "/wp-content/themes/sage-theme/dist/";
61/******/
62/******/ 	// Load entry module and return exports
63/******/ 	return __webpack_require__(__webpack_require__.s = 3);
64/******/ })
65/************************************************************************/
66/******/ ([
67/* 0 */
68/***/ (function(module, exports) {
69
70module.exports = jQuery;
71
72/***/ }),
73/* 1 */
74/***/ (function(module, exports, __webpack_require__) {
75
76/*! UIkit 3.9.3 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
77
78(function (global, factory) {
79     true ? module.exports = factory() :
80    typeof define === 'function' && define.amd ? define('uikit', factory) :
81    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.UIkit = factory());
82})(this, (function () { 'use strict';
83
84    var objPrototype = Object.prototype;
85    var hasOwnProperty = objPrototype.hasOwnProperty;
86
87    function hasOwn(obj, key) {
88        return hasOwnProperty.call(obj, key);
89    }
90
91    var hyphenateRe = /\B([A-Z])/g;
92
93    var hyphenate = memoize(function (str) { return str
94        .replace(hyphenateRe, '-$1')
95        .toLowerCase(); }
96    );
97
98    var camelizeRe = /-(\w)/g;
99
100    var camelize = memoize(function (str) { return str.replace(camelizeRe, toUpper); }
101    );
102
103    var ucfirst = memoize(function (str) { return str.length ? toUpper(null, str.charAt(0)) + str.slice(1) : ''; }
104    );
105
106    function toUpper(_, c) {
107        return c ? c.toUpperCase() : '';
108    }
109
110    var strPrototype = String.prototype;
111    var startsWithFn = strPrototype.startsWith || function (search) { return this.lastIndexOf(search, 0) === 0; };
112
113    function startsWith(str, search) {
114        return startsWithFn.call(str, search);
115    }
116
117    var endsWithFn = strPrototype.endsWith || function (search) { return this.substr(-search.length) === search; };
118
119    function endsWith(str, search) {
120        return endsWithFn.call(str, search);
121    }
122
123    var arrPrototype = Array.prototype;
124
125    var includesFn = function (search, i) { return !!~this.indexOf(search, i); };
126    var includesStr = strPrototype.includes || includesFn;
127    var includesArray = arrPrototype.includes || includesFn;
128
129    function includes(obj, search) {
130        return obj && (isString(obj) ? includesStr : includesArray).call(obj, search);
131    }
132
133    var findIndexFn = arrPrototype.findIndex || function (predicate) {
134        var arguments$1 = arguments;
135
136        for (var i = 0; i < this.length; i++) {
137            if (predicate.call(arguments$1[1], this[i], i, this)) {
138                return i;
139            }
140        }
141        return -1;
142    };
143
144    function findIndex(array, predicate) {
145        return findIndexFn.call(array, predicate);
146    }
147
148    var isArray = Array.isArray;
149
150    function isFunction(obj) {
151        return typeof obj === 'function';
152    }
153
154    function isObject(obj) {
155        return obj !== null && typeof obj === 'object';
156    }
157
158    var toString = objPrototype.toString;
159    function isPlainObject(obj) {
160        return toString.call(obj) === '[object Object]';
161    }
162
163    function isWindow(obj) {
164        return isObject(obj) && obj === obj.window;
165    }
166
167    function isDocument(obj) {
168        return nodeType(obj) === 9;
169    }
170
171    function isNode(obj) {
172        return nodeType(obj) >= 1;
173    }
174
175    function isElement(obj) {
176        return nodeType(obj) === 1;
177    }
178
179    function nodeType(obj) {
180        return !isWindow(obj) && isObject(obj) && obj.nodeType;
181    }
182
183    function isBoolean(value) {
184        return typeof value === 'boolean';
185    }
186
187    function isString(value) {
188        return typeof value === 'string';
189    }
190
191    function isNumber(value) {
192        return typeof value === 'number';
193    }
194
195    function isNumeric(value) {
196        return isNumber(value) || isString(value) && !isNaN(value - parseFloat(value));
197    }
198
199    function isEmpty(obj) {
200        return !(isArray(obj)
201            ? obj.length
202            : isObject(obj)
203                ? Object.keys(obj).length
204                : false
205        );
206    }
207
208    function isUndefined(value) {
209        return value === void 0;
210    }
211
212    function toBoolean(value) {
213        return isBoolean(value)
214            ? value
215            : value === 'true' || value === '1' || value === ''
216                ? true
217                : value === 'false' || value === '0'
218                    ? false
219                    : value;
220    }
221
222    function toNumber(value) {
223        var number = Number(value);
224        return !isNaN(number) ? number : false;
225    }
226
227    function toFloat(value) {
228        return parseFloat(value) || 0;
229    }
230
231    var toArray = Array.from || (function (value) { return arrPrototype.slice.call(value); });
232
233    function toNode(element) {
234        return toNodes(element)[0];
235    }
236
237    function toNodes(element) {
238        return element && (isNode(element) ? [element] : toArray(element).filter(isNode)) || [];
239    }
240
241    function toWindow(element) {
242        if (isWindow(element)) {
243            return element;
244        }
245
246        element = toNode(element);
247
248        return element
249            ? (isDocument(element)
250                ? element
251                : element.ownerDocument
252            ).defaultView
253            : window;
254    }
255
256    function toMs(time) {
257        return !time
258            ? 0
259            : endsWith(time, 'ms')
260                ? toFloat(time)
261                : toFloat(time) * 1000;
262    }
263
264    function isEqual(value, other) {
265        return value === other
266            || isObject(value)
267            && isObject(other)
268            && Object.keys(value).length === Object.keys(other).length
269            && each(value, function (val, key) { return val === other[key]; });
270    }
271
272    function swap(value, a, b) {
273        return value.replace(
274            new RegExp((a + "|" + b), 'g'),
275            function (match) { return match === a ? b : a; }
276        );
277    }
278
279    var assign = Object.assign || function (target) {
280        var args = [], len = arguments.length - 1;
281        while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];
282
283        target = Object(target);
284        for (var i = 0; i < args.length; i++) {
285            var source = args[i];
286            if (source !== null) {
287                for (var key in source) {
288                    if (hasOwn(source, key)) {
289                        target[key] = source[key];
290                    }
291                }
292            }
293        }
294        return target;
295    };
296
297    function last(array) {
298        return array[array.length - 1];
299    }
300
301    function each(obj, cb) {
302        for (var key in obj) {
303            if (false === cb(obj[key], key)) {
304                return false;
305            }
306        }
307        return true;
308    }
309
310    function sortBy$1(array, prop) {
311        return array.slice().sort(function (ref, ref$1) {
312                var propA = ref[prop]; if ( propA === void 0 ) propA = 0;
313                var propB = ref$1[prop]; if ( propB === void 0 ) propB = 0;
314
315                return propA > propB
316                ? 1
317                : propB > propA
318                    ? -1
319                    : 0;
320        }
321        );
322    }
323
324    function uniqueBy(array, prop) {
325        var seen = new Set();
326        return array.filter(function (ref) {
327            var check = ref[prop];
328
329            return seen.has(check)
330            ? false
331            : seen.add(check) || true;
332        } // IE 11 does not return the Set object
333        );
334    }
335
336    function clamp(number, min, max) {
337        if ( min === void 0 ) min = 0;
338        if ( max === void 0 ) max = 1;
339
340        return Math.min(Math.max(toNumber(number) || 0, min), max);
341    }
342
343    function noop() {}
344
345    function intersectRect() {
346        var rects = [], len = arguments.length;
347        while ( len-- ) rects[ len ] = arguments[ len ];
348
349        return [['bottom', 'top'], ['right', 'left']].every(function (ref) {
350                var minProp = ref[0];
351                var maxProp = ref[1];
352
353                return Math.min.apply(Math, rects.map(function (ref) {
354                var min = ref[minProp];
355
356                return min;
357                })) - Math.max.apply(Math, rects.map(function (ref) {
358                var max = ref[maxProp];
359
360                return max;
361                })) > 0;
362        }
363        );
364    }
365
366    function pointInRect(point, rect) {
367        return point.x <= rect.right &&
368            point.x >= rect.left &&
369            point.y <= rect.bottom &&
370            point.y >= rect.top;
371    }
372
373    var Dimensions = {
374
375        ratio: function(dimensions, prop, value) {
376            var obj;
377
378
379            var aProp = prop === 'width' ? 'height' : 'width';
380
381            return ( obj = {}, obj[aProp] = dimensions[prop] ? Math.round(value * dimensions[aProp] / dimensions[prop]) : dimensions[aProp], obj[prop] = value, obj );
382        },
383
384        contain: function(dimensions, maxDimensions) {
385            var this$1$1 = this;
386
387            dimensions = assign({}, dimensions);
388
389            each(dimensions, function (_, prop) { return dimensions = dimensions[prop] > maxDimensions[prop]
390                ? this$1$1.ratio(dimensions, prop, maxDimensions[prop])
391                : dimensions; }
392            );
393
394            return dimensions;
395        },
396
397        cover: function(dimensions, maxDimensions) {
398            var this$1$1 = this;
399
400            dimensions = this.contain(dimensions, maxDimensions);
401
402            each(dimensions, function (_, prop) { return dimensions = dimensions[prop] < maxDimensions[prop]
403                ? this$1$1.ratio(dimensions, prop, maxDimensions[prop])
404                : dimensions; }
405            );
406
407            return dimensions;
408        }
409
410    };
411
412    function getIndex(i, elements, current, finite) {
413        if ( current === void 0 ) current = 0;
414        if ( finite === void 0 ) finite = false;
415
416
417        elements = toNodes(elements);
418
419        var length = elements.length;
420
421        i = isNumeric(i)
422            ? toNumber(i)
423            : i === 'next'
424                ? current + 1
425                : i === 'previous'
426                    ? current - 1
427                    : elements.indexOf(toNode(i));
428
429        if (finite) {
430            return clamp(i, 0, length - 1);
431        }
432
433        i %= length;
434
435        return i < 0 ? i + length : i;
436    }
437
438    function memoize(fn) {
439        var cache = Object.create(null);
440        return function (key) { return cache[key] || (cache[key] = fn(key)); };
441    }
442
443    function attr(element, name, value) {
444
445        if (isObject(name)) {
446            for (var key in name) {
447                attr(element, key, name[key]);
448            }
449            return;
450        }
451
452        if (isUndefined(value)) {
453            element = toNode(element);
454            return element && element.getAttribute(name);
455        } else {
456            toNodes(element).forEach(function (element) {
457
458                if (isFunction(value)) {
459                    value = value.call(element, attr(element, name));
460                }
461
462                if (value === null) {
463                    removeAttr(element, name);
464                } else {
465                    element.setAttribute(name, value);
466                }
467            });
468        }
469
470    }
471
472    function hasAttr(element, name) {
473        return toNodes(element).some(function (element) { return element.hasAttribute(name); });
474    }
475
476    function removeAttr(element, name) {
477        element = toNodes(element);
478        name.split(' ').forEach(function (name) { return element.forEach(function (element) { return element.hasAttribute(name) && element.removeAttribute(name); }
479            ); }
480        );
481    }
482
483    function data(element, attribute) {
484        for (var i = 0, attrs = [attribute, ("data-" + attribute)]; i < attrs.length; i++) {
485            if (hasAttr(element, attrs[i])) {
486                return attr(element, attrs[i]);
487            }
488        }
489    }
490
491    /* global DocumentTouch */
492
493    var inBrowser = typeof window !== 'undefined';
494    var isIE = inBrowser && /msie|trident/i.test(window.navigator.userAgent);
495    var isRtl = inBrowser && attr(document.documentElement, 'dir') === 'rtl';
496
497    var hasTouchEvents = inBrowser && 'ontouchstart' in window;
498    var hasPointerEvents = inBrowser && window.PointerEvent;
499    var hasTouch = inBrowser && (hasTouchEvents
500        || window.DocumentTouch && document instanceof DocumentTouch
501        || navigator.maxTouchPoints); // IE >=11
502
503    var pointerDown = hasPointerEvents ? 'pointerdown' : hasTouchEvents ? 'touchstart' : 'mousedown';
504    var pointerMove = hasPointerEvents ? 'pointermove' : hasTouchEvents ? 'touchmove' : 'mousemove';
505    var pointerUp = hasPointerEvents ? 'pointerup' : hasTouchEvents ? 'touchend' : 'mouseup';
506    var pointerEnter = hasPointerEvents ? 'pointerenter' : hasTouchEvents ? '' : 'mouseenter';
507    var pointerLeave = hasPointerEvents ? 'pointerleave' : hasTouchEvents ? '' : 'mouseleave';
508    var pointerCancel = hasPointerEvents ? 'pointercancel' : 'touchcancel';
509
510    var voidElements = {
511        area: true,
512        base: true,
513        br: true,
514        col: true,
515        embed: true,
516        hr: true,
517        img: true,
518        input: true,
519        keygen: true,
520        link: true,
521        menuitem: true,
522        meta: true,
523        param: true,
524        source: true,
525        track: true,
526        wbr: true
527    };
528    function isVoidElement(element) {
529        return toNodes(element).some(function (element) { return voidElements[element.tagName.toLowerCase()]; });
530    }
531
532    function isVisible(element) {
533        return toNodes(element).some(function (element) { return element.offsetWidth || element.offsetHeight || element.getClientRects().length; });
534    }
535
536    var selInput = 'input,select,textarea,button';
537    function isInput(element) {
538        return toNodes(element).some(function (element) { return matches(element, selInput); });
539    }
540
541    var selFocusable = selInput + ",a[href],[tabindex]";
542    function isFocusable(element) {
543        return matches(element, selFocusable);
544    }
545
546    function parent(element) {
547        element = toNode(element);
548        return element && isElement(element.parentNode) && element.parentNode;
549    }
550
551    function filter$1(element, selector) {
552        return toNodes(element).filter(function (element) { return matches(element, selector); });
553    }
554
555    var elProto = inBrowser ? Element.prototype : {};
556    var matchesFn = elProto.matches || elProto.webkitMatchesSelector || elProto.msMatchesSelector || noop;
557
558    function matches(element, selector) {
559        return toNodes(element).some(function (element) { return matchesFn.call(element, selector); });
560    }
561
562    var closestFn = elProto.closest || function (selector) {
563        var ancestor = this;
564
565        do {
566
567            if (matches(ancestor, selector)) {
568                return ancestor;
569            }
570
571        } while ((ancestor = parent(ancestor)));
572    };
573
574    function closest(element, selector) {
575
576        if (startsWith(selector, '>')) {
577            selector = selector.slice(1);
578        }
579
580        return isElement(element)
581            ? closestFn.call(element, selector)
582            : toNodes(element).map(function (element) { return closest(element, selector); }
582).filter(Boolean);
583    }
584
585    function within(element, selector) {
586        return !isString(selector)
587            ? element === selector || (isDocument(selector)
588                ? selector.documentElement
589                : toNode(selector)).contains(toNode(element)) // IE 11 document does not implement contains
590            : matches(element, selector) || !!closest(element, selector);
591    }
592
593    function parents(element, selector) {
594        var elements = [];
595
596        while ((element = parent(element))) {
597            if (!selector || matches(element, selector)) {
598                elements.push(element);
599            }
600        }
601
602        return elements;
603    }
604
605    function children(element, selector) {
606        element = toNode(element);
607        var children = element ? toNodes(element.children) : [];
608        return selector ? filter$1(children, selector) : children;
609    }
610
611    function index(element, ref) {
612        return ref
613            ? toNodes(element).indexOf(toNode(ref))
614            : children(parent(element)).indexOf(element);
615    }
616
617    function query(selector, context) {
618        return find(selector, getContext(selector, context));
619    }
620
621    function queryAll(selector, context) {
622        return findAll(selector, getContext(selector, context));
623    }
624
625    function getContext(selector, context) {
626        if ( context === void 0 ) context = document;
627
628        return isString(selector) && isContextSelector(selector) || isDocument(context)
629            ? context
630            : context.ownerDocument;
631    }
632
633    function find(selector, context) {
634        return toNode(_query(selector, context, 'querySelector'));
635    }
636
637    function findAll(selector, context) {
638        return toNodes(_query(selector, context, 'querySelectorAll'));
639    }
640
641    function _query(selector, context, queryFn) {
642        if ( context === void 0 ) context = document;
643
644
645        if (!selector || !isString(selector)) {
646            return selector;
647        }
648
649        selector = selector.replace(contextSanitizeRe, '$1 *');
650
651        if (isContextSelector(selector)) {
652
653            selector = splitSelector(selector).map(function (selector) {
654
655                var ctx = context;
656
657                if (selector[0] === '!') {
658
659                    var selectors = selector.substr(1).trim().split(' ');
660                    ctx = closest(parent(context), selectors[0]);
661                    selector = selectors.slice(1).join(' ').trim();
662
663                }
664
665                if (selector[0] === '-') {
666
667                    var selectors$1 = selector.substr(1).trim().split(' ');
668                    var prev = (ctx || context).previousElementSibling;
669                    ctx = matches(prev, selector.substr(1)) ? prev : null;
670                    selector = selectors$1.slice(1).join(' ');
671
672                }
673
674                if (!ctx) {
675                    return null;
676                }
677
678                return ((domPath(ctx)) + " " + selector);
679
680            }).filter(Boolean).join(',');
681
682            context = document;
683
684        }
685
686        try {
687
688            return context[queryFn](selector);
689
690        } catch (e) {
691
692            return null;
693
694        }
695
696    }
697
698    var contextSelectorRe = /(^|[^\\],)\s*[!>+~-]/;
699    var contextSanitizeRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g;
700
701    var isContextSelector = memoize(function (selector) { return selector.match(contextSelectorRe); });
702
703    var selectorRe = /.*?[^\\](?:,|$)/g;
704
705    var splitSelector = memoize(function (selector) { return selector.match(selectorRe).map(function (selector) { return selector.replace(/,$/, '').trim(); }
706        ); }
707    );
708
709    function domPath(element) {
710        var names = [];
711        while (element.parentNode) {
712            if (element.id) {
713                names.unshift(("#" + (escape(element.id))));
714                break;
715            } else {
716                var tagName = element.tagName;
717                if (tagName !== 'HTML') {
718                    tagName += ":nth-child(" + (index(element) + 1) + ")";
719                }
720                names.unshift(tagName);
721                element = element.parentNode;
722            }
723        }
724        return names.join(' > ');
725    }
726
727    var escapeFn = inBrowser && window.CSS && CSS.escape || function (css) { return css.replace(/([^\x7f-\uFFFF\w-])/g, function (match) { return ("\\" + match); }); };
728    function escape(css) {
729        return isString(css) ? escapeFn.call(null, css) : '';
730    }
731
732    function on() {
733        var args = [], len = arguments.length;
734        while ( len-- ) args[ len ] = arguments[ len ];
735
736
737        var ref = getArgs(args);
738        var targets = ref[0];
739        var type = ref[1];
740        var selector = ref[2];
741        var listener = ref[3];
742        var useCapture = ref[4];
743
744        targets = toEventTargets(targets);
745
746        if (listener.length > 1) {
747            listener = detail(listener);
748        }
749
750        if (useCapture && useCapture.self) {
751            listener = selfFilter(listener);
752        }
753
754        if (selector) {
755            listener = delegate(selector, listener);
756        }
757
758        useCapture = useCaptureFilter(useCapture);
759
760        type.split(' ').forEach(function (type) { return targets.forEac
760h(function (target) { return target.addEventListener(type, listener, useCapture); }
761            ); }
762        );
763        return function () { return off(targets, type, listener, useCapture); };
764    }
765
766    function off(targets, type, listener, useCapture) {
767        if ( useCapture === void 0 ) useCapture = false;
768
769        useCapture = useCaptureFilter(useCapture);
770        targets = toEventTargets(targets);
771        type.split(' ').forEach(function (type) { return targets.forEach(function (target) { return target.removeEventListener(type, listener, useCapture); }
772            ); }
773        );
774    }
775
776    function once() {
777        var args = [], len = arguments.length;
778        while ( len-- ) args[ len ] = arguments[ len ];
779
780
781        var ref = getArgs(args);
782        var element = ref[0];
783        var type = ref[1];
784        var selector = ref[2];
785        var listener = ref[3];
786        var useCapture = ref[4];
787        var condition = ref[5];
788        var off = on(element, type, selector, function (e) {
789            var result = !condition || condition(e);
790            if (result) {
791                off();
792                listener(e, result);
793            }
794        }, useCapture);
795
796        return off;
797    }
798
799    function trigger(targets, event, detail) {
800        return toEventTargets(targets).reduce(function (notCanceled, target) { return notCanceled && target.dispatchEvent(createEvent(event, true, true, detail)); }
801            , true);
802    }
803
804    function createEvent(e, bubbles, cancelable, detail) {
805        if ( bubbles === void 0 ) bubbles = true;
806        if ( cancelable === void 0 ) cancelable = false;
807
808        if (isString(e)) {
809            var event = document.createEvent('CustomEvent'); // IE 11
810            event.initCustomEvent(e, bubbles, cancelable, detail);
811            e = event;
812        }
813
814        return e;
815    }
816
817    function getArgs(args) {
818        if (isFunction(args[2])) {
819            args.splice(2, 0, false);
820        }
821        return args;
822    }
823
824    function delegate(selector, listener) {
825        var this$1$1 = this;
826
827        return function (e) {
828
829            var current = selector[0] === '>'
830                ? findAll(selector, e.currentTarget).reverse().filter(function (element) { return within(e.target, element); })[0]
831                : closest(e.target, selector);
832
833            if (current) {
834                e.current = current;
835                listener.call(this$1$1, e);
836            }
837
838        };
839    }
840
841    function detail(listener) {
842        return function (e) { return isArray(e.detail) ? listener.apply(void 0, [ e ].concat( e.detail )) : listener(e); };
843    }
844
845    function selfFilter(listener) {
846        return function (e) {
847            if (e.target === e.currentTarget || e.target === e.current) {
848                return listener.call(null, e);
849            }
850        };
851    }
852
853    function useCaptureFilter(options) {
854        return options && isIE && !isBoolean(options)
855            ? !!options.capture
856            : options;
857    }
858
859    function isEventTarget(target) {
860        return target && 'addEventListener' in target;
861    }
862
863    function toEventTarget(target) {
864        return isEventTarget(target) ? target : toNode(target);
865    }
866
867    function toEventTargets(target) {
868        return isArray(target)
869            ? target.map(toEventTarget).filter(Boolean)
870            : isString(target)
871                ? findAll(target)
872                : isEventTarget(target)
873                    ? [target]
874                    : toNodes(target);
875    }
876
877    function isTouch(e) {
878        return e.pointerType === 'touch' || !!e.touches;
879    }
880
881    function getEventPos(e) {
882        var touches = e.touches;
883        var changedTouches = e.changedTouches;
884        var ref = touches && touches[0] || changedTouches && changedTouches[0] || e;
885        var x = ref.clientX;
886        var y = ref.clientY;
887
888        return {x: x, y: y};
889    }
890
891    /* global setImmediate */
892
893    var Promise$1 = inBrowser && window.Promise || PromiseFn;
894
895    var Deferred = function() {
896        var this$1$1 = this;
897
898        this.promise = new Promise$1(function (resolve, reject) {
899            this$1$1.reject = reject;
900            this$1$1.resolve = resolve;
901        });
902    };
903
904    /**
905     * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
906     */
907
908    var RESOLVED = 0;
909    var REJECTED = 1;
910    var PENDING = 2;
911
912    var async = inBrowser && window.setImmediate || setTimeout;
913
914    function PromiseFn(executor) {
915
916        this.state = PENDING;
917        this.value = undefined;
918        this.deferred = [];
919
920        var promise = this;
921
922        try {
923            executor(
924                function (x) {
925                    promise.resolve(x);
926                },
927                function (r) {
928                    promise.reject(r);
929                }
930            );
931        } catch (e) {
932            promise.reject(e);
933        }
934    }
935
936    PromiseFn.reject = function (r) {
937        return new PromiseFn(function (resolve, reject) {
938            reject(r);
939        });
940    };
941
942    PromiseFn.resolve = function (x) {
943        return new PromiseFn(function (resolve, reject) {
944            resolve(x);
945        });
946    };
947
948    PromiseFn.all = function all(iterable) {
949        return new PromiseFn(function (resolve, reject) {
950            var result = [];
951            var count = 0;
952
953            if (iterable.length === 0) {
954                resolve(result);
955            }
956
957            function resolver(i) {
958                return function (x) {
959                    result[i] = x;
960                    count += 1;
961
962                    if (count === iterable.length) {
963                        resolve(result);
964                    }
965                };
966            }
967
968            for (var i = 0; i < iterable.length; i += 1) {
969                PromiseFn.resolve(iterable[i]).then(resolver(i), reject);
970            }
971        });
972    };
973
974    PromiseFn.race = function race(iterable) {
975        return new PromiseFn(function (resolve, reject) {
976            for (var i = 0; i < iterable.length; i += 1) {
977                PromiseFn.resolve(iterable[i]).then(resolve, reject);
978            }
979        });
980    };
981
982    var p = PromiseFn.prototype;
983
984    p.resolve = function resolve(x) {
985        var promise = this;
986
987        if (promise.state === PENDING) {
988            if (x === promise) {
989                throw new TypeError('Promise settled with itself.');
990            }
991
992            var called = false;
993
994            try {
995                var then = x && x.then;
996
997                if (x !== null && isObject(x) && isFunction(then)) {
998                    then.call(
999                        x,
1000                        function (x) {
1001                            if (!called) {
1002                                promise.resolve(x);
1003                            }
1004                            called = true;
1005                        },
1006                        function (r) {
1007                            if (!called) {
1008                                promise.reject(r);
1009                            }
1010                            called = true;
1011                        }
1012                    );
1013                    return;
1014                }
1015            } catch (e) {
1016                if (!called) {
1017                    promise.reject(e);
1018                }
1019                return;
1020            }
1021
1022            promise.state = RESOLVED;
1023            promise.value = x;
1024            promise.notify();
1025        }
1026    };
1027
1028    p.reject = function reject(reason) {
1029        var promise = this;
1030
1031        if (promise.state === PENDING) {
1032            if (reason === promise) {
1033                throw new TypeError('Promise settled with itself.');
1034            }
1035
1036            promise.state = REJECTED;
1037            promise.value = reason;
1038            promise.notify();
1039        }
1040    };
1041
1042    p.notify = function notify() {
1043        var this$1$1 = this;
1044
1045        async(function () {
1046            if (this$1$1.state !== PENDING) {
1047                while (this$1$1.deferred.length) {
1048                    var ref = this$1$1.deferred.shift();
1049                    var onResolved = ref[0];
1050                    var onRejected = ref[1];
1051                    var resolve = ref[2];
1052                    var reject = ref[3];
1053
1054                    try {
1055                        if (this$1$1.state === RESOLVED) {
1056                            if (isFunction(onResolved)) {
1057                                resolve(onResolved.call(undefined, this$1$1.value));
1058                            } else {
1059                                resolve(this$1$1.value);
1060                            }
1061                        } else if (this$1$1.state === REJECTED) {
1062                            if (isFunction(onRejected)) {
1063                                resolve(onRejected.call(undefined, this$1$1.value));
1064                            } else {
1065                                reject(this$1$1.value);
1066                            }
1067                        }
1068                    } catch (e) {
1069                        reject(e);
1070                    }
1071                }
1072            }
1073        });
1074    };
1075
1076    p.then = function then(onResolved, onRejected) {
1077        var this$1$1 = this;
1078
1079        return new PromiseFn(function (resolve, reject) {
1080            this$1$1.deferred.push([onResolved, onRejected, resolve, reject]);
1081            this$1$1.notify();
1082        });
1083    };
1084
1085    p.catch = function (onRejected) {
1086        return this.then(undefined, onRejected);
1087    };
1088
1089    function ajax(url, options) {
1090
1091        var env = assign({
1092            data: null,
1093            method: 'GET',
1094            headers: {},
1095            xhr: new XMLHttpRequest(),
1096            beforeSend: noop,
1097            responseType: ''
1098        }, options);
1099
1100        return Promise$1.resolve()
1101            .then(function () { return env.beforeSend(env); })
1102            .then(function () { return send(url, env); });
1103    }
1104
1105    function send(url, env) {
1106        return new Promise$1(function (resolve, reject) {
1107            var xhr = env.xhr;
1108
1109            for (var prop in env) {
1110                if (prop in xhr) {
1111                    try {
1112
1113                        xhr[prop] = env[prop];
1114
1115                    } catch (e) {}
1116                }
1117            }
1118
1119            xhr.open(env.method.toUpperCase(), url);
1120
1121            for (var header in env.headers) {
1122                xhr.setRequestHeader(header, env.headers[header]);
1123            }
1124
1125            on(xhr, 'load', function () {
1126
1127                if (xhr.status === 0 || xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
1128
1129                    // IE 11 does not support responseType 'json'
1130                    if (env.responseType === 'json' && isString(xhr.response)) {
1131                        xhr = assign(copyXhr(xhr), {response: JSON.parse(xhr.response)});
1132                    }
1133
1134                    resolve(xhr);
1135
1136                } else {
1137                    reject(assign(Error(xhr.statusText), {
1138                        xhr: xhr,
1139                        status: xhr.status
1140                    }));
1141                }
1142
1143            });
1144
1145            on(xhr, 'error', function () { return reject(assign(Error('Network Error'), {xhr: xhr})); });
1146            on(xhr, 'timeout', function () { return reject(assign(Error('Network Timeout'), {xhr: xhr})); });
1147
1148            xhr.send(env.data);
1149        });
1150    }
1151
1152    function getImage(src, srcset, sizes) {
1153
1154        return new Promise$1(function (resolve, reject) {
1155            var img = new Image();
1156
1157            img.onerror = function (e) { return reject(e); };
1158            img.onload = function () { return resolve(img); };
1159
1160            sizes && (img.sizes = sizes);
1161            srcset && (img.srcset = srcset);
1162            img.src = src;
1163        });
1164
1165    }
1166
1167    function copyXhr(source) {
1168        var target = {};
1169        for (var key in source) {
1170            target[key] = source[key];
1171        }
1172        return target;
1173    }
1174
1175    function ready(fn) {
1176
1177        if (document.readyState !== 'loading') {
1178            fn();
1179            return;
1180        }
1181
1182        var unbind = on(document, 'DOMContentLoaded', function () {
1183            unbind();
1184            fn();
1185        });
1186    }
1187
1188    function empty(element) {
1189        element = $(element);
1190        element.innerHTML = '';
1191        return element;
1192    }
1193
1194    function html(parent, html) {
1195        parent = $(parent);
1196        return isUndefined(html)
1197            ? parent.innerHTML
1198            : append(parent.hasChildNodes() ? empty(parent) : parent, html);
1199    }
1200
1201    function prepend(parent, element) {
1202
1203        parent = $(parent);
1204
1205        if (!parent.hasChildNodes()) {
1206            return append(parent, element);
1207        } else {
1208            return insertNodes(element, function (element) { return parent.insertBefore(element, parent.firstChild); });
1209        }
1210    }
1211
1212    function append(parent, element) {
1213        parent = $(parent);
1214        return insertNodes(element, function (element) { return parent.appendChild(element); });
1215    }
1216
1217    function before(ref, element) {
1218        ref = $(ref);
1219        return insertNodes(element, function (element) { return ref.parentNode.insertBefore(element, ref); });
1220    }
1221
1222    function after(ref, element) {
1223        ref = $(ref);
1224        return insertNodes(element, function (element) { return ref.nextSibling
1225            ? before(ref.nextSibling, element)
1226            : append(ref.parentNode, element); }
1227        );
1228    }
1229
1230    function insertNodes(element, fn) {
1231        element = isString(element) ? fragment(element) : element;
1232        return element
1233            ? 'length' in element
1234                ? toNodes(element).map(fn)
1235                : fn(element)
1236            : null;
1237    }
1238
1239    function remove$1(element) {
1240        toNodes(element).forEach(function (element) { return element.parentNode && element.parentNode.removeChild(element); });
1241    }
1242
1243    function wrapAll(element, structure) {
1244
1245        structure = toNode(before(element, structure));
1246
1247        while (structure.firstChild) {
1248            structure = structure.firstChild;
1249        }
1250
1251        append(structure, element);
1252
1253        return structure;
1254    }
1255
1256    function wrapInner(element, structure) {
1257        return toNodes(toNodes(element).map(function (element) { return element.hasChildNodes ? wrapAll(toNodes(element.childNodes), structure) : append(element, structure); }
1258        ));
1259    }
1260
1261    function unwrap(element) {
1262        toNodes(element)
1263            .map(parent)
1264            .filter(function (value, index, self) { return self.indexOf(value) === index; })
1265            .forEach(function (parent) {
1266                before(parent, parent.childNodes);
1267                remove$1(parent);
1268            });
1269    }
1270
1271    var fragmentRe = /^\s*<(\w+|!)[^>]*>/;
1272    var singleTagRe = /^<(\w+)\s*\/?>(?:<\/\1>)?$/;
1273
1274    function fragment(html) {
1275
1276        var matches = singleTagRe.exec(html);
1277        if (matches) {
1278            return document.createElement(matches[1]);
1279        }
1280
1281        var container = document.createElement('div');
1282        if (fragmentRe.test(html)) {
1283            container.insertAdjacentHTML('beforeend', html.trim());
1284        } else {
1285            container.textContent = html;
1286        }
1287
1288        return container.childNodes.length > 1 ? toNodes(container.childNodes) : container.firstChild;
1289
1290    }
1291
1292    function apply$1(node, fn) {
1293
1294        if (!isElement(node)) {
1295            return;
1296        }
1297
1298        fn(node);
1299        node = node.firstElementChild;
1300        while (node) {
1301            var next = node.nextElementSibling;
1302            apply$1(node, fn);
1303            node = next;
1304        }
1305    }
1306
1307    function $(selector, context) {
1308        return isHtml(selector)
1309            ? toNode(fragment(selector))
1310            : find(selector, context);
1311    }
1312
1313    function $$(selector, context) {
1314        return isHtml(selector)
1315            ? toNodes(fragment(selector))
1316            : findAll(selector, context);
1317    }
1318
1319    function isHtml(str) {
1320        return isString(str) && (str[0] === '<' || str.match(/^\s*</));
1321    }
1322
1323    function addClass(element) {
1324        var args = [], len = arguments.length - 1;
1325        while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];
1326
1327        apply(element, args, 'add');
1328    }
1329
1330    function removeClass(element) {
1331        var args = [], len = arguments.length - 1;
1332        while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];
1333
1334        apply(element, args, 'remove');
1335    }
1336
1337    function removeClasses(element, cls) {
1338        attr(element, 'class', function (value) { return (value || '').replace(new RegExp(("\\b" + cls + "\\b"), 'g'), ''); });
1339    }
1340
1341    function replaceClass(element) {
1342        var args = [], len = arguments.length - 1;
1343        while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];
1344
1345        args[0] && removeClass(element, args[0]);
1346        args[1] && addClass(element, args[1]);
1347    }
1348
1349    function hasClass(element, cls) {
1350        var assign;
1351
1352        (assign = getClasses(cls), cls = assign[0]);
1353        var nodes = toNodes(element);
1354        for (var n = 0; n < nodes.length; n++) {
1355            if (cls && nodes[n].classList.contains(cls)) {
1356                return true;
1357            }
1358        }
1359        return false;
1360    }
1361
1362    function toggleClass(element, cls, force) {
1363
1364        cls = getClasses(cls);
1365
1366        var nodes = toNodes(element);
1367        for (var n = 0; n < nodes.length; n++) {
1368            var list = nodes[n].classList;
1369            for (var i = 0; i < cls.length; i++) {
1370                if (isUndefined(force)) {
1371                    list.toggle(cls[i]);
1372                } else if (supports.Force) {
1373                    list.toggle(cls[i], !!force);
1374                } else {
1375                    list[force ? 'add' : 'remove'](cls[i]);
1376                }
1377            }
1378        }
1379    }
1380
1381    function apply(element, args, fn) {
1382        var ref;
1383
1384
1385        args = args.reduce(function (args, arg) { return args.concat(getClasses(arg)); }, []);
1386
1387        var nodes = toNodes(element);
1388        var loop = function ( n ) {
1389            if (supports.Multiple) {
1390                (ref = nodes[n].classList)[fn].apply(ref, args);
1391            } else {
1392                args.forEach(function (cls) { return nodes[n].classList[fn](cls); });
1393            }
1394        };
1395
1396        for (var n = 0; n < nodes.length; n++) loop( n );
1397    }
1398
1399    function getClasses(str) {
1400        return String(str).split(/\s|,/).filter(Boolean);
1401    }
1402
1403    // IE 11
1404    var supports = {
1405
1406        get Multiple() {
1407            return this.get('Multiple');
1408        },
1409
1410        get Force() {
1411            return this.get('Force');
1412        },
1413
1414        get: function(key) {
1415
1416            var ref = document.createElement('_');
1417            var classList = ref.classList;
1418            classList.add('a', 'b');
1419            classList.toggle('c', false);
1420            supports = {
1421                Multiple: classList.contains('b'),
1422                Force: !classList.contains('c')
1423            };
1424
1425            return supports[key];
1426        }
1427
1428    };
1429
1430    var cssNumber = {
1431        'animation-iteration-count': true,
1432        'column-count': true,
1433        'fill-opacity': true,
1434        'flex-grow': true,
1435        'flex-shrink': true,
1436        'font-weight': true,
1437        'line-height': true,
1438        'opacity': true,
1439        'order': true,
1440        'orphans': true,
1441        'stroke-dasharray': true,
1442        'stroke-dashoffset': true,
1443        'widows': true,
1444        'z-index': true,
1445        'zoom': true
1446    };
1447
1448    function css(element, property, value, priority) {
1449        if ( priority === void 0 ) priority = '';
1450
1451
1452        return toNodes(element).map(function (element) {
1453
1454            if (isString(property)) {
1455
1456                property = propName(property);
1457
1458                if (isUndefined(value)) {
1459                    return getStyle(element, property);
1460                } else if (!value && !isNumber(value)) {
1461                    element.style.removeProperty(property);
1462                } else {
1463                    element.style.setProperty(property, isNumeric(value) && !cssNumber[property] ? (value + "px") : value, priority);
1464                }
1465
1466            } else if (isArray(property)) {
1467
1468                var styles = getStyles(element);
1469
1470                return property.reduce(function (props, property) {
1471                    props[property] = styles[propName(property)];
1472                    return props;
1473                }, {});
1474
1475            } else if (isObject(property)) {
1476                priority = value;
1477                each(property, function (value, property) { return css(element, property, value, priority); });
1478            }
1479
1480            return element;
1481
1482        })[0];
1483
1484    }
1485
1486    function getStyles(element, pseudoElt) {
1487        return toWindow(element).getComputedStyle(element, pseudoElt);
1488    }
1489
1490    function getStyle(element, property, pseudoElt) {
1491        return getStyles(element, pseudoElt)[property];
1492    }
1493
1494    var parseCssVar = memoize(function (name) {
1495        /* usage in css: .uk-name:before { content:"xyz" } */
1496
1497        var element = append(document.documentElement, fragment('<div>'));
1498
1499        addClass(element, ("uk-" + name));
1500
1501        var value = getStyle(element, 'content', ':before');
1502
1503        remove$1(element);
1504
1505        return value;
1506    });
1507
1508    var propertyRe = /^\s*(["'])?(.*?)\1\s*$/;
1509    function getCssVar(name) {
1510        return (isIE
1511            ? parseCssVar(name)
1512            : getStyles(document.documentElement).getPropertyValue(("--uk-" + name))
1513        ).replace(propertyRe, '$2');
1514    }
1515
1516    // https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty
1517    var propName = memoize(function (name) { return vendorPropName(name); });
1518
1519    var cssPrefixes = ['webkit', 'moz', 'ms'];
1520
1521    function vendorPropName(name) {
1522
1523        name = hyphenate(name);
1524
1525        var ref = document.documentElement;
1526        var style = ref.style;
1527
1528        if (name in style) {
1529            return name;
1530        }
1531
1532        var i = cssPrefixes.length, prefixedName;
1533
1534        while (i--) {
1535            prefixedName = "-" + (cssPrefixes[i]) + "-" + name;
1536            if (prefixedName in style) {
1537                return prefixedName;
1538            }
1539        }
1540    }
1541
1542    function transition(element, props, duration, timing) {
1543        if ( duration === void 0 ) duration = 400;
1544        if ( timing === void 0 ) timing = 'linear';
1545
1546
1547        return Promise$1.all(toNodes(element).map(function (element) { return new Promise$1(function (resolve, reject) {
1548
1549                for (var name in props) {
1550                    var value = css(element, name);
1551                    if (value === '') {
1552                        css(element, name, value);
1553                    }
1554                }
1555
1556                var timer = setTimeout(function () { return trigger(element, 'transitionend'); }, duration);
1557
1558                once(element, 'transitionend transitioncanceled', function (ref) {
1559                    var type = ref.type;
1560
1561                    clearTimeout(timer);
1562                    removeClass(element, 'uk-transition');
1563                    css(element, {
1564                        transitionProperty: '',
1565                        transitionDuration: '',
1566                        transitionTimingFunction: ''
1567                    });
1568                    type === 'transitioncanceled' ? reject() : resolve(element);
1569                }, {self: true});
1570
1571                addClass(element, 'uk-transition');
1572                css(element, assign({
1573                    transitionProperty: Object.keys(props).map(propName).join(','),
1574                    transitionDuration: (duration + "ms"),
1575                    transitionTimingFunction: timing
1576                }, props));
1577
1578            }); }
1579        ));
1580
1581    }
1582
1583    var Transition = {
1584
1585        start: transition,
1586
1587        stop: function(element) {
1588            trigger(element, 'transitionend');
1589            return Promise$1.resolve();
1590        },
1591
1592        cancel: function(element) {
1593            trigger(element, 'transitioncanceled');
1594        },
1595
1596        inProgress: function(element) {
1597            return hasClass(element, 'uk-transition');
1598        }
1599
1600    };
1601
1602    var animationPrefix = 'uk-animation-';
1603
1604    function animate$1(element, animation, duration, origin, out) {
1605        if ( duration === void 0 ) duration = 200;
1606
1607
1608        return Promise$1.all(toNodes(element).map(function (element) { return new Promise$1(function (resolve, reject) {
1609
1610                trigger(element, 'animationcanceled');
1611                var timer = setTimeout(function () { return trigger(element, 'animationend'); }, duration);
1612
1613                once(element, 'animationend animationcanceled', function (ref) {
1614                    var type = ref.type;
1615
1616
1617                    clearTimeout(timer);
1618
1619                    type === 'animationcanceled' ? reject() : resolve(element);
1620
1621                    css(element, 'animationDuration', '');
1622                    removeClasses(element, (animationPrefix + "\\S*"));
1623
1624                }, {self: true});
1625
1626                css(element, 'animationDuration', (duration + "ms"));
1627                addClass(element, animation, animationPrefix + (out ? 'leave' : 'enter'));
1628
1629                if (startsWith(animation, animationPrefix)) {
1630                    origin && addClass(element, ("uk-transform-origin-" + origin));
1631                    out && addClass(element, (animationPrefix + "reverse"));
1632                }
1633
1634            }); }
1635        ));
1636
1637    }
1638
1639    var inProgress = new RegExp((animationPrefix + "(enter|leave)"));
1640    var Animation = {
1641
1642        in: animate$1,
1643
1644        out: function(element, animation, duration, origin) {
1645            return animate$1(element, animation, duration, origin, true);
1646        },
1647
1648        inProgress: function(element) {
1649            return inProgress.test(attr(element, 'class'));
1650        },
1651
1652        cancel: function(element) {
1653            trigger(element, 'animationcanceled');
1654        }
1655
1656    };
1657
1658    var dirs$1 = {
1659        width: ['left', 'right'],
1660        height: ['top', 'bottom']
1661    };
1662
1663    function dimensions(element) {
1664
1665        var rect = isElement(element)
1666            ? toNode(element).getBoundingClientRect()
1667            : {height: height(element), width: width(element), top: 0, left: 0};
1668
1669        return {
1670            height: rect.height,
1671            width: rect.width,
1672            top: rect.top,
1673            left: rect.left,
1674            bottom: rect.top + rect.height,
1675            right: rect.left + rect.width
1676        };
1677    }
1678
1679    function offset(element, coordinates) {
1680
1681        var currentOffset = dimensions(element);
1682
1683        if (element) {
1684            var ref = toWindow(element);
1685            var pageYOffset = ref.pageYOffset;
1686            var pageXOffset = ref.pageXOffset;
1687            var offsetBy = {height: pageYOffset, width: pageXOffset};
1688
1689            for (var dir in dirs$1) {
1690                for (var i in dirs$1[dir]) {
1691                    currentOffset[dirs$1[dir][i]] += offsetBy[dir];
1692                }
1693            }
1694        }
1695
1696        if (!coordinates) {
1697            return currentOffset;
1698        }
1699
1700        var pos = css(element, 'position');
1701
1702        each(css(element, ['left', 'top']), function (value, prop) { return css(element, prop, coordinates[prop]
1703                - currentOffset[prop]
1704                + toFloat(pos === 'absolute' && value === 'auto'
1705                    ? position(element)[prop]
1706                    : value)
1707            ); }
1708        );
1709    }
1710
1711    function position(element) {
1712
1713        var ref = offset(element);
1714        var top = ref.top;
1715        var left = ref.left;
1716
1717        var ref$1 = toNode(element);
1718        var ref$1_ownerDocument = ref$1.ownerDocument;
1719        var body = ref$1_ownerDocument.body;
1720        var documentElement = ref$1_ownerDocument.documentElement;
1721        var offsetParent = ref$1.offsetParent;
1722        var parent = offsetParent || documentElement;
1723
1724        while (parent && (parent === body || parent === documentElement) && css(parent, 'position') === 'static') {
1725            parent = parent.parentNode;
1726        }
1727
1728        if (isElement(parent)) {
1729            var parentOffset = offset(parent);
1730            top -= parentOffset.top + toFloat(css(parent, 'borderTopWidth'));
1731            left -= parentOffset.left + toFloat(css(parent, 'borderLeftWidth'));
1732        }
1733
1734        return {
1735            top: top - toFloat(css(element, 'marginTop')),
1736            left: left - toFloat(css(element, 'marginLeft'))
1737        };
1738    }
1739
1740    function offsetPosition(element) {
1741        var offset = [0, 0];
1742
1743        element = toNode(element);
1744
1745        do {
1746
1747            offset[0] += element.offsetTop;
1748            offset[1] += element.offsetLeft;
1749
1750            if (css(element, 'position') === 'fixed') {
1751                var win = toWindow(element);
1752                offset[0] += win.pageYOffset;
1753                offset[1] += win.pageXOffset;
1754                return offset;
1755            }
1756
1757        } while ((element = element.offsetParent));
1758
1759        return offset;
1760    }
1761
1762    var height = dimension('height');
1763    var width = dimension('width');
1764
1765    function dimension(prop) {
1766        var propName = ucfirst(prop);
1767        return function (element, value) {
1768
1769            if (isUndefined(value)) {
1770
1771                if (isWindow(element)) {
1772                    return element[("inner" + propName)];
1773                }
1774
1775                if (isDocument(element)) {
1776                    var doc = element.documentElement;
1777                    return Math.max(doc[("offset" + propName)], doc[("scroll" + propName)]);
1778                }
1779
1780                element = toNode(element);
1781
1782                value = css(element, prop);
1783                value = value === 'auto' ? element[("offset" + propName)] : toFloat(value) || 0;
1784
1785                return value - boxModelAdjust(element, prop);
1786
1787            } else {
1788
1789                return css(element, prop, !value && value !== 0
1790                    ? ''
1791                    : +value + boxModelAdjust(element, prop) + 'px'
1792                );
1793
1794            }
1795
1796        };
1797    }
1798
1799    function boxModelAdjust(element, prop, sizing) {
1800        if ( sizing === void 0 ) sizing = 'border-box';
1801
1802        return css(element, 'boxSizing') === sizing
1803            ? dirs$1[prop].map(ucfirst).reduce(function (value, prop) { return value
1804                + toFloat(css(element, ("padding" + prop)))
1805                + toFloat(css(element, ("border" + prop + "Width"))); }
1806                , 0)
1807            : 0;
1808    }
1809
1810    function flipPosition(pos) {
1811        for (var dir in dirs$1) {
1812            for (var i in dirs$1[dir]) {
1813                if (dirs$1[dir][i] === pos) {
1814                    return dirs$1[dir][1 - i];
1815                }
1816            }
1817        }
1818        return pos;
1819    }
1820
1821    function toPx(value, property, element) {
1822        if ( property === void 0 ) property = 'width';
1823        if ( element === void 0 ) element = window;
1824
1825        return isNumeric(value)
1826            ? +value
1827            : endsWith(value, 'vh')
1828                ? percent(height(toWindow(element)), value)
1829                : endsWith(value, 'vw')
1830                    ? percent(width(toWindow(element)), value)
1831                    : endsWith(value, '%')
1832                        ? percent(dimensions(element)[property], value)
1833                        : toFloat(value);
1834    }
1835
1836    function percent(base, value) {
1837        return base * toFloat(value) / 100;
1838    }
1839
1840    /*
1841        Based on:
1842        Copyright (c) 2016 Wilson Page [email protected]
1843        https://github.com/wilsonpage/fastdom
1844    */
1845
1846    var fastdom = {
1847
1848        reads: [],
1849        writes: [],
1850
1851        read: function(task) {
1852            this.reads.push(task);
1853            scheduleFlush();
1854            return task;
1855        },
1856
1857        write: function(task) {
1858            this.writes.push(task);
1859            scheduleFlush();
1860            return task;
1861        },
1862
1863        clear: function(task) {
1864            remove(this.reads, task);
1865            remove(this.writes, task);
1866        },
1867
1868        flush: flush
1869
1870    };
1871
1872    function flush(recursion) {
1873        if ( recursion === void 0 ) recursion = 1;
1874
1875        runTasks(fastdom.reads);
1876        runTasks(fastdom.writes.splice(0));
1877
1878        fastdom.scheduled = false;
1879
1880        if (fastdom.reads.length || fastdom.writes.length) {
1881            scheduleFlush(recursion + 1);
1882        }
1883    }
1884
1885    var RECURSION_LIMIT = 4;
1886    function scheduleFlush(recursion) {
1887
1888        if (fastdom.scheduled) {
1889            return;
1890        }
1891
1892        fastdom.scheduled = true;
1893        if (recursion && recursion < RECURSION_LIMIT) {
1894            Promise$1.resolve().then(function () { return flush(recursion); });
1895        } else {
1896            requestAnimationFrame(function () { return flush(); });
1897        }
1898
1899    }
1900
1901    function runTasks(tasks) {
1902        var task;
1903        while ((task = tasks.shift())) {
1904            try {
1905                task();
1906            } catch (e) {
1907                console.error(e);
1908            }
1909        }
1910    }
1911
1912    function remove(array, item) {
1913        var index = array.indexOf(item);
1914        return ~index && array.splice(index, 1);
1915    }
1916
1917    function MouseTracker() {}
1918
1919    MouseTracker.prototype = {
1920
1921        positions: [],
1922
1923        init: function() {
1924            var this$1$1 = this;
1925
1926
1927            this.positions = [];
1928
1929            var position;
1930            this.unbind = on(document, 'mousemove', function (e) { return position = getEventPos(e); });
1931            this.interval = setInterval(function () {
1932
1933                if (!position) {
1934                    return;
1935                }
1936
1937                this$1$1.positions.push(position);
1938
1939                if (this$1$1.positions.length > 5) {
1940                    this$1$1.positions.shift();
1941                }
1942            }, 50);
1943
1944        },
1945
1946        cancel: function() {
1947            this.unbind && this.unbind();
1948            this.interval && clearInterval(this.interval);
1949        },
1950
1951        movesTo: function(target) {
1952
1953            if (this.positions.length < 2) {
1954                return false;
1955            }
1956
1957            var p = target.getBoundingClientRect();
1958            var left = p.left;
1959            var right = p.right;
1960            var top = p.top;
1961            var bottom = p.bottom;
1962
1963            var ref = this.positions;
1964            var prevPosition = ref[0];
1965            var position = last(this.positions);
1966            var path = [prevPosition, position];
1967
1968            if (pointInRect(position, p)) {
1969                return false;
1970            }
1971
1972            var diagonals = [[{x: left, y: top}, {x: right, y: bottom}], [{x: left, y: bottom}, {x: right, y: top}]];
1973
1974            return diagonals.some(function (diagonal) {
1975                var intersection = intersect(path, diagonal);
1976                return intersection && pointInRect(intersection, p);
1977            });
1978        }
1979
1980    };
1981
1982    // Inspired by http://paulbourke.net/geometry/pointlineplane/
1983    function intersect(ref, ref$1) {
1984        var ref_0 = ref[0];
1985        var x1 = ref_0.x;
1986        var y1 = ref_0.y;
1987        var ref_1 = ref[1];
1988        var x2 = ref_1.x;
1989        var y2 = ref_1.y;
1990        var ref$1_0 = ref$1[0];
1991        var x3 = ref$1_0.x;
1992        var y3 = ref$1_0.y;
1993        var ref$1_1 = ref$1[1];
1994        var x4 = ref$1_1.x;
1995        var y4 = ref$1_1.y;
1996
1997
1998        var denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);
1999
2000        // Lines are parallel
2001        if (denominator === 0) {
2002            return false;
2003        }
2004
2005        var ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;
2006
2007        if (ua < 0) {
2008            return false;
2009        }
2010
2011        // Return an object with the x and y coordinates of the intersection
2012        return {x: x1 + ua * (x2 - x1), y: y1 + ua * (y2 - y1)};
2013    }
2014
2015    var strats = {};
2016
2017    strats.events =
2018    strats.created =
2019    strats.beforeConnect =
2020    strats.connected =
2021    strats.beforeDisconnect =
2022    strats.disconnected =
2023    strats.destroy = concatStrat;
2024
2025    // args strategy
2026    strats.args = function (parentVal, childVal) {
2027        return childVal !== false && concatStrat(childVal || parentVal);
2028    };
2029
2030    // update strategy
2031    strats.update = function (parentVal, childVal) {
2032        return sortBy$1(concatStrat(parentVal, isFunction(childVal) ? {read: childVal} : childVal), 'order');
2033    };
2034
2035    // property strategy
2036    strats.props = function (parentVal, childVal) {
2037
2038        if (isArray(childVal)) {
2039            childVal = childVal.reduce(function (value, key) {
2040                value[key] = String;
2041                return value;
2042            }, {});
2043        }
2044
2045        return strats.methods(parentVal, childVal);
2046    };
2047
2048    // extend strategy
2049    strats.computed =
2050    strats.methods = function (parentVal, childVal) {
2051        return childVal
2052            ? parentVal
2053                ? assign({}, parentVal, childVal)
2054                : childVal
2055            : parentVal;
2056    };
2057
2058    // data strategy
2059    strats.data = function (parentVal, childVal, vm) {
2060
2061        if (!vm) {
2062
2063            if (!childVal) {
2064                return parentVal;
2065            }
2066
2067            if (!parentVal) {
2068                return childVal;
2069            }
2070
2071            return function (vm) {
2072                return mergeFnData(parentVal, childVal, vm);
2073            };
2074
2075        }
2076
2077        return mergeFnData(parentVal, childVal, vm);
2078    };
2079
2080    function mergeFnData(parentVal, childVal, vm) {
2081        return strats.computed(
2082            isFunction(parentVal)
2083                ? parentVal.call(vm, vm)
2084                : parentVal,
2085            isFunction(childVal)
2086                ? childVal.call(vm, vm)
2087                : childVal
2088        );
2089    }
2090
2091    // concat strategy
2092    function concatStrat(parentVal, childVal) {
2093
2094        parentVal = parentVal && !isArray(parentVal) ? [parentVal] : parentVal;
2095
2096        return childVal
2097            ? parentVal
2098                ? parentVal.concat(childVal)
2099                : isArray(childVal)
2100                    ? childVal
2101                    : [childVal]
2102            : parentVal;
2103    }
2104
2105    // default strategy
2106    function defaultStrat(parentVal, childVal) {
2107        return isUndefined(childVal) ? parentVal : childVal;
2108    }
2109
2110    function mergeOptions(parent, child, vm) {
2111
2112        var options = {};
2113
2114        if (isFunction(child)) {
2115            child = child.options;
2116        }
2117
2118        if (child.extends) {
2119            parent = mergeOptions(parent, child.extends, vm);
2120        }
2121
2122        if (child.mixins) {
2123            for (var i = 0, l = child.mixins.length; i < l; i++) {
2124                parent = mergeOptions(parent, child.mixins[i], vm);
2125            }
2126        }
2127
2128        for (var key in parent) {
2129            mergeKey(key);
2130        }
2131
2132        for (var key$1 in child) {
2133            if (!hasOwn(parent, key$1)) {
2134                mergeKey(key$1);
2135            }
2136        }
2137
2138        function mergeKey(key) {
2139            options[key] = (strats[key] || defaultStrat)(parent[key], child[key], vm);
2140        }
2141
2142        return options;
2143    }
2144
2145    function parseOptions(options, args) {
2146        var obj;
2147
2148        if ( args === void 0 ) args = [];
2149
2150        try {
2151
2152            return !options
2153                ? {}
2154                : startsWith(options, '{')
2155                    ? JSON.parse(options)
2156                    : args.length && !includes(options, ':')
2157                        ? (( obj = {}, obj[args[0]] = options, obj ))
2158                        : options.split(';').reduce(function (options, option) {
2159                            var ref = option.split(/:(.*)/);
2160                            var key = ref[0];
2161                            var value = ref[1];
2162                            if (key && !isUndefined(value)) {
2163                                options[key.trim()] = value.trim();
2164                            }
2165                            return options;
2166                        }, {});
2167
2168        } catch (e) {
2169            return {};
2170        }
2171
2172    }
2173
2174    function play(el) {
2175
2176        if (isIFrame(el)) {
2177            call(el, {func: 'playVideo', method: 'play'});
2178        }
2179
2180        if (isHTML5(el)) {
2181            try {
2182                el.play().catch(noop);
2183            } catch (e) {}
2184        }
2185
2186    }
2187
2188    function pause(el) {
2189
2190        if (isIFrame(el)) {
2191            call(el, {func: 'pauseVideo', method: 'pause'});
2192        }
2193
2194        if (isHTML5(el)) {
2195            el.pause();
2196        }
2197
2198    }
2199
2200    function mute(el) {
2201
2202        if (isIFrame(el)) {
2203            call(el, {func: 'mute', method: 'setVolume', value: 0});
2204        }
2205
2206        if (isHTML5(el)) {
2207            el.muted = true;
2208        }
2209
2210    }
2211
2212    function isVideo(el) {
2213        return isHTML5(el) || isIFrame(el);
2214    }
2215
2216    function isHTML5(el) {
2217        return el && el.tagName === 'VIDEO';
2218    }
2219
2220    function isIFrame(el) {
2221        return el && el.tagName === 'IFRAME' && (isYoutube(el) || isVimeo(el));
2222    }
2223
2224    function isYoutube(el) {
2225        return !!el.src.match(/\/\/.*?youtube(-nocookie)?\.[a-z]+\/(watch\?v=[^&\s]+|embed)|youtu\.be\/.*/);
2226    }
2227
2228    function isVimeo(el) {
2229        return !!el.src.match(/vimeo\.com\/video\/.*/);
2230    }
2231
2232    function call(el, cmd) {
2233        enableApi(el).then(function () { return post(el, cmd); });
2234    }
2235
2236    function post(el, cmd) {
2237        try {
2238            el.contentWindow.postMessage(JSON.stringify(assign({event: 'command'}, cmd)), '*');
2239        } catch (e) {}
2240    }
2241
2242    var stateKey$1 = '_ukPlayer';
2243    var counter = 0;
2244    function enableApi(el) {
2245
2246        if (el[stateKey$1]) {
2247            return el[stateKey$1];
2248        }
2249
2250        var youtube = isYoutube(el);
2251        var vimeo = isVimeo(el);
2252
2253        var id = ++counter;
2254        var poller;
2255
2256        return el[stateKey$1] = new Promise$1(function (resolve) {
2257
2258            youtube && once(el, 'load', function () {
2259                var listener = function () { return post(el, {event: 'listening', id: id}); };
2260                poller = setInterval(listener, 100);
2261                listener();
2262            });
2263
2264            once(window, 'message', resolve, false, function (ref) {
2265                var data = ref.data;
2266
2267
2268                try {
2269                    data = JSON.parse(data);
2270                    return data && (youtube && data.id === id && data.event === 'onReady' || vimeo && Number(data.player_id) === id);
2271                } catch (e) {}
2272
2273            });
2274
2275            el.src = "" + (el.src) + (includes(el.src, '?') ? '&' : '?') + (youtube ? 'enablejsapi=1' : ("api=1&player_id=" + id));
2276
2277        }).then(function () { return clearInterval(poller); });
2278    }
2279
2280    function isInView(element, offsetTop, offsetLeft) {
2281        if ( offsetTop === void 0 ) offsetTop = 0;
2282        if ( offsetLeft === void 0 ) offsetLeft = 0;
2283
2284
2285        if (!isVisible(element)) {
2286            return false;
2287        }
2288
2289        return intersectRect.apply(void 0, scrollParents(element).map(function (parent) {
2290
2291            var ref = offset(getViewport$1(parent));
2292            var top = ref.top;
2293            var left = ref.left;
2294            var bottom = ref.bottom;
2295            var right = ref.right;
2296
2297            return {
2298                top: top - offsetTop,
2299                left: left - offsetLeft,
2300                bottom: bottom + offsetTop,
2301                right: right + offsetLeft
2302            };
2303        }).concat(offset(element)));
2304    }
2305
2306    function scrollTop(element, top) {
2307
2308        if (isWindow(element) || isDocument(element)) {
2309            element = getScrollingElement(element);
2310        } else {
2311            element = toNode(element);
2312        }
2313
2314        element.scrollTop = top;
2315    }
2316
2317    function scrollIntoView(element, ref) {
2318        if ( ref === void 0 ) ref = {};
2319        var offsetBy = ref.offset; if ( offsetBy === void 0 ) offsetBy = 0;
2320
2321
2322        var parents = isVisible(element) ? scrollParents(element) : [];
2323        return parents.reduce(function (fn, scrollElement, i) {
2324
2325            var scrollTop = scrollElement.scrollTop;
2326            var scrollHeight = scrollElement.scrollHeight;
2327            var offsetHeight = scrollElement.offsetHeight;
2328            var maxScroll = scrollHeight - getViewportClientHeight(scrollElement);
2329            var ref = offset(parents[i - 1] || element);
2330            var elHeight = ref.height;
2331            var elTop = ref.top;
2332
2333            var top = Math.ceil(
2334                elTop
2335                - offset(getViewport$1(scrollElement)).top
2336                - offsetBy
2337                + scrollTop
2338            );
2339
2340            if (offsetBy > 0 && offsetHeight < elHeight + offsetBy) {
2341                top += offsetBy;
2342            } else {
2343                offsetBy = 0;
2344            }
2345
2346            if (top > maxScroll) {
2347                offsetBy -= top - maxScroll;
2348                top = maxScroll;
2349            } else if (top < 0) {
2350                offsetBy -= top;
2351                top = 0;
2352            }
2353
2354            return function () { return scrollTo(scrollElement, top - scrollTop).then(fn); };
2355
2356        }, function () { return Promise$1.resolve(); })();
2357
2358        function scrollTo(element, top) {
2359            return new Promise$1(function (resolve) {
2360
2361                var scroll = element.scrollTop;
2362                var duration = getDuration(Math.abs(top));
2363                var start = Date.now();
2364
2365                (function step() {
2366
2367                    var percent = ease(clamp((Date.now() - start) / duration));
2368
2369                    scrollTop(element, scroll + top * percent);
2370
2371                    // scroll more if we have not reached our destination
2372                    if (percent !== 1) {
2373                        requestAnimationFrame(step);
2374                    } else {
2375                        resolve();
2376                    }
2377
2378                })();
2379            });
2380        }
2381
2382        function getDuration(dist) {
2383            return 40 * Math.pow(dist, .375);
2384        }
2385
2386        function ease(k) {
2387            return 0.5 * (1 - Math.cos(Math.PI * k));
2388        }
2389
2390    }
2391
2392    function scrolledOver(element, heightOffset) {
2393        if ( heightOffset === void 0 ) heightOffset = 0;
2394
2395
2396        if (!isVisible(element)) {
2397            return 0;
2398        }
2399
2400        var ref = scrollParents(element, /auto|scroll/, true);
2401        var scrollElement = ref[0];
2402        var scrollHeight = scrollElement.scrollHeight;
2403        var scrollTop = scrollElement.scrollTop;
2404        var clientHeight = getViewportClientHeight(scrollElement);
2405        var viewportTop = offsetPosition(element)[0] - scrollTop - offsetPosition(scrollElement)[0];
2406        var viewportDist = Math.min(clientHeight, viewportTop + scrollTop);
2407
2408        var top = viewportTop - viewportDist;
2409        var dist = Math.min(
2410            element.offsetHeight + heightOffset + viewportDist,
2411            scrollHeight - (viewportTop + scrollTop),
2412            scrollHeight - clientHeight
2413        );
2414
2415        return clamp(-1 * top / dist);
2416    }
2417
2418    function scrollParents(element, overflowRe, scrollable) {
2419        if ( overflowRe === void 0 ) overflowRe = /auto|scroll|hidden/;
2420        if ( scrollable === void 0 ) scrollable = false;
2421
2422        var scrollEl = getScrollingElement(element);
2423
2424        var ancestors = parents(element).reverse();
2425        ancestors = ancestors.slice(ancestors.indexOf(scrollEl) + 1);
2426
2427        var fixedIndex = findIndex(ancestors, function (el) { return css(el, 'position') === 'fixed'; });
2428        if (~fixedIndex) {
2429            ancestors = ancestors.slice(fixedIndex);
2430        }
2431
2432        return [scrollEl].concat(ancestors.filter(function (parent) { return overflowRe.test(css(parent, 'overflow')) && (!scrollable || parent.scrollHeight > getViewportClientHeight(parent)); })
2433        ).reverse();
2434    }
2435
2436    function getViewport$1(scrollElement) {
2437        return scrollElement === getScrollingElement(scrollElement) ? window : scrollElement;
2438    }
2439
2440    // iOS 12 returns <body> as scrollingElement
2441    function getViewportClientHeight(scrollElement) {
2442        return (scrollElement === getScrollingElement(scrollElement) ? document.documentElement : scrollElement).clientHeight;
2443    }
2444
2445    function getScrollingElement(element) {
2446        var ref = toWindow(element);
2447        var document = ref.document;
2448        return document.scrollingElement || document.documentElement;
2449    }
2450
2451    var dirs = {
2452        width: ['x', 'left', 'right'],
2453        height: ['y', 'top', 'bottom']
2454    };
2455
2456    function positionAt(element, target, elAttach, targetAttach, elOffset, targetOffset, flip, boundary) {
2457
2458        elAttach = getPos(elAttach);
2459        targetAttach = getPos(targetAttach);
2460
2461        var flipped = {element: elAttach, target: targetAttach};
2462
2463        if (!element || !target) {
2464            return flipped;
2465        }
2466
2467        var dim = offset(element);
2468        var targetDim = offset(target);
2469        var position = targetDim;
2470
2471        moveTo(position, elAttach, dim, -1);
2472        moveTo(position, targetAttach, targetDim, 1);
2473
2474        elOffset = getOffsets(elOffset, dim.width, dim.height);
2475        targetOffset = getOffsets(targetOffset, targetDim.width, targetDim.height);
2476
2477        elOffset['x'] += targetOffset['x'];
2478        elOffset['y'] += targetOffset['y'];
2479
2480        position.left += elOffset['x'];
2481        position.top += elOffset['y'];
2482
2483        if (flip) {
2484
2485            var boundaries = scrollParents(element).map(getViewport$1);
2486
2487            if (boundary && !includes(boundaries, boundary)) {
2488                boundaries.unshift(boundary);
2489            }
2490
2491            boundaries = boundaries.map(function (el) { return offset(el); });
2492
2493            each(dirs, function (ref, prop) {
2494                var dir = ref[0];
2495                var align = ref[1];
2496                var alignFlip = ref[2];
2497
2498
2499                if (!(flip === true || includes(flip, dir))) {
2500                    return;
2501                }
2502
2503                boundaries.some(function (boundary) {
2504
2505                    var elemOffset = elAttach[dir] === align
2506                        ? -dim[prop]
2507                        : elAttach[dir] === alignFlip
2508                            ? dim[prop]
2509                            : 0;
2510
2511                    var targetOffset = targetAttach[dir] === align
2512                        ? targetDim[prop]
2513                        : targetAttach[dir] === alignFlip
2514                            ? -targetDim[prop]
2515                            : 0;
2516
2517                    if (position[align] < boundary[align] || position[align] + dim[prop] > boundary[alignFlip]) {
2518
2519                        var centerOffset = dim[prop] / 2;
2520                        var centerTargetOffset = targetAttach[dir] === 'center' ? -targetDim[prop] / 2 : 0;
2521
2522                        return elAttach[dir] === 'center' && (
2523                            apply(centerOffset, centerTargetOffset)
2524                            || apply(-centerOffset, -centerTargetOffset)
2525                        ) || apply(elemOffset, targetOffset);
2526
2527                    }
2528
2529                    function apply(elemOffset, targetOffset) {
2530
2531                        var newVal = toFloat((position[align] + elemOffset + targetOffset - elOffset[dir] * 2).toFixed(4));
2532
2533                        if (newVal >= boundary[align] && newVal + dim[prop] <= boundary[alignFlip]) {
2534                            position[align] = newVal;
2535
2536                            ['element', 'target'].forEach(function (el) {
2537                                flipped[el][dir] = !elemOffset
2538                                    ? flipped[el][dir]
2539                                    : flipped[el][dir] === dirs[prop][1]
2540                                        ? dirs[prop][2]
2541                                        : dirs[prop][1];
2542                            });
2543
2544                            return true;
2545                        }
2546
2547                    }
2548
2549                });
2550
2551            });
2552        }
2553
2554        offset(element, position);
2555
2556        return flipped;
2557    }
2558
2559    function moveTo(position, attach, dim, factor) {
2560        each(dirs, function (ref, prop) {
2561            var dir = ref[0];
2562            var align = ref[1];
2563            var alignFlip = ref[2];
2564
2565            if (attach[dir] === alignFlip) {
2566                position[align] += dim[prop] * factor;
2567            } else if (attach[dir] === 'center') {
2568                position[align] += dim[prop] * factor / 2;
2569            }
2570        });
2571    }
2572
2573    function getPos(pos) {
2574
2575        var x = /left|center|right/;
2576        var y = /top|center|bottom/;
2577
2578        pos = (pos || '').split(' ');
2579
2580        if (pos.length === 1) {
2581            pos = x.test(pos[0])
2582                ? pos.concat('center')
2583                : y.test(pos[0])
2584                    ? ['center'].concat(pos)
2585                    : ['center', 'center'];
2586        }
2587
2588        return {
2589            x: x.test(pos[0]) ? pos[0] : 'center',
2590            y: y.test(pos[1]) ? pos[1] : 'center'
2591        };
2592    }
2593
2594    function getOffsets(offsets, width, height) {
2595
2596        var ref = (offsets || '').split(' ');
2597        var x = ref[0];
2598        var y = ref[1];
2599
2600        return {
2601            x: x ? toFloat(x) * (endsWith(x, '%') ? width / 100 : 1) : 0,
2602            y: y ? toFloat(y) * (endsWith(y, '%') ? height / 100 : 1) : 0
2603        };
2604    }
2605
2606    var util = /*#__PURE__*/Object.freeze({
2607        __proto__: null,
2608        ajax: ajax,
2609        getImage: getImage,
2610        transition: transition,
2611        Transition: Transition,
2612        animate: animate$1,
2613        Animation: Animation,
2614        attr: attr,
2615        hasAttr: hasAttr,
2616        removeAttr: removeAttr,
2617        data: data,
2618        addClass: addClass,
2619        removeClass: removeClass,
2620        removeClasses: removeClasses,
2621        replaceClass: replaceClass,
2622        hasClass: hasClass,
2623        toggleClass: toggleClass,
2624        dimensions: dimensions,
2625        offset: offset,
2626        position: position,
2627        offsetPosition: offsetPosition,
2628        height: height,
2629        width: width,
2630        boxModelAdjust: boxModelAdjust,
2631        flipPosition: flipPosition,
2632        toPx: toPx,
2633        ready: ready,
2634        empty: empty,
2635        html: html,
2636        prepend: prepend,
2637        append: append,
2638        before: before,
2639        after: after,
2640        remove: remove$1,
2641        wrapAll: wrapAll,
2642        wrapInner: wrapInner,
2643        unwrap: unwrap,
2644        fragment: fragment,
2645        apply: apply$1,
2646        $: $,
2647        $$: $$,
2648        inBrowser: inBrowser,
2649        isIE: isIE,
2650        isRtl: isRtl,
2651        hasTouch: hasTouch,
2652        pointerDown: pointerDown,
2653        pointerMove: pointerMove,
2654        pointerUp: pointerUp,
2655        pointerEnter: pointerEnter,
2656        pointerLeave: pointerLeave,
2657        pointerCancel: pointerCancel,
2658        on: on,
2659        off: off,
2660        once: once,
2661        trigger: trigger,
2662        createEvent: createEvent,
2663        toEventTargets: toEventTargets,
2664        isTouch: isTouch,
2665        getEventPos: getEventPos,
2666        fastdom: fastdom,
2667        isVoidElement: isVoidElement,
2668        isVisible: isVisible,
2669        selInput: selInput,
2670        isInput: isInput,
2671        selFocusable: selFocusable,
2672        isFocusable: isFocusable,
2673        parent: parent,
2674        filter: filter$1,
2675        matches: matches,
2676        closest: closest,
2677        within: within,
2678        parents: parents,
2679        children: children,
2680        index: index,
2681        hasOwn: hasOwn,
2682        hyphenate: hyphenate,
2683        camelize: camelize,
2684        ucfirst: ucfirst,
2685        startsWith: startsWith,
2686        endsWith: endsWith,
2687        includes: includes,
2688        findIndex: findIndex,
2689        isArray: isArray,
2690        isFunction: isFunction,
2691        isObject: isObject,
2692        isPlainObject: isPlainObject,
2693        isWindow: isWindow,
2694        isDocument: isDocument,
2695        isNode: isNode,
2696        isElement: isElement,
2697        isBoolean: isBoolean,
2698        isString: isString,
2699        isNumber: isNumber,
2700        isNumeric: isNumeric,
2701        isEmpty: isEmpty,
2702        isUndefined: isUndefined,
2703        toBoolean: toBoolean,
2704        toNumber: toNumber,
2705        toFloat: toFloat,
2706        toArray: toArray,
2707        toNode: toNode,
2708        toNodes: toNodes,
2709        toWindow: toWindow,
2710        toMs: toMs,
2711        isEqual: isEqual,
2712        swap: swap,
2713        assign: assign,
2714        last: last,
2715        each: each,
2716        sortBy: sortBy$1,
2717        uniqueBy: uniqueBy,
2718        clamp: clamp,
2719        noop: noop,
2720        intersectRect: intersectRect,
2721        pointInRect: pointInRect,
2722        Dimensions: Dimensions,
2723        getIndex: getIndex,
2724        memoize: memoize,
2725        MouseTracker: MouseTracker,
2726        mergeOptions: mergeOptions,
2727        parseOptions: parseOptions,
2728        play: play,
2729        pause: pause,
2730        mute: mute,
2731        isVideo: isVideo,
2732        positionAt: positionAt,
2733        Promise: Promise$1,
2734        Deferred: Deferred,
2735        query: query,
2736        queryAll: queryAll,
2737        find: find,
2738        findAll: findAll,
2739        escape: escape,
2740        css: css,
2741        getCssVar: getCssVar,
2742        propName: propName,
2743        isInView: isInView,
2744        scrollTop: scrollTop,
2745        scrollIntoView: scrollIntoView,
2746        scrolledOver: scrolledOver,
2747        scrollParents: scrollParents,
2748        getViewport: getViewport$1,
2749        getViewportClientHeight: getViewportClientHeight
2750    });
2751
2752    function globalAPI (UIkit) {
2753
2754        var DATA = UIkit.data;
2755
2756        UIkit.use = function (plugin) {
2757
2758            if (plugin.installed) {
2759                return;
2760            }
2761
2762            plugin.call(null, this);
2763            plugin.installed = true;
2764
2765            return this;
2766        };
2767
2768        UIkit.mixin = function (mixin, component) {
2769            component = (isString(component) ? UIkit.component(component) : component) || this;
2770            component.options = mergeOptions(component.options, mixin);
2771        };
2772
2773        UIkit.extend = function (options) {
2774
2775            options = options || {};
2776
2777            var Super = this;
2778            var Sub = function UIkitComponent(options) {
2779                this._init(options);
2780            };
2781
2782            Sub.prototype = Object.create(Super.prototype);
2783            Sub.prototype.constructor = Sub;
2784            Sub.options = mergeOptions(Super.options, options);
2785
2786            Sub.super = Super;
2787            Sub.extend = Super.extend;
2788
2789            return Sub;
2790        };
2791
2792        UIkit.update = function (element, e) {
2793
2794            element = element ? toNode(element) : document.body;
2795
2796            parents(element).reverse().forEach(function (element) { return update(element[DATA], e); });
2797            apply$1(element, function (element) { return update(element[DATA], e); });
2798
2799        };
2800
2801        var container;
2802        Object.defineProperty(UIkit, 'container', {
2803
2804            get: function() {
2805                return container || document.body;
2806            },
2807
2808            set: function(element) {
2809                container = $(element);
2810            }
2811
2812        });
2813
2814        function update(data, e) {
2815
2816            if (!data) {
2817                return;
2818            }
2819
2820            for (var name in data) {
2821                if (data[name]._connected) {
2822                    data[name]._callUpdate(e);
2823                }
2824            }
2825
2826        }
2827    }
2828
2829    function hooksAPI (UIkit) {
2830
2831        UIkit.prototype._callHook = function (hook) {
2832            var this$1$1 = this;
2833
2834
2835            var handlers = this.$options[hook];
2836
2837            if (handlers) {
2838                handlers.forEach(function (handler) { return handler.call(this$1$1); });
2839            }
2840        };
2841
2842        UIkit.prototype._callConnected = function () {
2843
2844            if (this._connected) {
2845                return;
2846            }
2847
2848            this._data = {};
2849            this._computeds = {};
2850
2851            this._initProps();
2852
2853            this._callHook('beforeConnect');
2854            this._connected = true;
2855
2856            this._initEvents();
2857            this._initObservers();
2858
2859            this._callHook('connected');
2860            this._callUpdate();
2861        };
2862
2863        UIkit.prototype._callDisconnected = function () {
2864
2865            if (!this._connected) {
2866                return;
2867            }
2868
2869            this._callHook('beforeDisconnect');
2870            this._disconnectObservers();
2871            this._unbindEvents();
2872            this._callHook('disconnected');
2873
2874            this._connected = false;
2875            delete this._watch;
2876
2877        };
2878
2879        UIkit.prototype._callUpdate = function (e) {
2880            var this$1$1 = this;
2881            if ( e === void 0 ) e = 'update';
2882
2883
2884            if (!this._connected) {
2885                return;
2886            }
2887
2888            if (e === 'update' || e === 'resize') {
2889                this._callWatches();
2890            }
2891
2892            if (!this.$options.update) {
2893                return;
2894            }
2895
2896            if (!this._updates) {
2897                this._updates = new Set();
2898                fastdom.read(function () {
2899                    if (this$1$1._connected) {
2900                        runUpdates.call(this$1$1, this$1$1._updates);
2901                    }
2902                    delete this$1$1._updates;
2903                });
2904            }
2905
2906            this._updates.add(e.type || e);
2907        };
2908
2909        UIkit.prototype._callWatches = function () {
2910            var this$1$1 = this;
2911
2912
2913            if (this._watch) {
2914                return;
2915            }
2916
2917            var initial = !hasOwn(this, '_watch');
2918
2919            this._watch = fastdom.read(function () {
2920                if (this$1$1._connected) {
2921                    runWatches.call(this$1$1, initial);
2922                }
2923                this$1$1._watch = null;
2924
2925            });
2926
2927        };
2928
2929        function runUpdates(types) {
2930            var this$1$1 = this;
2931
2932
2933            var updates = this.$options.update;
2934
2935            var loop = function ( i ) {
2936                var ref = updates[i];
2937                var read = ref.read;
2938                var write = ref.write;
2939                var events = ref.events;
2940
2941                if (!types.has('update') && (!events || !events.some(function (type) { return types.has(type); }))) {
2942                    return;
2943                }
2944
2945                var result = (void 0);
2946                if (read) {
2947
2948                    result = read.call(this$1$1, this$1$1._data, types);
2949
2950                    if (result && isPlainObject(result)) {
2951                        assign(this$1$1._data, result);
2952                    }
2953                }
2954
2955                if (write && result !== false) {
2956                    fastdom.write(function () { return write.call(this$1$1, this$1$1._data, types); });
2957                }
2958
2959            };
2960
2961            for (var i = 0; i < updates.length; i++) loop( i );
2962        }
2963
2964        function runWatches(initial) {
2965
2966            var ref = this;
2967            var computed = ref.$options.computed;
2968            var _computeds = ref._computeds;
2969
2970            for (var key in computed) {
2971
2972                var hasPrev = hasOwn(_computeds, key);
2973                var prev = _computeds[key];
2974
2975                delete _computeds[key];
2976
2977                var ref$1 = computed[key];
2978                var watch = ref$1.watch;
2979                var immediate = ref$1.immediate;
2980                if (watch && (
2981                    initial && immediate
2982                    || hasPrev && !isEqual(prev, this[key])
2983                )) {
2984                    watch.call(this, this[key], prev);
2985                }
2986
2987            }
2988        }
2989    }
2990
2991    function stateAPI (UIkit) {
2992
2993        var uid = 0;
2994
2995        UIkit.prototype._init = function (options) {
2996
2997            options = options || {};
2998            options.data = normalizeData(options, this.constructor.options);
2999
3000            this.$options = mergeOptions(this.constructor.options, options, this);
3001            this.$el = null;
3002            this.$props = {};
3003
3004            this._uid = uid++;
3005            this._initData();
3006            this._initMethods();
3007            this._initComputeds();
3008            this._callHook('created');
3009
3010            if (options.el) {
3011                this.$mount(options.el);
3012            }
3013        };
3014
3015        UIkit.prototype._initData = function () {
3016
3017            var ref = this.$options;
3018            var data = ref.data; if ( data === void 0 ) data = {};
3019
3020            for (var key in data) {
3021                this.$props[key] = this[key] = data[key];
3022            }
3023        };
3024
3025        UIkit.prototype._initMethods = function () {
3026
3027            var ref = this.$options;
3028            var methods = ref.methods;
3029
3030            if (methods) {
3031                for (var key in methods) {
3032                    this[key] = methods[key].bind(this);
3033                }
3034            }
3035        };
3036
3037        UIkit.prototype._initComputeds = function () {
3038
3039            var ref = this.$options;
3040            var computed = ref.computed;
3041
3042            this._computeds = {};
3043
3044            if (computed) {
3045                for (var key in computed) {
3046                    registerComputed(this, key, computed[key]);
3047                }
3048            }
3049        };
3050
3051        UIkit.prototype._initProps = function (props) {
3052
3053            var key;
3054
3055            props = props || getProps(this.$options, this.$name);
3056
3057            for (key in props) {
3058                if (!isUndefined(props[key])) {
3059                    this.$props[key] = props[key];
3060                }
3061            }
3062
3063            var exclude = [this.$options.computed, this.$options.methods];
3064            for (key in this.$props) {
3065                if (key in props && notIn(exclude, key)) {
3066                    this[key] = this.$props[key];
3067                }
3068            }
3069        };
3070
3071        UIkit.prototype._initEvents = function () {
3072            var this$1$1 = this;
3073
3074
3075            this._events = [];
3076
3077            var ref = this.$options;
3078            var events = ref.events;
3079
3080            if (events) {
3081
3082                events.forEach(function (event) {
3083
3084                    if (!hasOwn(event, 'handler')) {
3085                        for (var key in event) {
3086                            registerEvent(this$1$1, event[key], key);
3087                        }
3088                    } else {
3089                        registerEvent(this$1$1, event);
3090                    }
3091
3092                });
3093            }
3094        };
3095
3096        UIkit.prototype._unbindEvents = function () {
3097            this._events.forEach(function (unbind) { return unbind(); });
3098            delete this._events;
3099        };
3100
3101        UIkit.prototype._initObservers = function () {
3102            this._observers = [
3103                initChildListObserver(this),
3104                initPropsObserver(this)
3105            ];
3106        };
3107
3108        UIkit.prototype._disconnectObservers = function () {
3109            this._observers.forEach(function (observer) { return observer && observer.disconnect(); }
3110            );
3111        };
3112
3113        function getProps(opts, name) {
3114
3115            var data$1 = {};
3116            var args = opts.args; if ( args === void 0 ) args = [];
3117            var props = opts.props; if ( props === void 0 ) props = {};
3118            var el = opts.el;
3119
3120            if (!props) {
3121                return data$1;
3122            }
3123
3124            for (var key in props) {
3125                var prop = hyphenate(key);
3126                var value = data(el, prop);
3127
3128                if (isUndefined(value)) {
3129                    continue;
3130                }
3131
3132                value = props[key] === Boolean && value === ''
3133                    ? true
3134                    : coerce(props[key], value);
3135
3136                if (prop === 'target' && (!value || startsWith(value, '_'))) {
3137                    continue;
3138                }
3139
3140                data$1[key] = value;
3141            }
3142
3143            var options = parseOptions(data(el, name), args);
3144
3145            for (var key$1 in options) {
3146                var prop$1 = camelize(key$1);
3147                if (props[prop$1] !== undefined) {
3148                    data$1[prop$1] = coerce(props[prop$1], options[key$1]);
3149                }
3150            }
3151
3152            return data$1;
3153        }
3154
3155        function registerComputed(component, key, cb) {
3156            Object.defineProperty(component, key, {
3157
3158                enumerable: true,
3159
3160                get: function() {
3161
3162                    var _computeds = component._computeds;
3163                    var $props = component.$props;
3164                    var $el = component.$el;
3165
3166                    if (!hasOwn(_computeds, key)) {
3167                        _computeds[key] = (cb.get || cb).call(component, $props, $el);
3168                    }
3169
3170                    return _computeds[key];
3171                },
3172
3173                set: function(value) {
3174
3175                    var _computeds = component._computeds;
3176
3177                    _computeds[key] = cb.set ? cb.set.call(component, value) : value;
3178
3179                    if (isUndefined(_computeds[key])) {
3180                        delete _computeds[key];
3181                    }
3182                }
3183
3184            });
3185        }
3186
3187        function registerEvent(component, event, key) {
3188
3189            if (!isPlainObject(event)) {
3190                event = ({name: key, handler: event});
3191            }
3192
3193            var name = event.name;
3194            var el = event.el;
3195            var handler = event.handler;
3196            var capture = event.capture;
3197            var passive = event.passive;
3198            var delegate = event.delegate;
3199            var filter = event.filter;
3200            var self = event.self;
3201            el = isFunction(el)
3202                ? el.call(component)
3203                : el || component.$el;
3204
3205            if (isArray(el)) {
3206                el.forEach(function (el) { return registerEvent(component, assign({}, event, {el: el}), key); });
3207                return;
3208            }
3209
3210            if (!el || filter && !filter.call(component)) {
3211                return;
3212            }
3213
3214            component._events.push(
3215                on(
3216                    el,
3217                    name,
3218                    !delegate
3219                        ? null
3220                        : isString(delegate)
3221                            ? delegate
3222                            : delegate.call(component),
3223                    isString(handler) ? component[handler] : handler.bind(component),
3224                    {passive: passive, capture: capture, self: self}
3225                )
3226            );
3227
3228        }
3229
3230        function notIn(options, key) {
3231            return options.every(function (arr) { return !arr || !hasOwn(arr, key); });
3232        }
3233
3234        function coerce(type, value) {
3235
3236            if (type === Boolean) {
3237                return toBoolean(value);
3238            } else if (type === Number) {
3239                return toNumber(value);
3240            } else if (type === 'list') {
3241                return toList(value);
3242            }
3243
3244            return type ? type(value) : value;
3245        }
3246
3247        function toList(value) {
3248            return isArray(value)
3249                ? value
3250                : isString(value)
3251                    ? value.split(/,(?![^(]*\))/).map(function (value) { return isNumeric(value)
3252                        ? toNumber(value)
3253                        : toBoolean(value.trim()); })
3254                    : [value];
3255        }
3256
3257        function normalizeData(ref, ref$1) {
3258            var data = ref.data;
3259            var args = ref$1.args;
3260            var props = ref$1.props; if ( props === void 0 ) props = {};
3261
3262            data = isArray(data)
3263                ? !isEmpty(args)
3264                    ? data.slice(0, args.length).reduce(function (data, value, index) {
3265                        if (isPlainObject(value)) {
3266                            assign(data, value);
3267                        } else {
3268                            data[args[index]] = value;
3269                        }
3270                        return data;
3271                    }, {})
3272                    : undefined
3273                : data;
3274
3275            if (data) {
3276                for (var key in data) {
3277                    if (isUndefined(data[key])) {
3278                        delete data[key];
3279                    } else {
3280                        data[key] = props[key] ? coerce(props[key], data[key]) : data[key];
3281                    }
3282                }
3283            }
3284
3285            return data;
3286        }
3287
3288        function initChildListObserver(component) {
3289            var ref = component.$options;
3290            var el = ref.el;
3291
3292            var observer = new MutationObserver(function () { return component.$emit(); });
3293            observer.observe(el, {
3294                childList: true,
3295                subtree: true
3296            });
3297
3298            return observer;
3299        }
3300
3301        function initPropsObserver(component) {
3302
3303            var $name = component.$name;
3304            var $options = component.$options;
3305            var $props = component.$props;
3306            var attrs = $options.attrs;
3307            var props = $options.props;
3308            var el = $options.el;
3309
3310            if (!props || attrs === false) {
3311                return;
3312            }
3313
3314            var attributes = isArray(attrs) ? attrs : Object.keys(props);
3315            var filter = attributes.map(function (key) { return hyphenate(key); }).concat($name);
3316
3317            var observer = new MutationObserver(function (records) {
3318                var data = getProps($options, $name);
3319                if (records.some(function (ref) {
3320                    var attributeName = ref.attributeName;
3321
3322                    var prop = attributeName.replace('data-', '');
3323                    return (prop === $name ? attributes : [camelize(prop), camelize(attributeName)]).some(function (prop) { return !isUndefined(data[prop]) && data[prop] !== $props[prop]; }
3324                    );
3325                })) {
3326                    component.$reset();
3327                }
3328            });
3329
3330            observer.observe(el, {
3331                attributes: true,
3332                attributeFilter: filter.concat(filter.map(function (key) { return ("data-" + key); }))
3333            });
3334
3335            return observer;
3336        }
3337    }
3338
3339    function instanceAPI (UIkit) {
3340
3341        var DATA = UIkit.data;
3342
3343        UIkit.prototype.$create = function (component, element, data) {
3344            return UIkit[component](element, data);
3345        };
3346
3347        UIkit.prototype.$mount = function (el) {
3348
3349            var ref = this.$options;
3350            var name = ref.name;
3351
3352            if (!el[DATA]) {
3353                el[DATA] = {};
3354            }
3355
3356            if (el[DATA][name]) {
3357                return;
3358            }
3359
3360            el[DATA][name] = this;
3361
3362            this.$el = this.$options.el = this.$options.el || el;
3363
3364            if (within(el, document)) {
3365                this._callConnected();
3366            }
3367        };
3368
3369        UIkit.prototype.$reset = function () {
3370            this._callDisconnected();
3371            this._callConnected();
3372        };
3373
3374        UIkit.prototype.$destroy = function (removeEl) {
3375            if ( removeEl === void 0 ) removeEl = false;
3376
3377
3378            var ref = this.$options;
3379            var el = ref.el;
3380            var name = ref.name;
3381
3382            if (el) {
3383                this._callDisconnected();
3384            }
3385
3386            this._callHook('destroy');
3387
3388            if (!el || !el[DATA]) {
3389                return;
3390            }
3391
3392            delete el[DATA][name];
3393
3394            if (!isEmpty(el[DATA])) {
3395                delete el[DATA];
3396            }
3397
3398            if (removeEl) {
3399                remove$1(this.$el);
3400            }
3401        };
3402
3403        UIkit.prototype.$emit = function (e) {
3404            this._callUpdate(e);
3405        };
3406
3407        UIkit.prototype.$update = function (element, e) {
3408            if ( element === void 0 ) element = this.$el;
3409
3410            UIkit.update(element, e);
3411        };
3412
3413        UIkit.prototype.$getComponent = UIkit.getComponent;
3414
3415        var componentName = memoize(function (name) { return UIkit.prefix + hyphenate(name); });
3416        Object.defineProperties(UIkit.prototype, {
3417
3418            $container: Object.getOwnPropertyDescriptor(UIkit, 'container'),
3419
3420            $name: {
3421
3422                get: function() {
3423                    return componentName(this.$options.name);
3424                }
3425
3426            }
3427
3428        });
3429
3430    }
3431
3432    function componentAPI (UIkit) {
3433
3434        var DATA = UIkit.data;
3435
3436        var components = {};
3437
3438        UIkit.component = function (name, options) {
3439
3440            var id = hyphenate(name);
3441
3442            name = camelize(id);
3443
3444            if (!options) {
3445
3446                if (isPlainObject(components[name])) {
3447                    components[name] = UIkit.extend(components[name]);
3448                }
3449
3450                return components[name];
3451
3452            }
3453
3454            UIkit[name] = function (element, data) {
3455                var i = arguments.length, argsArray = Array(i);
3456                while ( i-- ) argsArray[i] = arguments[i];
3457
3458
3459                var component = UIkit.component(name);
3460
3461                return component.options.functional
3462                    ? new component({data: isPlainObject(element) ? element : [].concat( argsArray )})
3463                    : !element ? init(element) : $$(element).map(init)[0];
3464
3465                function init(element) {
3466
3467                    var instance = UIkit.getComponent(element, name);
3468
3469                    if (instance) {
3470                        if (!data) {
3471                            return instance;
3472                        } else {
3473                            instance.$destroy();
3474                        }
3475                    }
3476
3477                    return new component({el: element, data: data});
3478
3479                }
3480
3481            };
3482
3483            var opt = isPlainObject(options) ? assign({}, options) : options.options;
3484
3485            opt.name = name;
3486
3487            if (opt.install) {
3488                opt.install(UIkit, opt, name);
3489            }
3490
3491            if (UIkit._initialized && !opt.functional) {
3492                fastdom.read(function () { return UIkit[name](("[uk-" + id + "],[data-uk-" + id + "]")); });
3493            }
3494
3495            return components[name] = isPlainObject(options) ? opt : options;
3496        };
3497
3498        UIkit.getComponents = function (element) { return element && element[DATA] || {}; };
3499        UIkit.getComponent = function (element, name) { return UIkit.getComponents(element)[name]; };
3500
3501        UIkit.connect = function (node) {
3502
3503            if (node[DATA]) {
3504                for (var name in node[DATA]) {
3505                    node[DATA][name]._callConnected();
3506                }
3507            }
3508
3509            for (var i = 0; i < node.attributes.length; i++) {
3510
3511                var name$1 = getComponentName(node.attributes[i].name);
3512
3513                if (name$1 && name$1 in components) {
3514                    UIkit[name$1](node);
3515                }
3516
3517            }
3518
3519        };
3520
3521        UIkit.disconnect = function (node) {
3522            for (var name in node[DATA]) {
3523                node[DATA][name]._callDisconnected();
3524            }
3525        };
3526
3527    }
3528
3529    var getComponentName = memoize(function (attribute) {
3530        return startsWith(attribute, 'uk-') || startsWith(attribute, 'data-uk-')
3531            ? camelize(attribute.replace('data-uk-', '').replace('uk-', ''))
3532            : false;
3533    });
3534
3535    var UIkit = function (options) {
3536        this._init(options);
3537    };
3538
3539    UIkit.util = util;
3540    UIkit.data = '__uikit__';
3541    UIkit.prefix = 'uk-';
3542    UIkit.options = {};
3543    UIkit.version = '3.9.3';
3544
3545    globalAPI(UIkit);
3546    hooksAPI(UIkit);
3547    stateAPI(UIkit);
3548    componentAPI(UIkit);
3549    instanceAPI(UIkit);
3550
3551    function Core (UIkit) {
3552
3553        if (!inBrowser) {
3554            return;
3555        }
3556
3557        // throttle 'resize'
3558        var pendingResize;
3559        var handleResize = function () {
3560            if (pendingResize) {
3561                return;
3562            }
3563            pendingResize = true;
3564            fastdom.write(function () { return pendingResize = false; });
3565            UIkit.update(null, 'resize');
3566        };
3567
3568        on(window, 'load resize', handleResize);
3569        on(document, 'loadedmetadata load', handleResize, true);
3570
3571        if ('ResizeObserver' in window) {
3572            (new ResizeObserver(handleResize)).observe(document.documentElement);
3573        }
3574
3575        // throttle `scroll` event (Safari triggers multiple `scroll` events per frame)
3576        var pending;
3577        on(window, 'scroll', function (e) {
3578
3579            if (pending) {
3580                return;
3581            }
3582            pending = true;
3583            fastdom.write(function () { return pending = false; });
3584
3585            UIkit.update(null, e.type);
3586
3587        }, {passive: true, capture: true});
3588
3589        var started = 0;
3590        on(document, 'animationstart', function (ref) {
3591            var target = ref.target;
3592
3593            if ((css(target, 'animationName') || '').match(/^uk-.*(left|right)/)) {
3594
3595                started++;
3596                css(document.documentElement, 'overflowX', 'hidden');
3597                setTimeout(function () {
3598                    if (!--started) {
3599                        css(document.documentElement, 'overflowX', '');
3600                    }
3601                }, toMs(css(target, 'animationDuration')) + 100);
3602            }
3603        }, true);
3604
3605        on(document, pointerDown, function (e) {
3606
3607            if (!isTouch(e)) {
3608                return;
3609            }
3610
3611            // Handle Swipe Gesture
3612            var pos = getEventPos(e);
3613            var target = 'tagName' in e.target ? e.target : parent(e.target);
3614            once(document, (pointerUp + " " + pointerCancel + " scroll"), function (e) {
3615
3616                var ref = getEventPos(e);
3617                var x = ref.x;
3618                var y = ref.y;
3619
3620                // swipe
3621                if (e.type !== 'scroll' && target && x && Math.abs(pos.x - x) > 100 || y && Math.abs(pos.y - y) > 100) {
3622
3623                    setTimeout(function () {
3624                        trigger(target, 'swipe');
3625                        trigger(target, ("swipe" + (swipeDirection(pos.x, pos.y, x, y))));
3626                    });
3627
3628                }
3629
3630            });
3631
3632        }, {passive: true});
3633
3634    }
3635
3636    function swipeDirection(x1, y1, x2, y2) {
3637        return Math.abs(x1 - x2) >= Math.abs(y1 - y2)
3638            ? x1 - x2 > 0
3639                ? 'Left'
3640                : 'Right'
3641            : y1 - y2 > 0
3642                ? 'Up'
3643                : 'Down';
3644    }
3645
3646    function boot (UIkit) {
3647
3648        var connect = UIkit.connect;
3649        var disconnect = UIkit.disconnect;
3650
3651        if (!inBrowser || !window.MutationObserver) {
3652            return;
3653        }
3654
3655        fastdom.read(function () {
3656
3657            if (document.body) {
3658                apply$1(document.body, connect);
3659            }
3660
3661            new MutationObserver(function (records) { return records.forEach(applyChildListMutation); }
3662            ).observe(document, {
3663                childList: true,
3664                subtree: true
3665            });
3666
3667            new MutationObserver(function (records) { return records.forEach(applyAttributeMutation); }
3668            ).observe(document, {
3669                attributes: true,
3670                subtree: true
3671            });
3672
3673            UIkit._initialized = true;
3674        });
3675
3676        function applyChildListMutation(ref) {
3677            var addedNodes = ref.addedNodes;
3678            var removedNodes = ref.removedNodes;
3679
3680            for (var i = 0; i < addedNodes.length; i++) {
3681                apply$1(addedNodes[i], connect);
3682            }
3683
3684            for (var i$1 = 0; i$1 < removedNodes.length; i$1++) {
3685                apply$1(removedNodes[i$1], disconnect);
3686            }
3687        }
3688
3689        function applyAttributeMutation(ref) {
3690            var target = ref.target;
3691            var attributeName = ref.attributeName;
3692
3693
3694            var name = getComponentName(attributeName);
3695
3696            if (!name || !(name in UIkit)) {
3697                return;
3698            }
3699
3700            if (hasAttr(target, attributeName)) {
3701                UIkit[name](target);
3702                return;
3703            }
3704
3705            var component = UIkit.getComponent(target, name);
3706
3707            if (component) {
3708                component.$destroy();
3709            }
3710
3711        }
3712
3713    }
3714
3715    var Class = {
3716
3717        connected: function() {
3718            !hasClass(this.$el, this.$name) && addClass(this.$el, this.$name);
3719        }
3720
3721    };
3722
3723    var Togglable = {
3724
3725        props: {
3726            cls: Boolean,
3727            animation: 'list',
3728            duration: Number,
3729            origin: String,
3730            transition: String
3731        },
3732
3733        data: {
3734            cls: false,
3735            animation: [false],
3736            duration: 200,
3737            origin: false,
3738            transition: 'linear',
3739            clsEnter: 'uk-togglabe-enter',
3740            clsLeave: 'uk-togglabe-leave',
3741
3742            initProps: {
3743                overflow: '',
3744                height: '',
3745                paddingTop: '',
3746                paddingBottom: '',
3747                marginTop: '',
3748                marginBottom: ''
3749            },
3750
3751            hideProps: {
3752                overflow: 'hidden',
3753                height: 0,
3754                paddingTop: 0,
3755                paddingBottom: 0,
3756                marginTop: 0,
3757                marginBottom: 0
3758            }
3759
3760        },
3761
3762        computed: {
3763
3764            hasAnimation: function(ref) {
3765                var animation = ref.animation;
3766
3767                return !!animation[0];
3768            },
3769
3770            hasTransition: function(ref) {
3771                var animation = ref.animation;
3772
3773                return this.hasAnimation && animation[0] === true;
3774            }
3775
3776        },
3777
3778        methods: {
3779
3780            toggleElement: function(targets, toggle, animate) {
3781                var this$1$1 = this;
3782
3783                return new Promise$1(function (resolve) { return Promise$1.all(toNodes(targets).map(function (el) {
3784
3785                        var show = isBoolean(toggle) ? toggle : !this$1$1.isToggled(el);
3786
3787                        if (!trigger(el, ("before" + (show ? 'show' : 'hide')), [this$1$1])) {
3788                            return Promise$1.reject();
3789                        }
3790
3791                        var promise = (
3792                            isFunction(animate)
3793                                ? animate
3794                                : animate === false || !this$1$1.hasAnimation
3795                                ? this$1$1._toggle
3796                                : this$1$1.hasTransition
3797                                    ? toggleHeight(this$1$1)
3798                                    : toggleAnimation(this$1$1)
3799                        )(el, show);
3800
3801                        var cls = show ? this$1$1.clsEnter : this$1$1.clsLeave;
3802
3803                        addClass(el, cls);
3804
3805                        trigger(el, show ? 'show' : 'hide', [this$1$1]);
3806
3807                        var done = function () {
3808                            removeClass(el, cls);
3809                            trigger(el, show ? 'shown' : 'hidden', [this$1$1]);
3810                            this$1$1.$update(el);
3811                        };
3812
3813                        return promise ? promise.then(done, function () {
3814                            removeClass(el, cls);
3815                            return Promise$1.reject();
3816                        }) : done();
3817
3818                    })).then(resolve, noop); }
3819                );
3820            },
3821
3822            isToggled: function(el) {
3823                var assign;
3824
3825                if ( el === void 0 ) el = this.$el;
3826                (assign = toNodes(el), el = assign[0]);
3827                return hasClass(el, this.clsEnter)
3828                    ? true
3829                    : hasClass(el, this.clsLeave)
3830                        ? false
3831                        : this.cls
3832                            ? hasClass(el, this.cls.split(' ')[0])
3833                            : isVisible(el);
3834            },
3835
3836            _toggle: function(el, toggled) {
3837
3838                if (!el) {
3839                    return;
3840                }
3841
3842                toggled = Boolean(toggled);
3843
3844                var changed;
3845                if (this.cls) {
3846                    changed = includes(this.cls, ' ') || toggled !== hasClass(el, this.cls);
3847                    changed && toggleClass(el, this.cls, includes(this.cls, ' ') ? undefined : toggled);
3848                } else {
3849                    changed = toggled === el.hidden;
3850                    changed && (el.hidden = !toggled);
3851                }
3852
3853                $$('[autofocus]', el).some(function (el) { return isVisible(el) ? el.focus() || true : el.blur(); });
3854
3855                if (changed) {
3856                    trigger(el, 'toggled', [toggled, this]);
3857                    this.$update(el);
3858                }
3859            }
3860
3861        }
3862
3863    };
3864
3865    function toggleHeight(ref) {
3866        var isToggled = ref.isToggled;
3867        var duration = ref.duration;
3868        var initProps = ref.initProps;
3869        var hideProps = ref.hideProps;
3870        var transition = ref.transition;
3871        var _toggle = ref._toggle;
3872
3873        return function (el, show) {
3874
3875            var inProgress = Transition.inProgress(el);
3876            var inner = el.hasChildNodes ? toFloat(css(el.firstElementChild, 'marginTop')) + toFloat(css(el.lastElementChild, 'marginBottom')) : 0;
3877            var currentHeight = isVisible(el) ? height(el) + (inProgress ? 0 : inner) : 0;
3878
3879            Transition.cancel(el);
3880
3881            if (!isToggled(el)) {
3882                _toggle(el, true);
3883            }
3884
3885            height(el, '');
3886
3887            // Update child components first
3888            fastdom.flush();
3889
3890            var endHeight = height(el) + (inProgress ? 0 : inner);
3891            height(el, currentHeight);
3892
3893            return (show
3894                ? Transition.start(el, assign({}, initProps, {overflow: 'hidden', height: endHeight}), Math.round(duration * (1 - currentHeight / endHeight)), transition)
3895                : Transition.start(el, hideProps, Math.round(duration * (currentHeight / endHeight)), transition).then(function () { return _toggle(el, false); })
3896            ).then(function () { return css(el, initProps); });
3897
3898        };
3899    }
3900
3901    function toggleAnimation(cmp) {
3902        return function (el, show) {
3903
3904            Animation.cancel(el);
3905
3906            var animation = cmp.animation;
3907            var duration = cmp.duration;
3908            var _toggle = cmp._toggle;
3909
3910            if (show) {
3911                _toggle(el, true);
3912                return Animation.in(el, animation[0], duration, cmp.origin);
3913            }
3914
3915            return Animation.out(el, animation[1] || animation[0], duration, cmp.origin).then(function () { return _toggle(el, false); });
3916        };
3917    }
3918
3919    var Accordion = {
3920
3921        mixins: [Class, Togglable],
3922
3923        props: {
3924            targets: String,
3925            active: null,
3926            collapsible: Boolean,
3927            multiple: Boolean,
3928            toggle: String,
3929            content: String,
3930            transition: String,
3931            offset: Number
3932        },
3933
3934        data: {
3935            targets: '> *',
3936            active: false,
3937            animation: [true],
3938            collapsible: true,
3939            multiple: false,
3940            clsOpen: 'uk-open',
3941            toggle: '> .uk-accordion-title',
3942            content: '> .uk-accordion-content',
3943            transition: 'ease',
3944            offset: 0
3945        },
3946
3947        computed: {
3948
3949            items: {
3950
3951                get: function(ref, $el) {
3952                    var targets = ref.targets;
3953
3954                    return $$(targets, $el);
3955                },
3956
3957                watch: function(items, prev) {
3958                    var this$1$1 = this;
3959
3960
3961                    items.forEach(function (el) { return hide($(this$1$1.content, el), !hasClass(el, this$1$1.clsOpen)); });
3962
3963                    if (prev || hasClass(items, this.clsOpen)) {
3964                        return;
3965                    }
3966
3967                    var active = this.active !== false && items[Number(this.active)]
3968                        || !this.collapsible && items[0];
3969
3970                    if (active) {
3971                        this.toggle(active, false);
3972                    }
3973
3974                },
3975
3976                immediate: true
3977
3978            },
3979
3980            toggles: function(ref) {
3981                var toggle = ref.toggle;
3982
3983                return this.items.map(function (item) { return $(toggle, item); });
3984            }
3985
3986        },
3987
3988        events: [
3989
3990            {
3991
3992                name: 'click',
3993
3994                delegate: function() {
3995                    return ((this.targets) + " " + (this.$props.toggle));
3996                },
3997
3998                handler: function(e) {
3999                    e.preventDefault();
4000                    this.toggle(index(this.toggles, e.current));
4001                }
4002
4003            }
4004
4005        ],
4006
4007        methods: {
4008
4009            toggle: function(item, animate) {
4010                var this$1$1 = this;
4011
4012
4013                var items = [this.items[getIndex(item, this.items)]];
4014                var activeItems = filter$1(this.items, ("." + (this.clsOpen)));
4015
4016                if (!this.multiple && !includes(activeItems, items[0])) {
4017                    items = items.concat(activeItems);
4018                }
4019
4020                if (!this.collapsible && activeItems.length < 2 && !filter$1(items, (":not(." + (this.clsOpen) + ")")).length) {
4021                    return;
4022                }
4023
4024                items.forEach(function (el) { return this$1$1.toggleElement(el, !hasClass(el, this$1$1.clsOpen), function (el, show) {
4025
4026                    toggleClass(el, this$1$1.clsOpen, show);
4027                    attr($(this$1$1.$props.toggle, el), 'aria-expanded', show);
4028
4029                    var content = $(("" + (el._wrapper ? '> * ' : '') + (this$1$1.content)), el);
4030
4031                    if (animate === false || !this$1$1.hasTransition) {
4032                        hide(content, !show);
4033                        return;
4034                    }
4035
4036                    if (!el._wrapper) {
4037                        el._wrapper = wrapAll(content, ("<div" + (show ? ' hidden' : '') + ">"));
4038                    }
4039
4040                    hide(content, false);
4041                    return toggleHeight(this$1$1)(el._wrapper, show).then(function () {
4042                        hide(content, !show);
4043                        delete el._wrapper;
4044                        unwrap(content);
4045
4046                        if (show) {
4047                            var toggle = $(this$1$1.$props.toggle, el);
4048                            if (!isInView(toggle)) {
4049                                scrollIntoView(toggle, {offset: this$1$1.offset});
4050                            }
4051                        }
4052                    });
4053                }); });
4054            }
4055
4056        }
4057
4058    };
4059
4060    function hide(el, hide) {
4061        el && (el.hidden = hide);
4062    }
4063
4064    var alert = {
4065
4066        mixins: [Class, Togglable],
4067
4068        args: 'animation',
4069
4070        props: {
4071            close: String
4072        },
4073
4074        data: {
4075            animation: [true],
4076            selClose: '.uk-alert-close',
4077            duration: 150,
4078            hideProps: assign({opacity: 0}, Togglable.data.hideProps)
4079        },
4080
4081        events: [
4082
4083            {
4084
4085                name: 'click',
4086
4087                delegate: function() {
4088                    return this.selClose;
4089                },
4090
4091                handler: function(e) {
4092                    e.preventDefault();
4093                    this.close();
4094                }
4095
4096            }
4097
4098        ],
4099
4100        methods: {
4101
4102            close: function() {
4103                var this$1$1 = this;
4104
4105                this.toggleElement(this.$el).then(function () { return this$1$1.$destroy(true); });
4106            }
4107
4108        }
4109
4110    };
4111
4112    var Video = {
4113
4114        args: 'autoplay',
4115
4116        props: {
4117            automute: Boolean,
4118            autoplay: Boolean
4119        },
4120
4121        data: {
4122            automute: false,
4123            autoplay: true
4124        },
4125
4126        computed: {
4127
4128            inView: function(ref) {
4129                var autoplay = ref.autoplay;
4130
4131                return autoplay === 'inview';
4132            }
4133
4134        },
4135
4136        connected: function() {
4137
4138            if (this.inView && !hasAttr(this.$el, 'preload')) {
4139                this.$el.preload = 'none';
4140            }
4141
4142            if (this.automute) {
4143                mute(this.$el);
4144            }
4145
4146        },
4147
4148        update: {
4149
4150            read: function() {
4151
4152                if (!isVideo(this.$el)) {
4153                    return false;
4154                }
4155
4156                return {
4157                    visible: isVisible(this.$el) && css(this.$el, 'visibility') !== 'hidden',
4158                    inView: this.inView && isInView(this.$el)
4159                };
4160            },
4161
4162            write: function(ref) {
4163                var visible = ref.visible;
4164                var inView = ref.inView;
4165
4166
4167                if (!visible || this.inView && !inView) {
4168                    pause(this.$el);
4169                } else if (this.autoplay === true || this.inView && inView) {
4170                    play(this.$el);
4171                }
4172
4173            },
4174
4175            events: ['resize', 'scroll']
4176
4177        }
4178
4179    };
4180
4181    var cover = {
4182
4183        mixins: [Class, Video],
4184
4185        props: {
4186            width: Number,
4187            height: Number
4188        },
4189
4190        data: {
4191            automute: true
4192        },
4193
4194        update: {
4195
4196            read: function() {
4197
4198                var el = this.$el;
4199                var ref = getPositionedParent(el) || parent(el);
4200                var height = ref.offsetHeight;
4201                var width = ref.offsetWidth;
4202                var dim = Dimensions.cover(
4203                    {
4204                        width: this.width || el.naturalWidth || el.videoWidth || el.clientWidth,
4205                        height: this.height || el.naturalHeight || el.videoHeight || el.clientHeight
4206                    },
4207                    {
4208                        width: width + (width % 2 ? 1 : 0),
4209                        height: height + (height % 2 ? 1 : 0)
4210                    }
4211                );
4212
4213                if (!dim.width || !dim.height) {
4214                    return false;
4215                }
4216
4217                return dim;
4218            },
4219
4220            write: function(ref) {
4221                var height = ref.height;
4222                var width = ref.width;
4223
4224                css(this.$el, {height: height, width: width});
4225            },
4226
4227            events: ['resize']
4228
4229        }
4230
4231    };
4232
4233    function getPositionedParent(el) {
4234        while ((el = parent(el))) {
4235            if (css(el, 'position') !== 'static') {
4236                return el;
4237            }
4238        }
4239    }
4240
4241    var Container = {
4242
4243        props: {
4244            container: Boolean
4245        },
4246
4247        data: {
4248            container: true
4249        },
4250
4251        computed: {
4252
4253            container: function(ref) {
4254                var container = ref.container;
4255
4256                return container === true && this.$container || container && $(container);
4257            }
4258
4259        }
4260
4261    };
4262
4263    var Position = {
4264
4265        props: {
4266            pos: String,
4267            offset: null,
4268            flip: Boolean,
4269            clsPos: String
4270        },
4271
4272        data: {
4273            pos: ("bottom-" + (!isRtl ? 'left' : 'right')),
4274            flip: true,
4275            offset: false,
4276            clsPos: ''
4277        },
4278
4279        computed: {
4280
4281            pos: function(ref) {
4282                var pos = ref.pos;
4283
4284                return (pos + (!includes(pos, '-') ? '-center' : '')).split('-');
4285            },
4286
4287            dir: function() {
4288                return this.pos[0];
4289            },
4290
4291            align: function() {
4292                return this.pos[1];
4293            }
4294
4295        },
4296
4297        methods: {
4298
4299            positionAt: function(element, target, boundary) {
4300
4301                removeClasses(element, ((this.clsPos) + "-(top|bottom|left|right)(-[a-z]+)?"));
4302
4303                var ref = this;
4304                var offset$1 = ref.offset;
4305                var axis = this.getAxis();
4306
4307                if (!isNumeric(offset$1)) {
4308                    var node = $(offset$1);
4309                    offset$1 = node
4310                        ? offset(node)[axis === 'x' ? 'left' : 'top'] - offset(target)[axis === 'x' ? 'right' : 'bottom']
4311                        : 0;
4312                }
4313
4314                var ref$1 = positionAt(
4315                    element,
4316                    target,
4317                    axis === 'x' ? ((flipPosition(this.dir)) + " " + (this.align)) : ((this.align) + " " + (flipPosition(this.dir))),
4318                    axis === 'x' ? ((this.dir) + " " + (this.align)) : ((this.align) + " " + (this.dir)),
4319                    axis === 'x' ? ("" + (this.dir === 'left' ? -offset$1 : offset$1)) : (" " + (this.dir === 'top' ? -offset$1 : offset$1)),
4320                    null,
4321                    this.flip,
4322                    boundary
4323                ).target;
4324                var x = ref$1.x;
4325                var y = ref$1.y;
4326
4327                this.dir = axis === 'x' ? x : y;
4328                this.align = axis === 'x' ? y : x;
4329
4330                toggleClass(element, ((this.clsPos) + "-" + (this.dir) + "-" + (this.align)), this.offset === false);
4331
4332            },
4333
4334            getAxis: function() {
4335                return this.dir === 'top' || this.dir === 'bottom' ? 'y' : 'x';
4336            }
4337
4338        }
4339
4340    };
4341
4342    var active$1;
4343
4344    var drop = {
4345
4346        mixins: [Container, Position, Togglable],
4347
4348        args: 'pos',
4349
4350        props: {
4351            mode: 'list',
4352            toggle: Boolean,
4353            boundary: Boolean,
4354            boundaryAlign: Boolean,
4355            delayShow: Number,
4356            delayHide: Number,
4357            clsDrop: String
4358        },
4359
4360        data: {
4361            mode: ['click', 'hover'],
4362            toggle: '- *',
4363            boundary: true,
4364            boundaryAlign: false,
4365            delayShow: 0,
4366            delayHide: 800,
4367            clsDrop: false,
4368            animation: ['uk-animation-fade'],
4369            cls: 'uk-open',
4370            container: false
4371        },
4372
4373        computed: {
4374
4375            boundary: function(ref, $el) {
4376                var boundary = ref.boundary;
4377
4378                return boundary === true ? window : query(boundary, $el);
4379            },
4380
4381            clsDrop: function(ref) {
4382                var clsDrop = ref.clsDrop;
4383
4384                return clsDrop || ("uk-" + (this.$options.name));
4385            },
4386
4387            clsPos: function() {
4388                return this.clsDrop;
4389            }
4390
4391        },
4392
4393        created: function() {
4394            this.tracker = new MouseTracker();
4395        },
4396
4397        connected: function() {
4398
4399            addClass(this.$el, this.clsDrop);
4400
4401            if (this.toggle && !this.target) {
4402                this.target = this.$create('toggle', query(this.toggle, this.$el), {
4403                    target: this.$el,
4404                    mode: this.mode
4405                });
4406            }
4407
4408        },
4409
4410        disconnected: function() {
4411            if (this.isActive()) {
4412                active$1 = null;
4413            }
4414        },
4415
4416        events: [
4417
4418            {
4419
4420                name: 'click',
4421
4422                delegate: function() {
4423                    return ("." + (this.clsDrop) + "-close");
4424                },
4425
4426                handler: function(e) {
4427                    e.preventDefault();
4428                    this.hide(false);
4429                }
4430
4431            },
4432
4433            {
4434
4435                name: 'click',
4436
4437                delegate: function() {
4438                    return 'a[href^="#"]';
4439                },
4440
4441                handler: function(ref) {
4442                    var defaultPrevented = ref.defaultPrevented;
4443                    var hash = ref.current.hash;
4444
4445                    if (!defaultPrevented && hash && !within(hash, this.$el)) {
4446                        this.hide(false);
4447                    }
4448                }
4449
4450            },
4451
4452            {
4453
4454                name: 'beforescroll',
4455
4456                handler: function() {
4457                    this.hide(false);
4458                }
4459
4460            },
4461
4462            {
4463
4464                name: 'toggle',
4465
4466                self: true,
4467
4468                handler: function(e, toggle) {
4469
4470                    e.preventDefault();
4471
4472                    if (this.isToggled()) {
4473                        this.hide(false);
4474                    } else {
4475                        this.show(toggle.$el, false);
4476                    }
4477                }
4478
4479            },
4480
4481            {
4482
4483                name: 'toggleshow',
4484
4485                self: true,
4486
4487                handler: function(e, toggle) {
4488                    e.preventDefault();
4489                    this.show(toggle.$el);
4490                }
4491
4492            },
4493
4494            {
4495
4496                name: 'togglehide',
4497
4498                self: true,
4499
4500                handler: function(e) {
4501                    e.preventDefault();
4502                    if (!matches(this.$el, ':focus,:hover')) {
4503                        this.hide();
4504                    }
4505                }
4506
4507            },
4508
4509            {
4510
4511                name: (pointerEnter + " focusin"),
4512
4513                filter: function() {
4514                    return includes(this.mode, 'hover');
4515                },
4516
4517                handler: function(e) {
4518                    if (!isTouch(e)) {
4519                        this.clearTimers();
4520                    }
4521                }
4522
4523            },
4524
4525            {
4526
4527                name: (pointerLeave + " focusout"),
4528
4529                filter: function() {
4530                    return includes(this.mode, 'hover');
4531                },
4532
4533                handler: function(e) {
4534                    if (!isTouch(e) && e.relatedTarget) {
4535                        this.hide();
4536                    }
4537                }
4538
4539            },
4540
4541            {
4542
4543                name: 'toggled',
4544
4545                self: true,
4546
4547                handler: function(e, toggled) {
4548
4549                    if (!toggled) {
4550                        return;
4551                    }
4552
4553                    this.clearTimers();
4554                    this.position();
4555                }
4556
4557            },
4558
4559            {
4560
4561                name: 'show',
4562
4563                self: true,
4564
4565                handler: function() {
4566                    var this$1$1 = this;
4567
4568
4569                    active$1 = this;
4570
4571                    this.tracker.init();
4572
4573                    once(this.$el, 'hide', on(document, pointerDown, function (ref) {
4574                            var target = ref.target;
4575
4576                            return !within(target, this$1$1.$el) && once(document, (pointerUp + " " + pointerCancel + " scroll"), function (ref) {
4577                            var defaultPrevented = ref.defaultPrevented;
4578                            var type = ref.type;
4579                            var newTarget = ref.target;
4580
4581                            if (!defaultPrevented && type === pointerUp && target === newTarget && !(this$1$1.target && within(target, this$1$1.target))) {
4582                                this$1$1.hide(false);
4583                            }
4584                        }, true);
4585                    }
4586                    ), {self: true});
4587
4588                    once(this.$el, 'hide', on(document, 'keydown', function (e) {
4589                        if (e.keyCode === 27) {
4590                            this$1$1.hide(false);
4591                        }
4592                    }), {self: true});
4593
4594                }
4595
4596            },
4597
4598            {
4599
4600                name: 'beforehide',
4601
4602                self: true,
4603
4604                handler: function() {
4605                    this.clearTimers();
4606                }
4607
4608            },
4609
4610            {
4611
4612                name: 'hide',
4613
4614                handler: function(ref) {
4615                    var target = ref.target;
4616
4617
4618                    if (this.$el !== target) {
4619                        active$1 = active$1 === null && within(target, this.$el) && this.isToggled() ? this 
4619: active$1;
4620                        return;
4621                    }
4622
4623                    active$1 = this.isActive() ? null : active$1;
4624                    this.tracker.cancel();
4625                }
4626
4627            }
4628
4629        ],
4630
4631        update: {
4632
4633            write: function() {
4634
4635                if (this.isToggled() && !hasClass(this.$el, this.clsEnter)) {
4636                    this.position();
4637                }
4638
4639            },
4640
4641            events: ['resize']
4642
4643        },
4644
4645        methods: {
4646
4647            show: function(target, delay) {
4648                var this$1$1 = this;
4649                if ( target === void 0 ) target = this.target;
4650                if ( delay === void 0 ) delay = true;
4651
4652
4653                if (this.isToggled() && target && this.target && target !== this.target) {
4654                    this.hide(false);
4655                }
4656
4657                this.target = target;
4658
4659                this.clearTimers();
4660
4661                if (this.isActive()) {
4662                    return;
4663                }
4664
4665                if (active$1) {
4666
4667                    if (delay && active$1.isDelaying) {
4668                        this.showTimer = setTimeout(this.show, 10);
4669                        return;
4670                    }
4671
4672                    var prev;
4673                    while (active$1 && prev !== active$1 && !within(this.$el, active$1.$el)) {
4674                        prev = active$1;
4675                        active$1.hide(false);
4676                    }
4677
4678                }
4679
4680                if (this.container && parent(this.$el) !== this.container) {
4681                    append(this.container, this.$el);
4682                }
4683
4684                this.showTimer = setTimeout(function () { return this$1$1.toggleElement(this$1$1.$el, true); }, delay && this.delayShow || 0);
4685
4686            },
4687
4688            hide: function(delay) {
4689                var this$1$1 = this;
4690                if ( delay === void 0 ) delay = true;
4691
4692
4693                var hide = function () { return this$1$1.toggleElement(this$1$1.$el, false, false); };
4694
4695                this.clearTimers();
4696
4697                this.isDelaying = getPositionedElements(this.$el).some(function (el) { return this$1$1.tracker.movesTo(el); });
4698
4699                if (delay && this.isDelaying) {
4700                    this.hideTimer = setTimeout(this.hide, 50);
4701                } else if (delay && this.delayHide) {
4702                    this.hideTimer = setTimeout(hide, this.delayHide);
4703                } else {
4704                    hide();
4705                }
4706            },
4707
4708            clearTimers: function() {
4709                clearTimeout(this.showTimer);
4710                clearTimeout(this.hideTimer);
4711                this.showTimer = null;
4712                this.hideTimer = null;
4713                this.isDelaying = false;
4714            },
4715
4716            isActive: function() {
4717                return active$1 === this;
4718            },
4719
4720            position: function() {
4721
4722                removeClass(this.$el, ((this.clsDrop) + "-stack"));
4723                toggleClass(this.$el, ((this.clsDrop) + "-boundary"), this.boundaryAlign);
4724
4725                var boundary = offset(this.boundary);
4726                var alignTo = this.boundaryAlign ? boundary : offset(this.target);
4727
4728                if (this.align === 'justify') {
4729                    var prop = this.getAxis() === 'y' ? 'width' : 'height';
4730                    css(this.$el, prop, alignTo[prop]);
4731                } else if (this.boundary && this.$el.offsetWidth > Math.max(boundary.right - alignTo.left, alignTo.right - boundary.left)) {
4732                    addClass(this.$el, ((this.clsDrop) + "-stack"));
4733                }
4734
4735                this.positionAt(this.$el, this.boundaryAlign ? this.boundary : this.target, this.boundary);
4736
4737            }
4738
4739        }
4740
4741    };
4742
4743    function getPositionedElements(el) {
4744        var result = [];
4745        apply$1(el, function (el) { return css(el, 'position') !== 'static' && result.push(el); });
4746        return result;
4747    }
4748
4749    var formCustom = {
4750
4751        mixins: [Class],
4752
4753        args: 'target',
4754
4755        props: {
4756            target: Boolean
4757        },
4758
4759        data: {
4760            target: false
4761        },
4762
4763        computed: {
4764
4765            input: function(_, $el) {
4766                return $(selInput, $el);
4767            },
4768
4769            state: function() {
4770                return this.input.nextElementSibling;
4771            },
4772
4773            target: function(ref, $el) {
4774                var target = ref.target;
4775
4776                return target && (target === true
4777                    && parent(this.input) === $el
4778                    && this.input.nextElementSibling
4779                    || query(target, $el));
4780            }
4781
4782        },
4783
4784        update: function() {
4785
4786            var ref = this;
4787            var target = ref.target;
4788            var input = ref.input;
4789
4790            if (!target) {
4791                return;
4792            }
4793
4794            var option;
4795            var prop = isInput(target) ? 'value' : 'textContent';
4796            var prev = target[prop];
4797            var value = input.files && input.files[0]
4798                ? input.files[0].name
4799                : matches(input, 'select') && (option = $$('option', input).filter(function (el) { return el.selected; })[0]) // eslint-disable-line prefer-destructuring
4800                    ? option.textContent
4801                    : input.value;
4802
4803            if (prev !== value) {
4804                target[prop] = value;
4805            }
4806
4807        },
4808
4809        events: [
4810
4811            {
4812                name: 'change',
4813
4814                handler: function() {
4815                    this.$update();
4816                }
4817            },
4818
4819            {
4820                name: 'reset',
4821
4822                el: function() {
4823                    return closest(this.$el, 'form');
4824                },
4825
4826                handler: function() {
4827                    this.$update();
4828                }
4829            }
4830
4831        ]
4832
4833    };
4834
4835    // Deprecated
4836    var gif = {
4837
4838        update: {
4839
4840            read: function(data) {
4841
4842                var inview = isInView(this.$el);
4843
4844                if (!inview || data.isInView === inview) {
4845                    return false;
4846                }
4847
4848                data.isInView = inview;
4849            },
4850
4851            write: function() {
4852                this.$el.src = '' + this.$el.src; // force self-assign
4853            },
4854
4855            events: ['scroll', 'resize']
4856        }
4857
4858    };
4859
4860    var Margin = {
4861
4862        props: {
4863            margin: String,
4864            firstColumn: Boolean
4865        },
4866
4867        data: {
4868            margin: 'uk-margin-small-top',
4869            firstColumn: 'uk-first-column'
4870        },
4871
4872        update: {
4873
4874            read: function() {
4875
4876                var rows = getRows(this.$el.children);
4877
4878                return {
4879                    rows: rows,
4880                    columns: getColumns(rows)
4881                };
4882            },
4883
4884            write: function(ref) {
4885                var columns = ref.columns;
4886                var rows = ref.rows;
4887
4888                for (var i = 0; i < rows.length; i++) {
4889                    for (var j = 0; j < rows[i].length; j++) {
4890                        toggleClass(rows[i][j], this.margin, i !== 0);
4891                        toggleClass(rows[i][j], this.firstColumn, !!~columns[0].indexOf(rows[i][j]));
4892                    }
4893                }
4894            },
4895
4896            events: ['resize']
4897
4898        }
4899
4900    };
4901
4902    function getRows(items) {
4903        return sortBy(items, 'top', 'bottom');
4904    }
4905
4906    function getColumns(rows) {
4907
4908        var columns = [];
4909
4910        for (var i = 0; i < rows.length; i++) {
4911            var sorted = sortBy(rows[i], 'left', 'right');
4912            for (var j = 0; j < sorted.length; j++) {
4913                columns[j] = !columns[j] ? sorted[j] : columns[j].concat(sorted[j]);
4914            }
4915        }
4916
4917        return isRtl
4918            ? columns.reverse()
4919            : columns;
4920    }
4921
4922    function sortBy(items, startProp, endProp) {
4923
4924        var sorted = [[]];
4925
4926        for (var i = 0; i < items.length; i++) {
4927
4928            var el = items[i];
4929
4930            if (!isVisible(el)) {
4931                continue;
4932            }
4933
4934            var dim = getOffset(el);
4935
4936            for (var j = sorted.length - 1; j >= 0; j--) {
4937
4938                var current = sorted[j];
4939
4940                if (!current[0]) {
4941                    current.push(el);
4942                    break;
4943                }
4944
4945                var startDim = (void 0);
4946                if (current[0].offsetParent === el.offsetParent) {
4947                    startDim = getOffset(current[0]);
4948                } else {
4949                    dim = getOffset(el, true);
4950                    startDim = getOffset(current[0], true);
4951                }
4952
4953                if (dim[startProp] >= startDim[endProp] - 1 && dim[startProp] !== startDim[startProp]) {
4954                    sorted.push([el]);
4955                    break;
4956                }
4957
4958                if (dim[endProp] - 1 > startDim[startProp] || dim[startProp] === startDim[startProp]) {
4959                    current.push(el);
4960                    break;
4961                }
4962
4963                if (j === 0) {
4964                    sorted.unshift([el]);
4965                    break;
4966                }
4967
4968            }
4969
4970        }
4971
4972        return sorted;
4973    }
4974
4975    function getOffset(element, offset) {
4976        var assign;
4977
4978        if ( offset === void 0 ) offset = false;
4979
4980        var offsetTop = element.offsetTop;
4981        var offsetLeft = element.offsetLeft;
4982        var offsetHeight = element.offsetHeight;
4983        var offsetWidth = element.offsetWidth;
4984
4985        if (offset) {
4986            (assign = offsetPosition(element), offsetTop = assign[0], offsetLeft = assign[1]);
4987        }
4988
4989        return {
4990            top: offsetTop,
4991            left: offsetLeft,
4992            bottom: offsetTop + offsetHeight,
4993            right: offsetLeft + offsetWidth
4994        };
4995    }
4996
4997    var grid = {
4998
4999        extends: Margin,
5000
5001        mixins: [Class],
5002
5003        name: 'grid',
5004
5005        props: {
5006            masonry: Boolean,
5007            parallax: Number
5008        },
5009
5010        data: {
5011            margin: 'uk-grid-margin',
5012            clsStack: 'uk-grid-stack',
5013            masonry: false,
5014            parallax: 0
5015        },
5016
5017        connected: function() {
5018            this.masonry && addClass(this.$el, 'uk-flex-top uk-flex-wrap-top');
5019        },
5020
5021        update: [
5022
5023            {
5024
5025                write: function(ref) {
5026                    var columns = ref.columns;
5027
5028                    toggleClass(this.$el, this.clsStack, columns.length < 2);
5029                },
5030
5031                events: ['resize']
5032
5033            },
5034
5035            {
5036
5037                read: function(data) {
5038
5039                    var columns = data.columns;
5040                    var rows = data.rows;
5041
5042                    // Filter component makes elements positioned absolute
5043                    if (!columns.length || !this.masonry && !this.parallax || positionedAbsolute(this.$el)) {
5044                        data.translates = false;
5045                        return false;
5046                    }
5047
5048                    var translates = false;
5049
5050                    var nodes = children(this.$el);
5051                    var columnHeights = getColumnHeights(columns);
5052                    var margin = getMarginTop(nodes, this.margin) * (rows.length - 1);
5053                    var elHeight = Math.max.apply(Math, columnHeights) + margin;
5054
5055                    if (this.masonry) {
5056                        columns = columns.map(function (column) { return sortBy$1(column, 'offsetTop'); });
5057                        translates = getTranslates(rows, columns);
5058                    }
5059
5060                    var padding = Math.abs(this.parallax);
5061                    if (padding) {
5062                        padding = columnHeights.reduce(function (newPadding, hgt, i) { return Math.max(newPadding, hgt + margin + (i % 2 ? padding : padding / 8) - elHeight); }
5063                            , 0);
5064                    }
5065
5066                    return {padding: padding, columns: columns, translates: translates, height: translates ? elHeight : ''};
5067
5068                },
5069
5070                write: function(ref) {
5071                    var height = ref.height;
5072                    var padding = ref.padding;
5073
5074
5075                    css(this.$el, 'paddingBottom', padding || '');
5076                    height !== false && css(this.$el, 'height', height);
5077
5078                },
5079
5080                events: ['resize']
5081
5082            },
5083
5084            {
5085
5086                read: function(ref) {
5087                    var height$1 = ref.height;
5088
5089
5090                    if (positionedAbsolute(this.$el)) {
5091                        return false;
5092                    }
5093
5094                    return {
5095                        scrolled: this.parallax
5096                            ? scrolledOver(this.$el, height$1 ? height$1 - height(this.$el) : 0) * Math.abs(this.parallax)
5097                            : false
5098                    };
5099                },
5100
5101                write: function(ref) {
5102                    var columns = ref.columns;
5103                    var scrolled = ref.scrolled;
5104                    var translates = ref.translates;
5105
5106
5107                    if (scrolled === false && !translates) {
5108                        return;
5109                    }
5110
5111                    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)")); }
5112                        ); }
5113                    );
5114
5115                },
5116
5117                events: ['scroll', 'resize']
5118
5119            }
5120
5121        ]
5122
5123    };
5124
5125    function positionedAbsolute(el) {
5126        return children(el).some(function (el) { return css(el, 'position') === 'absolute'; });
5127    }
5128
5129    function getTranslates(rows, columns) {
5130
5131        var rowHeights = rows.map(function (row) { return Math.max.apply(Math, row.map(function (el) { return el.offsetHeight; })); }
5132        );
5133
5134        return columns.map(function (elements) {
5135            var prev = 0;
5136            return elements.map(function (element, row) { return prev += row
5137                    ? rowHeights[row - 1] - elements[row - 1].offsetHeight
5138                    : 0; }
5139            );
5140        });
5141    }
5142
5143    function getMarginTop(nodes, cls) {
5144
5145        var ref = nodes.filter(function (el) { return hasClass(el, cls); });
5146        var node = ref[0];
5147
5148        return toFloat(node
5149            ? css(node, 'marginTop')
5150            : css(nodes[0], 'paddingLeft'));
5151    }
5152
5153    function getColumnHeights(columns) {
5154        return columns.map(function (column) { return column.reduce(function (sum, el) { return sum + el.offsetHeight; }, 0); }
5155        );
5156    }
5157
5158    // IE 11 fix (min-height on a flex container won't apply to its flex items)
5159    var FlexBug = isIE ? {
5160
5161        props: {
5162            selMinHeight: String
5163        },
5164
5165        data: {
5166            selMinHeight: false,
5167            forceHeight: false
5168        },
5169
5170        computed: {
5171
5172            elements: function(ref, $el) {
5173                var selMinHeight = ref.selMinHeight;
5174
5175                return selMinHeight ? $$(selMinHeight, $el) : [$el];
5176            }
5177
5178        },
5179
5180        update: [
5181
5182            {
5183
5184                read: function() {
5185                    css(this.elements, 'height', '');
5186                },
5187
5188                order: -5,
5189
5190                events: ['resize']
5191
5192            },
5193
5194            {
5195
5196                write: function() {
5197                    var this$1$1 = this;
5198
5199                    this.elements.forEach(function (el) {
5200                        var height = toFloat(css(el, 'minHeight'));
5201                        if (height && (this$1$1.forceHeight || Math.round(height + boxModelAdjust(el, 'height', 'content-box')) >= el.offsetHeight)) {
5202                            css(el, 'height', height);
5203                        }
5204                    });
5205                },
5206
5207                order: 5,
5208
5209                events: ['resize']
5210
5211            }
5212
5213        ]
5214
5215    } : {};
5216
5217    var heightMatch = {
5218
5219        mixins: [FlexBug],
5220
5221        args: 'target',
5222
5223        props: {
5224            target: String,
5225            row: Boolean
5226        },
5227
5228        data: {
5229            target: '> *',
5230            row: true,
5231            forceHeight: true
5232        },
5233
5234        computed: {
5235
5236            elements: function(ref, $el) {
5237                var target = ref.target;
5238
5239                return $$(target, $el);
5240            }
5241
5242        },
5243
5244        update: {
5245
5246            read: function() {
5247                return {
5248                    rows: (this.row ? getRows(this.elements) : [this.elements]).map(match$1)
5249                };
5250            },
5251
5252            write: function(ref) {
5253                var rows = ref.rows;
5254
5255                rows.forEach(function (ref) {
5256                        var heights = ref.heights;
5257                        var elements = ref.elements;
5258
5259                        return elements.forEach(function (el, i) { return css(el, 'minHeight', heights[i]); }
5260                    );
5261                }
5262                );
5263            },
5264
5265            events: ['resize']
5266
5267        }
5268
5269    };
5270
5271    function match$1(elements) {
5272
5273        if (elements.length < 2) {
5274            return {heights: [''], elements: elements};
5275        }
5276
5277        var heights = elements.map(getHeight);
5278        var max = Math.max.apply(Math, heights);
5279        var hasMinHeight = elements.some(function (el) { return el.style.minHeight; });
5280        var hasShrunk = elements.some(function (el, i) { return !el.style.minHeight && heights[i] < max; });
5281
5282        if (hasMinHeight && hasShrunk) {
5283            css(elements, 'minHeight', '');
5284            heights = elements.map(getHeight);
5285            max = Math.max.apply(Math, heights);
5286        }
5287
5288        heights = elements.map(function (el, i) { return heights[i] === max && toFloat(el.style.minHeight).toFixed(2) !== max.toFixed(2) ? '' : max; }
5289        );
5290
5291        return {heights: heights, elements: elements};
5292    }
5293
5294    function getHeight(element) {
5295
5296        var style = false;
5297        if (!isVisible(element)) {
5298            style = element.style.display;
5299            css(element, 'display', 'block', 'important');
5300        }
5301
5302        var height = dimensions(element).height - boxModelAdjust(element, 'height', 'content-box');
5303
5304        if (style !== false) {
5305            css(element, 'display', style);
5306        }
5307
5308        return height;
5309    }
5310
5311    var heightViewport = {
5312
5313        mixins: [FlexBug],
5314
5315        props: {
5316            expand: Boolean,
5317            offsetTop: Boolean,
5318            offsetBottom: Boolean,
5319            minHeight: Number
5320        },
5321
5322        data: {
5323            expand: false,
5324            offsetTop: false,
5325            offsetBottom: false,
5326            minHeight: 0
5327        },
5328
5329        update: {
5330
5331            read: function(ref) {
5332                var prev = ref.minHeight;
5333
5334
5335                if (!isVisible(this.$el)) {
5336                    return false;
5337                }
5338
5339                var minHeight = '';
5340                var box = boxModelAdjust(this.$el, 'height', 'content-box');
5341
5342                if (this.expand) {
5343
5344                    minHeight = height(window) - (dimensions(document.documentElement).height - dimensions(this.$el).height) - box || '';
5345
5346                } else {
5347
5348                    // on mobile devices (iOS and Android) window.innerHeight !== 100vh
5349                    minHeight = 'calc(100vh';
5350
5351                    if (this.offsetTop) {
5352
5353                        var ref$1 = offset(this.$el);
5354                        var top = ref$1.top;
5355                        minHeight += top > 0 && top < height(window) / 2 ? (" - " + top + "px") : '';
5356
5357                    }
5358
5359                    if (this.offsetBottom === true) {
5360
5361                        minHeight += " - " + (dimensions(this.$el.nextElementSibling).height) + "px";
5362
5363                    } else if (isNumeric(this.offsetBottom)) {
5364
5365                        minHeight += " - " + (this.offsetBottom) + "vh";
5366
5367                    } else if (this.offsetBottom && endsWith(this.offsetBottom, 'px')) {
5368
5369                        minHeight += " - " + (toFloat(this.offsetBottom)) + "px";
5370
5371                    } else if (isString(this.offsetBottom)) {
5372
5373                        minHeight += " - " + (dimensions(query(this.offsetBottom, this.$el)).height) + "px";
5374
5375                    }
5376
5377                    minHeight += (box ? (" - " + box + "px") : '') + ")";
5378
5379                }
5380
5381                return {minHeight: minHeight, prev: prev};
5382            },
5383
5384            write: function(ref) {
5385                var minHeight = ref.minHeight;
5386                var prev = ref.prev;
5387
5388
5389                css(this.$el, {minHeight: minHeight});
5390
5391                if (minHeight !== prev) {
5392                    this.$update(this.$el, 'resize');
5393                }
5394
5395                if (this.minHeight && toFloat(css(this.$el, 'minHeight')) < this.minHeight) {
5396                    css(this.$el, 'minHeight', this.minHeight);
5397                }
5398
5399            },
5400
5401            events: ['resize']
5402
5403        }
5404
5405    };
5406
5407    var SVG = {
5408
5409        args: 'src',
5410
5411        props: {
5412            id: Boolean,
5413            icon: String,
5414            src: String,
5415            style: String,
5416            width: Number,
5417            height: Number,
5418            ratio: Number,
5419            class: String,
5420            strokeAnimation: Boolean,
5421            focusable: Boolean, // IE 11
5422            attributes: 'list'
5423        },
5424
5425        data: {
5426            ratio: 1,
5427            include: ['style', 'class', 'focusable'],
5428            class: '',
5429            strokeAnimation: false
5430        },
5431
5432        beforeConnect: function() {
5433            this.class += ' uk-svg';
5434        },
5435
5436        connected: function() {
5437            var this$1$1 = this;
5438            var assign;
5439
5440
5441            if (!this.icon && includes(this.src, '#')) {
5442                (assign = this.src.split('#'), this.src = assign[0], this.icon = assign[1]);
5443            }
5444
5445            this.svg = this.getSvg().then(function (el) {
5446
5447                if (this$1$1._connected) {
5448
5449                    var svg = insertSVG(el, this$1$1.$el);
5450
5451                    if (this$1$1.svgEl && svg !== this$1$1.svgEl) {
5452                        remove$1(this$1$1.svgEl);
5453                    }
5454
5455                    this$1$1.applyAttributes(svg, el);
5456                    this$1$1.$emit();
5457                    return this$1$1.svgEl = svg;
5458                }
5459
5460            }, noop);
5461
5462        },
5463
5464        disconnected: function() {
5465            var this$1$1 = this;
5466
5467
5468            this.svg.then(function (svg) {
5469                if (!this$1$1._connected) {
5470
5471                    if (isVoidElement(this$1$1.$el)) {
5472                        this$1$1.$el.hidden = false;
5473                    }
5474
5475                    remove$1(svg);
5476                    this$1$1.svgEl = null;
5477                }
5478            });
5479
5480            this.svg = null;
5481
5482        },
5483
5484        update: {
5485
5486            read: function() {
5487                return !!(this.strokeAnimation && this.svgEl && isVisible(this.svgEl));
5488            },
5489
5490            write: function() {
5491                applyAnimation(this.svgEl);
5492            },
5493
5494            type: ['resize']
5495
5496        },
5497
5498        methods: {
5499
5500            getSvg: function() {
5501                var this$1$1 = this;
5502
5503                return loadSVG(this.src).then(function (svg) { return parseSVG(svg, this$1$1.icon) || Promise$1.reject('SVG not found.'); }
5504                );
5505            },
5506
5507            applyAttributes: function(el, ref) {
5508                var this$1$1 = this;
5509
5510
5511                for (var prop in this.$options.props) {
5512                    if (includes(this.include, prop) && (prop in this)) {
5513                        attr(el, prop, this[prop]);
5514                    }
5515                }
5516
5517                for (var attribute in this.attributes) {
5518                    var ref$1 = this.attributes[attribute].split(':', 2);
5519                    var prop$1 = ref$1[0];
5520                    var value = ref$1[1];
5521                    attr(el, prop$1, value);
5522                }
5523
5524                if (!this.id) {
5525                    removeAttr(el, 'id');
5526                }
5527
5528                var props = ['width', 'height'];
5529                var dimensions = props.map(function (prop) { return this$1$1[prop]; });
5530
5531                if (!dimensions.some(function (val) { return val; })) {
5532                    dimensions = props.map(function (prop) { return attr(ref, prop); });
5533                }
5534
5535                var viewBox = attr(ref, 'viewBox');
5536                if (viewBox && !dimensions.some(function (val) { return val; })) {
5537                    dimensions = viewBox.split(' ').slice(2);
5538                }
5539
5540                dimensions.forEach(function (val, i) { return attr(el, props[i], toFloat(val) * this$1$1.ratio || null); }
5541                );
5542
5543            }
5544
5545        }
5546
5547    };
5548
5549    var loadSVG = memoize(function (src) { return new Promise$1(function (resolve, reject) {
5550
5551            if (!src) {
5552                reject();
5553                return;
5554            }
5555
5556            if (startsWith(src, 'data:')) {
5557                resolve(decodeURIComponent(src.split(',')[1]));
5558            } else {
5559
5560                ajax(src).then(
5561                    function (xhr) { return resolve(xhr.response); },
5562                    function () { return reject('SVG not found.'); }
5563                );
5564
5565            }
5566        }); }
5567    );
5568
5569    function parseSVG(svg, icon) {
5570
5571        if (icon && includes(svg, '<symbol')) {
5572            svg = parseSymbols(svg, icon) || svg;
5573        }
5574
5575        svg = $(svg.substr(svg.indexOf('<svg')));
5576        return svg && svg.hasChildNodes() && svg;
5577    }
5578
5579    var symbolRe = /<symbol([^]*?id=(['"])(.+?)\2[^]*?<\/)symbol>/g;
5580    var symbols = {};
5581
5582    function parseSymbols(svg, icon) {
5583
5584        if (!symbols[svg]) {
5585
5586            symbols[svg] = {};
5587
5588            symbolRe.lastIndex = 0;
5589
5590            var match;
5591            while ((match = symbolRe.exec(svg))) {
5592                symbols[svg][match[3]] = "<svg xmlns=\"http://www.w3.org/2000/svg\"" + (match[1]) + "svg>";
5593            }
5594
5595        }
5596
5597        return symbols[svg][icon];
5598    }
5599
5600    function applyAnimation(el) {
5601
5602        var length = getMaxPathLength(el);
5603
5604        if (length) {
5605            el.style.setProperty('--uk-animation-stroke', length);
5606        }
5607
5608    }
5609
5610    function getMaxPathLength(el) {
5611        return Math.ceil(Math.max.apply(Math, [ 0 ].concat( $$('[stroke]', el).map(function (stroke) {
5612            try {
5613                return stroke.getTotalLength();
5614            } catch (e) {
5615                return 0;
5616            }
5617        }) )));
5618    }
5619
5620    function insertSVG(el, root) {
5621
5622        if (isVoidElement(root) || root.tagName === 'CANVAS') {
5623
5624            root.hidden = true;
5625
5626            var next = root.nextElementSibling;
5627            return equals(el, next)
5628                ? next
5629                : after(root, el);
5630
5631        }
5632
5633        var last = root.lastElementChild;
5634        return equals(el, last)
5635            ? last
5636            : append(root, el);
5637    }
5638
5639    function equals(el, other) {
5640        return isSVG(el) && isSVG(other) && innerHTML(el) === innerHTML(other);
5641    }
5642
5643    function isSVG(el) {
5644        return el && el.tagName === 'svg';
5645    }
5646
5647    function innerHTML(el) {
5648        return (el.innerHTML || (new XMLSerializer()).serializeToString(el).replace(/<svg.*?>(.*?)<\/svg>/g, '$1')).replace(/\s/g, '');
5649    }
5650
5651    var closeIcon = "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\"><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" x1=\"1\" y1=\"1\" x2=\"13\" y2=\"13\"/><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" x1=\"13\" y1=\"1\" x2=\"1\" y2=\"13\"/></svg>";
5652
5653    var closeLarge = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" x1=\"1\" y1=\"1\" x2=\"19\" y2=\"19\"/><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" x1=\"19\" y1=\"1\" x2=\"1\" y2=\"19\"/></svg>";
5654
5655    var marker = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"9\" y=\"4\" width=\"1\" height=\"11\"/><rect x=\"4\" y=\"9\" width=\"11\" height=\"1\"/></svg>";
5656
5657    var navbarToggleIcon = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect y=\"9\" width=\"20\" height=\"2\"/><rect y=\"3\" width=\"20\" height=\"2\"/><rect y=\"15\" width=\"20\" height=\"2\"/></svg>";
5658
5659    var overlayIcon = "<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"19\" y=\"0\" width=\"1\" height=\"40\"/><rect x=\"0\" y=\"19\" width=\"40\" height=\"1\"/></svg>";
5660
5661    var paginationNext = "<svg width=\"7\" height=\"12\" viewBox=\"0 0 7 12\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" points=\"1 1 6 6 1 11\"/></svg>";
5662
5663    var paginationPrevious = "<svg width=\"7\" height=\"12\" viewBox=\"0 0 7 12\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" points=\"6 1 1 6 6 11\"/></svg>";
5664
5665    var searchIcon = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"9\" cy=\"9\" r=\"7\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M14,14 L18,18 L14,14 Z\"/></svg>";
5666
5667    var searchLarge = "<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.8\" cx=\"17.5\" cy=\"17.5\" r=\"16.5\"/><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.8\" x1=\"38\" y1=\"39\" x2=\"29\" y2=\"30\"/></svg>";
5668
5669    var searchNavbar = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10.5\" cy=\"10.5\" r=\"9.5\"/><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" x1=\"23\" y1=\"23\" x2=\"17\" y2=\"17\"/></svg>";
5670
5671    var slidenavNext = "<svg width=\"14\" height=\"24\" viewBox=\"0 0 14 24\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" points=\"1.225,23 12.775,12 1.225,1 \"/></svg>";
5672
5673    var slidenavNextLarge = "<svg width=\"25\" height=\"40\" viewBox=\"0 0 25 40\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"2\" points=\"4.002,38.547 22.527,20.024 4,1.5 \"/></svg>";
5674
5675    var slidenavPrevious = "<svg width=\"14\" height=\"24\" viewBox=\"0 0 14 24\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" points=\"12.775,1 1.225,12 12.775,23 \"/></svg>";
5676
5677    var slidenavPreviousLarge = "<svg width=\"25\" height=\"40\" viewBox=\"0 0 25 40\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"2\" points=\"20.527,1.5 2,20.024 20.525,38.547 \"/></svg>";
5678
5679    var spinner = "<svg width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" cx=\"15\" cy=\"15\" r=\"14\"/></svg>";
5680
5681    var totop = "<svg width=\"18\" height=\"10\" viewBox=\"0 0 18 10\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" points=\"1 9 9 1 17 9 \"/></svg>";
5682
5683    var icons = {
5684        spinner: spinner,
5685        totop: totop,
5686        marker: marker,
5687        'close-icon': closeIcon,
5688        'close-large': closeLarge,
5689        'navbar-toggle-icon': navbarToggleIcon,
5690        'overlay-icon': overlayIcon,
5691        'pagination-next': paginationNext,
5692        'pagination-previous': paginationPrevious,
5693        'search-icon': searchIcon,
5694        'search-large': searchLarge,
5695        'search-navbar': searchNavbar,
5696        'slidenav-next': slidenavNext,
5697        'slidenav-next-large': slidenavNextLarge,
5698        'slidenav-previous': slidenavPrevious,
5699        'slidenav-previous-large': slidenavPreviousLarge
5700    };
5701
5702    var Icon = {
5703
5704        install: install$3,
5705
5706        extends: SVG,
5707
5708        args: 'icon',
5709
5710        props: ['icon'],
5711
5712        data: {
5713            include: ['focusable']
5714        },
5715
5716        isIcon: true,
5717
5718        beforeConnect: function() {
5719            addClass(this.$el, 'uk-icon');
5720        },
5721
5722        methods: {
5723
5724            getSvg: function() {
5725
5726                var icon = getIcon(this.icon);
5727
5728                if (!icon) {
5729                    return Promise$1.reject('Icon not found.');
5730                }
5731
5732                return Promise$1.resolve(icon);
5733            }
5734
5735        }
5736
5737    };
5738
5739    var IconComponent = {
5740
5741        args: false,
5742
5743        extends: Icon,
5744
5745        data: function (vm) { return ({
5746            icon: hyphenate(vm.constructor.options.name)
5747        }); },
5748
5749        beforeConnect: function() {
5750            addClass(this.$el, this.$name);
5751        }
5752
5753    };
5754
5755    var Slidenav = {
5756
5757        extends: IconComponent,
5758
5759        beforeConnect: function() {
5760            addClass(this.$el, 'uk-slidenav');
5761        },
5762
5763        computed: {
5764
5765            icon: function(ref, $el) {
5766                var icon = ref.icon;
5767
5768                return hasClass($el, 'uk-slidenav-large')
5769                    ? (icon + "-large")
5770                    : icon;
5771            }
5772
5773        }
5774
5775    };
5776
5777    var Search = {
5778
5779        extends: IconComponent,
5780
5781        computed: {
5782
5783            icon: function(ref, $el) {
5784                var icon = ref.icon;
5785
5786                return hasClass($el, 'uk-search-icon') && parents($el, '.uk-search-large').length
5787                    ? 'search-large'
5788                    : parents($el, '.uk-search-navbar').length
5789                        ? 'search-navbar'
5790                        : icon;
5791            }
5792
5793        }
5794
5795    };
5796
5797    var Close = {
5798
5799        extends: IconComponent,
5800
5801        computed: {
5802
5803            icon: function() {
5804                return ("close-" + (hasClass(this.$el, 'uk-close-large') ? 'large' : 'icon'));
5805            }
5806
5807        }
5808
5809    };
5810
5811    var Spinner = {
5812
5813        extends: IconComponent,
5814
5815        connected: function() {
5816            var this$1$1 = this;
5817
5818            this.svg.then(function (svg) { return svg && this$1$1.ratio !== 1 && css($('circle', svg), 'strokeWidth', 1 / this$1$1.ratio); });
5819        }
5820
5821    };
5822
5823    var parsed = {};
5824    function install$3(UIkit) {
5825        UIkit.icon.add = function (name, svg) {
5826            var obj;
5827
5828
5829            var added = isString(name) ? (( obj = {}, obj[name] = svg, obj )) : name;
5830            each(added, function (svg, name) {
5831                icons[name] = svg;
5832                delete parsed[name];
5833            });
5834
5835            if (UIkit._initialized) {
5836                apply$1(document.body, function (el) { return each(UIkit.getComponents(el), function (cmp) {
5837                        cmp.$options.isIcon && cmp.icon in added && cmp.$reset();
5838                    }); }
5839                );
5840            }
5841        };
5842    }
5843
5844    function getIcon(icon) {
5845
5846        if (!icons[icon]) {
5847            return null;
5848        }
5849
5850        if (!parsed[icon]) {
5851            parsed[icon] = $((icons[applyRtl(icon)] || icons[icon]).trim());
5852        }
5853
5854        return parsed[icon].cloneNode(true);
5855    }
5856
5857    function applyRtl(icon) {
5858        return isRtl ? swap(swap(icon, 'left', 'right'), 'previous', 'next') : icon;
5859    }
5860
5861    var img = {
5862
5863        args: 'dataSrc',
5864
5865        props: {
5866            dataSrc: String,
5867            dataSrcset: Boolean,
5868            sizes: String,
5869            width: Number,
5870            height: Number,
5871            offsetTop: String,
5872            offsetLeft: String,
5873            target: String
5874        },
5875
5876        data: {
5877            dataSrc: '',
5878            dataSrcset: false,
5879            sizes: false,
5880            width: false,
5881            height: false,
5882            offsetTop: '50vh',
5883            offsetLeft: '50vw',
5884            target: false
5885        },
5886
5887        computed: {
5888
5889            cacheKey: function(ref) {
5890                var dataSrc = ref.dataSrc;
5891
5892                return ((this.$name) + "." + dataSrc);
5893            },
5894
5895            width: function(ref) {
5896                var width = ref.width;
5897                var dataWidth = ref.dataWidth;
5898
5899                return width || dataWidth;
5900            },
5901
5902            height: function(ref) {
5903                var height = ref.height;
5904                var dataHeight = ref.dataHeight;
5905
5906                return height || dataHeight;
5907            },
5908
5909            sizes: function(ref) {
5910                var sizes = ref.sizes;
5911                var dataSizes = ref.dataSizes;
5912
5913                return sizes || dataSizes;
5914            },
5915
5916            isImg: function(_, $el) {
5917                return isImg($el);
5918            },
5919
5920            target: {
5921
5922                get: function(ref) {
5923                    var target = ref.target;
5924
5925                    return [this.$el ].concat( queryAll(target, this.$el));
5926                },
5927
5928                watch: function() {
5929                    this.observe();
5930                }
5931
5932            },
5933
5934            offsetTop: function(ref) {
5935                var offsetTop = ref.offsetTop;
5936
5937                return toPx(offsetTop, 'height');
5938            },
5939
5940            offsetLeft: function(r
5940ef) {
5941                var offsetLeft = ref.offsetLeft;
5942
5943                return toPx(offsetLeft, 'width');
5944            }
5945
5946        },
5947
5948        connected: function() {
5949
5950            if (!window.IntersectionObserver) {
5951                setSrcAttrs(this.$el, this.dataSrc, this.dataSrcset, this.sizes);
5952                return;
5953            }
5954
5955            if (storage[this.cacheKey]) {
5956                setSrcAttrs(this.$el, storage[this.cacheKey], this.dataSrcset, this.sizes);
5957            } else if (this.isImg && this.width && this.height) {
5958                setSrcAttrs(this.$el, getPlaceholderImage(this.width, this.height, this.sizes));
5959            }
5960
5961            this.observer = new IntersectionObserver(this.load, {
5962                rootMargin: ((this.offsetTop) + "px " + (this.offsetLeft) + "px")
5963            });
5964
5965            requestAnimationFrame(this.observe);
5966
5967        },
5968
5969        disconnected: function() {
5970            this.observer && this.observer.disconnect();
5971        },
5972
5973        update: {
5974
5975            read: function(ref) {
5976                var this$1$1 = this;
5977                var image = ref.image;
5978
5979
5980                if (!this.observer) {
5981                    return false;
5982                }
5983
5984                if (!image && document.readyState === 'complete') {
5985                    this.load(this.observer.takeRecords());
5986                }
5987
5988                if (this.isImg) {
5989                    return false;
5990                }
5991
5992                image && image.then(function (img) { return img && img.currentSrc !== '' && setSrcAttrs(this$1$1.$el, currentSrc(img)); });
5993
5994            },
5995
5996            write: function(data) {
5997
5998                if (this.dataSrcset && window.devicePixelRatio !== 1) {
5999
6000                    var bgSize = css(this.$el, 'backgroundSize');
6001                    if (bgSize.match(/^(auto\s?)+$/) || toFloat(bgSize) === data.bgSize) {
6002                        data.bgSize = getSourceSize(this.dataSrcset, this.sizes);
6003                        css(this.$el, 'backgroundSize', ((data.bgSize) + "px"));
6004                    }
6005
6006                }
6007
6008            },
6009
6010            events: ['resize']
6011
6012        },
6013
6014        methods: {
6015
6016            load: function(entries) {
6017                var this$1$1 = this;
6018
6019
6020                // Old chromium based browsers (UC Browser) did not implement `isIntersecting`
6021                if (!entries.some(function (entry) { return isUndefined(entry.isIntersecting) || entry.isIntersecting; })) {
6022                    return;
6023                }
6024
6025                this._data.image = getImage(this.dataSrc, this.dataSrcset, this.sizes).then(function (img) {
6026
6027                    setSrcAttrs(this$1$1.$el, currentSrc(img), img.srcset, img.sizes);
6028                    storage[this$1$1.cacheKey] = currentSrc(img);
6029                    return img;
6030
6031                }, function (e) { return trigger(this$1$1.$el, new e.constructor(e.type, e)); });
6032
6033                this.observer.disconnect();
6034            },
6035
6036            observe: function() {
6037                var this$1$1 = this;
6038
6039                if (this._connected && !this._data.image) {
6040                    this.target.forEach(function (el) { return this$1$1.observer.observe(el); });
6041                }
6042            }
6043
6044        }
6045
6046    };
6047
6048    function setSrcAttrs(el, src, srcset, sizes) {
6049
6050        if (isImg(el)) {
6051            var set = function (prop, val) { return val && val !== el[prop] && (el[prop] = val); };
6052            set('sizes', sizes);
6053            set('srcset', srcset);
6054            set('src', src);
6055        } else if (src) {
6056
6057            var change = !includes(el.style.backgroundImage, src);
6058            if (change) {
6059                css(el, 'backgroundImage', ("url(" + (escape(src)) + ")"));
6060                trigger(el, createEvent('load', false));
6061            }
6062
6063        }
6064
6065    }
6066
6067    function getPlaceholderImage(width, height, sizes) {
6068        var assign;
6069
6070
6071        if (sizes) {
6072            ((assign = Dimensions.ratio({width: width, height: height}, 'width', toPx(sizesToPixel(sizes))), width = assign.width, height = assign.height));
6073        }
6074
6075        return ("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"" + width + "\" height=\"" + height + "\"></svg>");
6076    }
6077
6078    var sizesRe = /\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g;
6079    function sizesToPixel(sizes) {
6080        var matches;
6081
6082        sizesRe.lastIndex = 0;
6083
6084        while ((matches = sizesRe.exec(sizes))) {
6085            if (!matches[1] || window.matchMedia(matches[1]).matches) {
6086                matches = evaluateSize(matches[2]);
6087                break;
6088            }
6089        }
6090
6091        return matches || '100vw';
6092    }
6093
6094    var sizeRe = /\d+(?:\w+|%)/g;
6095    var additionRe = /[+-]?(\d+)/g;
6096    function evaluateSize(size) {
6097        return startsWith(size, 'calc')
6098            ? size
6099                .slice(5, -1)
6100                .replace(sizeRe, function (size) { return toPx(size); })
6101                .replace(/ /g, '')
6102                .match(additionRe)
6103                .reduce(function (a, b) { return a + +b; }, 0)
6104            : size;
6105    }
6106
6107    var srcSetRe = /\s+\d+w\s*(?:,|$)/g;
6108    function getSourceSize(srcset, sizes) {
6109        var srcSize = toPx(sizesToPixel(sizes));
6110        var descriptors = (srcset.match(srcSetRe) || []).map(toFloat).sort(function (a, b) { return a - b; });
6111
6112        return descriptors.filter(function (size) { return size >= srcSize; })[0] || descriptors.pop() || '';
6113    }
6114
6115    function isImg(el) {
6116        return el.tagName === 'IMG';
6117    }
6118
6119    function currentSrc(el) {
6120        return el.currentSrc || el.src;
6121    }
6122
6123    var key = '__test__';
6124    var storage;
6125
6126    // workaround for Safari's private browsing mode and accessing sessionStorage in Blink
6127    try {
6128        storage = window.sessionStorage || {};
6129        storage[key] = 1;
6130        delete storage[key];
6131    } catch (e) {
6132        storage = {};
6133    }
6134
6135    var Media = {
6136
6137        props: {
6138            media: Boolean
6139        },
6140
6141        data: {
6142            media: false
6143        },
6144
6145        computed: {
6146
6147            matchMedia: function() {
6148                var media = toMedia(this.media);
6149                return !media || window.matchMedia(media).matches;
6150            }
6151
6152        }
6153
6154    };
6155
6156    function toMedia(value) {
6157
6158        if (isString(value)) {
6159            if (value[0] === '@') {
6160                var name = "breakpoint-" + (value.substr(1));
6161                value = toFloat(getCssVar(name));
6162            } else if (isNaN(value)) {
6163                return value;
6164            }
6165        }
6166
6167        return value && !isNaN(value) ? ("(min-width: " + value + "px)") : false;
6168    }
6169
6170    var leader = {
6171
6172        mixins: [Class, Media],
6173
6174        props: {
6175            fill: String
6176        },
6177
6178        data: {
6179            fill: '',
6180            clsWrapper: 'uk-leader-fill',
6181            clsHide: 'uk-leader-hide',
6182            attrFill: 'data-fill'
6183        },
6184
6185        computed: {
6186
6187            fill: function(ref) {
6188                var fill = ref.fill;
6189
6190                return fill || getCssVar('leader-fill-content');
6191            }
6192
6193        },
6194
6195        connected: function() {
6196            var assign;
6197
6198            (assign = wrapInner(this.$el, ("<span class=\"" + (this.clsWrapper) + "\">")), this.wrapper = assign[0]);
6199        },
6200
6201        disconnected: function() {
6202            unwrap(this.wrapper.childNodes);
6203        },
6204
6205        update: {
6206
6207            read: function(ref) {
6208                var changed = ref.changed;
6209                var width = ref.width;
6210
6211
6212                var prev = width;
6213
6214                width = Math.floor(this.$el.offsetWidth / 2);
6215
6216                return {
6217                    width: width,
6218                    fill: this.fill,
6219                    changed: changed || prev !== width,
6220                    hide: !this.matchMedia
6221                };
6222            },
6223
6224            write: function(data) {
6225
6226                toggleClass(this.wrapper, this.clsHide, data.hide);
6227
6228                if (data.changed) {
6229                    data.changed = false;
6230                    attr(this.wrapper, this.attrFill, new Array(data.width).join(data.fill));
6231                }
6232
6233            },
6234
6235            events: ['resize']
6236
6237        }
6238
6239    };
6240
6241    var active = [];
6242
6243    var Modal = {
6244
6245        mixins: [Class, Container, Togglable],
6246
6247        props: {
6248            selPanel: String,
6249            selClose: String,
6250            escClose: Boolean,
6251            bgClose: Boolean,
6252            stack: Boolean
6253        },
6254
6255        data: {
6256            cls: 'uk-open',
6257            escClose: true,
6258            bgClose: true,
6259            overlay: true,
6260            stack: false
6261        },
6262
6263        computed: {
6264
6265            panel: function(ref, $el) {
6266                var selPanel = ref.selPanel;
6267
6268                return $(selPanel, $el);
6269            },
6270
6271            transitionElement: function() {
6272                return this.panel;
6273            },
6274
6275            bgClose: function(ref) {
6276                var bgClose = ref.bgClose;
6277
6278                return bgClose && this.panel;
6279            }
6280
6281        },
6282
6283        beforeDisconnect: function() {
6284            if (includes(active, this)) {
6285                this.toggleElement(this.$el, false, false);
6286            }
6287        },
6288
6289        events: [
6290
6291            {
6292
6293                name: 'click',
6294
6295                delegate: function() {
6296                    return this.selClose;
6297                },
6298
6299                handler: function(e) {
6300                    e.preventDefault();
6301                    this.hide();
6302                }
6303
6304            },
6305
6306            {
6307
6308                name: 'toggle',
6309
6310                self: true,
6311
6312                handler: function(e, toggle) {
6313
6314                    if (e.defaultPrevented) {
6315                        return;
6316                    }
6317
6318                    e.preventDefault();
6319
6320                    if (this.isToggled() === includes(active, this)) {
6321                        this.toggle();
6322                    }
6323                }
6324
6325            },
6326
6327            {
6328                name: 'beforeshow',
6329
6330                self: true,
6331
6332                handler: function(e) {
6333
6334                    if (includes(active, this)) {
6335                        return false;
6336                    }
6337
6338                    if (!this.stack && active.length) {
6339                        Promise$1.all(active.map(function (modal) { return modal.hide(); })).then(this.show);
6340                        e.preventDefault();
6341                    } else {
6342                        active.push(this);
6343                    }
6344                }
6345
6346            },
6347
6348            {
6349
6350                name: 'show',
6351
6352                self: true,
6353
6354                handler: function() {
6355                    var this$1$1 = this;
6356
6357
6358                    var docEl = document.documentElement;
6359
6360                    if (width(window) > docEl.clientWidth && this.overlay) {
6361                        css(document.body, 'overflowY', 'scroll');
6362                    }
6363
6364                    if (this.stack) {
6365                        css(this.$el, 'zIndex', toFloat(css(this.$el, 'zIndex')) + active.length);
6366                    }
6367
6368                    addClass(docEl, this.clsPage);
6369
6370                    if (this.bgClose) {
6371                        once(this.$el, 'hide', on(document, pointerDown, function (ref) {
6372                            var target = ref.target;
6373
6374
6375                            if (last(active) !== this$1$1 || this$1$1.overlay && !within(target, this$1$1.$el) || within(target, this$1$1.panel)) {
6376                                return;
6377                            }
6378
6379                            once(document, (pointerUp + " " + pointerCancel + " scroll"), function (ref) {
6380                                var defaultPrevented = ref.defaultPrevented;
6381                                var type = ref.type;
6382                                var newTarget = ref.target;
6383
6384                                if (!defaultPrevented && type === pointerUp && target === newTarget) {
6385                                    this$1$1.hide();
6386                                }
6387                            }, true);
6388
6389                        }), {self: true});
6390                    }
6391
6392                    if (this.escClose) {
6393                        once(this.$el, 'hide', on(document, 'keydown', function (e) {
6394                            if (e.keyCode === 27 && last(active) === this$1$1) {
6395                                this$1$1.hide();
6396                            }
6397                        }), {self: true});
6398                    }
6399                }
6400
6401            },
6402
6403            {
6404                name: 'shown',
6405
6406                self: true,
6407
6408                handler: function() {
6409                    if (!isFocusable(this.$el)) {
6410                        attr(this.$el, 'tabindex', '-1');
6411                    }
6412
6413                    if (!$(':focus', this.$el)) {
6414                        this.$el.focus();
6415                    }
6416                }
6417            },
6418
6419            {
6420
6421                name: 'hidden',
6422
6423                self: true,
6424
6425                handler: function() {
6426                    var this$1$1 = this;
6427
6428
6429                    if (includes(active, this)) {
6430                        active.splice(active.indexOf(this), 1);
6431                    }
6432
6433                    if (!active.length) {
6434                        css(document.body, 'overflowY', '');
6435                    }
6436
6437                    css(this.$el, 'zIndex', '');
6438
6439                    if (!active.some(function (modal) { return modal.clsPage === this$1$1.clsPage; })) {
6440                        removeClass(document.documentElement, this.clsPage);
6441                    }
6442
6443                }
6444
6445            }
6446
6447        ],
6448
6449        methods: {
6450
6451            toggle: function() {
6452                return this.isToggled() ? this.hide() : this.show();
6453            },
6454
6455            show: function() {
6456                var this$1$1 = this;
6457
6458                if (this.container && parent(this.$el) !== this.container) {
6459                    append(this.container, this.$el);
6460                    return new Promise$1(function (resolve) { return requestAnimationFrame(function () { return this$1$1.show().then(resolve); }
6461                        ); }
6462                    );
6463                }
6464
6465                return this.toggleElement(this.$el, true, animate(this));
6466            },
6467
6468            hide: function() {
6469                return this.toggleElement(this.$el, false, animate(this));
6470            }
6471
6472        }
6473
6474    };
6475
6476    function animate(ref) {
6477        var transitionElement = ref.transitionElement;
6478        var _toggle = ref._toggle;
6479
6480        return function (el, show) { return new Promise$1(function (resolve, reject) { return once(el, 'show hide', function () {
6481                    el._reject && el._reject();
6482                    el._reject = reject;
6483
6484                    _toggle(el, show);
6485
6486                    var off = once(transitionElement, 'transitionstart', function () {
6487                        once(transitionElement, 'transitionend transitioncancel', resolve, {self: true});
6488                        clearTimeout(timer);
6489                    }, {self: true});
6490
6491                    var timer = setTimeout(function () {
6492                        off();
6493                        resolve();
6494                    }, toMs(css(transitionElement, 'transitionDuration')));
6495
6496                }); }
6497            ).then(function () { return delete el._reject; }); };
6498    }
6499
6500    var modal = {
6501
6502        install: install$2,
6503
6504        mixins: [Modal],
6505
6506        data: {
6507            clsPage: 'uk-modal-page',
6508            selPanel: '.uk-modal-dialog',
6509            selClose: '.uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full'
6510        },
6511
6512        events: [
6513
6514            {
6515                name: 'show',
6516
6517                self: true,
6518
6519                handler: function() {
6520
6521                    if (hasClass(this.panel, 'uk-margin-auto-vertical')) {
6522                        addClass(this.$el, 'uk-flex');
6523                    } else {
6524                        css(this.$el, 'display', 'block');
6525                    }
6526
6527                    height(this.$el); // force reflow
6528                }
6529            },
6530
6531            {
6532                name: 'hidden',
6533
6534                self: true,
6535
6536                handler: function() {
6537
6538                    css(this.$el, 'display', '');
6539                    removeClass(this.$el, 'uk-flex');
6540
6541                }
6542            }
6543
6544        ]
6545
6546    };
6547
6548    function install$2(ref) {
6549        var modal = ref.modal;
6550
6551
6552        modal.dialog = function (content, options) {
6553
6554            var dialog = modal(
6555                ("<div class=\"uk-modal\"> <div class=\"uk-modal-dialog\">" + content + "</div> </div>"),
6556                options
6557            );
6558
6559            dialog.show();
6560
6561            on(dialog.$el, 'hidden', function () { return Promise$1.resolve().then(function () { return dialog.$destroy(true); }
6562                ); }, {self: true}
6563            );
6564
6565            return dialog;
6566        };
6567
6568        modal.alert = function (message, options) {
6569            return openDialog(
6570                function (ref) {
6571                    var labels = ref.labels;
6572
6573                    return ("<div class=\"uk-modal-body\">" + (isString(message) ? message : html(message)) + "</div> <div class=\"uk-modal-footer uk-text-right\"> <button class=\"uk-button uk-button-primary uk-modal-close\" autofocus>" + (labels.ok) + "</button> </div>");
6574            },
6575                options,
6576                function (deferred) { return deferred.resolve(); }
6577            );
6578        };
6579
6580        modal.confirm = function (message, options) {
6581            return openDialog(
6582                function (ref) {
6583                    var labels = ref.labels;
6584
6585                    return ("<form> <div class=\"uk-modal-body\">" + (isString(message) ? message : html(message)) + "</div> <div class=\"uk-modal-footer uk-text-right\"> <button class=\"uk-button uk-button-default uk-modal-close\" type=\"button\">" + (labels.cancel) + "</button> <button class=\"uk-button uk-button-primary\" autofocus>" + (labels.ok) + "</button> </div> </form>");
6586            },
6587                options,
6588                function (deferred) { return deferred.reject(); }
6589            );
6590        };
6591
6592        modal.prompt = function (message, value, options) {
6593            return openDialog(
6594                function (ref) {
6595                    var labels = ref.labels;
6596
6597                    return ("<form class=\"uk-form-stacked\"> <div class=\"uk-modal-body\"> <label>" + (isString(message) ? message : html(message)) + "</label> <input class=\"uk-input\" value=\"" + (value || '') + "\" autofocus> </div> <div class=\"uk-modal-footer uk-text-right\"> <button class=\"uk-button uk-button-default uk-modal-close\" type=\"button\">" + (labels.cancel) + "</button> <button class=\"uk-button uk-button-primary\">" + (labels.ok) + "</button> </div> </form>");
6598            },
6599                options,
6600                function (deferred) { return deferred.resolve(null); },
6601                function (dialog) { return $('input', dialog.$el).value; }
6602            );
6603        };
6604
6605        modal.labels = {
6606            ok: 'Ok',
6607            cancel: 'Cancel'
6608        };
6609
6610        function openDialog(tmpl, options, hideFn, submitFn) {
6611
6612            options = assign({bgClose: false, escClose: true, labels: modal.labels}, options);
6613
6614            var dialog = modal.dialog(tmpl(options), options);
6615            var deferred = new Deferred();
6616
6617            var resolved = false;
6618
6619            on(dialog.$el, 'submit', 'form', function (e) {
6620                e.preventDefault();
6621                deferred.resolve(submitFn && submitFn(dialog));
6622                resolved = true;
6623                dialog.hide();
6624            });
6625
6626            on(dialog.$el, 'hide', function () { return !resolved && hideFn(deferred); });
6627
6628            deferred.promise.dialog = dialog;
6629
6630            return deferred.promise;
6631        }
6632
6633    }
6634
6635    var nav = {
6636
6637        extends: Accordion,
6638
6639        data: {
6640            targets: '> .uk-parent',
6641            toggle: '> a',
6642            content: '> ul'
6643        }
6644
6645    };
6646
6647    var navItem = '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle';
6648
6649    var navbar = {
6650
6651        mixins: [Class, Container, FlexBug],
6652
6653        props: {
6654            dropdown: String,
6655            mode: 'list',
6656            align: String,
6657            offset: Number,
6658            boundary: Boolean,
6659            boundaryAlign: Boolean,
6660            clsDrop: String,
6661            delayShow: Number,
6662            delayHide: Number,
6663            dropbar: Boolean,
6664            dropbarMode: String,
6665            dropbarAnchor: Boolean,
6666            duration: Number
6667        },
6668
6669        data: {
6670            dropdown: navItem,
6671            align: !isRtl ? 'left' : 'right',
6672            clsDrop: 'uk-navbar-dropdown',
6673            mode: undefined,
6674            offset: undefined,
6675            delayShow: undefined,
6676            delayHide: undefined,
6677            boundaryAlign: undefined,
6678            flip: 'x',
6679            boundary: true,
6680            dropbar: false,
6681            dropbarMode: 'slide',
6682            dropbarAnchor: false,
6683            duration: 200,
6684            forceHeight: true,
6685            selMinHeight: navItem,
6686            container: false
6687        },
6688
6689        computed: {
6690
6691            boundary: function(ref, $el) {
6692                var boundary = ref.boundary;
6693                var boundaryAlign = ref.boundaryAlign;
6694
6695                return boundary === true || boundaryAlign ? $el : boundary;
6696            },
6697
6698            dropbarAnchor: function(ref, $el) {
6699                var dropbarAnchor = ref.dropbarAnchor;
6700
6701                return query(dropbarAnchor, $el);
6702            },
6703
6704            pos: function(ref) {
6705                var align = ref.align;
6706
6707                return ("bottom-" + align);
6708            },
6709
6710            dropbar: {
6711
6712                get: function(ref) {
6713                    var dropbar = ref.dropbar;
6714
6715
6716                    if (!dropbar) {
6717                        return null;
6718                    }
6719
6720                    dropbar = this._dropbar || query(dropbar, this.$el) || $('+ .uk-navbar-dropbar', this.$el);
6721
6722                    return dropbar ? dropbar : (this._dropbar = $('<div></div>'));
6723
6724                },
6725
6726                watch: function(dropbar) {
6727                    addClass(dropbar, 'uk-navbar-dropbar');
6728                },
6729
6730                immediate: true
6731
6732            },
6733
6734            dropContainer: function(_, $el) {
6735                return this.container || $el;
6736            },
6737
6738            dropdowns: {
6739
6740                get: function(ref, $el) {
6741                    var this$1$1 = this;
6742                    var clsDrop = ref.clsDrop;
6743
6744                    var dropdowns = $$(("." + clsDrop), $el);
6745
6746                    if (this.dropContainer !== $el) {
6747                        $$(("." + clsDrop), this.dropContainer).forEach(function (el) {
6748                            var dropdown = this$1$1.getDropdown(el);
6749                            if (!includes(dropdowns, el) && dropdown && dropdown.target && within(dropdown.target, this$1$1.$el)) {
6750                                dropdowns.push(el);
6751                            }
6752                        });
6753                    }
6754
6755                    return dropdowns;
6756                },
6757
6758                watch: function(dropdowns) {
6759                    var this$1$1 = this;
6760
6761                    this.$create(
6762                        'drop',
6763                        dropdowns.filter(function (el) { return !this$1$1.getDropdown(el); }),
6764                        assign({}, this.$props, {boundary: this.boundary, pos: this.pos, offset: this.dropbar || this.offset})
6765                    );
6766                },
6767
6768                immediate: true
6769
6770            },
6771
6772            toggles: function(ref, $el) {
6773                var dropdown = ref.dropdown;
6774
6775                return $$(dropdown, $el);
6776            }
6777
6778        },
6779
6780        disconnected: function() {
6781            this.dropbar && remove$1(this.dropbar);
6782            delete this._dropbar;
6783        },
6784
6785        events: [
6786
6787            {
6788                name: 'mouseover focusin',
6789
6790                delegate: function() {
6791                    return this.dropdown;
6792                },
6793
6794                handler: function(ref) {
6795                    var current = ref.current;
6796
6797                    var active = this.getActive();
6798                    if (active && includes(active.mode, 'hover') && active.target && !within(active.target, current) && !active.tracker.movesTo(active.$el)) {
6799                        active.hide(false);
6800                    }
6801                }
6802
6803            },
6804
6805            {
6806                name: 'keydown',
6807
6808                delegate: function() {
6809                    return this.dropdown;
6810                },
6811
6812                handler: function(e) {
6813
6814                    var current = e.current;
6815                    var keyCode = e.keyCode;
6816                    var active = this.getActive();
6817
6818                    if (keyCode === keyMap.DOWN && hasAttr(current, 'aria-expanded')) {
6819
6820                        e.preventDefault();
6821
6822                        if (!active || active.target !== current) {
6823                            current.click();
6824                            once(this.dropContainer, 'show', function (ref) {
6825                                var target = ref.target;
6826
6827                                return focusFirstFocusableElement(target);
6828                            });
6829                        } else {
6830                            focusFirstFocusableElement(active.$el);
6831                        }
6832
6833                    }
6834
6835                    handleNavItemNavigation(e, this.toggles, active);
6836                }
6837            },
6838
6839            {
6840                name: 'keydown',
6841
6842                el: function() {
6843                    return this.dropContainer;
6844                },
6845
6846                delegate: function() {
6847                    return ("." + (this.clsDrop));
6848                },
6849
6850                handler: function(e) {
6851
6852                    var current = e.current;
6853                    var keyCode = e.keyCode;
6854
6855                    if (!includes(this.dropdowns, current)) {
6856                        return;
6857                    }
6858
6859                    var active = this.getActive();
6860                    var elements = $$(selFocusable, current);
6861                    var i = findIndex(elements, function (el) { return matches(el, ':focus'); });
6862
6863                    if (keyCode === keyMap.UP) {
6864                        e.preventDefault();
6865                        if (i > 0) {
6866                            elements[i - 1].focus();
6867                        }
6868                    }
6869
6870                    if (keyCode === keyMap.DOWN) {
6871                        e.preventDefault();
6872                        if (i < elements.length - 1) {
6873                            elements[i + 1].focus();
6874                        }
6875                    }
6876
6877                    if (keyCode === keyMap.ESC) {
6878                        active && active.target && active.target.focu
6878s();
6879                    }
6880
6881                    handleNavItemNavigation(e, this.toggles, active);
6882                }
6883            },
6884
6885            {
6886                name: 'mouseleave',
6887
6888                el: function() {
6889                    return this.dropbar;
6890                },
6891
6892                filter: function() {
6893                    return this.dropbar;
6894                },
6895
6896                handler: function() {
6897                    var active = this.getActive();
6898
6899                    if (active && includes(active.mode, 'hover') && !this.dropdowns.some(function (el) { return matches(el, ':hover'); })) {
6900                        active.hide();
6901                    }
6902                }
6903            },
6904
6905            {
6906                name: 'beforeshow',
6907
6908                el: function() {
6909                    return this.dropContainer;
6910                },
6911
6912                filter: function() {
6913                    return this.dropbar;
6914                },
6915
6916                handler: function() {
6917
6918                    if (!parent(this.dropbar)) {
6919                        after(this.dropbarAnchor || this.$el, this.dropbar);
6920                    }
6921
6922                }
6923            },
6924
6925            {
6926                name: 'show',
6927
6928                el: function() {
6929                    return this.dropContainer;
6930                },
6931
6932                filter: function() {
6933                    return this.dropbar;
6934                },
6935
6936                handler: function(_, ref) {
6937                    var $el = ref.$el;
6938                    var dir = ref.dir;
6939
6940                    if (!hasClass($el, this.clsDrop)) {
6941                        return;
6942                    }
6943
6944                    if (this.dropbarMode === 'slide') {
6945                        addClass(this.dropbar, 'uk-navbar-dropbar-slide');
6946                    }
6947
6948                    this.clsDrop && addClass($el, ((this.clsDrop) + "-dropbar"));
6949
6950                    if (dir === 'bottom') {
6951                        this.transitionTo($el.offsetHeight + toFloat(css($el, 'marginTop')) + toFloat(css($el, 'marginBottom')), $el);
6952                    }
6953                }
6954            },
6955
6956            {
6957                name: 'beforehide',
6958
6959                el: function() {
6960                    return this.dropContainer;
6961                },
6962
6963                filter: function() {
6964                    return this.dropbar;
6965                },
6966
6967                handler: function(e, ref) {
6968                    var $el = ref.$el;
6969
6970
6971                    var active = this.getActive();
6972
6973                    if (matches(this.dropbar, ':hover') && active && active.$el === $el) {
6974                        e.preventDefault();
6975                    }
6976                }
6977            },
6978
6979            {
6980                name: 'hide',
6981
6982                el: function() {
6983                    return this.dropContainer;
6984                },
6985
6986                filter: function() {
6987                    return this.dropbar;
6988                },
6989
6990                handler: function(_, ref) {
6991                    var $el = ref.$el;
6992
6993                    if (!hasClass($el, this.clsDrop)) {
6994                        return;
6995                    }
6996
6997                    var active = this.getActive();
6998
6999                    if (!active || active && active.$el === $el) {
7000                        this.transitionTo(0);
7001                    }
7002                }
7003            }
7004
7005        ],
7006
7007        methods: {
7008
7009            getActive: function() {
7010                return active$1 && within(active$1.target, this.$el) && active$1;
7011            },
7012
7013            transitionTo: function(newHeight, el) {
7014                var this$1$1 = this;
7015
7016
7017                var ref = this;
7018                var dropbar = ref.dropbar;
7019                var oldHeight = isVisible(dropbar) ? height(dropbar) : 0;
7020
7021                el = oldHeight < newHeight && el;
7022
7023                css(el, 'clip', ("rect(0," + (el.offsetWidth) + "px," + oldHeight + "px,0)"));
7024
7025                height(dropbar, oldHeight);
7026
7027                Transition.cancel([el, dropbar]);
7028                return Promise$1.all([
7029                    Transition.start(dropbar, {height: newHeight}, this.duration),
7030                    Transition.start(el, {clip: ("rect(0," + (el.offsetWidth) + "px," + newHeight + "px,0
7030)")}, this.duration)
7031                ])
7032                    .catch(noop)
7033                    .then(function () {
7034                        css(el, {clip: ''});
7035                        this$1$1.$update(dropbar);
7036                    });
7037            },
7038
7039            getDropdown: function(el) {
7040                return this.$getComponent(el, 'drop') || this.$getComponent(el, 'dropdown');
7041            }
7042
7043        }
7044
7045    };
7046
7047    function handleNavItemNavigation(e, toggles, active) {
7048
7049        var current = e.current;
7050        var keyCode = e.keyCode;
7051        var target = active && active.target || current;
7052        var i = toggles.indexOf(target);
7053
7054        // Left
7055        if (keyCode === keyMap.LEFT && i > 0) {
7056            active && active.hide(false);
7057            toggles[i - 1].focus();
7058        }
7059
7060        // Right
7061        if (keyCode === keyMap.RIGHT && i < toggles.length - 1) {
7062            active && active.hide(false);
7063            toggles[i + 1].focus();
7064        }
7065
7066        if (keyCode === keyMap.TAB) {
7067            target.focus();
7068            active && active.hide(false);
7069        }
7070    }
7071
7072    function focusFirstFocusableElement(el) {
7073        if (!$(':focus', el)) {
7074            var focusEl = $(selFocusable, el);
7075            if (focusEl) {
7076                focusEl.focus();
7077            }
7078        }
7079    }
7080
7081    var keyMap = {
7082        TAB: 9,
7083        ESC: 27,
7084        LEFT: 37,
7085        UP: 38,
7086        RIGHT: 39,
7087        DOWN: 40
7088    };
7089
7090    var offcanvas = {
7091
7092        mixins: [Modal],
7093
7094        args: 'mode',
7095
7096        props: {
7097            mode: String,
7098            flip: Boolean,
7099            overlay: Boolean
7100        },
7101
7102        data: {
7103            mode: 'slide',
7104            flip: false,
7105            overlay: false,
7106            clsPage: 'uk-offcanvas-page',
7107            clsContainer: 'uk-offcanvas-container',
7108            selPanel: '.uk-offcanvas-bar',
7109            clsFlip: 'uk-offcanvas-flip',
7110            clsContainerAnimation: 'uk-offcanvas-container-animation',
7111            clsSidebarAnimation: 'uk-offcanvas-bar-animation',
7112            clsMode: 'uk-offcanvas',
7113            clsOverlay: 'uk-offcanvas-overlay',
7114            selClose: '.uk-offcanvas-close',
7115            container: false
7116        },
7117
7118        computed: {
7119
7120            clsFlip: function(ref) {
7121                var flip = ref.flip;
7122                var clsFlip = ref.clsFlip;
7123
7124                return flip ? clsFlip : '';
7125            },
7126
7127            clsOverlay: function(ref) {
7128                var overlay = ref.overlay;
7129                var clsOverlay = ref.clsOverlay;
7130
7131                return overlay ? clsOverlay : '';
7132            },
7133
7134            clsMode: function(ref) {
7135                var mode = ref.mode;
7136                var clsMode = ref.clsMode;
7137
7138                return (clsMode + "-" + mode);
7139            },
7140
7141            clsSidebarAnimation: function(ref) {
7142                var mode = ref.mode;
7143                var clsSidebarAnimation = ref.clsSidebarAnimation;
7144
7145                return mode === 'none' || mode === 'reveal' ? '' : clsSidebarAnimation;
7146            },
7147
7148            clsContainerAnimation: function(ref) {
7149                var mode = ref.mode;
7150                var clsContainerAnimation = ref.clsContainerAnimation;
7151
7152                return mode !== 'push' && mode !== 'reveal' ? '' : clsContainerAnimation;
7153            },
7154
7155            transitionElement: function(ref) {
7156                var mode = ref.mode;
7157
7158                return mode === 'reveal' ? parent(this.panel) : this.panel;
7159            }
7160
7161        },
7162
7163        update: {
7164
7165            read: function() {
7166                if (this.isToggled() && !isVisible(this.$el)) {
7167                    this.hide();
7168                }
7169            },
7170
7171            events: ['resize']
7172
7173        },
7174
7175        events: [
7176
7177            {
7178
7179                name: 'click',
7180
7181                delegate: function() {
7182                    return 'a[href^="#"]';
7183                },
7184
7185                handler: function(ref) {
7186                    var hash = ref.current.hash;
7187                    var defaultPrevented = ref.defaultPrevented;
7188
7189                    if (!defaultPrevented && hash && $(hash, document.body)) {
7190                        this.hide();
7191                    }
7192                }
7193
7194            },
7195
7196            {
7197                name: 'touchstart',
7198
7199                passive: true,
7200
7201                el: function() {
7202                    return this.panel;
7203                },
7204
7205                handler: function(ref) {
7206                    var targetTouches = ref.targetTouches;
7207
7208
7209                    if (targetTouches.length === 1) {
7210                        this.clientY = targetTouches[0].clientY;
7211                    }
7212
7213                }
7214
7215            },
7216
7217            {
7218                name: 'touchmove',
7219
7220                self: true,
7221                passive: false,
7222
7223                filter: function() {
7224                    return this.overlay;
7225                },
7226
7227                handler: function(e) {
7228                    e.cancelable && e.preventDefault();
7229                }
7230
7231            },
7232
7233            {
7234                name: 'touchmove',
7235
7236                passive: false,
7237
7238                el: function() {
7239                    return this.panel;
7240                },
7241
7242                handler: function(e) {
7243
7244                    if (e.targetTouches.length !== 1) {
7245                        return;
7246                    }
7247
7248                    var clientY = e.targetTouches[0].clientY - this.clientY;
7249                    var ref = this.panel;
7250                    var scrollTop = ref.scrollTop;
7251                    var scrollHeight = ref.scrollHeight;
7252                    var clientHeight = ref.clientHeight;
7253
7254                    if (clientHeight >= scrollHeight
7255                        || scrollTop === 0 && clientY > 0
7256                        || scrollHeight - scrollTop <= clientHeight && clientY < 0
7257                    ) {
7258                        e.cancelable && e.preventDefault();
7259                    }
7260
7261                }
7262
7263            },
7264
7265            {
7266                name: 'show',
7267
7268                self: true,
7269
7270                handler: function() {
7271
7272                    if (this.mode === 'reveal' && !hasClass(parent(this.panel), this.clsMode)) {
7273                        wrapAll(this.panel, '<div>');
7274                        addClass(parent(this.panel), this.clsMode);
7275                    }
7276
7277                    css(document.documentElement, 'overflowY', this.overlay ? 'hidden' : '');
7278                    addClass(document.body, this.clsContainer, this.clsFlip);
7279                    css(document.body, 'touch-action', 'pan-y pinch-zoom');
7280                    css(this.$el, 'display', 'block');
7281                    addClass(this.$el, this.clsOverlay);
7282                    addClass(this.panel, this.clsSidebarAnimation, this.mode !== 'reveal' ? this.clsMode : '');
7283
7284                    height(document.body); // force reflow
7285                    addClass(document.body, this.clsContainerAnimation);
7286
7287                    this.clsContainerAnimation && suppressUserScale();
7288
7289
7290                }
7291            },
7292
7293            {
7294                name: 'hide',
7295
7296                self: true,
7297
7298                handler: function() {
7299                    removeClass(document.body, this.clsContainerAnimation);
7300                    css(document.body, 'touch-action', '');
7301                }
7302            },
7303
7304            {
7305                name: 'hidden',
7306
7307                self: true,
7308
7309                handler: function() {
7310
7311                    this.clsContainerAnimation && resumeUserScale();
7312
7313                    if (this.mode === 'reveal') {
7314                        unwrap(this.panel);
7315                    }
7316
7317                    removeClass(this.panel, this.clsSidebarAnimation, this.clsMode);
7318                    removeClass(this.$el, this.clsOverlay);
7319                    css(this.$el, 'display', '');
7320                    removeClass(document.body, this.clsContainer, this.clsFlip);
7321
7322                    css(document.documentElement, 'overflowY', '');
7323
7324                }
7325            },
7326
7327            {
7328                name: 'swipeLeft swipeRight',
7329
7330                handler: function(e) {
7331
7332                    if (this.isToggled() && endsWith(e.type, 'Left') ^ this.flip) {
7333                        this.hide();
7334                    }
7335
7336                }
7337            }
7338
7339        ]
7340
7341    };
7342
7343    // Chrome in responsive mode zooms page upon opening offcanvas
7344    function suppressUserScale() {
7345        getViewport().content += ',user-scalable=0';
7346    }
7347
7348    function resumeUserScale() {
7349        var viewport = getViewport();
7350        viewport.content = viewport.content.replace(/,user-scalable=0$/, '');
7351    }
7352
7353    function getViewport() {
7354        return $('meta[name="viewport"]', document.head) || append(document.head, '<meta name="viewport">');
7355    }
7356
7357    var overflowAuto = {
7358
7359        mixins: [Class],
7360
7361        props: {
7362            selContainer: String,
7363            selContent: String,
7364            minHeight: Number
7365        },
7366
7367        data: {
7368            selContainer: '.uk-modal',
7369            selContent: '.uk-modal-dialog',
7370            minHeight: 150
7371        },
7372
7373        computed: {
7374
7375            container: function(ref, $el) {
7376                var selContainer = ref.selContainer;
7377
7378                return closest($el, selContainer);
7379            },
7380
7381            content: function(ref, $el) {
7382                var selContent = ref.selContent;
7383
7384                return closest($el, selContent);
7385            }
7386
7387        },
7388
7389        connected: function() {
7390            css(this.$el, 'minHeight', this.minHeight);
7391        },
7392
7393        update: {
7394
7395            read: function() {
7396
7397                if (!this.content || !this.container || !isVisible(this.$el)) {
7398                    return false;
7399                }
7400
7401                return {
7402                    current: toFloat(css(this.$el, 'maxHeight')),
7403                    max: Math.max(this.minHeight, height(this.container) - (dimensions(this.content).height - height(this.$el)))
7404                };
7405            },
7406
7407            write: function(ref) {
7408                var current = ref.current;
7409                var max = ref.max;
7410
7411                css(this.$el, 'maxHeight', max);
7412                if (Math.round(current) !== Math.round(max)) {
7413                    trigger(this.$el, 'resize');
7414                }
7415            },
7416
7417            events: ['resize']
7418
7419        }
7420
7421    };
7422
7423    var responsive = {
7424
7425        props: ['width', 'height'],
7426
7427        connected: function() {
7428            addClass(this.$el, 'uk-responsive-width');
7429        },
7430
7431        update: {
7432
7433            read: function() {
7434                return isVisible(this.$el) && this.width && this.height
7435                    ? {width: width(parent(this.$el)), height: this.height}
7436                    : false;
7437            },
7438
7439            write: function(dim) {
7440                height(this.$el, Dimensions.contain({
7441                    height: this.height,
7442                    width: this.width
7443                }, dim).height);
7444            },
7445
7446            events: ['resize']
7447
7448        }
7449
7450    };
7451
7452    var scroll = {
7453
7454        props: {
7455            offset: Number
7456        },
7457
7458        data: {
7459            offset: 0
7460        },
7461
7462        methods: {
7463
7464            scrollTo: function(el) {
7465                var this$1$1 = this;
7466
7467
7468                el = el && $(el) || document.body;
7469
7470                if (trigger(this.$el, 'beforescroll', [this, el])) {
7471                    scrollIntoView(el, {offset: this.offset}).then(function () { return trigger(this$1$1.$el, 'scrolled', [this$1$1, el]); }
7472                    );
7473                }
7474
7475            }
7476
7477        },
7478
7479        events: {
7480
7481            click: function(e) {
7482
7483                if (e.defaultPrevented) {
7484                    return;
7485                }
7486
7487                e.preventDefault();
7488                this.scrollTo(("#" + (escape(decodeURIComponent((this.$el.hash || '').substr(1))))));
7489            }
7490
7491        }
7492
7493    };
7494
7495    var stateKey = '_ukScrollspy';
7496    var scrollspy = {
7497
7498        args: 'cls',
7499
7500        props: {
7501            cls: String,
7502            target: String,
7503            hidden: Boolean,
7504            offsetTop: Number,
7505            offsetLeft: Number,
7506            repeat: Boolean,
7507            delay: Number
7508        },
7509
7510        data: function () { return ({
7511            cls: false,
7512            target: false,
7513            hidden: true,
7514            offsetTop: 0,
7515            offsetLeft: 0,
7516            repeat: false,
7517            delay: 0,
7518            inViewClass: 'uk-scrollspy-inview'
7519        }); },
7520
7521        computed: {
7522
7523            elements: {
7524
7525                get: function(ref, $el) {
7526                    var target = ref.target;
7527
7528                    return target ? $$(target, $el) : [$el];
7529                },
7530
7531                watch: function(elements) {
7532                    if (this.hidden) {
7533                        css(filter$1(elements, (":not(." + (this.inViewClass) + ")")), 'visibility', 'hidden');
7534                    }
7535                },
7536
7537                immediate: true
7538
7539            }
7540
7541        },
7542
7543        disconnected: function() {
7544            var this$1$1 = this;
7545
7546            this.elements.forEach(function (el) {
7547                removeClass(el, this$1$1.inViewClass, el[stateKey] ? el[stateKey].cls : '');
7548                delete el[stateKey];
7549            });
7550        },
7551
7552        update: [
7553
7554            {
7555
7556                read: function(data$1) {
7557                    var this$1$1 = this;
7558
7559
7560                    // Let child components be applied at least once first
7561                    if (!data$1.update) {
7562                        Promise$1.resolve().then(function () {
7563                            this$1$1.$emit();
7564                            data$1.update = true;
7565                        });
7566                        return false;
7567                    }
7568
7569                    this.elements.forEach(function (el) {
7570
7571                        if (!el[stateKey]) {
7572                            el[stateKey] = {cls: data(el, 'uk-scrollspy-class') || this$1$1.cls};
7573                        }
7574
7575                        el[stateKey].show = isInView(el, this$1$1.offsetTop, this$1$1.offsetLeft);
7576
7577                    });
7578
7579                },
7580
7581                write: function(data) {
7582                    var this$1$1 = this;
7583
7584
7585                    this.elements.forEach(function (el) {
7586
7587                        var state = el[stateKey];
7588
7589                        if (state.show && !state.inview && !state.queued) {
7590
7591                            state.queued = true;
7592
7593                            data.promise = (data.promise || Promise$1.resolve()).then(function () { return new Promise$1(function (resolve) { return setTimeout(resolve, this$1$1.delay); }
7594                                ); }
7595                            ).then(function () {
7596                                this$1$1.toggle(el, true);
7597                                setTimeout(function () {
7598                                    state.queued = false;
7599                                    this$1$1.$emit();
7600                                }, 300);
7601                            });
7602
7603                        } else if (!state.show && state.inview && !state.queued && this$1$1.repeat) {
7604
7605                            this$1$1.toggle(el, false);
7606
7607                        }
7608
7609                    });
7610
7611                },
7612
7613                events: ['scroll', 'resize']
7614
7615            }
7616
7617        ],
7618
7619        methods: {
7620
7621            toggle: function(el, inview) {
7622
7623                var state = el[stateKey];
7624
7625                state.off && state.off();
7626
7627                css(el, 'visibility', !inview && this.hidden ? 'hidden' : '');
7628
7629                toggleClass(el, this.inViewClass, inview);
7630                toggleClass(el, state.cls);
7631
7632                if (/\buk-animation-/.test(state.cls)) {
7633                    state.off = once(el, 'animationcancel animationend', function () { return removeClasses(el, 'uk-animation-[\\w-]+'); }
7634                    );
7635                }
7636
7637                trigger(el, inview ? 'inview' : 'outview');
7638
7639                state.inview = inview;
7640
7641                this.$update(el);
7642            }
7643
7644        }
7645
7646    };
7647
7648    var scrollspyNav = {
7649
7650        props: {
7651            cls: String,
7652            closest: String,
7653            scroll: Boolean,
7654            overflow: Boolean,
7655            offset: Number
7656        },
7657
7658        data: {
7659            cls: 'uk-active',
7660            closest: false,
7661            scroll: false,
7662            overflow: true,
7663            offset: 0
7664        },
7665
7666        computed: {
7667
7668            links: {
7669
7670                get: function(_, $el) {
7671                    return $$('a[href^="#"]', $el).filter(function (el) { return el.hash; });
7672                },
7673
7674                watch: function(links) {
7675                    if (this.scroll) {
7676                        this.$create('scroll', links, {offset: this.offset || 0});
7677                    }
7678                },
7679
7680                immediate: true
7681
7682            },
7683
7684            targets: function() {
7685                return $$(this.links.map(function (el) { return escape(el.hash).substr(1); }).join(','));
7686            },
7687
7688            elements: function(ref) {
7689                var selector = ref.closest;
7690
7691                return closest(this.links, selector || '*');
7692            }
7693
7694        },
7695
7696        update: [
7697
7698            {
7699
7700                read: function() {
7701                    var this$1$1 = this;
7702
7703
7704                    var ref = this.targets;
7705                    var length = ref.length;
7706
7707                    if (!length || !isVisible(this.$el)) {
7708                        return false;
7709                    }
7710
7711                    var ref$1 = scrollParents(this.targets, /auto|scroll/, true);
7712                    var scrollElement = ref$1[0];
7713                    var scrollTop = scrollElement.scrollTop;
7714                    var scrollHeight = scrollElement.scrollHeight;
7715                    var max = scrollHeight - getViewportClientHeight(scrollElement);
7716                    var active = false;
7717
7718                    if (scrollTop === max) {
7719                        active = length - 1;
7720                    } else {
7721
7722                        this.targets.every(function (el, i) {
7723                            if (offset(el).top - offset(getViewport$1(scrollElement)).top - this$1$1.offset <= 0) {
7724                                active = i;
7725                                return true;
7726                            }
7727                        });
7728
7729                        if (active === false && this.overflow) {
7730                            active = 0;
7731                        }
7732                    }
7733
7734                    return {active: active};
7735                },
7736
7737                write: function(ref) {
7738                    var active = ref.active;
7739
7740
7741                    var changed = active !== false && !hasClass(this.elements[active], this.cls);
7742
7743                    this.links.forEach(function (el) { return el.blur(); });
7744                    removeClass(this.elements, this.cls);
7745                    addClass(this.elements[active], this.cls);
7746
7747                    if (changed) {
7748                        trigger(this.$el, 'active', [active, this.elements[active]]);
7749                    }
7750                },
7751
7752                events: ['scroll', 'resize']
7753
7754            }
7755
7756        ]
7757
7758    };
7759
7760    var sticky = {
7761
7762        mixins: [Class, Media],
7763
7764        props: {
7765            top: null,
7766            bottom: Boolean,
7767            offset: String,
7768            animation: String,
7769            clsActive: String,
7770            clsInactive: String,
7771            clsFixed: String,
7772            clsBelow: String,
7773            selTarget: String,
7774            widthElement: Boolean,
7775            showOnUp: Boolean,
7776            targetOffset: Number
7777        },
7778
7779        data: {
7780            top: 0,
7781            bottom: false,
7782            offset: 0,
7783            animation: '',
7784            clsActive: 'uk-active',
7785            clsInactive: '',
7786            clsFixed: 'uk-sticky-fixed',
7787            clsBelow: 'uk-sticky-below',
7788            selTarget: '',
7789            widthElement: false,
7790            showOnUp: false,
7791            targetOffset: false
7792        },
7793
7794        computed: {
7795
7796            offset: function(ref) {
7797                var offset = ref.offset;
7798
7799                return toPx(offset);
7800            },
7801
7802            selTarget: function(ref, $el) {
7803                var selTarget = ref.selTarget;
7804
7805                return selTarget && $(selTarget, $el) || $el;
7806            },
7807
7808            widthElement: function(ref, $el) {
7809                var widthElement = ref.widthElement;
7810
7811                return query(widthElement, $el) || this.placeholder;
7812            },
7813
7814            isActive: {
7815
7816                get: function() {
7817                    return hasClass(this.selTarget, this.clsActive);
7818                },
7819
7820                set: function(value) {
7821                    if (value && !this.isActive) {
7822                        replaceClass(this.selTarget, this.clsInactive, this.clsActive);
7823                        trigger(this.$el, 'active');
7824                    } else if (!value && !hasClass(this.selTarget, this.clsInactive)) {
7825                        replaceClass(this.selTarget, this.clsActive, this.clsInactive);
7826                        trigger(this.$el, 'inactive');
7827                    }
7828                }
7829
7830            }
7831
7832        },
7833
7834        connected: function() {
7835            this.placeholder = $('+ .uk-sticky-placeholder', this.$el) || $('<div class="uk-sticky-placeholder"></div>');
7836            this.isFixed = false;
7837            this.isActive = false;
7838        },
7839
7840        disconnected: function() {
7841
7842            if (this.isFixed) {
7843                this.hide();
7844                removeClass(this.selTarget, this.clsInactive);
7845            }
7846
7847            remove$1(this.placeholder);
7848            this.placeholder = null;
7849            this.widthElement = null;
7850        },
7851
7852        events: [
7853
7854            {
7855
7856                name: 'load hashchange popstate',
7857
7858                el: function() {
7859                    return window;
7860                },
7861
7862                handler: function() {
7863                    var this$1$1 = this;
7864
7865
7866                    if (!(this.targetOffset !== false && location.hash && window.pageYOffset > 0)) {
7867                        return;
7868                    }
7869
7870                    var target = $(location.hash);
7871
7872                    if (target) {
7873                        fastdom.read(function () {
7874
7875                            var ref = offset(target);
7876                            var top = ref.top;
7877                            var elTop = offset(this$1$1.$el).top;
7878                            var elHeight = this$1$1.$el.offsetHeight;
7879
7880                            if (this$1$1.isFixed && elTop + elHeight >= top && elTop <= top + target.offsetHeight) {
7881                                scrollTop(window, top - elHeight - (isNumeric(this$1$1.targetOffset) ? this$1$1.targetOffset : 0) - this$1$1.offset);
7882                            }
7883
7884                        });
7885                    }
7886
7887                }
7888
7889            }
7890
7891        ],
7892
7893        update: [
7894
7895            {
7896
7897                read: function(ref, types) {
7898                    var height = ref.height;
7899
7900
7901                    this.inactive = !this.matchMedia || !isVisible(this.$el);
7902
7903                    if (this.inactive) {
7904                        return false;
7905                    }
7906
7907                    if (this.isActive && types.has('resize')) {
7908                        this.hide();
7909                        height = this.$el.offsetHeight;
7910                        this.show();
7911                    }
7912
7913                    height = !this.isActive ? this.$el.offsetHeight : height;
7914
7915                    this.topOffset = offset(this.isFixed ? this.placeholder : this.$el).top;
7916                    this.bottomOffset = this.topOffset + height;
7917                    this.offsetParentTop = offset(this.$el.offsetParent).top;
7918
7919                    var bottom = parseProp('bottom', this);
7920
7921                    this.top = Math.max(toFloat(parseProp('top', this)), this.topOffset) - this.offset;
7922                    this.bottom = bottom && bottom - this.$el.offsetHeight;
7923                    this.width = dimensions(isVisible(this.widthElement) ? this.widthElement : this.$el).width;
7924
7925                    return {
7926                        height: height,
7927                        top: offsetPosition(this.placeholder)[0],
7928                        margins: css(this.$el, ['marginTop', 'marginBottom', 'marginLeft', 'marginRight'])
7929                    };
7930                },
7931
7932                write: function(ref) {
7933                    var height = ref.height;
7934                    var margins = ref.margins;
7935
7936
7937                    var ref$1 = this;
7938                    var placeholder = ref$1.placeholder;
7939
7940                    css(placeholder, assign({height: height}, margins));
7941
7942                    if (!within(placeholder, document)) {
7943                        after(this.$el, placeholder);
7944                        placeholder.hidden = true;
7945                    }
7946
7947                    this.isActive = !!this.isActive; // force self-assign
7948
7949                },
7950
7951                events: ['resize']
7952
7953            },
7954
7955            {
7956
7957                read: function(ref) {
7958                    var scroll = ref.scroll; if ( scroll === void 0 ) scroll = 0;
7959
7960
7961                    this.scroll = window.pageYOffset;
7962
7963                    return {
7964                        dir: scroll <= this.scroll ? 'down' : 'up',
7965                        scroll: this.scroll
7966                    };
7967                },
7968
7969                write: function(data, types) {
7970                    var this$1$1 = this;
7971
7972
7973                    var now = Date.now();
7974                    var isScrollUpdate = types.has('scroll');
7975                    var initTimestamp = data.initTimestamp; if ( initTimestamp === void 0 ) initTimestamp = 0;
7976                    var dir = data.dir;
7977                    var lastDir = data.lastDir;
7978                    var lastScroll = data.lastScroll;
7979                    var scroll = data.scroll;
7980                    var top = data.top;
7981
7982                    data.lastScroll = scroll;
7983
7984                    if (scroll < 0 || scroll === lastScroll && isScrollUpdate || this.showOnUp && !isScrollUpdate && !this.isFixed) {
7985                        return;
7986                    }
7987
7988                    if (now - initTimestamp > 300 || dir !== lastDir) {
7989                        data.initScroll = scroll;
7990                        data.initTimestamp = now;
7991                    }
7992
7993                    data.lastDir = dir;
7994
7995                    if (this.showOnUp && !this.isFixed && Math.abs(data.initScroll - scroll) <= 30 && Math.abs(lastScroll - scroll) <= 10) {
7996                        return;
7997                    }
7998
7999                    if (this.inactive
8000                        || scroll < this.top
8001                        || this.showOnUp && (scroll <= this.top || dir === 'down' && isScrollUpdate || dir === 'up' && !this.isFixed && scroll <= this.bottomOffset)
8002                    ) {
8003
8004                        if (!this.isFixed) {
8005
8006                            if (Animation.inProgress(this.$el) && top > scroll) {
8007                                Animation.cancel(this.$el);
8008                                this.hide();
8009                            }
8010
8011                            return;
8012                        }
8013
8014                        this.isFixed = false;
8015
8016                        if (this.animation && scroll > this.topOffset) {
8017                            Animation.cancel(this.$el);
8018                            Animation.out(this.$el, this.animation).then(function () { return this$1$1.hide(); }, noop);
8019                        } else {
8020                            this.hide();
8021                        }
8022
8023                    } else if (this.isFixed) {
8024
8025                        this.update();
8026
8027                    } else if (this.animation) {
8028
8029                        Animation.cancel(this.$el);
8030                        this.show();
8031                        Animation.in(this.$el, this.animation).catch(noop);
8032
8033                    } else {
8034                        this.show();
8035                    }
8036
8037                },
8038
8039                events: ['resize', 'scroll']
8040
8041            }
8042
8043        ],
8044
8045        methods: {
8046
8047            show: function() {
8048
8049                this.isFixed = true;
8050                this.update();
8051                this.placeholder.hidden = false;
8052
8053            },
8054
8055            hide: function() {
8056
8057                this.isActive = false;
8058                removeClass(this.$el, this.clsFixed, this.clsBelow);
8059                css(this.$el, {position: '', top: '', width: ''});
8060                this.placeholder.hidden = true;
8061
8062            },
8063
8064            update: function() {
8065
8066                var active = this.top !== 0 || this.scroll > this.top;
8067                var top = Math.max(0, this.offset);
8068                var position = 'fixed';
8069
8070                if (isNumeric(this.bottom) && this.scroll > this.bottom - this.offset) {
8071                    top = this.bottom - this.offsetParentTop;
8072                    position = 'absolute';
8073                }
8074
8075                css(this.$el, {
8076                    position: position,
8077                    top: (top + "px"),
8078                    width: this.width
8079                });
8080
8081                this.isActive = active;
8082                toggleClass(this.$el, this.clsBelow, this.scroll > this.bottomOffset);
8083                addClass(this.$el, this.clsFixed);
8084
8085            }
8086
8087        }
8088
8089    };
8090
8091    function parseProp(prop, ref) {
8092        var $props = ref.$props;
8093        var $el = ref.$el;
8094        var propOffset = ref[(prop + "Offset")];
8095
8096
8097        var value = $props[prop];
8098
8099        if (!value) {
8100            return;
8101        }
8102
8103        if (isString(value) && value.match(/^-?\d/)) {
8104
8105            return propOffset + toPx(value);
8106
8107        } else {
8108
8109            return offset(value === true ? parent($el) : query(value, $el)).bottom;
8110
8111        }
8112    }
8113
8114    var Switcher = {
8115
8116        mixins: [Togglable],
8117
8118        args: 'connect',
8119
8120        props: {
8121            connect: String,
8122            toggle: String,
8123            itemNav: String,
8124            active: Number,
8125            swiping: Boolean
8126        },
8127
8128        data: {
8129            connect: '~.uk-switcher',
8130            toggle: '> * > :first-child',
8131            itemNav: false,
8132            active: 0,
8133            swiping: true,
8134            cls: 'uk-active',
8135            attrItem: 'uk-switcher-item'
8136        },
8137
8138        computed: {
8139
8140            connects: {
8141
8142                get: function(ref, $el) {
8143                    var connect = ref.connect;
8144
8145                    return queryAll(connect, $el);
8146                },
8147
8148                watch: function(connects) {
8149                    var this$1$1 = this;
8150
8151
8152                    if (this.swiping) {
8153                        css(connects, 'touch-action', 'pan-y pinch-zoom');
8154                    }
8155
8156                    var index = this.index();
8157                    this.connects.forEach(function (el) { return children(el).forEach(function (child, i) { return toggleClass(child, this$1$1.cls, i === index); }
8158                        ); }
8159                    );
8160
8161                },
8162
8163                immediate: true
8164
8165            },
8166
8167            toggles: {
8168
8169                get: function(ref, $el) {
8170                    var toggle = ref.toggle;
8171
8172                    return $$(toggle, $el).filter(function (el) { return !matches(el, '.uk-disabled *, .uk-disabled, [disabled]'); });
8173                },
8174
8175                watch: function(toggles) {
8176                    var active = this.index();
8177                    this.show(~active ? active : toggles[this.active] || toggles[0]);
8178                },
8179
8180                immediate: true
8181
8182            },
8183
8184            children: function() {
8185                var this$1$1 = this;
8186
8187                return children(this.$el).filter(function (child) { return this$1$1.toggles.some(function (toggle) { return within(toggle, child); }); });
8188            }
8189
8190        },
8191
8192        events: [
8193
8194            {
8195
8196                name: 'click',
8197
8198                delegate: function() {
8199                    return this.toggle;
8200                },
8201
8202                handler: function(e) {
8203                    e.preventDefault();
8204                    this.show(e.current);
8205                }
8206
8207            },
8208
8209            {
8210                name: 'click',
8211
8212                el: function() {
8213                    return this.connects.concat(this.itemNav ? queryAll(this.itemNav, this.$el) : []);
8214                },
8215
8216                delegate: function() {
8217                    return ("[" + (this.attrItem) + "],[data-" + (this.attrItem) + "]");
8218                },
8219
8220                handler: function(e) {
8221                    e.preventDefault();
8222                    this.show(data(e.current, this.attrItem));
8223                }
8224            },
8225
8226            {
8227                name: 'swipeRight swipeLeft',
8228
8229                filter: function() {
8230                    return this.swiping;
8231                },
8232
8233                el: function() {
8234                    return this.connects;
8235                },
8236
8237                handler: function(ref) {
8238                    var type = ref.type;
8239
8240                    this.show(endsWith(type, 'Left') ? 'next' : 'previous');
8241                }
8242            }
8243
8244        ],
8245
8246        methods: {
8247
8248            index: function() {
8249                var this$1$1 = this;
8250
8251                return findIndex(this.children, function (el) { return hasClass(el, this$1$1.cls
8251); });
8252            },
8253
8254            show: function(item) {
8255                var this$1$1 = this;
8256
8257
8258                var prev = this.index();
8259                var next = getIndex(
8260                    this.children[getIndex(item, this.toggles, prev)],
8261                    children(this.$el)
8262                );
8263
8264                if (prev === next) {
8265                    return;
8266                }
8267
8268                this.children.forEach(function (child, i) {
8269                    toggleClass(child, this$1$1.cls, next === i);
8270                    attr(this$1$1.toggles[i], 'aria-expanded', next === i);
8271                });
8272
8273                this.connects.forEach(function (ref) {
8274                        var children = ref.children;
8275
8276                        return this$1$1.toggleElement(toNodes(children).filter(function (child) { return hasClass(child, this$1$1.cls); }
8277                    ), false, prev >= 0).then(function () { return this$1$1.toggleElement(children[next], true, prev >= 0); }
8278                    );
8279                }
8280                );
8281            }
8282
8283        }
8284
8285    };
8286
8287    var tab = {
8288
8289        mixins: [Class],
8290
8291        extends: Switcher,
8292
8293        props: {
8294            media: Boolean
8295        },
8296
8297        data: {
8298            media: 960,
8299            attrItem: 'uk-tab-item'
8300        },
8301
8302        connected: function() {
8303
8304            var cls = hasClass(this.$el, 'uk-tab-left')
8305                ? 'uk-tab-left'
8306                : hasClass(this.$el, 'uk-tab-right')
8307                    ? 'uk-tab-right'
8308                    : false;
8309
8310            if (cls) {
8311                this.$create('toggle', this.$el, {cls: cls, mode: 'media', media: this.media});
8312            }
8313        }
8314
8315    };
8316
8317    var toggle = {
8318
8319        mixins: [Media, Togglable],
8320
8321        args: 'target',
8322
8323        props: {
8324            href: String,
8325            target: null,
8326            mode: 'list',
8327            queued: Boolean
8328        },
8329
8330        data: {
8331            href: false,
8332            target: false,
8333            mode: 'click',
8334            queued: true
8335        },
8336
8337        connected: function() {
8338            if (!includes(this.mode, 'media') && !isFocusable(this.$el)) {
8339                attr(this.$el, 'tabindex', '0');
8340            }
8341        },
8342
8343        computed: {
8344
8345            target: {
8346
8347                get: function(ref, $el) {
8348                    var href = ref.href;
8349                    var target = ref.target;
8350
8351                    target = queryAll(target || href, $el);
8352                    return target.length && target || [$el];
8353                },
8354
8355                watch: function() {
8356                    this.updateAria();
8357                },
8358
8359                immediate: true
8360
8361            }
8362
8363        },
8364
8365        events: [
8366
8367            {
8368                name: pointerDown,
8369
8370                filter: function() {
8371                    return includes(this.mode, 'hover');
8372                },
8373
8374                handler: function(e) {
8375                    var this$1$1 = this;
8376
8377
8378                    if (!isTouch(e) || this._showState) {
8379                        return;
8380                    }
8381
8382                    // Clicking a button does not give it focus on all browsers and platforms
8383                    // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus
8384                    trigger(this.$el, 'focus');
8385                    once(document, pointerDown, function () { return trigger(this$1$1.$el, 'blur'); }, true, function (e) { return !within(e.target, this$1$1.$el); });
8386
8387                    // Prevent initial click to prevent double toggle through focus + click
8388                    if (includes(this.mode, 'click')) {
8389                        this._preventClick = true;
8390                    }
8391                }
8392            },
8393
8394            {
8395
8396                name: (pointerEnter + " " + pointerLeave + " focus blur"),
8397
8398                filter: function() {
8399                    return includes(this.mode, 'hover');
8400                },
8401
8402                handler: function(e) {
8403                    if (isTouch(e)) {
8404                        return;
8405                    }
8406
8407                    var show = includes([pointerEnter, 'focus'], e.type);
8408                    var expanded = attr(this.$el, 'aria-expanded');
8409
8410                    // Skip hide if still hovered or focused
8411                    if (!show && (
8412                        e.type === pointerLeave && matches(this.$el, ':focus')
8413                        || e.type === 'blur' && matches(this.$el, ':hover')
8414                    )) {
8415                        return;
8416                    }
8417
8418                    // Skip if state does not change e.g. hover + focu
8418s received
8419                    if (this._showState && show === (expanded !== this._showState)) {
8420
8421                        // Ensure reset if state has changed through click
8422                        if (!show) {
8423                            this._showState = null;
8424                        }
8425                        return;
8426                    }
8427
8428                    this._showState = show ? expanded : null;
8429
8430                    this.toggle(("toggle" + (show ? 'show' : 'hide')));
8431                }
8432
8433            },
8434
8435            {
8436                name: 'keydown',
8437
8438                filter: function() {
8439                    return includes(this.mode, 'click');
8440                },
8441
8442                handler: function(e) {
8443                    // Space
8444                    if (e.keyCode === 32) {
8445                        e.preventDefault();
8446                        this.$el.click();
8447                    }
8448                }
8449            },
8450
8451            {
8452
8453                name: 'click',
8454
8455                filter: function() {
8456                    return includes(this.mode, 'click');
8457                },
8458
8459                handler: function(e) {
8460
8461                    if (this._preventClick) {
8462                        return this._preventClick = null;
8463                    }
8464
8465                    var link;
8466                    if (closest(e.target, 'a[href="#"], a[href=""]')
8467                        || (link = closest(e.target, 'a[href]')) && (
8468                            attr(this.$el, 'aria-expanded') !== 'true'
8469                            || link.hash && matches(this.target, link.hash)
8470                        )
8471                    ) {
8472                        e.preventDefault();
8473                    }
8474
8475                    this.toggle();
8476                }
8477
8478            },
8479
8480            {
8481
8482                name: 'toggled',
8483
8484                self: true,
8485
8486                el: function() {
8487                    return this.target;
8488                },
8489
8490                handler: function(e, toggled) {
8491                    if (e.target === this.target[0]) {
8492                        this.updateAria(toggled);
8493                    }
8494                }
8495            }
8496
8497        ],
8498
8499        update: {
8500
8501            read: function() {
8502                return includes(this.mode, 'media') && this.media
8503                    ? {match: this.matchMedia}
8504                    : false;
8505            },
8506
8507            write: function(ref) {
8508                var match = ref.match;
8509
8510
8511                var toggled = this.isToggled(this.target);
8512                if (match ? !toggled : toggled) {
8513                    this.toggle();
8514                }
8515
8516            },
8517
8518            events: ['resize']
8519
8520        },
8521
8522        methods: {
8523
8524            toggle: function(type) {
8525                var this$1$1 = this;
8526
8527
8528                if (!trigger(this.target, type || 'toggle', [this])) {
8529                    return;
8530                }
8531
8532                if (!this.queued) {
8533                    return this.toggleElement(this.target);
8534                }
8535
8536                var leaving = this.target.filter(function (el) { return hasClass(el, this$1$1.clsLeave); });
8537
8538                if (leaving.length) {
8539                    this.target.forEach(function (el) {
8540                        var isLeaving = includes(leaving, el);
8541                        this$1$1.toggleElement(el, isLeaving, isLeaving);
8542                    });
8543                    return;
8544                }
8545
8546                var toggled = this.target.filter(this.isToggled);
8547                this.toggleElement(toggled, false).then(function () { return this$1$1.toggleElement(this$1$1.target.filter(function (el) { return !includes(toggled, el); }
8548                    ), true); }
8549                );
8550
8551            },
8552
8553            updateAria: function(toggled) {
8554                if (includes(this.mode, 'media')) {
8555                    return;
8556                }
8557
8558                attr(this.$el, 'aria-expanded', isBoolean(toggled)
8559                    ? toggled
8560                    : this.isToggled(this.target)
8561                );
8562            }
8563
8564        }
8565
8566    };
8567
8568    var components$1 = /*#__PURE__*/Object.freeze({
8569        __proto__: null,
8570        Accordion: Accordion,
8571        Alert: alert,
8572        Cover: cover,
8573        Drop: drop,
8574        Dropdown: drop,
8575        FormCustom: formCustom,
8576        Gif: gif,
8577        Grid: grid,
8578        HeightMatch: heightMatch,
8579        HeightViewport: heightViewport,
8580        Icon: Icon,
8581        Img: img,
8582        Leader: leader,
8583        Margin: Margin,
8584        Modal: modal,
8585        Nav: nav,
8586        Navbar: navbar,
8587        Offcanvas: offcanvas,
8588        OverflowAuto: overflowAuto,
8589        Responsive: responsive,
8590        Scroll: scroll,
8591        Scrollspy: scrollspy,
8592        ScrollspyNav: scrollspyNav,
8593        Sticky: sticky,
8594        Svg: SVG,
8595        Switcher: Switcher,
8596        Tab: tab,
8597        Toggle: toggle,
8598        Video: Video,
8599        Close: Close,
8600        Spinner: Spinner,
8601        SlidenavNext: Slidenav,
8602        SlidenavPrevious: Slidenav,
8603        SearchIcon: Search,
8604        Marker: IconComponent,
8605        NavbarToggleIcon: IconComponent,
8606        OverlayIcon: IconComponent,
8607        PaginationNext: IconComponent,
8608        PaginationPrevious: IconComponent,
8609        Totop: IconComponent
8610    });
8611
8612    // register components
8613    each(components$1, function (component, name) { return UIkit.component(name, component); }
8614    );
8615
8616    // core functionality
8617    UIkit.use(Core);
8618
8619    boot(UIkit);
8620
8621    var countdown = {
8622
8623        mixins: [Class],
8624
8625        props: {
8626            date: String,
8627            clsWrapper: String
8628        },
8629
8630        data: {
8631            date: '',
8632            clsWrapper: '.uk-countdown-%unit%'
8633        },
8634
8635        computed: {
8636
8637            date: function(ref) {
8638                var date = ref.date;
8639
8640                return Date.parse(date);
8641            },
8642
8643            days: function(ref, $el) {
8644                var clsWrapper = ref.clsWrapper;
8645
8646                return $(clsWrapper.replace('%unit%', 'days'), $el);
8647            },
8648
8649            hours: function(ref, $el) {
8650                var clsWrapper = ref.clsWrapper;
8651
8652                return $(clsWrapper.replace('%unit%', 'hours'), $el);
8653            },
8654
8655            minutes: function(ref, $el) {
8656                var clsWrapper = ref.clsWrapper;
8657
8658                return $(clsWrapper.replace('%unit%', 'minutes'), $el);
8659            },
8660
8661            seconds: function(ref, $el) {
8662                var clsWrapper = ref.clsWrapper;
8663
8664                return $(clsWrapper.replace('%unit%', 'seconds'), $el);
8665            },
8666
8667            units: function() {
8668                var this$1$1 = this;
8669
8670                return ['days', 'hours', 'minutes', 'seconds'].filter(function (unit) { return this$1$1[unit]; });
8671            }
8672
8673        },
8674
8675        connected: function() {
8676            this.start();
8677        },
8678
8679        disconnected: function() {
8680            var this$1$1 = this;
8681
8682            this.stop();
8683            this.units.forEach(function (unit) { return empty(this$1$1[unit]); });
8684        },
8685
8686        events: [
8687
8688            {
8689
8690                name: 'visibilitychange',
8691
8692                el: function() {
8693                    return document;
8694                },
8695
8696                handler: function() {
8697                    if (document.hidden) {
8698                        this.stop();
8699                    } else {
8700                        this.start();
8701                    }
8702                }
8703
8704            }
8705
8706        ],
8707
8708        update: {
8709
8710            write: function() {
8711                var this$1$1 = this;
8712
8713
8714                var timespan = getTimeSpan(this.date);
8715
8716                if (timespan.total <= 0) {
8717
8718                    this.stop();
8719
8720                    timespan.days
8721                        = timespan.hours
8722                        = timespan.minutes
8723                        = timespan.seconds
8724                        = 0;
8725                }
8726
8727                this.units.forEach(function (unit) {
8728
8729                    var digits = String(Math.floor(timespan[unit]));
8730
8731                    digits = digits.length < 2 ? ("0" + digits) : digits;
8732
8733                    var el = this$1$1[unit];
8734                    if (el.textContent !== digits) {
8735                        digits = digits.split('');
8736
8737                        if (digits.length !== el.children.length) {
8738                            html(el, digits.map(function () { return '<span></span>'; }).join(''));
8739                        }
8740
8741                        digits.forEach(function (digit, i) { return el.children[i].textContent = digit; });
8742                    }
8743
8744                });
8745
8746            }
8747
8748        },
8749
8750        methods: {
8751
8752            start: function() {
8753
8754                this.stop();
8755
8756                if (this.date && this.units.length) {
8757                    this.$update();
8758                    this.timer = setInterval(this.$update, 1000);
8759                }
8760
8761            },
8762
8763            stop: function() {
8764
8765                if (this.timer) {
8766                    clearInterval(this.timer);
8767                    this.timer = null;
8768                }
8769
8770            }
8771
8772        }
8773
8774    };
8775
8776    function getTimeSpan(date) {
8777
8778        var total = date - Date.now();
8779
8780        return {
8781            total: total,
8782            seconds: total / 1000 % 60,
8783            minutes: total / 1000 / 60 % 60,
8784            hours: total / 1000 / 60 / 60 % 24,
8785            days: total / 1000 / 60 / 60 / 24
8786        };
8787    }
8788
8789    var clsLeave = 'uk-transition-leave';
8790    var clsEnter = 'uk-transition-enter';
8791
8792    function fade(action, target, duration, stagger) {
8793        if ( stagger === void 0 ) stagger = 0;
8794
8795
8796        var index = transitionIndex(target, true);
8797        var propsIn = {opacity: 1};
8798        var propsOut = {opacity: 0};
8799
8800        var wrapIndexFn = function (fn) { return function () { return index === transitionIndex(target) ? fn() : Promise$1.reject(); }; };
8801
8802        var leaveFn = wrapIndexFn(function () {
8803
8804            addClass(target, clsLeave);
8805
8806            return Promise$1.all(getTransitionNodes(target).map(function (child, i) { return new Promise$1(function (resolve) { return setTimeout(function () { return Transition.start(child, propsOut, duration / 2, 'ease').then(resolve); }, i * stagger); }
8807                ); }
8808            )).then(function () { return removeClass(target, clsLeave); });
8809
8810        });
8811
8812        var enterFn = wrapIndexFn(function () {
8813
8814            var oldHeight = height(target);
8815
8816            addClass(target, clsEnter);
8817            action();
8818
8819            css(children(target), {opacity: 0});
8820
8821            // Ensure UIkit updates have propagated
8822            return new Promise$1(function (resolve) { return requestAnimationFrame(function () {
8823
8824                    var nodes = children(target);
8825                    var newHeight = height(target);
8826
8827                    // Ensure Grid cells do not stretch when height is applied
8828                    css(target, 'alignContent', 'flex-start');
8829                    height(target, oldHeight);
8830
8831                    var transitionNodes = getTransitionNodes(target);
8832                    css(nodes, propsOut);
8833
8834                    var transitions = transitionNodes.map(function (child, i) { return new Promise$1(function (resolve) { return setTimeout(function () { return Transition.start(child, propsIn, duration / 2, 'ease').then(resolve); }, i * stagger); }
8835                        ); }
8836                    );
8837
8838                    if (oldHeight !== newHeight) {
8839                        transitions.push(Transition.start(target, {height: newHeight}, duration / 2 + transitionNodes.length * stagger, 'ease'));
8840                    }
8841
8842                    Promise$1.all(transitions).then(function () {
8843                        removeClass(target, clsEnter);
8844                        if (index === transitionIndex(target)) {
8845                            css(target, {height: '', alignContent: ''});
8846                            css(nodes, {opacity: ''});
8847                            delete target.dataset.transition;
8848                        }
8849                        resolve();
8850                    });
8851                }); }
8852            );
8853        });
8854
8855        return hasClass(target, clsLeave)
8856            ? waitTransitionend(target).then(enterFn)
8857            : hasClass(target, clsEnter)
8858                ? waitTransitionend(target).then(leaveFn).then(enterFn)
8859                : leaveFn().then(enterFn);
8860    }
8861
8862    function transitionIndex(target, next) {
8863        if (next) {
8864            target.dataset.transition = 1 + transitionIndex(target);
8865        }
8866
8867        return toNumber(target.dataset.transition) || 0;
8868    }
8869
8870    function waitTransitionend(target) {
8871        return Promise$1.all(children(target).filter(Transition.inProgress).map(function (el) { return new Promise$1(function (resolve) { return once(el, 'transitionend transitioncanceled', resolve); }); }
8872        ));
8873    }
8874
8875    function getTransitionNodes(target) {
8876        return getRows(children(target)).reduce(function (nodes, row) { return nodes.concat(sortBy$1(row.filter(function (el) { return isInView(el); }), 'offsetLeft')); }, []);
8877    }
8878
8879    function slide (action, target, duration) {
8880
8881        return new Promise$1(function (resolve) { return requestAnimationFrame(function () {
8882
8883                var nodes = children(target);
8884
8885                // Get current state
8886                var currentProps = nodes.map(function (el) { return getProps(el, true); });
8887                var targetProps = css(target, ['height', 'padding']);
8888
8889                // Cancel previous animations
8890                Transition.cancel(target);
8891                nodes.forEach(Transition.cancel);
8892                reset(target);
8893
8894                // Adding, sorting, removing nodes
8895                action();
8896
8897                // Find new nodes
8898                nodes = nodes.concat(children(target).filter(function (el) { return !includes(nodes, el); }));
8899
8900                // Wait for update to propagate
8901                Promise$1.resolve().then(function () {
8902
8903                    // Force update
8904                    fastdom.flush();
8905
8906                    // Get new state
8907                    var targetPropsTo = css(target, ['height', 'padding']);
8908                    var ref = getTransitionProps(target, nodes, currentProps);
8909                    var propsTo = ref[0];
8910                    var propsFrom = ref[1];
8911
8912                    // Reset to previous state
8913                    nodes.forEach(function (el, i) { return propsFrom[i] && css(el, propsFrom[i]); });
8914                    css(target, assign({display: 'block'}, targetProps));
8915
8916                    // Start transitions on next frame
8917                    requestAnimationFrame(function () {
8918
8919                        var transitions = nodes.map(function (el, i) { return parent(el) === target && Transition.start(el, propsTo[i], duration, 'ease'); }
8920                            ).concat(Transition.start(target, targetPropsTo, duration, 'ease'));
8921
8922                        Promise$1.all(transitions).then(function () {
8923                            nodes.forEach(function (el, i) { return parent(el) === target && css(el, 'display', propsTo[i].opacity === 0 ? 'none' : ''); });
8924                            reset(target);
8925                        }, noop).then(resolve);
8926
8927                    });
8928                });
8929            }); });
8930    }
8931
8932    function getProps(el, opacity) {
8933
8934        var zIndex = css(el, 'zIndex');
8935
8936        return isVisible(el)
8937            ? assign({
8938                display: '',
8939                opacity: opacity ? css(el, 'opacity') : '0',
8940                pointerEvents: 'none',
8941                position: 'absolute',
8942                zIndex: zIndex === 'auto' ? index(el) : zIndex
8943            }, getPositionWithMargin(el))
8944            : false;
8945    }
8946
8947    function getTransitionProps(target, nodes, currentProps) {
8948
8949        var propsTo = nodes.map(function (el, i) { return parent(el) && i in currentProps
8950                ? currentProps[i]
8951                ? isVisible(el)
8952                    ? getPositionWithMargin(el)
8953                    : {opacity: 0}
8954                : {opacity: isVisible(el) ? 1 : 0}
8955                : false; });
8956
8957        var propsFrom = propsTo.map(function (props, i) {
8958
8959            var from = parent(nodes[i]) === target && (currentProps[i] || getProps(nodes[i]));
8960
8961            if (!from) {
8962                return false;
8963            }
8964
8965            if (!props) {
8966                delete from.opacity;
8967            } else if (!('opacity' in props)) {
8968                var opacity = from.opacity;
8969
8970                if (opacity % 1) {
8971                    props.opacity = 1;
8972                } else {
8973                    delete from.opacity;
8974                }
8975            }
8976
8977            return from;
8978        });
8979
8980        return [propsTo, propsFrom];
8981    }
8982
8983    function reset(el) {
8984        css(el.children, {
8985            height: '',
8986            left: '',
8987            opacity: '',
8988            pointerEvents: '',
8989            position: '',
8990            top: '',
8991            marginTop: '',
8992            marginLeft: '',
8993            transform: '',
8994            width: '',
8995            zIndex: ''
8996        });
8997        css(el, {height: '', display: '', padding: ''});
8998    }
8999
9000    function getPositionWithMargin(el) {
9001        var ref = offset(el);
9002        var height = ref.height;
9003        var width = ref.width;
9004        var ref$1 = position(el);
9005        var top = ref$1.top;
9006        var left = ref$1.left;
9007        var ref$2 = css(el, ['marginTop', 'marginLeft']);
9008        var marginLeft = ref$2.marginLeft;
9009        var marginTop = ref$2.marginTop;
9010
9011        return {top: top, left: left, height: height, width: width, marginLeft: marginLeft, marginTop: marginTop, transform: ''};
9012    }
9013
9014    var Animate = {
9015
9016        props: {
9017            duration: Number,
9018            animation: Boolean
9019        },
9020
9021        data: {
9022            duration: 150,
9023            animation: 'slide'
9024        },
9025
9026        methods: {
9027
9028            animate: function(action, target) {
9029                var this$1$1 = this;
9030                if ( target === void 0 ) target = this.$el;
9031
9032
9033                var name = this.animation;
9034                var animationFn = name === 'fade'
9035                    ? fade
9036                    : name === 'delayed-fade'
9037                        ? function () {
9038                            var args = [], len = arguments.length;
9039                            while ( len-- ) args[ len ] = arguments[ len ];
9040
9041                            return fade.apply(void 0, args.concat( [40] ));
9042                }
9043                        : !name
9044                            ? function () {
9045                                action();
9046                                return Promise$1.resolve();
9047                            }
9048                            : slide;
9049
9050                return animationFn(action, target, this.duration)
9051                    .then(function () { return this$1$1.$update(target, 'resize'); }, noop);
9052            }
9053
9054        }
9055    };
9056
9057    var filter = {
9058
9059        mixins: [Animate],
9060
9061        args: 'target',
9062
9063        props: {
9064            target: Boolean,
9065            selActive: Boolean
9066        },
9067
9068        data: {
9069            target: null,
9070            selActive: false,
9071            attrItem: 'uk-filter-control',
9072            cls: 'uk-active',
9073            duration: 250
9074        },
9075
9076        computed: {
9077
9078            toggles: {
9079
9080                get: function(ref, $el) {
9081                    var attrItem = ref.attrItem;
9082
9083                    return $$(("[" + attrItem + "],[data-" + attrItem + "]"), $el);
9084                },
9085
9086                watch: function() {
9087                    var this$1$1 = this;
9088
9089
9090                    this.updateState();
9091
9092                    if (this.selActive !== false) {
9093                        var actives = $$(this.selActive, this.$el);
9094                        this.toggles.forEach(function (el) { return toggleClass(el, this$1$1.cls, includes(actives, el)); });
9095                    }
9096
9097                },
9098
9099                immediate: true
9100
9101            },
9102
9103            children: {
9104
9105                get: function(ref, $el) {
9106                    var target = ref.target;
9107
9108                    return $$((target + " > *"), $el);
9109                },
9110
9111                watch: function(list, old) {
9112                    if (old && !isEqualList(list, old)) {
9113                        this.updateState();
9114                    }
9115                },
9116
9117                immediate: true
9118
9119            }
9120
9121        },
9122
9123        events: [
9124
9125            {
9126
9127                name: 'click',
9128
9129                delegate: function() {
9130                    return ("[" + (this.attrItem) + "],[data-" + (this.attrItem) + "]");
9131                },
9132
9133                handler: function(e) {
9134
9135                    e.preventDefault();
9136                    this.apply(e.current);
9137
9138                }
9139
9140            }
9141
9142        ],
9143
9144        methods: {
9145
9146            apply: function(el) {
9147                var prevState = this.getState();
9148                var newState = mergeState(el, this.attrItem, this.getState());
9149
9150                if (!isEqualState(prevState, newState)) {
9151                    this.setState(newState);
9152                }
9153            },
9154
9155            getState: function() {
9156                var this$1$1 = this;
9157
9158                return this.toggles
9159                    .filter(function (item) { return hasClass(item, this$1$1.cls); })
9160                    .reduce(function (state, el) { return mergeState(el, this$1$1.attrItem, state); }, {filter: {'': ''}, sort: []});
9161            },
9162
9163            setState: function(state, animate) {
9164                var this$1$1 = this;
9165                if ( animate === void 0 ) animate = true;
9166
9167
9168                state = assign({filter: {'': ''}, sort: []}, state);
9169
9170                trigger(this.$el, 'beforeFilter', [this, state]);
9171
9172                this.toggles.forEach(function (el) { return toggleClass(el, this$1$1.cls, !!matchFilter(el, this$1$1.attrItem, state)); });
9173
9174                Promise$1.all($$(this.target, this.$el).map(function (target) {
9175                    var filterFn = function () {
9176                        applyState(state, target, children(target));
9177                        this$1$1.$update(this$1$1.$el);
9178                    };
9179                    return animate ? this$1$1.animate(filterFn, target) : filterFn();
9180                })).then(function () { return trigger(this$1$1.$el, 'afterFilter', [this$1$1]); });
9181
9182            },
9183
9184            updateState: function() {
9185                var this$1$1 = this;
9186
9187                fastdom.write(function () { return this$1$1.setState(this$1$1.getState(), false); });
9188            }
9189
9190        }
9191
9192    };
9193
9194    function getFilter(el, attr) {
9195        return parseOptions(data(el, attr), ['filter']);
9196    }
9197
9198    function isEqualState(stateA, stateB) {
9199        return ['filter', 'sort'].every(function (prop) { return isEqual(stateA[prop], stateB[prop]); });
9200    }
9201
9202    function applyState(state, target, children) {
9203        var selector = getSelector(state);
9204
9205        children.forEach(function (el) { return css(el, 'display', selector && !matches(el, selector) ? 'none' : ''); });
9206
9207        var ref = state.sort;
9208        var sort = ref[0];
9209        var order = ref[1];
9210
9211        if (sort) {
9212            var sorted = sortItems(children, sort, order);
9213            if (!isEqual(sorted, children)) {
9214                append(target, sorted);
9215            }
9216        }
9217    }
9218
9219    function mergeState(el, attr, state) {
9220
9221        var filterBy = getFilter(el, attr);
9222        var filter = filterBy.filter;
9223        var group = filterBy.group;
9224        var sort = filterBy.sort;
9225        var order = filterBy.order; if ( order === void 0 ) order = 'asc';
9226
9227        if (filter || isUndefined(sort)) {
9228
9229            if (group) {
9230
9231                if (filter) {
9232                    delete state.filter[''];
9233                    state.filter[group] = filter;
9234                } else {
9235                    delete state.filter[group];
9236
9237                    if (isEmpty(state.filter) || '' in state.filter) {
9238                        state.filter = {'': filter || ''};
9239                    }
9240
9241                }
9242
9243            } else {
9244                state.filter = {'': filter || ''};
9245            }
9246
9247        }
9248
9249        if (!isUndefined(sort)) {
9250            state.sort = [sort, order];
9251        }
9252
9253        return state;
9254    }
9255
9256    function matchFilter(el, attr, ref) {
9257        var stateFilter = ref.filter; if ( stateFilter === void 0 ) stateFilter = {'': ''};
9258        var ref_sort = ref.sort;
9259        var stateSort = ref_sort[0];
9260        var stateOrder = ref_sort[1];
9261
9262
9263        var ref$1 = getFilter(el, attr);
9264        var filter = ref$1.filter; if ( filter === void 0 ) filter = '';
9265        var group = ref$1.group; if ( group === void 0 ) group = '';
9266        var sort = ref$1.sort;
9267        var order = ref$1.order; if ( order === void 0 ) order = 'asc';
9268
9269        return isUndefined(sort)
9270            ? group in stateFilter && filter === stateFilter[group]
9271                || !filter && group && !(group in stateFilter) && !stateFilter['']
9272            : stateSort === sort && stateOrder === order;
9273    }
9274
9275    function isEqualList(listA, listB) {
9276        return listA.length === listB.length
9277            && listA.every(function (el) { return ~listB.indexOf(el); });
9278    }
9279
9280    function getSelector(ref) {
9281        var filter = ref.filter;
9282
9283        var selector = '';
9284        each(filter, function (value) { return selector += value || ''; });
9285        return selector;
9286    }
9287
9288    function sortItems(nodes, sort, order) {
9289        return assign([], nodes).sort(function (a, b) { return data(a, sort).localeCompare(data(b, sort), undefined, {numeric: true}) * (order === 'asc' || -1); });
9290    }
9291
9292    var Animations$2 = {
9293
9294        slide: {
9295
9296            show: function(dir) {
9297                return [
9298                    {transform: translate(dir * -100)},
9299                    {transform: translate()}
9300                ];
9301            },
9302
9303            percent: function(current) {
9304                return translated(current);
9305            },
9306
9307            translate: function(percent, dir) {
9308                return [
9309                    {transform: translate(dir * -100 * percent)}
9309,
9310                    {transform: translate(dir * 100 * (1 - percent))}
9311                ];
9312            }
9313
9314        }
9315
9316    };
9317
9318    function translated(el) {
9319        return Math.abs(css(el, 'transform').split(',')[4] / el.offsetWidth) || 0;
9320    }
9321
9322    function translate(value, unit) {
9323        if ( value === void 0 ) value = 0;
9324        if ( unit === void 0 ) unit = '%';
9325
9326        value += value ? unit : '';
9327        return isIE ? ("translateX(" + value + ")") : ("translate3d(" + value + ", 0, 0)"); // currently not translate3d in IE, translate3d within translate3d does not work while transitioning
9328    }
9329
9330    function scale3d(value) {
9331        return ("scale3d(" + value + ", " + value + ", 1)");
9332    }
9333
9334    var Animations$1 = assign({}, Animations$2, {
9335
9336        fade: {
9337
9338            show: function() {
9339                return [
9340                    {opacity: 0},
9341                    {opacity: 1}
9342                ];
9343            },
9344
9345            percent: function(current) {
9346                return 1 - css(current, 'opacity');
9347            },
9348
9349            translate: function(percent) {
9350                return [
9351                    {opacity: 1 - percent},
9352                    {opacity: percent}
9353                ];
9354            }
9355
9356        },
9357
9358        scale: {
9359
9360            show: function() {
9361                return [
9362                    {opacity: 0, transform: scale3d(1 - .2)},
9363                    {opacity: 1, transform: scale3d(1)}
9364                ];
9365            },
9366
9367            percent: function(current) {
9368                return 1 - css(current, 'opacity');
9369            },
9370
9371            translate: function(percent) {
9372                return [
9373                    {opacity: 1 - percent, transform: scale3d(1 - .2 * percent)},
9374                    {opacity: percent, transform: scale3d(1 - .2 + .2 * percent)}
9375                ];
9376            }
9377
9378        }
9379
9380    });
9381
9382    function Transitioner$1(prev, next, dir, ref) {
9383        var animation = ref.animation;
9384        var easing = ref.easing;
9385
9386
9387        var percent = animation.percent;
9388        var translate = animation.translate;
9389        var show = animation.show; if ( show === void 0 ) show = noop;
9390        var props = show(dir);
9391        var deferred = new Deferred();
9392
9393        return {
9394
9395            dir: dir,
9396
9397            show: function(duration, percent, linear) {
9398                var this$1$1 = this;
9399                if ( percent === void 0 ) percent = 0;
9400
9401
9402                var timing = linear ? 'linear' : easing;
9403                duration -= Math.round(duration * clamp(percent, -1, 1));
9404
9405                this.translate(percent);
9406
9407                triggerUpdate$1(next, 'itemin', {percent: percent, duration: duration, timing: timing, dir: dir});
9408                triggerUpdate$1(prev, 'itemout', {percent: 1 - percent, duration: duration, timing: timing, dir: dir});
9409
9410                Promise$1.all([
9411                    Transition.start(next, props[1], duration, timing),
9412                    Transition.start(prev, props[0], duration, timing)
9413                ]).then(function () {
9414                    this$1$1.reset();
9415                    deferred.resolve();
9416                }, noop);
9417
9418                return deferred.promise;
9419            },
9420
9421            cancel: function() {
9422                Transition.cancel([next, prev]);
9423            },
9424
9425            reset: function() {
9426                for (var prop in props[0]) {
9427                    css([next, prev], prop, '');
9428                }
9429            },
9430
9431            forward: function(duration, percent) {
9432                if ( percent === void 0 ) percent = this.percent();
9433
9434                Transition.cancel([next, prev]);
9435                return this.show(duration, percent, true);
9436            },
9437
9438            translate: function(percent) {
9439
9440                this.reset();
9441
9442                var props = translate(percent, dir);
9443                css(next, props[1]);
9444                css(prev, props[0]);
9445                triggerUpdate$1(next, 'itemtranslatein', {percent: percent, dir: dir});
9446                triggerUpdate$1(prev, 'itemtranslateout', {percent: 1 - percent, dir: dir});
9447
9448            },
9449
9450            percent: function() {
9451                return percent(prev || next, next, dir);
9452            },
9453
9454            getDistance: function() {
9455                return prev && prev.offsetWidth;
9456            }
9457
9458        };
9459
9460    }
9461
9462    function triggerUpdate$1(el, type, data) {
9463        trigger(el, createEvent(type, false, false, data));
9464    }
9465
9466    var SliderAutoplay = {
9467
9468        props: {
9469            autoplay: Boolean,
9470            autoplayInterval: Number,
9471            pauseOnHover: Boolean
9472        },
9473
9474        data: {
9475            autoplay: false,
9476            autoplayInterval: 7000,
9477            pauseOnHover: true
9478        },
9479
9480        connected: function() {
9481            this.autoplay && this.startAutoplay();
9482        },
9483
9484        disconnected: function() {
9485            this.stopAutoplay();
9486        },
9487
9488        update: function() {
9489            attr(this.slides, 'tabindex', '-1');
9490        },
9491
9492        events: [
9493
9494            {
9495
9496                name: 'visibilitychange',
9497
9498                el: function() {
9499                    return document;
9500                },
9501
9502                filter: function() {
9503                    return this.autoplay;
9504                },
9505
9506                handler: function() {
9507                    if (document.hidden) {
9508                        this.stopAutoplay();
9509                    } else {
9510                        this.startAutoplay();
9511                    }
9512                }
9513
9514            }
9515
9516        ],
9517
9518        methods: {
9519
9520            startAutoplay: function() {
9521                var this$1$1 = this;
9522
9523
9524                this.stopAutoplay();
9525
9526                this.interval = setInterval(
9527                    function () { return (!this$1$1.draggable || !$(':focus', this$1$1.$el))
9528                        && (!this$1$1.pauseOnHover || !matches(this$1$1.$el, ':hover'))
9529                        && !this$1$1.stack.length
9530                        && this$1$1.show('next'); },
9531                    this.autoplayInterval
9532                );
9533
9534            },
9535
9536            stopAutoplay: function() {
9537                this.interval && clearInterval(this.interval);
9538            }
9539
9540        }
9541
9542    };
9543
9544    var SliderDrag = {
9545
9546        props: {
9547            draggable: Boolean
9548        },
9549
9550        data: {
9551            draggable: true,
9552            threshold: 10
9553        },
9554
9555        created: function() {
9556            var this$1$1 = this;
9557
9558
9559            ['start', 'move', 'end'].forEach(function (key) {
9560
9561                var fn = this$1$1[key];
9562                this$1$1[key] = function (e) {
9563
9564                    var pos = getEventPos(e).x * (isRtl ? -1 : 1);
9565
9566                    this$1$1.prevPos = pos !== this$1$1.pos ? this$1$1.pos : this$1$1.prevPos;
9567                    this$1$1.pos = pos;
9568
9569                    fn(e);
9570                };
9571
9572            });
9573
9574        },
9575
9576        events: [
9577
9578            {
9579
9580                name: pointerDown,
9581
9582                delegate: function() {
9583                    return this.selSlides;
9584                },
9585
9586                handler: function(e) {
9587
9588                    if (!this.draggable
9589                        || !isTouch(e) && hasTextNodesOnly(e.target)
9590                        || closest(e.target, selInput)
9591                        || e.button > 0
9592                        || this.length < 2
9593                    ) {
9594                        return;
9595                    }
9596
9597                    this.start(e);
9598                }
9599
9600            },
9601
9602            {
9603                name: 'dragstart',
9604
9605                handler: function(e) {
9606                    e.preventDefault();
9607                }
9608            }
9609
9610        ],
9611
9612        methods: {
9613
9614            start: function() {
9615
9616                this.drag = this.pos;
9617
9618                if (this._transitioner) {
9619
9620                    this.percent = this._transitioner.percent();
9621                    this.drag += this._transitioner.getDistance() * this.percent * this.dir;
9622
9623                    this._transitioner.cancel();
9624                    this._transitioner.translate(this.percent);
9625
9626                    this.dragging = true;
9627
9628                    this.stack = [];
9629
9630                } else {
9631                    this.prevIndex = this.index;
9632                }
9633
9634                on(document, pointerMove, this.move, {passive: false});
9635
9636                // 'input' event is triggered by video controls
9637                on(document, (pointerUp + " " + pointerCancel + " input"), this.end, true);
9638
9639                css(this.list, 'userSelect', 'none');
9640
9641            },
9642
9643            move: function(e) {
9644                var this$1$1 = this;
9645
9646
9647                var distance = this.pos - this.drag;
9648
9649                if (distance === 0 || this.prevPos === this.pos || !this.dragging && Math.abs(distance) < this.threshold) {
9650                    return;
9651                }
9652
9653                // prevent click event
9654                css(this.list, 'pointerEvents', 'none');
9655
9656                e.cancelable && e.preventDefault();
9657
9658                this.dragging = true;
9659                this.dir = (distance < 0 ? 1 : -1);
9660
9661                var ref = this;
9662                var slides = ref.slides;
9663                var ref$1 = this;
9664                var prevIndex = ref$1.prevIndex;
9665                var dis = Math.abs(distance);
9666                var nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);
9667                var width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;
9668
9669                while (nextIndex !== prevIndex && dis > width) {
9670
9671                    this.drag -= width * this.dir;
9672
9673                    prevIndex = nextIndex;
9674                    dis -= width;
9675                    nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);
9676                    width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;
9677
9678                }
9679
9680                this.percent = dis / width;
9681
9682                var prev = slides[prevIndex];
9683                var next = slides[nextIndex];
9684                var changed = this.index !== nextIndex;
9685                var edge = prevIndex === nextIndex;
9686
9687                var itemShown;
9688
9689                [this.index, this.prevIndex].filter(function (i) { return !includes([nextIndex, prevIndex], i); }).forEach(function (i) {
9690                    trigger(slides[i], 'itemhidden', [this$1$1]);
9691
9692                    if (edge) {
9693                        itemShown = true;
9694                        this$1$1.prevIndex = prevIndex;
9695                    }
9696
9697                });
9698
9699                if (this.index === prevIndex && this.prevIndex !== prevIndex || itemShown) {
9700                    trigger(slides[this.index], 'itemshown', [this]);
9701                }
9702
9703                if (changed) {
9704                    this.prevIndex = prevIndex;
9705                    this.index = nextIndex;
9706
9707                    !edge && trigger(prev, 'beforeitemhide', [this]);
9708                    trigger(next, 'beforeitemshow', [this]);
9709                }
9710
9711                this._transitioner = this._translate(Math.abs(this.percent), prev, !edge && next);
9712
9713                if (changed) {
9714                    !edge && trigger(prev, 'itemhide', [this]);
9715                    trigger(next, 'itemshow', [this]);
9716                }
9717
9718            },
9719
9720            end: function() {
9721
9722                off(document, pointerMove, this.move, {passive: false});
9723                off(document, (pointerUp + " " + pointerCancel + " input"), this.end, true);
9724
9725                if (this.dragging) {
9726
9727                    this.dragging = null;
9728
9729                    if (this.index === this.prevIndex) {
9730                        this.percent = 1 - this.percent;
9731                        this.dir *= -1;
9732                        this._show(false, this.index, true);
9733                        this._transitioner = null;
9734                    } else {
9735
9736                        var dirChange = (isRtl ? this.dir * (isRtl ? 1 : -1) : this.dir) < 0 === this.prevPos > this.pos;
9737                        this.index = dirChange ? this.index : this.prevIndex;
9738
9739                        if (dirChange) {
9740                            this.percent = 1 - this.percent;
9741                        }
9742
9743                        this.show(this.dir > 0 && !dirChange || this.dir < 0 && dirChange ? 'next' : 'previous', true);
9744                    }
9745
9746                }
9747
9748                css(this.list, {userSelect: '', pointerEvents: ''});
9749
9750                this.drag
9751                    = this.percent
9752                    = null;
9753
9754            }
9755
9756        }
9757
9758    };
9759
9760    function hasTextNodesOnly(el) {
9761        return !el.children.length && el.childNodes.length;
9762    }
9763
9764    var SliderNav = {
9765
9766        data: {
9767            selNav: false
9768        },
9769
9770        computed: {
9771
9772            nav: function(ref, $el) {
9773                var selNav = ref.selNav;
9774
9775                return $(selNav, $el);
9776            },
9777
9778            selNavItem: function(ref) {
9779                var attrItem = ref.attrItem;
9780
9781                return ("[" + attrItem + "],[data-" + attrItem + "]");
9782            },
9783
9784            navItems: function(_, $el) {
9785                return $$(this.selNavItem, $el);
9786            }
9787
9788        },
9789
9790        update: {
9791
9792            write: function() {
9793                var this$1$1 = this;
9794
9795
9796                if (this.nav && this.length !== this.nav.children.length) {
9797                    html(this.nav, this.slides.map(function (_, i) { return ("<li " + (this$1$1.attrItem) + "=\"" + i + "\"><a href></a></li>"); }).join(''));
9798                }
9799
9800                this.navItems.concat(this.nav).forEach(function (el) { return el && (el.hidden = !this$1$1.maxIndex); });
9801
9802                this.updateNav();
9803
9804            },
9805
9806            events: ['resize']
9807
9808        },
9809
9810        events: [
9811
9812            {
9813
9814                name: 'click',
9815
9816                delegate: function() {
9817                    return this.selNavItem;
9818                },
9819
9820                handler: function(e) {
9821                    e.preventDefault();
9822                    this.show(data(e.current, this.attrItem));
9823                }
9824
9825            },
9826
9827            {
9828
9829                name: 'itemshow',
9830                handler: 'updateNav'
9831
9832            }
9833
9834        ],
9835
9836        methods: {
9837
9838            updateNav: function() {
9839                var this$1$1 = this;
9840
9841
9842                var i = this.getValidIndex();
9843                this.navItems.forEach(function (el) {
9844
9845                    var cmd = data(el, this$1$1.attrItem);
9846
9847                    toggleClass(el, this$1$1.clsActive, toNumber(cmd) === i);
9848                    toggleClass(el, 'uk-invisible', this$1$1.finite && (cmd === 'previous' && i === 0 || cmd === 'next' && i >= this$1$1.maxIndex));
9849                });
9850
9851            }
9852
9853        }
9854
9855    };
9856
9857    var Slider = {
9858
9859        mixins: [SliderAutoplay, SliderDrag, SliderNav],
9860
9861        props: {
9862            clsActivated: Boolean,
9863            easing: String,
9864            index: Number,
9865            finite: Boolean,
9866            velocity: Number,
9867            selSlides: String
9868        },
9869
9870        data: function () { return ({
9871            easing: 'ease',
9872            finite: false,
9873            velocity: 1,
9874            index: 0,
9875            prevIndex: -1,
9876            stack: [],
9877            percent: 0,
9878            clsActive: 'uk-active',
9879            clsActivated: false,
9880            Transitioner: false,
9881            transitionOptions: {}
9882        }); },
9883
9884        connected: function() {
9885            this.prevIndex = -1;
9886            this.index = this.getValidIndex(this.$props.index);
9887            this.stack = [];
9888        },
9889
9890        disconnected: function() {
9891            removeClass(this.slides, this.clsActive);
9892        },
9893
9894        computed: {
9895
9896            duration: function(ref, $el) {
9897                var velocity = ref.velocity;
9898
9899                return speedUp($el.offsetWidth / velocity);
9900            },
9901
9902            list: function(ref, $el) {
9903                var selList = ref.selList;
9904
9905                return $(selList, $el);
9906            },
9907
9908            maxIndex: function() {
9909                return this.length - 1;
9910            },
9911
9912            selSlides: function(ref) {
9913                var selList = ref.selList;
9914                var selSlides = ref.selSlides;
9915
9916                return (selList + " " + (selSlides || '> *'));
9917            },
9918
9919            slides: {
9920
9921                get: function() {
9922                    return $$(this.selSlides, this.$el);
9923                },
9924
9925                watch: function() {
9926                    this.$reset();
9927                }
9928
9929            },
9930
9931            length: function() {
9932                return this.slides.length;
9933            }
9934
9935        },
9936
9937        events: {
9938
9939            itemshown: function() {
9940                this.$update(this.list);
9941            }
9942
9943        },
9944
9945        methods: {
9946
9947            show: function(index, force) {
9948                var this$1$1 = this;
9949                if ( force === void 0 ) force = false;
9950
9951
9952                if (this.dragging || !this.length) {
9953                    return;
9954                }
9955
9956                var ref = this;
9957                var stack = ref.stack;
9958                var queueIndex = force ? 0 : stack.length;
9959                var reset = function () {
9960                    stack.splice(queueIndex, 1);
9961
9962                    if (stack.length) {
9963                        this$1$1.show(stack.shift(), true);
9964                    }
9965                };
9966
9967                stack[force ? 'unshift' : 'push'](index);
9968
9969                if (!force && stack.length > 1) {
9970
9971                    if (stack.length === 2) {
9972                        this._transitioner.forward(Math.min(this.duration, 200));
9973                    }
9974
9975                    return;
9976                }
9977
9978                var prevIndex = this.getIndex(this.index);
9979                var prev = hasClass(this.slides, this.clsActive) && this.slides[prevIndex];
9980                var nextIndex = this.getIndex(index, this.index);
9981                var next = this.slides[nextIndex];
9982
9983                if (prev === next) {
9984                    reset();
9985                    return;
9986                }
9987
9988                this.dir = getDirection(index, prevIndex);
9989                this.prevIndex = prevIndex;
9990                this.index = nextIndex;
9991
9992                if (prev && !trigger(prev, 'beforeitemhide', [this])
9993                    || !trigger(next, 'beforeitemshow', [this, prev])
9994                ) {
9995                    this.index = this.prevIndex;
9996                    reset();
9997                    return;
9998                }
9999
10000                var promise = this._show(prev, next, force).then(function () {
10001
10002                    prev && trigger(prev, 'itemhidden', [this$1$1]);
10003                    trigger(next, 'itemshown', [this$1$1]);
10004
10005                    return new Promise$1(function (resolve) {
10006                        fastdom.write(function () {
10007                            stack.shift();
10008                            if (stack.length) {
10009                                this$1$1.show(stack.shift(), true);
10010                            } else {
10011                                this$1$1._transitioner = null;
10012                            }
10013                            resolve();
10014                        });
10015                    });
10016
10017                });
10018
10019                prev && trigger(prev, 'itemhide', [this]);
10020                trigger(next, 'itemshow', [this]);
10021
10022                return promise;
10023
10024            },
10025
10026            getIndex: function(index, prev) {
10027                if ( index === void 0 ) index = this.index;
10028                if ( prev === void 0 ) prev = this.index;
10029
10030                return clamp(getIndex(index, this.slides, prev, this.finite), 0, this.maxIndex);
10031            },
10032
10033            getValidIndex: function(index, prevIndex) {
10034                if ( index === void 0 ) index = this.index;
10035                if ( prevIndex === void 0 ) prevIndex = this.prevIndex;
10036
10037                return this.getIndex(index, prevIndex);
10038            },
10039
10040            _show: function(prev, next, force) {
10041
10042                this._transitioner = this._getTransitioner(
10043                    prev,
10044                    next,
10045                    this.dir,
10046                    assign({
10047                        easing: force
10048                            ? next.offsetWidth < 600
10049                                ? 'cubic-bezier(0.25, 0.46, 0.45, 0.94)' /* easeOutQuad */
10050                                : 'cubic-bezier(0.165, 0.84, 0.44, 1)' /* easeOutQuart */
10051                            : this.easing
10052                    }, this.transitionOptions)
10053                );
10054
10055                if (!force && !prev) {
10056                    this._translate(1);
10057                    return Promise$1.resolve();
10058                }
10059
10060                var ref = this.stack;
10061                var length = ref.length;
10062                return this._transitioner[length > 1 ? 'forward' : 'show'](length > 1 ? Math.min(this.duration, 75 + 75 / (length - 1)) : this.duration, this.percent);
10063
10064            },
10065
10066            _getDistance: function(prev, next) {
10067                return this._getTransitioner(prev, prev !== next && next).getDistance();
10068            },
10069
10070            _translate: function(percent, prev, next) {
10071                if ( prev === void 0 ) prev = this.prevIndex;
10072                if ( next === void 0 ) next = this.index;
10073
10074                var transitioner = this._getTransitioner(prev !== next ? prev : false, next);
10075                transitioner.translate(percent);
10076                return transitioner;
10077            },
10078
10079            _getTransitioner: function(prev, next, dir, options) {
10080                if ( prev === void 0 ) prev = this.prevIndex;
10081                if ( next === void 0 ) next = this.index;
10082                if ( dir === void 0 ) dir = this.dir || 1;
10083                if ( options === void 0 ) options = this.transitionOptions;
10084
10085                return new this.Transitioner(
10086                    isNumber(prev) ? this.slides[prev] : prev,
10087                    isNumber(next) ? this.slides[next] : next,
10088                    dir * (isRtl ? -1 : 1),
10089                    options
10090                );
10091            }
10092
10093        }
10094
10095    };
10096
10097    function getDirection(index, prevIndex) {
10098        return index === 'next'
10099            ? 1
10100            : index === 'previous'
10101                ? -1
10102                : index < prevIndex
10103                    ? -1
10104                    : 1;
10105    }
10106
10107    function speedUp(x) {
10108        return .5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)
10109    }
10110
10111    var Slideshow = {
10112
10113        mixins: [Slider],
10114
10115        props: {
10116            animation: String
10117        },
10118
10119        data: {
10120            animation: 'slide',
10121            clsActivated: 'uk-transition-active',
10122            Animations: Animations$2,
10123            Transitioner: Transitioner$1
10124        },
10125
10126        computed: {
10127
10128            animation: function(ref) {
10129                var animation = ref.animation;
10130                var Animations = ref.Animations;
10131
10132                return assign(Animations[animation] || Animations.slide, {name: animation});
10133            },
10134
10135            transitionOptions: function() {
10136                return {animation: this.animation};
10137            }
10138
10139        },
10140
10141        events: {
10142
10143            'itemshow itemhide itemshown itemhidden': function(ref) {
10144                var target = ref.target;
10145
10146                this.$update(target);
10147            },
10148
10149            beforeitemshow: function(ref) {
10150                var target = ref.target;
10151
10152                addClass(target, this.clsActive);
10153            },
10154
10155            itemshown: function(ref) {
10156                var target = ref.target;
10157
10158                addClass(target, this.clsActivated);
10159            },
10160
10161            itemhidden: function(ref) {
10162                var target = ref.target;
10163
10164                removeClass(target, this.clsActive, this.clsActivated);
10165            }
10166
10167        }
10168
10169    };
10170
10171    var LightboxPanel = {
10172
10173        mixins: [Container, Modal, Togglable, Slideshow],
10174
10175        functional: true,
10176
10177        props: {
10178            delayControls: Number,
10179            preload: Number,
10180            videoAutoplay: Boolean,
10181            template: String
10182        },
10183
10184        data: function () { return ({
10185            preload: 1,
10186            videoAutoplay: false,
10187            delayControls: 3000,
10188            items: [],
10189            cls: 'uk-open',
10190            clsPage: 'uk-lightbox-page',
10191            selList: '.uk-lightbox-items',
10192            attrItem: 'uk-lightbox-item',
10193            selClose: '.uk-close-large',
10194            selCaption: '.uk-lightbox-caption',
10195            pauseOnHover: false,
10196            velocity: 2,
10197            Animations: Animations$1,
10198            template: "<div class=\"uk-lightbox uk-overflow-hidden\"> <ul class=\"uk-lightbox-items\"></ul> <div class=\"uk-lightbox-toolbar uk-position-top uk-text-right uk-transition-slide-top uk-transition-opaque\"> <button class=\"uk-lightbox-toolbar-icon uk-close-large\" type=\"button\" uk-close></button> </div> <a class=\"uk-lightbox-button uk-position-center-left uk-position-medium uk-transition-fade\" href uk-slidenav-previous uk-lightbox-item=\"previous\"></a> <a class=\"uk-lightbox-button uk-position-center-right uk-position-medium uk-transition-fade\" href uk-slidenav-next uk-lightbox-item=\"next\"></a> <div class=\"uk-lightbox-toolbar uk-lightbox-caption uk-position-bottom uk-text-center uk-transition-sli
10198de-bottom uk-transition-opaque\"></div> </div>"
10199        }); },
10200
10201        created: function() {
10202
10203            var $el = $(this.template);
10204            var list = $(this.selList, $el);
10205            this.items.forEach(function () { return append(list, '<li>'); });
10206
10207            this.$mount(append(this.container, $el));
10208
10209        },
10210
10211        computed: {
10212
10213            caption: function(ref, $el) {
10214                var selCaption = ref.selCaption;
10215
10216                return $(selCaption, $el);
10217            }
10218
10219        },
10220
10221        events: [
10222
10223            {
10224
10225                name: (pointerMove + " " + pointerDown + " keydown"),
10226
10227                handler: 'showControls'
10228
10229            },
10230
10231            {
10232
10233                name: 'click',
10234
10235                self: true,
10236
10237                delegate: function() {
10238                    return this.selSlides;
10239                },
10240
10241                handler: function(e) {
10242
10243                    if (e.defaultPrevented) {
10244                        return;
10245                    }
10246
10247                    this.hide();
10248                }
10249
10250            },
10251
10252            {
10253
10254                name: 'shown',
10255
10256                self: true,
10257
10258                handler: function() {
10259                    this.showControls();
10260                }
10261
10262            },
10263
10264            {
10265
10266                name: 'hide',
10267
10268                self: true,
10269
10270                handler: function() {
10271
10272                    this.hideControls();
10273
10274                    removeClass(this.slides, this.clsActive);
10275                    Transition.stop(this.slides);
10276
10277                }
10278            },
10279
10280            {
10281
10282                name: 'hidden',
10283
10284                self: true,
10285
10286                handler: function() {
10287                    this.$destroy(true);
10288                }
10289
10290            },
10291
10292            {
10293
10294                name: 'keyup',
10295
10296                el: function() {
10297                    return document;
10298                },
10299
10300                handler: function(e) {
10301
10302                    if (!this.isToggled(this.$el) || !this.draggable) {
10303                        return;
10304                    }
10305
10306                    switch (e.keyCode) {
10307                        case 37:
10308                            this.show('previous');
10309                            break;
10310                        case 39:
10311                            this.show('next');
10312                            break;
10313                    }
10314                }
10315            },
10316
10317            {
10318
10319                name: 'beforeitemshow',
10320
10321                handler: function(e) {
10322
10323                    if (this.isToggled()) {
10324                        return;
10325                    }
10326
10327                    this.draggable = false;
10328
10329                    e.preventDefault();
10330
10331                    this.toggleElement(this.$el, true, false);
10332
10333                    this.animation = Animations$1['scale'];
10334                    removeClass(e.target, this.clsActive);
10335                    this.stack.splice(1, 0, this.index);
10336
10337                }
10338
10339            },
10340
10341            {
10342
10343                name: 'itemshow',
10344
10345                handler: function() {
10346
10347                    html(this.caption, this.getItem().caption || '');
10348
10349                    for (var j = -this.preload; j <= this.preload; j++) {
10350                        this.loadItem(this.index + j);
10351                    }
10352
10353                }
10354
10355            },
10356
10357            {
10358
10359                name: 'itemshown',
10360
10361                handler: function() {
10362                    this.draggable = this.$props.draggable;
10363                }
10364
10365            },
10366
10367            {
10368
10369                name: 'itemload',
10370
10371                handler: function(_, item) {
10372                    var this$1$1 = this;
10373
10374
10375                    var src = item.source;
10376                    var type = item.type;
10377                    var alt = item.alt; if ( alt === void 0 ) alt = '';
10378                    var poster = item.poster;
10379                    var attrs = item.attrs; if ( attrs === void 0 ) attrs = {};
10380
10381                    this.setItem(item, '<span uk-spinner></span>');
10382
10383                    if (!src) {
10384                        return;
10385                    }
10386
10387                    var matches;
10388                    var iframeAttrs = {
10389                        frameborder: '0',
10390                        allow: 'autoplay',
10391                        allowfullscreen: '',
10392                        style: 'max-width: 100%; box-sizing: border-box;',
10393                        'uk-responsive': '',
10394                        'uk-video': ("" + (this.videoAutoplay))
10395                    };
10396
10397                    // Image
10398                    if (type === 'image' || src.match(/\.(avif|jpe?g|a?png|gif|svg|webp)($|\?)/i)) {
10399
10400                        getImage(src, attrs.srcset, attrs.size).then(
10401                            function (ref) {
10402                                var width = ref.width;
10403                                var height = ref.height;
10404
10405                                return this$1$1.setItem(item, createEl('img', assign({src: src, width: width, height: height, alt: alt}, attrs)));
10406                        },
10407                            function () { return this$1$1.setError(item); }
10408                        );
10409
10410                    // Video
10411                    } else if (type === 'video' || src.match(/\.(mp4|webm|ogv)($|\?)/i)) {
10412
10413                        var video = createEl('video', assign({
10414                            src: src,
10415                            poster: poster,
10416                            controls: '',
10417                            playsinline: '',
10418                            'uk-video': ("" + (this.videoAutoplay))
10419                        }, attrs));
10420
10421                        on(video, 'loadedmetadata', function () {
10422                            attr(video, {width: video.videoWidth, height: video.videoHeight});
10423                            this$1$1.setItem(item, video);
10424                        });
10425                        on(video, 'error', function () { return this$1$1.setError(item); });
10426
10427                    // Iframe
10428                    } else if (type === 'iframe' || src.match(/\.(html|php)($|\?)/i)) {
10429
10430                        this.setItem(item, createEl('iframe', assign({
10431                            src: src,
10432                            frameborder: '0',
10433                            allowfullscreen: '',
10434                            class: 'uk-lightbox-iframe'
10435                        }, attrs)));
10436
10437                    // YouTube
10438                    } else if ((matches = src.match(/\/\/(?:.*?youtube(-nocookie)?\..*?[?&]v=|youtu\.be\/)([\w-]{11}
10438)[&?]?(.*)?/))) {
10439
10440                        this.setItem(item, createEl('iframe', assign({
10441                            src: ("https://www.youtube" + (matches[1] || '') + ".com/embed/" + (matches[2]) + (matches[3] ? ("?" + (matches[3])) : '')),
10442                            width: 1920,
10443                            height: 1080
10444                        }, iframeAttrs, attrs)));
10445
10446                    // Vimeo
10447                    } else if ((matches = src.match(/\/\/.*?vimeo\.[a-z]+\/(\d+)[&?]?(.*)?/))) {
10448
10449                        ajax(("https://vimeo.com/api/oembed.json?maxwidth=1920&url=" + (encodeURI(src))), {
10450                            responseType: 'json',
10451                            withCredentials: false
10452                        }).then(
10453                            function (ref) {
10454                                var ref_response = ref.response;
10455                                var height = ref_response.height;
10456                                var width = ref_response.width;
10457
10458                                return this$1$1.setItem(item, createEl('iframe', assign({
10459                                src: ("https://player.vimeo.com/video/" + (matches[1]) + (matches[2] ? ("?" + (matches[2])) : '')),
10460                                width: width,
10461                                height: height
10462                            }, iframeAttrs, attrs)));
10463                        },
10464                            function () { return this$1$1.setError(item); }
10465                        );
10466
10467                    }
10468
10469                }
10470
10471            }
10472
10473        ],
10474
10475        methods: {
10476
10477            loadItem: function(index) {
10478                if ( index === void 0 ) index = this.index;
10479
10480
10481                var item = this.getItem(index);
10482
10483                if (!this.getSlide(item).childElementCount) {
10484                    trigger(this.$el, 'itemload', [item]);
10485                }
10486            },
10487
10488            getItem: function(index) {
10489                if ( index === void 0 ) index = this.index;
10490
10491                return this.items[getIndex(index, this.slides)];
10492            },
10493
10494            setItem: function(item, content) {
10495                trigger(this.$el, 'itemloaded', [this, html(this.getSlide(item), content) ]);
10496            },
10497
10498            getSlide: function(item) {
10499                return this.slides[this.items.indexOf(item)];
10500            },
10501
10502            setError: function(item) {
10503                this.setItem(item, '<span uk-icon="icon: bolt; ratio: 2"></span>');
10504            },
10505
10506            showControls: function() {
10507
10508                clearTimeout(this.controlsTimer);
10509                this.controlsTimer = setTimeout(this.hideControls, this.delayControls);
10510
10511                addClass(this.$el, 'uk-active', 'uk-transition-active');
10512
10513            },
10514
10515            hideControls: function() {
10516                removeClass(this.$el, 'uk-active', 'uk-transition-active');
10517            }
10518
10519        }
10520
10521    };
10522
10523    function createEl(tag, attrs) {
10524        var el = fragment(("<" + tag + ">"));
10525        attr(el, attrs);
10526        return el;
10527    }
10528
10529    var lightbox = {
10530
10531        install: install$1,
10532
10533        props: {toggle: String},
10534
10535        data: {toggle: 'a'},
10536
10537        computed: {
10538
10539            toggles: {
10540
10541                get: function(ref, $el) {
10542                    var toggle = ref.toggle;
10543
10544                    return $$(toggle, $el);
10545                },
10546
10547                watch: function() {
10548                    this.hide();
10549                }
10550
10551            }
10552
10553        },
10554
10555        disconnected: function() {
10556            this.hide();
10557        },
10558
10559        events: [
10560
10561            {
10562
10563                name: 'click',
10564
10565                delegate: function() {
10566                    return ((this.toggle) + ":not(.uk-disabled)");
10567                },
10568
10569                handler: function(e) {
10570                    e.preventDefault();
10571                    this.show(e.current);
10572                }
10573
10574            }
10575
10576        ],
10577
10578        methods: {
10579
10580            show: function(index) {
10581                var this$1$1 = this;
10582
10583
10584                var items = uniqueBy(this.toggles.map(toItem), 'source');
10585
10586                if (isElement(index)) {
10587                    var ref = toItem(index);
10588                    var source = ref.source;
10589                    index = findIndex(items, function (ref) {
10590                        var src = ref.source;
10591
10592                        return source === src;
10593                    });
10594                }
10595
10596                this.panel = this.panel || this.$create('lightboxPanel', assign({}, this.$props, {items: items}));
10597
10598                on(this.panel.$el, 'hidden', function () { return this$1$1.panel = false; });
10599
10600                return this.panel.show(index);
10601
10602            },
10603
10604            hide: function() {
10605
10606                return this.panel && this.panel.hide();
10607
10608            }
10609
10610        }
10611
10612    };
10613
10614    function install$1(UIkit, Lightbox) {
10615
10616        if (!UIkit.lightboxPanel) {
10617            UIkit.component('lightboxPanel', LightboxPanel);
10618        }
10619
10620        assign(
10621            Lightbox.props,
10622            UIkit.component('lightboxPanel').options.props
10623        );
10624
10625    }
10626
10627    function toItem(el) {
10628
10629        var item = {};
10630
10631        ['href', 'caption', 'type', 'poster', 'alt', 'attrs'].forEach(function (attr) {
10632            item[attr === 'href' ? 'source' : attr] = data(el, attr);
10633        });
10634
10635        item.attrs = parseOptions(item.attrs);
10636
10637        return item;
10638    }
10639
10640    var obj$1;
10641
10642    var notification = {
10643
10644        mixins: [Container],
10645
10646        functional: true,
10647
10648        args: ['message', 'status'],
10649
10650        data: {
10651            message: '',
10652            status: '',
10653            timeout: 5000,
10654            group: null,
10655            pos: 'top-center',
10656            clsContainer: 'uk-notification',
10657            clsClose: 'uk-notification-close',
10658            clsMsg: 'uk-notification-message'
10659        },
10660
10661        install: install,
10662
10663        computed: {
10664
10665            marginProp: function(ref) {
10666                var pos = ref.pos;
10667
10668                return ("margin" + (startsWith(pos, 'top') ? 'Top' : 'Bottom'));
10669            },
10670
10671            startProps: function() {
10672                var obj;
10673
10674                return ( obj = {opacity: 0}, obj[this.marginProp] = -this.$el.offsetHeight, obj );
10675            }
10676
10677        },
10678
10679        created: function() {
10680
10681            var container = $(("." + (this.clsContainer) + "-" + (this.pos)), this.container)
10682                || append(this.container, ("<div class=\"" + (this.clsContainer) + " " + (this.clsContainer) + "-" + (this.pos) + "\" style=\"display: block\"></div>"));
10683
10684            this.$mount(append(container,
10685                ("<div class=\"" + (this.clsMsg) + (this.status ? (" " + (this.clsMsg) + "-" + (this.status)) : '') + "\"> <a href class=\"" + (this.clsClose) + "\" data-uk-close></a> <div>" + (this.message) + "</div> </div>")
10686            ));
10687
10688        },
10689
10690        connected: function() {
10691            var this$1$1 = this;
10692            var obj;
10693
10694
10695            var margin = toFloat(css(this.$el, this.marginProp));
10696            Transition.start(
10697                css(this.$el, this.startProps),
10698                ( obj = {opacity: 1}, obj[this.marginProp] = margin, obj )
10699            ).then(function () {
10700                if (this$1$1.timeout) {
10701                    this$1$1.timer = setTimeout(this$1$1.close, this$1$1.timeout);
10702                }
10703            });
10704
10705        },
10706
10707        events: ( obj$1 = {
10708
10709            click: function(e) {
10710                if (closest(e.target, 'a[href="#"],a[href=""]')) {
10711                    e.preventDefault();
10712                }
10713                this.close();
10714            }
10715
10716        }, obj$1[pointerEnter] = function () {
10717                if (this.timer) {
10718                    clearTimeout(this.timer);
10719                }
10720            }, obj$1[pointerLeave] = function () {
10721                if (this.timeout) {
10722                    this.timer = setTimeout(this.close, this.timeout);
10723                }
10724            }, obj$1 ),
10725
10726        methods: {
10727
10728            close: function(immediate) {
10729                var this$1$1 = this;
10730
10731
10732                var removeFn = function (el) {
10733
10734                    var container = parent(el);
10735
10736                    trigger(el, 'close', [this$1$1]);
10737                    remove$1(el);
10738
10739                    if (container && !container.hasChildNodes()) {
10740                        remove$1(container);
10741                    }
10742
10743                };
10744
10745                if (this.timer) {
10746                    clearTimeout(this.timer);
10747                }
10748
10749                if (immediate) {
10750                    removeFn(this.$el);
10751                } else {
10752                    Transition.start(this.$el, this.startProps).then(removeFn);
10753                }
10754            }
10755
10756        }
10757
10758    };
10759
10760    function install(UIkit) {
10761        UIkit.notification.closeAll = function (group, immediate) {
10762            apply$1(document.body, function (el) {
10763                var notification = UIkit.getComponent(el, 'notification');
10764                if (notification && (!group || group === notification.group)) {
10765                    notification.close(immediate);
10766                }
10767            });
10768        };
10769    }
10770
10771    var props = ['x', 'y', 'bgx', 'bgy', 'rotate', 'scale', 'color', 'backgroundColor', 'borderColor', 'opacity', 'blur', 'hue', 'grayscale', 'invert', 'saturate', 'sepia', 'fopacity', 'stroke'];
10772
10773    var Parallax = {
10774
10775        mixins: [Media],
10776
10777        props: props.reduce(function (props, prop) {
10778            props[prop] = 'list';
10779            return props;
10780        }, {}),
10781
10782        data: props.reduce(function (data, prop) {
10783            data[prop] = undefined;
10784            return data;
10785        }, {}),
10786
10787        computed: {
10788
10789            props: function(properties, $el) {
10790                var this$1$1 = this;
10791
10792
10793                return props.reduce(function (props, prop) {
10794
10795                    if (isUndefined(properties[prop])) {
10796                        return props;
10797                    }
10798
10799                    var isColor = prop.match(/color/i);
10800                    var isCssProp = isColor || prop === 'opacity';
10801
10802                    var pos, bgPos, diff;
10803                    var steps = properties[prop].slice();
10804
10805                    if (isCssProp) {
10806                        css($el, prop, '');
10807                    }
10808
10809                    if (steps.length < 2) {
10810                        steps.unshift((prop === 'scale'
10811                            ? 1
10812                            : isCssProp
10813                                ? css($el, prop)
10814                                : 0) || 0);
10815                    }
10816
10817                    var unit = getUnit(steps);
10818
10819                    if (isColor) {
10820
10821                        var ref = $el.style;
10822                        var color = ref.color;
10823                        steps = steps.map(function (step) { return parseColor($el, step); });
10824                        $el.style.color = color;
10825
10826                    } else if (startsWith(prop, 'bg')) {
10827
10828                        var attr = prop === 'bgy' ? 'height' : 'width';
10829                        steps = steps.map(function (step) { return toPx(step, attr, this$1$1.$el); });
10830
10831                        css($el, ("background-position-" + (prop[2])), '');
10832                        bgPos = css($el, 'backgroundPosition').split(' ')[prop[2] === 'x' ? 0 : 1]; // IE 11 can't read background-position-[x|y]
10833
10834                        if (this$1$1.covers) {
10835
10836                            var min = Math.min.apply(Math, steps);
10837                            var max = Math.max.apply(Math, steps);
10838                            var down = steps.indexOf(min) < steps.indexOf(max);
10839
10840                            diff = max - min;
10841
10842                            steps = steps.map(function (step) { return step - (down ? min : max); });
10843                            pos = (down ? -diff : 0) + "px";
10844
10845                        } else {
10846
10847                            pos = bgPos;
10848
10849                        }
10850
10851                    } else {
10852
10853                        steps = steps.map(toFloat);
10854
10855                    }
10856
10857                    if (prop === 'stroke') {
10858
10859                        if (!steps.some(function (step) { return step; })) {
10860                            return props;
10861                        }
10862
10863                        var length = getMaxPathLength(this$1$1.$el);
10864                        css($el, 'strokeDasharray', length);
10865
10866                        if (unit === '%') {
10867                            steps = steps.map(function (step) { return step * length / 100; });
10868                        }
10869
10870                        steps = steps.reverse();
10871
10872                        prop = 'strokeDashoffset';
10873                    }
10874
10875                    props[prop] = {steps: steps, unit: unit, pos: pos, bgPos: bgPos, diff: diff};
10876
10877                    return props;
10878
10879                }, {});
10880
10881            },
10882
10883            bgProps: function() {
10884                var this$1$1 = this;
10885
10886                return ['bgx', 'bgy'].filter(function (bg) { return bg in this$1$1.props; });
10887            },
10888
10889            covers: function(_, $el) {
10890                return covers($el);
10891            }
10892
10893        },
10894
10895        disconnected: function() {
10896            delete this._image;
10897        },
10898
10899        update: {
10900
10901            read: function(data) {
10902                var this$1$1 = this;
10903
10904
10905                if (!this.matchMedia) {
10906                    return;
10907                }
10908
10909                if (!data.image && this.covers && this.bgProps.length) {
10910                    var src = css(this.$el, 'backgroundImage').replace(/^none|url\(["']?(.+?)["']?\)$/, '$1');
10911
10912                    if (src) {
10913                        var img = new Image();
10914                        img.src = src;
10915                        data.image = img;
10916
10917                        if (!img.naturalWidth) {
10918                            img.onload = function () { return this$1$1.$update(); };
10919                        }
10920                    }
10921
10922                }
10923
10924                var image = data.image;
10925
10926                if (!image || !image.naturalWidth) {
10927                    return;
10928                }
10929
10930                var dimEl = {
10931                    width: this.$el.offsetWidth,
10932                    height: this.$el.offsetHeight
10933                };
10934                var dimImage = {
10935                    width: image.naturalWidth,
10936                    height: image.naturalHeight
10937                };
10938
10939                var dim = Dimensions.cover(dimImage, dimEl);
10940
10941                this.bgProps.forEach(function (prop) {
10942
10943                    var ref = this$1$1.props[prop];
10944                    var diff = ref.diff;
10945                    var bgPos = ref.bgPos;
10946                    var steps = ref.steps;
10947                    var attr = prop === 'bgy' ? 'height' : 'width';
10948                    var span = dim[attr] - dimEl[attr];
10949
10950                    if (span < diff) {
10951                        dimEl[attr] = dim[attr] + diff - span;
10952                    } else if (span > diff) {
10953
10954                        var posPercentage = dimEl[attr] / toPx(bgPos, attr, this$1$1.$el);
10955
10956                        if (posPercentage) {
10957                            this$1$1.props[prop].steps = steps.map(function (step) { return step - (span - diff) / posPercentage; });
10958                        }
10959                    }
10960
10961                    dim = Dimensions.cover(dimImage, dimEl);
10962                });
10963
10964                data.dim = dim;
10965            },
10966
10967            write: function(ref) {
10968                var dim = ref.dim;
10969
10970
10971                if (!this.matchMedia) {
10972                    css(this.$el, {backgroundSize: '', backgroundRepeat: ''});
10973                    return;
10974                }
10975
10976                dim && css(this.$el, {
10977                    backgroundSize: ((dim.width) + "px " + (dim.height) + "px"),
10978                    backgroundRepeat: 'no-repeat'
10979                });
10980
10981            },
10982
10983            events: ['resize']
10984
10985        },
10986
10987        methods: {
10988
10989            reset: function() {
10990                var this$1$1 = this;
10991
10992                each(this.getCss(0), function (_, prop) { return css(this$1$1.$el, prop, ''); });
10993            },
10994
10995            getCss: function(percent) {
10996
10997                var ref = this;
10998                var props = ref.props;
10999                return Object.keys(props).reduce(function (css, prop) {
11000
11001                    var ref = props[prop];
11002                    var steps = ref.steps;
11003                    var unit = ref.unit;
11004                    var pos = ref.pos;
11005                    var value = getValue(steps, percent);
11006
11007                    switch (prop) {
11008
11009                        // transforms
11010                        case 'x':
11011                        case 'y': {
11012                            unit = unit || 'px';
11013                            css.transform += " translate" + (ucfirst(prop)) + "(" + (toFloat(value).toFixed(unit === 'px' ? 0 : 2)) + unit + ")";
11014                            break;
11015                        }
11016                        case 'rotate':
11017                            unit = unit || 'deg';
11018                            css.transform += " rotate(" + (value + unit) + ")";
11019                            break;
11020                        case 'scale':
11021                            css.transform += " scale(" + value + ")";
11022                            break;
11023
11024                        // bg image
11025                        case 'bgy':
11026                        case 'bgx':
11027                            css[("background-position-" + (prop[2]))] = "calc(" + pos + " + " + value + "px)";
11028                            break;
11029
11030                        // color
11031                        case 'color':
11032                        case 'backgroundColor':
11033                        case 'borderColor': {
11034
11035                            var ref$1 = getStep(steps, percent);
11036                            var start = ref$1[0];
11037                            var end = ref$1[1];
11038                            var p = ref$1[2];
11039
11040                            css[prop] = "rgba(" + (start.map(function (value, i) {
11041                                    value = value + p * (end[i] - value);
11042                                    return i === 3 ? toFloat(value) : parseInt(value, 10);
11043                                }).join(',')) + ")";
11044                            break;
11045                        }
11046                        // CSS Filter
11047                        case 'blur':
11048                            unit = unit || 'px';
11049                            css.filter += " blur(" + (value + unit) + ")";
11050                            break;
11051                        case 'hue':
11052                            unit = unit || 'deg';
11053                            css.filter += " hue-rotate(" + (value + unit) + ")";
11054                            break;
11055                        case 'fopacity':
11056                            unit = unit || '%';
11057                            css.filter += " opacity(" + (value + unit) + ")";
11058                            break;
11059                        case 'grayscale':
11060                        case 'invert':
11061                        case 'saturate':
11062                        case 'sepia':
11063                            unit = unit || '%';
11064                            css.filter += " " + prop + "(" + (value + unit) + ")";
11065                            break;
11066                        default:
11067                            css[prop] = value;
11068                    }
11069
11070                    return css;
11071
11072                }, {transform: '', filter: ''});
11073
11074            }
11075
11076        }
11077
11078    };
11079
11080    function parseColor(el, color) {
11081        return css(css(el, 'color', color), 'color')
11082            .split(/[(),]/g)
11083            .slice(1, -1)
11084            .concat(1)
11085            .slice(0, 4)
11086            .map(toFloat);
11087    }
11088
11089    function getStep(steps, percent) {
11090        var count = steps.length - 1;
11091        var index = Math.min(Math.floor(count * percent), count - 1);
11092        var step = steps.slice(index, index + 2);
11093
11094        step.push(percent === 1 ? 1 : percent % (1 / count) * count);
11095
11096        return step;
11097    }
11098
11099    function getValue(steps, percent, digits) {
11100        if ( digits === void 0 ) digits = 2;
11101
11102        var ref = getStep(steps, percent);
11103        var start = ref[0];
11104        var end = ref[1];
11105        var p = ref[2];
11106        return (isNumber(start)
11107            ? start + Math.abs(start - end) * p * (start < end ? 1 : -1)
11108            : +end
11109        ).toFixed(digits);
11110    }
11111
11112    function getUnit(steps) {
11113        return steps.reduce(function (unit, step) { return isString(step) && step.replace(/-|\d/g, '').trim() || unit; }, '');
11114    }
11115
11116    function covers(el) {
11117        var ref = el.style;
11118        var backgroundSize = ref.backgroundSize;
11119        var covers = css(css(el, 'backgroundSize', ''), 'backgroundSize') === 'cover';
11120        el.style.backgroundSize = backgroundSize;
11121        return covers;
11122    }
11123
11124    var parallax = {
11125
11126        mixins: [Parallax],
11127
11128        props: {
11129            target: String,
11130            viewport: Number,
11131            easing: Number
11132        },
11133
11134        data: {
11135            target: false,
11136            viewport: 1,
11137            easing: 1
11138        },
11139
11140        computed: {
11141
11142            target: function(ref, $el) {
11143                var target = ref.target;
11144
11145                return getOffsetElement(target && query(target, $el) || $el);
11146            }
11147
11148        },
11149
11150        update: {
11151
11152            read: function(ref, types) {
11153                var percent = ref.percent;
11154
11155
11156                if (!types.has('scroll')) {
11157                    percent = false;
11158                }
11159
11160                if (!this.matchMedia) {
11161                    return;
11162                }
11163
11164                var prev = percent;
11165                percent = ease(scrolledOver(this.target) / (this.viewport || 1), this.easing);
11166
11167                return {
11168                    percent: percent,
11169                    style: prev !== percent ? this.getCss(percent) : false
11170                };
11171            },
11172
11173            write: function(ref) {
11174                var style = ref.style;
11175
11176
11177                if (!this.matchMedia) {
11178                    this.reset();
11179                    return;
11180                }
11181
11182                style && css(this.$el, style);
11183
11184            },
11185
11186            events: ['scroll', 'resize']
11187        }
11188
11189    };
11190
11191    function ease(percent, easing) {
11192        return clamp(percent * (1 - (easing - easing * percent)));
11193    }
11194
11195    // SVG elements do not inherit from HTMLElement
11196    function getOffsetElement(el) {
11197        return el
11198            ? 'offsetTop' in el
11199                ? el
11200                : getOffsetElement(parent(el))
11201            : document.body;
11202    }
11203
11204    var SliderReactive = {
11205
11206        update: {
11207
11208            write: function() {
11209
11210                if (this.stack.length || this.dragging) {
11211                    return;
11212                }
11213
11214                var index = this.getValidIndex(this.index);
11215
11216                if (!~this.prevIndex || this.index !== index) {
11217                    this.show(index);
11218                }
11219
11220            },
11221
11222            events: ['resize']
11223
11224        }
11225
11226    };
11227
11228    function Transitioner (prev, next, dir, ref) {
11229        var center = ref.center;
11230        var easing = ref.easing;
11231        var list = ref.list;
11232
11233
11234        var deferred = new Deferred();
11235
11236        var from = prev
11237            ? getLeft(prev, list, center)
11238            : getLeft(next, list, center) + dimensions(next).width * dir;
11239        var to = next
11240            ? getLeft(next, list, center)
11241            : from + dimensions(prev).width * dir * (isRtl ? -1 : 1);
11242
11243        return {
11244
11245            dir: dir,
11246
11247            show: function(duration, percent, linear) {
11248                if ( percent === void 0 ) percent = 0;
11249
11250
11251                var timing = linear ? 'linear' : easing;
11252                duration -= Math.round(duration * clamp(percent, -1, 1));
11253
11254                this.translate(percent);
11255
11256                percent = prev ? percent : clamp(percent, 0, 1);
11257                triggerUpdate(this.getItemIn(), 'itemin', {percent: percent, duration: duration, timing: timing, dir: dir});
11258                prev && triggerUpdate(this.getItemIn(true), 'itemout', {percent: 1 - percent, duration: duration, timing: timing, dir: dir});
11259
11260                Transition
11261                    .start(list, {transform: translate(-to * (isRtl ? -1 : 1), 'px')}, duration, timing)
11262                    .then(deferred.resolve, noop);
11263
11264                return deferred.promise;
11265
11266            },
11267
11268            cancel: function() {
11269                Transition.cancel(list);
11270            },
11271
11272            reset: function() {
11273                css(list, 'transform', '');
11274            },
11275
11276            forward: function(duration, percent) {
11277                if ( percent === void 0 ) percent = this.percent();
11278
11279                Transition.cancel(list);
11280                return this.show(duration, percent, true);
11281            },
11282
11283            translate: function(percent) {
11284
11285                var distance = this.getDistance() * dir * (isRtl ? -1 : 1);
11286
11287                css(list, 'transform', translate(clamp(
11288                    -to + (distance - distance * percent),
11289                    -getWidth(list),
11290                    dimensions(list).width
11291                ) * (isRtl ? -1 : 1), 'px'));
11292
11293                var actives = this.getActives();
11294                var itemIn = this.getItemIn();
11295                var itemOut = this.getItemIn(true);
11296
11297                percent = prev ? clamp(percent, -1, 1) : 0;
11298
11299                children(list).forEach(function (slide) {
11300                    var isActive = includes(actives, slide);
11301                    var isIn = slide === itemIn;
11302                    var isOut = slide === itemOut;
11303                    var translateIn = isIn || !isOut && (isActive || dir * (isRtl ? -1 : 1) === -1 ^ getElLeft(slide, list) > getElLeft(prev || next));
11304
11305                    triggerUpdate(slide, ("itemtranslate" + (translateIn ? 'in' : 'out')), {
11306                        dir: dir,
11307                        percent: isOut
11308                            ? 1 - percent
11309                            : isIn
11310                                ? percent
11311                                : isActive
11312                                    ? 1
11313                                    : 0
11314                    });
11315                });
11316
11317            },
11318
11319            percent: function() {
11320                return Math.abs((css(list, 'transform').split(',')[4] * (isRtl ? -1 : 1) + from) / (to - from));
11321            },
11322
11323            getDistance: function() {
11324                return Math.abs(to - from);
11325            },
11326
11327            getItemIn: function(out) {
11328                if ( out === void 0 ) out = false;
11329
11330
11331                var actives = this.getActives();
11332                var nextActives = inView(list, getLeft(next || prev, list, center));
11333
11334                if (out) {
11335                    var temp = actives;
11336                    actives = nextActives;
11337                    nextActives = temp;
11338                }
11339
11340                return nextActives[findIndex(nextActives, function (el) { return !includes(actives, el); })];
11341
11342            },
11343
11344            getActives: function() {
11345                return inView(list, getLeft(prev || next, list, center));
11346            }
11347
11348        };
11349
11350    }
11351
11352    function getLeft(el, list, center) {
11353
11354        var left = getElLeft(el, list);
11355
11356        return center
11357            ? left - centerEl(el, list)
11358            : Math.min(left, getMax(list));
11359
11360    }
11361
11362    function getMax(list) {
11363        return Math.max(0, getWidth(list) - dimensions(list).width);
11364    }
11365
11366    function getWidth(list) {
11367        return children(list).reduce(function (right, el) { return dimensions(el).width + right; }, 0);
11368    }
11369
11370    function centerEl(el, list) {
11371        return dimensions(list).width / 2 - dimensions(el).width / 2;
11372    }
11373
11374    function getElLeft(el, list) {
11375        return el && (position(el).left + (isRtl ? dimensions(el).width - dimensions(list).width : 0)) * (isRtl ? -1 : 1) || 0;
11376    }
11377
11378    function inView(list, listLeft) {
11379
11380        listLeft -= 1;
11381        var listWidth = dimensions(list).width;
11382        var listRight = listLeft + listWidth + 2;
11383
11384        return children(list).filter(function (slide) {
11385            var slideLeft = getElLeft(slide, list);
11386            var slideRight = slideLeft + Math.min(dimensions(slide).width, listWidth);
11387
11388            return slideLeft >= listLeft && slideRight <= listRight;
11389        });
11390    }
11391
11392    function triggerUpdate(el, type, data) {
11393        trigger(el, createEvent(type, false, false, data));
11394    }
11395
11396    var slider = {
11397
11398        mixins: [Class, Slider, SliderReactive],
11399
11400        props: {
11401            center: Boolean,
11402            sets: Boolean
11403        },
11404
11405        data: {
11406            center: false,
11407            sets: false,
11408            attrItem: 'uk-slider-item',
11409            selList: '.uk-slider-items',
11410            selNav: '.uk-slider-nav',
11411            clsContainer: 'uk-slider-container',
11412            Transitioner: Transitioner
11413        },
11414
11415        computed: {
11416
11417            avgWidth: function() {
11418                return getWidth(this.list) / this.length;
11419            },
11420
11421            finite: function(ref) {
11422                var finite = ref.finite;
11423
11424                return finite || Math.ceil(getWidth(this.list)) < dimensions(this.list).width + getMaxElWidth(this.list) + this.center;
11425            },
11426
11427            maxIndex: function() {
11428
11429                if (!this.finite || this.center && !this.sets) {
11430                    return this.length - 1;
11431                }
11432
11433                if (this.center) {
11434                    return last(this.sets);
11435                }
11436
11437                var lft = 0;
11438                var max = getMax(this.list);
11439                var index = findIndex(this.slides, function (el) {
11440
11441                    if (lft >= max) {
11442                        return true;
11443                    }
11444
11445                    lft += dimensions(el).width;
11446
11447                });
11448
11449                return ~index ? index : this.length - 1;
11450            },
11451
11452            sets: function(ref) {
11453                var this$1$1 = this;
11454                var sets = ref.sets;
11455
11456
11457                if (!sets) {
11458                    return;
11459                }
11460
11461                var width = dimensions(this.list).width / (this.center ? 2 : 1);
11462
11463                var left = 0;
11464                var leftCenter = width;
11465                var slideLeft = 0;
11466
11467                sets = sortBy$1(this.slides, 'offsetLeft').reduce(function (sets, slide, i) {
11468
11469                    var slideWidth = dimensions(slide).width;
11470                    var slideRight = slideLeft + slideWidth;
11471
11472                    if (slideRight > left) {
11473
11474                        if (!this$1$1.center && i > this$1$1.maxIndex) {
11475                            i = this$1$1.maxIndex;
11476                        }
11477
11478                        if (!includes(sets, i)) {
11479
11480                            var cmp = this$1$1.slides[i + 1];
11481                            if (this$1$1.center && cmp && slideWidth < leftCenter - dimensions(cmp).width / 2) {
11482                                leftCenter -= slideWidth;
11483                            } else {
11484                                leftCenter = width;
11485                                sets.push(i);
11486                                left = slideLeft + width + (this$1$1.center ? slideWidth / 2 : 0);
11487                            }
11488
11489                        }
11490                    }
11491
11492                    slideLeft += slideWidth;
11493
11494                    return sets;
11495
11496                }, []);
11497
11498                return !isEmpty(sets) && sets;
11499
11500            },
11501
11502            transitionOptions: function() {
11503                return {
11504                    center: this.center,
11505                    list: this.list
11506                };
11507            }
11508
11509        },
11510
11511        connected: function() {
11512            toggleClass(this.$el, this.clsContainer, !$(("." + (this.clsContainer)), this.$el));
11513        },
11514
11515        update: {
11516
11517            write: function() {
11518                var this$1$1 = this;
11519
11520                this.navItems.forEach(function (el) {
11521                    var index = toNumber(data(el, this$1$1.attrItem));
11522                    if (index !== false) {
11523                        el.hidden = !this$1$1.maxIndex || index > this$1$1.maxIndex || this$1$1.sets && !includes(this$1$1.sets, index);
11524                    }
11525                });
11526
11527                if (this.length && !this.dragging && !this.stack.length) {
11528                    this.reorder();
11529                    this._translate(1);
11530                }
11531
11532                var actives = this._getTransitioner(this.index).getActives();
11533                this.slides.forEach(function (slide) { return toggleClass(slide, this$1$1.clsActive, includes(actives, slide)); });
11534
11535                if (this.clsActivated && (!this.sets || includes(this.sets, toFloat(this.index)))) {
11536                    this.slides.forEach(function (slide) { return toggleClass(slide, this$1$1.clsActivated || '', includes(actives, slide)); });
11537                }
11538            },
11539
11540            events: ['resize']
11541
11542        },
11543
11544        events: {
11545
11546            beforeitemshow: function(e) {
11547
11548                if (!this.dragging && this.sets && this.stack.length < 2 && !includes(this.sets, this.index)) {
11549                    this.index = this.getValidIndex();
11550                }
11551
11552                var diff = Math.abs(
11553                    this.index
11554                    - this.prevIndex
11555                    + (this.dir > 0 && this.index < this.prevIndex || this.dir < 0 && this.index > this.prevIndex ? (this.maxIndex + 1) * this.dir : 0)
11556                );
11557
11558                if (!this.dragging && diff > 1) {
11559
11560                    for (var i = 0; i < diff; i++) {
11561                        this.stack.splice(1, 0, this.dir > 0 ? 'next' : 'previous');
11562                    }
11563
11564                    e.preventDefault();
11565                    return;
11566                }
11567
11568                var index = this.dir < 0 || !this.slides[this.prevIndex] ? this.index : this.prevIndex;
11569                this.duration = speedUp(this.avgWidth / this.velocity) * (dimensions(this.slides[index]).width / this.avgWidth);
11570
11571                this.reorder();
11572
11573            },
11574
11575            itemshow: function() {
11576                if (~this.prevIndex) {
11577                    addClass(this._getTransitioner().getItemIn(), this.clsActive);
11578                }
11579            }
11580
11581        },
11582
11583        methods: {
11584
11585            reorder: function() {
11586                var this$1$1 = this;
11587
11588
11589                if (this.finite) {
11590                    css(this.slides, 'order', '');
11591                    return;
11592                }
11593
11594                var index = this.dir > 0 && this.slides[this.prevIndex] ? this.prevIndex : this.index;
11595
11596                this.slides.forEach(function (slide, i) { return css(slide, 'order', this$1$1.dir > 0 && i < index
11597                        ? 1
11598                        : this$1$1.dir < 0 && i >= this$1$1.index
11599                            ? -1
11600                            : ''
11601                    ); }
11602                );
11603
11604                if (!this.center) {
11605                    return;
11606                }
11607
11608                var next = this.slides[index];
11609                var width = dimensions(this.list).width / 2 - dimensions(next).width / 2;
11610                var j = 0;
11611
11612                while (width > 0) {
11613                    var slideIndex = this.getIndex(--j + index, index);
11614                    var slide = this.slides[slideIndex];
11615
11616                    css(slide, 'order', slideIndex > index ? -2 : -1);
11617                    width -= dimensions(slide).width;
11618                }
11619
11620            },
11621
11622            getValidIndex: function(index, prevIndex) {
11623                if ( index === void 0 ) index = this.index;
11624                if ( prevIndex === void 0 ) prevIndex = this.prevIndex;
11625
11626
11627                index = this.getIndex(index, prevIndex);
11628
11629                if (!this.sets) {
11630                    return index;
11631                }
11632
11633                var prev;
11634
11635                do {
11636
11637                    if (includes(this.sets, index)) {
11638                        return index;
11639                    }
11640
11641                    prev = index;
11642                    index = this.getIndex(index + this.dir, prevIndex);
11643
11644                } while (index !== prev);
11645
11646                return index;
11647            }
11648
11649        }
11650
11651    };
11652
11653    function getMaxElWidth(list) {
11654        return Math.max.apply(Math, [ 0 ].concat( children(list).map(function (el) { return dimensions(el).width; }) ));
11655    }
11656
11657    var sliderParallax = {
11658
11659        mixins: [Parallax],
11660
11661        data: {
11662            selItem: '!li'
11663        },
11664
11665        computed: {
11666
11667            item: function(ref, $el) {
11668                var selItem = ref.selItem;
11669
11670                return query(selItem, $el);
11671            }
11672
11673        },
11674
11675        events: [
11676
11677            {
11678                name: 'itemin itemout',
11679
11680                self: true,
11681
11682                el: function() {
11683                    return this.item;
11684                },
11685
11686                handler: function(ref) {
11687                    var this$1$1 = this;
11688                    var type = ref.type;
11689                    var ref_detail = ref.detail;
11690                    var percent = ref_detail.percent;
11691                    var duration = ref_detail.duration;
11692                    var timing = ref_detail.timing;
11693                    var dir = ref_detail.dir;
11694
11695
11696                    fastdom.read(function () {
11697                        var propsFrom = this$1$1.getCss(getCurrentPercent(type, dir, percent));
11698                        var propsTo = this$1$1.getCss(isIn(type) ? .5 : dir > 0 ? 1 : 0);
11699                        fastdom.write(function () {
11700                            css(this$1$1.$el, propsFrom);
11701                            Transition.start(this$1$1.$el, propsTo, duration, timing).catch(noop);
11702                        });
11703                    });
11704
11705                }
11706            },
11707
11708            {
11709                name: 'transitioncanceled transitionend',
11710
11711                self: true,
11712
11713                el: function() {
11714                    return this.item;
11715                },
11716
11717                handler: function() {
11718                    Transition.cancel(this.$el);
11719                }
11720
11721            },
11722
11723            {
11724                name: 'itemtranslatein itemtranslateout',
11725
11726                self: true,
11727
11728                el: function() {
11729                    return this.item;
11730                },
11731
11732                handler: function(ref) {
11733                    var this$1$1 = this;
11734                    var type = ref.type;
11735                    var ref_detail = ref.detail;
11736                    var percent = ref_detail.percent;
11737                    var dir = ref_detail.dir;
11738
11739                    fastdom.read(function () {
11740                        var props = this$1$1.getCss(getCurrentPercent(type, dir, percent));
11741                        fastdom.write(function () { return css(this$1$1.$el, props); });
11742                    });
11743                }
11744            }
11745
11746        ]
11747
11748    };
11749
11750    function isIn(type) {
11751        return endsWith(type, 'in');
11752    }
11753
11754    function getCurrentPercent(type, dir, percent) {
11755
11756        percent /= 2;
11757
11758        return !isIn(type)
11759            ? dir < 0
11760                ? percent
11761                : 1 - percent
11762            : dir < 0
11763                ? 1 - percent
11764                : percent;
11765    }
11766
11767    var Animations = assign({}, Animations$2, {
11768
11769        fade: {
11770
11771            show: function() {
11772                return [
11773                    {opacity: 0, zIndex: 0},
11774                    {zIndex: -1}
11775                ];
11776            },
11777
11778            percent: function(current) {
11779                return 1 - css(current, 'opacity');
11780            },
11781
11782            translate: function(percent) {
11783                return [
11784                    {opacity: 1 - percent, zIndex: 0},
11785                    {zIndex: -1}
11786                ];
11787            }
11788
11789        },
11790
11791        scale: {
11792
11793            show: function() {
11794                return [
11795                    {opacity: 0, transform: scale3d(1 + .5), zIndex: 0},
11796                    {zIndex: -1}
11797                ];
11798            },
11799
11800            percent: function(current) {
11801                return 1 - css(current, 'opacity');
11802            },
11803
11804            translate: function(percent) {
11805                return [
11806                    {opacity: 1 - percent, transform: scale3d(1 + .5 * percent), zIndex: 0},
11807                    {zIndex: -1}
11808                ];
11809            }
11810
11811        },
11812
11813        pull: {
11814
11815            show: function(dir) {
11816                return dir < 0
11817                    ? [
11818                        {transform: translate(30), zIndex: -1},
11819                        {transform: translate(), zIndex: 0}
11820                    ]
11821                    : [
11822                        {transform: translate(-100), zIndex: 0},
11823                        {transform: translate(), zIndex: -1}
11824                    ];
11825            },
11826
11827            percent: function(current, next, dir) {
11828                return dir < 0
11829                    ? 1 - translated(next)
11830                    : translated(current);
11831            },
11832
11833            translate: function(percent, dir) {
11834                return dir < 0
11835                    ? [
11836                        {transform: translate(30 * percent), zIndex: -1},
11837                        {transform: translate(-100 * (1 - percent)), zIndex: 0}
11838                    ]
11839                    : [
11840                        {transform: translate(-percent * 100), zIndex: 0},
11841                        {transform: translate(30 * (1 - percent)), zIndex: -1}
11842                    ];
11843            }
11844
11845        },
11846
11847        push: {
11848
11849            show: function(dir) {
11850                return dir < 0
11851                    ? [
11852                        {transform: translate(100), zIndex: 0},
11853                        {transform: translate(), zIndex: -1}
11854                    ]
11855                    : [
11856                        {transform: translate(-30), zIndex: -1},
11857                        {transform: translate(), zIndex: 0}
11858                    ];
11859            },
11860
11861            percent: function(current, next, dir) {
11862                return dir > 0
11863                    ? 1 - translated(next)
11864                    : translated(current);
11865            },
11866
11867            translate: function(percent, dir) {
11868                return dir < 0
11869                    ? [
11870                        {transform: translate(percent * 100), zIndex: 0},
11871                        {transform: translate(-30 * (1 - percent)), zIndex: -1}
11872                    ]
11873                    : [
11874                        {transform: translate(-30 * percent), zIndex: -1},
11875                        {transform: translate(100 * (1 - percent)), zIndex: 0}
11876                    ];
11877            }
11878
11879        }
11880
11881    });
11882
11883    var slideshow = {
11884
11885        mixins: [Class, Slideshow, SliderReactive],
11886
11887        props: {
11888            ratio: String,
11889            minHeight: Number,
11890            maxHeight: Number
11891        },
11892
11893        data: {
11894            ratio: '16:9',
11895            minHeight: false,
11896            maxHeight: false,
11897            selList: '.uk-slideshow-items',
11898            attrItem: 'uk-slideshow-item',
11899            selNav: '.uk-slideshow-nav',
11900            Animations: Animations
11901        },
11902
11903        update: {
11904
11905            read: function() {
11906
11907                var ref = this.ratio.split(':').map(Number);
11908                var width = ref[0];
11909                var height = ref[1];
11910
11911                height = height * this.list.offsetWidth / width || 0;
11912
11913                if (this.minHeight) {
11914                    height = Math.max(this.minHeight, height);
11915                }
11916
11917                if (this.maxHeight) {
11918                    height = Math.min(this.maxHeight, height);
11919                }
11920
11921                return {height: height - boxModelAdjust(this.list, 'height', 'content-box')};
11922            },
11923
11924            write: function(ref) {
11925                var height = ref.height;
11926
11927                height > 0 && css(this.list, 'minHeight', height);
11928            },
11929
11930            events: ['resize']
11931
11932        }
11933
11934    };
11935
11936    var sortable = {
11937
11938        mixins: [Class, Animate],
11939
11940        props: {
11941            group: String,
11942            threshold: Number,
11943            clsItem: String,
11944            clsPlaceholder: String,
11945            clsDrag: String,
11946            clsDragState: String,
11947            clsBase: String,
11948            clsNoDrag: String,
11949            clsEmpty: String,
11950            clsCustom: String,
11951            handle: String
11952        },
11953
11954        data: {
11955            group: false,
11956            threshold: 5,
11957            clsItem: 'uk-sortable-item',
11958            clsPlaceholder: 'uk-sortable-placeholder',
11959            clsDrag: 'uk-sortable-drag',
11960            clsDragState: 'uk-drag',
11961            clsBase: 'uk-sortable',
11962            clsNoDrag: 'uk-sortable-nodrag',
11963            clsEmpty: 'uk-sortable-empty',
11964            clsCustom: '',
11965            handle: false,
11966            pos: {}
11967        },
11968
11969        created: function() {
11970            var this$1$1 = this;
11971
11972            ['init', 'start', 'move', 'end'].forEach(function (key) {
11973                var fn = this$1$1[key];
11974                this$1$1[key] = function (e) {
11975                    assign(this$1$1.pos, getEventPos(e));
11976                    fn(e);
11977                };
11978            });
11979        },
11980
11981        events: {
11982
11983            name: pointerDown,
11984            passive: false,
11985            handler: 'init'
11986
11987        },
11988
11989        computed: {
11990
11991            target: function() {
11992                return (this.$el.tBodies || [this.$el])[0];
11993            },
11994
11995            items: function() {
11996                return children(this.target);
11997            },
11998
11999            isEmpty: {
12000
12001                get: function() {
12002                    return isEmpty(this.items);
12003                },
12004
12005                watch: function(empty) {
12006                    toggleClass(this.target, this.clsEmpty, empty);
12007                },
12008
12009                immediate: true
12010
12011            },
12012
12013            handles: {
12014
12015                get: function(ref, el) {
12016                    var handle = ref.handle;
12017
12018                    return handle ? $$(handle, el) : this.items;
12019                },
12020
12021                watch: function(handles, prev) {
12022                    css(prev, {touchAction: '', userSelect: ''});
12023                    css(handles, {touchAction: hasTouch ? 'none' : '', userSelect: 'none'}); // touchAction set to 'none' causes a performance drop in Chrome 80
12024                },
12025
12026                immediate: true
12027
12028            }
12029
12030        },
12031
12032        update: {
12033
12034            write: function(data) {
12035
12036                if (!this.drag || !parent(this.placeholder)) {
12037                    return;
12038                }
12039
12040                var ref = this;
12041                var ref_pos = ref.pos;
12042                var x = ref_pos.x;
12043                var y = ref_pos.y;
12044                var ref_origin = ref.origin;
12045                var offsetTop = ref_origin.offsetTop;
12046                var offsetLeft = ref_origin.offsetLeft;
12047                var placeholder = ref.placeholder;
12048
12049                css(this.drag, {
12050                    top: y - offsetTop,
12051                    left: x - offsetLeft
12052                });
12053
12054                var sortable = this.getSortable(document.elementFromPoint(x, y));
12055
12056                if (!sortable) {
12057                    return;
12058                }
12059
12060                var items = sortable.items;
12061
12062                if (items.some(Transition.inProgress)) {
12063                    return;
12064                }
12065
12066                var target = findTarget(items, {x: x, y: y});
12067
12068                if (items.length && (!target || target === placeholder)) {
12069                    return;
12070                }
12071
12072                var previous = this.getSortable(placeholder);
12073                var insertTarget = findInsertTarget(sortable.target, target, placeholder, x, y, sortable === previous && data.moved !== target);
12074
12075                if (insertTarget === false) {
12076                    return;
12077                }
12078
12079                if (insertTarget && placeholder === insertTarget) {
12080                    return;
12081                }
12082
12083                if (sortable !== previous) {
12084                    previous.remove(placeholder);
12085                    data.moved = target;
12086                } else {
12087                    delete data.moved;
12088                }
12089
12090                sortable.insert(placeholder, insertTarget);
12091
12092                this.touched.add(sortable);
12093            },
12094
12095            events: ['move']
12096
12097        },
12098
12099        methods: {
12100
12101            init: function(e) {
12102
12103                var target = e.target;
12104                var button = e.button;
12105                var defaultPrevented = e.defaultPrevented;
12106                var ref = this.items.filter(function (el) { return within(target, el); });
12107                var placeholder = ref[0];
12108
12109                if (!placeholder
12110                    || defaultPrevented
12111                    || button > 0
12112                    || isInput(target)
12113                    || within(target, ("." + (this.clsNoDrag)))
12114                    || this.handle && !within(target, this.handle)
12115                ) {
12116                    return;
12117                }
12118
12119                e.preventDefault();
12120
12121                this.touched = new Set([this]);
12122                this.placeholder = placeholder;
12123                this.origin = assign({target: target, index: index(placeholder)}, this.pos);
12124
12125                on(document, pointerMove, this.move);
12126                on(document, pointerUp, this.end);
12127
12128                if (!this.threshold) {
12129                    this.start(e);
12130                }
12131
12132            },
12133
12134            start: function(e) {
12135
12136                this.drag = appendDrag(this.$container, this.placeholder);
12137                var ref = this.placeholder.getBoundingClientRect();
12138                var left = ref.left;
12139                var top = ref.top;
12140                assign(this.origin, {offsetLeft: this.pos.x - left, offsetTop: this.pos.y - top});
12141
12142                addClass(this.drag, this.clsDrag, this.clsCustom);
12143                addClass(this.placeholder, this.clsPlaceholder);
12144                addClass(this.items, this.clsItem);
12145                addClass(document.documentElement, this.clsDragState);
12146
12147                trigger(this.$el, 'start', [this, this.placeholder]);
12148
12149                trackScroll(this.pos);
12150
12151                this.move(e);
12152            },
12153
12154            move: function(e) {
12155
12156                if (this.drag) {
12157                    this.$emit('move');
12158                } else if (Math.abs(this.pos.x - this.origin.x) > this.threshold || Math.abs(this.pos.y - this.origin.y) > this.threshold) {
12159                    this.start(e);
12160                }
12161
12162            },
12163
12164            end: function() {
12165                var this$1$1 = this;
12166
12167
12168                off(document, pointerMove, this.move);
12169                off(document, pointerUp, this.end);
12170                off(window, 'scroll', this.scroll);
12171
12172                if (!this.drag) {
12173                    return;
12174                }
12175
12176                untrackScroll();
12177
12178                var sortable = this.getSortable(this.placeholder);
12179
12180                if (this === sortable) {
12181                    if (this.origin.index !== index(this.placeholder)) {
12182                        trigger(this.$el, 'moved', [this, this.placeholder]);
12183                    }
12184                } else {
12185                    trigger(sortable.$el, 'added', [sortable, this.placeholder]);
12186                    trigger(this.$el, 'removed', [this, this.placeholder]);
12187                }
12188
12189                trigger(this.$el, 'stop', [this, this.placeholder]);
12190
12191                remove$1(this.drag);
12192                this.drag = null;
12193
12194                this.touched.forEach(function (ref) {
12195                        var clsPlaceholder = ref.clsPlaceholder;
12196                        var clsItem = ref.clsItem;
12197
12198                        return this$1$1.touched.forEach(function (sortable) { return removeClass(sortable.items, clsPlaceholder, clsItem); }
12199                    );
12200                }
12201                );
12202                this.touched = null;
12203                removeClass(document.documentElement, this.clsDragState);
12204
12205            },
12206
12207            insert: function(element, target) {
12208                var this$1$1 = this;
12209
12210
12211                addClass(this.items, this.clsItem);
12212
12213                var insert = function () { return target
12214                    ? before(target, element)
12215                    : append(this$1$1.target, element); };
12216
12217                this.animate(insert);
12218
12219            },
12220
12221            remove: function(element) {
12222
12223                if (!within(element, this.target)) {
12224                    return;
12225                }
12226
12227                this.animate(function () { return remove$1(element); });
12228
12229            },
12230
12231            getSortable: function(element) {
12232                do {
12233                    var sortable = this.$getComponent(element, 'sortable');
12234
12235                    if (sortable && (sortable === this || this.group !== false && sortable.group === this.group)) {
12236                        return sortable;
12237                    }
12238                } while ((element = parent(element)));
12239            }
12240
12241        }
12242
12243    };
12244
12245    var trackTimer;
12246    function trackScroll(pos) {
12247
12248        var last = Date.now();
12249        trackTimer = setInterval(function () {
12250
12251            var x = pos.x;
12252            var y = pos.y;
12253            y += window.pageYOffset;
12254
12255            var dist = (Date.now() - last) * .3;
12256            last = Date.now();
12257
12258            scrollParents(document.elementFromPoint(x, pos.y)).reverse().some(function (scrollEl) {
12259
12260                var scroll = scrollEl.scrollTop;
12261                var scrollHeight = scrollEl.scrollHeight;
12262
12263                var ref = offset(getViewport$1(scrollEl));
12264                var top = ref.top;
12265                var bottom = ref.bottom;
12266                var height = ref.height;
12267
12268                if (top < y && top + 35 > y) {
12269                    scroll -= dist;
12270                } else if (bottom > y && bottom - 35 < y) {
12271                    scroll += dist;
12272                } else {
12273                    return;
12274                }
12275
12276                if (scroll > 0 && scroll < scrollHeight - height) {
12277                    scrollTop(scrollEl, scroll);
12278                    return true;
12279                }
12280
12281            });
12282
12283        }, 15);
12284
12285    }
12286
12287    function untrackScroll() {
12288        clearInterval(trackTimer);
12289    }
12290
12291    function appendDrag(container, element) {
12292        var clone = append(container, element.outerHTML.replace(/(^<)(?:li|tr)|(?:li|tr)(\/>$)/g, '$1div$2'));
12293
12294        css(clone, 'margin', '0', 'important');
12295        css(clone, assign({
12296            boxSizing: 'border-box',
12297            width: element.offsetWidth,
12298            height: element.offsetHeight
12299        }, css(element, ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'])));
12300
12301        height(clone.firstElementChild, height(element.firstElementChild));
12302
12303        return clone;
12304    }
12305
12306    function findTarget(items, point) {
12307        return items[findIndex(items, function (item) { return pointInRect(point, item.getBoundingClientRect()); })];
12308    }
12309
12310    function findInsertTarget(list, target, placeholder, x, y, sameList) {
12311
12312        if (!children(list).length) {
12313            return;
12314        }
12315
12316        var rect = target.getBoundingClientRect();
12317        if (!sameList) {
12318
12319            if (!isHorizontal(list, placeholder)) {
12320                return y < rect.top + rect.height / 2
12321                    ? target
12322                    : target.nextElementSibling;
12323            }
12324
12325            return target;
12326        }
12327
12328        var placeholderRect = placeholder.getBoundingClientRect();
12329        var sameRow = linesIntersect(
12330            [rect.top, rect.bottom],
12331            [placeholderRect.top, placeholderRect.bottom]
12332        );
12333
12334        var pointerPos = sameRow ? x : y;
12335        var lengthProp = sameRow ? 'width' : 'height';
12336        var startProp = sameRow ? 'left' : 'top';
12337        var endProp = sameRow ? 'right' : 'bottom';
12338
12339        var diff = placeholderRect[lengthProp] < rect[lengthProp] ? rect[lengthProp] - placeholderRect[lengthProp] : 0;
12340
12341        if (placeholderRect[startProp] < rect[startProp]) {
12342
12343            if (diff && pointerPos < rect[startProp] + diff) {
12344                return false;
12345            }
12346
12347            return target.nextElementSibling;
12348        }
12349
12350        if (diff && pointerPos > rect[endProp] - diff) {
12351            return false;
12352        }
12353
12354        return target;
12355    }
12356
12357    function isHorizontal(list, placeholder) {
12358
12359        var single = children(list).length === 1;
12360
12361        if (single) {
12362            append(list, placeholder);
12363        }
12364
12365        var items = children(list);
12366        var isHorizontal = items.some(function (el, i) {
12367            var rectA = el.getBoundingClientRect();
12368            return items.slice(i + 1).some(function (el) {
12369                var rectB = el.getBoundingClientRect();
12370                return !linesIntersect([rectA.left, rectA.right], [rectB.left, rectB.right]);
12371            });
12372        });
12373
12374        if (single) {
12375            remove$1(placeholder);
12376        }
12377
12378        return isHorizontal;
12379    }
12380
12381    function linesIntersect(lineA, lineB) {
12382        return lineA[1] > lineB[0] && lineB[1] > lineA[0];
12383    }
12384
12385    var obj;
12386
12387    var tooltip = {
12388
12389        mixins: [Container, Togglable, Position],
12390
12391        args: 'title',
12392
12393        props: {
12394            delay: Number,
12395            title: String
12396        },
12397
12398        data: {
12399            pos: 'top',
12400            title: '',
12401            delay: 0,
12402            animation: ['uk-animation-scale-up'],
12403            duration: 100,
12404            cls: 'uk-active',
12405            clsPos: 'uk-tooltip'
12406        },
12407
12408        beforeConnect: function() {
12409            this._hasTitle = hasAttr(this.$el, 'title');
12410            attr(this.$el, 'title', '');
12411            this.updateAria(false);
12412            makeFocusable(this.$el);
12413        },
12414
12415        disconnected: function() {
12416            this.hide();
12417            attr(this.$el, 'title', this._hasTitle ? this.title : null);
12418        },
12419
12420        methods: {
12421
12422            show: function() {
12423                var this$1$1 = this;
12424
12425
12426                if (this.isToggled(this.tooltip || null) || !this.title) {
12427                    return;
12428                }
12429
12430                this._unbind = once(document, ("show keydown " + pointerDown), this.hide, false, function (e) { return e.type === pointerDown && !within(e.target, this$1$1.$el)
12431                    || e.type === 'keydown' && e.keyCode === 27
12432                    || e.type === 'show' && e.detail[0] !== this$1$1 && e.detail[0].$name === this$1$1.$name; }
12433                );
12434
12435                clearTimeout(this.showTimer);
12436                this.showTimer = setTimeout(this._show, this.delay);
12437            },
12438
12439            hide: function() {
12440                var this$1$1 = this;
12441
12442
12443                if (matches(this.$el, 'input:focus')) {
12444                    return;
12445                }
12446
12447                clearTimeout(this.showTimer);
12448
12449                if (!this.isToggled(this.tooltip || null)) {
12450                    return;
12451                }
12452
12453                this.toggleElement(this.tooltip, false, false).then(function () {
12454                    this$1$1.tooltip = remove$1(this$1$1.tooltip);
12455                    this$1$1._unbind();
12456                });
12457            },
12458
12459            _show: function() {
12460                var this$1$1 = this;
12461
12462
12463                this.tooltip = append(this.container,
12464                    ("<div class=\"" + (this.clsPos) + "\"> <div class=\"" + (this.clsPos) + "-inner\">" + (this.title) + "</div> </div>")
12465                );
12466
12467                on(this.tooltip, 'toggled', function (e, toggled) {
12468
12469                    this$1$1.updateAria(toggled);
12470
12471                    if (!toggled) {
12472                        return;
12473                    }
12474
12475                    this$1$1.positionAt(this$1$1.tooltip, this$1$1.$el);
12476
12477                    this$1$1.origin = this$1$1.getAxis() === 'y'
12478                        ? ((flipPosition(this$1$1.dir)) + "-" + (this$1$1.align))
12479                        : ((this$1$1.align) + "-" + (flipPosition(this$1$1.dir)));
12480                });
12481
12482                this.toggleElement(this.tooltip, true);
12483
12484            },
12485
12486            updateAria: function(toggled) {
12487                attr(this.$el, 'aria-expanded', toggled);
12488            }
12489
12490        },
12491
12492        events: ( obj = {
12493
12494            focus: 'show',
12495            blur: 'hide'
12496
12497        }, obj[(pointerEnter + " " + pointerLeave)] = function (e) {
12498                if (!isTouch(e)) {
12499                    this[e.type === pointerEnter ? 'show' : 'hide']();
12500                }
12501            }, obj[pointerDown] = function (e) {
12502                if (isTouch(e)) {
12503                    this.show();
12504                }
12505            }, obj )
12506
12507    };
12508
12509    function makeFocusable(el) {
12510        if (!isFocusable(el)) {
12511            attr(el, 'tabindex', '0');
12512        }
12513    }
12514
12515    var upload = {
12516
12517        props: {
12518            allow: String,
12519            clsDragover: String,
12520            concurrent: Number,
12521            maxSize: Number,
12522            method: String,
12523            mime: String,
12524            msgInvalidMime: String,
12525            msgInvalidName: String,
12526            msgInvalidSize: String,
12527            multiple: Boolean,
12528            name: String,
12529            params: Object,
12530            type: String,
12531            url: String
12532        },
12533
12534        data: {
12535            allow: false,
12536            clsDragover: 'uk-dragover',
12537            concurrent: 1,
12538            maxSize: 0,
12539            method: 'POST',
12540            mime: false,
12541            msgInvalidMime: 'Invalid File Type: %s',
12542            msgInvalidName: 'Invalid File Name: %s',
12543            msgInvalidSize: 'Invalid File Size: %s Kilobytes Max',
12544            multiple: false,
12545            name: 'files[]',
12546            params: {},
12547            type: '',
12548            url: '',
12549            abort: noop,
12550            beforeAll: noop,
12551            beforeSend: noop,
12552            complete: noop,
12553            completeAll: noop,
12554            error: noop,
12555            fail: noop,
12556            load: noop,
12557            loadEnd: noop,
12558            loadStart: noop,
12559            progress: noop
12560        },
12561
12562        events: {
12563
12564            change: function(e) {
12565
12566                if (!matches(e.target, 'input[type="file"]')) {
12567                    return;
12568                }
12569
12570                e.preventDefault();
12571
12572                if (e.target.files) {
12573                    this.upload(e.target.files);
12574                }
12575
12576                e.target.value = '';
12577            },
12578
12579            drop: function(e) {
12580                stop(e);
12581
12582                var transfer = e.dataTransfer;
12583
12584                if (!transfer || !transfer.files) {
12585                    return;
12586                }
12587
12588                removeClass(this.$el, this.clsDragover);
12589
12590                this.upload(transfer.files);
12591            },
12592
12593            dragenter: function(e) {
12594                stop(e);
12595            },
12596
12597            dragover: function(e) {
12598                stop(e);
12599                addClass(this.$el, this.clsDragover);
12600            },
12601
12602            dragleave: function(e) {
12603                stop(e);
12604                removeClass(this.$el, this.clsDragover);
12605            }
12606
12607        },
12608
12609        methods: {
12610
12611            upload: function(files) {
12612                var this$1$1 = this;
12613
12614
12615                if (!files.length) {
12616                    return;
12617                }
12618
12619                trigger(this.$el, 'upload', [files]);
12620
12621                for (var i = 0; i < files.length; i++) {
12622
12623                    if (this.maxSize && this.maxSize * 1000 < files[i].size) {
12624                        this.fail(this.msgInvalidSize.replace('%s', this.maxSize));
12625                        return;
12626                    }
12627
12628                    if (this.allow && !match(this.allow, files[i].name)) {
12629                        this.fail(this.msgInvalidName.replace('%s', this.allow));
12630                        return;
12631                    }
12632
12633                    if (this.mime && !match(this.mime, files[i].type)) {
12634                        this.fail(this.msgInvalidMime.replace('%s', this.mime));
12635                        return;
12636                    }
12637
12638                }
12639
12640                if (!this.multiple) {
12641                    files = [files[0]];
12642                }
12643
12644                this.beforeAll(this, files);
12645
12646                var chunks = chunk(files, this.concurrent);
12647                var upload = function (files) {
12648
12649                    var data = new FormData();
12650
12651                    files.forEach(function (file) { return data.append(this$1$1.name, file); });
12652
12653                    for (var key in this$1$1.params) {
12654                        data.append(key, this$1$1.params[key]);
12655                    }
12656
12657                    ajax(this$1$1.url, {
12658                        data: data,
12659                        method: this$1$1.method,
12660                        responseType: this$1$1.type,
12661                        beforeSend: function (env) {
12662
12663                            var xhr = env.xhr;
12664                            xhr.upload && on(xhr.upload, 'progress', this$1$1.progress);
12665                            ['loadStart', 'load', 'loadEnd', 'abort'].forEach(function (type) { return on(xhr, type.toLowerCase(), this$1$1[type]); }
12666                            );
12667
12668                            return this$1$1.beforeSend(env);
12669
12670                        }
12671                    }).then(
12672                        function (xhr) {
12673
12674                            this$1$1.complete(xhr);
12675
12676                            if (chunks.length) {
12677                                upload(chunks.shift());
12678                            } else {
12679                                this$1$1.completeAll(xhr);
12680                            }
12681
12682                        },
12683                        function (e) { return this$1$1.error(e); }
12684                    );
12685
12686                };
12687
12688                upload(chunks.shift());
12689
12690            }
12691
12692        }
12693
12694    };
12695
12696    function match(pattern, path) {
12697        return path.match(new RegExp(("^" + (pattern.replace(/\//g, '\\/').replace(/\*\*/g, '(\\/[^\\/]+)*').replace(/\*/g, '[^\\/]+').replace(/((?!\\))\?/g, '$1.')) + "$"), 'i'));
12698    }
12699
12700    function chunk(files, size) {
12701        var chunks = [];
12702        for (var i = 0; i < files.length; i += size) {
12703            var chunk = [];
12704            for (var j = 0; j < size; j++) {
12705                chunk.push(files[i + j]);
12706            }
12707            chunks.push(chunk);
12708        }
12709        return chunks;
12710    }
12711
12712    function stop(e) {
12713        e.preventDefault();
12714        e.stopPropagation();
12715    }
12716
12717    var components = /*#__PURE__*/Object.freeze({
12718        __proto__: null,
12719        Countdown: countdown,
12720        Filter: filter,
12721        Lightbox: lightbox,
12722        LightboxPanel: LightboxPanel,
12723        Notification: notification,
12724        Parallax: parallax,
12725        Slider: slider,
12726        SliderParallax: sliderParallax,
12727        Slideshow: slideshow,
12728        SlideshowParallax: sliderParallax,
12729        Sortable: sortable,
12730        Tooltip: tooltip,
12731        Upload: upload
12732    });
12733
12734    each(components, function (component, name) { return UIkit.component(name, component); }
12735    );
12736
12737    return UIkit;
12738
12739}));
12740
12741
12742/***/ }),
12743/* 2 */
12744/***/ (function(module, exports, __webpack_require__) {
12745
12746var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
12747 * JavaScript Cookie v2.2.1
12748 * https://github.com/js-cookie/js-cookie
12749 *
12750 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
12751 * Released under the MIT license
12752 */
12753;(function (factory) {
12754	var registeredInModuleLoader;
12755	if (true) {
12756		!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
12757				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
12758				(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
12759				__WEBPACK_AMD_DEFINE_FACTORY__),
12760				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
12761		registeredInModuleLoader = true;
12762	}
12763	if (true) {
12764		module.exports = factory();
12765		registeredInModuleLoader = true;
12766	}
12767	if (!registeredInModuleLoader) {
12768		var OldCookies = window.Cookies;
12769		var api = window.Cookies = factory();
12770		api.noConflict = function () {
12771			window.Cookies = OldCookies;
12772			return api;
12773		};
12774	}
12775}(function () {
12776	function extend () {
12777		var i = 0;
12778		var result = {};
12779		for (; i < arguments.length; i++) {
12780			var attributes = arguments[ i ];
12781			for (var key in attributes) {
12782				result[key] = attributes[key];
12783			}
12784		}
12785		return result;
12786	}
12787
12788	function decode (s) {
12789		return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
12790	}
12791
12792	function init (converter) {
12793		function api() {}
12794
vendor: 7,269 bytes, lines 12795-13004
12795		function set (key, value, attributes) {
12796			if (typeof document === 'undefined') {
12797				return;
12798			}
12799
12800			attributes = extend({
12801				path: '/'
12802			}, api.defaults, attributes);
12803
12804			if (typeof attributes.expires === 'number') {
12805				attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);
12806			}
12807
12808			// We're using "expires" because "max-age" is not supported by IE
12809			attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
12810
12811			try {
12812				var result = JSON.stringify(value);
12813				if (/^[\{\[]/.test(result)) {
12814					value = result;
12815				}
12816			} catch (e) {}
12817
12818			value = converter.write ?
12819				converter.write(value, key) :
12820				encodeURIComponent(String(value))
12821					.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
12822
12823			key = encodeURIComponent(String(key))
12824				.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
12825				.replace(/[\(\)]/g, escape);
12826
12827			var stringifiedAttributes = '';
12828			for (var attributeName in attributes) {
12829				if (!attributes[attributeName]) {
12830					continue;
12831				}
12832				stringifiedAttributes += '; ' + attributeName;
12833				if (attributes[attributeName] === true) {
12834					continue;
12835				}
12836
12837				// Considers RFC 6265 section 5.2:
12838				// ...
12839				// 3.  If the remaining unparsed-attributes contains a %x3B (";")
12840				//     character:
12841				// Consume the characters of the unparsed-attributes up to,
12842				// not including, the first %x3B (";") character.
12843				// ...
12844				stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];
12845			}
12846
12847			return (document.cookie = key + '=' + value + stringifiedAttributes);
12848		}
12849
12850		function get (key, json) {
12851			if (typeof document === 'undefined') {
12852				return;
12853			}
12854
12855			var jar = {};
12856			// To prevent the for loop in the first place assign an empty array
12857			// in case there are no cookies at all.
12858			var cookies = document.cookie ? document.cookie.split('; ') : [];
12859			var i = 0;
12860
12861			for (; i < cookies.length; i++) {
12862				var parts = cookies[i].split('=');
12863				var cookie = parts.slice(1).join('=');
12864
12865				if (!json && cookie.charAt(0) === '"') {
12866					cookie = cookie.slice(1, -1);
12867				}
12868
12869				try {
12870					var name = decode(parts[0]);
12871					cookie = (converter.read || converter)(cookie, name) ||
12872						decode(cookie);
12873
12874					if (json) {
12875						try {
12876							cookie = JSON.parse(cookie);
12877						} catch (e) {}
12878					}
12879
12880					jar[name] = cookie;
12881
12882					if (key === name) {
12883						break;
12884					}
12885				} catch (e) {}
12886			}
12887
12888			return key ? jar[key] : jar;
12889		}
12890
12891		api.set = set;
12892		api.get = function (key) {
12893			return get(key, false /* read as raw */);
12894		};
12895		api.getJSON = function (key) {
12896			return get(key, true /* read as json */);
12897		};
12898		api.remove = function (key, attributes) {
12899			set(key, '', extend(attributes, {
12900				expires: -1
12901			}));
12902		};
12903
12904		api.defaults = {};
12905
12906		api.withConverter = init;
12907
12908		return api;
12909	}
12910
12911	return init(function () {});
12912}));
12913
12914
12915/***/ }),
12916/* 3 */
12917/***/ (function(module, exports, __webpack_require__) {
12918
12919__webpack_require__(4);
12920module.exports = __webpack_require__(28);
12921
12922
12923/***/ }),
12924/* 4 */
12925/***/ (function(module, __webpack_exports__, __webpack_require__) {
12926
12927"use strict";
12928Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
12929/* WEBPACK VAR INJECTION */(function(jQuery) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(0);
12930/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
12931/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__autoload_uikit_js__ = __webpack_require__(5);
12932/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_Router__ = __webpack_require__(7);
12933/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__routes_common__ = __webpack_require__(9);
12934/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__routes_home__ = __webpack_require__(10);
12935/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__routes_blog__ = __webpack_require__(11);
12936/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__routes_navAnimation__ = __webpack_require__(12);
12937/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__routes_secondaryPageNav__ = __webpack_require__(13);
12938/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__routes_hasForm__ = __webpack_require__(14);
12939/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__routes_tabbedSwitcher__ = __webpack_require__(15);
12940/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__routes_tabReplacement__ = __webpack_require__(16);
12941/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__routes_hasCalc__ = __webpack_require__(17);
12942/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__routes_storyPagination__ = __webpack_require__(18);
12943/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__routes_newsPagination__ = __webpack_require__(19);
12944/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__routes_findProviderModal__ = __webpack_require__(20);
12945/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__routes_mediaCards__ = __webpack_require__(21);
12946/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__routes_productReport__ = __webpack_require__(22);
12947/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__routes_accordionAnchorScroll__ = __webpack_require__(23);
12948/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__routes_accordionAnchorScroll___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_17__routes_accordionAnchorScroll__);
12949/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__routes_hasLoadingIndicator__ = __webpack_require__(24);
12950/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__routes_mobileMedicationsNav__ = __webpack_require__(25);
12951/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__routes_whitePapers__ = __webpack_require__(26);
12952/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__routes_npiLookup__ = __webpack_require__(27);
12953// import external dependencies
12954
12955
12956// Import everything from autoload
12957
12958
12959// import local dependencies
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981/** Populate Router instance with DOM routes */
12982var routes = new __WEBPACK_IMPORTED_MODULE_2__util_Router__["a" /* default */]({
12983  // All pages
12984  common: __WEBPACK_IMPORTED_MODULE_3__routes_common__["a" /* default */],
12985  // Home page
12986  home: __WEBPACK_IMPORTED_MODULE_4__routes_home__["a" /* default */],
12987  // blog page
12988  blog: __WEBPACK_IMPORTED_MODULE_5__routes_blog__["a" /* default */],
12989  // Global - Animations for Global Primary Nav (2)
12990  navAnimation: __WEBPACK_IMPORTED_MODULE_6__routes_navAnimation__["a" /* default */],
12991  // Layout - Secondary page nav
12992  secondaryPageNav: __WEBPACK_IMPORTED_MODULE_7__routes_secondaryPageNav__["a" /* default */],
12993  // form steps has-form
12994  hasForm: __WEBPACK_IMPORTED_MODULE_8__routes_hasForm__["a" /* default */],
12995  // tab replacementad_personalization
12996  tabReplacement: __WEBPACK_IMPORTED_MODULE_10__routes_tabReplacement__["a" /* default */],
12997  // tab switcher
12998  tabbedSwitcher: __WEBPACK_IMPORTED_MODULE_9__routes_tabbedSwitcher__["a" /* default */],
12999  // cost estimator
13000  hasCalc: __WEBPACK_IMPORTED_MODULE_11__routes_hasCalc__["a" /* default */],
13001  // story Post Pagination
13002  storyPagination: __WEBPACK_IMPORTED_MODULE_12__routes_storyPagination__["a" /* default */],
13003  // news Post Pagination
13004  newsPagination: __WEBPACK_IMPORTED_MODULE_13__routes_newsPagination__["a" /* default */],
13005  // find a provider modal and cookie
13006  findProviderModal: __WEBPACK_IMPORTED_MODULE_14__routes_findProviderModal__["a" /* default */],
13007  // class adjustments for blog presentation categories
13008  mediaCards: __WEBPACK_IMPORTED_MODULE_15__routes_mediaCards__["a" /* default */],
13009  // select action for product report mobile
13010  productReport: __WEBPACK_IMPORTED_MODULE_16__routes_productReport__["a" /* default */],
13011  // Allows anchor scroll to accordion item and toggles it open
13012  accordionAnchorScroll: __WEBPACK_IMPORTED_MODULE_17__routes_accordionAnchorScroll___default.a,
13013  // Allows anchor scroll to accordion item and toggles it open
13014  hasLoadingIndicator: __WEBPACK_IMPORTED_MODULE_18__routes_hasLoadingIndicator__["a" /* default */],
13015  // adds mobile nav functionality to mediations tabs
13016  mobileMedicationsNav: __WEBPACK_IMPORTED_MODULE_19__routes_mobileMedicationsNav__["a" /* default */],
13017  // Cookie js for white papers page
13018  whitePapers: __WEBPACK_IMPORTED_MODULE_20__routes_whitePapers__["a" /* default */],
13019  //  js for npi lookup
13020  npiLookup: __WEBPACK_IMPORTED_MODULE_21__routes_npiLookup__["a" /* default */],
13021});
13022
13023// Load Events
13024jQuery(document).ready(function () { return routes.loadEvents(); });
13025
13026/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
13027
13028/***/ }),
13029/* 5 */
13030/***/ (function(module, __webpack_exports__, __webpack_require__) {
13031
13032"use strict";
13033/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit__ = __webpack_require__(1);
13034/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_uikit__);
13035/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uikit_dist_js_uikit_icons__ = __webpack_require__(6);
13036/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uikit_dist_js_uikit_icons___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_uikit_dist_js_uikit_icons__);
13037
13038
13039// loads the Icon plugin
13040__WEBPACK_IMPORTED_MODULE_0_uikit___default.a.use(__WEBPACK_IMPORTED_MODULE_1_uikit_dist_js_uikit_icons___default.a);
13041
13042
13043/***/ }),
13044/* 6 */
13045/***/ (function(module, exports, __webpack_require__) {
13046
13047/*! UIkit 3.9.3 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
13048
13049(function (global, factory) {
13050     true ? module.exports = factory() :
13051    typeof define === 'function' && define.amd ? define('uikiticons', factory) :
13052    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.UIkitIcons = factory());
13053})(this, (function () { 'use strict';
13054
13055    function plugin(UIkit) {
13056
13057        if (plugin.installed) {
13058            return;
13059        }
13060
13061        UIkit.icon.add({
13062        "500px": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg
vendor: 3,152 bytes, lines 13062-13063
13062\"><path d=\"M9.624,11.866c-0.141,0.132,0.479,0.658,0.662,0.418c0.051-0.046,0.607-0.61,0.662-0.664c0,0,0.738,0.719,0.814,0.719 c0.1,0,0.207-0.055,0.322-0.17c0.27-0.269,0.135-0.416,0.066-0.495l-0.631-0.616l0.658-0.668c0.146-0.156,0.021-0.314-0.1-0.449 c-0.182-0.18-0.359-0.226-0.471-0.125l-0.656,0.654l-0.654-0.654c-0.033-0.034-0.08-0.045-0.124-0.045 c-0.079,0-0.191,0.068-0.307,0.181c-0.202,0.202-0.247,0.351-0.133,0.462l0.665,0.665L9.624,11.866z\"/><path d=\"M11.066,2.884c-1.061,0-2.185,0.248-3.011,0.604c-0.087,0.034-0.141,0.106-0.15,0.205C7.893,3.784,7.919,3.909,7.982,4.066 c0.05,0.136,0.187,0.474,0.452,0.372c0.844-0.326,1.779-0.507,2.633-0.507c0.963,0,1.9,0.191,2.781,0.564 c0.695,0.292,1.357,0.719,2.078,1.34c0.051,0.044,0.105,0.068,0.164,0.068c0.143,0,0.273-0.137,0.389-0.271 c0.191-0.214,0.324-0.395,0.135-0.575c-0.686-0.654-1.436-1.138-2.363-1.533C13.24,3.097,12.168,2.884,11.066,2.884z\"/><path d=\"M16.43,15.747c-0.092-0.028-0.242,0.05-0.309,0.119l0,0c-0.652,0.652-1.42,1.169-2.268,1.521 c-0.877,0.371-1.814,0.551-2.779,0.551c-0.961,0-1.896-0.189-2.775-0.564c-0.848-0.36-1.612-0.879-2.268-1.53 c-0.682-0.688-1.196-1.455-1.529-2.268c-0.325-0.799-0.471-1.643-0.471-1.643c-0.045-0.24-0.258-0.249-0.567-0.203 c-0.128,0.021-0.519,0.079-0.483,0.36v0.01c0.105,0.644,0.289,1.284,0.545,1.895c0.417,0.969,1.002,1.849,1.756,2.604 c0.757,0.754,1.636,1.34,2.604,1.757C8.901,18.785,9.97,19,11.088,19c1.104,0,2.186-0.215,3.188-0.645 c1.838-0.896,2.604-1.757,2.604-1.757c0.182-0.204,0.227-0.317-0.1-0.643C16.779,15.956,16.525,15.774,16.43,15.747z\"/><path d=\"M5.633,13.287c0.293,0.71,0.723,1.341,1.262,1.882c0.54,0.54,1.172,0.971,1.882,1.264c0.731,0.303,1.509,0.461,2.298,0.461 c0.801,0,1.578-0.158,2.297-0.461c0.711-0.293,1.344-0.724,1.883-1.264c0.543-0.541,0.971-1.172,1.264-1.882 c0.314-0.721,0.463-1.5,0.463-2.298c0-0.79-0.148-1.569-0.463-2.289c-0.293-0.699-0.721-1.329-1.264-1.881 c-0.539-0.541-1.172-0.959-1.867-1.263c-0.721-0.303-1.5-0.461-2.299-0.461c-0.802,0-1.613,0.159-2.322,0.461 c-0.577,0.25-1.544,0.867-2.119,1.454v0.012V2.108h8.16C15.1,2.104,15.1,1.69,15.1,1.552C15.1,1.417,15.1,1,14.809,1H5.915 C5.676,1,5.527,1.192,5.527,1.384v6.84c0,0.214,0.273,0.372,0.529,0.428c0.5,0.105,0.614-0.056,0.737-0.224l0,0 c0.18-0.273,0.776-0.884,0.787-0.894c0.901-0.905,2.117-1.408,3.416-1.408c1.285,0,2.5,0.501,3.412,1.408 c0.914,0.914,1.408,2.122,1.408,3.405c0,1.288-0.508,2.496-1.408,3.405c-0.9,0.896-2.152,1.406-3.438,1.406 c-0.877,0-1.711-0.229-2.433-0.671v-4.158c0-0.553,0.237-1.151,0.643-1.614c0.462-0.519,1.094-0.799,1.782-0.799 c0.664,0,1.293,0.253,1.758,0.715c0.459,0.459,0.709,1.071,0.709,1.723c0,1.385-1.094,2.468-2.488,2.468 c-0.273,0-0.769-0.121-0.781-0.125c-0.281-0.087-0.405,0.306-0.438,0.436c-0.159,0.496,0.079,0.585,0.123,0.607 c0.452,0.137,0.743,0.157,1.129,0.157c1.973,0,3.572-1.6,3.572-3.57c0-1.964-1.6-3.552-3.572-3.552c-0.97,0-1.872,0.36-2.546,1.038 c-0.656,0.631-1.027,1.487-1.027,2.322v3.438v-0.011c-0.372-0.42-0.732-1.041-0.981-1.682c-0.102-0.248-0.315-0.202-0.607-0.113 c-0.135,0.035-0.519,0.157-0.44,0.439C5.372,12.799,5.577,13.164,5.633,13.287z\"/></svg>",
13063        "album": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"
13063 xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"5\" y=\"2\" width=\"10\" height=\"1\"/><rect x=\"3\" y=\"4\" width=\"14\" height=\"1\"/><rect fill=\"none\" stroke=\"#000\" x=\"1.5\" y=\"6.5\" width=\"17\" height=\"11\"/></svg>",
13064        "arrow-down": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"10.5,16.08 5.63,10.66 6.37,10 10.5,14.58 14.63,10 15.37,10.66\"/><line fill=\"none\" stroke=\"#000\" x1=\"10.5\" y1=\"4\" x2=\"10.5\" y2=\"15\"/></svg>",
13065        "arrow-left": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"10 14 5 9.5 10 5\"/><line fill=\"none\" stroke=\"#000\" x1=\"16\" y1=\"9.5\" x2=\"5\" y2=\"9.52\"/></svg>",
13066        "arrow-right": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"10 5 15 9.5 10 14\"/><line fill=\"none\" stroke=\"#000\" x1=\"4\" y1=\"9.5\" x2=\"15\" y2=\"9.5\"/></svg>",
13067        "arrow-up": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"10.5,4 15.37,9.4 14.63,10.08 10.5,5.49 6.37,10.08 5.63,9.4\"/><line fill=\"none\" stroke=\"#000\" x1=\"10.5\" y1=\"16\" x2=\"10.5\" y2=\"5\"/></svg>",
13068        "bag": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M7.5,7.5V4A2.48,2.48,0,0,1,10,1.5,2.54,2.54,0,0,1,12.5,4V7.5\"/><polygon fill=\"none\" stroke=\"#000\" points=\"16.5 7.5 3.5 7.5 2.5 18.5 17.5 18.5 16.5 7.5\"/></svg>",
13069        "ban": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10\" cy=\"10\" r=\"9\"/><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" x1=\"4\" y1=\"3.5\" x2=\"16\" y2=\"16.5\"/></svg>",
13070        "behance": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5,10.6c-0.4-0.5-0.9-0.9-1.6-1.1c1.7-1,2.2-3.2,0.7-4.7C7.8,4,6.3,4,5.2,4C3.5,4,1.7,4,0,4v12c1.7,0,3.4,0,5.2,0 c1,0,2.1,0,3.1-0.5C10.2,14.6,10.5,12.3,9.5,10.6L9.5,10.6z M5.6,6.1c1.8,0,1.8,2.7-0.1,2.7c-1,0-2,0-2.9,0V6.1H5.6z M2.6,13.8v-3.1 c1.1,0,2.1,0,3.2,0c2.1,0,2.1,3.2,0.1,3.2L2.6,13.8z\"/><path d=\"M19.9,10.9C19.7,9.2,18.7,7.6,17,7c-4.2-1.3-7.3,3.4-5.3,7.1c0.9,1.7,2.8,2.3,4.7,2.1c1.7-0.2,2.9-1.3,3.4-2.9h-2.2 c-0.4,1.3-2.4,1.5-3.5,0.6c-0.4-0.4-0.6-1.1-0.6-1.7H20C20,11.7,19.9,10.9,19.9,10.9z M13.5,10.6c0-1.6,2.3-2.7,3.5-1.4 c0.4,0.4,0.5,0.9,0.6,1.4H13.5L13.5,10.6z\"/><rect x=\"13\" y=\"4\" width=\"5\" height=\"1.4\"/></svg>",
13071        "bell": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M17,15.5 L3,15.5 C2.99,14.61 3.79,13.34 4.1,12.51 C4.58,11.3 4.72,10.35 5.19,7.01 C5.54,4.53 5.89,3.2 7.28,2.16 C8.13,1.56 9.37,1.5 9.81,1.5 L9.96,1.5 C9.96,1.5 11.62,1.41 12.67,2.17 C14.08,3.2 14.42,4.54 14.77,7.02 C15.26,10.35 15.4,11.31 15.87,12.52 C16.2,13.34 17.01,14.61 17,15.5 L17,15.5 Z\"/><path fill=\"none\" stroke=\"#000\" d=\"M12.39,16 C12.39,17.37 11.35,18.43 9.91,18.43 C8.48,18.43 7.42,17.37 7.42,16\"/></svg>",
13072        "bold": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5,15.3 C5.66,15.3 5.9,15 5.9,14.53 L5.9,5.5 C5.9,4.92 5.56,4.7 5,4.7 L5,4 L8.95,4 C12.6,4 13.7,5.37 13.7,6.9 C13.7,7.87 13.14,9.17 10.86,9.59 L10.86,9.7 C13.25,9.86 14.29,11.28 14.3,12.54 C14.3,14.47 12.94,16 9,16 L5,16 L5,15.3 Z M9,9.3 C11.19,9.3 11.8,8.5 11.85,7 C11.85,5.65 11.3,4.8 9,4.8 L7.67,4.8 L7.67,9.3 L9,9.3 Z M9.185,15.22 C11.97,15 12.39,14 12.4,12.58 C12.4,11.
1307215 11.39,10 9,10 L7.67,10 L7.67,15 L9.18,15 Z\"/></svg>",
13073        "bolt": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.74,20 L7.73,12 L3,12 L15.43,1 L12.32,9 L17.02,9 L4.74,20 L4.74,20 L4.74,20 Z M9.18,11 L7.1,16.39 L14.47,10 L10.86,10 L12.99,4.67 L5.61,11 L9.18,11 L9.18,11 L9.18,11 Z\"/></svg>",
13074        "bookmark": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" points=\"5.5 1.5 15.5 1.5 15.5 17.5 10.5 12.5 5.5 17.5\"/></svg>",
13075        "calendar": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 2,3 2,17 18,17 18,3 2,3 Z M 17,16 3,16 3,8 17,8 17,16 Z M 17,7 3,7 3,4 17,4 17,7 Z\"/><rect width=\"1\" height=\"3\" x=\"6\" y=\"2\"/><rect width=\"1\" height=\"3\" x=\"13\" y=\"2\"/></svg>",
13076        "camera": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10\" cy=\"10.8\" r=\"3.8\"/><path fill=\"none\" stroke=\"#000\" d=\"M1,4.5 C0.7,4.5 0.5,4.7 0.5,5 L0.5,17 C0.5,17.3 0.7,17.5 1,17.5 L19,17.5 C19.3,17.5 19.5,17.3 19.5,17 L19.5,5 C19.5,4.7 19.3,4.5 19,4.5 L13.5,4.5 L13.5,2.9 C13.5,2.6 13.3,2.5 13,2.5 L7,2.5 C6.7,2.5 6.5,2.6 6.5,2.9 L6.5,4.5 L1,4.5 L1,4.5 Z\"/></svg>",
13077        "cart": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"7.3\" cy=\"17.3\" r=\"1.4\"/><circle cx=\"13.3\" cy=\"17.3\" r=\"1.4\"/><polyline fill=\"none\" stroke=\"#000\" points=\"0 2 3.2 4 5.3 12.5 16 12.5 18 6.5 8 6.5\"/></svg>",
13078        "check": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" points=\"4,10 8,15 17,4\"/></svg>",
13079        "chevron-double-left": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"10 14 6 10 10 6\"/><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"14 14 10 10 14 6\"/></svg>",
13080        "chevron-double-right": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"10 6 14 10 10 14\"/><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"6 6 10 10 6 14\"/></svg>",
13081        "chevron-down": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"16 7 10 13 4 7\"/></svg>",
13082        "chevron-left": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"13 16 7 10 13 4\"/></svg>",
13083        "chevron-right": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"7 4 13 10 7 16\"/></svg>",
13084        "chevron-up": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" points=\"4 13 10 7 16 13\"/></svg>",
13085        "clock": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10\" cy=\"10\" r=\"9\"/><rect x=\"9\" y=\"4\" width=\"1\" height=\"7\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M13.018,14.197 L9.445,10.625\"/></svg>",
13086        "close": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.06\" d=\"M16,16 L4,4\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.06\" d=\"M16,4 L4,16\"/></svg>",
13087        "cloud-download": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M6.5,14.61 L3.75,14.61 C1.96,14.61 0.5,13.17 0.5,11.39 C0.5,9.76 1.72,8.41 3.3,8.2 C3.38,5.31 5.75,3 8.68,3 C11.19,3 13.3
130871,4.71 13.89,7.02 C14.39,6.8 14.93,6.68 15.5,6.68 C17.71,6.68 19.5,8.45 19.5,10.64 C19.5,12.83 17.71,14.6 15.5,14.6 L12.5,14.6\"/><polyline fill=\"none\" stroke=\"#000\" points=\"11.75 16 9.5 18.25 7.25 16\"/><path fill=\"none\" stroke=\"#000\" d=\"M9.5,18 L9.5,9.5\"/></svg>",
13088        "cloud-upload": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M6.5,14.61 L3.75,14.61 C1.96,14.61 0.5,13.17 0.5,11.39 C0.5,9.76 1.72,8.41 3.31,8.2 C3.38,5.31 5.75,3 8.68,3 C11.19,3 13.31,4.71 13.89,7.02 C14.39,6.8 14.93,6.68 15.5,6.68 C17.71,6.68 19.5,8.45 19.5,10.64 C19.5,12.83 17.71,14.6 15.5,14.6 L12.5,14.6\"/><polyline fill=\"none\" stroke=\"#000\" points=\"7.25 11.75 9.5 9.5 11.75 11.75\"/><path fill=\"none\" stroke=\"#000\" d=\"M9.5,18 L9.5,9.5\"/></svg>",
13089        "code": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.01\" points=\"13,4 19,10 13,16\"/><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.01\" points=\"7,4 1,10 7,16\"/></svg>",
13090        "cog": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" cx=\"9.997\" cy=\"10\" r=\"3.31\"/><path fill=\"none\" stroke=\"#000\" d=\"M18.488,12.285 L16.205,16.237 C15.322,15.496 14.185,15.281 13.303,15.791 C12.428,16.289 12.047,17.373 12.246,18.5 L7.735,18.5 C7.938,17.374 7.553,16.299 6.684,15.791 C5.801,15.27 4.655,15.492 3.773,16.237 L1.5,12.285 C2.573,11.871 3.317,10.999 3.317,9.991 C3.305,8.98 2.573,8.121 1.5,7.716 L3.765,3.784 C4.645,4.516 5.794,4.738 6.687,4.232 C7.555,3.722 7.939,2.637 7.735,1.5 L12.263,1.5 C12.072,2.637 12.441,3.71 13.314,4.22 C14.206,4.73 15.343,4.516 16.225,3.794 L18.487,7.714 C17.404,8.117 16.661,8.988 16.67,10.009 C16.672,11.018 17.415,11.88 18.488,12.285 L18.488,12.285 Z\"/></svg>",
13091        "comment": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6,18.71 L6,14 L1,14 L1,1 L19,1 L19,14 L10.71,14 L6,18.71 L6,18.71 Z M2,13 L7,13 L7,16.29 L10.29,13 L18,13 L18,2 L2,2 L2,13 L2,13 Z\"/></svg>",
13092        "commenting": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" points=\"1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5\"/><circle cx=\"10\" cy=\"8\" r=\"1\"/><circle cx=\"6\" cy=\"8\" r=\"1\"/><circle cx=\"14\" cy=\"8\" r=\"1\"/></svg>",
13093        "comments": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"2 0.5 19.5 0.5 19.5 13\"/><path d=\"M5,19.71 L5,15 L0,15 L0,2 L18,2 L18,15 L9.71,15 L5,19.71 L5,19.71 L5,19.71 Z M1,14 L6,14 L6,17.29 L9.29,14 L17,14 L17,3 L1,3 L1,14 L1,14 L1,14 Z\"/></svg>",
13094        "copy": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" x=\"3.5\" y=\"2.5\" width=\"12\" height=\"16\"/><polyline fill=\"none\" stroke=\"#000\" points=\"5 0.5 17.5 0.5 17.5 17\"/></svg>",
13095        "credit-card": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" x=\"1.5\" y=\"4.5\" width=\"17\" height=\"12\"/><rect x=\"1\" y=\"7\" width=\"18\" height=\"3\"/></svg>",
13096        "database": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse fill=\"none\" stroke=\"#000\" cx=\"10\" cy=\"4.64\" rx=\"7.5\" ry=\"3.14\"/><path fill=\"none\" stroke=\"#000\" d=\"M17.5,8.11 C17.5,9.85 14.14,11.25 10,11.25 C5.86,11.25 2.5,9.84 2.5,8.11\"/><path fill=\"none\" stroke=\"#000\" d=\"M17.5,11.25 C17.5,12.99 14.14,14.39 10,14.39 C5.86,14.39 2.5,12.98 2.5,11.25\"/><path fill=\"none\" stroke=\"#000\" d=\"M17.49,4.64 L17.5,14.36 C17.5,16.1 14.14,17.5 10,17.5 C5.86,17.5 2.5,16.09 2.5,14.36 L2.5,4.64\"/></svg>",
13097        "desktop": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"8\" y=\"15\" width=\"1\" height=\"2\"/><rect x=\"11\" y=\"15\" width=\"1\" height=\"2\"/><rect x=\"5\" y=\"16\" width=\"10\" height=\"1\"/><rect fill=\"none\" stroke=\"#000\" x=\"1.5\" y=\"3.5\" width=\"17\" height=\"11\"/></svg>",
13098        "discord": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"><path d=\"M16.074,4.361a14.243,14.243,0,0,0-3.61-1.134,10.61,10.61,0,0,0-.463.96,13.219,13.219,0,0,0-4,0,10.138,10.138,0,0,0-.468-.96A14.206,14.206,0,0,0,3.919,4.364,15.146,15.146,0,0,0,1.324,14.5a14.435,14.435,0,0,0,4.428,2.269A10.982,10.982,0,0,0,6.7,15.21a9.294,9.294,0,0,1-1.494-.727c.125-.093.248-.19.366-.289a10.212,10.212,0,0,0,8.854,0c.119.1.242.2.366.289a9.274,9.274,0,0,1-1.5.728,10.8,10.8,0,0,0,.948,1.562,14.419,14.419,0,0,0,4.431-2.27A15.128,15.128,0,0,0,16.074,4.361Zm-8.981,8.1a1.7,1.7,0,0,1-1.573-1.79A1.689,1.689,0,0,1,7.093,8.881a1.679,1.679,0,0,1,1.573,1.791A1.687,1.687,0,0,1,7.093,12.462Zm5.814,0a1.7,1.7,0,0,1-1.573-1.79,1.689,1.689,0,0,1,1.573-1.791,1.679,1.679,0,0,1,1.573,1.791A1.688,1.688,0,0,1,12.907,12.462Z\"/></svg>",
13099        "download": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"14,10 9.5,14.5 5,10\"/><rect x=\"3\" y=\"17\" width=\"13\" height=\"1\"/><line fill=\"none\" stroke=\"#000\" x1=\"9.5\" y1=\"13.91\" x2=\"9.5\" y2=\"3\"/></svg>",
13100        "dribbble": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" d=\"M1.3,8.9c0,0,5,0.1,8.6-1c1.4-0.4,2.6-0.9,4-1.9 c1.4-1.1,2.5-2.5,2.5-2.5\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" d=\"M3.9,16.6c0,0,1.7-2.8,3.5-4.2 c1.8-1.3,4-2,5.7-2.2C16,10,19,10.6,19,10.6\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" d=\"M6.9,1.6c0,0,3.3,4.6,4.2,6.8 c0.4,0.9,1.3,3.1,1.9,5.2c0.6,2,0.9,4.4,0.9,4.4\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.4\" cx=\"10\" cy=\"10\" r=\"9\"/></svg>",
13101        "etsy": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"><path d=\"M8,4.26C8,4.07,8,4,8.31,4h4.46c.79,0,1.22.67,1.53,1.91l.25,1h.76c.14-2.82.26-4,.26-4S13.65,3,12.52,3H6.81L3.75,2.92v.84l1,.2c.73.11.9.27,1,1,0,0,.06,2,.06,5.17s-.06,5.14-.06,5.14c0,.59-.23.81-1,.94l-1,.2v.84l3.06-.1h5.11c1.15,0,3.82.1,3.82.1,0-.7.45-3.88.51-4.22h-.73l-.76,1.69a2.25,2.25,0,0,1-2.45,1.47H9.4c-1,0-1.44-.4-1.44-1.24V10.44s2.16,0,2.86.06c.55,0,.85.19,1.06,1l.23,1H13L12.9,9.94,13,7.41h-.85l-.28,1.13c-.16.74-.28.84-1,1-1,.1-2.89.09-2.89.09Z\"/></svg>",
13102        "expand": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"13 2 18 2 18 7 17 7 17 3 13 3\"/><polygon points=\"2 13 3 13 3 17 7 17 7 18 2 18\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M11,9 L17,3\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M3,17 L9,11\"/></svg>",
13103        "facebook": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z\"/></svg>",
13104        "file-edit": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M18.65,1.68 C18.41,1.45 18.109,1.33 17.81,1.33 C17.499,1.33 17.209,1.45 16.98,1.68 L8.92,9.76 L8,12.33 L10.55,11.41 L18.651,3.34 C19.12,2.87 19.12,2.15 18.65,1.68 L18.65,1.68 L18.65,1.68 Z\"/><polyline fill=\"none\" stroke=\"#000\" points=\"16.5 8.482 16.5 18.5 3.5 18.5 3.5 1.5 14.211 1.5\"/></svg>",
13105        "file-pdf": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" width=\"13\" height=\"17\" x=\"3.5\" y=\"1.5\"/><path d=\"M14.65 11.67c-.48.3-1.37-.19-1.79-.37a4.65 4.65 0 0 1 1.49.06c.35.1.36.28.3.31zm-6.3.06l.43-.79a14.7 14.7 0 0 0 .75-1.64 5.48 5.48 0 0 0 1.25 1.55l.2.15a16.36 16.36 0 0 0-2.63.73zM9.5 5.32c.2 0 .32.5.32.97a1.99 1.99 0 0 1-.23 1.04 5.05 5.05 0 0 1-.17-1.3s0-.71.08-.71zm-3.9 9a4.35 4.35 0 0 1 1.21-1.46l.24-.22a4.35 4.35 0 0 1-1.46 1.68zm9.23-3.3a2.05 2.05 0 0 0-1.32-.3 11.07 11.07 0 0 0-1.58.11 4.09 4.09 0 0 1-.74-.5 5.39 5.39 0 0 1-1.32-2.06 10.37 10.37 0 0 0 .28-2.62 1.83 1.83 0 0 0-.07-.25.57.57 0 0 0-.52-.4H9.4a.59.59 0 0 0-.6.38 6.95 6.95 0 0 0 .37 3.14c-.26.63-1 2.12-1 2.12-.3.58-.57 1.08-.82 1.5l-.8.44A3.11 3.11 0 0 0 5 14.16a.39.39 0 0 0 .15.42l.24.13c1.15.56 2.28-1.74 2.66-2.42a23.1 23.1 0 0 1 3.59-.85 4.56 4.56 0 0 0 2.91.8.5.5 0 0 0 .3-.21 1.1 1.1 0 0 0 .12-.75.84.84 0 0 0-.14-.25z\"/></svg>",
13106        "file-text": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" width=\"13\" height=\"17\" x=\"3.5\" y=\"1.5\"/><line fill=\"none\" stroke=\"#000\" x1=\"6\" x2=\"12\" y1=\"12.5\" y2=\"12.5\"/><line fill=\"none\" stroke=\"#000\" x1=\"6\" x2=\"14\" y1=\"8.5\" y2=\"8.5\"/><line fill=\"none\" stroke=\"#000\" x1=\"6\" x2=\"14\" y1=\"6.5\" y2=\"6.5\"/><line fill=\"none\" stroke=\"#000\" x1=\"6\" x2=\"14\" y1=\"10.5\" y2=\"10.5\"/></svg>",
13107        "file": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" x=\"3.5\" y=\"1.5\" width=\"13\" height=\"17\"/></svg>",
13108        "flickr": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5.5\" cy=\"9.5\" r=\"3.5\"/><circle cx=\"14.5\" cy=\"9.5\" r=\"3.5\"/></svg>",
13109        "folder": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" points=\"9.5 5.5 8.5 3.5 1.5 3.5 1.5 16.5 18.5 16.5 18.5 5.5\"/></svg>",
13110        "forward": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.47,13.11 C4.02,10.02 6.27,7.85 9.04,6.61 C9.48,6.41 10.27,6.13 11,5.91 L11,2 L18.89,9 L11,16 L11,12.13 C9.25,12.47 7.58,13.19 6.02,14.25 C3.03,16.28 1.63,18.54 1.63,18.54 C1.63,18.54 1.38,15.28 2.47,13.11 L2.47,13.11 Z M5.3,13.53 C6.92,12.4 9.04,11.4 12,10.92 L12,13.63 L17.36,9 L12,4.25 L12,6.8 C11.71,6.86 10.86,7.02 9.67,7.49 C6.79,8.65 4.58,10.96 3.49,13.08 C3.18,13.7 2.68,14.87 2.49,16 C3.28,15.05 4.4,14.15 5.3,13.53 L5.3,13.53 Z\"/></svg>",
13111        "foursquare": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15.23,2 C15.96,2 16.4,2.41 16.5,2.86 C16.57,3.15 16.56,3.44 16.51,3.73 C16.46,4.04 14.86,11.72 14.75,12.03 C14.56,12.56 14.16,12.82 13.61,12.83 C13.03,12.84 11.09,12.51 10.69,13 C10.38,13.38 7.79,16.39 6.81,17.53 C6.61,17.76 6.4,17.96 6.08,17.99 C5.68,18.04 5.29,17.87 5.17,17.45 C5.12,17.28 5.1,17.09 5.1,16.91 C5.1,12.4 4.86,7.81 5.11,3.31 C5.17,2.5 5.81,2.12 6.53,2 L15.23,2 L15.23,2 Z M9.76,11.42 C9.94,11.19 10.17,11.1 10.45,11.1 L12.86,11.1 C13.12,11.1 13.31,10.94 13.36,10.69 C13.37,10.64 13.62,9.41 13.74,8.83 C13.81,8.52 13.53,8.28 13.27,8.28 C12.35,8.29 11.42,8.28 10.5,8.28 C9.84,8.28 9.83,7.69 9.82,7.21 C9.8,6.85 10.13,6.55 10.5,6.55 C11.59,6.56 12.67,6.55 13.76,6.55 C14.03,6.55 14.23,6.4 14.28,6.14 C14.34,5.87 14.67,4.29 14.67,4.29 C14.67,4.29 14.82,3.74 14.19,3.74 L7.34,3.74 C7,3.75 6.84,4.02 6.84,4.33 C6.84,7.58 6.85,14.95 6.85,14.99 C6.87,15 8.89,12.51 9.76,11.42 L9.76,11.42 Z\"/></svg>",
13112        "future": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline points=\"19 2 18 2 18 6 14 6 14 7 19 7 19 2\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M18,6.548 C16.709,3.29 13.354,1 9.6,1 C4.6,1 0.6,5 0.6,10 C0.6,15 4.6,19 9.6,19 C14.6,19 18.6,15 18.6,10\"/><rect x=\"9\" y=\"4\" width=\"1\" height=\"7\"/><path d=\"M13.018,14.197 L9.445,10.625\" fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\"/></svg>",
13113        "git-branch": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" cx=\"7\" cy=\"3\" r=\"2\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" cx=\"14\" cy=\"6\" r=\"2\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" cx=\"7\" cy=\"17\" r=\"2\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"2\" d=\"M14,8 C14,10.41 12.43,10.87 10.56,11.25 C9.09,11.54 7,12.06 7,15 L7,5\"/></svg>",
13114        "git-fork": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" cx=\"5.79\" cy=\"2.79\" r=\"1.79\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" cx=\"14.19\" cy=\"2.79\" r=\"1.79\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" cx=\"10.03\" cy=\"16.79\" r=\"1.79\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"2\" d=\"M5.79,4.57 L5.79,6.56 C5.79,9.19 10.03,10.22 10.03,13.31 C10.03,14.86 10.04,14.55 10.04,14.55 C10.04,14.37 10.04,14.86 10.04,13.31 C10.04,10.22 14.2,9.19 14.2,6.56 L14.2,4.57\"/></svg>",
13115        "github-alt": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10,0.5 C4.75,0.5 0.5,4.76 0.5,10.01 C0.5,15.26 4.75,19.51 10,19.51 C15.24,19.51 19.5,15.26 19.5,10.01 C19.5,4.76 15.25,0.5 10,0.5 L10,0.5 Z M12.81,17.69 C12.81,17.69 12.81,17.7 12.79,17.69 C12.47,17.75 12.35,17.59 12.35,17.36 L12.35,16.17 C12.35,15.45 12.09,14.92 11.58,14.56 C12.2,14.51 12.77,14.39 13.26,14.21 C13.87,13.98 14.36,13.69 14.74,13.29 C15.42,12.59 15.76,11.55 15.76,10.17 C15.76,9.25 15.45,8.46 14.83,7.8 C15.1,7.08 15.07,6.29 14.75,5.44 L14.51,5.42 C14.34,5.4 14.06,5.46 13.67,5.61 C13.25,5.78 12.79,6.03 12.31,6.35 C11.55,6.16 10.81,6.05 10.09,6.05 C9.36,6.05 8.61,6.15 7.88,6.35 C7.28,5.96 6.75,5.68 6.26,5.54 C6.07,5.47 5.9,5.44 5.78,5.44 L5.42,5.44 C5.06,6.29 5.04,7.08 5.32,7.8 C4.7,8.46 4.4,9.25 4.4,10.17 C4.4,11.94 4.96,13.16 6.08,13.84 C6.53,14.13 7.05,14.32 7.69,14.43 C8.03,14.5 8.32,14.54 8.55,14.55 C8.07,14.89 7.82,15.42 7.82,16.16 L7.82,17.51 C7.8,17.69 7.7,17.8 7.51,17.8 C4.21,16.74 1.82,13.65 1.82,10.01 C1.82,5.5 5.49,1.83 10,1.83 C14.5,1.83 18.17,5.5 18.17,10.01 C18.18,13.53 15.94,16.54 12.81,17.69 L12.81,17.69 Z\"/></svg>",
13116        "github": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10,1 C5.03,1 1,5.03 1,10 C1,13.98 3.58,17.35 7.16,18.54 C7.61,18.62 7.77,18.34 7.77,18.11 C7.77,17.9 7.76,17.33 7.76,16.58 C5.26,17.12 4.73,15.37 4.73,15.37 C4.32,14.33 3.73,14.05 3.73,14.05 C2.91,13.5 3.79,13.5 3.79,13.5 C4.69,13.56 5.17,14.43 5.17,14.43 C5.97,15.8 7.28,15.41 7.79,15.18 C7.87,14.6 8.1,14.2 8.36,13.98 C6.36,13.75 4.26,12.98 4.26,9.53 C4.26,8.55 4.61,7.74 5.19,7.11 C5.1,6.88 4.79,5.97 5.28,4.73 C5.28,4.73 6.04,4.49 7.75,5.65 C8.47,5.45 9.24,5.35 10,5.35 C10.76,5.35 11.53,5.45 12.25,5.65 C13.97,4.48 14.72,4.73 14.72,4.73 C15.21,5.97 14.9,6.88 14.81,7.11 C15.39,7.74 15.73,8.54 15.73,9.53 C15.73,12.99 13.63,13.75 11.62,13.97 C11.94,14.25 12.23,14.8 12.23,15.64 C12.23,16.84 12.22,17.81 12.22,18.11 C12.22,18.35 12.38,18.63 12.84,18.54 C16.42,17.35 19,13.98 19,10 C19,5.03 14.97,1 10,1 L10,1 Z\"/></svg>",
13117        "gitter": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"3.5\" y=\"1\" width=\"1.531\" height=\"11.471\"/><rect x=\"7.324\" y=\"4.059\" width=\"1.529\" height=\"15.294\"/><rect x=\"11.148\" y=\"4.059\" width=\"1.527\" height=\"15.294\"/><rect x=\"14.971\" y=\"4.059\" width=\"1.529\" height=\"8.412\"/></svg>",
13118        "google": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.86,9.09 C18.46,12.12 17.14,16.05 13.81,17.56 C9.45,19.53 4.13,17.68 2.47,12.87 C0.68,7.68 4.22,2.42 9.5,2.03 C11.57,1.88 13.42,2.37 15.05,3.65 C15.22,3.78 15.37,3.93 15.61,4.14 C14.9,4.81 14.23,5.45 13.5,6.14 C12.27,5.08 10.84,4.72 9.28,4.98 C8.12,5.17 7.16,5.76 6.37,6.63 C4.88,8.27 4.62,10.86 5.76,12.82 C6.95,14.87 9.17,15.8 11.57,15.25 C13.27,14.87 14.76,13.33 14.89,11.75 L10.51,11.75 L10.51,9.09 L17.86,9.09 L17.86,9.09 Z\"/></svg>",
13119        "grid": "<svg width=\"20\" 
13119height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"2\" y=\"2\" width=\"3\" height=\"3\"/><rect x=\"8\" y=\"2\" width=\"3\" height=\"3\"/><rect x=\"14\" y=\"2\" width=\"3\" height=\"3\"/><rect x=\"2\" y=\"8\" width=\"3\" height=\"3\"/><rect x=\"8\" y=\"8\" width=\"3\" height=\"3\"/><rect x=\"14\" y=\"8\" width=\"3\" height=\"3\"/><rect x=\"2\" y=\"14\" width=\"3\" height=\"3\"/><rect x=\"8\" y=\"14\" width=\"3\" height=\"3\"/><rect x=\"14\" y=\"14\" width=\"3\" height=\"3\"/></svg>",
13120        "happy": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"13\" cy=\"7\" r=\"1\"/><circle cx=\"7\" cy=\"7\" r=\"1\"/><circle fill=\"none\" stroke=\"#000\" cx=\"10\" cy=\"10\" r=\"8.5\"/><path fill=\"none\" stroke=\"#000\" d=\"M14.6,11.4 C13.9,13.3 12.1,14.5 10,14.5 C7.9,14.5 6.1,13.3 5.4,11.4\"/></svg>",
13121        "hashtag": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15.431,8 L15.661,7 L12.911,7 L13.831,3 L12.901,3 L11.98,7 L9.29,7 L10.21,3 L9.281,3 L8.361,7 L5.23,7 L5,8 L8.13,8 L7.21,12 L4.23,12 L4,13 L6.98,13 L6.061,17 L6.991,17 L7.911,13 L10.601,13 L9.681,17 L10.611,17 L11.531,13 L14.431,13 L14.661,12 L11.76,12 L12.681,8 L15.431,8 Z M10.831,12 L8.141,12 L9.061,8 L11.75,8 L10.831,12 Z\"/></svg>",
13122        "heart": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.03\" d=\"M10,4 C10,4 8.1,2 5.74,2 C3.38,2 1,3.5
131225 1,6.73 C1,8.84 2.67,10.44 2.67,10.44 L10,18 L17.33,10.44 C17.33,10.44 19,8.84 19,6.73 C19,3.55 16.62,2 14.26,2 C11.9,2 10,4 10,4 L10,4 Z\"/></svg>",
13123        "history": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"#000\" points=\"1 2 2 2 2 6 6 6 6 7 1 7 1 2\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M2.1,6.548 C3.391,3.29 6.746,1 10.5,1 C15.5,1 19.5,5 19.5,10 C19.5,15 15.5,19 10.5,19 C5.5,19 1.5,15 1.5,10\"/><rect x=\"9\" y=\"4\" width=\"1\" height=\"7\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M13.018,14.197 L9.445,10.625\"/></svg>",
13124        "home": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"18.65 11.35 10 2.71 1.35 11.35 0.65 10.65 10 1.29 19.35 10.65\"/><polygon points=\"15 4 18 4 18 7 17 7 17 5 15 5\"/><polygon points=\"3 11 4 11 4 18 7 18 7 12 12 12 12 18 16 18 16 11 17 11 17 19 11 19 11 13 8 13 8 19 3 19\"/></svg>",
13125        "image": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"16.1\" cy=\"6.1\" r=\"1.1\"/><rect fill=\"none\" stroke=\"#000\" x=\".5\" y=\"2.5\" width=\"19\" height=\"15\"/><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.01\" points=\"4,13 8,9 13,14\"/><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.01\" points=\"11,12 12.5,10.5 16,14\"/></svg>",
13126        "info": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10\" cy=\"10\" r=\"9\"/></svg>",
13127        "instagram": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.55,1H6.46C3.45,1,1,3.44,1,6.44v7.12c0,3,2.45,5.44,5.46,5.44h7.08c3.02,0,5.46-2.44,5.46-5.44V6.44 C19.01,3.44,16.56,1,13.55,1z M17.5,14c0,1.93-1.57,3.5-3.5,3.5H6c-1.93,0-3.5-1.57-3.5-3.5V6c0-1.93,1.57-3.5,3.5-3.5h8 c1.93,0,3.5,1.57,3.5,3.5V14z\"/><circle cx=\"14.87\" cy=\"5.26\" r=\"1.09\"/><path d=\"M10.03,5.45c-2.55,0-4.63,2.06-4.63,4.6c0,2.55,2.07,4.61,4.63,4.61c2.56,0,4.63-2.061,4.63-4.61 C14.65,7.51,12.58,5.45,10.03,5.45L10.03,5.45L10.03,5.45z M10.08,13c-1.66,0-3-1.34-3-2.99c0-1.65,1.34-2.99,3-2.99s3,1.34,3,2.99 C13.08,11.66,11.74,13,10.08,13L10.08,13L10.08,13z\"/></svg>",
13128        "italic": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.63,5.48 L10.15,14.52 C10,15.08 10.37,15.25 11.92,15.3 L11.72,16 L6,16 L6.2,15.31 C7.78,15.26 8.19,15.09 8.34,14.53 L10.82,5.49 C10.97,4.92 10.63,4.76 9.09,4.71 L9.28,4 L15,4 L14.81,4.69 C13.23,4.75 12.78,4.91 12.63,5.48 L12.63,5.48 Z\"/></svg>",
13129        "joomla": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.8,13.4l1.7-1.7L5.9,8c-0.6-0.5-0.6-1.5,0-2c0.6-0.6,1.4-0.6,2,0l1.7-1.7c-1-1-2.3-1.3-3.6-1C5.8,2.2,4.8,1.4,3.7,1.4 c-1.3,0-2.3,1-2.3,2.3c0,1.1,0.8,2,1.8,2.3c-0.4,1.3-0.1,2.8,1,3.8L7.8,13.4L7.8,13.4z\"/><path d=\"M10.2,4.3c1-1,2.5-1.4,3.8-1c0.2-1.1,1.1-2,2.3-2c1.3,0,2.3,1,2.3,2.3c0,1.2-0.9,2.2-2,2.3c0.4,1.3,0,2.8-1,3.8L13.9,8 c0.6-0.5,0.6-1.5,0-2c-0.5-0.6-1.5-0.6-2,0L8.2,9.7L6.5,8\"/><path d=\"M14.1,16.8c-1.3,0.4-2.8,0.1-3.8-1l1.7-1.7c0.6,0.6,1.5,0.6,2,0c0.5-0.6,0.6-1.5,0-2l-3.7-3.7L12,6.7l3.7,3.7 c1,1,1.3,2.4,1,3.6c1.1,0.2,2,1.1,2,2.3c0,1.3-1,2.3-2.3,2.3C15.2,18.6,14.3,17.8,14.1,16.8\"/><path d=\"M13.2,12.2l-3.7,3.7c-1,1-2.4,1.3-3.6,1c-0.2,1-1.2,1.8-2.2,1.8c-1.3,0-2.3-1-2.3-2.3c0-1.1,0.8-2,1.8-2.3 c-0.3-1.3,0-2.7,1-3.7l1.7,1.7c-0.6,0.6-0.6,1.5,0,2c0.6,0.6,1.4,0.6,2,0l3.7-3.7\"/></svg>",
13130        "laptop": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect y=\"16\" width=\"20\" height=\"1\"/><rect fill=\"none\" stroke=\"#000\" x=\"2.5\" y=\"4.5\" width=\"15\" height=\"10\"/></svg>",
13131        "lifesaver": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10,0.5 C4.76,0.5 0.5,4.76 0.5,10 C0.5,15.24 4.76,19.5 10,19.5 C15.24,19.5 19.5,15.24 19.5,10 C19.5,4.76 15.24,0.5 10,0.5 L10,0.5 Z M10,1.5 C11.49,1.5 12.89,1.88 14.11,2.56 L11.85,4.82 C11.27,4.61 10.65,4.5 10,4.5 C9.21,4.5 8.47,4.67 7.79,4.96 L5.58,2.75 C6.87,1.95 8.38,1.5 10,1.5 L10,1.5 Z M4.96,7.8 C4.67,8.48 4.5,9.21 4.5,10 C4.5,10.65 4.61,11.27 4.83,11.85 L2.56,14.11 C1.88,12.89 1.5,11.49 1.5,10 C1.5,8.38 1.95,6.87 2.75,5.58 L4.96,7.79 L4.96,7.8 L4.96,7.8 Z M10,18.5 C8.25,18.5 6.62,17.97 5.27,17.06 L7.46,14.87 C8.22,15.27 9.08,15.5 10,15.5 C10.79,15.5 11.53,15.33 12.21,15.04 L14.42,17.25 C13.13,18.05 11.62,18.5 10,18.5 L10,18.5 Z M10,14.5 C7.52,14.5 5.5,12.48 5.5,10 C5.5,7.52 7.52,5.5 10,5.5 C12.48,5.5 14.5,7.52 14.5,10 C14.5,12.48 12.48,14.5 10,14.5 L10,14.5 Z M15.04,12.21 C15.33,11.53 15.5,10.79 15.5,10 C15.5,9.08 15.27,8.22 14.87,7.46 L17.06,5.27 C17.97,6.62 18.5,8.25 18.5,10 C18.5,11.62 18.05,13.13 17.25,14.42 L15.04,12.21 L15.04,12.21 Z\"/></svg>",
13132        "link": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M10.625,12.375 L7.525,15.475 C6.825,16.175 5.925,16.175 5.225,15.475 L4.525,14.775 C3.825,14.074 3.825,13.175 4.525,12.475 L7.625,9.375\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M9.325,7.375 L12.425,4.275 C13.125,3.575 14.025,3.575 14.724,4.275 L15.425,4.975 C16.125,5.675 16.125,6.575 15.425,7.275 L12.325,10.375\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M7.925,11.875 L11.925,7.975\"/></svg>",
13133        "linkedin": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.77,17.89 L5.77,7.17 L2.21,7.17 L2.21,17.89 L5.77,17.89 L5.77,17.89 Z M3.99,5.71 C5.23,5.71 6.01,4.89 6.01,3.86 C5.99,2.8 5.24,2 4.02,2 C2.8,2 2,2.8 2,3.85 C2,4.88 2.77,5.7 3.97,5.7 L3.99,5.7 L3.99,5.71 L3.99,5.71 Z\"/><path d=\"M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z\"/></svg>",
13134        "list": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"6\" y=\"4\" width=\"12\" height=\"1\"/><rect x=\"6\" y=\"9\" width=\"12\" height=\"1\"/><rect x=\"6\" y=\"14\" width=\"12\" height=\"1\"/><rect x=\"2\" y=\"4\" width=\"2\" height=\"1\"/><rect x=\"2\" y=\"9\" width=\"2\" height=\"1\"/><rect x=\"2\" y=\"14\" width=\"2\" height=\"1\"/></svg>",
13135        "location": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.01\" d=\"M10,0.5 C6.41,0.5 3.5,3.39 3.5,6.98 C3.5,11.83 10,19 10,19 C10,
1313519 16.5,11.83 16.5,6.98 C16.5,3.39 13.59,0.5 10,0.5 L10,0.5 Z\"/><circle fill=\"none\" stroke=\"#000\" cx=\"10\" cy=\"6.8\" r=\"2.3\"/></svg>",
13136        "lock": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" height=\"10\" width=\"13\" y=\"8.5\" x=\"3.5\"/><path fill=\"none\" stroke=\"#000\" d=\"M6.5,8 L6.5,4.88 C6.5,3.01 8.07,1.5 10,1.5 C11.93,1.5 13.5,3.01 13.5,4.88 L13.5,8\"/></svg>",
13137        "mail": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"1.4,6.5 10,11 18.6,6.5\"/><path d=\"M 1,4 1,16 19,16 19,4 1,4 Z M 18,15 2,15 2,5 18,5 18,15 Z\"/></svg>",
13138        "menu": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"2\" y=\"4\" width=\"16\" height=\"1\"/><rect x=\"2\" y=\"9\" width=\"16\" height=\"1\"/><rect x=\"2\" y=\"14\" width=\"16\" height=\"1\"/></svg>",
13139        "microphone": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><line fill=\"none\" stroke=\"#000\" x1=\"10\" x2=\"10\" y1=\"16.44\" y2=\"18.5\"/><line fill=\"none\" stroke=\"#000\" x1=\"7\" x2=\"13\" y1=\"18.5\" y2=\"18.5\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M13.5 4.89v5.87a3.5 3.5 0 0 1-7 0V4.89a3.5 3.5 0 0 1 7 0z\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M15.5 10.36V11a5.5 5.5 0 0 1-11 0v-.6\"/></svg>",
13140        "minus-circle": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"9.5\" cy=\"9.5\" r=\"9\"/><line fill=\"none\" stroke=\"#000\" x1=\"5\" y1=\"9.5\" x2=\"14\" y2=\"9.5\"/></svg>",
13141        "minus": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect height=\"1\" width=\"18\" y=\"9\" x=\"1\"/></svg>",
13142        "more-vertical": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"3\" r=\"2\"/><circle cx=\"10\" cy=\"10\" r=\"2\"/><circle cx=\"10\" cy=\"17\" r=\"2\"/></svg>",
13143        "more": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"3\" cy=\"10\" r=\"2\"/><circle cx=\"10\" cy=\"10\" r=\"2\"/><circle cx=\"17\" cy=\"10\" r=\"2\"/></svg>",
13144        "move": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"4,5 1,5 1,9 2,9 2,6 4,6\"/><polygon points=\"1,16 2,16 2,18 4,18 4,19 1,19\"/><polygon points=\"14,16 14,19 11,19 11,18 13,18 13,16\"/><rect fill=\"none\" stroke=\"#000\" x=\"5.5\" y=\"1.5\" width=\"13\" height=\"13\"/><rect x=\"1\" y=\"11\" width=\"1\" height=\"3\"/><rect x=\"6\" y=\"18\" width=\"3\" height=\"1\"/></svg>",
13145        "nut": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" points=\"2.5,5.7 10,1.3 17.5,5.7 17.5,14.3 10,18.7 2.5,14.3\"/><circle fill=\"none\" stroke=\"#000\" cx=\"10\" cy=\"10\" r=\"3.5\"/></svg>",
13146        "pagekit": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"3,1 17,1 17,16 10,16 10,13 14,13 14,4 6,4 6,16 10,16 10,19 3,19\"/></svg>",
13147        "paint-bucket": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.21,1 L0,11.21 L8.1,19.31 L18.31,9.1 L10.21,1 L10.21,1 Z M16.89,9.1 L15,11 L1.7,11 L10.21,2.42 L16.89,9.1 Z\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M6.42,2.33 L11.7,7.61\"/><path d=\"M18.49,12 C18.49,12 20,14.06 20,15.36 C20,16.28 19.24,17 18.49,17 L18.49,17 C17.74,17 17,16.28 17,15.36 C17,14.06 18.49,12 18.49,12 L18.49,12 Z\"/></svg>",
13148        "pencil": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M17.25,6.01 L7.12,16.1 L3.82,17.2 L5.02,13.9 L15.12,3.88 C15.71,3.29 16.66,3.29 17.25,3.88 C17.83,4.47 17.83,5.42 17.25,6.01 L17.25,6.01 Z\"/><path fill=\"none\" stroke=\"#000\" d=\"M15.98,7.268 L13.851,5.148\"/></svg>",
13149        "phone-landscape": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M17,5.5 C17.8,5.5 18.5,6.2 18.5,7 L18.5,14 C18.5,14.8 17.8,15.5 17,15.5 L3,15.5 C2.2,15.5 1.5,14.8 1.5,14 L1.5,7 C1.5,6.2 2.2,5.5 3,5.5 L17,5.5 L17,5.5 L17,5.5 Z\"/><circle cx=\"3.8\" cy=\"10.5\" r=\".8\"/></svg>",
13150        "phone": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M15.5,17 C15.5,17.8 14.8,18.5 14,18.5 L7,18.5 C6.2,18.5 5.5,17.8 5.5,17 L5.5,3 C5.5,2.2 6.2,1.5 7,1.5 L14,1.5 C14.8,1.5 15.5,2.2 15.5,3 L15.5,17 L15.5,17 L15.5,17 Z\"/><circle cx=\"10.5\" cy=\"16.5\" r=\".8\"/></svg>",
13151        "pinterest": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.21,1 C5.5,1 3,4.16 3,7.61 C3,9.21 3.85,11.2 5.22,11.84 C5.43,11.94 5.54,11.89 5.58,11.69 C5.62,11.54 5.8,10.8 5.88,10.45 C5.91,10.34 5.89,10.24 5.8,10.14 C5.36,9.59 5,8.58 5,7.65 C5,5.24 6.82,2.91 9.93,2.91 C12.61,2.91 14.49,4.74 14.49,7.35 C14.49,10.3 13,12.35 11.06,12.35 C9.99,12.35 9.19,11.47 9.44,10.38 C9.75,9.08 10.35,7.68 10.35,6.75 C10.35,5.91 9.9,5.21 8.97,5.21 C7.87,5.21 6.99,6.34 6.99,7.86 C6.99,8.83 7.32,9.48 7.32,9.48 C7.32,9.48 6.24,14.06 6.04,14.91 C5.7,16.35 6.08,18.7 6.12,18.9 C6.14,19.01 6.26,19.05 6.33,18.95 C6.44,18.81 7.74,16.85 8.11,15.44 C8.24,14.93 8.79,12.84 8.79,12.84 C9.15,13.52 10.19,14.09 11.29,14.09 C14.58,14.09 16.96,11.
1315106 16.96,7.3 C16.94,3.7 14,1 10.21,1\"/></svg>",
13152        "play-circle": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" points=\"8.5 7 13.5 10 8.5 13\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10\" cy=\"10\" r=\"9\"/></svg>",
13153        "play": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" points=\"6.5,5 14.5,10 6.5,15\"/></svg>",
13154        "plus-circle": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"9.5\" cy=\"9.5\" r=\"9\"/><line fill=\"none\" stroke=\"#000\" x1=\"9.5\" y1=\"5\" x2=\"9.5\" y2=\"14\"/><line fill=\"none\" stroke=\"#000\" x1=\"5\" y1=\"9.5\" x2=\"14\" y2=\"9.5\"/></svg>",
13155        "plus": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"9\" y=\"1\" width=\"1\" height=\"17\"/><rect x=\"1\" y=\"9\" width=\"17\" height=\"1\"/></svg>",
13156        "print": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"4.5 13.5 1.5 13.5 1.5 6.5 18.5 6.5 18.5 13.5 15.5 13.5\"/><polyline fill=\"none\" stroke=\"#000\" points=\"15.5 6.5 15.5 2.5 4.5 2.5 4.5 6.5\"/><rect fill=\"none\" stroke=\"#000\" width=\"11\" height=\"6\" x=\"4.5\" y=\"11.5\"/><rect width=\"8\" height=\"1\" x=\"6\" y=\"13\"/><rect width=\"8\" height=\"1\" x=\"6\" y=\"15\"/></svg>",
13157        "pull": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"6.85,8 9.5,10.6 12.15,8 12.85,8.7 9.5,12 6.15,8.7\"/><line fill=\"none\" stroke=\"#000\" x1=\"9.5\" y1=\"11\" x2=\"9.5\" y2=\"2\"/><polyline fill=\"none\" stroke=\"#000\" points=\"6,5.5 3.5,5.5 3.5,18.5 15.5,18.5 15.5,5.5 13,5.5\"/></svg>",
13158        "push": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"12.15,4 9.5,1.4 6.85,4 6.15,3.3 9.5,0 12.85,3.3\"/><line fill=\"none\" stroke=\"#000\" x1=\"9.5\" y1=\"10\" x2=\"9.5\" y2=\"1\"/><polyline fill=\"none\" stroke=\"#000\" points=\"6 5.5 3.5 5.5 3.5 18.5 15.5 18.5 15.5 5.5 13 5.5\"/></svg>",
13159        "question": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10\" cy=\"10\" r=\"9\"/><circle cx=\"10.44\" cy=\"14.42\" r=\"1.05\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.2\" d=\"M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75\"/></svg>",
13160        "quote-right": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.27,7.79 C17.27,9.45 16.97,10.43 15.99,12.02 C14.98,13.64 13,15.23 11.56,15.97 L11.1,15.08 C12.34,14.2 13.14,13.51 14.02,11.82 C14.27,11.34 14.41,10.92 14.49,10.54 C14.3,10.58 14.09,10.6 13.88,10.6 C12.06,10.6 10.59,9.12 10.59,7.3 C10.59,5.48 12.06,4 13.88,4 C15.39,4 16.67,5.02 17.05,6.42 C17.19,6.82 17.27,7.27 17.27,7.79 L17.27,7.79 Z\"/><path d=\"M8.68,7.79 C8.68,9.45 8.38,10.43 7.4,12.02 C6.39,13.64 4.41,15.23 2.97,15.97 L2.51,15.08 C3.75,14.2 4.55,13.51 5.43,11.82 C5.68,11.34 5.82,10.92 5.9,10.54 C5.71,10.58 5.5,10.6 5.29,10.6 C3.47,10.6 2,9.12 2,7.3 C2,5.48 3.47,4 5.29,4 C6.8,4 8.08,5.02 8.46,6.42 C8.6,6.82 8.68,7.27 8.68,7.79 L8.68,7.79 Z\"/></svg>",
13161        "receiver": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.01\" d=\"M6.189,13.611C8.134,15.525 11.097,18.239 13.867,18.257C16.47,18.275 18.2,16.241 18.2,16.241L14.509,12.551L11.539,13.639L6.189,8.29L7.313,5.355L3.76,1.8C3.76,1.8 1.732,3.537 1.7,6.092C1.667,8.809 4.347,11.738 6.189,13.611\"/></svg>",
13162        "reddit": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 9.05a2.56 2.56 0 0 0-2.56-2.56 2.59 2.59 0 0 0-1.88.82 10.63 10.63 0 0 0-4.14-1v-.08c.58-1.62 1.58-3.89 2.7-4.1.38-.08.77.12 1.19.57a1.15 1.15 0 0 0-.06.37 1.48 1.48 0 1 0 1.51-1.45 1.43 1.43 0 0 0-.76.19A2.29 2.29 0 0 0 12.91 1c-2.11.43-3.39 4.38-3.63 5.19 0 0 0 .11-.06.11a10.65 10.65 0 0 0-3.75 1A2.56 2.56 0 0 0 1 9.05a2.42 2.42 0 0 0 .72 1.76A5.18 5.18 0 0 0 1.24 13c0 3.66 3.92 6.64 8.73 6.64s8.74-3 8.74-6.64a5.23 5.23 0 0 0-.46-2.13A2.58 2.58 0 0 0 19 9.05zm-16.88 0a1.44 1.44 0 0 1 2.27-1.19 7.68 7.68 0 0 0-2.07 1.91 1.33 1.33 0 0 1-.2-.72zM10 18.4c-4.17 0-7.55-2.4-7.55-5.4S5.83 7.53 10 7.53 17.5 10 17.5 13s-3.38 5.4-7.5 5.4zm7.69-8.61a7.62 7.62 0 0 0-2.09-1.91 1.41 1.41 0 0 1 .84-.28 1.47 1.47 0 0 1 1.44 1.45 1.34 1.34 0 0 1-.21.72z\"/><path d=\"M6.69 12.58a1.39 1.39 0 1 1 1.39-1.39 1.38 1.38 0 0 1-1.38 1.39z\"/><path d=\"M14.26 11.2a1.39 1.39 0 1 1-1.39-1.39 1.39 1.39 0 0 1 1.39 1.39z\"/><path d=\"M13.09 14.88a.54.54 0 0 1-.09.77 5.3 5.3 0 0 1-3.26 1.19 5.61 5.61 0 0 1-3.4-1.22.55.55 0 1 1 .73-.83 4.09 4.09 0 0 0 5.25 0 .56.56 0 0 1 .77.09z\"/></svg>",
13163        "refresh": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M17.08,11.15 C17.09,11.31 17.1,11.47 17.1,11.64 C17.1,15.53 13.94,18.69 10.05,18.69 C6.16,18.68 3,15.53 3,11.63 C3,7.74 6.16,4.58 10.05,4.58 C10.9,4.58 11.71,4.73 12.46,5\"/><polyline fill=\"none\" stroke=\"#000\" points=\"9.9 2 12.79 4.89 9.79 7.9\"/>
13163</svg>",
13164        "reply": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.7,13.11 C16.12,10.02 13.84,7.85 11.02,6.61 C10.57,6.41 9.75,6.13 9,5.91 L9,2 L1,9 L9,16 L9,12.13 C10.78,12.47 12.5,13.19 14.09,14.25 C17.13,16.28 18.56,18.54 18.56,18.54 C18.56,18.54 18.81,15.28 17.7,13.11 L17.7,13.11 Z M14.82,13.53 C13.17,12.4 11.01,11.4 8,10.92 L8,13.63 L2.55,9 L8,4.25 L8,6.8 C8.3,6.86 9.16,7.02 10.37,7.49 C13.3,8.65 15.54,10.96 16.65,13.08 C16.97,13.7 17.48,14.86 17.68,16 C16.87,15.05 15.73,14.15 14.82,13.53 L14.82,13.53 Z\"/></svg>",
13165        "rss": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"3.12\" cy=\"16.8\" r=\"1.85\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M1.5,8.2 C1.78,8.18 2.06,8.16 2.35,8.16 C7.57,8.16 11.81,12.37 11.81,17.57 C11.81,17.89 11.79,18.19 11.76,18.5\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M1.5,2.52 C1.78,2.51 2.06,2.5 2.35,2.5 C10.72,2.5 17.5,9.24 17.5,17.57 C17.5,17.89 17.49,18.19 17.47,18.5\"/></svg>",
13166        "search": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"9\" cy=\"9\" r=\"7\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M14,14 L18,18 L14,14 Z\"/></svg>",
13167        "server": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"3\" y=\"3\" width=\"1\" height=\"2\"/><rect x=\"5\" y=\"3\" width=\"1\" height=\"2\"/><rect x=\"7\" y=\"3\" width=\"1\" height=\"2\"/><rect x=\"16\" y=\"3\" width=\"1\" height=\"1\"/><rect x=\"16\" y=\"10\" width=\"1\" height=\"1\"/><circle fill=\"none\" stroke=\"#000\" cx=\"9.9\" cy=\"17.4\" r=\"1.4\"/><rect x=\"3\" y=\"10\" width=\"1\" height=\"2\"/><rect x=\"5\" y=\"10\" width=\"1\" height=\"2\"/><rect x=\"9.5\" y=\"14\" width=\"1\" height=\"2\"/><rect x=\"3\" y=\"17\" width=\"6\" height=\"1\"/><rect x=\"11\" y=\"17\" width=\"6\" height=\"1\"/><rect fill=\"none\" stroke=\"#000\" x=\"1.5\" y=\"1.5\" width=\"17\" height=\"5\"/><rect fill=\"none\" stroke=\"#000\" x=\"1.5\" y=\"8.5\" width=\"17\" height=\"5\"/></svg>",
13168        "settings": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><ellipse fill=\"none\" stroke=\"#000\" cx=\"6.11\" cy=\"3.55\" rx=\"2.11\" ry=\"2.15\"/><ellipse fill=\"none\" stroke=\"#000\" cx=\"6.11\" cy=\"15.55\" rx=\"2.11\" ry=\"2.15\"/><circle fill=\"none\" stroke=\"#000\" cx=\"13.15\" cy=\"9.55\" r=\"2.15\"/><rect x=\"1\" y=\"3\" width=\"3\" height=\"1\"/><rect x=\"10\" y=\"3\" width=\"8\" height=\"1\"/><rect x=\"1\" y=\"9\" width=\"8\" height=\"1\"/><rect x=\"15\" y=\"9\" width=\"3\" height=\"1\"/><rect x=\"1\" y=\"15\" width=\"3\" height=\"1\"/><rect x=\"10\" y=\"15\" width=\"8\" height=\"1\"/></svg>",
13169        "shrink": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"11 4 12 4 12 8 16 8 16 9 11 9\"/><polygon points=\"4 11 9 11 9 16 8 16 8 12 4 12\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M12,8 L18,2\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M2,18 L8,12\"/></svg>",
13170        "sign-in": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"7 2 17 2 17 17 7 17 7 16 16 16 16 3 7 3\"/><polygon points=\"9.1 13.4 8.5 12.8 11.28 10 4 10 4 9 11.28 9 8.5 6.2 9.1 5.62 13 9.5\"/></svg>",
13171        "sign-out": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"13.1 13.4 12.5 12.8 15.28 10 8 10 8 9 15.28 9 12.5 6.2 13.1 5.62 17 9.5\"/><polygon points=\"13 2 3 2 3 17 13 17 13 16 4 16 4 3 13 3\"/></svg>",
13172        "social": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" x1=\"13.4\" y1=\"14\" x2=\"6.3\" y2=\"10.7\"/><line fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" x1=\"13.5\" y1=\"5.5\" x2=\"6.5\" y2=\"8.8\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"15.5\" cy=\"4.6\" r=\"2.3\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"15.5\" cy=\"14.8\" r=\"2.3\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"4.5\" cy=\"9.8\" r=\"2.3\"/></svg>",
13173        "soundcloud": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.2,9.4c-0.4,0-0.8,0.1-1.101,0.2c-0.199-2.5-2.399-4.5-5-4.5c-0.6,0-1.2,0.1-1.7,0.3C9.2,5.5,9.1,5.6,9.1,5.6V15h8 
13173c1.601,0,2.801-1.2,2.801-2.8C20,10.7,18.7,9.4,17.2,9.4L17.2,9.4z\"/><rect x=\"6\" y=\"6.5\" width=\"1.5\" height=\"8.5\"/><rect x=\"3\" y=\"8\" width=\"1.5\" height=\"7\"/><rect y=\"10\" width=\"1.5\" height=\"5\"/></svg>",
13174        "star": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" stroke-width=\"1.01\" points=\"10 2 12.63 7.27 18.5 8.12 14.25 12.22 15.25 18 10 15.27 4.75 18 5.75 12.22 1.5 8.12 7.37 7.27\"/></svg>",
13175        "strikethrough": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6,13.02 L6.65,13.02 C7.64,15.16 8.86,16.12 10.41,16.12 C12.22,16.12 12.92,14.93 12.92,13.89 C12.92,12.55 11.99,12.03 9.74,11.23 C8.05,10.64 6.23,10.11 6.23,7.83 C6.23,5.5 8.09,4.09 10.4,4.09 C11.44,4.09 12.13,4.31 12.72,4.54 L13.33,4 L13.81,4 L13.81,7.59 L13.16,7.59 C12.55,5.88 11.52,4.89 10.07,4.89 C8.84,4.89 7.89,5.69 7.89,7.03 C7.89,8.29 8.89,8.78 10.88,9.45 C12.57,10.03 14.38,10.6 14.38,12.91 C14.38,14.75 13.27,16.93 10.18,16.93 C9.18,16.93 8.17,16.69 7.46,16.39 L6.52,17 L6,17 L6,13.02 L6,13.02 Z\"/><rect x=\"3\" y=\"10\" width=\"15\" height=\"1\"/></svg>",
13176        "table": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"1\" y=\"3\" width=\"18\" height=\"1\"/><rect x=\"1\" y=\"7\" width=\"18\" height=\"1\"/><rect x=\"1\" y=\"11\" width=\"18\" height=\"1\"/><rect x=\"1\" y=\"15\" width=\"18\" height=\"1\"/></svg>",
13177        "tablet-landscape": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M1.5,5 C1.5,4.2 2.2,3.5 3,3.5 L17,3.5 C17.8,3.5 18.5,4.2 18.5,5 L18.5,16 C18.5,16.8 17.8,17.5 17,17.5 L3,17.5 C2.2,17.5 1.5,16.8 1.5,16 L1.5,5 L1.5,5 L1.5,5 Z\"/><circle cx=\"3.7\" cy=\"10.5\" r=\".8\"/></svg>",
13178        "tablet": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M5,18.5 C4.2,18.5 3.5,17.8 3.5,17 L3.5,3 C3.5,2.2 4.2,1.5 5,1.5 L16,1.5 C16.8,1.5 17.5,2.2 17.5,3 L17.5,17 C17.5,17.8 16.8,18.5 16,18.5 L5,18.5 L5,18.5 L5,18.5 Z\"/><circle cx=\"10.5\" cy=\"16.3\" r=\".8\"/></svg>",
13179        "tag": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M17.5,3.71 L17.5,7.72 C17.5,7.96 17.4,8.2 17.21,8.39 L8.39,17.2 C7.99,17.6 7.33,17.6 6.93,17.2 L2.8,13.07 C2.4,12.67 2.4,12.01 2.8,11.61 L11.61,2.8 C11.81,2.6 12.08,2.5 12.34,2.5 L16.19,2.5 C16.52,2.5 16.86,2.63 17.11,2.88 C17.35,3.11 17.48,3.4 17.5,3.71 L17.5,3.71 Z\"/><circle cx=\"14\" cy=\"6\" r=\"1\"/></svg>",
13180        "thumbnails": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" x=\"3.5\" y=\"3.5\" width=\"5\" height=\"5\"/><rect fill=\"none\" stroke=\"#000\" x=\"11.5\" y=\"3.5\" width=\"5\" height=\"5\"/><rect fill=\"none\" stroke=\"#000\" x=\"11.5\" y=\"11.5\" width=\"5\" height=\"5\"/><rect fill=\"none\" stroke=\"#000\" x=\"3.5\" y=\"11.5\" width=\"5\" height=\"5\"/></svg>",
13181        "tiktok": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.24,6V8.82a6.79,6.79,0,0,1-4-1.28v5.81A5.26,5.26,0,1,1,8,8.1a4.36,4.36,0,0,1,.72.05v2.9A2.57,2.57,0,0,0,7.64,11a2.4,2.4,0,1,0,2.77,2.38V2h2.86a4,4,0,0,0,1.84,3.38A4,4,0,0,0,17.24,6Z\"/></svg>",
13182        "trash": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"6.5 3 6.5 1.5 13.5 1.5 13.5 3\"/><polyline fill=\"none\" stroke=\"#000\" points=\"4.5 4 4.5 18.5 15.5 18.5 15.5 4\"/><rect x=\"8\" y=\"7\" width=\"1\" height=\"9\"/><rect x=\"11\" y=\"7\" width=\"1\" height=\"9\"/><rect x=\"2\" y=\"3\" width=\"16\" height=\"1\"/></svg>",
13183        "triangle-down": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"5 7 15 7 10 12\"/></svg>",
13184        "triangle-left": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"12 5 7 10 12 15\"/></svg>",
13185        "triangle-right": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"8 5 13 10 8 15\"/></svg>",
13186        "triangle-up": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"5 13 10 8 15 13\"/></svg>",
13187        "tripadvisor": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.021,7.866C19.256,6.862,20,5.854,20,5.854h-3.346C14.781,4.641,12.504,4,9.98,4C7.363,4,4.999,4.651,3.135,5.876H0\tc0,0,0.738,0.987,0.976,1.988c-0.611,0.837-0.973,1.852-0.973,2.964c0,2.763,2.249,5.009,5.011,5.
13187009\tc1.576,0,2.976-0.737,3.901-1.879l1.063,1.599l1.075-1.615c0.475,0.611,1.1,1.111,1.838,1.451c1.213,0.547,2.574,0.612,3.825,0.15\tc2.589-0.963,3.913-3.852,2.964-6.439c-0.175-0.463-0.4-0.876-0.675-1.238H19.021z M16.38,14.594\tc-1.002,0.371-2.088,0.328-3.06-0.119c-0.688-0.317-1.252-0.817-1.657-1.438c-0.164-0.25-0.313-0.52-0.417-0.811\tc-0.124-0.328-0.186-0.668-0.217-1.014c-0.063-0.689,0.037-1.396,0.339-2.043c0.448-0.971,1.251-1.71,2.25-2.079\tc2.075-0.765,4.375,0.3,5.14,2.366c0.762,2.066-0.301,4.37-2.363,5.134L16.38,14.594L16.38,14.594z M8.322,13.066\tc-0.72,1.059-1.935,1.76-3.309,1.76c-2.207,0-4.001-1.797-4.001-3.996c0-2.203,1.795-4.002,4.001-4.002\tc2.204,0,3.999,1.8,3.999,4.002c0,0.137-0.024,0.261-0.04,0.396c-0.067,0.678-0.284,1.313-0.648,1.853v-0.013H8.322z M2.472,10.775\tc0,1.367,1.112,2.479,2.476,2.479c1.363,0,2.472-1.11,2.472-2.479c0-1.359-1.11-2.468-2.472-2.468\tC3.584,8.306,2.473,9.416,2.472,10.775L2.472,10.775z M12.514,10.775c0,1.367,1.104,2.479,2.471,2.479\tc1.363,0,2.474-1.108,2.474-2.479c0-1.359-1.11-2.468-2.474-2.468c-1.364,0-2.477,1.109-2.477,2.468H12.514z M3.324,10.775\tc0-0.893,0.726-1.618,1.614-1.618c0.889,0,1.625,0.727,1.625,1.618c0,0.898-0.725,1.627-1.625,1.627\tc-0.901,0-1.625-0.729-1.625-1.627H3.324z M13.354,10.775c0-0.893,0.726-1.618,1.627-1.618c0.886,0,1.61,0.727,1.61,1.618\tc0,0.898-0.726,1.627-1.626,1.627s-1.625-0.729-1.625-1.627H13.354z M9.977,4.875c1.798,0,3.425,0.324,4.849,0.968\tc-0.535,0.015-1.061,0.108-1.586,0.3c-1.264,0.463-2.264,1.388-2.815,2.604c-0.262,0.551-0.398,1.133-0.448,1.72\tC9.79,7.905,7.677,5.873,5.076,5.82C6.501,5.208,8.153,4.875,9.94,4.875H9.977z\"/></svg>",
13188        "tumblr": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.885,8.598c0,0,0,3.393,0,4.996c0,0.282,0,0.66,0.094,0.942c0.377,1.509,1.131,2.545,2.545,3.11 c1.319,0.472,2.356,0.472,3.676,0c0.565-0.188,1.132-0.659,1.132-0.659l-0.849-2.263c0,0-1.036,0.378-1.603,0.283 c-0.565-0.094-1.226-0.66-1.226-1.508c0-1.603,0-4.902,0-4.902h2.828V5.771h-2.828V2H8.205c0,0-0.094,0.66-0.188,0.942 C7.828,3.791,7.262,4.733,6.603,5.394C5.848,6.147,5,6.43,5,6.43v2.168H6.885z\"/></svg>",
13189        "tv": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"7\" y=\"16\" width=\"6\" height=\"1\"/><rect fill=\"none\" stroke=\"#000\" x=\".5\" y=\"3.5\" width=\"19\" height=\"11\"/></svg>",
13190        "twitch": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.23,1,2,4.23V15.85H5.88v3.23L9.1,15.85h2.59L17.5,10V1Zm11,8.4L13.62,12H11L8.78,14.24V12H5.88V2.29H16.21Z\"/><rect x=\"12.98\" y=\"4.55\" width=\"1.29\" height=\"3.88\"/><rect x=\"9.43\" y=\"4.55\" width=\"1.29\" height=\"3.88\"/></svg>",
13191        "twitter": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74\"/></svg>",
13192        "uikit": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"14.4,3.1 11.3,5.1 15,7.3 15,12.9 10,15.7 5,12.9 5,8.5 2,6.8 2,14.8 9.9,19.5 18,14.8 18,5.3\"/><polygon points=\"9.8,4.2 6.7,2.4 9.8,0.4 12.9,2.3\"/></svg>",
13193        "unlock": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect fill=\"none\" stroke=\"#000\" x=\"3.5\" y=\"8.5\" width=\"13\" height=\"10\"/><path fill=\"none\" stroke=\"#000\" d=\"M6.5,8.5 L6.5,4.9 C6.5,3 8.1,1.5 10,1.5 C11.9,1.5 13.5,3 13.5,4.9\"/></svg>",
13194        "upload": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polyline fill=\"none\" stroke=\"#000\" points=\"5 8 9.5 3.5 14 8\"/><rect x=\"3\" y=\"17\" width=\"13\" height=\"1\"/><line fill=\"none\" stroke=\"#000\" x1=\"9.5\" y1=\"15\" x2=\"9.5\" y2=\"4\"/></svg>",
13195        "user": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"9.9\" cy=\"6.4\" r=\"4.4\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M1.5,19 C2.3,14.5 5.8,11.2 10,11.2 C14.2,11.2 17.7,14.6 18.5,19.2\"/></svg>",
13196        "users": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"7.7\" cy=\"8.6\" r=\"3.5\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M1,18.1 C1.7,14.6 4.4,12.1 7.6,12.1 C10.9,12.1 13.7,14.8 14.3,18.3\"/><path fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" d=\"M11.4,4 C12.8,2.4 15.4,2.8 16.3,4.7 C17.2,6.6 15.7,8.9 13.6,8.9 C16.5,8.9 18.8,11.3 19.2,14.1\"/></svg>",
13197        "video-camera": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"none\" stroke=\"#000\" points=\"17.5 6.9 17.5 13.1 13.5 10.4 13.5 14.5 2.5 14.5 2.5 5.5 13.5 5.5 13.5 9.6 17.5 6.9\"/></svg>",
13198        "vimeo": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.065,7.59C1.84,7.367,1.654,7.082,1.468,6.838c-0.332-0.42-0.137-0.411,0.274-0.772c1.026-0.9
131981,2.004-1.896,3.127-2.688 c1.017-0.713,2.365-1.173,3.286-0.039c0.849,1.045,0.869,2.629,1.084,3.891c0.215,1.309,0.421,2.648,0.88,3.901 c0.127,0.352,0.37,1.018,0.81,1.074c0.567,0.078,1.145-0.917,1.408-1.289c0.684-0.987,1.611-2.317,1.494-3.587 c-0.115-1.349-1.572-1.095-2.482-0.773c0.146-1.514,1.555-3.216,2.912-3.792c1.439-0.597,3.579-0.587,4.302,1.036 c0.772,1.759,0.078,3.802-0.763,5.396c-0.918,1.731-2.1,3.333-3.363,4.829c-1.114,1.329-2.432,2.787-4.093,3.422 c-1.897,0.723-3.021-0.686-3.667-2.318c-0.705-1.777-1.056-3.771-1.565-5.621C4.898,8.726,4.644,7.836,4.136,7.191 C3.473,6.358,2.72,7.141,2.065,7.59C1.977,7.502,2.115,7.551,2.065,7.59L2.065,7.59z\"/></svg>",
13199        "warning": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"14\" r=\"1\"/><circle fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" cx=\"10\" cy=\"10\" r=\"9\"/><path d=\"M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z\"/></svg>",
13200        "whatsapp": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16.7,3.3c-1.8-1.8-4.1-2.8-6.7-2.8c-5.2,0-9.4,4.2-9.4,9.4c0,1.7,0.4,3.3,1.3,4.7l-1.3,4.9l5-1.3c1.4,0.8,2.9,1.2,4.5,1.2 l0,0l0,0c5.2,0,9.4-4.2,9.4-9.4C19.5,7.4,18.5,5,16.7,3.3 M10.1,17.7L10.1,17.7c-1.4,0-2.8-0.4-4-1.1l-0.3-0.2l-3,0.8l0.8-2.9 l-0.2-0.3c-0.8-1.2-1.2-2.7-1.2-4.2c0-4.3,3.5-7.8,7.8-7.8c2.1,0,4.1,0.8,5.5,2.3c1.5,1.5,2.3,3.4,2.3,5.5 C17.9,14.2,14.4,17.7,10.1,17.7 M14.4,11.9c-0.2-0.1-1.4-0.7-1.6-0.8c-0.2-0.1-0.4-0.1-0.5,0.1c-0.2,0.2-0.6,0.8-0.8,0.9 c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-1-0.4-1.9-1.2c-0.7-0.6-1.2-1.4-1.3-1.6c-0.1-0.2,0-0.4,0.1-0.5C8,8.8,8.1,8.7,8.2,8.5 c0.1-0.1,0.2-0.2,0.2-0.4c0.1-0.2,0-0.3,0-0.4C8.4,7.6,7.9,6.5,7.7,6C7.5,5.5,7.3,5.6,7.2,5.6c-0.1,0-0.3,0-0.4,0 c-0.2,0-0.4,0.1-0.6,0.3c-0.2,0.2-0.8,0.8-0.8,2c0,1.2,0.8,2.3,1,2.4c0.1,0.2,1.7,2.5,4,3.5c0.6,0.2,1,0.4,1.3,0.5 c0.6,0.2,1.1,0.2,1.5,0.1c0.5-0.1,1.4-0.6,1.6-1.1c0.2-0.5,0.2-1,0.1-1.1C14.8,12.1,14.6,12,14.4,11.9\"/>
13200</svg>",
13201        "wordpress": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10,0.5c-5.2,0-9.5,4.3-9.5,9.5s4.3,9.5,9.5,9.5c5.2,0,9.5-4.3,9.5-9.5S15.2,0.5,10,0.5L10,0.5L10,0.5z M15.6,3.9h-0.1 c-0.8,0-1.4,0.7-1.4,1.5c0,0.7,0.4,1.3,0.8,1.9c0.3,0.6,0.7,1.3,0.7,2.3c0,0.7-0.3,1.5-0.6,2.7L14.1,15l-3-8.9 c0.5,0,0.9-0.1,0.9-0.1C12.5,6,12.5,5.3,12,5.4c0,0-1.3,0.1-2.2,0.1C9,5.5,7.7,5.4,7.7,5.4C7.2,5.3,7.2,6,7.6,6c0,0,0.4,0.1,0.9,0.1 l1.3,3.5L8,15L5,6.1C5.5,6.1,5.9,6,5.9,6C6.4,6,6.3,5.3,5.9,5.4c0,0-1.3,0.1-2.2,0.1c-0.2,0-0.3,0-0.5,0c1.5-2.2,4-3.7,6.9-3.7 C12.2,1.7,14.1,2.6,15.6,3.9L15.6,3.9L15.6,3.9z M2.5,6.6l3.9,10.8c-2.7-1.3-4.6-4.2-4.6-7.4C1.8,8.8,2,7.6,2.5,6.6L2.5,6.6L2.5,6.6 z M10.2,10.7l2.5,6.9c0,0,0,0.1,0.1,0.1C11.9,18,11,18.2,10,18.2c-0.8,0-1.6-0.1-2.3-0.3L10.2,10.7L10.2,10.7L10.2,10.7z M14.2,17.1 l2.5-7.3c0.5-1.2,0.6-2.1,0.6-2.9c0-0.3,0-0.6-0.1-0.8c0.6,1.2,1,2.5,1,4C18.3,13,16.6,15.7,14.2,17.1L14.2,17.1L14.2,17.1z\"/></svg>",
13202        "world": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" stroke=\"#000\" d=\"M1,10.5 L19,10.5\"/><path fill=\"none\" stroke=\"#000\" d=\"M2.35,15.5 L17.65,15.5\"/><path fill=\"none\" stroke=\"#000\" d=\"M2.35,5.5 L17.523,5.5\"/><path fill=\"none\" stroke=\"#000\" d=\"M10,19.46 L9.98,19.46 C7.31,17.33 5.61,14.141 5.61,10.58 C5.61,7.02 7.33,3.83 10,1.7 C10.01,1.7 9.99,1.7 10,1.7 L10,1.7 C12.67,3.83 14.4,7.02 14.4,10.58 C14.4,14.141 12.67,17.33 10,19.46 L10,19.46 L10,19.46 L10,19.46 Z\"/><circle fill=\"none\" stroke=\"#000\" cx=\"10\" cy=\"10.5\" r=\"9\"/></svg>",
13203        "xing": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.4,4.56 C4.24,4.56 4.11,4.61 4.05,4.72 C3.98,4.83 3.99,4.97 4.07,5.12 L5.82,8.16 L5.82,8.17 L3.06,13.04 C2.99,13.18 2.99,13.33 3.06,13.44 C3.12,13.55 3.24,13.62 3.4,13.62 L6,13.62 C6.39,13.62 6.57,13.36 6.71,13.12 C6.71,13.12 9.41,8.35 9.51,8.16 C9.49,8.14 7.72,5.04 7.72,5.04 C7.58,4.81 7.39,4.56 6.99,4.56 L4.4,4.56 L4.4,4.56 Z\"/><path d=\"M15.3,1 C14.91,1 14.74,1.25 14.6,1.5 C14.6,1.5 9.01,11.42 8.82,11.74 C8.83,11.76 12.51,18.51 12.51,18.51 C12.64,18.74 12.84,19 13.23,19 L15.82,19 C15.98,19 16.1,18.94 16.16,18.83 C16.23,18.72 16.23,18.57 16.16,18.43 L12.5,11.74 L12.5,11.72 L18.25,1.56 C18.32,1.42 18.32,1.27 18.25,1.16 C18.21,1.06 18.08,1 17.93,1 L15.3,1 L15.3,1 Z\"/></svg>",
13204        "yelp": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.175,14.971c-0.112,0.77-1.686,2.767-2.406,3.054c-0.246,0.1-0.487,0.076-0.675-0.069\tc-0.122-0.096-2.446-3.859-2.446-3.859c-0.194-0.293-0.157-0.682,0.083-0.978c0.234-0.284,0.581-0.393,0.881-0.276\tc0.016,0.01,4.21,1.394,4.332,1.482c0.178,0.148,0.263,0.379,0.225,0.646L17.175,14.971L17.175,14.971z M11.464,10.789\tc-0.203-0.307-0.199-0.666,0.009-0.916c0,0,2.625-3.574,2.745-3.657c0.203-0.135,0.452-0.141,0.69-0.025\tc0.691,0.335,2.085,2.405,2.167,3.199v0.027c0.024,0.271-0.082,0.491-0.273,0.623c-0.132,0.083-4.43,1.155-4.43,1.155\tc-0.322,0.096-0.68-0.06-0.882-0.381L11.464,10.789z M9.475,9.563C9.32,9.609,8.848,9.757,8.269,8.817c0,0-3.916-6.16-4.007-6.351\tc-0.057-0.212,0.011-0.455,0.202-0.65C5.047,1.211,8.21,0.327,9.037,0.529c0.27,0.069,0.457,0.238,0.522,0.479\tc0.047,0.266,0.433,5.982,0.488,7.264C10.098,9.368,9.629,9.517,9.475,9.563z M9.927,19.066c-0.083,0.225-0.273,0.373-0.54,0.421\tc-0.762,0.13-3.15-0.751-3.647-1.342c-0.096-0.131-0.155-0.262-0.167-0.394c-0.011-0.095,0-0.189,0.036-0.272\tc0.061-0.155,2.917-3.538,2.917-3.538c0.214-0.272,0.595-0.355,0.952-0.213c0.345,0.13,0.56,0.428,0.536,0.749\tC10.014,14.479,9.977,18.923,9.927,19.066z M3.495,13.912c-0.235-0.009-0.444-0.148-0.568-0.382c-0.089-0.17-0.151-0.453-0.19-0.794\tC2.63,11.701,2.761,10.144,3.07,9.648c0.145-0.226,0.357-0.345,0.592-0.336c0.154,0,4.255,1.667,4.255,1.667\tc0.321,0.118,0.521,0.453,0.5,0.833c-0.023,0.37-0.236,0.655-0.551,0.738L3.495,13.912z\"/></svg>",
13205        "youtube": "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z\"/></svg>"
13206    });
13207
13208    }
13209
13210    if (typeof window !== 'undefined' && window.UIkit) {
13211        window.UIkit.use(plugin);
13212    }
13213
13214    return plugin;
13215
13216}));
13217
13218
13219/***/ }),
13220/* 7 */
13221/***/ (function(module, __webpack_exports__, __webpack_require__) {
13222
13223"use strict";
13224/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__camelCase__ = __webpack_require__(8);
13225
13226
13227/**
13228 * DOM-based Routing
13229 *
13230 * Based on {@link http://goo.gl/EUTi53|Markup-based Unobtrusive Comprehensive DOM-ready Execution} by Paul Irish
13231 *
13232 * The routing fires all common scripts, followed by the page specific scripts.
13233 * Add additional events for more control over timing e.g. a finalize event
13234 */
13235var Router = function Router(routes) {
13236  this.routes = routes;
13237};
13238
13239/**
13240 * Fire Router events
13241 * @param {string} route DOM-based route derived from body classes (`<body class="...">`)
13242 * @param {string} [event] Events on the route. By default, `init` and `finalize` events are called.
13243 * @param {string} [arg] Any custom argument to be passed to the event.
13244 */
13245Router.prototype.fire = function fire (route, event, arg) {
13246    if ( event === void 0 ) event = 'init';
13247
13248  document.dispatchEvent(new CustomEvent('routed', {
13249    bubbles: true,
13250    detail: {
13251      route: route,
13252      fn: event,
13253    },
13254  }));
13255
13256  var fire = route !== '' && this.routes[route] && typeof this.routes[route][event] === 'function';
13257  if (fire) {
13258    this.routes[route][event](arg);
13259  }
13260};
13261
13262/**
13263 * Automatically load and fire Router events
13264 *
13265 * Events are fired in the following order:
13266 ** common init
13267 ** page-specific init
13268 ** page-specific finalize
13269 ** common finalize
13270 */
13271Router.prototype.loadEvents = function loadEvents () {
13272    var this$1 = this;
13273
13274  // Fire common init JS
13275  this.fire('common');
13276
13277  // Fire page-specific init JS, and then finalize JS
13278  document.body.className
13279    .toLowerCase()
13280    .replace(/-/g, '_')
13281    .split(/\s+/)
13282    .map(__WEBPACK_IMPORTED_MODULE_0__camelCase__["a" /* default */])
13283    .forEach(function (className) {
13284      this$1.fire(className);
13285      this$1.fire(className, 'finalize');
13286    });
13287
13288  // Fire common finalize JS
13289  this.fire('common', 'finalize');
13290};
13291
13292/* harmony default export */ __webpack_exports__["a"] = (Router);
13293
13294
13295/***/ }),
13296/* 8 */
13297/***/ (function(module, __webpack_exports__, __webpack_require__) {
13298
13299"use strict";
13300/**
13301 * the most terrible camelizer on the internet, guaranteed!
13302 * @param {string} str String that isn't camel-case, e.g., CAMeL_CaSEiS-harD
13303 * @return {string} String converted to camel-case, e.g., camelCaseIsHard
13304 */
13305/* harmony default export */ __webpack_exports__["a"] = (function (str) { return ("" + (str.charAt(0).toLowerCase()) + (str.replace(/[\W_]/g, '|').split('|')
13306  .map(function (part) { return ("" + (part.charAt(0).toUpperCase()) + (part.slice(1))); })
13307  .join('')
13308  .slice(1))); });;
13309
13310
13311/***/ }),
13312/* 9 */
13313/***/ (function(module, __webpack_exports__, __webpack_require__) {
13314
13315"use strict";
13316/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit__ = __webpack_require__(1);
13317/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_uikit__);
13318/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_js_cookie__ = __webpack_require__(2);
13319/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_js_cookie___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_js_cookie__);
13320
13321
13322//Import
13323// import * as select2 from 'select2'
13324// import scrollify from 'jquery-scrollify'
13325
13326/* harmony default export */ __webpack_exports__["a"] = ({
13327  init: function init() {
13328
13329    $(document).ready(function () {
13330
13331      var ease = {
13332        linear: function (t) { return t; },
13333        inOutQuad: function (t) { return t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t; },
13334        // Find out more at: https://gist.github.com/gre/1650294
13335      };
13336
13337      var counter = function (EL) {
13338
13339        var duration = 4000; // Animate all counters equally for a better UX
13340
13341        var start = parseInt(EL.textContent, 10); // Get start and end values
13342        var end = parseInt(EL.dataset.counter, 10); // PS: Use always the radix 10!
13343
13344        if (start === end) { return; } // If equal values, stop here.
13345
13346        var range = end - start; // Get the range
13347        var curr = start; // Set current at start position
13348
13349        var timeStart = Date.now();
13350
13351        var loop = function () {
13352          var elaps = Date.now() - timeStart;
13353          if (elaps > duration) { elaps = duration; } // Stop the loop
13354          var norm = ease.inOutQuad(elaps / duration); // normalised value + easing
13355          var step = norm * range; // Calculate the value step
13356          curr = start + step; // Increment or Decrement current value
13357          EL.textContent = commaSeparateNumber(Math.trunc(curr)); // Apply to UI as integer
13358          if (elaps < duration) { requestAnimationFrame(loop); } // Loop
13359        };
13360
13361        requestAnimationFrame(loop); // Start the loop!
13362      };
13363
13364      //Add Commas Function
13365      function commaSeparateNumber(val) {
13366        while (/(\d+)(\d{3})/.test(val.toString())) {
13367          val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
13368        }
13369        return val;
13370      }
13371
13372      //
13373      // document.querySelectorAll("[data-counter]").forEach(counter);
13374
13375
13376      $('[data-counter]').each(function () {
13377        $(this).width($(this).outerWidth());
13378      });
13379
13380      __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.util.on(document, 'inview', '.counter-parent', function () {
13381        document.querySelectorAll('.uk-scrollspy-inview.counter-parent [data-counter]').forEach(counter);
13382      });
13383
13384
13385
13386      // how it works progress step columns
13387      var stepTrigger = '.step-trigger';
13388      var stepClose = '.step-close';
13389      if ($(stepTrigger).length) {
13390
13391        $(stepTrigger).on('click', function (e) {
13392          e.preventDefault();
13393          var stepID = $(this).data('step');
13394          $('.step[data-step]').removeClass('active');
13395          $('#step-' + stepID).addClass('active');
13396        });
13397        $(stepClose).on('click', function (e) {
13398          e.preventDefault();
13399          $('.step[data-step]').removeClass('active');
13400        });
13401      }
13402
13403
13404      var resizeTimer,
13405        promoBar = $('#promo-bar'),
13406        headerNav = $('header[id*="site-header"] .header-nav');
13407
13408      navPromoHeight()
13409
13410      $(window).on('resize', function () {
13411        clearTimeout(resizeTimer);
13412        resizeTimer = setTimeout(function () {
13413          navPromoHeight()
13414        }, 50);
13415      });
13416
13417      $('#promo-bar span.close-promo').click(function (e) {
13418        e.preventDefault();
13419        navPromoHeight(true)
13420      })
13421
13422      $('nav.primary-nav-2 a.uk-navbar-toggle.hamburger').click(function (e) {
13423        e.preventDefault();
13424        navPromoHeight()
13425      })
13426
13427      function navPromoHeight(promoClick) {
13428        if ( promoClick === void 0 ) promoClick = false;
13429
13430
13431        var promoHeight = promoBar.length > 0 ? promoBar.outerHeight() : 0,
13432          headerHeight = headerNav.outerHeight(),
13433          totalHeight = promoHeight + headerHeight,
13434          mobileNav = $('#offcanvas-nav-2 div.uk-offcanvas-bar, #offcanvas-nav-2 .overlay-div'),
13435          adminBar = $('#wpadminbar').outerHeight();
13436
13437        if ($('body').hasClass('admin-bar')) {
13438          promoHeight = promoHeight + adminBar
13439          headerHeight = headerHeight + adminBar
13440          totalHeight = totalHeight + adminBar;
13441        }
13442
13443        $('header[id*="site-header"] div.sticky-placeholder').css('height', headerNav.outerHeight() + 'px');
13444
13445        if (promoBar.is(':visible')) {
13446          $('#promo-placeholder').css('height', promoBar.outerHeight() + 'px');
13447          headerNav.css('top', promoHeight + 'px');
13448          mobileNav.css('top', totalHeight + 'px');
13449        } else {
13450          if ($('body').hasClass('admin-bar')) {
13451            headerNav.css('top', adminBar + 'px');
13452          } else {
13453            headerNav.css('top', '0');
13454          }
13455          mobileNav.css('top', headerHeight + 'px');
13456        }
13457
13458        if (promoClick === true) {
13459          $('#promo-placeholder').css('height', '0');
13460          if ($('body').hasClass('admin-bar')) {
13461            headerNav.css('top', adminBar + 'px');
13462            mobileNav.css('top', headerHeight + 'px');
13463          } else {
13464            headerNav.css('top', '0');
13465            mobileNav.css('top', headerHeight + 'px');
13466          }
13467        }
13468
13469
13470        // Dynamically get header height and add offset to any button that begins with '#'
13471        var scrollLinks = $('a[href^=#].uk-button:not(.scroll-to-accrd), li[class*="btn-nav-item"] a[href^=#]:not(.scroll-to-accrd)');
13472
13473        if (scrollLinks.length) {
13474          $(scrollLinks).attr('uk-scroll', 'offset:' + totalHeight);
13475        }
13476
13477
13478        $('#promo-bar span.close-promo').trigger('promoHeightChanged');
13479
13480
13481        $('footer li.uk-scroll a').each(function () {
13482          var footerHref = $(this).attr('href');
13483          if (window.location.href.indexOf(footerHref) > -1) {
13484            $(this).attr('uk-scroll', 'offset:' + totalHeight);
13485          }
13486        });
13487
13488      }
13489    });
13490
13491
13492    $('a.scroll-to-accrd').click(function (e) {
13493      e.preventDefault()
13494      var accrd = 'ul' + $(this).attr('href')
13495      var accrd_item = $(this).data('accrd');
13496      $('html,body').animate({
13497        scrollTop: $(accrd).offset().top - 70,
13498      }, 500);
13499      setTimeout(function () {
13500        __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.accordion(accrd).toggle(accrd_item, true);
13501      }, 800);
13502    })
13503
13504
13505    $(document).ready(function () {
13506      $('.fa-placeholders .oneField').each(function () {
13507        var label = $(this).find('label');
13508        var text = label.text();
13509        var input = $(this).find('input');
13510        // var select = $(this).find('select');
13511        // if input type does not equal 'checkbox' or 'radio'
13512        if (input.length > 0 && input.attr('type') !== 'checkbox' && input.attr('type') !== 'radio') {
13513          /* if label has class reqMark addpend */
13514          if (label.hasClass('reqMark')) {
13515            text = text + '*';
13516          }
13517
13518          label.hide();
13519          input.attr('placeholder', text);
13520
13521        }
13522        // if (select.length > 0) {
13523        //   select.find('option[value=""]').text(text);
13524        // }
13525      });
13526    });
13527
13528// Fixes icomoon html for filled icons
13529    if ($('[class*=icon-filled]').length) {
13530      $('[class*=icon-filled]').each(function () {
13531        var this$1 = this;
13532
13533        for (var n = 1; n < 10; ++n) {
13534          $(this$1).append('<span class="path' + n + '"></span>');
13535        }
13536      });
13537    }
13538
13539    var urlParams = new URLSearchParams(location.search);
13540    if (urlParams.has('tfa_next')) {
13541      if (window.location.href.indexOf('utm_') > -1) {
13542        var tfaQuery = urlParams.get('tfa_next');
13543        var path = window.location.href.split('?')[0];
13544        window.location.href = path + '?tfa_next=' + tfaQuery;
13545      }
13546    }
13547
13548    $('body').addClass('loaded');
13549
13550    // function getgclid() {
13551    //   var url = window.location.href;
13552    //   if (url.indexOf('gclid=') !== -1) {
13553    //     url = url.split('?')[1];
13554    //     return url.match(/gclid=(.*)&?/)[1];
13555    //   } else {
13556    //     return '(none)';
13557    //   }
13558    // }
13559
13560//     if ($('.wForms, .wForm').length > 0) {
13561//
13562//       let url = window.location.href;
13563//       let urlSplit = url.split('?');
13564//       let urlparams = new URLSearchParams(urlSplit[1]);
13565//       urlparams.delete('fbclid');
13566//       urlparams.delete('gclid');
13567//       url = urlSplit[0] + '?' + urlparams.toString();
13568//
13569//       $('input[title="Web_Form_URL__c"]').val(url);
13570//       if (jQuery('#4872920').length || jQuery('#4873069').length) {
13571//         var table = {
13572//           'gclid': ['tfa_2017'],
13573//           'utm_medium': ['tfa_2018'],
13574//           'utm_source': ['tfa_2019'],
13575//           'utm_campaign': ['tfa_2020'],
13576//           'utm_content': ['tfa_2021'],
13577//           'utm_term': ['tfa_2022'],
13578//           'page_url': ['tfa_2007'],
13579//         }
13580//       } else {
13581//         // column 1: find a provider and Stay in Touch, col2: Clinician Form (non-presc), col3: Office Staff, col4: Contact Us
13582//         var table = {
13583//           'page_url': ['tfa_199', 'tfa_205', 'tfa_2006', 'tfa_199'],
13584//           'gclid': ['tfa_201', 'tfa_210', 'tfa_2016'],
13585//           'utm_medium': ['tfa_202', 'tfa_211', 'tfa_2017'],
13586//           'utm_source': ['tfa_203', 'tfa_212', 'tfa_2018'],
13587//           'utm_campaign': ['tfa_204', 'tfa_213', 'tfa_2019'],
13588//           'utm_content': ['tfa_205', 'tfa_214', 'tfa_2020'],
13589//           'utm_term': ['tfa_206', 'tfa_215', 'tfa_2021'],
13590//         }// consider using 'const'
13591//       }
13592//
13593// // var params = getAllParams(window.location.search.substring(1));
13594// // Update 1-26-2022 add page url to cookie and pass into hidden field tfa_2007 for all forms
13595//       var params = {
13596//         'utm_source': getParameterByName('utm_source'),
13597//         'utm_medium': getParameterByName('utm_medium'),
13598//         'utm_campaign': getParameterByName('utm_campaign'),
13599//         'page_url': url,
13600//         'utm_content': getParameterByName('utm_content'),
13601//         'utm_term': getParameterByName('utm_term'),
13602//         'gclid': getParameterByName('gclid')
13603//       };
13604//
13605//       for (var key in params) {
13606//         if (table.hasOwnProperty(key)) {
13607//           for (var id in table[key]) {
13608//             if (document.getElementById(table[key][id])) {
13609//               var element = document.getElementById(table[key][id]).setAttribute('value', params[key]);
13610//               // element.value = params[key]; Above method works in all cases.
13611//             }
13612//           }
13613//           //break; // include break if you only need to find first/one match
13614//         }
13615//
13616//       }
13617
13618    // similar to loop above but for forms fields with names - in TFA hide fields in groups to retain names/titles
13619    // let queryVars = {
13620    //   clientid: 'Google_Client_Id__c',
13621    //   gclid: 'GCLID',
13622    //   utm_medium: 'UTM Medium',
13623    //   utm_source: 'UTM Source',
13624    //   utm_campaign: 'UTM Campaign',
13625    //   utm_content: 'UTM Content',
13626    //   utm_term: 'UTM Term',
13627    // }
13628    // $.each(queryVars, function (key, val) {
13629    //   let param = getParameterByName(key);
13630    //   if (param) {
13631    //     $('input[title="' + val + '"]').val(decodeURIComponent(param));
13632    //   }
13633    // });
13634    // }
13635
13636
13637    $('.utm-passalong').each(function () {
13638      var pass_href = $(this).attr('href');
13639      if (pass_href.indexOf('?') === -1) {
13640        $(this).attr('href', pass_href + window.location.search);
13641      } else {
13642        $(this).attr('href', pass_href + window.location.search.replace('?', '&'));
13643      }
13644    });
13645
13646    $('.primary-nav [uk-tab] >li:not(.uk-tab-responsive, .uk-disabled)').hover(function () {
13647      __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.tab($(this).parent()).show($(this).index());
13648    });
13649
13650    __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.util.on(document, 'show', '#component-tab-left', function () {
13651      var tabNav = $('.uk-dropdown.uk-open > .uk-grid'),
13652        NewHeight = $('.uk-dropdown.uk-open .uk-switcher > .uk-active').outerHeight();
13653      $(tabNav).animate({height: NewHeight,}, 120);
13654    });
13655
13656// Promo Bar - Set Cookie when 'X' is clicked, and hide promo bar div
13657    var promoBar = $('#promo-bar.allow-cookie')
13658    if (promoBar.length) {
13659      if (__WEBPACK_IMPORTED_MODULE_1_js_cookie___default.a.get('promoBarCookie') === 'cookieSet') {
13660        promoBar.hide();
13661      } else {
13662        var navHeight = $('#site-header-2').height();
13663        var cookieEx = promoBar.data('length')
13664        promoBar.show();
13665        promoBar.find('span.close-promo').click(function () {
13666          __WEBPACK_IMPORTED_MODULE_1_js_cookie___default.a.set('promoBarCookie', 'cookieSet', {expires: cookieEx})
13667        })
13668      }
13669    }
13670// Bottom bannar  - Set Cookie when 'X' is clicked, and hide bottom banner
13671    var bottomBanner = $('.bottom-banner-on-page #bottom-banner')
13672    if (bottomBanner.length) {
13673      if (__WEBPACK_IMPORTED_MODULE_1_js_cookie___default.a.get('bottomBannerCookie') === 'cookieSet') {
13674        bottomBanner.hide();
13675      } else {
13676        var cookieEx$1 = bottomBanner.data('length')
13677        // console.log(cookieEx)
13678        bottomBanner.show();
13679        bottomBanner.find('a.close-bottom-banner').click(function () {
13680          __WEBPACK_IMPORTED_MODULE_1_js_cookie___default.a.set('bottomBannerCookie', 'cookieSet', {expires: cookieEx$1})
13681        })
13682      }
13683    }
13684
13685
13686    __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.util.on(document, 'show', '.uk-lightbox', function () {
13687      window.dataLayer = window.dataLayer || [];
13688      window.dataLayer.push({
13689        'event': 'modalOpened',
13690      });
13691    })
13692
13693// handle toggles/modals in the nav
13694
13695    $('li.uk-toggle-modal a').each(function () {
13696      $(this).attr('uk-toggle', 'target:[id*=modal]');
13697      $(this).removeAttr('uk-scroll');
13698    });
13699
13700    $('#offcanvas-nav-2 a[href^=#]').click(function () {
13701      __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.offcanvas('#offcanvas-nav-2').hide();
13702    });
13703
13704    $('.header-nav a[href^=#], #offcanvas-nav-2 a[href^=#]').each(function () {
13705      $(this).attr('uk-scroll', 'offset: 70');
13706    });
13707
13708
13709    if (window.location.href.indexOf('qq_ref') > -1) {
13710      var webFormField = $('input[title="Web_Form_URL__c"]'),
13711        qq_ref = getParameterByName('qq_ref'),
13712        webFormURL = webFormField.val();
13713
13714      if (window.location.href.indexOf('qq_add') > -1) {
13715        var qq_add = getParameterByName('qq_add');
13716        webFormField.val(webFormURL.replace('/order-kit/', '/results/' + qq_ref + '/').replace('qq_ref=' + qq_ref + '&', '').replace('?', 'access-team/?').replace('&qq_add=' + qq_add, ''));
13717      } else {
13718        webFormField.val(webFormURL.replace('/order-kit/', '/results/' + qq_ref + '/').replace('qq_ref=' + qq_ref + '&', ''));
13719      }
13720    }
13721
13722
13723    if (window.location.href.indexOf('tfa_next') > -1 && window.location.href.indexOf('last_success') > -1) {
13724      $('html:not(.uk-modal-page), body:not([style="overflow-y: 
13724scroll;"])').animate({
13725        scrollTop: $('#wFormThankYouPage').offset().top - $('header.header').outerHeight(),
13726      }, 800);
13727    }
13728
13729
13730    if ($('[uk-modal]').length) {
13731      if (window.location.hash && $(window.location.hash + '[uk-modal]').length) {
13732        __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.modal($(window.location.hash + '[uk-modal]')).show();
13733      } else {
13734        $('[uk-modal]').each(function () {
13735          if ($(this).find('.wFormThankYou').length) {
13736            __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.modal($(this)).show();
13737          }
13738        });
13739      }
13740    }
13741
13742
13743//  GTM
13744    function getParameterByName(name, url) {
13745      if ( url === void 0 ) url = window.location.href;
13746
13747      name = name.replace(/[\[\]]/g, '\\$&');
13748      var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
13749        results = regex.exec(url);
13750      if (!results) {
13751        return '(none)';
13752      }
13753      if (!results[2]) {
13754        return '(none)';
13755      }
13756      return decodeURIComponent(results[2].replace(/\+/g, ' '));
13757    }
13758
13759// Global Nav (2) - Animation
13760    $(document).ready(function () {
13761
13762      var border = $('header[id*="site-header"] .primary-nav-2 ul.main-nav div.nav-active-border'),
13763        navItem = $('header[id*="site-header"] .primary-nav-2 ul.main-nav > li')
13764
13765      navItem.on('mouseenter', function () {
13766        activeBorder($(this).find('> a'))
13767      })
13768
13769      navItem.on('mouseleave', function () {
13770        border.css('opacity', '0')
13771      })
13772
13773
13774      function activeBorder(item) {
13775        var leftPos = item.parent().position().left,
13776          topPos = item.parent().position().top,
13777          widthPos = item.parent().width(),
13778          heightPos = item.innerHeight()
13779
13780        border.css({
13781          'left': leftPos,
13782          'width': widthPos,
13783          'top': topPos + heightPos - 2,
13784          'height': '8px',
13785          'opacity': '1',
13786        })
13787      }
13788
13789      $(window).on('resize', function () {
13790        if ($('header[id*="site-header"] .primary-nav-2 ul.main-nav > li > a[aria-expanded=true]').length > 0) {
13791          activeBorder($('header[id*="site-header"] .primary-nav-2 ul.main-nav > li > a[aria-expanded=true]'))
13792        }
13793      })
13794      // activeBorder($('header[id*="site-header"] .primary-nav-2 ul.main-nav > li.current-menu-ancestor > a'))
13795
13796    })
13797
13798
13799    // set tab on page load
13800
13801    if (window.location.href.indexOf('tab') > -1) {
13802      var tabText = getParameterByName('tab').toLowerCase();
13803      var $links = $('.tab-nav li');
13804
13805      $links.filter(function () {
13806        return $(this).find('a').text().toLowerCase().includes(tabText);
13807      }).each(function () {
13808        var index = $(this).index();
13809        __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.switcher('[uk-switcher]').show(index);
13810      });
13811    }
13812
13813    // placeholders for cost calculator
13814    if ($('div#cost-calc-wrapper .infield').length > 0) {
13815      $('div#cost-calc-wrapper .infield').each(function () {
13816        var label = $(this).find('label');
13817        var text = label.text();
13818        var input = $(this).find('input');
13819        var select = $(this).find('select');
13820        label.hide();
13821        // if input type does not equal 'checkbox' or 'radio'
13822        if (input.length > 0 && input.attr('type') !== 'checkbox' && input.attr('type') !== 'radio') {
13823          /* if label has class reqMark addpend */
13824          input.attr('placeholder', text);
13825        }
13826        if (select.length > 0) {
13827          select.find('option:empty').text(text).val('');
13828        }
13829      });
13830    }
13831
13832
13833  },
13834  finalize: function () {
13835
13836
13837    $(document).ready(function () {
13838
13839      if ($('#patient-faq').length > 0) {
13840        $('select[title="How Can We Help You?"]').on('change', function () {
13841          var selectedOptionText = $(this).find('option:selected').text();
13842          var targetText = 'get a copy of my report';
13843          if (selectedOptionText.includes(targetText)) {
13844            __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.modal('#patient-faq').show();
13845          }
13846        });
13847      }
13848    });
13849
13850    window.onload = function () {
13851      //  if #string on load, scroll to section
13852      if ($(window.location.hash).length > 0) {
13853        var navHeight = $('.header-nav').outerHeight(),
13854          promoHeight = $('#promo-bar').is(':visible') ? $('#promo-bar').outerHeight() : 0,
13855          adminBarHeight = $('#wpadminbar').length ? $('#wpadminbar').outerHeight() : 0,
13856          totalHeight = navHeight + promoHeight + adminBarHeight;
13857        $('html,body').animate({
13858          scrollTop: $(window.location.hash).offset().top - totalHeight,
13859        }, 900, 'swing');
13860      }
13861    }
13862
13863
13864    $(document).ready(function () {
13865
13866
13867      if ($('#inquire').length) {
13868        var hasShown = false;
13869        var debounceTimer;
13870
13871        $(window).on('scroll', function () {
13872          clearTimeout(debounceTimer);
13873          debounceTimer = setTimeout(function () {
13874            var scrollTop = $(window).scrollTop();
13875            // multiply height to create scroll offset
13876            var viewportHeight = $(window).height() * 1.5;
13877
13878            if (!hasShown && scrollTop >= viewportHeight) {
13879              $('#inquire').fadeIn();
13880              hasShown = true;
13881            }
13882          }, 100); // debounce delay in milliseconds
13883        });
13884      }
13885
13886
13887      if (window.location.hash.indexOf('managepreferences') > -1) {
13888        function checkOneTrust() {
13889          if (typeof OneTrust !== 'undefined') {
13890            ToggleOneTrust();
13891          } else {
13892            setTimeout(checkOneTrust, 100);
13893          }
13894        }
13895
13896        function ToggleOneTrust() {
13897          // Your function logic here
13898          $('a[onclick="OneTrust.ToggleInfoDisplay()"]').trigger('click');
13899        }
13900
13901// Start the check
13902        checkOneTrust();
13903      }
13904
13905      // Function to check the visibility of the element and get its height
13906//       function bannerHeight() {
13907//         const banner = $('#onetrust-banner-sdk');
13908//         if (banner) {
13909//           const height = banner.outerHeight();
13910//
13911//           if (typeof height !== 'undefined') {
13912//
13913//             if (banner.is(':visible')) {
13914//               // console.log('Banner is visible, height:', height);
13915//               $('.livechat-row').css('bottom', height + 'px');
13916//
13917//               if ($('#inquire').length > 0) {
13918//                 $('#inquire').css('bottom', height + 'px');
13919//               }
13920//             } else {
13921//               // console.log('Banner is not visible, height:', height);
13922//               $('.livechat-row').css('bottom', '0');
13923//
13924//               if ($('#inquire').length > 0) {
13925//                 $('#inquire').css('bottom', '0');
13926//               }
13927//             }
13928//
13929//           } else {
13930//             setTimeout(bannerHeight, 100);
13931//           }
13932//         }
13933//       }
13934//
13935// // Initial check and set up the observer
13936//
13937//       function OneTrustBannerCheck() {
13938//
13939//         if (typeof OneTrust !== 'undefined') {
13940//           bannerHeight();
13941//
13942//           OneTrust.OnConsentChanged(function () {
13943//
13944//             // console.log('Consent Updated');
13945//             $('.livechat-row').css('bottom', '0');
13946//             if ($('#inquire').length > 0) {
13947//               $('#inquire').css('bottom', '0');
13948//             }
13949//
13950//           });
13951//         } else {
13952//           setTimeout(OneTrustBannerCheck, 100);
13953//         }
13954//       }
13955//
13956//       OneTrustBannerCheck();
13957
13958
13959      function debounce(func, wait) {
13960        var timeout;
13961        return function () {
13962          var this$1 = this;
13963          var args = [], len = arguments.length;
13964          while ( len-- ) args[ len ] = arguments[ len ];
13965
13966          clearTimeout(timeout);
13967          timeout = setTimeout(function () { return func.apply(this$1, args); }, wait);
13968        };
13969      }
13970
13971      // $(window).on('resize', debounce(function () {
13972      //   // bannerHeight();
13973      // }, 200));
13974
13975
13976      var urlParams = new URLSearchParams(window.location.search);
13977
13978      // Check if the 'opt' parameter is set to 'test'
13979      if (urlParams.get('opt') === 'test') {
13980        // Create the style element
13981        var style = $('<style>.opt-hide { display: none; } .opt-show { display: block !important; }</style>');
13982
13983        // Append the style element to the head
13984        $('head').append(style);
13985      }
13986
13987
13988    });
13989// JavaScript to be fired on all pages, after page specific JS is fired
13990  },
13991});
13992
13993
13994/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
13995
13996/***/ }),
13997/* 10 */
13998/***/ (function(module, __webpack_exports__, __webpack_require__) {
13999
14000"use strict";
14001/* harmony default export */ __webpack_exports__["a"] = ({
14002  init: function init() {
14003    // JavaScript to be fired on the home page
14004
14005  },
14006  finalize: function finalize() {
14007    // JavaScript to be fired on the home page, after the init JS
14008  },
14009});
14010
14011
14012/***/ }),
14013/* 11 */
14014/***/ (function(module, __webpack_exports__, __webpack_require__) {
14015
14016"use strict";
14017/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit__ = __webpack_require__(1);
14018/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_uikit__);
14019
14020
14021/* harmony default export */ __webpack_exports__["a"] = ({
14022  init: function init() {
14023    // JavaScript to be fired on pages that use the alternating section layout
14024    $(document).ready(function () {
14025
14026      var page = 1;
14027      var query = '';
14028      var postsPerPage = $('#posts-per-page').val();
14029      var category = '89,90';
14030
14031      $('#search-form').on('submit', function (e) {
14032        e.preventDefault();
14033        query = $('#search-input').val();
14034        page = 1;
14035        loadPosts();
14036        $('#reset-query').removeAttr("disabled");
14037      });
14038
14039      $('#search-input').on('keyup', debounce(function(e) {
14040        e.preventDefault();
14041        query = $('#search-input').val();
14042        page = 1;
14043        loadPosts();
14044        $('#reset-query').removeAttr("disabled");
14045      }, 300));
14046
14047
14048      $('#reset-query').on('click', function (e) {
14049        e.preventDefault();
14050        query = '';
14051        page = 1;
14052        category = '89,90';
14053        $('#search-input').val('');
14054        $('#category-filter').val('89,90');
14055        loadPosts();
14056        $(this).attr('disabled','disabled');
14057      });
14058
14059      $('#posts-per-page').on('change', function () {
14060        postsPerPage = $(this).val();
14061        page = 1;
14062        loadPosts();
14063      });
14064
14065      $('#category-filter').on('change', function () {
14066        category = $(this).val();
14067        page = 1;
14068        loadPosts();
14069      });
14070
14071
14072      $('#load-more').on('click', function () {
14073        page++;
14074        loadPosts();
14075      });
14076
14077
14078      function debounce(func, wait) {
14079        var timeout;
14080        return function() {
14081          var this$1 = this;
14082          var args = [], len = arguments.length;
14083          while ( len-- ) args[ len ] = arguments[ len ];
14084
14085          clearTimeout(timeout);
14086          timeout = setTimeout(function () { return func.apply(this$1, args); }, wait);
14087        };
14088      }
14089
14090      function loadPosts() {
14091        $('#main-query').css('opacity', '.5');
14092        $('#load-more').attr('disabled', 'disabled');
14093        $.ajax({
14094          url: sageScriptVars.ajax_url,
14095          type: 'POST',
14096          data: {
14097            action: 'ajax_search',
14098            query: query,
14099            page: page,
14100            posts_per_page: postsPerPage,
14101            category: category
14102          },
14103          success: function (response) {
14104            if (response.success === false) {
14105
14106              if (page === 1) {
14107                $('#results').html(response);
14108                $('#load-more').removeAttr('disabled');
14109              } else {
14110                $('#results').append(response);
14111                $('#load-more').removeAttr('disabled');
14112              }
14113
14114              $('#load-more').hide();
14115
14116            } else {
14117              if (page === 1) {
14118                $('#results').html(response);
14119                $('#load-more').removeAttr('disabled');
14120              } else {
14121                $('#results').append(response);
14122                $('#load-more').removeAttr('disabled');
14123              }
14124            }
14125
14126            $('#main-query').css('opacity', '1');
14127          }
14128        });
14129      }
14130
14131
14132    });
14133  },
14134  finalize: function finalize() {
14135    // JavaScript to be fired on pages that use the alternating section layout, after the init JS
14136  },
14137});
14138
14139/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14140
14141/***/ }),
14142/* 12 */
14143/***/ (function(module, __webpack_exports__, __webpack_require__) {
14144
14145"use strict";
14146/* WEBPACK VAR INJECTION */(function($) {
14147/* harmony default export */ __webpack_exports__["a"] = ({
14148  init: function init() {
14149    // JavaScript to be fired on pages that use the alternating section layout
14150    $(document).ready(function () {
14151      // console.log('here')
14152      var border = $('#site-header-2 .primary-nav-2 ul.main-nav div.active-border'),
14153       navItem = $('#site-header-2 .primary-nav-2 ul.main-nav > li > a')
14154
14155      navItem.on('mouseover', function() {
14156        activeBorder($(this))
14157        // console.log($(this))
14158      })
14159
14160      function activeBorder(item) {
14161        var leftPos = item.parent().position().left,
14162          topPos = item.parent().position().top,
14163          widthPos = item.parent().width(),
14164          heightPos = item.innerHeight()
14165
14166        border.css({
14167          'left': leftPos,
14168          'width': widthPos,
14169          'top': topPos+heightPos,
14170        })
14171      }
14172      $(window).on('resize', function () {
14173        activeBorder($('#site-header-2 .primary-nav-2 ul.main-nav > li > a[aria-expanded=true]'))
14174      })
14175      activeBorder($('#site-header-2 .primary-nav-2 ul.main-nav > li > a[aria-expanded=true]'))
14176    })
14177  },
14178  finalize: function finalize() {
14179    // JavaScript to be fired on pages that use the alternating section layout, after the init JS
14180  },
14181});
14182
14183/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14184
14185/***/ }),
14186/* 13 */
14187/***/ (function(module, __webpack_exports__, __webpack_require__) {
14188
14189"use strict";
14190/* WEBPACK VAR INJECTION */(function($) {
14191/* harmony default export */ __webpack_exports__["a"] = ({
14192  init: function init() {
14193    // JavaScript to be fired on pages that use the alternating section layout
14194    $(document).ready(function () {
14195        $('.has-active-border').each(function (){
14196
14197
14198          var border = $(this).find('div.nav-active-border'),
14199            tabItem = $(this).find('li a')
14200
14201          tabItem.click( function() {
14202            activeBorder($(this))
14203          })
14204
14205          function activeBorder(item) {
14206
14207              if (item.parent().is(':visible')) {
14208                var leftPos = item.parent().position().left ,
14209                  // topPos = item.parent().position().top,
14210                  widthPos = item.parent().width() + 10
14211                // heightPos = item.innerHeight()
14212                // console.log(widthPos)
14213
14214                border.css({
14215                  'left': leftPos,
14216                  'width': widthPos,
14217                  // 'top': topPos+heightPos,
14218                })
14219              }
14220          }
14221          $(window).on('resize', function () {
14222            activeBorder($(this).find('li.uk-active a'))
14223          })
14224
14225        // setTimeout(function() {
14226          activeBorder($(this).find('li.uk-active a'));
14227        // }, 1000)
14228        });
14229
14230    })
14231  },
14232  finalize: function finalize() {
14233    // JavaScript to be fired on pages that use the alternating section layout, after the init JS
14234  },
14235});
14236
14237/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14238
14239/***/ }),
14240/* 14 */
14241/***/ (function(module, __webpack_exports__, __webpack_require__) {
14242
14243"use strict";
14244/* WEBPACK VAR INJECTION */(function($, jQuery) {/* harmony default export */ __webpack_exports__["a"] = ({
14245  init: function init() {
14246
14247    // JavaScript to be fired on init
14248  },
14249
14250  finalize: function finalize() {
14251    // JavaScript to be fired after the init JS
14252    $(document).ready(function () {
14253
14254
14255      function callbackLoop(mutationList) {
14256        mutationList.forEach(function (mutation, currentPage) {
14257          if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
14258            if (mutation.target.classList.contains('wfCurrentPage')) {
14259              currentPage = $(mutation.target).attr('id');
14260              $('[data-track=' + currentPage + ']').addClass('active').nextAll().removeClass('active');
14261            }
14262          }
14263        });
14264      }
14265
14266
14267      var pages = '[id*="wfPgIndex"]:not(.wfPagingButtons)';
14268      if ($(pages).length > 0) {
14269        var formTracker = $('<ul>', {class: 'form-tracker'}),
14270          currentPage = $('[id*="wfPgIndex"].wfCurrentPage').attr('id');
14271        $(pages).each(function (index) {
14272          var step = index + 1,
14273            active = (step === 1) ? 'active' : '';
14274          formTracker.append('<li data-track="wfPgIndex-' + step + '" class="' + active + '"><span>' + (step) + '</span><img class="icon" src="/wp-content/uploads/2024/08/checkmark.svg" uk-svg></li>');
14275
14276          var optionsLoop = {
14277            attributes: true,
14278          }
14279          var observerLoop = new MutationObserver(callbackLoop);
14280          observerLoop.observe($(this)[0], optionsLoop);
14281        });
14282
14283
14284        // scroll to top and animate pagination buttons
14285        var pageButtons = '.wfPagingButtons input';
14286        $('.wForm').on('click', pageButtons, function () {
14287          var scrollTop = $(this).closest('.wForm').offset().top - $('.header-nav').outerHeight();
14288          $('html, body').scrollTop(scrollTop);
14289        });
14290        // Select the target node
14291        var targetNode = document.body;
14292        // Options for the observer (which mutations to observe)
14293        var config = {childList: true, subtree: true};
14294        // Callback function to execute when mutations are observed
14295        var callbackWrap = function (mutationList, observer) {
14296          mutationList.forEach(function (mutation) {
14297            if (mutation.type === 'childList') {
14298              // Check if the new element with id 'pageButtons' is added
14299              if ($(pageButtons).length) {
14300                $(pageButtons).each(function () {
14301                  var wrapClass = 'chevron-wrap';
14302                  if ($(this).hasClass('wfPagePreviousButton')) {
14303                    wrapClass += ' next';
14304                  }
14305                  if (!$(this).parent().hasClass('chevron-wrap')) {
14306                    $(this).wrap('<span class="' + wrapClass + '"></span>');
14307                  }
14308                });
14309                // You can add your code here to handle the new element
14310              }
14311            }
14312          });
14313        };
14314
14315        // Create an observer instance linked to the callback function
14316        var observer = new MutationObserver(callbackWrap);
14317
14318        // Start observing the target node for configured mutations
14319        observer.observe(targetNode, config);
14320
14321
14322        $('.wForm').prepend(formTracker);
14323
14324      }
14325
14326      $('.wForm input[type=submit]').each(function () {
14327        $(this).wrap('<span class="chevron-wrap submit"></span>');
14328      });
14329
14330    });
14331
14332
14333    // take the next step js
14334    jQuery(document).ready(function () {
14335      // take the next step form ID
14336      if($('[id="4872920-WRPR"]').length > 0) {
14337
14338        // console.log('ttns script started');
14339        window._mfq = window._mfq || [];
14340        window._mfq.push(['setVariable', 'form', 'Multipart Multistep Form']);
14341        window._uxa = window._uxa || [];
14342
14343        jQuery('#submit_button').on('click', function () {
14344          if (jQuery('#tfa_4').val() == '') {
14345            document.getElementById('tfa_4').focus();
14346          }
14347        });
14348
14349        var currentStep = 0;
14350        var formContainer = document.getElementById('4872920');
14351        var form = document.forms[1];
14352
14353
14354        var btn1 = document.querySelector('#wfPgIndex-1');
14355        var btn2 = document.querySelector('#wfPgIndex-2');
14356        var btn3 = document.querySelector('#wfPgIndex-3');
14357        var options = {
14358          attributes: true
14359        }
14360        var page1 = false;
14361        var page2 = false;
14362        var page3 = false;
14363
14364        function callback1(mutationList, observer1) {
14365          mutationList.forEach(function (mutation) {
14366            if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
14367              var className = jQuery('#wfPgIndex-1').attr('class');
14368              if (className = 'wfCurrentPage' && !page1) {
14369                console.log('on Page 1');
14370                page1 = true;
14371                page2 = false;
14372                page3 = false;
14373                /*window._uxa.push(['setQuery','?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14374                window._uxa.push(['trackPageview', window.location.pathname+window.location.hash.replace('#','?__') + '?cs-lead-form-step=step0']);*/
14375              }
14376            }
14377          })
14378        }
14379
14380        function callback2(mutationList, observer2) {
14381          mutationList.forEach(function (mutation) {
14382            if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
14383              var className = jQuery('#wfPgIndex-2').attr('class');
14384              if (className = 'wfCurrentPage' && !page2) {
14385                console.log('on Page 2');
14386                page2 = true;
14387                page1 = false;
14388                page3 = false;
14389                window._uxa.push(['setQuery', '?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14390                window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-lead-form-step=step1']);
14391              }
14392            }
14393          })
14394        }
14395
14396        function callback3(mutationList, observer3) {
14397          mutationList.forEach(function (mutation) {
14398            if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
14399              var className = jQuery('#wfPgIndex-3').attr('class');
14400              if (className = 'wfCurrentPage' && !page3) {
14401                console.log('on Page 3');
14402                page3 = true;
14403                page1 = false;
14404                page2 = false;
14405                window._uxa.push(['setQuery', '?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14406                window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-lead-form-step=step2']);
14407              }
14408            }
14409          })
14410        }
14411
14412        var observer1 = new MutationObserver(callback1);
14413        observer1.observe(btn1, options);
14414        var observer2 = new MutationObserver(callback2);
14415        observer2.observe(btn2, options);
14416        var observer3 = new MutationObserver(callback3);
14417        observer3.observe(btn3, options);
14418
14419        /* jQuery('#tfa_1876').on('change', function() {
14420             console.log('clinician info? changed');
14421             window._uxa.push(['setQuery','?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14422                     window._uxa.push(['trackPageview', window.location.pathname+window.location.hash.replace('#','?__') + '?cs-lead-form-step=step1']);
14423
14424         });
14425
14426         jQuery('#tfa_1893').on('change', function() {
14427             console.log('help you menu changed');
14428        window._uxa.push(['setQuery','?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14429                     window._uxa.push(['trackPageview', window.location.pathname+window.location.hash.replace('#','?__') + '?cs-lead-form-step=step2']);
14430         });*/
14431
14432        jQuery('#tfa_4').on('change', function () {
14433          console.log('changed select menu');
14434          var field = jQuery(this).val()
14435          if (field == 'tfa_5') {
14436            currentStep = 0
14437            window._uxa.push(['setQuery', '?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14438            window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-lead-form-step=step0-patient']);
14439            console.log('first option selected');
14440          }
14441
14442          if (field == 'tfa_6') {
14443            currentStep = 0
14444            window._uxa.push(['setQuery', '?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14445            window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-lead-form-step=step0-caregiver']);
14446          }
14447
14448          if (field == 'tfa_7') {
14449            currentStep = 0
14450            window._uxa.push(['setQuery', '?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14451            window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-lead-form-step=step0-prescribing']);
14452          }
14453
14454          if (field == 'tfa_8') {
14455            currentStep = 0
14456            window._uxa.push(['setQuery', '?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14457            window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-lead-form-step=step0-office-staff']);
14458          }
14459
14460          if (field == 'tfa_9') {
14461            currentStep = 0
14462            window._uxa.push(['setQuery', '?tfa_1=CS_ANONYMIZED_FIRST_NAME&tfa_2=CS_ANONYMIZED_LAST_NAME&tfa_3=CS_ANONYMIZED_EMAIL&tfa_4=CS_ANONYMIZED_ZIP&tfa_192=CS_ANONYMIZED_PHONE&tfa_193=CS_ANONYMIZED_BIRTHDAY']);
14463            window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-lead-form-step=step0-non-prescribing']);
14464          }
14465        });
14466
14467
14468      }
14469
14470    });
14471  },
14472});
14473
14474/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0), __webpack_require__(0)))
14475
14476/***/ }),
14477/* 15 */
14478/***/ (function(module, __webpack_exports__, __webpack_require__) {
14479
14480"use strict";
14481/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit__ = __webpack_require__(1);
14482/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_uikit__);
14483
14484
14485/* harmony default export */ __webpack_exports__["a"] = ({
14486  init: function init() {
14487
14488  },
14489  finalize: function finalize() {
14490    // JavaScript to be fired on pages that use the alternating section layout, after the init JS
14491
14492    function debounce(func, wait) {
14493      var timeout;
14494      return function () {
14495        var this$1 = this;
14496        var args = [], len = arguments.length;
14497        while ( len-- ) args[ len ] = arguments[ len ];
14498
14499        clearTimeout(timeout);
14500        timeout = setTimeout(function () { return func.apply(this$1, args); }, wait);
14501      };
14502    }
14503
14504    // JavaScript to be fired on pages that use the alternating section layout
14505    $(document).ready(function () {
14506
14507
14508      function activeTracker() {
14509        $('.tracker-track').each(function () {
14510          var item = $(this).find('li.uk-active');
14511          var track = $(this);
14512          // let itemLeft = item.offset().left;
14513          if (item.length > 0) {
14514            var itemOffset = $(item).position().left + 16;
14515            if (track.length > 0 && itemOffset) {
14516              // let trackLeft = track.offset().left;
14517              track.animate({
14518                scrollLeft: itemOffset
14519              }, 200);
14520            }
14521          }
14522        });
14523      }
14524
14525      var slideTimeout;
14526      __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.util.on(document, 'itemshown', '.uk-slider, .uk-switcher', function (e, s) {
14527
14528        clearTimeout(slideTimeout);
14529        slideTimeout = setTimeout(function () {
14530          debounce(activeTracker(), 200);
14531        }, 500); // Adjust the delay as needed to match the slide transition duration
14532
14533      });
14534
14535      __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.util.on(document, 'beforeitemshow', '.uk-slider, .uk-switcher', function (e, s) {
14536        var currentSlideIndex = s.index;
14537        var slideIndex = $('.slide-index');
14538        if (slideIndex.length > 0) {
14539          slideIndex.each(function () {
14540            $(this).text(currentSlideIndex + 1);
14541          });
14542        }
14543      });
14544
14545
14546      $('.has-active-border').each(function () {
14547
14548
14549        var border = $(this).find('div.active-border'),
14550          tabItem = $(this).find('li a')
14551
14552        tabItem.click(function () {
14553          activeBorder($(this))
14554        })
14555
14556        function activeBorder(item) {
14557
14558          if (item.parent().is(':visible')) {
14559            var leftPos = item.parent().position().left,
14560              // topPos = item.parent().position().top,
14561              widthPos = item.width()
14562            // heightPos = item.innerHeight()
14563            // console.log(widthPos)
14564
14565            border.css({
14566              'left': leftPos,
14567              'width': widthPos,
14568              // 'top': topPos+heightPos,
14569            })
14570          }
14571
14572        }
14573
14574        $(window).on('resize', debounce(function (e) {
14575          activeBorder($(this).find('li.uk-active a'))
14576        }, 200));
14577
14578        // setTimeout(function() {
14579        activeBorder($(this).find('li.uk-active a'));
14580        // }, 1000)
14581
14582
14583        __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.util.on(document, 'itemshow', '.uk-slider, .uk-switcher', debounce(function (e) {
14584
14585          $('.has-active-border').each(function () {
14586            activeBorder($(this).find('li.uk-active a'));
14587          });
14588        }, 200));
14589      });
14590
14591    });
14592  },
14593});
14594
14595/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14596
14597/***/ }),
14598/* 16 */
14599/***/ (function(module, __webpack_exports__, __webpack_require__) {
14600
14601"use strict";
14602/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit__ = __webpack_require__(1);
14603/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_uikit__);
14604
14605
14606/* harmony default export */ __webpack_exports__["a"] = ({
14607  init: function init() {
14608
14609    // JavaScript to be fired on init
14610    $('.medication-title a').text($('.medication-title a').text().replace('(','').replace(')',''));
14611    $('.medication-title a').addClass('uk-text-lead uk-text-primary').insertAfter('.layout-hero_page .title');
14612    // Replace tabs with spaces in the code blocks
14613    $('.tab-wrapper').each(function () {
14614      $(this).prepend('<ul class="medications-switcher-nav uk-visible@m has-active-border uk-subnav tab-nav" u
14614k-switcher="connect: .medications-switcher"></ul>');
14615      $(this).prepend('<div class="mobile-select uk-hidden@m"><ul class="medications-mobile-nav select"></ul></div>');
14616      $(this).find('.tab-title').each(function (index) {
14617        // grab title
14618        if(index === 0) {
14619        $(this).closest('.tab-wrapper').find('.medications-switcher-nav').append('<li class="uk-active"><a aria-expanded="true" href="#">' + $(this).text() + '</a></li>');
14620        $(this).closest('.tab-wrapper').find('.medications-mobile-nav').append('<li class="uk-active"><a aria-expanded="true" href="#" data-index="'+index+'">' + $(this).text() + '</a></li>');
14621        } else {
14622        $(this).closest('.tab-wrapper').find('.medications-switcher-nav').append('<li><a href="#">' + $(this).text() + '</a></li>');
14623        $(this).closest('.tab-wrapper').find('.medications-mobile-nav').append('<li><a href="#" data-index="'+index+'">' + $(this).text() + '</a></li>');
14624        }
14625        $(this).remove();
14626      });
14627        $('.medications-switcher-nav').append('<div class="active-border"></div>');
14628    });
14629
14630    // Select the specific element and its sibling <p> tags
14631    var elements = $('.what-next').add($('.what-next').siblings('p'));
14632    // Wrap the selected elements in a <div>
14633    elements.wrapAll('<div class="next-wrapper uk-background-muted uk-border-rounded uk-padding"></div>');
14634
14635
14636    // Select the specific element and its sibling <p> tags
14637    var nextLinks = $('.what-next ~ p a');
14638    // Wrap the selected elements in a <div>
14639    nextLinks.each(function () {
14640      $(this).addClass('uk-button uk-button-default uk-margin-remove');
14641    });
14642
14643
14644    // Select the specific element and its sibling <p> tags
14645    var form = $('.wFormContainer').parent().add($('.wFormContainer').parent().next('div'));
14646    // Wrap the selected elements in a <div>
14647    form.wrapAll('<div class="next-form-wrap uk-width-xlarge fa-placeholders uk-background-muted uk-border-rounded uk-padding"></div>');
14648
14649
14650    $(".select").click(function() {
14651      var is_open = $(this).hasClass("open");
14652      if (is_open) {
14653        $(this).removeClass("open");
14654      } else {
14655        $(this).addClass("open");
14656      }
14657    });
14658
14659    $(".select li a").click(function(e) {
14660      e.preventDefault();
14661      var selected_value = $(this).html();
14662      var first_li = $(".select li:first-child a").html();
14663
14664      $(".select li:first-child a").html(selected_value);
14665      $(this).html(first_li);
14666
14667      var index = $(this).data("index");
14668      __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.switcher('.medications-switcher').show(index);
14669      // $('html,body').animate({
14670      //   scrollTop: $('.tab-wrapper').offset().top - 70,
14671      // }, 150);
14672    });
14673
14674    $(document).mouseup(function(event) {
14675
14676      var target = event.target;
14677      var select = $(".select");
14678
14679      if (!select.is(target) && select.has(target).length === 0) {
14680        select.removeClass("open");
14681      }
14682
14683    });
14684
14685
14686
14687
14688  },
14689
14690  finalize: function finalize() {
14691    // JavaScript to be fired after the init JS
14692
14693    // JavaScript to be fired on pages that use the alternating section layout
14694    $(document).ready(function () {
14695      // console.log('here')
14696      var border = $('.medications-switcher-nav.has-active-border div.active-border'),
14697        navItem = $('.medications-switcher-nav.has-active-border > li > a');
14698
14699      navItem.on('mouseover', function() {
14700        activeBorder($(this))
14701        // console.log($(this))
14702      })
14703
14704      function activeBorder(item) {
14705        var leftPos = item.parent().position().left,
14706          topPos = item.parent().position().top,
14707          widthPos = item.parent().width(),
14708          heightPos = item.innerHeight()
14709
14710        border.css({
14711          'left': leftPos,
14712          'width': widthPos,
14713          'top': topPos+heightPos,
14714        })
14715      }
14716      $(window).on('resize', function () {
14717        activeBorder($('.medications-switcher-nav.has-active-border > li > a[aria-expanded=true]'))
14718      })
14719      activeBorder($('.medications-switcher-nav.has-active-border > li > a[aria-expanded=true]'))
14720    })
14721
14722  },
14723});
14724
14725/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14726
14727/***/ }),
14728/* 17 */
14729/***/ (function(module, __webpack_exports__, __webpack_require__) {
14730
14731"use strict";
14732/* harmony default export */ __webpack_exports__["a"] = ({
14733  init: function init() {
14734
14735    // $(document).ready(function () {
14736    //   if ($('div#cost-calc-wrapper .infield').length > 0) {
14737    //     $('div#cost-calc-wrapper .infield').each(function () {
14738    //       var label = $(this).find('label');
14739    //       var text = label.text();
14740    //       var input = $(this).find('input');
14741    //       var select = $(this).find('select');
14742    //       label.hide();
14743    //       // if input type does not equal 'checkbox' or 'radio'
14744    //       if (input.length > 0 && input.attr('type') !== 'checkbox' && input.attr('type') !== 'radio') {
14745    //         /* if label has class reqMark addpend */
14746    //         input.attr('placeholder', text);
14747    //       }
14748    //       if (select.length > 0) {
14749    //         select.find('option:empty').text(text).val('');
14750    //       }
14751    //     });
14752    //   }
14753    //
14754    //
14755    //   // let text= 'We promise that if your cost could be more than $330, we’ll contact you before we process your test to discuss our financial assistance program and interest-free payment plan and give you the chance to cancel.';
14756    //   // $('#cost-calc-wrapper').append('<p class="calc-after-text">'+text+'</p>');
14757    //
14758    // });
14759    // JavaScript to be fired on the about us page
14760  },
14761});
14762
14763
14764/***/ }),
14765/* 18 */
14766/***/ (function(module, __webpack_exports__, __webpack_require__) {
14767
14768"use strict";
14769/* WEBPACK VAR INJECTION */(function($) {
14770/* harmony default export */ __webpack_exports__["a"] = ({
14771  init: function init() {
14772    // JavaScript to be fired on pages that use the alternating section layout
14773    $(document).ready(function () {
14774      var page = 1;
14775      $('#load-more').on('click', function(e) {
14776        $(this).attr('disabled', 'disabled');
14777
14778        var type = $(this).data('type');
14779        var excluded = $(this).data('excluded');
14780        e.preventDefault();
14781        page++;
14782        $.ajax({
14783          url: sageScriptVars.ajax_url,
14784          type: 'POST',
14785          data: {
14786            action: 'load_more_stories',
14787            type: type,
14788            page: page,
14789            excluded: excluded,
14790          },
14791          success: function(response) {
14792            if (response) {
14793              $('.story-list').append(response);
14794              $('#load-more').removeAttr('disabled');
14795            } else {
14796              $('#load-more').hide();
14797            }
14798          }
14799        });
14800      });
14801    });
14802  },
14803  finalize: function finalize() {
14804    // JavaScript to be fired on pages that use the alternating section layout, after the init JS
14805  },
14806});
14807
14808/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14809
14810/***/ }),
14811/* 19 */
14812/***/ (function(module, __webpack_exports__, __webpack_require__) {
14813
14814"use strict";
14815/* WEBPACK VAR INJECTION */(function($) {
14816/* harmony default export */ __webpack_exports__["a"] = ({
14817  init: function init() {
14818    // JavaScript to be fired on pages that use the alternating section layout
14819    $(document).ready(function () {
14820      var page = 1;
14821      $('#load-more').on('click', function(e) {
14822        $(this).attr('disabled', 'disabled');
14823
14824        var cat = $(this).data('cat');
14825        var per = $(this).data('per');
14826        e.preventDefault();
14827        page++;
14828        $.ajax({
14829          url: sageScriptVars.ajax_url,
14830          type: 'POST',
14831          data: {
14832            action: 'load_more_posts_cat',
14833            page: page,
14834            cat: cat,
14835            post_per_page: per,
14836          },
14837          success: function(response) {
14838            if (response) {
14839              $('.post-loop-container').append(response);
14840              $('#load-more').removeAttr('disabled');
14841            } else {
14842              $('#load-more').hide();
14843            }
14844          }
14845        });
14846      });
14847    });
14848  },
14849  finalize: function finalize() {
14850    // JavaScript to be fired on pages that use the alternating section layout, after the init JS
14851  },
14852});
14853
14854/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14855
14856/***/ }),
14857/* 20 */
14858/***/ (function(module, __webpack_exports__, __webpack_require__) {
14859
14860"use strict";
14861/* WEBPACK VAR INJECTION */(function(jQuery) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie__ = __webpack_require__(2);
14862/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_js_cookie__);
14863/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uikit__ = __webpack_require__(1);
14864/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_uikit__);
14865
14866
14867
14868
14869/* harmony default export */ __webpack_exports__["a"] = ({
14870  init: function init() {
14871    // JavaScript to be fired on init
14872      console.log('FIND A PROVIDER  - cookie: ' + __WEBPACK_IMPORTED_MODULE_0_js_cookie___default.a.get('genesight-find-a-provider'));
14873      /* CHECK FOR COOKIE, ONLY SET IF NO COOKIE and POP UP FORM, OTHERWISE, add ?bypassmodal=true to URL */
14874      //Cookies.remove('genesight-find-a-provider');  /* for testing */
14875      var queryString = window.location.search;
14876      console.log('queryString: ' + queryString);
14877      if (typeof __WEBPACK_IMPORTED_MODULE_0_js_cookie___default.a.get('genesight-find-a-provider') === 'undefined' && queryString.indexOf('bypassmodal') < 0) {
14878        console.log('undefined cookie');
14879        /* FORM PAGE APPEARS */
14880        /* REMOVED 2/22/2022 - Helium's GTM code now populates this field
14881          if (location.href.indexOf('?t') >= 0) {
14882          document.getElementById('tfa_199').value = location.href.substring(0, location.href.indexOf('?'));
14883        } else {
14884          document.getElementById('tfa_199').value = location.href.substring(0,254);
14885        }*/
14886        // jQuery('.takeover').css('display','block');
14887        // jQuery('body').css('position','fixed');
14888
14889        __WEBPACK_IMPORTED_MODULE_1_uikit___default.a.modal('#modal
14889-takeover').show();
14890        window._uxa = window._uxa || [];
14891        window._uxa.push(['trackPageview', window.location.pathname+window.location.hash.replace('#','?__')+'?cs-popin-find-a-provider']);
14892      } else {
14893        /* COOKIE SET - bypass form and show map */
14894        console.log('defined cookie');
14895        jQuery('.takeover').css('display','none');
14896        jQuery('body').css('position','static');
14897      }
14898      if (queryString.indexOf('bypassmodal') >= 0) {
14899        console.log('inside bypassmodal=true if');
14900        /* SET COOKIE, if not set - for 30 days */
14901        if (typeof __WEBPACK_IMPORTED_MODULE_0_js_cookie___default.a.get('genesight-find-a-provider') === 'undefined') {
14902          __WEBPACK_IMPORTED_MODULE_0_js_cookie___default.a.set('genesight-find-a-provider', '<?php echo time(); ?>', { expires: 30 });
14903        }
14904        /*history.pushState(null, null, 'https://genesightstg.wpengine.com/find-a-provider-test?t=<?php echo time(); ?>');
14905      window.addEventListener('popstate', function(event) {
14906        location.href='https://genesightstg.wpengine.com/find-a-provider-test?t=<?php echo time(); ?>';
14907      });*/
14908      }
14909  },
14910
14911  finalize: function finalize() {
14912    // JavaScript to be fired after the init JS
14913
14914  },
14915});
14916
14917/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14918
14919/***/ }),
14920/* 21 */
14921/***/ (function(module, __webpack_exports__, __webpack_require__) {
14922
14923"use strict";
14924/* WEBPACK VAR INJECTION */(function(jQuery) {/* harmony default export */ __webpack_exports__["a"] = ({
14925    init: function init() {
14926      jQuery('.layout-media_cards.blog-adjust .content-wrap').each(function() {
14927        var is_healthcare = false;
14928        var container = jQuery(this);
14929        container.find('.cat-indicator').each(function() {
14930            console.log(jQuery(this).text().trim());
14931            if(jQuery(this).text().trim() == 'HEALTHCARE PROVIDER') {
14932                is_healthcare = true;
14933                return false;
14934            }
14935        });
14936        if(is_healthcare) {
14937            container.addClass('cat-healthcare-provider');
14938        }
14939      });  
14940      jQuery('.layout-media_cards.download-adjust .content-wrap').each(function() {
14941        var downloadLink = jQuery(this).find('a:contains("Download")');
14942        if (downloadLink.length > 0) {
14943            var downloadUrl = downloadLink.attr('href');
14944            jQuery(this).find('img').wrap('<a href="' + downloadUrl + '"></a>');
14945        }
14946      });
14947    },
14948    finalize: function finalize() {
14949      // JavaScript to be fired on the home page, after the init JS
14950    },
14951  });
14952  
14953/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14954
14955/***/ }),
14956/* 22 */
14957/***/ (function(module, __webpack_exports__, __webpack_require__) {
14958
14959"use strict";
14960/* WEBPACK VAR INJECTION */(function(jQuery) {/* harmony default export */ __webpack_exports__["a"] = ({
14961    init: function init() {
14962      jQuery('.report-slider select').each(function() {
14963        jQuery(this).on('change', function() {
14964            var slideIndex = jQuery(this).val();
14965            jQuery(("[uk-slider-item=\"" + slideIndex + "\"]")).trigger('click');
14966        });
14967      });
14968    },
14969    finalize: function finalize() {
14970     
14971    },
14972  });
14973  
14974/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
14975
14976/***/ }),
14977/* 23 */
14978/***/ (function(module, exports) {
14979
14980// import UIkit from 'uikit';
14981//
14982// export default {
14983//   init() {
14984//     // JavaScript to be fired on the about us page
14985//   },
14986//   finalize() {
14987//     // JavaScript to be fired  after the init JS
14988//
14989//     window.onload = function() {
14990//       // Check if there's a query parameter in the URL
14991//       const queryString = window.location.search;
14992//     };
14993//
14994//     // window.onload = function() {
14995//     //   // Check if there's a hash in the URL
14996//     //   if (window.location.hash) {
14997//     //     let hash = window.location.hash.substring(1); // Remove the #
14998//     //     let target = $('#' + hash);
14999//     //
15000//     //     if (target.length) {
15001//     //       let accordionContainer = target.closest('[uk-accordion]');
15002//     //       let indexA = target.index();
15003//     //       let accordionInstance = UIkit.accordion(accordionContainer[0]);
15004//     //
15005//     //       UIkit.accordion(accordionContainer[0]).toggle(indexA, true);
15006//     //     }
15007//     //   }
15008//     // };
15009//   },
15010// };
15011
15012
15013/***/ }),
15014/* 24 */
15015/***/ (function(module, __webpack_exports__, __webpack_require__) {
15016
15017"use strict";
15018/* WEBPACK VAR INJECTION */(function($) {/* harmony default export */ __webpack_exports__["a"] = ({
15019  init: function init() {
15020    // JavaScript to be fired on the home page
15021
15022
15023
15024// Example usage:
15025    waitForInitialization(function () {
15026
15027      $('.wFormContainer').append("\n        <div id=\"loading-wrapper\"><div class=\"loading-indicator\">\n          <img src=\"/wp-content/uploads/2026/05/DM-8447-Loading-indicator.gif\" width=\"80\" alt=\"Loading...\">\n        </div></div>\n      ");
15028
15029      if (typeof wFORMS !== 'undefined') {
15030          if (wFORMS.behaviors && wFORMS.behaviors.validation) {
15031            var formValidation = false;
15032
15033            $('.wForm form').submit(function (event) {
15034              if (formValidation) {
15035                $('#loading-wrapper').show();
15036                $('.wForm').css('opacity', '0.25');
15037              }
15038            });
15039
15040            var originalOnPass = wFORMS.behaviors.validation.onPass;
15041            // on formassembly validation set formValidation to true
15042            wFORMS.behaviors.validation.onPass = function () {
15043              formValidation = true;
15044              originalOnPass.apply(this, arguments);
15045            };
15046
15047            var originalOnFail = wFORMS.behaviors.validation.onFail;
15048            // on formassembly validation set formValidation to true
15049            wFORMS.behaviors.validation.onFail = function () {
15050              formValidation = false;
15051              originalOnFail.apply(this, arguments);
15052            };
15053
15054          } else {
15055            console.log('wFORMS or wFORMS.behaviors.validation does not exist');
15056          }
15057        }
15058      }
15059    );
15060
15061    function waitForInitialization(callback) {
15062      if (wFORMS.initialized) {
15063        callback();
15064      } else {
15065        var checkInterval = setInterval(function () {
15066          if (wFORMS.initialized) {
15067            clearInterval(checkInterval);
15068            callback();
15069          }
15070        }, 100); // Check every 100 milliseconds
15071      }
15072    }
15073
15074  },
15075  finalize: function finalize() {
15076    // JavaScript to be fired on the home page, after the init JS
15077  },
15078});
15079
15080/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
15081
15082/***/ }),
15083/* 25 */
15084/***/ (function(module, __webpack_exports__, __webpack_require__) {
15085
15086"use strict";
15087/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit__ = __webpack_require__(1);
15088/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_uikit__);
15089
15090
15091/* harmony default export */ __webpack_exports__["a"] = ({
15092  init: function init() {
15093    $(".medications-mobile-nav.select").click(function() {
15094      var is_open = $(this).hasClass("open");
15095      if (is_open) {
15096        $(this).removeClass("open");
15097      } else {
15098        $(this).addClass("open");
15099      }
15100    });
15101
15102    $(".medications-mobile-nav.select li a").click(function(e) {
15103      e.preventDefault();
15104      var selected_value = $(this).html();
15105      var first_li = $(".select li:first-child a").html();
15106
15107      $(".select li:first-child a").html(selected_value);
15108      $(this).html(first_li);
15109
15110      var index = $(this).data("index");
15111      __WEBPACK_IMPORTED_MODULE_0_uikit___default.a.switcher('.medications-switcher').show(index);
15112      // $('html,body').animate({
15113      //   scrollTop: $('.tab-wrapper').offset().top - 70,
15114      // }, 150);
15115    });
15116
15117    $(document).mouseup(function(event) {
15118
15119      var target = event.target;
15120      var select = $(".medications-mobile-nav.select");
15121
15122      if (!select.is(target) && select.has(target).length === 0) {
15123        select.removeClass("open");
15124      }
15125
15126    });
15127  },
15128  finalize: function finalize() {},
15129});
15130
15131/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
15132
15133/***/ }),
15134/* 26 */
15135/***/ (function(module, __webpack_exports__, __webpack_require__) {
15136
15137"use strict";
15138/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie__ = __webpack_require__(2);
15139/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_js_cookie__);
15140/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uikit__ = __webpack_require__(1);
15141/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uikit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_uikit__);
15142
15143
15144
15145/* harmony default export */ __webpack_exports__["a"] = ({
15146  init: function init() {
15147    // JavaScript to be fired on the white papers page
15148    $(document).ready(function() {
15149      var modal = $(' #notice-modal');
15150      if (modal.length) {
15151        if (__WEBPACK_IMPORTED_MODULE_0_js_cookie___default.a.get('whitePapersCookie') === 'cookieSet') {
15152          modal.hide();
15153        } else {
15154          __WEBPACK_IMPORTED_MODULE_1_uikit___default.a.modal(modal).show();
15155          // modal.show();
15156          // modal.addClass('uk-open')
15157          modal.find('a.uk-modal-close').click(function () {
15158            __WEBPACK_IMPORTED_MODULE_0_js_cookie___default.a.set('whitePapersCookie', 'cookieSet', {expires: 1})
15159          })
15160        }
15161      }
15162
15163    })
15164
15165  },
15166  finalize: function finalize() {
15167    // JavaScript to be fired on the white papers page, after the init JS
15168  },
15169});
15170
15171
15172/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))
15173
15174/***/ }),
15175/* 27 */
15176/***/ (function(module, __webpack_exports__, __webpack_require__) {
15177
15178"use strict";
15179/* WEBPACK VAR INJECTION */(function(jQuery, $) {/* harmony default export */ __webpack_exports__["a"] = ({
15180  init: function init() {
15181    // JavaScript to be fired on npi lookup pages
15182
15183    (function ($) {
15184
15185      var clinicianMap = {
15186        // referred clinician select/dropdown ID maps to the form fields
15187        //patient
15188        'Patient': {
15189          phone: '#tfa_2060',
15190          first: '#tfa_1885',
15191          last: '#tfa_1886',
15192          state: '#tfa_2076', //add state to form
15193          zip: '#tfa_1890',
15194          npi: '#tfa_2289', //add npi to form
15195          group: '#tfa_2075' //add group to form
15196        },
15197        //caregiver
15198        'Caregiver': {
15199          phone: '#tfa_2015',
15200          first: '#tfa_1946',
15201          last: '#tfa_1947',
15202          state: '#tfa_2180',
15203          zip: '#tfa_1950',
15204          npi: '#tfa_2286',
15205          group: '#tfa_1948'
15206        },
15207        //office staff
15208        'Office Staff': {
15209          phone: '#tfa_2060',
15210          first: '#tfa_1885',
15211          last: '#tfa_1886',
15212          state: '#tfa_2076', //add state to form
15213          zip: '#tfa_1890',
15214          npi: '#tfa_1965', //add npi to form
15215          group: '#tfa_2075' //add group to form
15216        },
15217        //non-prescribing clinician
15218        'Non-Prescribing Clinician': {
15219          phone: '#tfa_2060',
15220          first: '#tfa_1885',
15221          last: '#tfa_1886',
15222          state: '#tfa_2076', //add state to form
15223          zip: '#tfa_1890',
15224          npi: '#tfa_1965', //add npi to form
15225          group: '#tfa_2075' //add group to form
15226        },
15227        //prescribing clinician
15228        'Prescribing Clinician': {
15229          phone: '#tfa_2060',
15230          first: '#tfa_11',
15231          last: '#tfa_12',
15232          state: '#tfa_2232', //add state to form
15233          zip: '#tfa_1890',
15234          npi: '#tfa_1953', //add npi to form
15235          group: '#tfa_2284' //add group to form
15236        }
15237      };
15238
15239      // Cache all provider configs up front
15240      var providers = {};
15241
15242      // grab all form fields as json objects
15243      Object.entries(clinicianMap).forEach(function (ref) {
15244        var key = ref[0];
15245        var fields = ref[1];
15246
15247        providers[key] = {
15248          key: key,
15249          phone: $(fields.phone),
15250          first: $(fields.first),
15251          last: $(fields.last),
15252          state: $(fields.state),
15253          zip: $(fields.zip),
15254          npi: $(fields.npi),
15255          group: $(fields.group)
15256        };
15257      });
15258
15259      // set vars for use in functions
15260      var activeProvider = null;
15261      var list = null;
15262      var wrapper = null;
15263      var message = null;
15264
15265      // Switch active provider
15266      $('#tfa_4').on('change', function () {
15267
15268        var iAmA = $(this).find(':selected').text().trim();
15269
15270        activeProvider = iAmA ? providers[iAmA] : null;
15271
15272        //Destroy results wrapper
15273        $('#results-wrapper').remove();
15274
15275        // build results wrapper and insert after last name
15276        wrapper = $('<div id="results-wrapper"></div>');
15277        if( activeProvider.state.length > 0 ) {
15278          activeProvider.state.attr('autocomplete', 'address-level1');
15279          activeProvider.state.closest('.oneField').before(wrapper);
15280        }
15281
15282        // Build message container
15283        message = $('<div id="message"></div>');
15284        wrapper.append(message);
15285
15286        // Build results list
15287        list = $('<ul class="npi-results"></ul>');
15288        wrapper.append(list);
15289
15290        var $fields =  activeProvider.first.add(activeProvider.last);
15291
15292        $fields.on('focus', function() {
15293
15294          $('#message .error-message').remove();
15295
15296          wrapper.insertAfter($(this).closest('.oneField'));
15297        });
15298
15299
15300        clearList();
15301      });
15302
15303      // Attach listeners ONCE
15304      Object.values(providers).forEach(function (provider) {
15305
15306        provider.first
15307          .add(provider.last)
15308          .on('keyup', debounce(function () {
15309
15310            if (activeProvider !== provider) {
15311              return;
15312            }
15313
15314            if (provider.last.val().length > 2) {
15315              fetchMatches();
15316            }
15317
15318          }, 400));
15319
15320        provider.state.on('change', function () {
15321
15322          if (activeProvider !== provider) {
15323            return;
15324          }
15325
15326          if (provider.last.val().length > 2) {
15327            fetchMatches();
15328          }
15329
15330        });
15331
15332      });
15333
15334      function fetchMatches() {
15335
15336        clearList();
15337
15338        if (!activeProvider) {
15339          return;
15340        }
15341
15342        activeProvider.group.addClass('searching');
15343
15344        var firstName = activeProvider.first.val() ? activeProvider.first.val().trim() : '';
15345        var lastName = activeProvider.last.val() ? activeProvider.last.val().trim() : '';
15346        var stateName = activeProvider.state
15347          .find('option:selected:not(:first-child)')
15348          .text();
15349
15350        if (!lastName.length) {
15351          clearList();
15352          return;
15353        }
15354
15355        $.ajax({
15356          type: 'POST',
15357          url: '/wp-admin/admin-ajax.php',
15358
15359          data: {
15360            action: 'npi_lookup',
15361            nonce:  '',
15362            first_name: firstName,
15363            last_name: lastName,
15364            state: stateName
15365          },
15366
15367          success: function success(json) {
15368
15369            if (json.success) {
15370              $('.error-message').remove();
15371              render(json.data.matches || []);
15372            } else {
15373              clearList();
15374              warn( true ? json.data.message : 'Unknown error' +'Please try again.');
15375              console.warn('NPI Lookup failed:', json.data ? json.data.message : 'Unknown error');
15376            }
15377
15378          },
15379
15380          error: function error(xhr, status, error$1) {
15381
15382            clearList();
15383            warn('NPI Lookup failed. Please try again.' + xhr.responseText +'');
15384            render( xhr.responseText || []);
15385            console.error('NPI Lookup AJAX error:', status, error$1, xhr.responseText);
15386          }
15387        });
15388
15389      }
15390
15391
15392      function warn(message) {
15393        if (!message.length) { return; }
15394        $('#message .error-message').remove();
15395        $('#message').append($('<p class="error-message uk-text-italic uk-text-small">' + message +'</p>'));
15396        wrapper.addClass('active');
15397      }
15398
15399      function render(matches) {
15400
15401        clearList();
15402
15403        if (!matches.length || !activeProvider) {
15404          return;
15405        }
15406
15407        matches.forEach(function (item) {
15408
15409          var li = $('<li>')
15410            .html(formatOption(item));
15411
15412          li.on('mouseenter', function () {
15413            $(this).css('background', '#f3f5f7');
15414          });
15415
15416          li.on('mouseleave', function () {
15417            $(this).css('background', '#fff');
15418          });
15419
15420          li.on('click', function () {
15421
15422            if (item.npi) {
15423              activeProvider.npi.val(item.npi);
15424            }
15425
15426            if (item.first_name) {
15427              activeProvider.first.val(
15428                toTitleCase(item.first_name)
15429              );
15430            }
15431
15432            if (item.last_name) {
15433              activeProvider.last.val(
15434                toTitleCase(item.last_name)
15435              );
15436            }
15437
15438            if (item.telephone_number) {
15439              activeProvider.phone.val(
15440                item.telephone_number
15441              );
15442            }
15443
15444            if (item.postal_code) {
15445              activeProvider.zip.val(
15446                item.postal_code.slice(0, 5)
15447              );
15448            }
15449
15450            if (item.state) {
15451              activeProvider.state
15452                .find(("option.calcval-" + (item.state)))
15453                .prop('selected', true);
15454            }
15455
15456            clearList();
15457          });
15458
15459          list.append(li);
15460
15461        });
15462
15463        wrapper.addClass('active');
15464        list.show();
15465      }
15466
15467      function clearList() {
15468
15469        list.empty().hide();
15470        wrapper.removeClass('active');
15471
15472        if (activeProvider) {
15473          activeProvider.group.removeClass('searching');
15474        }
15475      }
15476
15477      function debounce(func, wait) {
15478
15479        var timeout;
15480
15481        return function () {
15482          var this$1 = this;
15483          var args = [], len = arguments.length;
15484          while ( len-- ) args[ len ] = arguments[ len ];
15485
15486
15487          clearTimeout(timeout);
15488
15489          timeout = setTimeout(function () {
15490            func.apply(this$1, args);
15491          }, wait);
15492
15493        };
15494      }
15495
15496      function toTitleCase(str) {
15497        if ( str === void 0 ) str = '';
15498
15499        return str
15500          .toLowerCase()
15501          .replace(/\b\w/g, function (char) { return char.toUpperCase(); });
15502      }
15503
15504      function formatOption(item) {
15505
15506        var name = item.org_name
15507          ? item.org_name.toLowerCase()
15508          : ((toTitleCase(item.first_name)) + " " + (toTitleCase(item.last_name)));
15509
15510        var cred = item.credential
15511          ? (", " + (item.credential))
15512          : '';
15513
15514        var loc = [
15515          toTitleCase(item.city),
15516          item.state,
15517          item.postal_code? item.postal_code.slice(0, 5) :''
15518        ]
15519          .filter(Boolean)
15520          .join(', ');
15521
15522        return ("\n            <span class=\"uk-text-capitalize uk-text-small\">\n                " + name + cred + "\n            </span>\n            <span class=\"uk-text-xsmall uk-display-block uk-text-capitalize\">\n                " + loc + "\n            </span>\n        ");
15523      }
15524
15525      $(document).on('click', function (e) {
15526
15527        if(list) {
15528          if (
15529            list.is(':visible') &&
15530            !list.is(e.target) &&
15531            list.has(e.target).length === 0
15532          ) {
15533            clearList();
15534          }
15535        }
15536
15537      });
15538
15539    })(jQuery);
15540  },
15541  finalize: function finalize() {
15542    // JavaScript to be fired after load
15543    $(document).ready(function() {
15544
15545    })
15546  },
15547});
15548
15549/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0), __webpack_require__(0)))
15550
15551/***/ }),
15552/* 28 */
15553/***/ (function(module, exports) {
15554
15555// removed by extract-text-webpack-plugin
15556
15557/***/ })
15558/******/ ]);
15559//# sourceMappingURL=main.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.