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.