vendor: 87 bytes, lines 1-4
1/******/ (() => { // webpackBootstrap 2/******/ var __webpack_modules__ = ({ 3 4/***/ "./
4assets/js/abstract/helpers.js": 5/*!***************************************!*\ 6 !*** ./assets/js/abstract/helpers.js ***! 7 \***************************************/ 8/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 9 10"use strict"; 11__webpack_require__.r(__webpack_exports__); 12/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13/* harmony export */ "closest": () => (/* binding */ closest), 14/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), 15/* harmony export */ "inViewport": () => (/* binding */ inViewport), 16/* harmony export */ "onChange": () => (/* binding */ onChange), 17/* harmony export */ "onClick": () => (/* binding */ onClick), 18/* harmony export */ "onClickDynamic": () => (/* binding */ onClickDynamic), 19/* harmony export */ "pageReady": () => (/* binding */ pageReady) 20/* harmony export */ }); 21function pageReady(fn) { 22 if (document.readyState != 'loading') { 23 fn(); 24 } else if (document.addEventListener) { 25 document.addEventListener('DOMContentLoaded', fn); 26 } else { 27 document.attachEvent('onreadystatechange', function () { 28 if (document.readyState != 'loading') fn(); 29 }); 30 } 31} 32function closest(el, selector) { 33 // If the current element matches the selector, return it 34 if (el.matches(selector)) { 35 return el; 36 } // If we've reached the top of the DOM tree, return null 37 38 39 if (el.parentElement === null) { 40 return null; 41 } // Recursively search the parent elements until we find a match 42 43 44 return closest(el.parentElement, selector); 45} 46function onClick(element, handler) { 47 if (typeof element != 'undefined' && element != null) { 48 if (element.addEventListener) { 49 element.addEventListener('click', function (e) { 50 handler(e); 51 }, false); 52 } else { 53 element.attachEvent('onclick', function (e) { 54 handler(e); 55 }); 56 } 57 } 58} 59function onClickDynamic(element, handler) { 60 document.addEventListener('click', function (event) { 61 if (event.target.matches(element)) { 62 handler(event); 63 } 64 }); 65} 66function onChange(element, handler) { 67 if (element.addEventListener) { 68 element.addEventListener('change', function (e) { 69 return handler; 70 }, false); 71 } else { 72 element.attachEvent('onchange', function (e) { 73 return handler; 74 }); 75 } 76} 77function inViewport(elem, handler) { 78 var allElements = document.querySelectorAll(elem); 79 var windowHeight = window.innerHeight; 80 81 function viewportChecker(event, allElements, windowHeight, handler) { 82 for (var i = 0; i < allElements.length; i++) { 83 // loop through the sections 84 var viewportOffset = allElements[i].getBoundingClientRect(); // returns the size of an element and its position relative to the viewport 85 86 var top = viewportOffset.top; // get the offset top 87 88 if (top < windowHeight) { 89 // if the top offset is less than the window height 90 handler(true); 91 } else { 92 handler(false); 93 } 94 } 95 } 96 97 viewportChecker(null, allElements, windowHeight, handler); 98 window.addEventListener('scroll', function (event) { 99 viewportChecker(event, allElements, windowHeight, handler); 100 }); 101} 102/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 103 pageReady: pageReady, 104 onClick: onClick, 105 onChange: onChange, 106 inViewport: inViewport 107}); 108 109/***/ }), 110
111/***/ "./assets/js/archives/replace-page-content.js": 112/*!****************************************************!*\ 113 !*** ./assets/js/archives/replace-page-content.js ***! 114 \****************************************************/ 115/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 116 117"use strict"; 118__webpack_require__.r(__webpack_exports__); 119/* harmony export */ __webpack_require__.d(__webpack_exports__, { 120/* harmony export */ "ReplacePageContent": () => (/* binding */ ReplacePageContent) 121/* harmony export */ }); 122/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 123function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 124 125function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 126 127function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 128 129 130var ReplacePageContent = /*#__PURE__*/function () { 131 function ReplacePageContent() { 132 var _this = this; 133 134 _classCallCheck(this, ReplacePageContent); 135 136 this.paged = 1; 137 this.controller = new AbortController(); 138 this.signal = this.controller.signal; 139 this.hasOngoingFetch = false; 140 141 if (document.querySelector('.default-content-area .card-wrapper .card-roll')) { 142 if (document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML.trim() === "") { 143 document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML = this.getNoPostsMessage(); 144 } 145 } 146 147 document.querySelectorAll('#filter-form #sort').forEach(function (element) { 148 element.onchange = function () { 149 this.sendPageRequest(true); 150 }.bind(_this); 151 }); 152 this.setupPaginationClick(); 153 } 154 155 _createClass(ReplacePageContent, [{ 156 key: "getNoPostsMessage", 157 value: function getNoPostsMessage() { 158 return "<h2>No Posts Found</h2>"; 159 } 160 }, { 161 key: "setupPaginationClick", 162 value: function setupPaginationClick() { 163 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.menu-style-1 input[type=checkbox]'), function (e) { 164 this.sendPageRequest(true); 165 }.bind(this)); 166 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.pagination-load-more a'), function (e) { 167 e.preventDefault(); 168 this.sendPageRequest(false); 169 }.bind(this)); 170 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('#filter-form button'), function (e) { 171 e.preventDefault(); 172 this.sendPageRequest(true); 173 }.bind(this)); 174 } 175 }, { 176 key: "sendPageRequest", 177 value: function sendPageRequest(reset) { 178 var isReplace = true; 179 180 if (this.hasOngoingFetch) { 181 //this.controller.abort(); 182 this.hasOngoingFetch = false; //this.sendPageRequest(reset); 183 } else { 184 this.hasOngoingFetch = true; 185 } 186 187 if (reset) { 188 this.paged = 1; 189 } else { 190 isReplace = false; 191 this.paged = this.paged + 1; 192 } 193 194 var url = window.location.href.split('?')[0] + "?paged=" + this.paged; 195 var search = document.querySelector('#search'); 196 var surname = document.querySelector('#surname'); 197 var author = document.querySelector('#author'); 198 var sort = document.querySelector('#sort'); 199 var rank = document.querySelector('#rank'); 200 var site = document.querySelector('#site'); 201 var field_of_study = document.querySelector('#field_of_study'); 202 var past_projects = document.querySelector('#past_projects'); 203 var funding_source = document.querySelector('#funding_source'); 204 205 if (search && search.value != "") { 206 url += "&search-element=" + search.value; 207 } 208 209 if (surname && surname.value != "") { 210 url += "&surname-element=" + surname.value; 211 } 212 213 if (author && author.value != "") { 214 url += "&author-element=" + author.value; 215 } 216 217 if (sort && sort.value != "") { 218 url += "&sort-element=" + sort.value; 219 } 220 221 if (rank && rank.value != "") { 222 url += "&rank-element=" + rank.value; 223 } 224 225 if (site && site.value != "") { 226 url += "&site-element=" + site.value; 227 } 228 229 if (field_of_study && field_of_study.value != "") { 230 url += "&field_of_study-element=" + field_of_study.value; 231 } 232 233 if (past_projects && past_projects.value != "") { 234 url += "&past_projects-element=" + past_projects.checked; 235 } 236 237 if (funding_source && funding_source.value != "") { 238 url += "&funding_source-element=" + funding_source.value; 239 } 240 241 history.pushState({}, document.querySelector('title').innerHTML, url); 242 document.querySelector('.default-content-area .card-wrapper').classList.add("loading"); 243 var initial_count = 0; 244 245 if (document.querySelector('.default-content-area .card-wrapper .card-roll').children.length) { 246 initial_count = document.querySelector('.default-content-area .card-wrapper .card-roll').children.length; 247 } 248 249 fetch(url, { 250 method: 'GET', 251 signal: this.signal 252 }).then(function (response) { 253 return response.text(); 254 }).then(function (html) { 255 this.hasOngoingFetch = false;
256 var parser = new DOMParser(); 257 var doc = parser.parseFromString(html, 'text/html'); 258 var element = doc.querySelector('.default-content-area .card-wrapper .card-roll'); 259 var pagination = doc.querySelector('.default-content-area .card-wrapper .pagination-numbers'); 260 261 if (typeof element != 'undefined' && element != null) { 262 if (reset) { 263 document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML = element.innerHTML; 264 } else { 265 document.querySelector('.default-content-area .card-wrapper .card-roll').insertAdjacentHTML('beforeend', element.innerHTML); 266 } 267 268 if (element.children.length < initial_count) { 269 if (document.querySelector('.pagination-load-more a')) { 270 document.querySelector('.pagination-load-more a').classList.add("hidden"); 271 } 272 } 273 } else { 274 if (document.querySelector('.pagination-load-more a')) { 275 document.querySelector('.pagination-load-more a').classList.add("hidden"); 276 } 277 } 278 279 if (reset && (element.innerHTML.trim() === "" || typeof element === 'undefined' || element === null)) { 280 document.querySelector('.default-content-area .card-wrapper .card-roll').innerHTML = this.getNoPostsMessage(); 281 } 282 283 if (typeof pagination != 'undefined' && pagination != null && document.querySelector('.default-content-area .card-wrapper .pagination-numbers')) { 284 document.querySelector('.default-content-area .card-wrapper .pagination-numbers').innerHTML = pagination.innerHTML; 285 } else { 286 document.querySelector('.default-content-area .card-wrapper .pagination-numbers').innerHTML = ''; 287 } 288 289 document.querySelector('.default-content-area .card-wrapper').classList.remove("loading"); 290 }.bind(this).bind(initial_count))["catch"](function (err) { 291 // There was an error 292 document.querySelector('.default-content-area .card-wrapper').classList.remove("loading"); 293 console.warn('Something went wrong.', err); 294 }); 295 } 296 }]); 297 298 return ReplacePageContent; 299}(); 300 301/***/ }), 302
303/***/ "./assets/js/components/custom-select.js": 304/*!***********************************************!*\ 305 !*** ./assets/js/components/custom-select.js ***! 306 \***********************************************/ 307/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 308 309"use strict"; 310__webpack_require__.r(__webpack_exports__); 311/* harmony export */ __webpack_require__.d(__webpack_exports__, { 312/* harmony export */ "CustomSelect": () => (/* binding */ CustomSelect) 313/* harmony export */ }); 314/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 315/* harmony import */ var choices_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! choices.js */ "./node_modules/choices.js/public/assets/scripts/choices.js"); 316/* harmony import */ var choices_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(choices_js__WEBPACK_IMPORTED_MODULE_1__); 317function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 318 319function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 320 321function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 322 323//https://github.com/Choices-js/Choices/ 324 325 //import Choices from '../../../node_modules/choices.js/public/assets/scripts/choices.min.js' 326//import Choices from '../../../node_modules/choices.js/public/types/src/index.d.ts' 327 328var CustomSelect = /*#__PURE__*/_createClass(function CustomSelect() { 329 _classCallCheck(this, CustomSelect); 330 331 document.jsChoiceList = []; 332 var select_list = document.querySelectorAll('.js-choice'); 333 select_list.forEach(function (select) { 334 var options = {}; 335 336 if (select.childElementCount < 8) { 337 options.searchEnabled = false; 338 } else { 339 options.searchEnabled = true; 340 } 341 342 document.jsChoiceList.push(new (choices_js__WEBPACK_IMPORTED_MODULE_1___default())(select, options)); 343 }); 344}); 345 346/***/ }), 347
348/***/ "./assets/js/components/faq.js": 349/*!*************************************!*\ 350 !*** ./assets/js/components/faq.js ***! 351 \*************************************/ 352/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 353 354"use strict"; 355__webpack_require__.r(__webpack_exports__); 356/* harmony export */ __webpack_require__.d(__webpack_exports__, { 357/* harmony export */ "FAQ": () => (/* binding */ FAQ) 358/* harmony export */ }); 359/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 360function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 361 362function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 363 364function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 365 366function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 367 368 369var FAQ = /*#__PURE__*/_createClass(function FAQ() { 370 var _this = this; 371 372 _classCallCheck(this, FAQ); 373 374 _defineProperty(this, "slideUp", function (target) { 375 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 376 target.style.transitionProperty = 'height, margin, padding'; 377 target.style.transitionDuration = duration + 'ms'; 378 target.style.boxSizing = 'border-box'; 379 target.style.height = target.offsetHeight + 'px'; 380 target.offsetHeight; 381 target.style.overflow = 'hidden'; 382 target.style.height = 0; 383 target.style.paddingTop = 0; 384 target.style.paddingBottom = 0; 385 target.style.marginTop = 0; 386 target.style.marginBottom = 0; 387 window.setTimeout(function () { 388 target.style.display = 'none'; 389 target.style.removeProperty('height'); 390 target.style.removeProperty('padding-top'); 391 target.style.removeProperty('padding-bottom'); 392 target.style.removeProperty('margin-top'); 393 target.style.removeProperty('margin-bottom'); 394 target.style.removeProperty('overflow'); 395 target.style.removeProperty('transition-duration'); 396 target.style.removeProperty('transition-property'); //alert("!"); 397 }, duration); 398 }); 399 400 _defineProperty(this, "slideDown", function (target) { 401 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 402 target.style.removeProperty('display'); 403 var display = window.getComputedStyle(target).display; 404 if (display === 'none') display = 'block'; 405 target.style.display = display; 406 var height = target.offsetHeight; 407 target.style.overflow = 'hidden'; 408 target.style.height = 0; 409 target.style.paddingTop = 0; 410 target.style.paddingBottom = 0; 411 target.style.marginTop = 0; 412 target.style.marginBottom = 0; 413 target.offsetHeight; 414 target.style.boxSizing = 'border-box'; 415 target.style.transitionProperty = "height, margin, padding"; 416 target.style.transitionDuration = duration + 'ms'; 417 target.style.height = height + 'px'; 418 target.style.removeProperty('padding-top'); 419 target.style.removeProperty('padding-bottom'); 420 target.style.removeProperty('margin-top'); 421 target.style.removeProperty('margin-bottom'); 422 window.setTimeout(function () { 423 target.style.removeProperty('height'); 424 target.style.removeProperty('overflow'); 425 target.style.removeProperty('transition-duration'); 426 target.style.removeProperty('transition-property'); 427 }, duration); 428 }); 429 430 _defineProperty(this, "slideToggle", function (target) { 431 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 432 433 if (window.getComputedStyle(target).display === 'none') { 434 target.parentNode.classList.add('open'); 435 return _this.slideDown(target, duration); 436 } else { 437 target.parentNode.classList.remove('open'); 438 return _this.slideUp(target, duration); 439 } 440 }); 441 442 if (document.querySelector('#FAQ .align-right .faq_card .title')) { 443 document.querySelectorAll('#FAQ .align-right .faq_card .title').forEach(function (el) { 444 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function () { 445 this.slideToggle(el.parentElement.querySelector('.body')); 446 }.bind(this)); 447 }.bind(this)); 448 } 449}); 450 451/***/ }), 452
453/***/ "./assets/js/components/follow-menu-style-1.js": 454/*!*****************************************************!*\ 455 !*** ./assets/js/components/follow-menu-style-1.js ***! 456 \*****************************************************/ 457/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 458 459"use strict"; 460__webpack_require__.r(__webpack_exports__); 461/* harmony export */ __webpack_require__.d(__webpack_exports__, { 462/* harmony export */ "FollowMenu": () => (/* binding */ FollowMenu) 463/* harmony export */ }); 464/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 465function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 466 467function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 468 469function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 470 471 472var FollowMenu = /*#__PURE__*/_createClass(function FollowMenu() { 473 _classCallCheck(this, FollowMenu); 474 475 if (document.querySelector('.follow-menu-style-1')) { 476 window.addEventListener('scroll', function (event) { 477 var el = document.querySelector('.follow-menu-style-1'); 478 var el2 = document.querySelector('.menu-style-1'); 479 var windowHeight = window.innerHeight; 480 var viewportOffset = el2.getBoundingClientRect(); // returns the size of an element and its position relative to the viewport 481 482 var top = viewportOffset.top; // get the offset top 483 484 console.log(top); 485 console.log(windowHeight); 486 487 if (top < 0) { 488 // if the top offset is less than the window height 489 el.classList.add('visible'); 490 } else { 491 el.classList.remove('visible'); 492 } 493 }); 494 } 495}); 496 497/***/ }), 498
499/***/ "./assets/js/components/form-reset-button.js": 500/*!***************************************************!*\ 501 !*** ./assets/js/components/form-reset-button.js ***! 502 \***************************************************/ 503/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 504 505"use strict"; 506__webpack_require__.r(__webpack_exports__); 507/* harmony export */ __webpack_require__.d(__webpack_exports__, { 508/* harmony export */ "FormResetButton": () => (/* binding */ FormResetButton) 509/* harmony export */ }); 510/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 511function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 512 513function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 514 515function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 516 517function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 518 519 520var FormResetButton = /*#__PURE__*/_createClass(function FormResetButton() { 521 var _this = this; 522 523 _classCallCheck(this, FormResetButton); 524 525 _defineProperty(this, "slideUp", function (target) { 526 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 527 target.style.transitionProperty = 'height, margin, padding'; 528 target.style.transitionDuration = duration + 'ms'; 529 target.style.boxSizing = 'border-box'; 530 target.style.height = target.offsetHeight + 'px'; 531 target.offsetHeight; 532 target.style.overflow = 'hidden'; 533 target.style.height = 0; 534 target.style.paddingTop = 0; 535 target.style.paddingBottom = 0; 536 target.style.marginTop = 0; 537 target.style.marginBottom = 0; 538 window.setTimeout(function () { 539 target.style.display = 'none'; 540 target.style.removeProperty('height'); 541 target.style.removeProperty('padding-top'); 542 target.style.removeProperty('padding-bottom'); 543 target.style.removeProperty('margin-top'); 544 target.style.removeProperty('margin-bottom'); 545 target.style.removeProperty('overflow'); 546 target.style.removeProperty('transition-duration'); 547 target.style.removeProperty('transition-property'); //alert("!"); 548 }, duration); 549 }); 550 551 _defineProperty(this, "slideDown", function (target) { 552 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 553 target.style.removeProperty('display'); 554 var display = window.getComputedStyle(target).display; 555 if (display === 'none') display = 'block'; 556 target.style.display = display; 557 var height = target.offsetHeight; 558 target.style.overflow = 'hidden'; 559 target.style.height = 0; 560 target.style.paddingTop = 0; 561 target.style.paddingBottom = 0; 562 target.style.marginTop = 0; 563 target.style.marginBottom = 0; 564 target.offsetHeight; 565 target.style.boxSizing = 'border-box'; 566 target.style.transitionProperty = "height, margin, padding"; 567 target.style.transitionDuration = duration + 'ms'; 568 target.style.height = height + 'px'; 569 target.style.removeProperty('padding-top'); 570 target.style.removeProperty('padding-bottom'); 571 target.style.removeProperty('margin-top'); 572 target.style.removeProperty('margin-bottom'); 573 window.setTimeout(function () { 574 target.style.removeProperty('height'); 575 target.style.removeProperty('overflow'); 576 target.style.removeProperty('transition-duration'); 577 target.style.removeProperty('transition-property'); 578 }, duration); 579 }); 580 581 _defineProperty(this, "slideToggle", function (target) { 582 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 583 584 if (window.getComputedStyle(target).display === 'none') { 585 target.parentNode.classList.add('open'); 586 return _this.slideDown(target, duration); 587 } else { 588 target.parentNode.classList.remove('open'); 589 return _this.slideUp(target, duration); 590 } 591 }); 592 593 if (document.querySelector('.form-reset-button')) { 594 document.querySelectorAll('.form-reset-button').forEach(function (el) { 595 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function () { 596 var form = el.closest('form'); 597 form.reset(); 598 document.jsChoiceList.forEach(function (select) { 599 select.destroy(); 600 select.init(); 601 }); 602 el.classList.remove('visible'); 603 }.bind(this)); 604 }.bind(this)); 605 document.querySelector('#filter-form').addEventListener("input", function () { 606 document.querySelectorAll('.form-reset-button').forEach(function (el) { 607 el.classList.add('visible'); 608 }); 609 }); 610 document.querySelectorAll('.js-choice').forEach(function (select) { 611 select.addEventListener('change', function (event) { 612 document.querySelectorAll('.form-reset-button').forEach(function (el) { 613 el.classList.add('visible'); 614 }); 615 }, false); 616 }); 617 } 618}); 619 620/***/ }), 621
622/***/ "./assets/js/components/funding.js": 623/*!*****************************************!*\ 624 !*** ./assets/js/components/funding.js ***! 625 \*****************************************/ 626/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 627 628"use strict"; 629__webpack_require__.r(__webpack_exports__); 630/* harmony export */ __webpack_require__.d(__webpack_exports__, { 631/* harmony export */ "Funding": () => (/* binding */ Funding) 632/* harmony export */ }); 633function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 634 635function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 636 637function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 638 639var Funding = /*#__PURE__*/_createClass(function Funding() { 640 _classCallCheck(this, Funding); 641 642 if (document.querySelector('#funding .accordion_selector select')) { 643 document.querySelector('#funding .accordion_selector select').onchange = function () { 644 var el = document.querySelector('#funding .accordion_selector select'); 645 var selected = el.value; 646 document.querySelectorAll('#funding .accordion .option').forEach(function (el) { 647 el.classList.remove('open'); 648 }); 649 document.querySelectorAll('#funding .accordion .option').forEach(function (el) { 650 if (el.getAttribute('data-tab') == selected) { 651 el.classList.add('open'); 652 } 653 }); 654 }.bind(this); 655 } 656}); 657 658/***/ }), 659
660/***/ "./assets/js/components/glide-slider.js": 661/*!**********************************************!*\ 662 !*** ./assets/js/components/glide-slider.js ***! 663 \**********************************************/ 664/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 665 666"use strict"; 667__webpack_require__.r(__webpack_exports__); 668/* harmony export */ __webpack_require__.d(__webpack_exports__, { 669/* harmony export */ "GlideSlider": () => (/* binding */ GlideSlider) 670/* harmony export */ }); 671/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 672/* harmony import */ var _glidejs_glide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @glidejs/glide */ "./node_modules/@glidejs/glide/dist/glide.esm.js"); 673function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 674 675function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 676 677function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 678 679//https://glidejs.com/ 680 681 682var GlideSlider = /*#__PURE__*/_createClass(function GlideSlider(name, options) { 683 _classCallCheck(this, GlideSlider); 684 685 if (document.querySelector(name)) { 686 new _glidejs_glide__WEBPACK_IMPORTED_MODULE_1__["default"](name, options).mount(); 687 } 688}); 689 690/***/ }), 691
692/***/ "./assets/js/components/header-slider.js": 693/*!***********************************************!*\ 694 !*** ./assets/js/components/header-slider.js ***! 695 \***********************************************/ 696/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 697 698"use strict"; 699__webpack_require__.r(__webpack_exports__); 700/* harmony export */ __webpack_require__.d(__webpack_exports__, { 701/* harmony export */ "HeaderSlider": () => (/* binding */ HeaderSlider) 702/* harmony export */ }); 703/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 704function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 705 706function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 707 708function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 709 710 711var HeaderSlider = /*#__PURE__*/_createClass(function HeaderSlider() { 712 _classCallCheck(this, HeaderSlider); 713 714 if (document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider')) { 715 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('#header-slider-down'), function (e) { 716 e.preventDefault(); 717 document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider').appendChild(document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:first-child')); 718 }.bind(this)); 719 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('#header-slider-up'), function (e) { 720 e.preventDefault(); 721 document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider').prepend(document.querySelector('.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:last-child')); 722 }.bind(this)); 723 } 724}); 725 726/***/ }), 727
728/***/ "./assets/js/components/hover-popups.js": 729/*!**********************************************!*\ 730 !*** ./assets/js/components/hover-popups.js ***! 731 \**********************************************/ 732/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 733 734"use strict"; 735__webpack_require__.r(__webpack_exports__); 736/* harmony export */ __webpack_require__.d(__webpack_exports__, { 737/* harmony export */ "HoverPopups": () => (/* binding */ HoverPopups) 738/* harmony export */ }); 739/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 740function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 741 742function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 743 744function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 745 746 747var HoverPopups = /*#__PURE__*/_createClass(function HoverPopups(name, options) { 748 _classCallCheck(this, HoverPopups); 749 750 var tags = document.querySelectorAll('.single-detail .main .content-area.has-ajax-hover a'); 751 752 if (tags) {
753 tags.forEach(function (el) { 754 var link = el.href; 755 fetch(link, { 756 method: 'GET' 757 }).then(function (response) { 758 return response.text(); 759 }).then(function (html) { 760 var parser = new DOMParser(); 761 var doc = parser.parseFromString(html, 'text/html'); 762 var title = doc.querySelector('title'); 763 var desc = doc.querySelector('meta[name="description"]'); 764 765 if (typeof title != 'undefined' && title != null && typeof desc != 'undefined' && desc != null) { 766 var svg = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14 7V2C14 2 10.9526 2 9 2" stroke="#4F6B74" stroke-width="1.2" stroke-linecap="square" stroke-linejoin="round"/><path d="M8 7.99828L13.5764 2.42188" stroke="#4F6B74" stroke-width="1.2" stroke-linecap="square" stroke-linejoin="round"/><path d="M14 10V13.3333C14 13.5101 13.9298 13.6797 13.8047 13.8047C13.6797 13.9298 13.5101 14 13.3333 14H2.66667C2.48986 14 2.32029 13.9298 2.19526 13.8047C2.07024 13.6797 2 13.5101 2 13.3333V2.66667C2 2.48986 2.07024 2.32029 2.19526 2.19526C2.32029 2.07024 2.48986 2 2.66667 2H6" stroke="#4F6B74" stroke-width="1.2" stroke-linecap="square" stroke-linejoin="round"/></svg>'; 767 var popup = "<div class='hover'><p class='description'>" + desc.content + "</p><p class='title'>" + svg + title.innerHTML + "</p></div>"; 768 el.innerHTML += popup; 769 } 770 }.bind(this).bind(el))["catch"](function (err) { 771 console.warn('Error generating popup.', err); 772 }); 773 }); 774 } 775}); 776 777/***/ }), 778
779/***/ "./assets/js/components/impact-slider.js": 780/*!***********************************************!*\ 781 !*** ./assets/js/components/impact-slider.js ***! 782 \***********************************************/ 783/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 784 785"use strict"; 786__webpack_require__.r(__webpack_exports__); 787/* harmony export */ __webpack_require__.d(__webpack_exports__, { 788/* harmony export */ "ImpactSlider": () => (/* binding */ ImpactSlider) 789/* harmony export */ }); 790/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 791function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 792 793function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 794 795function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 796 797 798var ImpactSlider = /*#__PURE__*/function () { 799 function ImpactSlider() { 800 _classCallCheck(this, ImpactSlider); 801 802 if (document.querySelector('#stories-of-change')) { 803 var List = document.querySelectorAll('#stories-of-change .card-wrapper .year-warpper ul li span'); 804 List.forEach(function (el) { 805 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) { 806 e.preventDefault(); 807 var year = el.getAttribute('data-year'); 808 809 if (document.querySelector('#stories-of-change .year-' + year)) { 810 this.scrollToSmoothly(document.querySelector('#stories-of-change .year-' + year).offsetTop - 160, 500); 811 } 812 }.bind(this)); 813 }.bind(this)); 814 /* 815 816 window.addEventListener('scroll', function(event) { 817 let el = document.querySelectorAll('#stories-of-change .impact-story-card'); 818 console.log(el); 819 let primaryElement = false; 820 el.forEach(function(p) { 821 inViewport(p, function(e) { 822 if(e && !p) { 823 primaryElement = p; 824 } 825 }.bind(p)); 826 }); 827 828 p.classList.add('active'); 829 }); 830 */ 831 } 832 } 833 834 _createClass(ImpactSlider, [{ 835 key: "scrollToSmoothly", 836 value: function scrollToSmoothly(pos, time) { 837 var currentPos = window.pageYOffset; 838 var start = null; 839 if (time == null) time = 500; 840 pos = +pos, time = +time; 841 window.requestAnimationFrame(function step(currentTime) { 842 start = !start ? currentTime : start; 843 var progress = currentTime - start; 844 845 if (currentPos < pos) { 846 window.scrollTo(0, (pos - currentPos) * progress / time + currentPos); 847 } else { 848 window.scrollTo(0, currentPos - (currentPos - pos) * progress / time); 849 } 850 851 if (progress < time) { 852 window.requestAnimationFrame(step); 853 } else { 854 window.scrollTo(0, pos); 855 } 856 }); 857 } 858 }]); 859 860 return ImpactSlider; 861}(); 862 863/***/ }), 864
865/***/ "./assets/js/components/introduction.js": 866/*!**********************************************!*\ 867 !*** ./assets/js/components/introduction.js ***! 868 \**********************************************/ 869/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 870 871"use strict"; 872__webpack_require__.r(__webpack_exports__); 873/* harmony export */ __webpack_require__.d(__webpack_exports__, { 874/* harmony export */ "Introduction": () => (/* binding */ Introduction) 875/* harmony export */ }); 876function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 877 878function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 879 880function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 881 882var Introduction = /*#__PURE__*/_createClass(function Introduction() { 883 _classCallCheck(this, Introduction); 884 885 // 1. Handle mouse movement over individual list items 886 document.querySelectorAll('.introduction .quick-links li').forEach(function (element) { 887 element.addEventListener('mousemove', function (event) { 888 var item = this.dataset.item; 889 var parent = this.closest('.introduction .quick-links'); 890 var itemTop = parent.getBoundingClientRect().top + window.scrollY; 891 var itemHeight = parent.offsetHeight; 892 var mouseY = event.pageY - itemTop; 893 var mousePercentage = mouseY / itemHeight * 100; 894 var translateY = (mousePercentage - 50) * 0.9; 895 document.querySelectorAll('.introduction .quick-links .images .image').forEach(function (img) { 896 img.classList.remove('hover'); 897 }); 898 var targetImage = document.querySelector(".introduction .quick-links .images .image.".concat(item)); 899 900 if (targetImage) { 901 targetImage.classList.add('hover'); 902 } 903 904 var imagesContainer = document.querySelector('.introduction .quick-links .images'); 905 906 if (imagesContainer) { 907 imagesContainer.style.transform = "translateY(".concat(translateY, "px)"); 908 imagesContainer.style.opacity = '1'; 909 } 910 }); 911 }); // 2. NEW: Handle mouse leaving the main quick-links container 912 913 var quickLinksContainer = document.querySelector('.introduction .quick-links'); 914 915 if (quickLinksContainer) { 916 quickLinksContainer.addEventListener('mouseleave', function () { 917 // Remove 'hover' class from all images 918 document.querySelectorAll('.introduction .quick-links .images .image').forEach(function (img) {//img.classList.remove('hover'); 919 }); // Optional: Reset the images container opacity back to 0 (hidden) when leaving 920 921 var imagesContainer = document.querySelector('.introduction .quick-links .images'); 922 923 if (imagesContainer) { 924 imagesContainer.style.opacity = '0'; 925 } 926 }); 927 } 928}); 929 930/***/ }), 931
932/***/ "./assets/js/components/location-map.js": 933/*!**********************************************!*\ 934 !*** ./assets/js/components/location-map.js ***! 935 \**********************************************/ 936/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 937 938"use strict"; 939__webpack_require__.r(__webpack_exports__); 940/* harmony export */ __webpack_require__.d(__webpack_exports__, { 941/* harmony export */ "LocationMap": () => (/* binding */ LocationMap) 942/* harmony export */ }); 943/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 944function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 945 946function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 947 948function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 949 950 951var LocationMap = /*#__PURE__*/_createClass(function LocationMap() { 952 _classCallCheck(this, LocationMap); 953 954 if (document.querySelector('.location-map')) { 955 document.querySelectorAll('.location-map [data-location]').forEach(function (el) { 956 el.addEventListener("mouseenter", function (e) { 957 if (document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]') && document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]')) { 958 document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]').classList.add('active'); 959 document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]').classList.add('active'); 960 } 961 }); 962 el.addEventListener("mouseleave", function (e) { 963 if (document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]') && document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]')) { 964 document.querySelector('.location-map .location-icon[data-location="' + e.target.getAttribute('data-location') + '"]').classList.remove('active'); 965 document.querySelector('.location-map .location-name[data-location="' + e.target.getAttribute('data-location') + '"]').classList.remove('active'); 966 } 967 }); 968 }); 969 } 970}); 971 972/***/ }), 973
974/***/ "./assets/js/components/menu.js": 975/*!**************************************!*\ 976 !*** ./assets/js/components/menu.js ***! 977 \**************************************/ 978/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 979 980"use strict"; 981__webpack_require__.r(__webpack_exports__); 982/* harmony export */ __webpack_require__.d(__webpack_exports__, { 983/* harmony export */ "Menu": () => (/* binding */ Menu) 984/* harmony export */ }); 985/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 986function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 987 988function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 989 990function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 991 992 993var Menu = /*#__PURE__*/function () { 994 function Menu() { 995 _classCallCheck(this, Menu); 996 997 if (document.querySelector('header .header-navigation a')) { 998 document.querySelectorAll('header .header-navigation a,header .header-navigation .open-dropdown,header .user-navigation a,header .user-navigation .open-dropdown').forEach(function (el) { 999 if (el.nextElementSibling) { 1000 if (el.nextElementSibling.classList.contains("dropdown")) { 1001 el.parentNode.addEventListener("mouseenter", function (e) { 1002 this.showDropdown(el, e); 1003 }.bind(this)); 1004 el.parentNode.addEventListener("click", function (e) { 1005 this.showDropdown(el, e); 1006 }.bind(this)); //el.parentNode.addEventListener("touchstart", function(e) { this.showDropdown(el, e) }.bind(this)); 1007 } 1008 } 1009 }.bind(this)); //remove drop down if use hovers over search 1010 1011 document.querySelector('.search-navigation.fixed').addEventListener("mouseenter", function (e) { 1012 this.enableSearch; 1013 }.bind(this)); 1014 document.querySelector('.search-navigation.fixed').addEventListener("click", function (e) { 1015 this.enableSearch; 1016 }.bind(this)); //document.querySelector('.search-navigation.fixed').addEventListener("touchstart", function(e) { this.enableSearch }.bind(this)); 1017 } 1018 1019 if (document.querySelector('header')) { 1020 document.querySelector('header').addEventListener("mouseleave", this.removeHovers); 1021 document.querySelector('.bg-blur').addEventListener("click", this.removeHovers); //document.querySelector('.bg-blur').addEventListener("touchstart", this.removeHovers); 1022 1023 window.addEventListener('scroll', this.removeHovers); 1024 } 1025 } 1026 1027 _createClass(Menu, [{ 1028 key: "showDropdown", 1029 value: function showDropdown(el, e) { 1030 if (!(0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.closest)(e.target, '.dropdown')) { 1031 e.preventDefault(); 1032 } 1033 1034 document.querySelectorAll('header .header-navigation li, header .user-navigation li').forEach(function (el) { 1035 el.classList.remove('visible'); 1036 }); 1037 el.parentNode.classList.add('visible'); 1038 document.querySelector('.bg-blur').classList.add('active'); 1039 } 1040 }, { 1041 key: "removeHovers", 1042 value: function removeHovers(e) { 1043 document.querySelectorAll('header .header-navigation li, header .user-navigation li').forEach(function (el) { 1044 el.classList.remove('visible'); 1045 document.querySelector('.bg-blur').classList.remove('active'); 1046 }); 1047 } 1048 }, { 1049 key: "enableSearch", 1050 value: function enableSearch(e) { 1051 e.preventDefault(); 1052 document.querySelectorAll('header .header-navigation li').forEach(function (el) { 1053 el.classList.remove('visible'); 1054 document.querySelector('.bg-blur').classList.remove('active'); 1055 }); 1056 } 1057 }]); 1058
1059 return Menu; 1060}(); 1061 1062/***/ }), 1063
1064/***/ "./assets/js/components/notifications.js": 1065/*!***********************************************!*\ 1066 !*** ./assets/js/components/notifications.js ***! 1067 \***********************************************/ 1068/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1069 1070"use strict"; 1071__webpack_require__.r(__webpack_exports__); 1072/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1073/* harmony export */ "Notifications": () => (/* binding */ Notifications) 1074/* harmony export */ }); 1075/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 1076function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1077 1078function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 1079 1080function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1081 1082 1083var Notifications = /*#__PURE__*/_createClass(function Notifications() { 1084 _classCallCheck(this, Notifications); 1085 1086 if (document.querySelector('.notifications .expand')) { 1087 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.notifications .expand'), function () { 1088 document.querySelector('.notifications').classList.toggle("expanded"); 1089 return false; 1090 }); //notifications scroll fix 1091 1092 if (document.querySelector('.notifications')) { 1093 var scrollableDiv = document.querySelector('.notifications'); 1094 scrollableDiv.scrollTop = scrollableDiv.scrollHeight; 1095 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.notifications .expand_wrapper .expand'), function (e) { 1096 e.preventDefault(); 1097 var scrollableDiv = document.querySelector('.notifications'); 1098 scrollableDiv.scrollTop = scrollableDiv.scrollHeight; 1099 }.bind(this)); 1100 } 1101 } 1102}); 1103 1104/***/ }), 1105
1106/***/ "./assets/js/components/open-login-popup.js": 1107/*!**************************************************!*\ 1108 !*** ./assets/js/components/open-login-popup.js ***! 1109 \**************************************************/ 1110/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1111 1112"use strict"; 1113__webpack_require__.r(__webpack_exports__); 1114/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1115/* harmony export */ "OpenLoginPopup": () => (/* binding */ OpenLoginPopup) 1116/* harmony export */ }); 1117/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 1118function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1119 1120function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 1121 1122function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1123 1124 1125var OpenLoginPopup = /*#__PURE__*/_createClass(function OpenLoginPopup() { 1126 _classCallCheck(this, OpenLoginPopup); 1127 1128 var button_list = document.querySelectorAll('.open-login-popup'); 1129 button_list.forEach(function (button) { 1130 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(button, function (e) { 1131 e.preventDefault(); 1132 var hasOpen = false; 1133 var hasAnimate = false; 1134 1135 if (document.querySelector('#login-popup').classList.contains("open")) { 1136 hasOpen = false; 1137 } else { 1138 hasOpen = true; 1139 } 1140 1141 if (hasOpen && document.querySelector('#login-popup').classList.contains("animate")) { 1142 document.querySelector('#login-popup').classList.remove('animate'); 1143 setTimeout(function () { 1144 document.querySelector('#login-popup').classList.remove('open'); 1145 }, 600); 1146 hasAnimate = true; 1147 } else if (hasOpen && !document.querySelector('#login-popup').classList.contains("animate")) { 1148 document.querySelector('#login-popup').classList.add('open'); 1149 setTimeout(function () { 1150 document.querySelector('#login-popup').classList.add('animate'); 1151 }, 10); 1152 } else { 1153 document.querySelector('#login-popup').classList.remove('animate'); 1154 setTimeout(function () { 1155 document.querySelector('#login-popup').classList.remove('open'); 1156 }, 600); 1157 } 1158 1159 return false; 1160 }); 1161 }); 1162 var button_list_mobile = document.querySelectorAll('.open-login-popup-mobile'); 1163 button_list_mobile.forEach(function (button2) { 1164 console.log('run'); 1165 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(button2, function (e) { 1166 console.log('called'); 1167 e.preventDefault(); 1168 var hasOpen = false; 1169 var hasAnimate = false; 1170 1171 if (document.querySelector('#login-popup').classList.contains("open")) { 1172 hasOpen = false; 1173 } else { 1174 hasOpen = true; 1175 } 1176 1177 if (hasOpen && document.querySelector('#login-popup').classList.contains("animate")) { 1178 document.querySelector('#login-popup').classList.remove('animate'); 1179 setTimeout(function () { 1180 document.querySelector('#login-popup').classList.remove('open'); 1181 }, 600); 1182 hasAnimate = true; 1183 } else if (hasOpen && !document.querySelector('#login-popup').classList.contains("animate")) { 1184 document.querySelector('#login-popup').classList.add('open'); 1185 setTimeout(function () { 1186 document.querySelector('#login-popup').classList.add('animate'); 1187 }, 10); 1188 } else { 1189 document.querySelector('#login-popup').classList.remove('animate'); 1190 setTimeout(function () { 1191 document.querySelector('#login-popup').classList.remove('open'); 1192 }, 600); 1193 } 1194 1195 return false;
1196 }); 1197 }); 1198}); 1199 1200/***/ }), 1201
1202/***/ "./assets/js/components/popup.js": 1203/*!***************************************!*\ 1204 !*** ./assets/js/components/popup.js ***! 1205 \***************************************/ 1206/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1207 1208"use strict"; 1209__webpack_require__.r(__webpack_exports__); 1210/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1211/* harmony export */ "Popup": () => (/* binding */ Popup) 1212/* harmony export */ }); 1213/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 1214function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1215 1216function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 1217 1218function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1219 1220 1221var Popup = /*#__PURE__*/_createClass(function Popup() { 1222 var _this = this; 1223 1224 _classCallCheck(this, Popup); 1225 1226 if (document.querySelector('.popup')) { 1227 var open_popup = document.querySelectorAll('.open-popup'); 1228 open_popup.forEach(function (el) { 1229 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) { 1230 e.preventDefault(); 1231 document.querySelector('.popup').classList.add('block'); 1232 setTimeout(function () { 1233 document.querySelector('.popup').classList.add('open'); 1234 }, 10); 1235 }.bind(_this)); 1236 }); 1237 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.popup .modal .close'), function (e) { 1238 e.preventDefault(); 1239 document.querySelector('.popup').classList.remove('open'); 1240 setTimeout(function () { 1241 document.querySelector('.popup').classList.remove('block'); 1242 }, 350); 1243 }.bind(this)); 1244 } 1245}); 1246 1247/***/ }), 1248
1249/***/ "./assets/js/components/responsive-menu.js": 1250/*!*************************************************!*\ 1251 !*** ./assets/js/components/responsive-menu.js ***! 1252 \*************************************************/ 1253/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1254 1255"use strict"; 1256__webpack_require__.r(__webpack_exports__); 1257/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1258/* harmony export */ "ResponsiveMenu": () => (/* binding */ ResponsiveMenu) 1259/* harmony export */ }); 1260/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 1261function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1262 1263function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1264 1265function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 1266 1267function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 1268 1269 1270var ResponsiveMenu = /*#__PURE__*/function () { 1271 function ResponsiveMenu() { 1272 var _this = this; 1273 1274 _classCallCheck(this, ResponsiveMenu); 1275 1276 _defineProperty(this, "slideUp", function (target) { 1277 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 1278 target.style.transitionProperty = 'height, margin, padding'; 1279 target.style.transitionDuration = duration + 'ms'; 1280 target.style.boxSizing = 'border-box'; 1281 target.style.height = target.offsetHeight + 'px'; 1282 target.offsetHeight; 1283 target.style.overflow = 'hidden'; 1284 target.style.height = 0; 1285 target.style.paddingTop = 0; 1286 target.style.paddingBottom = 0; 1287 target.style.marginTop = 0; 1288 target.style.marginBottom = 0; 1289 window.setTimeout(function () { 1290 target.style.display = 'none'; 1291 target.style.removeProperty('height'); 1292 target.style.removeProperty('padding-top'); 1293 target.style.removeProperty('padding-bottom'); 1294 target.style.removeProperty('margin-top'); 1295 target.style.removeProperty('margin-bottom'); 1296 target.style.removeProperty('overflow'); 1297 target.style.removeProperty('transition-duration'); 1298 target.style.removeProperty('transition-property'); //alert("!"); 1299 }, duration); 1300 }); 1301 1302 _defineProperty(this, "slideDown", function (target) { 1303 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 1304 target.style.removeProperty('display'); 1305 var display = window.getComputedStyle(target).display; 1306 if (display === 'none') display = 'block'; 1307 target.style.display = display; 1308 var height = target.offsetHeight; 1309 target.style.overflow = 'hidden'; 1310 target.style.height = 0; 1311 target.style.paddingTop = 0; 1312 target.style.paddingBottom = 0; 1313 target.style.marginTop = 0; 1314 target.style.marginBottom = 0; 1315 target.offsetHeight; 1316 target.style.boxSizing = 'border-box'; 1317 target.style.transitionProperty = "height, margin, padding"; 1318 target.style.transitionDuration = duration + 'ms'; 1319 target.style.height = height + 'px'; 1320 target.style.removeProperty('padding-top'); 1321 target.style.removeProperty('padding-bottom'); 1322 target.style.removeProperty('margin-top'); 1323 target.style.removeProperty('margin-bottom'); 1324 window.setTimeout(function () { 1325 target.style.removeProperty('height'); 1326 target.style.removeProperty('overflow'); 1327 target.style.removeProperty('transition-duration'); 1328 target.style.removeProperty('transition-property'); 1329 }, duration); 1330 }); 1331 1332 _defineProperty(this, "slideToggle", function (target) { 1333 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; 1334 1335 if (window.getComputedStyle(target).display === 'none') { 1336 target.parentNode.classList.add('open'); 1337 return _this.slideDown(target, duration); 1338 } else { 1339 target.parentNode.classList.remove('open'); 1340 return _this.slideUp(target, duration); 1341 } 1342 }); 1343 1344 this.scrollPosition = 0; 1345 1346 if (document.getElementsByClassName('resp-menu-selector').length > 0) { 1347 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.getElementsByClassName('resp-menu-selector')[0], function () { 1348 document.body.classList.toggle("resp-menu-open"); 1349 1350 if (document.body.classList.contains('resp-menu-open')) { 1351 document.body.classList.add("resp-menu-open"); 1352 this.lockViewportScroll(); 1353 } else { 1354 document.body.classList.remove("resp-menu-open"); 1355 this.unlockViewportScroll(); 1356 } 1357 }.bind(this)); 1358 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.resp-menu-open .header-navigation-mobile nav > ul > li:not(.mobile-main) > span', function (e) { 1359 e.preventDefault(); 1360 e.target.parentNode.classList.add('open-mobile-stage-1'); //this.slideToggle(e.target.nextElementSibling); 1361 }.bind(this)); 1362 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.resp-menu-open .header-navigation-mobile nav > ul > li:not(.mobile-main) > span > svg', function (e) { 1363 e.preventDefault(); 1364 e.target.parentNode.parentNode.classList.add('open-mobile-stage-1'); //this.slideToggle(e.target.parentNode.nextElementSibling); 1365 }.bind(this)); 1366 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > span.title', function (e) { 1367 e.preventDefault(); 1368 e.target.parentNode.parentNode.classList.remove('open-mobile-stage-1'); //this.slideToggle(e.target.parentNode.nextElementSibling); 1369 }.bind(this)); 1370 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile .has-dropdown', function (e) { 1371 e.preventDefault(); 1372 e.target.parentNode.classList.toggle('open-mobile-stage-2'); 1373 this.slideToggle(e.target.nextElementSibling); 1374 }.bind(this)); 1375 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile .has-dropdown > span,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile .has-dropdown > svg', function (e) { 1376 e.preventDefault(); 1377 e.target.parentNode.parentNode.classList.toggle('open-mobile-stage-2'); 1378 this.slideToggle(e.target.parentNode.nextElementSibling); 1379 }.bind(this)); 1380 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.menu-style-1-title, .menu-style-1-title *', function (e) { 1381 e.preventDefault(); 1382 1383 if (e.target.classList.contains('menu-style-1-title')) { 1384 if (e.target.classList.contains('open')) { 1385 e.target.classList.remove('open'); 1386 this.slideUp(e.target.nextElementSibling); 1387 } else { 1388 e.target.classList.add('open'); 1389 this.slideDown(e.target.nextElementSibling); 1390 } 1391 } else { 1392 var f = e.target.closest('.menu-style-1-title'); 1393 1394 if (f.classList.contains('open')) { 1395 f.classList.remove('open'); 1396 this.slideUp(f.nextElementSibling); 1397 } else { 1398 f.classList.add('open'); 1399 this.slideDown(f.nextElementSibling); 1400 } 1401 } 1402 }.bind(this)); 1403 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClickDynamic)('.filter-form .filter-head, .filter-form .filter-head *', function (e) { 1404 e.preventDefault(); 1405 1406 if (e.target.classList.contains('filter-head')) { 1407 if (e.target.classList.contains('open')) { 1408 e.target.classList.remove('open'); 1409 this.slideUp(e.target.nextElementSibling); 1410 } else { 1411 e.target.classList.add('open'); 1412 this.slideDown(e.target.nextElementSibling); 1413 } 1414 } else { 1415 var f = e.target.closest('.filter-head'); 1416 1417 if (f.classList.contains('open')) { 1418 f.classList.remove('open'); 1419 this.slideUp(f.nextElementSibling); 1420 } else { 1421 f.classList.add('open'); 1422 this.slideDown(f.nextElementSibling); 1423 } 1424 } 1425 }.bind(this)); 1426 var windowWidth = window.innerWidth; 1427 addEventListener("resize", function (event) {}); 1428 1429 onresize = function onresize(event) { 1430 var newWindowWidth = window.innerWidth; 1431 1432 if (newWindowWidth !== windowWidth) { 1433 document.querySelectorAll('.filter-form .filter-head,.filter-form .filter-body, .menu-style-1,.menu-style-1-title,.dropdown-navigation-detailed,.dropdown-navigation,.header-navigation-mobile nav > ul > li').forEach(function (el) { 1434 //el.removeAttribute("style"); 1435 //el.classList.remove('open'); 1436 //document.body.classList.remove("resp-menu-open"); 1437 //this.unlockViewportScroll(); 1438 var isHorizontalResize = newWindowWidth < windowWidth; 1439 1440 if (isHorizontalResize) { 1441 el.removeAttribute("style"); 1442 } 1443 }.bind(_this)); 1444 document.querySelector('body').removeAttribute("style"); 1445 document.querySelector('body').classList.remove("resp-menu-open"); 1446 } 1447 1448 windowWidth = newWindowWidth; 1449 }; 1450 } 1451 } 1452 1453 _createClass(ResponsiveMenu, [{ 1454 key: "lockViewportScroll", 1455 value: function lockViewportScroll() { 1456 // Store the current scroll position 1457 this.scrollPosition = window.pageYOffset || document.documentElement.scrollTop; 1458 var body = document.querySelector('body'); // Add styles to body element to prevent scrolling 1459 1460 body.style.position = 'fixed'; 1461 body.style.top = "-".concat(this.scrollPosition, "px"); 1462 body.style.overflowY = 'scroll'; 1463 body.style.width = '100%'; 1464 } 1465 }, { 1466 key: "unlockViewportScroll", 1467 value: function unlockViewportScroll() { 1468 // Remove styles from body element to enable scrolling 1469 var body = document.querySelector('body'); 1470 body.style.position = ''; 1471 body.style.top = ''; 1472 body.style.overflowY = ''; 1473 body.style.width = ''; // Restore the previous scroll position 1474 1475 window.scrollTo(0, this.scrollPosition); 1476 } 1477 }]); 1478 1479 return ResponsiveMenu; 1480}(); 1481 1482/***/ }), 1483
1484/***/ "./assets/js/components/scroll-class.js": 1485/*!**********************************************!*\ 1486 !*** ./assets/js/components/scroll-class.js ***! 1487 \**********************************************/ 1488/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1489 1490"use strict"; 1491__webpack_require__.r(__webpack_exports__); 1492/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1493/* harmony export */ "ScrollClass": () => (/* binding */ ScrollClass) 1494/* harmony export */ }); 1495function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1496 1497function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1498 1499function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 1500 1501var ScrollClass = /*#__PURE__*/function () { 1502 function ScrollClass() { 1503 _classCallCheck(this, ScrollClass); 1504 1505 this.element = document.querySelector('header.scroll-up-enabled'); 1506 this.lastScrollTop = 0; 1507 this.currentScrollTop = 0; 1508 this.init(); 1509 } 1510 1511 _createClass(ScrollClass, [{ 1512 key: "init", 1513 value: function init() { 1514 var _this = this; 1515 1516 window.addEventListener('scroll', function () { 1517 _this.currentScrollTop = window.pageYOffset || document.documentElement.scrollTop; 1518 1519 if (!document.querySelector('.resp-menu-open') && document.querySelector('.search-navigation') && !document.querySelector('.search-navigation').classList.contains('visible')) { 1520 if (_this.currentScrollTop > _this.lastScrollTop && _this.currentScrollTop > 200) { 1521 _this.element.classList.add('scroll-down'); 1522 1523 _this.element.classList.remove('scroll-up'); 1524 1525 if (document.querySelector('#login-popup').classList.contains('open')) { 1526 document.querySelector('.open-login-popup').click(); 1527 } 1528 } else { 1529 _this.element.classList.add('scroll-up'); 1530 1531 _this.element.classList.remove('scroll-down'); 1532 } 1533 1534 _this.lastScrollTop = _this.currentScrollTop; 1535 } 1536 }); 1537 } 1538 }]); 1539 1540 return ScrollClass; 1541}(); 1542 1543/***/ }), 1544
1545/***/ "./assets/js/components/search-popups.js": 1546/*!***********************************************!*\ 1547 !*** ./assets/js/components/search-popups.js ***! 1548 \***********************************************/ 1549/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1550 1551"use strict"; 1552__webpack_require__.r(__webpack_exports__); 1553/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1554/* harmony export */ "SearchPopup": () => (/* binding */ SearchPopup) 1555/* harmony export */ }); 1556/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 1557function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1558 1559function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 1560 1561function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1562 1563 1564var SearchPopup = /*#__PURE__*/_createClass(function SearchPopup(name, options) { 1565 _classCallCheck(this, SearchPopup); 1566 1567 this.controller = new AbortController(); 1568 this.signal = this.controller.signal; 1569 var search_selectror = document.querySelectorAll('.search-toggle'); 1570 var search_selector_mobile = document.querySelectorAll('.search-toggle-mobile'); 1571 1572 if (search_selectror) { 1573 search_selectror.forEach(function (el) { 1574 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) { 1575 e.preventDefault(); 1576 var search_selectror = document.querySelector('.search-toggle'); 1577 var search_wrapper = document.querySelector('.search-navigation.fixed'); 1578 search_wrapper.classList.toggle('visible'); 1579 document.querySelector('.search-navigation.fixed .search-loading').classList.remove('visible'); 1580 document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').classList.remove('visible'); 1581 setTimeout(function () { 1582 var searchInput = document.querySelector('.search-navigation.fixed .search-bar-wrapper input'); 1583 searchInput.focus(); 1584 }, 300); 1585 }.bind(this)); 1586 }); 1587 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.search-navigation.fixed #load-results'), function (e) { 1588 e.preventDefault(); 1589 document.querySelector('.search-navigation.fixed .search-loading').classList.add('visible'); 1590 document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').classList.remove('visible'); 1591 var url = document.querySelector('.search-navigation.fixed .search-bar-wrapper input').getAttribute('data-url'); 1592 var value = document.querySelector('.search-navigation.fixed .search-bar-wrapper input').value; 1593 var wordlist = value.match(/\b(\w+)\b/g); 1594 var sendlist = []; 1595 var search = ''; 1596 1597 var Typo = __webpack_require__(/*! typo-js */ "./node_modules/typo-js/typo.js"); 1598 1599 var dictionary = new Typo("en_ZA", false, false, { 1600 dictionaryPath: myScriptData.siteUrl + "/wp-content/themes/SantheTheme v1/dictionaries" 1601 }); 1602 1603 if (wordlist) { 1604 wordlist.forEach(function (word) { 1605 var is_spelled_correctly = dictionary.check(word); 1606 1607 if (is_spelled_correctly) { 1608 sendlist.push(word); 1609 search += word + ' '; 1610 } else { 1611 var array_of_suggestions = dictionary.suggest(word); 1612 sendlist.push(word); 1613 search += word + ' '; 1614 1615 if (array_of_suggestions.length) { 1616 sendlist.push(array_of_suggestions[0]); 1617 search += array_of_suggestions[0] + ' '; 1618 } 1619 } 1620 }.bind(dictionary)); 1621 } 1622 1623 var data = new FormData(); 1624 data.append('action', 'get_ajax_posts'); 1625 data.append('terms', search); 1626 fetch(url, { 1627 method: 'POST', 1628 signal: this.signal, 1629 credentials: 'same-origin', 1630 body: data 1631 }).then(function (response) { 1632 return response.text(); 1633 }).then(function (html) { 1634 console.log(html); 1635 document.querySelector('.search-navigation.fixed .search-loading').classList.remove('visible'); 1636 document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').classList.add('visible'); 1637 document.querySelector('.search-navigation.fixed .search-suggestion-wrapper').innerHTML = html; 1638 }.bind(this))["catch"](function (err) { 1639 // There was an error 1640 document.querySelector('.default-content-area .card-wrapper').classList.remove("loading"); 1641 console.warn('Something went wrong.', err); 1642 }); 1643 }.bind(this)); 1644 } 1645 1646 if (search_selector_mobile) { 1647 search_selector_mobile.forEach(function (el) { 1648 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(el, function (e) { 1649 e.preventDefault(); 1650 var search_selectror = document.querySelector('.search-toggle-mobile'); 1651 var search_wrapper = document.querySelector('.search-mobile'); 1652 search_wrapper.classList.toggle('visible');
1653 document.querySelector('.search-navigation.inline .search-loading').classList.remove('visible'); 1654 document.querySelector('.search-navigation.inline .search-suggestion-wrapper').classList.remove('visible'); 1655 setTimeout(function () { 1656 var searchInput = document.querySelector('.search-navigation.inline .search-bar-wrapper input'); 1657 searchInput.focus(); 1658 }, 300); 1659 }.bind(this)); 1660 }); 1661 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_0__.onClick)(document.querySelector('.search-navigation.inline #load-results'), function (e) { 1662 e.preventDefault(); 1663 document.querySelector('.search-navigation.inline .search-loading').classList.add('visible'); 1664 document.querySelector('.search-navigation.inline .search-suggestion-wrapper').classList.remove('visible'); 1665 var url = document.querySelector('.search-navigation.inline .search-bar-wrapper input').getAttribute('data-url'); 1666 var value = document.querySelector('.search-navigation.inline .search-bar-wrapper input').value; 1667 var wordlist = value.match(/\b(\w+)\b/g); 1668 var sendlist = []; 1669 var search = ''; 1670 1671 var Typo = __webpack_require__(/*! typo-js */ "./node_modules/typo-js/typo.js"); 1672 1673 var dictionary = new Typo("en_ZA", false, false, { 1674 dictionaryPath: myScriptData.siteUrl + "/wp-content/themes/SantheTheme v1/dictionaries" 1675 }); 1676 1677 if (wordlist) { 1678 wordlist.forEach(function (word) { 1679 var is_spelled_correctly = dictionary.check(word); 1680 1681 if (is_spelled_correctly) { 1682 sendlist.push(word); 1683 search += word + ' '; 1684 } else { 1685 var array_of_suggestions = dictionary.suggest(word); 1686 sendlist.push(word); 1687 search += word + ' '; 1688 1689 if (array_of_suggestions.length) { 1690 sendlist.push(array_of_suggestions[0]); 1691 search += array_of_suggestions[0] + ' '; 1692 } 1693 } 1694 }.bind(dictionary)); 1695 } 1696 1697 var data = new FormData(); 1698 data.append('action', 'get_ajax_posts'); 1699 data.append('terms', search); 1700 fetch(url, { 1701 method: 'POST', 1702 signal: this.signal, 1703 credentials: 'same-origin', 1704 body: data 1705 }).then(function (response) { 1706 return response.text(); 1707 }).then(function (html) { 1708 console.log(html); 1709 document.querySelector('.search-navigation.inline .search-loading').classList.remove('visible'); 1710 document.querySelector('.search-navigation.inline .search-suggestion-wrapper').classList.add('visible'); 1711 document.querySelector('.search-navigation.inline .search-suggestion-wrapper').innerHTML = html; 1712 }.bind(this))["catch"](function (err) { 1713 // There was an error 1714 document.querySelector('.default-content-area .card-wrapper').classList.remove("loading"); 1715 console.warn('Something went wrong.', err); 1716 }); 1717 }.bind(this)); 1718 } 1719 /*document.querySelector('.search-navigation.fixed .search-bar-wrapper input').addEventListener('change', function() { 1720 console.log('You selected: ', this.value); 1721 });*/ 1722 1723}); 1724 1725/***/ }), 1726
1727/***/ "./assets/js/components/select-menu-style-1.js": 1728/*!*****************************************************!*\ 1729 !*** ./assets/js/components/select-menu-style-1.js ***! 1730 \*****************************************************/ 1731/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1732 1733"use strict"; 1734__webpack_require__.r(__webpack_exports__); 1735/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1736/* harmony export */ "SelectMenu": () => (/* binding */ SelectMenu) 1737/* harmony export */ }); 1738function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1739 1740function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 1741 1742function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1743 1744var SelectMenu = /*#__PURE__*/_createClass(function SelectMenu() { 1745 _classCallCheck(this, SelectMenu); 1746 1747 if (document.querySelector('#menu-style-1-select')) { 1748 document.querySelector('#menu-style-1-select').onchange = function () { 1749 document.querySelector('#menu-style-1-select-form').submit(); 1750 }; 1751 } 1752}); 1753 1754/***/ }), 1755
vendor: 558,527 bytes, lines 1756-8848
1756/***/ "./node_modules/choices.js/public/assets/scripts/choices.js": 1757/*!******************************************************************!*\ 1758 !*** ./node_modules/choices.js/public/assets/scripts/choices.js ***! 1759 \******************************************************************/ 1760/***/ ((module) => { 1761 1762/*! choices.js v10.2.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme */ 1763(function webpackUniversalModuleDefinition(root, factory) { 1764 if(true) 1765 module.exports = factory(); 1766 else {} 1767})(window, function() { 1768return /******/ (function() { // webpackBootstrap 1769/******/ "use strict"; 1770/******/ var __webpack_modules__ = ({ 1771 1772/***/ 282: 1773/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_632__) { 1774 1775 1776 1777Object.defineProperty(exports, "__esModule", ({ 1778 value: true 1779})); 1780exports.clearChoices = exports.activateChoices = exports.filterChoices = exports.addChoice = void 0; 1781var constants_1 = __nested_webpack_require_632__(883); 1782var addChoice = function (_a) { 1783 var value = _a.value, 1784 label = _a.label, 1785 id = _a.id, 1786 groupId = _a.groupId, 1787 disabled = _a.disabled, 1788 elementId = _a.elementId, 1789 customProperties = _a.customProperties, 1790 placeholder = _a.placeholder, 1791 keyCode = _a.keyCode; 1792 return { 1793 type: constants_1.ACTION_TYPES.ADD_CHOICE, 1794 value: value, 1795 label: label, 1796 id: id, 1797 groupId: groupId, 1798 disabled: disabled, 1799 elementId: elementId, 1800 customProperties: customProperties, 1801 placeholder: placeholder, 1802 keyCode: keyCode 1803 }; 1804}; 1805exports.addChoice = addChoice; 1806var filterChoices = function (results) { 1807 return { 1808 type: constants_1.ACTION_TYPES.FILTER_CHOICES, 1809 results: results 1810 }; 1811}; 1812exports.filterChoices = filterChoices; 1813var activateChoices = function (active) { 1814 if (active === void 0) { 1815 active = true; 1816 } 1817 return { 1818 type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES, 1819 active: active 1820 }; 1821}; 1822exports.activateChoices = activateChoices; 1823var clearChoices = function () { 1824 return { 1825 type: constants_1.ACTION_TYPES.CLEAR_CHOICES 1826 }; 1827}; 1828exports.clearChoices = clearChoices; 1829 1830/***/ }), 1831 1832/***/ 783: 1833/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_2068__) { 1834 1835 1836 1837Object.defineProperty(exports, "__esModule", ({ 1838 value: true 1839})); 1840exports.addGroup = void 0; 1841var constants_1 = __nested_webpack_require_2068__(883); 1842var addGroup = function (_a) { 1843 var value = _a.value, 1844 id = _a.id, 1845 active = _a.active, 1846 disabled = _a.disabled; 1847 return { 1848 type: constants_1.ACTION_TYPES.ADD_GROUP, 1849 value: value, 1850 id: id, 1851 active: active, 1852 disabled: disabled 1853 }; 1854}; 1855exports.addGroup = addGroup; 1856 1857/***/ }), 1858 1859/***/ 464: 1860/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_2595__) { 1861 1862 1863 1864Object.defineProperty(exports, "__esModule", ({ 1865 value: true 1866})); 1867exports.highlightItem = exports.removeItem = exports.addItem = void 0; 1868var constants_1 = __nested_webpack_require_2595__(883); 1869var addItem = function (_a) { 1870 var value = _a.value, 1871 label = _a.label, 1872 id = _a.id, 1873 choiceId = _a.choiceId, 1874 groupId = _a.groupId, 1875 customProperties = _a.customProperties, 1876 placeholder = _a.placeholder, 1877 keyCode = _a.keyCode; 1878 return { 1879 type: constants_1.ACTION_TYPES.ADD_ITEM, 1880 value: value, 1881 label: label, 1882 id: id, 1883 choiceId: choiceId, 1884 groupId: groupId, 1885 customProperties: customProperties, 1886 placeholder: placeholder, 1887 keyCode: keyCode 1888 }; 1889}; 1890exports.addItem = addItem; 1891var removeItem = function (id, choiceId) { 1892 return { 1893 type: constants_1.ACTION_TYPES.REMOVE_ITEM, 1894 id: id, 1895 choiceId: choiceId 1896 }; 1897}; 1898exports.removeItem = removeItem; 1899var highlightItem = function (id, highlighted) { 1900 return { 1901 type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM, 1902 id: id, 1903 highlighted: highlighted 1904 }; 1905}; 1906exports.highlightItem = highlightItem; 1907 1908/***/ }), 1909 1910/***/ 137: 1911/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_3779__) { 1912 1913 1914 1915Object.defineProperty(exports, "__esModule", ({ 1916 value: true 1917})); 1918exports.setIsLoading = exports.resetTo = exports.clearAll = void 0; 1919var constants_1 = __nested_webpack_require_3779__(883); 1920var clearAll = function () { 1921 return { 1922 type: constants_1.ACTION_TYPES.CLEAR_ALL 1923 }; 1924}; 1925exports.clearAll = clearAll; 1926var resetTo = function (state) { 1927 return { 1928 type: constants_1.ACTION_TYPES.RESET_TO, 1929 state: state 1930 }; 1931}; 1932exports.resetTo = resetTo; 1933var setIsLoading = function (isLoading) { 1934 return { 1935 type: constants_1.ACTION_TYPES.SET_IS_LOADING, 1936 isLoading: isLoading 1937 }; 1938}; 1939exports.setIsLoading = setIsLoading; 1940 1941/***/ }), 1942 1943/***/ 373: 1944/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_4494__) { 1945 1946 1947 1948var __spreadArray = this && this.__spreadArray || function (to, from, pack) { 1949 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 1950 if (ar || !(i in from)) { 1951 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 1952 ar[i] = from[i]; 1953 } 1954 } 1955 return to.concat(ar || Array.prototype.slice.call(from)); 1956}; 1957var __importDefault = this && this.__importDefault || function (mod) { 1958 return mod && mod.__esModule ? mod : { 1959 "default": mod 1960 }; 1961}; 1962Object.defineProperty(exports, "__esModule", ({ 1963 value: true 1964})); 1965var deepmerge_1 = __importDefault(__nested_webpack_require_4494__(996)); 1966/* eslint-disable @typescript-eslint/no-explicit-any */ 1967var fuse_js_1 = __importDefault(__nested_webpack_require_4494__(221)); 1968var choices_1 = __nested_webpack_require_4494__(282); 1969var groups_1 = __nested_webpack_require_4494__(783); 1970var items_1 = __nested_webpack_require_4494__(464); 1971var misc_1 = __nested_webpack_require_4494__(137); 1972var components_1 = __nested_webpack_require_4494__(520); 1973var constants_1 = __nested_webpack_require_4494__(883); 1974var defaults_1 = __nested_webpack_require_4494__(789); 1975var utils_1 = __nested_webpack_require_4494__(799); 1976var reducers_1 = __nested_webpack_require_4494__(655); 1977var store_1 = __importDefault(__nested_webpack_require_4494__(744)); 1978var templates_1 = __importDefault(__nested_webpack_require_4494__(686)); 1979/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */ 1980var IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style; 1981var USER_DEFAULTS = {}; 1982/** 1983 * Choices 1984 * @author Josh Johnson<[email protected]> 1985 */ 1986var Choices = /** @class */function () { 1987 function Choices(element, userConfig) { 1988 if (element === void 0) { 1989 element = '[data-choice]'; 1990 } 1991 if (userConfig === void 0) { 1992 userConfig = {}; 1993 } 1994 var _this = this; 1995 if (userConfig.allowHTML === undefined) { 1996 console.warn('Deprecation warning: allowHTML will default to false in a future release. To render HTML in Choices, you will need to set it to true. Setting allowHTML will suppress this message.'); 1997 } 1998 this.config = deepmerge_1.default.all([defaults_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig], 1999 // When merging array configs, replace with a copy of the userConfig array, 2000 // instead of concatenating with the default array 2001 { 2002 arrayMerge: function (_, sourceArray) { 2003 return __spreadArray([], sourceArray, true); 2004 } 2005 }); 2006 var invalidConfigOptions = (0, utils_1.diff)(this.config, defaults_1.DEFAULT_CONFIG); 2007 if (invalidConfigOptions.length) { 2008 console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', ')); 2009 } 2010 var passedElement = typeof element === 'string' ? document.querySelector(element) : element; 2011 if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) { 2012 throw TypeError('Expected one of the following types text|select-one|select-multiple'); 2013 } 2014 this._isTextElement = passedElement.type === constants_1.TEXT_TYPE; 2015 this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE; 2016 this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE; 2017 this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement; 2018 this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled; 2019 if (!['auto', 'always'].includes("".concat(this.config.renderSelectedChoices))) { 2020 this.config.renderSelectedChoices = 'auto'; 2021 } 2022 if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') { 2023 var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter); 2024 this.config.addItemFilter = re.test.bind(re); 2025 } 2026 if (this._isTextElement) { 2027 this.passedElement = new components_1.WrappedInput({ 2028 element: passedElement, 2029 classNames: this.config.classNames, 2030 delimiter: this.config.delimiter 2031 }); 2032 } else { 2033 this.passedElement = new components_1.WrappedSelect({ 2034 element: passedElement, 2035 classNames: this.config.classNames, 2036 template: function (data) { 2037 return _this._templates.option(data); 2038 } 2039 }); 2040 } 2041 this.initialised = false; 2042 this._store = new store_1.default(); 2043 this._initialState = reducers_1.defaultState; 2044 this._currentState = reducers_1.defaultState; 2045 this._prevState = reducers_1.defaultState; 2046 this._currentValue = ''; 2047 this._canSearch = !!this.config.searchEnabled; 2048 this._isScrollingOnIe = false; 2049 this._highlightPosition = 0; 2050 this._wasTap = true; 2051 this._placeholderValue = this._generatePlaceholderValue(); 2052 this._baseId = (0, utils_1.generateId)(this.passedElement.element, 'choices-'); 2053 /** 2054 * setting direction in cases where it's explicitly set on passedElement 2055 * or when calculated direction is different from the document 2056 */ 2057 this._direction = this.passedElement.dir; 2058 if (!this._direction) { 2059 var elementDirection = window.getComputedStyle(this.passedElement.element).direction; 2060 var documentDirection = window.getComputedStyle(document.documentElement).direction; 2061 if (elementDirection !== documentDirection) { 2062 this._direction = elementDirection; 2063 } 2064 } 2065 this._idNames = { 2066 itemChoice: 'item-choice' 2067 }; 2068 if (this._isSelectElement) { 2069 // Assign preset groups from passed element 2070 this._presetGroups = this.passedElement.optionGroups; 2071 // Assign preset options from passed element 2072 this._presetOptions = this.passedElement.options; 2073 } 2074 // Assign preset choices from passed object 2075 this._presetChoices = this.config.choices; 2076 // Assign preset items from passed object first 2077 this._presetItems = this.config.items; 2078 // Add any values passed from attribute 2079 if (this.passedElement.value && this._isTextElement) { 2080 var splitValues = this.passedElement.value.split(this.config.delimiter); 2081 this._presetItems = this._presetItems.concat(splitValues); 2082 } 2083 // Create array of choices from option elements 2084 if (this.passedElement.options) { 2085 this.passedElement.options.forEach(function (option) { 2086 _this._presetChoices.push({ 2087 value: option.value, 2088 label: option.innerHTML, 2089 selected: !!option.selected, 2090 disabled: option.disabled || option.parentNode.disabled, 2091 placeholder: option.value === '' || option.hasAttribute('placeholder'), 2092 customProperties: (0, utils_1.parseCustomProperties)(option.dataset.customProperties) 2093 }); 2094 }); 2095 } 2096 this._render = this._render.bind(this); 2097 this._onFocus = this._onFocus.bind(this); 2098 this._onBlur = this._onBlur.bind(this); 2099 this._onKeyUp = this._onKeyUp.bind(this); 2100 this._onKeyDown = this._onKeyDown.bind(this); 2101 this._onClick = this._onClick.bind(this); 2102 this._onTouchMove = this._onTouchMove.bind(this); 2103 this._onTouchEnd = this._onTouchEnd.bind(this); 2104 this._onMouseDown = this._onMouseDown.bind(this); 2105 this._onMouseOver = this._onMouseOver.bind(this); 2106 this._onFormReset = this._onFormReset.bind(this); 2107 this._onSelectKey = this._onSelectKey.bind(this); 2108 this._onEnterKey = this._onEnterKey.bind(this); 2109 this._onEscapeKey = this._onEscapeKey.bind(this); 2110 this._onDirectionKey = this._onDirectionKey.bind(this); 2111 this._onDeleteKey = this._onDeleteKey.bind(this); 2112 // If element has already been initialised with Choices, fail silently 2113 if (this.passedElement.isActive) { 2114 if (!this.config.silent) { 2115 console.warn('Trying to initialise Choices on element already initialised', { 2116 element: element 2117 }); 2118 } 2119 this.initialised = true; 2120 return; 2121 } 2122 // Let's go 2123 this.init(); 2124 } 2125 Object.defineProperty(Choices, "defaults", { 2126 get: function () { 2127 return Object.preventExtensions({ 2128 get options() { 2129 return USER_DEFAULTS; 2130 }, 2131 get templates() { 2132 return templates_1.default; 2133 } 2134 }); 2135 }, 2136 enumerable: false, 2137 configurable: true 2138 }); 2139 Choices.prototype.init = function () { 2140 if (this.initialised) { 2141 return; 2142 } 2143 this._createTemplates(); 2144 this._createElements(); 2145 this._createStructure(); 2146 this._store.subscribe(this._render); 2147 this._render(); 2148 this._addEventListeners(); 2149 var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled'); 2150 if (shouldDisable) { 2151 this.disable(); 2152 } 2153 this.initialised = true; 2154 var callbackOnInit = this.config.callbackOnInit; 2155 // Run callback if it is a function 2156 if (callbackOnInit && typeof callbackOnInit === 'function') { 2157 callbackOnInit.call(this); 2158 } 2159 }; 2160 Choices.prototype.destroy = function () { 2161 if (!this.initialised) { 2162 return; 2163 } 2164 this._removeEventListeners(); 2165 this.passedElement.reveal(); 2166 this.containerOuter.unwrap(this.passedElement.element); 2167 this.clearStore(); 2168 if (this._isSelectElement) { 2169 this.passedElement.options = this._presetOptions; 2170 } 2171 this._templates = templates_1.default; 2172 this.initialised = false; 2173 }; 2174 Choices.prototype.enable = function () { 2175 if (this.passedElement.isDisabled) { 2176 this.passedElement.enable(); 2177 } 2178 if (this.containerOuter.isDisabled) { 2179 this._addEventListeners(); 2180 this.input.enable(); 2181 this.containerOuter.enable(); 2182 } 2183 return this; 2184 }; 2185 Choices.prototype.disable = function () { 2186 if (!this.passedElement.isDisabled) { 2187 this.passedElement.disable(); 2188 } 2189 if (!this.containerOuter.isDisabled) { 2190 this._removeEventListeners(); 2191 this.input.disable(); 2192 this.containerOuter.disable(); 2193 } 2194 return this; 2195 }; 2196 Choices.prototype.highlightItem = function (item, runEvent) { 2197 if (runEvent === void 0) { 2198 runEvent = true; 2199 } 2200 if (!item || !item.id) { 2201 return this; 2202 } 2203 var id = item.id, 2204 _a = item.groupId, 2205 groupId = _a === void 0 ? -1 : _a, 2206 _b = item.value, 2207 value = _b === void 0 ? '' : _b, 2208 _c = item.label, 2209 label = _c === void 0 ? '' : _c; 2210 var group = groupId >= 0 ? this._store.getGroupById(groupId) : null; 2211 this._store.dispatch((0, items_1.highlightItem)(id, true)); 2212 if (runEvent) { 2213 this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, { 2214 id: id, 2215 value: value, 2216 label: label, 2217 groupValue: group && group.value ? group.value : null 2218 }); 2219 } 2220 return this; 2221 }; 2222 Choices.prototype.unhighlightItem = function (item) { 2223 if (!item || !item.id) { 2224 return this; 2225 } 2226 var id = item.id, 2227 _a = item.groupId, 2228 groupId = _a === void 0 ? -1 : _a, 2229 _b = item.value, 2230 value = _b === void 0 ? '' : _b, 2231 _c = item.label, 2232 label = _c === void 0 ? '' : _c; 2233 var group = groupId >= 0 ? this._store.getGroupById(groupId) : null; 2234 this._store.dispatch((0, items_1.highlightItem)(id, false)); 2235 this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, { 2236 id: id, 2237 value: value, 2238 label: label, 2239 groupValue: group && group.value ? group.value : null 2240 }); 2241 return this; 2242 }; 2243 Choices.prototype.highlightAll = function () { 2244 var _this = this; 2245 this._store.items.forEach(function (item) { 2246 return _this.highlightItem(item); 2247 }); 2248 return this; 2249 }; 2250 Choices.prototype.unhighlightAll = function () { 2251 var _this = this; 2252 this._store.items.forEach(function (item) { 2253 return _this.unhighlightItem(item); 2254 }); 2255 return this; 2256 }; 2257 Choices.prototype.removeActiveItemsByValue = function (value) { 2258 var _this = this; 2259 this._store.activeItems.filter(function (item) { 2260 return item.value === value; 2261 }).forEach(function (item) { 2262 return _this._removeItem(item); 2263 }); 2264 return this; 2265 }; 2266 Choices.prototype.removeActiveItems = function (excludedId) { 2267 var _this = this; 2268 this._store.activeItems.filter(function (_a) { 2269 var id = _a.id; 2270 return id !== excludedId; 2271 }).forEach(function (item) { 2272 return _this._removeItem(item); 2273 }); 2274 return this; 2275 }; 2276 Choices.prototype.removeHighlightedItems = function (runEvent) { 2277 var _this = this; 2278 if (runEvent === void 0) { 2279 runEvent = false; 2280 } 2281 this._store.highlightedActiveItems.forEach(function (item) { 2282 _this._removeItem(item); 2283 // If this action was performed by the user 2284 // trigger the event 2285 if (runEvent) { 2286 _this._triggerChange(item.value); 2287 } 2288 }); 2289 return this; 2290 }; 2291 Choices.prototype.showDropdown = function (preventInputFocus) { 2292 var _this = this; 2293 if (this.dropdown.isActive) { 2294 return this; 2295 } 2296 requestAnimationFrame(function () { 2297 _this.dropdown.show(); 2298 _this.containerOuter.open(_this.dropdown.distanceFromTopWindow); 2299 if (!preventInputFocus && _this._canSearch) { 2300 _this.input.focus(); 2301 } 2302 _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {}); 2303 }); 2304 return this; 2305 }; 2306 Choices.prototype.hideDropdown = function (preventInputBlur) { 2307 var _this = this; 2308 if (!this.dropdown.isActive) { 2309 return this; 2310 } 2311 requestAnimationFrame(function () { 2312 _this.dropdown.hide(); 2313 _this.containerOuter.close(); 2314 if (!preventInputBlur && _this._canSearch) { 2315 _this.input.removeActiveDescendant(); 2316 _this.input.blur(); 2317 } 2318 _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {}); 2319 }); 2320 return this; 2321 }; 2322 Choices.prototype.getValue = function (valueOnly) { 2323 if (valueOnly === void 0) { 2324 valueOnly = false; 2325 } 2326 var values = this._store.activeItems.reduce(function (selectedItems, item) { 2327 var itemValue = valueOnly ? item.value : item; 2328 selectedItems.push(itemValue); 2329 return selectedItems; 2330 }, []); 2331 return this._isSelectOneElement ? values[0] : values; 2332 }; 2333 Choices.prototype.setValue = function (items) { 2334 var _this = this; 2335 if (!this.initialised) { 2336 return this; 2337 } 2338 items.forEach(function (value) { 2339 return _this._setChoiceOrItem(value); 2340 }); 2341 return this; 2342 }; 2343 Choices.prototype.setChoiceByValue = function (value) { 2344 var _this = this; 2345 if (!this.initialised || this._isTextElement) { 2346 return this; 2347 } 2348 // If only one value has been passed, convert to array 2349 var choiceValue = Array.isArray(value) ? value : [value]; 2350 // Loop through each value and 2351 choiceValue.forEach(function (val) { 2352 return _this._findAndSelectChoiceByValue(val); 2353 }); 2354 return this; 2355 }; 2356 /** 2357 * Set choices of select input via an array of objects (or function that returns array of object or promise of it), 2358 * a value field name and a label field name. 2359 * This behaves the same as passing items via the choices option but can be called after initialising Choices. 2360 * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices. 2361 * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc). 2362 * 2363 * **Input types affected:** select-one, select-multiple 2364 * 2365 * @example 2366 * ```js 2367 * const example = new Choices(element); 2368 * 2369 * example.setChoices([ 2370 * {value: 'One', label: 'Label One', disabled: true}, 2371 * {value: 'Two', label: 'Label Two', selected: true}, 2372 * {value: 'Three', label: 'Label Three'}, 2373 * ], 'value', 'label', false); 2374 * ``` 2375 * 2376 * @example 2377 * ```js 2378 * const example = new Choices(element); 2379 * 2380 * example.setChoices(async () => { 2381 * try { 2382 * const items = await fetch('/items'); 2383 * return items.json() 2384 * } catch(err) { 2385 * console.error(err) 2386 * } 2387 * }); 2388 * ``` 2389 * 2390 * @example 2391 * ```js 2392 * const example = new Choices(element); 2393 * 2394 * example.setChoices([{ 2395 * label: 'Group one', 2396 * id: 1, 2397 * disabled: false, 2398 * choices: [ 2399 * {value: 'Child One', label: 'Child One', selected: true}, 2400 * {value: 'Child Two', label: 'Child Two', disabled: true}, 2401 * {value: 'Child Three', label: 'Child Three'}, 2402 * ] 2403 * }, 2404 * { 2405 * label: 'Group two', 2406 * id: 2, 2407 * disabled: false, 2408 * choices: [ 2409 * {value: 'Child Four', label: 'Child Four', disabled: true}, 2410 * {value: 'Child Five', label: 'Child Five'}, 2411 * {value: 'Child Six', label: 'Child Six', customProperties: { 2412 * description: 'Custom description about child six', 2413 * random: 'Another random custom property' 2414 * }}, 2415 * ] 2416 * }], 'value', 'label', false); 2417 * ``` 2418 */ 2419 Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) { 2420 var _this = this; 2421 if (choicesArrayOrFetcher === void 0) { 2422 choicesArrayOrFetcher = []; 2423 } 2424 if (value === void 0) { 2425 value = 'value'; 2426 } 2427 if (label === void 0) { 2428 label = 'label'; 2429 } 2430 if (replaceChoices === void 0) { 2431 replaceChoices = false; 2432 } 2433 if (!this.initialised) { 2434 throw new ReferenceError("setChoices was called on a non-initialized instance of Choices"); 2435 } 2436 if (!this._isSelectElement) { 2437 throw new TypeError("setChoices can't be used with INPUT based Choices"); 2438 } 2439 if (typeof value !== 'string' || !value) { 2440 throw new TypeError("value parameter must be a name of 'value' field in passed objects"); 2441 } 2442 // Clear choices if needed 2443 if (replaceChoices) { 2444 this.clearChoices(); 2445 } 2446 if (typeof choicesArrayOrFetcher === 'function') { 2447 // it's a choices fetcher function 2448 var fetcher_1 = choicesArrayOrFetcher(this); 2449 if (typeof Promise === 'function' && fetcher_1 instanceof Promise) { 2450 // that's a promise 2451 // eslint-disable-next-line no-promise-executor-return 2452 return new Promise(function (resolve) { 2453 return requestAnimationFrame(resolve); 2454 }).then(function () { 2455 return _this._handleLoadingState(true); 2456 }).then(function () { 2457 return fetcher_1; 2458 }).then(function (data) { 2459 return _this.setChoices(data, value, label, replaceChoices); 2460 }).catch(function (err) { 2461 if (!_this.config.silent) { 2462 console.error(err); 2463 } 2464 }).then(function () { 2465 return _this._handleLoadingState(false); 2466 }).then(function () { 2467 return _this; 2468 }); 2469 } 2470 // function returned something else than promise, let's check if it's an array of choices 2471 if (!Array.isArray(fetcher_1)) { 2472 throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: ".concat(typeof fetcher_1)); 2473 } 2474 // recursion with results, it's sync and choices were cleared already 2475 return this.setChoices(fetcher_1, value, label, false); 2476 } 2477 if (!Array.isArray(choicesArrayOrFetcher)) { 2478 throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices"); 2479 } 2480 this.containerOuter.removeLoadingState(); 2481 this._startLoading(); 2482 choicesArrayOrFetcher.forEach(function (groupOrChoice) { 2483 if (groupOrChoice.choices) { 2484 _this._addGroup({ 2485 id: groupOrChoice.id ? parseInt("".concat(groupOrChoice.id), 10) : null, 2486 group: groupOrChoice, 2487 valueKey: value, 2488 labelKey: label 2489 }); 2490 } else { 2491 var choice = groupOrChoice; 2492 _this._addChoice({ 2493 value: choice[value], 2494 label: choice[label], 2495 isSelected: !!choice.selected, 2496 isDisabled: !!choice.disabled, 2497 placeholder: !!choice.placeholder, 2498 customProperties: choice.customProperties 2499 }); 2500 } 2501 }); 2502 this._stopLoading(); 2503 return this; 2504 }; 2505 Choices.prototype.clearChoices = function () { 2506 this._store.dispatch((0, choices_1.clearChoices)()); 2507 return this; 2508 }; 2509 Choices.prototype.clearStore = function () { 2510 this._store.dispatch((0, misc_1.clearAll)()); 2511 return this; 2512 }; 2513 Choices.prototype.clearInput = function () { 2514 var shouldSetInputWidth = !this._isSelectOneElement; 2515 this.input.clear(shouldSetInputWidth); 2516 if (!this._isTextElement && this._canSearch) { 2517 this._isSearching = false; 2518 this._store.dispatch((0, choices_1.activateChoices)(true)); 2519 } 2520 return this; 2521 }; 2522 Choices.prototype._render = function () { 2523 if (this._store.isLoading()) { 2524 return; 2525 } 2526 this._currentState = this._store.state; 2527 var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items; 2528 var shouldRenderChoices = this._isSelectElement; 2529 var shouldRenderItems = this._currentState.items !== this._prevState.items; 2530 if (!stateChanged) { 2531 return; 2532 } 2533 if (shouldRenderChoices) { 2534 this._renderChoices(); 2535 } 2536 if (shouldRenderItems) { 2537 this._renderItems(); 2538 } 2539 this._prevState = this._currentState; 2540 }; 2541 Choices.prototype._renderChoices = function () { 2542 var _this = this; 2543 var _a = this._store, 2544 activeGroups = _a.activeGroups, 2545 activeChoices = _a.activeChoices; 2546 var choiceListFragment = document.createDocumentFragment(); 2547 this.choiceList.clear(); 2548 if (this.config.resetScrollPosition) { 2549 requestAnimationFrame(function () { 2550 return _this.choiceList.scrollToTop(); 2551 }); 2552 } 2553 // If we have grouped options 2554 if (activeGroups.length >= 1 && !this._isSearching) { 2555 // If we have a placeholder choice along with groups 2556 var activePlaceholders = activeChoices.filter(function (activeChoice) { 2557 return activeChoice.placeholder === true && activeChoice.groupId === -1; 2558 }); 2559 if (activePlaceholders.length >= 1) { 2560 choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment); 2561 } 2562 choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment); 2563 } else if (activeChoices.length >= 1) { 2564 choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment); 2565 } 2566 // If we have choices to show 2567 if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) { 2568 var activeItems = this._store.activeItems; 2569 var canAddItem = this._canAddItem(activeItems, this.input.value); 2570 // ...and we can select them 2571 if (canAddItem.response) { 2572 // ...append them and highlight the first choice 2573 this.choiceList.append(choiceListFragment); 2574 this._highlightChoice(); 2575 } else { 2576 var notice = this._getTemplate('notice', canAddItem.notice); 2577 this.choiceList.append(notice); 2578 } 2579 } else { 2580 // Otherwise show a notice 2581 var dropdownItem = void 0; 2582 var notice = void 0; 2583 if (this._isSearching) { 2584 notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText; 2585 dropdownItem = this._getTemplate('notice', notice, 'no-results'); 2586 } else { 2587 notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText; 2588 dropdownItem = this._getTemplate('notice', notice, 'no-choices'); 2589 } 2590 this.choiceList.append(dropdownItem); 2591 } 2592 }; 2593 Choices.prototype._renderItems = function () { 2594 var activeItems = this._store.activeItems || []; 2595 this.itemList.clear(); 2596 // Create a fragment to store our list items 2597 // (so we don't have to update the DOM for each item) 2598 var itemListFragment = this._createItemsFragment(activeItems); 2599 // If we have items to add, append them 2600 if (itemListFragment.childNodes) { 2601 this.itemList.append(itemListFragment); 2602 } 2603 }; 2604 Choices.prototype._createGroupsFragment = function (groups, choices, fragment) { 2605 var _this = this; 2606 if (fragment === void 0) { 2607 fragment = document.createDocumentFragment(); 2608 } 2609 var getGroupChoices = function (group) { 2610 return choices.filter(function (choice) { 2611 if (_this._isSelectOneElement) { 2612 return choice.groupId === group.id; 2613 } 2614 return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected); 2615 }); 2616 }; 2617 // If sorting is enabled, filter groups 2618 if (this.config.shouldSort) { 2619 groups.sort(this.config.sorter); 2620 } 2621 groups.forEach(function (group) { 2622 var groupChoices = getGroupChoices(group); 2623 if (groupChoices.length >= 1) { 2624 var dropdownGroup = _this._getTemplate('choiceGroup', group); 2625 fragment.appendChild(dropdownGroup); 2626 _this._createChoicesFragment(groupChoices, fragment, true); 2627 } 2628 }); 2629 return fragment; 2630 }; 2631 Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) { 2632 var _this = this; 2633 if (fragment === void 0) { 2634 fragment = document.createDocumentFragment(); 2635 } 2636 if (withinGroup === void 0) { 2637 withinGroup = false; 2638 } 2639 // Create a fragment to store our list items (so we don't have to update the DOM for each item) 2640 var _a = this.config, 2641 renderSelectedChoices = _a.renderSelectedChoices, 2642 searchResultLimit = _a.searchResultLimit, 2643 renderChoiceLimit = _a.renderChoiceLimit; 2644 var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter; 2645 var appendChoice = function (choice) { 2646 var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true; 2647 if (shouldRender) { 2648 var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText); 2649 fragment.appendChild(dropdownItem); 2650 } 2651 }; 2652 var rendererableChoices = choices; 2653 if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) { 2654 rendererableChoices = choices.filter(function (choice) { 2655 return !choice.selected; 2656 }); 2657 } 2658 // Split array into placeholders and "normal" choices 2659 var _b = rendererableChoices.reduce(function (acc, choice) { 2660 if (choice.placeholder) { 2661 acc.placeholderChoices.push(choice); 2662 } else { 2663 acc.normalChoices.push(choice); 2664 } 2665 return acc; 2666 }, { 2667 placeholderChoices: [], 2668 normalChoices: [] 2669 }), 2670 placeholderChoices = _b.placeholderChoices, 2671 normalChoices = _b.normalChoices; 2672 // If sorting is enabled or the user is searching, filter choices 2673 if (this.config.shouldSort || this._isSearching) { 2674 normalChoices.sort(filter); 2675 } 2676 var choiceLimit = rendererableChoices.length; 2677 // Prepend placeholeder 2678 var sortedChoices = this._isSelectOneElement ? __spreadArray(__spreadArray([], placeholderChoices, true), normalChoices, true) : normalChoices; 2679 if (this._isSearching) { 2680 choiceLimit = searchResultLimit; 2681 } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) { 2682 choiceLimit = renderChoiceLimit; 2683 } 2684 // Add each choice to dropdown within range 2685 for (var i = 0; i < choiceLimit; i += 1) { 2686 if (sortedChoices[i]) { 2687 appendChoice(sortedChoices[i]); 2688 } 2689 } 2690 return fragment; 2691 }; 2692 Choices.prototype._createItemsFragment = function (items, fragment) { 2693 var _this = this; 2694 if (fragment === void 0) { 2695 fragment = document.createDocumentFragment(); 2696 } 2697 // Create fragment to add elements to 2698 var _a = this.config, 2699 shouldSortItems = _a.shouldSortItems, 2700 sorter = _a.sorter, 2701 removeItemButton = _a.removeItemButton; 2702 // If sorting is enabled, filter items 2703 if (shouldSortItems && !this._isSelectOneElement) { 2704 items.sort(sorter); 2705 } 2706 if (this._isTextElement) { 2707 // Update the value of the hidden input 2708 this.passedElement.value = items.map(function (_a) { 2709 var value = _a.value; 2710 return value; 2711 }).join(this.config.delimiter); 2712 } else { 2713 // Update the options of the hidden input 2714 this.passedElement.options = items; 2715 } 2716 var addItemToFragment = function (item) { 2717 // Create new list element 2718 var listItem = _this._getTemplate('item', item, removeItemButton); 2719 // Append it to list 2720 fragment.appendChild(listItem); 2721 }; 2722 // Add each list item to list 2723 items.forEach(addItemToFragment); 2724 return fragment; 2725 }; 2726 Choices.prototype._triggerChange = function (value) { 2727 if (value === undefined || value === null) { 2728 return; 2729 } 2730 this.passedElement.triggerEvent(constants_1.EVENTS.change, { 2731 value: value 2732 }); 2733 }; 2734 Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) { 2735 this._addItem({ 2736 value: placeholderChoice.value, 2737 label: placeholderChoice.label, 2738 choiceId: placeholderChoice.id, 2739 groupId: placeholderChoice.groupId, 2740 placeholder: placeholderChoice.placeholder 2741 }); 2742 this._triggerChange(placeholderChoice.value); 2743 }; 2744 Choices.prototype._handleButtonAction = function (activeItems, element) { 2745 if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) { 2746 return; 2747 } 2748 var itemId = element.parentNode && element.parentNode.dataset.id; 2749 var itemToRemove = itemId && activeItems.find(function (item) { 2750 return item.id === parseInt(itemId, 10); 2751 }); 2752 if (!itemToRemove) { 2753 return; 2754 } 2755 // Remove item associated with button 2756 this._removeItem(itemToRemove); 2757 this._triggerChange(itemToRemove.value); 2758 if (this._isSelectOneElement && this._store.placeholderChoice) { 2759 this._selectPlaceholderChoice(this._store.placeholderChoice); 2760 } 2761 }; 2762 Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) { 2763 var _this = this; 2764 if (hasShiftKey === void 0) { 2765 hasShiftKey = false; 2766 } 2767 if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) { 2768 return; 2769 } 2770 var passedId = element.dataset.id; 2771 // We only want to select one item with a click 2772 // so we deselect any items that aren't the target 2773 // unless shift is being pressed 2774 activeItems.forEach(function (item) { 2775 if (item.id === parseInt("".concat(passedId), 10) && !item.highlighted) { 2776 _this.highlightItem(item); 2777 } else if (!hasShiftKey && item.highlighted) { 2778 _this.unhighlightItem(item); 2779 } 2780 }); 2781 // Focus input as without focus, a user cannot do anything with a 2782 // highlighted item 2783 this.input.focus(); 2784 }; 2785 Choices.prototype._handleChoiceAction = function (activeItems, element) { 2786 if (!activeItems || !element) { 2787 return; 2788 } 2789 // If we are clicking on an option 2790 var id = element.dataset.id; 2791 var choice = id && this._store.getChoiceById(id); 2792 if (!choice) { 2793 return; 2794 } 2795 var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined; 2796 var hasActiveDropdown = this.dropdown.isActive; 2797 // Update choice keyCode 2798 choice.keyCode = passedKeyCode; 2799 this.passedElement.triggerEvent(constants_1.EVENTS.choice, { 2800 choice: choice 2801 }); 2802 if (!choice.selected && !choice.disabled) { 2803 var canAddItem = this._canAddItem(activeItems, choice.value); 2804 if (canAddItem.response) { 2805 this._addItem({ 2806 value: choice.value, 2807 label: choice.label, 2808 choiceId: choice.id, 2809 groupId: choice.groupId, 2810 customProperties: choice.customProperties, 2811 placeholder: choice.placeholder, 2812 keyCode: choice.keyCode 2813 }); 2814 this._triggerChange(choice.value); 2815 } 2816 } 2817 this.clearInput(); 2818 // We want to close the dropdown if we are dealing with a single select box 2819 if (hasActiveDropdown && this._isSelectOneElement) { 2820 this.hideDropdown(true); 2821 this.containerOuter.focus(); 2822 } 2823 }; 2824 Choices.prototype._handleBackspace = function (activeItems) { 2825 if (!this.config.removeItems || !activeItems) { 2826 return; 2827 } 2828 var lastItem = activeItems[activeItems.length - 1]; 2829 var hasHighlightedItems = activeItems.some(function (item) { 2830 return item.highlighted; 2831 }); 2832 // If editing the last item is allowed and there are not other selected items, 2833 // we can edit the item value. Otherwise if we can remove items, remove all selected items 2834 if (this.config.editItems && !hasHighlightedItems && lastItem) { 2835 this.input.value = lastItem.value; 2836 this.input.setWidth(); 2837 this._removeItem(lastItem); 2838 this._triggerChange(lastItem.value); 2839 } else { 2840 if (!hasHighlightedItems) { 2841 // Highlight last item if none already highlighted 2842 this.highlightItem(lastItem, false); 2843 } 2844 this.removeHighlightedItems(true); 2845 } 2846 }; 2847 Choices.prototype._startLoading = function () { 2848 this._store.dispatch((0, misc_1.setIsLoading)(true)); 2849 }; 2850 Choices.prototype._stopLoading = function () { 2851 this._store.dispatch((0, misc_1.setIsLoading)(false)); 2852 }; 2853 Choices.prototype._handleLoadingState = function (setLoading) { 2854 if (setLoading === void 0) { 2855 setLoading = true; 2856 } 2857 var placeholderItem = this.itemList.getChild(".".concat(this.config.classNames.placeholder)); 2858 if (setLoading) { 2859 this.disable(); 2860 this.containerOuter.addLoadingState(); 2861 if (this._isSelectOneElement) { 2862 if (!placeholderItem) { 2863 placeholderItem = this._getTemplate('placeholder', this.config.loadingText); 2864 if (placeholderItem) { 2865 this.itemList.append(placeholderItem); 2866 } 2867 } else { 2868 placeholderItem.innerHTML = this.config.loadingText; 2869 } 2870 } else { 2871 this.input.placeholder = this.config.loadingText; 2872 } 2873 } else { 2874 this.enable(); 2875 this.containerOuter.removeLoadingState(); 2876 if (this._isSelectOneElement) { 2877 if (placeholderItem) { 2878 placeholderItem.innerHTML = this._placeholderValue || ''; 2879 } 2880 } else { 2881 this.input.placeholder = this._placeholderValue || ''; 2882 } 2883 } 2884 }; 2885 Choices.prototype._handleSearch = function (value) { 2886 if (!this.input.isFocussed) { 2887 return; 2888 } 2889 var choices = this._store.choices; 2890 var _a = this.config, 2891 searchFloor = _a.searchFloor, 2892 searchChoices = _a.searchChoices; 2893 var hasUnactiveChoices = choices.some(function (option) { 2894 return !option.active; 2895 }); 2896 // Check that we have a value to search and the input was an alphanumeric character 2897 if (value !== null && typeof value !== 'undefined' && value.length >= searchFloor) { 2898 var resultCount = searchChoices ? this._searchChoices(value) : 0; 2899 // Trigger search event 2900 this.passedElement.triggerEvent(constants_1.EVENTS.search, { 2901 value: value, 2902 resultCount: resultCount 2903 }); 2904 } else if (hasUnactiveChoices) { 2905 // Otherwise reset choices to active 2906 this._isSearching = false; 2907 this._store.dispatch((0, choices_1.activateChoices)(true)); 2908 } 2909 }; 2910 Choices.prototype._canAddItem = function (activeItems, value) { 2911 var canAddItem = true; 2912 var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText; 2913 if (!this._isSelectOneElement) { 2914 var isDuplicateValue = (0, utils_1.existsInArray)(activeItems, value); 2915 if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) { 2916 // If there is a max entry limit and we have reached that limit 2917 // don't update 2918 canAddItem = false; 2919 notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText; 2920 } 2921 if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) { 2922 canAddItem = false; 2923 notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText; 2924 } 2925 if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) { 2926 canAddItem = false; 2927 notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText; 2928 } 2929 } 2930 return { 2931 response: canAddItem, 2932 notice: notice 2933 }; 2934 }; 2935 Choices.prototype._searchChoices = function (value) { 2936 var newValue = typeof value === 'string' ? value.trim() : value; 2937 var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue; 2938 if (newValue.length < 1 && newValue === "".concat(currentValue, " ")) { 2939 return 0; 2940 } 2941 // If new value matches the desired length and is not the same as the current value with a space 2942 var haystack = this._store.searchableChoices; 2943 var needle = newValue; 2944 var options = Object.assign(this.config.fuseOptions, { 2945 keys: __spreadArray([], this.config.searchFields, true), 2946 includeMatches: true 2947 }); 2948 var fuse = new fuse_js_1.default(haystack, options); 2949 var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303 2950 this._currentValue = newValue; 2951 this._highlightPosition = 0; 2952 this._isSearching = true; 2953 this._store.dispatch((0, choices_1.filterChoices)(results)); 2954 return results.length; 2955 }; 2956 Choices.prototype._addEventListeners = function () { 2957 var documentElement = document.documentElement; 2958 // capture events - can cancel event processing or propagation 2959 documentElement.addEventListener('touchend', this._onTouchEnd, true); 2960 this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true); 2961 this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true); 2962 // passive events - doesn't call `preventDefault` or `stopPropagation` 2963 documentElement.addEventListener('click', this._onClick, { 2964 passive: true 2965 }); 2966 documentElement.addEventListener('touchmove', this._onTouchMove, { 2967 passive: true 2968 }); 2969 this.dropdown.element.addEventListener('mouseover', this._onMouseOver, { 2970 passive: true 2971 }); 2972 if (this._isSelectOneElement) { 2973 this.containerOuter.element.addEventListener('focus', this._onFocus, { 2974 passive: true 2975 }); 2976 this.containerOuter.element.addEventListener('blur', this._onBlur, { 2977 passive: true 2978 }); 2979 } 2980 this.input.element.addEventListener('keyup', this._onKeyUp, { 2981 passive: true 2982 }); 2983 this.input.element.addEventListener('focus', this._onFocus, { 2984 passive: true 2985 }); 2986 this.input.element.addEventListener('blur', this._onBlur, { 2987 passive: true 2988 }); 2989 if (this.input.element.form) { 2990 this.input.element.form.addEventListener('reset', this._onFormReset, { 2991 passive: true 2992 }); 2993 } 2994 this.input.addEventListeners(); 2995 }; 2996 Choices.prototype._removeEventListeners = function () { 2997 var documentElement = document.documentElement; 2998 documentElement.removeEventListener('touchend', this._onTouchEnd, true); 2999 this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true); 3000 this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true); 3001 documentElement.removeEventListener('click', this._onClick); 3002 documentElement.removeEventListener('touchmove', this._onTouchMove); 3003 this.dropdown.element.removeEventListener('mouseover', this._onMouseOver); 3004 if (this._isSelectOneElement) { 3005 this.containerOuter.element.removeEventListener('focus', this._onFocus); 3006 this.containerOuter.element.removeEventListener('blur', this._onBlur); 3007 } 3008 this.input.element.removeEventListener('keyup', this._onKeyUp); 3009 this.input.element.removeEventListener('focus', this._onFocus); 3010 this.input.element.removeEventListener('blur', this._onBlur); 3011 if (this.input.element.form) { 3012 this.input.element.form.removeEventListener('reset', this._onFormReset); 3013 } 3014 this.input.removeEventListeners(); 3015 }; 3016 Choices.prototype._onKeyDown = function (event) { 3017 var keyCode = event.keyCode; 3018 var activeItems = this._store.activeItems; 3019 var hasFocusedInput = this.input.isFocussed; 3020 var hasActiveDropdown = this.dropdown.isActive; 3021 var hasItems = this.itemList.hasChildren(); 3022 var keyString = String.fromCharCode(keyCode); 3023 // eslint-disable-next-line no-control-regex 3024 var wasPrintableChar = /[^\x00-\x1F]/.test(keyString); 3025 var BACK_KEY = constants_1.KEY_CODES.BACK_KEY, 3026 DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY, 3027 ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY, 3028 A_KEY = constants_1.KEY_CODES.A_KEY, 3029 ESC_KEY = constants_1.KEY_CODES.ESC_KEY, 3030 UP_KEY = constants_1.KEY_CODES.UP_KEY, 3031 DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY, 3032 PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY, 3033 PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY; 3034 if (!this._isTextElement && !hasActiveDropdown && wasPrintableChar) { 3035 this.showDropdown(); 3036 if (!this.input.isFocussed) { 3037 /* 3038 We update the input value with the pressed key as 3039 the input was not focussed at the time of key press 3040 therefore does not have the value of the key. 3041 */ 3042 this.input.value += event.key.toLowerCase(); 3043 } 3044 } 3045 switch (keyCode) { 3046 case A_KEY: 3047 return this._onSelectKey(event, hasItems); 3048 case ENTER_KEY: 3049 return this._onEnterKey(event, activeItems, hasActiveDropdown); 3050 case ESC_KEY: 3051 return this._onEscapeKey(hasActiveDropdown); 3052 case UP_KEY: 3053 case PAGE_UP_KEY: 3054 case DOWN_KEY: 3055 case PAGE_DOWN_KEY: 3056 return this._onDirectionKey(event, hasActiveDropdown); 3057 case DELETE_KEY: 3058 case BACK_KEY: 3059 return this._onDeleteKey(event, activeItems, hasFocusedInput); 3060 default: 3061 } 3062 }; 3063 Choices.prototype._onKeyUp = function (_a) { 3064 var target = _a.target, 3065 keyCode = _a.keyCode; 3066 var value = this.input.value; 3067 var activeItems = this._store.activeItems; 3068 var canAddItem = this._canAddItem(activeItems, value); 3069 var backKey = constants_1.KEY_CODES.BACK_KEY, 3070 deleteKey = constants_1.KEY_CODES.DELETE_KEY; 3071 // We are typing into a text input and have a value, we want to show a dropdown 3072 // notice. Otherwise hide the dropdown 3073 if (this._isTextElement) { 3074 var canShowDropdownNotice = canAddItem.notice && value; 3075 if (canShowDropdownNotice) { 3076 var dropdownItem = this._getTemplate('notice', canAddItem.notice); 3077 this.dropdown.element.innerHTML = dropdownItem.outerHTML; 3078 this.showDropdown(true); 3079 } else { 3080 this.hideDropdown(true); 3081 } 3082 } else { 3083 var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey; 3084 var userHasRemovedValue = wasRemovalKeyCode && target && !target.value; 3085 var canReactivateChoices = !this._isTextElement && this._isSearching; 3086 var canSearch = this._canSearch && canAddItem.response; 3087 if (userHasRemovedValue && canReactivateChoices) { 3088 this._isSearching = false; 3089 this._store.dispatch((0, choices_1.activateChoices)(true)); 3090 } else if (canSearch) { 3091 this._handleSearch(this.input.rawValue); 3092 } 3093 } 3094 this._canSearch = this.config.searchEnabled; 3095 }; 3096 Choices.prototype._onSelectKey = function (event, hasItems) { 3097 var ctrlKey = event.ctrlKey, 3098 metaKey = event.metaKey; 3099 var hasCtrlDownKeyPressed = ctrlKey || metaKey; 3100 // If CTRL + A or CMD + A have been pressed and there are items to select 3101 if (hasCtrlDownKeyPressed && hasItems) { 3102 this._canSearch = false; 3103 var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement; 3104 if (shouldHightlightAll) { 3105 this.highlightAll(); 3106 } 3107 } 3108 }; 3109 Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) { 3110 var target = event.target; 3111 var enterKey = constants_1.KEY_CODES.ENTER_KEY; 3112 var targetWasButton = target && target.hasAttribute('data-button'); 3113 if (this._isTextElement && target && target.value) { 3114 var value = this.input.value; 3115 var canAddItem = this._canAddItem(activeItems, value); 3116 if (canAddItem.response) { 3117 this.hideDropdown(true); 3118 this._addItem({ 3119 value: value 3120 }); 3121 this._triggerChange(value); 3122 this.clearInput(); 3123 } 3124 } 3125 if (targetWasButton) { 3126 this._handleButtonAction(activeItems, target); 3127 event.preventDefault(); 3128 } 3129 if (hasActiveDropdown) { 3130 var highlightedChoice = this.dropdown.getChild(".".concat(this.config.classNames.highlightedState)); 3131 if (highlightedChoice) { 3132 // add enter keyCode value 3133 if (activeItems[0]) { 3134 activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign 3135 } 3136 3137 this._handleChoiceAction(activeItems, highlightedChoice); 3138 } 3139 event.preventDefault(); 3140 } else if (this._isSelectOneElement) { 3141 this.showDropdown(); 3142 event.preventDefault(); 3143 } 3144 }; 3145 Choices.prototype._onEscapeKey = function (hasActiveDropdown) { 3146 if (hasActiveDropdown) { 3147 this.hideDropdown(true); 3148 this.containerOuter.focus(); 3149 } 3150 }; 3151 Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) { 3152 var keyCode = event.keyCode, 3153 metaKey = event.metaKey; 3154 var downKey = constants_1.KEY_CODES.DOWN_KEY, 3155 pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY, 3156 pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY; 3157 // If up or down key is pressed, traverse through options 3158 if (hasActiveDropdown || this._isSelectOneElement) { 3159 this.showDropdown(); 3160 this._canSearch = false; 3161 var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1; 3162 var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey; 3163 var selectableChoiceIdentifier = '[data-choice-selectable]'; 3164 var nextEl = void 0; 3165 if (skipKey) { 3166 if (directionInt > 0) { 3167 nextEl = this.dropdown.element.querySelector("".concat(selectableChoiceIdentifier, ":last-of-type")); 3168 } else { 3169 nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier); 3170 } 3171 } else { 3172 var currentEl = this.dropdown.element.querySelector(".".concat(this.config.classNames.highlightedState)); 3173 if (currentEl) { 3174 nextEl = (0, utils_1.getAdjacentEl)(currentEl, selectableChoiceIdentifier, directionInt); 3175 } else { 3176 nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier); 3177 } 3178 } 3179 if (nextEl) { 3180 // We prevent default to stop the cursor moving 3181 // when pressing the arrow 3182 if (!(0, utils_1.isScrolledIntoView)(nextEl, this.choiceList.element, directionInt)) { 3183 this.choiceList.scrollToChildElement(nextEl, directionInt); 3184 } 3185 this._highlightChoice(nextEl); 3186 } 3187 // Prevent default to maintain cursor position whilst 3188 // traversing dropdown options 3189 event.preventDefault(); 3190 } 3191 }; 3192 Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) { 3193 var target = event.target; 3194 // If backspace or delete key is pressed and the input has no value 3195 if (!this._isSelectOneElement && !target.value && hasFocusedInput) { 3196 this._handleBackspace(activeItems); 3197 event.preventDefault(); 3198 } 3199 }; 3200 Choices.prototype._onTouchMove = function () { 3201 if (this._wasTap) { 3202 this._wasTap = false; 3203 } 3204 }; 3205 Choices.prototype._onTouchEnd = function (event) { 3206 var target = (event || event.touches[0]).target; 3207 var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target); 3208 if (touchWasWithinContainer) { 3209 var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element; 3210 if (containerWasExactTarget) { 3211 if (this._isTextElement) { 3212 this.input.focus(); 3213 } else if (this._isSelectMultipleElement) { 3214 this.showDropdown(); 3215 } 3216 } 3217 // Prevents focus event firing 3218 event.stopPropagation(); 3219 } 3220 this._wasTap = true; 3221 }; 3222 /** 3223 * Handles mousedown event in capture mode for containetOuter.element 3224 */ 3225 Choices.prototype._onMouseDown = function (event) { 3226 var target = event.target; 3227 if (!(target instanceof HTMLElement)) { 3228 return; 3229 } 3230 // If we have our mouse down on the scrollbar and are on IE11... 3231 if (IS_IE11 && this.choiceList.element.contains(target)) { 3232 // check if click was on a scrollbar area 3233 var firstChoice = this.choiceList.element.firstElementChild; 3234 var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft; 3235 this._isScrollingOnIe = isOnScrollbar; 3236 } 3237 if (target === this.input.element) { 3238 return; 3239 } 3240 var item = target.closest('[data-button],[data-item],[data-choice]'); 3241 if (item instanceof HTMLElement) { 3242 var hasShiftKey = event.shiftKey; 3243 var activeItems = this._store.activeItems; 3244 var dataset = item.dataset; 3245 if ('button' in dataset) { 3246 this._handleButtonAction(activeItems, item); 3247 } else if ('item' in dataset) { 3248 this._handleItemAction(activeItems, item, hasShiftKey); 3249 } else if ('choice' in dataset) { 3250 this._handleChoiceAction(activeItems, item); 3251 } 3252 } 3253 event.preventDefault(); 3254 }; 3255 /** 3256 * Handles mouseover event over this.dropdown 3257 * @param {MouseEvent} event 3258 */ 3259 Choices.prototype._onMouseOver = function (_a) { 3260 var target = _a.target; 3261 if (target instanceof HTMLElement && 'choice' in target.dataset) { 3262 this._highlightChoice(target); 3263 } 3264 }; 3265 Choices.prototype._onClick = function (_a) { 3266 var target = _a.target; 3267 var clickWasWithinContainer = this.containerOuter.element.contains(target); 3268 if (clickWasWithinContainer) { 3269 if (!this.dropdown.isActive && !this.containerOuter.isDisabled) { 3270 if (this._isTextElement) { 3271 if (document.activeElement !== this.input.element) { 3272 this.input.focus(); 3273 } 3274 } else { 3275 this.showDropdown(); 3276 this.containerOuter.focus(); 3277 } 3278 } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) { 3279 this.hideDropdown(); 3280 } 3281 } else { 3282 var hasHighlightedItems = this._store.highlightedActiveItems.length > 0; 3283 if (hasHighlightedItems) { 3284 this.unhighlightAll(); 3285 } 3286 this.containerOuter.removeFocusState(); 3287 this.hideDropdown(true); 3288 } 3289 }; 3290 Choices.prototype._onFocus = function (_a) { 3291 var _b; 3292 var _this = this; 3293 var target = _a.target; 3294 var focusWasWithinContainer = target && this.containerOuter.element.contains(target); 3295 if (!focusWasWithinContainer) { 3296 return; 3297 } 3298 var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () { 3299 if (target === _this.input.element) { 3300 _this.containerOuter.addFocusState(); 3301 } 3302 }, _b[constants_1.SELECT_ONE_TYPE] = function () { 3303 _this.containerOuter.addFocusState(); 3304 if (target === _this.input.element) { 3305 _this.showDropdown(true); 3306 } 3307 }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () { 3308 if (target === _this.input.element) { 3309 _this.showDropdown(true); 3310 // If element is a select box, the focused element is the container and the dropdown 3311 // isn't already open, focus and show dropdown 3312 _this.containerOuter.addFocusState(); 3313 } 3314 }, _b); 3315 focusActions[this.passedElement.element.type](); 3316 }; 3317 Choices.prototype._onBlur = function (_a) { 3318 var _b; 3319 var _this = this; 3320 var target = _a.target; 3321 var blurWasWithinContainer = target && this.containerOuter.element.contains(target); 3322 if (blurWasWithinContainer && !this._isScrollingOnIe) { 3323 var activeItems = this._store.activeItems; 3324 var hasHighlightedItems_1 = activeItems.some(function (item) { 3325 return item.highlighted; 3326 }); 3327 var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () { 3328 if (target === _this.input.element) { 3329 _this.containerOuter.removeFocusState(); 3330 if (hasHighlightedItems_1) { 3331 _this.unhighlightAll(); 3332 } 3333 _this.hideDropdown(true); 3334 } 3335 }, _b[constants_1.SELECT_ONE_TYPE] = function () { 3336 _this.containerOuter.removeFocusState(); 3337 if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) { 3338 _this.hideDropdown(true); 3339 } 3340 }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () { 3341 if (target === _this.input.element) { 3342 _this.containerOuter.removeFocusState(); 3343 _this.hideDropdown(true); 3344 if (hasHighlightedItems_1) { 3345 _this.unhighlightAll(); 3346 } 3347 } 3348 }, _b); 3349 blurActions[this.passedElement.element.type](); 3350 } else { 3351 // On IE11, clicking the scollbar blurs our input and thus 3352 // closes the dropdown. To stop this, we refocus our input 3353 // if we know we are on IE *and* are scrolling. 3354 this._isScrollingOnIe = false; 3355 this.input.element.focus(); 3356 } 3357 }; 3358 Choices.prototype._onFormReset = function () { 3359 this._store.dispatch((0, misc_1.resetTo)(this._initialState)); 3360 }; 3361 Choices.prototype._highlightChoice = function (el) { 3362 var _this = this; 3363 if (el === void 0) { 3364 el = null; 3365 } 3366 var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]')); 3367 if (!choices.length) { 3368 return; 3369 } 3370 var passedEl = el; 3371 var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(".".concat(this.config.classNames.highlightedState))); 3372 // Remove any highlighted choices 3373 highlightedChoices.forEach(function (choice) { 3374 choice.classList.remove(_this.config.classNames.highlightedState); 3375 choice.setAttribute('aria-selected', 'false'); 3376 }); 3377 if (passedEl) { 3378 this._highlightPosition = choices.indexOf(passedEl); 3379 } else { 3380 // Highlight choice based on last known highlight location 3381 if (choices.length > this._highlightPosition) { 3382 // If we have an option to highlight 3383 passedEl = choices[this._highlightPosition]; 3384 } else { 3385 // Otherwise highlight the option before 3386 passedEl = choices[choices.length - 1]; 3387 } 3388 if (!passedEl) { 3389 passedEl = choices[0]; 3390 } 3391 } 3392 passedEl.classList.add(this.config.classNames.highlightedState); 3393 passedEl.setAttribute('aria-selected', 'true'); 3394 this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, { 3395 el: passedEl 3396 }); 3397 if (this.dropdown.isActive) { 3398 // IE11 ignores aria-label and blocks virtual keyboard 3399 // if aria-activedescendant is set without a dropdown 3400 this.input.setActiveDescendant(passedEl.id); 3401 this.containerOuter.setActiveDescendant(passedEl.id); 3402 } 3403 }; 3404 Choices.prototype._addItem = function (_a) { 3405 var value = _a.value, 3406 _b = _a.label, 3407 label = _b === void 0 ? null : _b, 3408 _c = _a.choiceId, 3409 choiceId = _c === void 0 ? -1 : _c, 3410 _d = _a.groupId, 3411 groupId = _d === void 0 ? -1 : _d, 3412 _e = _a.customProperties, 3413 customProperties = _e === void 0 ? {} : _e, 3414 _f = _a.placeholder, 3415 placeholder = _f === void 0 ? false : _f, 3416 _g = _a.keyCode, 3417 keyCode = _g === void 0 ? -1 : _g; 3418 var passedValue = typeof value === 'string' ? value.trim() : value; 3419 var items = this._store.items; 3420 var passedLabel = label || passedValue; 3421 var passedOptionId = choiceId || -1; 3422 var group = groupId >= 0 ? this._store.getGroupById(groupId) : null; 3423 var id = items ? items.length + 1 : 1; 3424 // If a prepended value has been passed, prepend it 3425 if (this.config.prependValue) { 3426 passedValue = this.config.prependValue + passedValue.toString(); 3427 } 3428 // If an appended value has been passed, append it 3429 if (this.config.appendValue) { 3430 passedValue += this.config.appendValue.toString(); 3431 } 3432 this._store.dispatch((0, items_1.addItem)({ 3433 value: passedValue, 3434 label: passedLabel, 3435 id: id, 3436 choiceId: passedOptionId, 3437 groupId: groupId, 3438 customProperties: customProperties, 3439 placeholder: placeholder, 3440 keyCode: keyCode 3441 })); 3442 if (this._isSelectOneElement) { 3443 this.removeActiveItems(id); 3444 } 3445 // Trigger change event 3446 this.passedElement.triggerEvent(constants_1.EVENTS.addItem, { 3447 id: id, 3448 value: passedValue, 3449 label: passedLabel, 3450 customProperties: customProperties, 3451 groupValue: group && group.value ? group.value : null, 3452 keyCode: keyCode 3453 }); 3454 }; 3455 Choices.prototype._removeItem = function (item) { 3456 var id = item.id, 3457 value = item.value, 3458 label = item.label, 3459 customProperties = item.customProperties, 3460 choiceId = item.choiceId, 3461 groupId = item.groupId; 3462 var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null; 3463 if (!id || !choiceId) { 3464 return; 3465 } 3466 this._store.dispatch((0, items_1.removeItem)(id, choiceId)); 3467 this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, { 3468 id: id, 3469 value: value, 3470 label: label, 3471 customProperties: customProperties, 3472 groupValue: group && group.value ? group.value : null 3473 }); 3474 }; 3475 Choices.prototype._addChoice = function (_a) { 3476 var value = _a.value, 3477 _b = _a.label, 3478 label = _b === void 0 ? null : _b, 3479 _c = _a.isSelected, 3480 isSelected = _c === void 0 ? false : _c, 3481 _d = _a.isDisabled, 3482 isDisabled = _d === void 0 ? false : _d, 3483 _e = _a.groupId, 3484 groupId = _e === void 0 ? -1 : _e, 3485 _f = _a.customProperties, 3486 customProperties = _f === void 0 ? {} : _f, 3487 _g = _a.placeholder, 3488 placeholder = _g === void 0 ? false : _g, 3489 _h = _a.keyCode, 3490 keyCode = _h === void 0 ? -1 : _h; 3491 if (typeof value === 'undefined' || value === null) { 3492 return; 3493 } 3494 // Generate unique id 3495 var choices = this._store.choices; 3496 var choiceLabel = label || value; 3497 var choiceId = choices ? choices.length + 1 : 1; 3498 var choiceElementId = "".concat(this._baseId, "-").concat(this._idNames.itemChoice, "-").concat(choiceId); 3499 this._store.dispatch((0, choices_1.addChoice)({ 3500 id: choiceId, 3501 groupId: groupId, 3502 elementId: choiceElementId, 3503 value: value, 3504 label: choiceLabel, 3505 disabled: isDisabled, 3506 customProperties: customProperties, 3507 placeholder: placeholder, 3508 keyCode: keyCode 3509 })); 3510 if (isSelected) { 3511 this._addItem({ 3512 value: value, 3513 label: choiceLabel, 3514 choiceId: choiceId, 3515 customProperties: customProperties, 3516 placeholder: placeholder, 3517 keyCode: keyCode 3518 }); 3519 } 3520 }; 3521 Choices.prototype._addGroup = function (_a) { 3522 var _this = this; 3523 var group = _a.group, 3524 id = _a.id, 3525 _b = _a.valueKey, 3526 valueKey = _b === void 0 ? 'value' : _b, 3527 _c = _a.labelKey, 3528 labelKey = _c === void 0 ? 'label' : _c; 3529 var groupChoices = (0, utils_1.isType)('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION')); 3530 var groupId = id || Math.floor(new Date().valueOf() * Math.random()); 3531 var isDisabled = group.disabled ? group.disabled : false; 3532 if (groupChoices) { 3533 this._store.dispatch((0, groups_1.addGroup)({ 3534 value: group.label, 3535 id: groupId, 3536 active: true, 3537 disabled: isDisabled 3538 })); 3539 var addGroupChoices = function (choice) { 3540 var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled; 3541 _this._addChoice({ 3542 value: choice[valueKey], 3543 label: (0, utils_1.isType)('Object', choice) ? choice[labelKey] : choice.innerHTML, 3544 isSelected: choice.selected, 3545 isDisabled: isOptDisabled, 3546 groupId: groupId, 3547 customProperties: choice.customProperties, 3548 placeholder: choice.placeholder 3549 }); 3550 }; 3551 groupChoices.forEach(addGroupChoices); 3552 } else { 3553 this._store.dispatch((0, groups_1.addGroup)({ 3554 value: group.label, 3555 id: group.id, 3556 active: false, 3557 disabled: group.disabled 3558 })); 3559 } 3560 }; 3561 Choices.prototype._getTemplate = function (template) { 3562 var _a; 3563 var args = []; 3564 for (var _i = 1; _i < arguments.length; _i++) { 3565 args[_i - 1] = arguments[_i]; 3566 } 3567 return (_a = this._templates[template]).call.apply(_a, __spreadArray([this, this.config], args, false)); 3568 }; 3569 Choices.prototype._createTemplates = function () { 3570 var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates; 3571 var userTemplates = {}; 3572 if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') { 3573 userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl); 3574 } 3575 this._templates = (0, deepmerge_1.default)(templates_1.default, userTemplates); 3576 }; 3577 Choices.prototype._createElements = function () { 3578 this.containerOuter = new components_1.Container({ 3579 element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type, this.config.labelId), 3580 classNames: this.config.classNames, 3581 type: this.passedElement.element.type, 3582 position: this.config.position 3583 }); 3584 this.containerInner = new components_1.Container({ 3585 element: this._getTemplate('containerInner'), 3586 classNames: this.config.classNames, 3587 type: this.passedElement.element.type, 3588 position: this.config.position 3589 }); 3590 this.input = new components_1.Input({ 3591 element: this._getTemplate('input', this._placeholderValue), 3592 classNames: this.config.classNames, 3593 type: this.passedElement.element.type, 3594 preventPaste: !this.config.paste 3595 }); 3596 this.choiceList = new components_1.List({ 3597 element: this._getTemplate('choiceList', this._isSelectOneElement) 3598 }); 3599 this.itemList = new components_1.List({ 3600 element: this._getTemplate('itemList', this._isSelectOneElement) 3601 }); 3602 this.dropdown = new components_1.Dropdown({ 3603 element: this._getTemplate('dropdown'), 3604 classNames: this.config.classNames, 3605 type: this.passedElement.element.type 3606 }); 3607 }; 3608 Choices.prototype._createStructure = function () { 3609 // Hide original element 3610 this.passedElement.conceal(); 3611 // Wrap input in container preserving DOM ordering 3612 this.containerInner.wrap(this.passedElement.element); 3613 // Wrapper inner container with outer container 3614 this.containerOuter.wrap(this.containerInner.element); 3615 if (this._isSelectOneElement) { 3616 this.input.placeholder = this.config.searchPlaceholderValue || ''; 3617 } else if (this._placeholderValue) { 3618 this.input.placeholder = this._placeholderValue; 3619 this.input.setWidth(); 3620 } 3621 this.containerOuter.element.appendChild(this.containerInner.element); 3622 this.containerOuter.element.appendChild(this.dropdown.element); 3623 this.containerInner.element.appendChild(this.itemList.element); 3624 if (!this._isTextElement) { 3625 this.dropdown.element.appendChild(this.choiceList.element); 3626 } 3627 if (!this._isSelectOneElement) { 3628 this.containerInner.element.appendChild(this.input.element); 3629 } else if (this.config.searchEnabled) { 3630 this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild); 3631 } 3632 if (this._isSelectElement) { 3633 this._highlightPosition = 0; 3634 this._isSearching = false; 3635 this._startLoading(); 3636 if (this._presetGroups.length) { 3637 this._addPredefinedGroups(this._presetGroups); 3638 } else { 3639 this._addPredefinedChoices(this._presetChoices); 3640 } 3641 this._stopLoading(); 3642 } 3643 if (this._isTextElement) { 3644 this._addPredefinedItems(this._presetItems); 3645 } 3646 }; 3647 Choices.prototype._addPredefinedGroups = function (groups) { 3648 var _this = this; 3649 // If we have a placeholder option 3650 var placeholderChoice = this.passedElement.placeholderOption; 3651 if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') { 3652 this._addChoice({ 3653 value: placeholderChoice.value, 3654 label: placeholderChoice.innerHTML, 3655 isSelected: placeholderChoice.selected, 3656 isDisabled: placeholderChoice.disabled, 3657 placeholder: true 3658 }); 3659 } 3660 groups.forEach(function (group) { 3661 return _this._addGroup({ 3662 group: group, 3663 id: group.id || null 3664 }); 3665 }); 3666 }; 3667 Choices.prototype._addPredefinedChoices = function (choices) { 3668 var _this = this; 3669 // If sorting is enabled or the user is searching, filter choices 3670 if (this.config.shouldSort) { 3671 choices.sort(this.config.sorter); 3672 } 3673 var hasSelectedChoice = choices.some(function (choice) { 3674 return choice.selected; 3675 }); 3676 var firstEnabledChoiceIndex = choices.findIndex(function (choice) { 3677 return choice.disabled === undefined || !choice.disabled; 3678 }); 3679 choices.forEach(function (choice, index) { 3680 var _a = choice.value, 3681 value = _a === void 0 ? '' : _a, 3682 label = choice.label, 3683 customProperties = choice.customProperties, 3684 placeholder = choice.placeholder; 3685 if (_this._isSelectElement) { 3686 // If the choice is actually a group 3687 if (choice.choices) { 3688 _this._addGroup({ 3689 group: choice, 3690 id: choice.id || null 3691 }); 3692 } else { 3693 /** 3694 * If there is a selected choice already or the choice is not the first in 3695 * the array, add each choice normally. 3696 * 3697 * Otherwise we pre-select the first enabled choice in the array ("select-one" only) 3698 */ 3699 var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex; 3700 var isSelected = shouldPreselect ? true : choice.selected; 3701 var isDisabled = choice.disabled; 3702 _this._addChoice({ 3703 value: value, 3704 label: label, 3705 isSelected: !!isSelected, 3706 isDisabled: !!isDisabled, 3707 placeholder: !!placeholder, 3708 customProperties: customProperties 3709 }); 3710 } 3711 } else { 3712 _this._addChoice({ 3713 value: value, 3714 label: label, 3715 isSelected: !!choice.selected, 3716 isDisabled: !!choice.disabled, 3717 placeholder: !!choice.placeholder, 3718 customProperties: customProperties 3719 }); 3720 } 3721 }); 3722 }; 3723 Choices.prototype._addPredefinedItems = function (items) { 3724 var _this = this; 3725 items.forEach(function (item) { 3726 if (typeof item === 'object' && item.value) { 3727 _this._addItem({ 3728 value: item.value, 3729 label: item.label, 3730 choiceId: item.id, 3731 customProperties: item.customProperties, 3732 placeholder: item.placeholder 3733 }); 3734 } 3735 if (typeof item === 'string') { 3736 _this._addItem({ 3737 value: item 3738 }); 3739 } 3740 }); 3741 }; 3742 Choices.prototype._setChoiceOrItem = function (item) { 3743 var _this = this; 3744 var itemType = (0, utils_1.getType)(item).toLowerCase(); 3745 var handleType = { 3746 object: function () { 3747 if (!item.value) { 3748 return; 3749 } 3750 // If we are dealing with a select input, we need to create an option first 3751 // that is then selected. For text inputs we can just add items normally. 3752 if (!_this._isTextElement) { 3753 _this._addChoice({ 3754 value: item.value, 3755 label: item.label, 3756 isSelected: true, 3757 isDisabled: false, 3758 customProperties: item.customProperties, 3759 placeholder: item.placeholder 3760 }); 3761 } else { 3762 _this._addItem({ 3763 value: item.value, 3764 label: item.label, 3765 choiceId: item.id, 3766 customProperties: item.customProperties, 3767 placeholder: item.placeholder 3768 }); 3769 } 3770 }, 3771 string: function () { 3772 if (!_this._isTextElement) { 3773 _this._addChoice({ 3774 value: item, 3775 label: item, 3776 isSelected: true, 3777 isDisabled: false 3778 }); 3779 } else { 3780 _this._addItem({ 3781 value: item 3782 }); 3783 } 3784 } 3785 }; 3786 handleType[itemType](); 3787 }; 3788 Choices.prototype._findAndSelectChoiceByValue = function (value) { 3789 var _this = this; 3790 var choices = this._store.choices; 3791 // Check 'value' property exists and the choice isn't already selected 3792 var foundChoice = choices.find(function (choice) { 3793 return _this.config.valueComparer(choice.value, value); 3794 }); 3795 if (foundChoice && !foundChoice.selected) { 3796 this._addItem({ 3797 value: foundChoice.value, 3798 label: foundChoice.label, 3799 choiceId: foundChoice.id, 3800 groupId: foundChoice.groupId, 3801 customProperties: foundChoice.customProperties, 3802 placeholder: foundChoice.placeholder, 3803 keyCode: foundChoice.keyCode 3804 }); 3805 } 3806 }; 3807 Choices.prototype._generatePlaceholderValue = function () { 3808 if (this._isSelectElement && this.passedElement.placeholderOption) { 3809 var placeholderOption = this.passedElement.placeholderOption; 3810 return placeholderOption ? placeholderOption.text : null; 3811 } 3812 var _a = this.config, 3813 placeholder = _a.placeholder, 3814 placeholderValue = _a.placeholderValue; 3815 var dataset = this.passedElement.element.dataset; 3816 if (placeholder) { 3817 if (placeholderValue) { 3818 return placeholderValue; 3819 } 3820 if (dataset.placeholder) { 3821 return dataset.placeholder; 3822 } 3823 } 3824 return null; 3825 }; 3826 return Choices; 3827}(); 3828exports["default"] = Choices; 3829 3830/***/ }), 3831 3832/***/ 613: 3833/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_74916__) { 3834 3835 3836 3837Object.defineProperty(exports, "__esModule", ({ 3838 value: true 3839})); 3840var utils_1 = __nested_webpack_require_74916__(799); 3841var constants_1 = __nested_webpack_require_74916__(883); 3842var Container = /** @class */function () { 3843 function Container(_a) { 3844 var element = _a.element, 3845 type = _a.type, 3846 classNames = _a.classNames, 3847 position = _a.position; 3848 this.element = element; 3849 this.classNames = classNames; 3850 this.type = type; 3851 this.position = position; 3852 this.isOpen = false; 3853 this.isFlipped = false; 3854 this.isFocussed = false; 3855 this.isDisabled = false; 3856 this.isLoading = false; 3857 this._onFocus = this._onFocus.bind(this); 3858 this._onBlur = this._onBlur.bind(this); 3859 } 3860 Container.prototype.addEventListeners = function () { 3861 this.element.addEventListener('focus', this._onFocus); 3862 this.element.addEventListener('blur', this._onBlur); 3863 }; 3864 Container.prototype.removeEventListeners = function () { 3865 this.element.removeEventListener('focus', this._onFocus); 3866 this.element.removeEventListener('blur', this._onBlur); 3867 }; 3868 /** 3869 * Determine whether container should be flipped based on passed 3870 * dropdown position 3871 */ 3872 Container.prototype.shouldFlip = function (dropdownPos) { 3873 if (typeof dropdownPos !== 'number') { 3874 return false; 3875 } 3876 // If flip is enabled and the dropdown bottom position is 3877 // greater than the window height flip the dropdown. 3878 var shouldFlip = false; 3879 if (this.position === 'auto') { 3880 shouldFlip = !window.matchMedia("(min-height: ".concat(dropdownPos + 1, "px)")).matches; 3881 } else if (this.position === 'top') { 3882 shouldFlip = true; 3883 } 3884 return shouldFlip; 3885 }; 3886 Container.prototype.setActiveDescendant = function (activeDescendantID) { 3887 this.element.setAttribute('aria-activedescendant', activeDescendantID); 3888 }; 3889 Container.prototype.removeActiveDescendant = function () { 3890 this.element.removeAttribute('aria-activedescendant'); 3891 }; 3892 Container.prototype.open = function (dropdownPos) { 3893 this.element.classList.add(this.classNames.openState); 3894 this.element.setAttribute('aria-expanded', 'true'); 3895 this.isOpen = true; 3896 if (this.shouldFlip(dropdownPos)) { 3897 this.element.classList.add(this.classNames.flippedState); 3898 this.isFlipped = true; 3899 } 3900 }; 3901 Container.prototype.close = function () { 3902 this.element.classList.remove(this.classNames.openState); 3903 this.element.setAttribute('aria-expanded', 'false'); 3904 this.removeActiveDescendant(); 3905 this.isOpen = false; 3906 // A dropdown flips if it does not have space within the page 3907 if (this.isFlipped) { 3908 this.element.classList.remove(this.classNames.flippedState); 3909 this.isFlipped = false; 3910 } 3911 }; 3912 Container.prototype.focus = function () { 3913 if (!this.isFocussed) { 3914 this.element.focus(); 3915 } 3916 }; 3917 Container.prototype.addFocusState = function () { 3918 this.element.classList.add(this.classNames.focusState); 3919 }; 3920 Container.prototype.removeFocusState = function () { 3921 this.element.classList.remove(this.classNames.focusState); 3922 }; 3923 Container.prototype.enable = function () { 3924 this.element.classList.remove(this.classNames.disabledState); 3925 this.element.removeAttribute('aria-disabled'); 3926 if (this.type === constants_1.SELECT_ONE_TYPE) { 3927 this.element.setAttribute('tabindex', '0'); 3928 } 3929 this.isDisabled = false; 3930 }; 3931 Container.prototype.disable = function () { 3932 this.element.classList.add(this.classNames.disabledState); 3933 this.element.setAttribute('aria-disabled', 'true'); 3934 if (this.type === constants_1.SELECT_ONE_TYPE) { 3935 this.element.setAttribute('tabindex', '-1'); 3936 } 3937 this.isDisabled = true; 3938 }; 3939 Container.prototype.wrap = function (element) { 3940 (0, utils_1.wrap)(element, this.element); 3941 }; 3942 Container.prototype.unwrap = function (element) { 3943 if (this.element.parentNode) { 3944 // Move passed element outside this element 3945 this.element.parentNode.insertBefore(element, this.element); 3946 // Remove this element 3947 this.element.parentNode.removeChild(this.element); 3948 } 3949 }; 3950 Container.prototype.addLoadingState = function () { 3951 this.element.classList.add(this.classNames.loadingState); 3952 this.element.setAttribute('aria-busy', 'true'); 3953 this.isLoading = true; 3954 }; 3955 Container.prototype.removeLoadingState = function () { 3956 this.element.classList.remove(this.classNames.loadingState); 3957 this.element.removeAttribute('aria-busy'); 3958 this.isLoading = false; 3959 }; 3960 Container.prototype._onFocus = function () { 3961 this.isFocussed = true; 3962 }; 3963 Container.prototype._onBlur = function () { 3964 this.isFocussed = false; 3965 }; 3966 return Container; 3967}(); 3968exports["default"] = Container; 3969 3970/***/ }), 3971 3972/***/ 217: 3973/***/ (function(__unused_webpack_module, exports) { 3974 3975 3976 3977Object.defineProperty(exports, "__esModule", ({ 3978 value: true 3979})); 3980var Dropdown = /** @class */function () { 3981 function Dropdown(_a) { 3982 var element = _a.element, 3983 type = _a.type, 3984 classNames = _a.classNames; 3985 this.element = element; 3986 this.classNames = classNames; 3987 this.type = type; 3988 this.isActive = false; 3989 } 3990 Object.defineProperty(Dropdown.prototype, "distanceFromTopWindow", { 3991 /** 3992 * Bottom position of dropdown in viewport coordinates 3993 */ 3994 get: function () { 3995 return this.element.getBoundingClientRect().bottom; 3996 }, 3997 enumerable: false, 3998 configurable: true 3999 }); 4000 Dropdown.prototype.getChild = function (selector) { 4001 return this.element.querySelector(selector); 4002 }; 4003 /** 4004 * Show dropdown to user by adding active state class 4005 */ 4006 Dropdown.prototype.show = function () { 4007 this.element.classList.add(this.classNames.activeState); 4008 this.element.setAttribute('aria-expanded', 'true'); 4009 this.isActive = true; 4010 return this; 4011 }; 4012 /** 4013 * Hide dropdown from user 4014 */ 4015 Dropdown.prototype.hide = function () { 4016 this.element.classList.remove(this.classNames.activeState); 4017 this.element.setAttribute('aria-expanded', 'false'); 4018 this.isActive = false; 4019 return this; 4020 }; 4021 return Dropdown; 4022}(); 4023exports["default"] = Dropdown; 4024 4025/***/ }), 4026 4027/***/ 520: 4028/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_81090__) { 4029 4030 4031 4032var __importDefault = this && this.__importDefault || function (mod) { 4033 return mod && mod.__esModule ? mod : { 4034 "default": mod 4035 }; 4036}; 4037Object.defineProperty(exports, "__esModule", ({ 4038 value: true 4039})); 4040exports.WrappedSelect = exports.WrappedInput = exports.List = exports.Input = exports.Container = exports.Dropdown = void 0; 4041var dropdown_1 = __importDefault(__nested_webpack_require_81090__(217)); 4042exports.Dropdown = dropdown_1.default; 4043var container_1 = __importDefault(__nested_webpack_require_81090__(613)); 4044exports.Container = container_1.default; 4045var input_1 = __importDefault(__nested_webpack_require_81090__(11)); 4046exports.Input = input_1.default; 4047var list_1 = __importDefault(__nested_webpack_require_81090__(624)); 4048exports.List = list_1.default; 4049var wrapped_input_1 = __importDefault(__nested_webpack_require_81090__(541)); 4050exports.WrappedInput = wrapped_input_1.default; 4051var wrapped_select_1 = __importDefault(__nested_webpack_require_81090__(982)); 4052exports.WrappedSelect = wrapped_select_1.default; 4053 4054/***/ }), 4055 4056/***/ 11: 4057/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_82125__) { 4058 4059 4060 4061Object.defineProperty(exports, "__esModule", ({ 4062 value: true 4063})); 4064var utils_1 = __nested_webpack_require_82125__(799); 4065var constants_1 = __nested_webpack_require_82125__(883); 4066var Input = /** @class */function () { 4067 function Input(_a) { 4068 var element = _a.element, 4069 type = _a.type, 4070 classNames = _a.classNames, 4071 preventPaste = _a.preventPaste; 4072 this.element = element; 4073 this.type = type; 4074 this.classNames = classNames; 4075 this.preventPaste = preventPaste; 4076 this.isFocussed = this.element.isEqualNode(document.activeElement); 4077 this.isDisabled = element.disabled; 4078 this._onPaste = this._onPaste.bind(this); 4079 this._onInput = this._onInput.bind(this); 4080 this._onFocus = this._onFocus.bind(this); 4081 this._onBlur = this._onBlur.bind(this); 4082 } 4083 Object.defineProperty(Input.prototype, "placeholder", { 4084 set: function (placeholder) { 4085 this.element.placeholder = placeholder; 4086 }, 4087 enumerable: false, 4088 configurable: true 4089 }); 4090 Object.defineProperty(Input.prototype, "value", { 4091 get: function () { 4092 return (0, utils_1.sanitise)(this.element.value); 4093 }, 4094 set: function (value) { 4095 this.element.value = value; 4096 }, 4097 enumerable: false, 4098 configurable: true 4099 }); 4100 Object.defineProperty(Input.prototype, "rawValue", { 4101 get: function () { 4102 return this.element.value; 4103 }, 4104 enumerable: false, 4105 configurable: true 4106 }); 4107 Input.prototype.addEventListeners = function () { 4108 this.element.addEventListener('paste', this._onPaste); 4109 this.element.addEventListener('input', this._onInput, { 4110 passive: true 4111 }); 4112 this.element.addEventListener('focus', this._onFocus, { 4113 passive: true 4114 }); 4115 this.element.addEventListener('blur', this._onBlur, { 4116 passive: true 4117 }); 4118 }; 4119 Input.prototype.removeEventListeners = function () { 4120 this.element.removeEventListener('input', this._onInput); 4121 this.element.removeEventListener('paste', this._onPaste); 4122 this.element.removeEventListener('focus', this._onFocus); 4123 this.element.removeEventListener('blur', this._onBlur); 4124 }; 4125 Input.prototype.enable = function () { 4126 this.element.removeAttribute('disabled'); 4127 this.isDisabled = false; 4128 }; 4129 Input.prototype.disable = function () { 4130 this.element.setAttribute('disabled', ''); 4131 this.isDisabled = true; 4132 }; 4133 Input.prototype.focus = function () { 4134 if (!this.isFocussed) { 4135 this.element.focus(); 4136 } 4137 }; 4138 Input.prototype.blur = function () { 4139 if (this.isFocussed) { 4140 this.element.blur(); 4141 } 4142 }; 4143 Input.prototype.clear = function (setWidth) { 4144 if (setWidth === void 0) { 4145 setWidth = true; 4146 } 4147 if (this.element.value) { 4148 this.element.value = ''; 4149 } 4150 if (setWidth) { 4151 this.setWidth(); 4152 } 4153 return this; 4154 }; 4155 /** 4156 * Set the correct input width based on placeholder 4157 * value or input value 4158 */ 4159 Input.prototype.setWidth = function () { 4160 // Resize input to contents or placeholder 4161 var _a = this.element, 4162 style = _a.style, 4163 value = _a.value, 4164 placeholder = _a.placeholder; 4165 style.minWidth = "".concat(placeholder.length + 1, "ch"); 4166 style.width = "".concat(value.length + 1, "ch"); 4167 }; 4168 Input.prototype.setActiveDescendant = function (activeDescendantID) { 4169 this.element.setAttribute('aria-activedescendant', activeDescendantID); 4170 }; 4171 Input.prototype.removeActiveDescendant = function () { 4172 this.element.removeAttribute('aria-activedescendant'); 4173 }; 4174 Input.prototype._onInput = function () { 4175 if (this.type !== constants_1.SELECT_ONE_TYPE) { 4176 this.setWidth(); 4177 } 4178 }; 4179 Input.prototype._onPaste = function (event) { 4180 if (this.preventPaste) { 4181 event.preventDefault(); 4182 } 4183 }; 4184 Input.prototype._onFocus = function () { 4185 this.isFocussed = true; 4186 }; 4187 Input.prototype._onBlur = function () { 4188 this.isFocussed = false; 4189 }; 4190 return Input; 4191}(); 4192exports["default"] = Input; 4193 4194/***/ }), 4195 4196/***/ 624: 4197/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_86127__) { 4198 4199 4200 4201Object.defineProperty(exports, "__esModule", ({ 4202 value: true 4203})); 4204var constants_1 = __nested_webpack_require_86127__(883); 4205var List = /** @class */function () { 4206 function List(_a) { 4207 var element = _a.element; 4208 this.element = element; 4209 this.scrollPos = this.element.scrollTop; 4210 this.height = this.element.offsetHeight; 4211 } 4212 List.prototype.clear = function () { 4213 this.element.innerHTML = ''; 4214 }; 4215 List.prototype.append = function (node) { 4216 this.element.appendChild(node); 4217 }; 4218 List.prototype.getChild = function (selector) { 4219 return this.element.querySelector(selector); 4220 }; 4221 List.prototype.hasChildren = function () { 4222 return this.element.hasChildNodes(); 4223 }; 4224 List.prototype.scrollToTop = function () { 4225 this.element.scrollTop = 0; 4226 }; 4227 List.prototype.scrollToChildElement = function (element, direction) { 4228 var _this = this; 4229 if (!element) { 4230 return; 4231 } 4232 var listHeight = this.element.offsetHeight; 4233 // Scroll position of dropdown 4234 var listScrollPosition = this.element.scrollTop + listHeight; 4235 var elementHeight = element.offsetHeight; 4236 // Distance from bottom of element to top of parent 4237 var elementPos = element.offsetTop + elementHeight; 4238 // Difference between the element and scroll position 4239 var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop; 4240 requestAnimationFrame(function () { 4241 _this._animateScroll(destination, direction); 4242 }); 4243 }; 4244 List.prototype._scrollDown = function (scrollPos, strength, destination) { 4245 var easing = (destination - scrollPos) / strength; 4246 var distance = easing > 1 ? easing : 1; 4247 this.element.scrollTop = scrollPos + distance; 4248 }; 4249 List.prototype._scrollUp = function (scrollPos, strength, destination) { 4250 var easing = (scrollPos - destination) / strength; 4251 var distance = easing > 1 ? easing : 1; 4252 this.element.scrollTop = scrollPos - distance; 4253 }; 4254 List.prototype._animateScroll = function (destination, direction) { 4255 var _this = this; 4256 var strength = constants_1.SCROLLING_SPEED; 4257 var choiceListScrollTop = this.element.scrollTop; 4258 var continueAnimation = false; 4259 if (direction > 0) { 4260 this._scrollDown(choiceListScrollTop, strength, destination); 4261 if (choiceListScrollTop < destination) { 4262 continueAnimation = true; 4263 } 4264 } else { 4265 this._scrollUp(choiceListScrollTop, strength, destination); 4266 if (choiceListScrollTop > destination) { 4267 continueAnimation = true; 4268 } 4269 } 4270 if (continueAnimation) { 4271 requestAnimationFrame(function () { 4272 _this._animateScroll(destination, direction); 4273 }); 4274 } 4275 }; 4276 return List; 4277}(); 4278exports["default"] = List; 4279 4280/***/ }), 4281 4282/***/ 730: 4283/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_88948__) { 4284 4285 4286 4287Object.defineProperty(exports, "__esModule", ({ 4288 value: true 4289})); 4290var utils_1 = __nested_webpack_require_88948__(799); 4291var WrappedElement = /** @class */function () { 4292 function WrappedElement(_a) { 4293 var element = _a.element, 4294 classNames = _a.classNames; 4295 this.element = element; 4296 this.classNames = classNames; 4297 if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) { 4298 throw new TypeError('Invalid element passed'); 4299 } 4300 this.isDisabled = false; 4301 } 4302 Object.defineProperty(WrappedElement.prototype, "isActive", { 4303 get: function () { 4304 return this.element.dataset.choice === 'active'; 4305 }, 4306 enumerable: false, 4307 configurable: true 4308 }); 4309 Object.defineProperty(WrappedElement.prototype, "dir", { 4310 get: function () { 4311 return this.element.dir; 4312 }, 4313 enumerable: false, 4314 configurable: true 4315 }); 4316 Object.defineProperty(WrappedElement.prototype, "value", { 4317 get: function () { 4318 return this.element.value; 4319 }, 4320 set: function (value) { 4321 // you must define setter here otherwise it will be readonly property 4322 this.element.value = value; 4323 }, 4324 enumerable: false, 4325 configurable: true 4326 }); 4327 WrappedElement.prototype.conceal = function () { 4328 // Hide passed input 4329 this.element.classList.add(this.classNames.input); 4330 this.element.hidden = true; 4331 // Remove element from tab index 4332 this.element.tabIndex = -1; 4333 // Backup original styles if any 4334 var origStyle = this.element.getAttribute('style'); 4335 if (origStyle) { 4336 this.element.setAttribute('data-choice-orig-style', origStyle); 4337 } 4338 this.element.setAttribute('data-choice', 'active'); 4339 }; 4340 WrappedElement.prototype.reveal = function () { 4341 // Reinstate passed element 4342 this.element.classList.remove(this.classNames.input); 4343 this.element.hidden = false; 4344 this.element.removeAttribute('tabindex'); 4345 // Recover original styles if any 4346 var origStyle = this.element.getAttribute('data-choice-orig-style'); 4347 if (origStyle) { 4348 this.element.removeAttribute('data-choice-orig-style'); 4349 this.element.setAttribute('style', origStyle); 4350 } else { 4351 this.element.removeAttribute('style'); 4352 } 4353 this.element.removeAttribute('data-choice'); 4354 // Re-assign values - this is weird, I know 4355 // @todo Figure out why we need to do this 4356 this.element.value = this.element.value; // eslint-disable-line no-self-assign 4357 }; 4358 4359 WrappedElement.prototype.enable = function () { 4360 this.element.removeAttribute('disabled'); 4361 this.element.disabled = false; 4362 this.isDisabled = false; 4363 }; 4364 WrappedElement.prototype.disable = function () { 4365 this.element.setAttribute('disabled', ''); 4366 this.element.disabled = true; 4367 this.isDisabled = true; 4368 }; 4369 WrappedElement.prototype.triggerEvent = function (eventType, data) { 4370 (0, utils_1.dispatchEvent)(this.element, eventType, data); 4371 }; 4372 return WrappedElement; 4373}(); 4374exports["default"] = WrappedElement; 4375 4376/***/ }), 4377 4378/***/ 541: 4379/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_92021__) { 4380 4381 4382 4383var __extends = this && this.__extends || function () { 4384 var extendStatics = function (d, b) { 4385 extendStatics = Object.setPrototypeOf || { 4386 __proto__: [] 4387 } instanceof Array && function (d, b) { 4388 d.__proto__ = b; 4389 } || function (d, b) { 4390 for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; 4391 }; 4392 return extendStatics(d, b); 4393 }; 4394 return function (d, b) { 4395 if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 4396 extendStatics(d, b); 4397 function __() { 4398 this.constructor = d; 4399 } 4400 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 4401 }; 4402}(); 4403var __importDefault = this && this.__importDefault || function (mod) { 4404 return mod && mod.__esModule ? mod : { 4405 "default": mod 4406 }; 4407}; 4408Object.defineProperty(exports, "__esModule", ({ 4409 value: true 4410})); 4411var wrapped_element_1 = __importDefault(__nested_webpack_require_92021__(730)); 4412var WrappedInput = /** @class */function (_super) { 4413 __extends(WrappedInput, _super); 4414 function WrappedInput(_a) { 4415 var element = _a.element, 4416 classNames = _a.classNames, 4417 delimiter = _a.delimiter; 4418 var _this = _super.call(this, { 4419 element: element, 4420 classNames: classNames 4421 }) || this; 4422 _this.delimiter = delimiter; 4423 return _this; 4424 } 4425 Object.defineProperty(WrappedInput.prototype, "value", { 4426 get: function () { 4427 return this.element.value; 4428 }, 4429 set: function (value) { 4430 this.element.setAttribute('value', value); 4431 this.element.value = value; 4432 }, 4433 enumerable: false, 4434 configurable: true 4435 }); 4436 return WrappedInput; 4437}(wrapped_element_1.default); 4438exports["default"] = WrappedInput; 4439 4440/***/ }), 4441 4442/***/ 982: 4443/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_93875__) { 4444 4445 4446 4447var __extends = this && this.__extends || function () { 4448 var extendStatics = function (d, b) { 4449 extendStatics = Object.setPrototypeOf || { 4450 __proto__: [] 4451 } instanceof Array && function (d, b) { 4452 d.__proto__ = b; 4453 } || function (d, b) { 4454 for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; 4455 }; 4456 return extendStatics(d, b); 4457 }; 4458 return function (d, b) { 4459 if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 4460 extendStatics(d, b); 4461 function __() { 4462 this.constructor = d; 4463 } 4464 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 4465 }; 4466}(); 4467var __importDefault = this && this.__importDefault || function (mod) { 4468 return mod && mod.__esModule ? mod : { 4469 "default": mod 4470 }; 4471}; 4472Object.defineProperty(exports, "__esModule", ({ 4473 value: true 4474})); 4475var wrapped_element_1 = __importDefault(__nested_webpack_require_93875__(730)); 4476var WrappedSelect = /** @class */function (_super) { 4477 __extends(WrappedSelect, _super); 4478 function WrappedSelect(_a) { 4479 var element = _a.element, 4480 classNames = _a.classNames, 4481 template = _a.template; 4482 var _this = _super.call(this, { 4483 element: element, 4484 classNames: classNames 4485 }) || this; 4486 _this.template = template; 4487 return _this; 4488 } 4489 Object.defineProperty(WrappedSelect.prototype, "placeholderOption", { 4490 get: function () { 4491 return this.element.querySelector('option[value=""]') || 4492 // Backward compatibility layer for the non-standard placeholder attribute supported in older versions. 4493 this.element.querySelector('option[placeholder]'); 4494 }, 4495 enumerable: false, 4496 configurable: true 4497 }); 4498 Object.defineProperty(WrappedSelect.prototype, "optionGroups", { 4499 get: function () { 4500 return Array.from(this.element.getElementsByTagName('OPTGROUP')); 4501 }, 4502 enumerable: false, 4503 configurable: true 4504 }); 4505 Object.defineProperty(WrappedSelect.prototype, "options", { 4506 get: function () { 4507 return Array.from(this.element.options); 4508 }, 4509 set: function (options) { 4510 var _this = this; 4511 var fragment = document.createDocumentFragment(); 4512 var addOptionToFragment = function (data) { 4513 // Create a standard select option 4514 var option = _this.template(data); 4515 // Append it to fragment 4516 fragment.appendChild(option); 4517 }; 4518 // Add each list item to list 4519 options.forEach(function (optionData) { 4520 return addOptionToFragment(optionData); 4521 }); 4522 this.appendDocFragment(fragment); 4523 }, 4524 enumerable: false, 4525 configurable: true 4526 }); 4527 WrappedSelect.prototype.appendDocFragment = function (fragment) { 4528 this.element.innerHTML = ''; 4529 this.element.appendChild(fragment); 4530 }; 4531 return WrappedSelect; 4532}(wrapped_element_1.default); 4533exports["default"] = WrappedSelect; 4534 4535/***/ }), 4536 4537/***/ 883: 4538/***/ (function(__unused_webpack_module, exports) { 4539 4540 4541 4542Object.defineProperty(exports, "__esModule", ({ 4543 value: true 4544})); 4545exports.SCROLLING_SPEED = exports.SELECT_MULTIPLE_TYPE = exports.SELECT_ONE_TYPE = exports.TEXT_TYPE = exports.KEY_CODES = exports.ACTION_TYPES = exports.EVENTS = void 0; 4546exports.EVENTS = { 4547 showDropdown: 'showDropdown', 4548 hideDropdown: 'hideDropdown', 4549 change: 'change', 4550 choice: 'choice', 4551 search: 'search', 4552 addItem: 'addItem', 4553 removeItem: 'removeItem', 4554 highlightItem: 'highlightItem', 4555 highlightChoice: 'highlightChoice', 4556 unhighlightItem: 'unhighlightItem' 4557}; 4558exports.ACTION_TYPES = { 4559 ADD_CHOICE: 'ADD_CHOICE', 4560 FILTER_CHOICES: 'FILTER_CHOICES', 4561 ACTIVATE_CHOICES: 'ACTIVATE_CHOICES', 4562 CLEAR_CHOICES: 'CLEAR_CHOICES', 4563 ADD_GROUP: 'ADD_GROUP', 4564 ADD_ITEM: 'ADD_ITEM', 4565 REMOVE_ITEM: 'REMOVE_ITEM', 4566 HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM', 4567 CLEAR_ALL: 'CLEAR_ALL', 4568 RESET_TO: 'RESET_TO', 4569 SET_IS_LOADING: 'SET_IS_LOADING' 4570}; 4571exports.KEY_CODES = { 4572 BACK_KEY: 46, 4573 DELETE_KEY: 8, 4574 ENTER_KEY: 13, 4575 A_KEY: 65, 4576 ESC_KEY: 27, 4577 UP_KEY: 38, 4578 DOWN_KEY: 40, 4579 PAGE_UP_KEY: 33, 4580 PAGE_DOWN_KEY: 34 4581}; 4582exports.TEXT_TYPE = 'text'; 4583exports.SELECT_ONE_TYPE = 'select-one'; 4584exports.SELECT_MULTIPLE_TYPE = 'select-multiple'; 4585exports.SCROLLING_SPEED = 4; 4586 4587/***/ }), 4588 4589/***/ 789: 4590/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_98200__) { 4591 4592 4593 4594Object.defineProperty(exports, "__esModule", ({ 4595 value: true 4596})); 4597exports.DEFAULT_CONFIG = exports.DEFAULT_CLASSNAMES = void 0; 4598var utils_1 = __nested_webpack_require_98200__(799); 4599exports.DEFAULT_CLASSNAMES = { 4600 containerOuter: 'choices', 4601 containerInner: 'choices__inner', 4602 input: 'choices__input', 4603 inputCloned: 'choices__input--cloned', 4604 list: 'choices__list', 4605 listItems: 'choices__list--multiple', 4606 listSingle: 'choices__list--single', 4607 listDropdown: 'choices__list--dropdown', 4608 item: 'choices__item', 4609 itemSelectable: 'choices__item--selectable', 4610 itemDisabled: 'choices__item--disabled', 4611 itemChoice: 'choices__item--choice', 4612 placeholder: 'choices__placeholder', 4613 group: 'choices__group', 4614 groupHeading: 'choices__heading', 4615 button: 'choices__button', 4616 activeState: 'is-active', 4617 focusState: 'is-focused', 4618 openState: 'is-open', 4619 disabledState: 'is-disabled', 4620 highlightedState: 'is-highlighted', 4621 selectedState: 'is-selected', 4622 flippedState: 'is-flipped', 4623 loadingState: 'is-loading', 4624 noResults: 'has-no-results', 4625 noChoices: 'has-no-choices' 4626}; 4627exports.DEFAULT_CONFIG = { 4628 items: [], 4629 choices: [], 4630 silent: false, 4631 renderChoiceLimit: -1, 4632 maxItemCount: -1, 4633 addItems: true, 4634 addItemFilter: null, 4635 removeItems: true, 4636 removeItemButton: false, 4637 editItems: false, 4638 allowHTML: true, 4639 duplicateItemsAllowed: true, 4640 delimiter: ',', 4641 paste: true, 4642 searchEnabled: true, 4643 searchChoices: true, 4644 searchFloor: 1, 4645 searchResultLimit: 4, 4646 searchFields: ['label', 'value'], 4647 position: 'auto', 4648 resetScrollPosition: true, 4649 shouldSort: true, 4650 shouldSortItems: false, 4651 sorter: utils_1.sortByAlpha, 4652 placeholder: true, 4653 placeholderValue: null, 4654 searchPlaceholderValue: null, 4655 prependValue: null, 4656 appendValue: null, 4657 renderSelectedChoices: 'auto', 4658 loadingText: 'Loading...', 4659 noResultsText: 'No results found', 4660 noChoicesText: 'No choices to choose from', 4661 itemSelectText: 'Press to select', 4662 uniqueItemText: 'Only unique values can be added', 4663 customAddItemText: 'Only values matching specific conditions can be added', 4664 addItemText: function (value) { 4665 return "Press Enter to add <b>\"".concat((0, utils_1.sanitise)(value), "\"</b>"); 4666 }, 4667 maxItemText: function (maxItemCount) { 4668 return "Only ".concat(maxItemCount, " values can be added"); 4669 }, 4670 valueComparer: function (value1, value2) { 4671 return value1 === value2; 4672 }, 4673 fuseOptions: { 4674 includeScore: true 4675 }, 4676 labelId: '', 4677 callbackOnInit: null, 4678 callbackOnCreateTemplates: null, 4679 classNames: exports.DEFAULT_CLASSNAMES 4680}; 4681 4682/***/ }), 4683 4684/***/ 18: 4685/***/ (function(__unused_webpack_module, exports) { 4686 4687 4688 4689Object.defineProperty(exports, "__esModule", ({ 4690 value: true 4691})); 4692 4693/***/ }), 4694 4695/***/ 978: 4696/***/ (function(__unused_webpack_module, exports) { 4697 4698 4699 4700/* eslint-disable @typescript-eslint/no-explicit-any */ 4701Object.defineProperty(exports, "__esModule", ({ 4702 value: true 4703})); 4704 4705/***/ }), 4706 4707/***/ 948: 4708/***/ (function(__unused_webpack_module, exports) { 4709 4710 4711 4712Object.defineProperty(exports, "__esModule", ({ 4713 value: true 4714})); 4715 4716/***/ }), 4717 4718/***/ 359: 4719/***/ (function(__unused_webpack_module, exports) { 4720 4721 4722 4723Object.defineProperty(exports, "__esModule", ({ 4724 value: true 4725})); 4726 4727/***/ }), 4728 4729/***/ 285: 4730/***/ (function(__unused_webpack_module, exports) { 4731 4732 4733 4734Object.defineProperty(exports, "__esModule", ({ 4735 value: true 4736})); 4737 4738/***/ }), 4739 4740/***/ 533: 4741/***/ (function(__unused_webpack_module, exports) { 4742 4743 4744 4745/* eslint-disable @typescript-eslint/no-explicit-any */ 4746Object.defineProperty(exports, "__esModule", ({ 4747 value: true 4748})); 4749 4750/***/ }), 4751 4752/***/ 187: 4753/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_101824__) { 4754 4755 4756 4757var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { 4758 if (k2 === undefined) k2 = k; 4759 var desc = Object.getOwnPropertyDescriptor(m, k); 4760 if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { 4761 desc = { 4762 enumerable: true, 4763 get: function () { 4764 return m[k]; 4765 } 4766 }; 4767 } 4768 Object.defineProperty(o, k2, desc); 4769} : function (o, m, k, k2) { 4770 if (k2 === undefined) k2 = k; 4771 o[k2] = m[k]; 4772}); 4773var __exportStar = this && this.__exportStar || function (m, exports) { 4774 for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); 4775}; 4776Object.defineProperty(exports, "__esModule", ({ 4777 value: true 4778})); 4779__exportStar(__nested_webpack_require_101824__(18), exports); 4780__exportStar(__nested_webpack_require_101824__(978), exports); 4781__exportStar(__nested_webpack_require_101824__(948), exports); 4782__exportStar(__nested_webpack_require_101824__(359), exports); 4783__exportStar(__nested_webpack_require_101824__(285), exports); 4784__exportStar(__nested_webpack_require_101824__(533), exports); 4785__exportStar(__nested_webpack_require_101824__(287), exports); 4786__exportStar(__nested_webpack_require_101824__(132), exports); 4787__exportStar(__nested_webpack_require_101824__(837), exports); 4788__exportStar(__nested_webpack_require_101824__(598), exports); 4789__exportStar(__nested_webpack_require_101824__(369), exports); 4790__exportStar(__nested_webpack_require_101824__(37), exports); 4791__exportStar(__nested_webpack_require_101824__(47), exports); 4792__exportStar(__nested_webpack_require_101824__(923), exports); 4793__exportStar(__nested_webpack_require_101824__(876), exports); 4794 4795/***/ }), 4796 4797/***/ 287: 4798/***/ (function(__unused_webpack_module, exports) { 4799 4800 4801 4802Object.defineProperty(exports, "__esModule", ({ 4803 value: true 4804})); 4805 4806/***/ }), 4807 4808/***/ 132: 4809/***/ (function(__unused_webpack_module, exports) { 4810 4811 4812 4813Object.defineProperty(exports, "__esModule", ({ 4814 value: true 4815})); 4816 4817/***/ }), 4818 4819/***/ 837: 4820/***/ (function(__unused_webpack_module, exports) { 4821 4822 4823 4824Object.defineProperty(exports, "__esModule", ({ 4825 value: true 4826})); 4827 4828/***/ }), 4829 4830/***/ 598: 4831/***/ (function(__unused_webpack_module, exports) { 4832 4833 4834 4835Object.defineProperty(exports, "__esModule", ({ 4836 value: true 4837})); 4838 4839/***/ }), 4840 4841/***/ 37: 4842/***/ (function(__unused_webpack_module, exports) { 4843 4844 4845 4846Object.defineProperty(exports, "__esModule", ({ 4847 value: true 4848})); 4849 4850/***/ }), 4851 4852/***/ 369: 4853/***/ (function(__unused_webpack_module, exports) { 4854 4855 4856 4857Object.defineProperty(exports, "__esModule", ({ 4858 value: true 4859})); 4860 4861/***/ }), 4862 4863/***/ 47: 4864/***/ (function(__unused_webpack_module, exports) { 4865 4866 4867 4868Object.defineProperty(exports, "__esModule", ({ 4869 value: true 4870})); 4871 4872/***/ }), 4873 4874/***/ 923: 4875/***/ (function(__unused_webpack_module, exports) { 4876 4877 4878 4879Object.defineProperty(exports, "__esModule", ({ 4880 value: true 4881})); 4882 4883/***/ }), 4884 4885/***/ 876: 4886/***/ (function(__unused_webpack_module, exports) { 4887 4888 4889 4890Object.defineProperty(exports, "__esModule", ({ 4891 value: true 4892})); 4893 4894/***/ }), 4895 4896/***/ 799: 4897/***/ (function(__unused_webpack_module, exports) { 4898 4899 4900 4901/* eslint-disable @typescript-eslint/no-explicit-any */ 4902Object.defineProperty(exports, "__esModule", ({ 4903 value: true 4904})); 4905exports.parseCustomProperties = exports.diff = exports.cloneObject = exports.existsInArray = exports.dispatchEvent = exports.sortByScore = exports.sortByAlpha = exports.strToEl = exports.sanitise = exports.isScrolledIntoView = exports.getAdjacentEl = exports.wrap = exports.isType = exports.getType = exports.generateId = exports.generateChars = exports.getRandomNumber = void 0; 4906var getRandomNumber = function (min, max) { 4907 return Math.floor(Math.random() * (max - min) + min); 4908}; 4909exports.getRandomNumber = getRandomNumber; 4910var generateChars = function (length) { 4911 return Array.from({ 4912 length: length 4913 }, function () { 4914 return (0, exports.getRandomNumber)(0, 36).toString(36); 4915 }).join(''); 4916}; 4917exports.generateChars = generateChars; 4918var generateId = function (element, prefix) { 4919 var id = element.id || element.name && "".concat(element.name, "-").concat((0, exports.generateChars)(2)) || (0, exports.generateChars)(4); 4920 id = id.replace(/(:|\.|\[|\]|,)/g, ''); 4921 id = "".concat(prefix, "-").concat(id); 4922 return id; 4923}; 4924exports.generateId = generateId; 4925var getType = function (obj) { 4926 return Object.prototype.toString.call(obj).slice(8, -1); 4927}; 4928exports.getType = getType; 4929var isType = function (type, obj) { 4930 return obj !== undefined && obj !== null && (0, exports.getType)(obj) === type; 4931}; 4932exports.isType = isType; 4933var wrap = function (element, wrapper) { 4934 if (wrapper === void 0) { 4935 wrapper = document.createElement('div'); 4936 } 4937 if (element.parentNode) { 4938 if (element.nextSibling) { 4939 element.parentNode.insertBefore(wrapper, element.nextSibling); 4940 } else { 4941 element.parentNode.appendChild(wrapper); 4942 } 4943 } 4944 return wrapper.appendChild(element); 4945}; 4946exports.wrap = wrap; 4947var getAdjacentEl = function (startEl, selector, direction) { 4948 if (direction === void 0) { 4949 direction = 1; 4950 } 4951 var prop = "".concat(direction > 0 ? 'next' : 'previous', "ElementSibling"); 4952 var sibling = startEl[prop]; 4953 while (sibling) { 4954 if (sibling.matches(selector)) { 4955 return sibling; 4956 } 4957 sibling = sibling[prop]; 4958 } 4959 return sibling; 4960}; 4961exports.getAdjacentEl = getAdjacentEl; 4962var isScrolledIntoView = function (element, parent, direction) { 4963 if (direction === void 0) { 4964 direction = 1; 4965 } 4966 if (!element) { 4967 return false; 4968 } 4969 var isVisible; 4970 if (direction > 0) { 4971 // In view from bottom 4972 isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight; 4973 } else { 4974 // In view from top 4975 isVisible = element.offsetTop >= parent.scrollTop; 4976 } 4977 return isVisible; 4978}; 4979exports.isScrolledIntoView = isScrolledIntoView; 4980var sanitise = function (value) { 4981 if (typeof value !== 'string') { 4982 return value; 4983 } 4984 return value.replace(/&/g, '&').replace(/>/g, '>').replace(/</g, '<').replace(/"/g, '"'); 4985}; 4986exports.sanitise = sanitise; 4987exports.strToEl = function () { 4988 var tmpEl = document.createElement('div'); 4989 return function (str) { 4990 var cleanedInput = str.trim(); 4991 tmpEl.innerHTML = cleanedInput; 4992 var firldChild = tmpEl.children[0]; 4993 while (tmpEl.firstChild) { 4994 tmpEl.removeChild(tmpEl.firstChild); 4995 } 4996 return firldChild; 4997 }; 4998}(); 4999var sortByAlpha = function (_a, _b) { 5000 var value = _a.value, 5001 _c = _a.label, 5002 label = _c === void 0 ? value : _c; 5003 var value2 = _b.value, 5004 _d = _b.label, 5005 label2 = _d === void 0 ? value2 : _d; 5006 return label.localeCompare(label2, [], { 5007 sensitivity: 'base', 5008 ignorePunctuation: true, 5009 numeric: true 5010 }); 5011}; 5012exports.sortByAlpha = sortByAlpha; 5013var sortByScore = function (a, b) { 5014 var _a = a.score, 5015 scoreA = _a === void 0 ? 0 : _a; 5016 var _b = b.score, 5017 scoreB = _b === void 0 ? 0 : _b; 5018 return scoreA - scoreB; 5019}; 5020exports.sortByScore = sortByScore; 5021var dispatchEvent = function (element, type, customArgs) { 5022 if (customArgs === void 0) { 5023 customArgs = null; 5024 } 5025 var event = new CustomEvent(type, { 5026 detail: customArgs, 5027 bubbles: true, 5028 cancelable: true 5029 }); 5030 return element.dispatchEvent(event); 5031}; 5032exports.dispatchEvent = dispatchEvent; 5033var existsInArray = function (array, value, key) { 5034 if (key === void 0) { 5035 key = 'value'; 5036 } 5037 return array.some(function (item) { 5038 if (typeof value === 'string') { 5039 return item[key] === value.trim(); 5040 } 5041 return item[key] === value; 5042 }); 5043}; 5044exports.existsInArray = existsInArray; 5045var cloneObject = function (obj) { 5046 return JSON.parse(JSON.stringify(obj)); 5047}; 5048exports.cloneObject = cloneObject; 5049/** 5050 * Returns an array of keys present on the first but missing on the second object 5051 */ 5052var diff = function (a, b) { 5053 var aKeys = Object.keys(a).sort(); 5054 var bKeys = Object.keys(b).sort(); 5055 return aKeys.filter(function (i) { 5056 return bKeys.indexOf(i) < 0; 5057 }); 5058}; 5059exports.diff = diff; 5060var parseCustomProperties = function (customProperties) { 5061 if (typeof customProperties !== 'undefined') { 5062 try { 5063 return JSON.parse(customProperties); 5064 } catch (e) { 5065 return customProperties; 5066 } 5067 } 5068 return {}; 5069}; 5070exports.parseCustomProperties = parseCustomProperties; 5071 5072/***/ }), 5073 5074/***/ 273: 5075/***/ (function(__unused_webpack_module, exports) { 5076 5077 5078 5079var __spreadArray = this && this.__spreadArray || function (to, from, pack) { 5080 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 5081 if (ar || !(i in from)) { 5082 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 5083 ar[i] = from[i]; 5084 } 5085 } 5086 return to.concat(ar || Array.prototype.slice.call(from)); 5087}; 5088Object.defineProperty(exports, "__esModule", ({ 5089 value: true 5090})); 5091exports.defaultState = void 0; 5092exports.defaultState = []; 5093function choices(state, action) { 5094 if (state === void 0) { 5095 state = exports.defaultState; 5096 } 5097 if (action === void 0) { 5098 action = {}; 5099 } 5100 switch (action.type) { 5101 case 'ADD_CHOICE': 5102 { 5103 var addChoiceAction = action; 5104 var choice = { 5105 id: addChoiceAction.id, 5106 elementId: addChoiceAction.elementId, 5107 groupId: addChoiceAction.groupId, 5108 value: addChoiceAction.value, 5109 label: addChoiceAction.label || addChoiceAction.value, 5110 disabled: addChoiceAction.disabled || false, 5111 selected: false, 5112 active: true, 5113 score: 9999, 5114 customProperties: addChoiceAction.customProperties, 5115 placeholder: addChoiceAction.placeholder || false 5116 }; 5117 /* 5118 A disabled choice appears in the choice dropdown but cannot be selected 5119 A selected choice has been added to the passed input's value (added as an item) 5120 An active choice appears within the choice dropdown 5121 */ 5122 return __spreadArray(__spreadArray([], state, true), [choice], false); 5123 } 5124 case 'ADD_ITEM': 5125 { 5126 var addItemAction_1 = action; 5127 // When an item is added and it has an associated choice, 5128 // we want to disable it so it can't be chosen again 5129 if (addItemAction_1.choiceId > -1) { 5130 return state.map(function (obj) { 5131 var choice = obj; 5132 if (choice.id === parseInt("".concat(addItemAction_1.choiceId), 10)) { 5133 choice.selected = true; 5134 } 5135 return choice; 5136 }); 5137 } 5138 return state; 5139 } 5140 case 'REMOVE_ITEM': 5141 { 5142 var removeItemAction_1 = action; 5143 // When an item is removed and it has an associated choice, 5144 // we want to re-enable it so it can be chosen again 5145 if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) { 5146 return state.map(function (obj) { 5147 var choice = obj; 5148 if (choice.id === parseInt("".concat(removeItemAction_1.choiceId), 10)) { 5149 choice.selected = false; 5150 } 5151 return choice; 5152 }); 5153 } 5154 return state; 5155 } 5156 case 'FILTER_CHOICES': 5157 { 5158 var filterChoicesAction_1 = action; 5159 return state.map(function (obj) { 5160 var choice = obj; 5161 // Set active state based on whether choice is 5162 // within filtered results 5163 choice.active = filterChoicesAction_1.results.some(function (_a) { 5164 var item = _a.item, 5165 score = _a.score; 5166 if (item.id === choice.id) { 5167 choice.score = score; 5168 return true; 5169 } 5170 return false; 5171 }); 5172 return choice; 5173 }); 5174 } 5175 case 'ACTIVATE_CHOICES': 5176 { 5177 var activateChoicesAction_1 = action; 5178 return state.map(function (obj) { 5179 var choice = obj; 5180 choice.active = activateChoicesAction_1.active; 5181 return choice; 5182 }); 5183 } 5184 case 'CLEAR_CHOICES': 5185 { 5186 return exports.defaultState; 5187 } 5188 default: 5189 { 5190 return state; 5191 } 5192 } 5193} 5194exports["default"] = choices; 5195 5196/***/ }), 5197 5198/***/ 871: 5199/***/ (function(__unused_webpack_module, exports) { 5200 5201 5202 5203var __spreadArray = this && this.__spreadArray || function (to, from, pack) { 5204 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 5205 if (ar || !(i in from)) { 5206 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 5207 ar[i] = from[i]; 5208 } 5209 } 5210 return to.concat(ar || Array.prototype.slice.call(from)); 5211}; 5212Object.defineProperty(exports, "__esModule", ({ 5213 value: true 5214})); 5215exports.defaultState = void 0; 5216exports.defaultState = []; 5217function groups(state, action) { 5218 if (state === void 0) { 5219 state = exports.defaultState; 5220 } 5221 if (action === void 0) { 5222 action = {}; 5223 } 5224 switch (action.type) { 5225 case 'ADD_GROUP': 5226 { 5227 var addGroupAction = action; 5228 return __spreadArray(__spreadArray([], state, true), [{ 5229 id: addGroupAction.id, 5230 value: addGroupAction.value, 5231 active: addGroupAction.active, 5232 disabled: addGroupAction.disabled 5233 }], false); 5234 } 5235 case 'CLEAR_CHOICES': 5236 { 5237 return []; 5238 } 5239 default: 5240 { 5241 return state; 5242 } 5243 } 5244} 5245exports["default"] = groups; 5246 5247/***/ }), 5248 5249/***/ 655: 5250/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_114916__) { 5251 5252 5253 5254var __importDefault = this && this.__importDefault || function (mod) { 5255 return mod && mod.__esModule ? mod : { 5256 "default": mod 5257 }; 5258}; 5259Object.defineProperty(exports, "__esModule", ({ 5260 value: true 5261})); 5262exports.defaultState = void 0; 5263var redux_1 = __nested_webpack_require_114916__(791); 5264var items_1 = __importDefault(__nested_webpack_require_114916__(52)); 5265var groups_1 = __importDefault(__nested_webpack_require_114916__(871)); 5266var choices_1 = __importDefault(__nested_webpack_require_114916__(273)); 5267var loading_1 = __importDefault(__nested_webpack_require_114916__(502)); 5268var utils_1 = __nested_webpack_require_114916__(799); 5269exports.defaultState = { 5270 groups: [], 5271 items: [], 5272 choices: [], 5273 loading: false 5274}; 5275var appReducer = (0, redux_1.combineReducers)({ 5276 items: items_1.default, 5277 groups: groups_1.default, 5278 choices: choices_1.default, 5279 loading: loading_1.default 5280}); 5281var rootReducer = function (passedState, action) { 5282 var state = passedState; 5283 // If we are clearing all items, groups and options we reassign 5284 // state and then pass that state to our proper reducer. This isn't 5285 // mutating our actual state 5286 // See: http://stackoverflow.com/a/35641992 5287 if (action.type === 'CLEAR_ALL') { 5288 state = exports.defaultState; 5289 } else if (action.type === 'RESET_TO') { 5290 return (0, utils_1.cloneObject)(action.state); 5291 } 5292 return appReducer(state, action); 5293}; 5294exports["default"] = rootReducer; 5295 5296/***/ }), 5297 5298/***/ 52: 5299/***/ (function(__unused_webpack_module, exports) { 5300 5301 5302 5303var __spreadArray = this && this.__spreadArray || function (to, from, pack) { 5304 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 5305 if (ar || !(i in from)) { 5306 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 5307 ar[i] = from[i]; 5308 } 5309 } 5310 return to.concat(ar || Array.prototype.slice.call(from)); 5311}; 5312Object.defineProperty(exports, "__esModule", ({ 5313 value: true 5314})); 5315exports.defaultState = void 0; 5316exports.defaultState = []; 5317function items(state, action) { 5318 if (state === void 0) { 5319 state = exports.defaultState; 5320 } 5321 if (action === void 0) { 5322 action = {}; 5323 } 5324 switch (action.type) { 5325 case 'ADD_ITEM': 5326 { 5327 var addItemAction = action; 5328 // Add object to items array 5329 var newState = __spreadArray(__spreadArray([], state, true), [{ 5330 id: addItemAction.id, 5331 choiceId: addItemAction.choiceId, 5332 groupId: addItemAction.groupId, 5333 value: addItemAction.value, 5334 label: addItemAction.label, 5335 active: true, 5336 highlighted: false, 5337 customProperties: addItemAction.customProperties, 5338 placeholder: addItemAction.placeholder || false, 5339 keyCode: null 5340 }], false); 5341 return newState.map(function (obj) { 5342 var item = obj; 5343 item.highlighted = false; 5344 return item; 5345 }); 5346 } 5347 case 'REMOVE_ITEM': 5348 { 5349 // Set item to inactive 5350 return state.map(function (obj) { 5351 var item = obj; 5352 if (item.id === action.id) { 5353 item.active = false; 5354 } 5355 return item; 5356 }); 5357 } 5358 case 'HIGHLIGHT_ITEM': 5359 { 5360 var highlightItemAction_1 = action; 5361 return state.map(function (obj) { 5362 var item = obj; 5363 if (item.id === highlightItemAction_1.id) { 5364 item.highlighted = highlightItemAction_1.highlighted; 5365 } 5366 return item; 5367 }); 5368 } 5369 default: 5370 { 5371 return state; 5372 } 5373 } 5374} 5375exports["default"] = items; 5376 5377/***/ }), 5378 5379/***/ 502: 5380/***/ (function(__unused_webpack_module, exports) { 5381 5382 5383 5384Object.defineProperty(exports, "__esModule", ({ 5385 value: true 5386})); 5387exports.defaultState = void 0; 5388exports.defaultState = false; 5389var general = function (state, action) { 5390 if (state === void 0) { 5391 state = exports.defaultState; 5392 } 5393 if (action === void 0) { 5394 action = {}; 5395 } 5396 switch (action.type) { 5397 case 'SET_IS_LOADING': 5398 { 5399 return action.isLoading; 5400 } 5401 default: 5402 { 5403 return state; 5404 } 5405 } 5406}; 5407exports["default"] = general; 5408 5409/***/ }), 5410 5411/***/ 744: 5412/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_119022__) { 5413 5414 5415 5416var __spreadArray = this && this.__spreadArray || function (to, from, pack) { 5417 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 5418 if (ar || !(i in from)) { 5419 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 5420 ar[i] = from[i]; 5421 } 5422 } 5423 return to.concat(ar || Array.prototype.slice.call(from)); 5424}; 5425var __importDefault = this && this.__importDefault || function (mod) { 5426 return mod && mod.__esModule ? mod : { 5427 "default": mod 5428 }; 5429}; 5430Object.defineProperty(exports, "__esModule", ({ 5431 value: true 5432})); 5433/* eslint-disable @typescript-eslint/no-explicit-any */ 5434var redux_1 = __nested_webpack_require_119022__(791); 5435var index_1 = __importDefault(__nested_webpack_require_119022__(655)); 5436var Store = /** @class */function () { 5437 function Store() { 5438 this._store = (0, redux_1.createStore)(index_1.default, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()); 5439 } 5440 /** 5441 * Subscribe store to function call (wrapped Redux method) 5442 */ 5443 Store.prototype.subscribe = function (onChange) { 5444 this._store.subscribe(onChange); 5445 }; 5446 /** 5447 * Dispatch event to store (wrapped Redux method) 5448 */ 5449 Store.prototype.dispatch = function (action) { 5450 this._store.dispatch(action); 5451 }; 5452 Object.defineProperty(Store.prototype, "state", { 5453 /** 5454 * Get store object (wrapping Redux method) 5455 */ 5456 get: function () { 5457 return this._store.getState(); 5458 }, 5459 enumerable: false, 5460 configurable: true 5461 }); 5462 Object.defineProperty(Store.prototype, "items", { 5463 /** 5464 * Get items from store 5465 */ 5466 get: function () { 5467 return this.state.items; 5468 }, 5469 enumerable: false, 5470 configurable: true 5471 }); 5472 Object.defineProperty(Store.prototype, "activeItems", { 5473 /** 5474 * Get active items from store 5475 */ 5476 get: function () { 5477 return this.items.filter(function (item) { 5478 return item.active === true; 5479 }); 5480 }, 5481 enumerable: false, 5482 configurable: true 5483 }); 5484 Object.defineProperty(Store.prototype, "highlightedActiveItems", { 5485 /** 5486 * Get highlighted items from store 5487 */ 5488 get: function () { 5489 return this.items.filter(function (item) { 5490 return item.active && item.highlighted; 5491 }); 5492 }, 5493 enumerable: false, 5494 configurable: true 5495 }); 5496 Object.defineProperty(Store.prototype, "choices", { 5497 /** 5498 * Get choices from store 5499 */ 5500 get: function () { 5501 return this.state.choices; 5502 }, 5503 enumerable: false, 5504 configurable: true 5505 }); 5506 Object.defineProperty(Store.prototype, "activeChoices", { 5507 /** 5508 * Get active choices from store 5509 */ 5510 get: function () { 5511 return this.choices.filter(function (choice) { 5512 return choice.active === true; 5513 }); 5514 }, 5515 enumerable: false, 5516 configurable: true 5517 }); 5518 Object.defineProperty(Store.prototype, "selectableChoices", { 5519 /** 5520 * Get selectable choices from store 5521 */ 5522 get: function () { 5523 return this.choices.filter(function (choice) { 5524 return choice.disabled !== true; 5525 }); 5526 }, 5527 enumerable: false, 5528 configurable: true 5529 }); 5530 Object.defineProperty(Store.prototype, "searchableChoices", { 5531 /** 5532 * Get choices that can be searched (excluding placeholders) 5533 */ 5534 get: function () { 5535 return this.selectableChoices.filter(function (choice) { 5536 return choice.placeholder !== true; 5537 }); 5538 }, 5539 enumerable: false, 5540 configurable: true 5541 }); 5542 Object.defineProperty(Store.prototype, "placeholderChoice", { 5543 /** 5544 * Get placeholder choice from store 5545 */ 5546 get: function () { 5547 return __spreadArray([], this.choices, true).reverse().find(function (choice) { 5548 return choice.placeholder === true; 5549 }); 5550 }, 5551 enumerable: false, 5552 configurable: true 5553 }); 5554 Object.defineProperty(Store.prototype, "groups", { 5555 /** 5556 * Get groups from store 5557 */ 5558 get: function () { 5559 return this.state.groups; 5560 }, 5561 enumerable: false, 5562 configurable: true 5563 }); 5564 Object.defineProperty(Store.prototype, "activeGroups", { 5565 /** 5566 * Get active groups from store 5567 */ 5568 get: function () { 5569 var _a = this, 5570 groups = _a.groups, 5571 choices = _a.choices; 5572 return groups.filter(function (group) { 5573 var isActive = group.active === true && group.disabled === false; 5574 var hasActiveOptions = choices.some(function (choice) { 5575 return choice.active === true && choice.disabled === false; 5576 }); 5577 return isActive && hasActiveOptions; 5578 }, []); 5579 }, 5580 enumerable: false, 5581 configurable: true 5582 }); 5583 /** 5584 * Get loading state from store 5585 */ 5586 Store.prototype.isLoading = function () { 5587 return this.state.loading; 5588 }; 5589 /** 5590 * Get single choice by it's ID 5591 */ 5592 Store.prototype.getChoiceById = function (id) { 5593 return this.activeChoices.find(function (choice) { 5594 return choice.id === parseInt(id, 10); 5595 }); 5596 }; 5597 /** 5598 * Get group by group id 5599 */ 5600 Store.prototype.getGroupById = function (id) { 5601 return this.groups.find(function (group) { 5602 return group.id === id; 5603 }); 5604 }; 5605 return Store; 5606}(); 5607exports["default"] = Store; 5608 5609/***/ }), 5610 5611/***/ 686: 5612/***/ (function(__unused_webpack_module, exports) { 5613 5614 5615 5616/** 5617 * Helpers to create HTML elements used by Choices 5618 * Can be overridden by providing `callbackOnCreateTemplates` option 5619 */ 5620Object.defineProperty(exports, "__esModule", ({ 5621 value: true 5622})); 5623var templates = { 5624 containerOuter: function (_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType, labelId) { 5625 var containerOuter = _a.classNames.containerOuter; 5626 var div = Object.assign(document.createElement('div'), { 5627 className: containerOuter 5628 }); 5629 div.dataset.type = passedElementType; 5630 if (dir) { 5631 div.dir = dir; 5632 } 5633 if (isSelectOneElement) { 5634 div.tabIndex = 0; 5635 } 5636 if (isSelectElement) { 5637 div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox'); 5638 if (searchEnabled) { 5639 div.setAttribute('aria-autocomplete', 'list'); 5640 } 5641 } 5642 div.setAttribute('aria-haspopup', 'true'); 5643 div.setAttribute('aria-expanded', 'false'); 5644 if (labelId) { 5645 div.setAttribute('aria-labelledby', labelId); 5646 } 5647 return div; 5648 }, 5649 containerInner: function (_a) { 5650 var containerInner = _a.classNames.containerInner; 5651 return Object.assign(document.createElement('div'), { 5652 className: containerInner 5653 }); 5654 }, 5655 itemList: function (_a, isSelectOneElement) { 5656 var _b = _a.classNames, 5657 list = _b.list, 5658 listSingle = _b.listSingle, 5659 listItems = _b.listItems; 5660 return Object.assign(document.createElement('div'), { 5661 className: "".concat(list, " ").concat(isSelectOneElement ? listSingle : listItems) 5662 }); 5663 }, 5664 placeholder: function (_a, value) { 5665 var _b; 5666 var allowHTML = _a.allowHTML, 5667 placeholder = _a.classNames.placeholder; 5668 return Object.assign(document.createElement('div'), (_b = { 5669 className: placeholder 5670 }, _b[allowHTML ? 'innerHTML' : 'innerText'] = value, _b)); 5671 }, 5672 item: function (_a, _b, removeItemButton) { 5673 var _c, _d; 5674 var allowHTML = _a.allowHTML, 5675 _e = _a.classNames, 5676 item = _e.item, 5677 button = _e.button, 5678 highlightedState = _e.highlightedState, 5679 itemSelectable = _e.itemSelectable, 5680 placeholder = _e.placeholder; 5681 var id = _b.id, 5682 value = _b.value, 5683 label = _b.label, 5684 customProperties = _b.customProperties, 5685 active = _b.active, 5686 disabled = _b.disabled, 5687 highlighted = _b.highlighted, 5688 isPlaceholder = _b.placeholder; 5689 var div = Object.assign(document.createElement('div'), (_c = { 5690 className: item 5691 }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c)); 5692 Object.assign(div.dataset, { 5693 item: '', 5694 id: id, 5695 value: value, 5696 customProperties: customProperties 5697 }); 5698 if (active) { 5699 div.setAttribute('aria-selected', 'true'); 5700 } 5701 if (disabled) { 5702 div.setAttribute('aria-disabled', 'true'); 5703 } 5704 if (isPlaceholder) { 5705 div.classList.add(placeholder); 5706 } 5707 div.classList.add(highlighted ? highlightedState : itemSelectable); 5708 if (removeItemButton) { 5709 if (disabled) { 5710 div.classList.remove(itemSelectable); 5711 } 5712 div.dataset.deletable = ''; 5713 /** @todo This MUST be localizable, not hardcoded! */ 5714 var REMOVE_ITEM_TEXT = 'Remove item'; 5715 var removeButton = Object.assign(document.createElement('button'), (_d = { 5716 type: 'button', 5717 className: button 5718 }, _d[allowHTML ? 'innerHTML' : 'innerText'] = REMOVE_ITEM_TEXT, _d)); 5719 removeButton.setAttribute('aria-label', "".concat(REMOVE_ITEM_TEXT, ": '").concat(value, "'")); 5720 removeButton.dataset.button = ''; 5721 div.appendChild(removeButton); 5722 } 5723 return div; 5724 }, 5725 choiceList: function (_a, isSelectOneElement) { 5726 var list = _a.classNames.list; 5727 var div = Object.assign(document.createElement('div'), { 5728 className: list 5729 }); 5730 if (!isSelectOneElement) { 5731 div.setAttribute('aria-multiselectable', 'true'); 5732 } 5733 div.setAttribute('role', 'listbox'); 5734 return div; 5735 }, 5736 choiceGroup: function (_a, _b) { 5737 var _c; 5738 var allowHTML = _a.allowHTML, 5739 _d = _a.classNames, 5740 group = _d.group, 5741 groupHeading = _d.groupHeading, 5742 itemDisabled = _d.itemDisabled; 5743 var id = _b.id, 5744 value = _b.value, 5745 disabled = _b.disabled; 5746 var div = Object.assign(document.createElement('div'), { 5747 className: "".concat(group, " ").concat(disabled ? itemDisabled : '') 5748 }); 5749 div.setAttribute('role', 'group'); 5750 Object.assign(div.dataset, { 5751 group: '', 5752 id: id, 5753 value: value 5754 }); 5755 if (disabled) { 5756 div.setAttribute('aria-disabled', 'true'); 5757 } 5758 div.appendChild(Object.assign(document.createElement('div'), (_c = { 5759 className: groupHeading 5760 }, _c[allowHTML ? 'innerHTML' : 'innerText'] = value, _c))); 5761 return div; 5762 }, 5763 choice: function (_a, _b, selectText) { 5764 var _c; 5765 var allowHTML = _a.allowHTML, 5766 _d = _a.classNames, 5767 item = _d.item, 5768 itemChoice = _d.itemChoice, 5769 itemSelectable = _d.itemSelectable, 5770 selectedState = _d.selectedState, 5771 itemDisabled = _d.itemDisabled, 5772 placeholder = _d.placeholder; 5773 var id = _b.id, 5774 value = _b.value, 5775 label = _b.label, 5776 groupId = _b.groupId, 5777 elementId = _b.elementId, 5778 isDisabled = _b.disabled, 5779 isSelected = _b.selected, 5780 isPlaceholder = _b.placeholder; 5781 var div = Object.assign(document.createElement('div'), (_c = { 5782 id: elementId 5783 }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c.className = "".concat(item, " ").concat(itemChoice), _c)); 5784 if (isSelected) { 5785 div.classList.add(selectedState); 5786 } 5787 if (isPlaceholder) { 5788 div.classList.add(placeholder); 5789 } 5790 div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option'); 5791 Object.assign(div.dataset, { 5792 choice: '', 5793 id: id, 5794 value: value, 5795 selectText: selectText 5796 }); 5797 if (isDisabled) { 5798 div.classList.add(itemDisabled); 5799 div.dataset.choiceDisabled = ''; 5800 div.setAttribute('aria-disabled', 'true'); 5801 } else { 5802 div.classList.add(itemSelectable); 5803 div.dataset.choiceSelectable = ''; 5804 } 5805 return div; 5806 }, 5807 input: function (_a, placeholderValue) { 5808 var _b = _a.classNames, 5809 input = _b.input, 5810 inputCloned = _b.inputCloned; 5811 var inp = Object.assign(document.createElement('input'), { 5812 type: 'search', 5813 name: 'search_terms', 5814 className: "".concat(input, " ").concat(inputCloned), 5815 autocomplete: 'off', 5816 autocapitalize: 'off', 5817 spellcheck: false 5818 }); 5819 inp.setAttribute('role', 'textbox'); 5820 inp.setAttribute('aria-autocomplete', 'list'); 5821 inp.setAttribute('aria-label', placeholderValue); 5822 return inp; 5823 }, 5824 dropdown: function (_a) { 5825 var _b = _a.classNames, 5826 list = _b.list, 5827 listDropdown = _b.listDropdown; 5828 var div = document.createElement('div'); 5829 div.classList.add(list, listDropdown); 5830 div.setAttribute('aria-expanded', 'false'); 5831 return div; 5832 }, 5833 notice: function (_a, innerText, type) { 5834 var _b; 5835 var allowHTML = _a.allowHTML, 5836 _c = _a.classNames, 5837 item = _c.item, 5838 itemChoice = _c.itemChoice, 5839 noResults = _c.noResults, 5840 noChoices = _c.noChoices; 5841 if (type === void 0) { 5842 type = ''; 5843 } 5844 var classes = [item, itemChoice]; 5845 if (type === 'no-choices') { 5846 classes.push(noChoices); 5847 } else if (type === 'no-results') { 5848 classes.push(noResults); 5849 } 5850 return Object.assign(document.createElement('div'), (_b = {}, _b[allowHTML ? 'innerHTML' : 'innerText'] = innerText, _b.className = classes.join(' '), _b)); 5851 }, 5852 option: function (_a) { 5853 var label = _a.label, 5854 value = _a.value, 5855 customProperties = _a.customProperties, 5856 active = _a.active, 5857 disabled = _a.disabled; 5858 var opt = new Option(label, value, false, active); 5859 if (customProperties) { 5860 opt.dataset.customProperties = "".concat(customProperties); 5861 } 5862 opt.disabled = !!disabled; 5863 return opt; 5864 } 5865}; 5866exports["default"] = templates; 5867 5868/***/ }), 5869 5870/***/ 996: 5871/***/ (function(module) { 5872 5873 5874 5875var isMergeableObject = function isMergeableObject(value) { 5876 return isNonNullObject(value) 5877 && !isSpecial(value) 5878}; 5879 5880function isNonNullObject(value) { 5881 return !!value && typeof value === 'object' 5882} 5883 5884function isSpecial(value) { 5885 var stringValue = Object.prototype.toString.call(value); 5886 5887 return stringValue === '[object RegExp]' 5888 || stringValue === '[object Date]' 5889 || isReactElement(value) 5890} 5891 5892// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 5893var canUseSymbol = typeof Symbol === 'function' && Symbol.for; 5894var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; 5895 5896function isReactElement(value) { 5897 return value.$$typeof === REACT_ELEMENT_TYPE 5898} 5899 5900function emptyTarget(val) { 5901 return Array.isArray(val) ? [] : {} 5902} 5903 5904function cloneUnlessOtherwiseSpecified(value, options) { 5905 return (options.clone !== false && options.isMergeableObject(value)) 5906 ? deepmerge(emptyTarget(value), value, options) 5907 : value 5908} 5909 5910function defaultArrayMerge(target, source, options) { 5911 return target.concat(source).map(function(element) { 5912 return cloneUnlessOtherwiseSpecified(element, options) 5913 }) 5914} 5915 5916function getMergeFunction(key, options) { 5917 if (!options.customMerge) { 5918 return deepmerge 5919 } 5920 var customMerge = options.customMerge(key); 5921 return typeof customMerge === 'function' ? customMerge : deepmerge 5922} 5923 5924function getEnumerableOwnPropertySymbols(target) { 5925 return Object.getOwnPropertySymbols 5926 ? Object.getOwnPropertySymbols(target).filter(function(symbol) { 5927 return target.propertyIsEnumerable(symbol) 5928 }) 5929 : [] 5930} 5931 5932function getKeys(target) { 5933 return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)) 5934} 5935 5936function propertyIsOnObject(object, property) { 5937 try { 5938 return property in object 5939 } catch(_) { 5940 return false 5941 } 5942} 5943 5944// Protects from prototype poisoning and unexpected merging up the prototype chain. 5945function propertyIsUnsafe(target, key) { 5946 return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, 5947 && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, 5948 && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. 5949} 5950 5951function mergeObject(target, source, options) { 5952 var destination = {}; 5953 if (options.isMergeableObject(target)) { 5954 getKeys(target).forEach(function(key) { 5955 destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); 5956 }); 5957 } 5958 getKeys(source).forEach(function(key) { 5959 if (propertyIsUnsafe(target, key)) { 5960 return 5961 } 5962 5963 if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { 5964 destination[key] = getMergeFunction(key, options)(target[key], source[key], options); 5965 } else { 5966 destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); 5967 } 5968 }); 5969 return destination 5970} 5971 5972function deepmerge(target, source, options) { 5973 options = options || {}; 5974 options.arrayMerge = options.arrayMerge || defaultArrayMerge; 5975 options.isMergeableObject = options.isMergeableObject || isMergeableObject; 5976 // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge() 5977 // implementations can use it. The caller may not replace it. 5978 options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; 5979 5980 var sourceIsArray = Array.isArray(source); 5981 var targetIsArray = Array.isArray(target); 5982 var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; 5983 5984 if (!sourceAndTargetTypesMatch) { 5985 return cloneUnlessOtherwiseSpecified(source, options) 5986 } else if (sourceIsArray) { 5987 return options.arrayMerge(target, source, options) 5988 } else { 5989 return mergeObject(target, source, options) 5990 } 5991} 5992 5993deepmerge.all = function deepmergeAll(array, options) { 5994 if (!Array.isArray(array)) { 5995 throw new Error('first argument should be an array') 5996 } 5997 5998 return array.reduce(function(prev, next) { 5999 return deepmerge(prev, next, options) 6000 }, {}) 6001}; 6002 6003var deepmerge_1 = deepmerge; 6004 6005module.exports = deepmerge_1; 6006 6007 6008/***/ }), 6009 6010/***/ 221: 6011/***/ (function(__unused_webpack_module, __webpack_exports__, __nested_webpack_require_136441__) { 6012 6013__nested_webpack_require_136441__.r(__webpack_exports__); 6014/* harmony export */ __nested_webpack_require_136441__.d(__webpack_exports__, { 6015/* harmony export */ "default": function() { return /* binding */ Fuse; } 6016/* harmony export */ }); 6017/** 6018 * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io) 6019 * 6020 * Copyright (c) 2022 Kiro Risk (http://kiro.me) 6021 * All Rights Reserved. Apache Software License 2.0 6022 * 6023 * http://www.apache.org/licenses/LICENSE-2.0 6024 */ 6025 6026function isArray(value) { 6027 return !Array.isArray 6028 ? getTag(value) === '[object Array]' 6029 : Array.isArray(value) 6030} 6031 6032// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js 6033const INFINITY = 1 / 0; 6034function baseToString(value) { 6035 // Exit early for strings to avoid a performance hit in some environments. 6036 if (typeof value == 'string') { 6037 return value 6038 } 6039 let result = value + ''; 6040 return result == '0' && 1 / value == -INFINITY ? '-0' : result 6041} 6042 6043function toString(value) { 6044 return value == null ? '' : baseToString(value) 6045} 6046 6047function isString(value) { 6048 return typeof value === 'string' 6049} 6050 6051function isNumber(value) { 6052 return typeof value === 'number' 6053} 6054 6055// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js 6056function isBoolean(value) { 6057 return ( 6058 value === true || 6059 value === false || 6060 (isObjectLike(value) && getTag(value) == '[object Boolean]') 6061 ) 6062} 6063 6064function isObject(value) { 6065 return typeof value === 'object' 6066} 6067 6068// Checks if `value` is object-like. 6069function isObjectLike(value) { 6070 return isObject(value) && value !== null 6071} 6072 6073function isDefined(value) { 6074 return value !== undefined && value !== null 6075} 6076 6077function isBlank(value) { 6078 return !value.trim().length 6079} 6080 6081// Gets the `toStringTag` of `value`. 6082// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js 6083function getTag(value) { 6084 return value == null 6085 ? value === undefined 6086 ? '[object Undefined]' 6087 : '[object Null]' 6088 : Object.prototype.toString.call(value) 6089} 6090 6091const EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available'; 6092 6093const INCORRECT_INDEX_TYPE = "Incorrect 'index' type"; 6094 6095const LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) => 6096 `Invalid value for key ${key}`; 6097 6098const PATTERN_LENGTH_TOO_LARGE = (max) => 6099 `Pattern length exceeds max of ${max}.`; 6100 6101const MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`; 6102 6103const INVALID_KEY_WEIGHT_VALUE = (key) => 6104 `Property 'weight' in key '${key}' must be a positive integer`; 6105 6106const hasOwn = Object.prototype.hasOwnProperty; 6107 6108class KeyStore { 6109 constructor(keys) { 6110 this._keys = []; 6111 this._keyMap = {}; 6112 6113 let totalWeight = 0; 6114 6115 keys.forEach((key) => { 6116 let obj = createKey(key); 6117 6118 totalWeight += obj.weight; 6119 6120 this._keys.push(obj); 6121 this._keyMap[obj.id] = obj; 6122 6123 totalWeight += obj.weight; 6124 }); 6125 6126 // Normalize weights so that their sum is equal to 1 6127 this._keys.forEach((key) => { 6128 key.weight /= totalWeight; 6129 }); 6130 } 6131 get(keyId) { 6132 return this._keyMap[keyId] 6133 } 6134 keys() { 6135 return this._keys 6136 } 6137 toJSON() { 6138 return JSON.stringify(this._keys) 6139 } 6140} 6141 6142function createKey(key) { 6143 let path = null; 6144 let id = null; 6145 let src = null; 6146 let weight = 1; 6147 let getFn = null; 6148 6149 if (isString(key) || isArray(key)) { 6150 src = key; 6151 path = createKeyPath(key); 6152 id = createKeyId(key); 6153 } else { 6154 if (!hasOwn.call(key, 'name')) { 6155 throw new Error(MISSING_KEY_PROPERTY('name')) 6156 } 6157 6158 const name = key.name; 6159 src = name; 6160 6161 if (hasOwn.call(key, 'weight')) { 6162 weight = key.weight; 6163 6164 if (weight <= 0) { 6165 throw new Error(INVALID_KEY_WEIGHT_VALUE(name)) 6166 } 6167 } 6168 6169 path = createKeyPath(name); 6170 id = createKeyId(name); 6171 getFn = key.getFn; 6172 } 6173 6174 return { path, id, weight, src, getFn } 6175} 6176 6177function createKeyPath(key) { 6178 return isArray(key) ? key : key.split('.') 6179} 6180 6181function createKeyId(key) { 6182 return isArray(key) ? key.join('.') : key 6183} 6184 6185function get(obj, path) { 6186 let list = []; 6187 let arr = false; 6188 6189 const deepGet = (obj, path, index) => { 6190 if (!isDefined(obj)) { 6191 return 6192 } 6193 if (!path[index]) { 6194 // If there's no path left, we've arrived at the object we care about. 6195 list.push(obj); 6196 } else { 6197 let key = path[index]; 6198 6199 const value = obj[key]; 6200 6201 if (!isDefined(value)) { 6202 return 6203 } 6204 6205 // If we're at the last value in the path, and if it's a string/number/bool, 6206 // add it to the list 6207 if ( 6208 index === path.length - 1 && 6209 (isString(value) || isNumber(value) || isBoolean(value)) 6210 ) { 6211 list.push(toString(value)); 6212 } else if (isArray(value)) { 6213 arr = true; 6214 // Search each item in the array. 6215 for (let i = 0, len = value.length; i < len; i += 1) { 6216 deepGet(value[i], path, index + 1); 6217 } 6218 } else if (path.length) { 6219 // An object. Recurse further. 6220 deepGet(value, path, index + 1); 6221 } 6222 } 6223 }; 6224 6225 // Backwards compatibility (since path used to be a string) 6226 deepGet(obj, isString(path) ? path.split('.') : path, 0); 6227 6228 return arr ? list : list[0] 6229} 6230 6231const MatchOptions = { 6232 // Whether the matches should be included in the result set. When `true`, each record in the result 6233 // set will include the indices of the matched characters. 6234 // These can consequently be used for highlighting purposes. 6235 includeMatches: false, 6236 // When `true`, the matching function will continue to the end of a search pattern even if 6237 // a perfect match has already been located in the string. 6238 findAllMatches: false, 6239 // Minimum number of characters that must be matched before a result is considered a match 6240 minMatchCharLength: 1 6241}; 6242 6243const BasicOptions = { 6244 // When `true`, the algorithm continues searching to the end of the input even if a perfect 6245 // match is found before the end of the same input. 6246 isCaseSensitive: false, 6247 // When true, the matching function will continue to the end of a search pattern even if 6248 includeScore: false, 6249 // List of properties that will be searched. This also supports nested properties. 6250 keys: [], 6251 // Whether to sort the result list, by score 6252 shouldSort: true, 6253 // Default sort function: sort by ascending score, ascending index 6254 sortFn: (a, b) => 6255 a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1 6256}; 6257 6258const FuzzyOptions = { 6259 // Approximately where in the text is the pattern expected to be found? 6260 location: 0, 6261 // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match 6262 // (of both letters and location), a threshold of '1.0' would match anything. 6263 threshold: 0.6, 6264 // Determines how close the match must be to the fuzzy location (specified above). 6265 // An exact letter match which is 'distance' characters away from the fuzzy location 6266 // would score as a complete mismatch. A distance of '0' requires the match be at 6267 // the exact location specified, a threshold of '1000' would require a perfect match 6268 // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold. 6269 distance: 100 6270}; 6271 6272const AdvancedOptions = { 6273 // When `true`, it enables the use of unix-like search commands 6274 useExtendedSearch: false, 6275 // The get function to use when fetching an object's properties. 6276 // The default will search nested paths *ie foo.bar.baz* 6277 getFn: get, 6278 // When `true`, search will ignore `location` and `distance`, so it won't matter 6279 // where in the string the pattern appears. 6280 // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score 6281 ignoreLocation: false, 6282 // When `true`, the calculation for the relevance score (used for sorting) will 6283 // ignore the field-length norm. 6284 // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm 6285 ignoreFieldNorm: false, 6286 // The weight to determine how much field length norm effects scoring. 6287 fieldNormWeight: 1 6288}; 6289 6290var Config = { 6291 ...BasicOptions, 6292 ...MatchOptions, 6293 ...FuzzyOptions, 6294 ...AdvancedOptions 6295}; 6296 6297const SPACE = /[^ ]+/g; 6298 6299// Field-length norm: the shorter the field, the higher the weight. 6300// Set to 3 decimals to reduce index size. 6301function norm(weight = 1, mantissa = 3) { 6302 const cache = new Map(); 6303 const m = Math.pow(10, mantissa); 6304 6305 return { 6306 get(value) { 6307 const numTokens = value.match(SPACE).length; 6308 6309 if (cache.has(numTokens)) { 6310 return cache.get(numTokens) 6311 } 6312 6313 // Default function is 1/sqrt(x), weight makes that variable 6314 const norm = 1 / Math.pow(numTokens, 0.5 * weight); 6315 6316 // In place of `toFixed(mantissa)`, for faster computation 6317 const n = parseFloat(Math.round(norm * m) / m); 6318 6319 cache.set(numTokens, n); 6320 6321 return n 6322 }, 6323 clear() { 6324 cache.clear(); 6325 } 6326 } 6327} 6328 6329class FuseIndex { 6330 constructor({ 6331 getFn = Config.getFn, 6332 fieldNormWeight = Config.fieldNormWeight 6333 } = {}) { 6334 this.norm = norm(fieldNormWeight, 3); 6335 this.getFn = getFn; 6336 this.isCreated = false; 6337 6338 this.setIndexRecords(); 6339 } 6340 setSources(docs = []) { 6341 this.docs = docs; 6342 } 6343 setIndexRecords(records = []) { 6344 this.records = records; 6345 } 6346 setKeys(keys = []) { 6347 this.keys = keys; 6348 this._keysMap = {}; 6349 keys.forEach((key, idx) => { 6350 this._keysMap[key.id] = idx; 6351 }); 6352 } 6353 create() { 6354 if (this.isCreated || !this.docs.length) { 6355 return 6356 } 6357 6358 this.isCreated = true; 6359 6360 // List is Array<String> 6361 if (isString(this.docs[0])) { 6362 this.docs.forEach((doc, docIndex) => { 6363 this._addString(doc, docIndex); 6364 }); 6365 } else { 6366 // List is Array<Object> 6367 this.docs.forEach((doc, docIndex) => { 6368 this._addObject(doc, docIndex); 6369 }); 6370 } 6371 6372 this.norm.clear(); 6373 } 6374 // Adds a doc to the end of the index 6375 add(doc) { 6376 const idx = this.size(); 6377 6378 if (isString(doc)) { 6379 this._addString(doc, idx); 6380 } else { 6381 this._addObject(doc, idx); 6382 } 6383 } 6384 // Removes the doc at the specified index of the index 6385 removeAt(idx) { 6386 this.records.splice(idx, 1); 6387 6388 // Change ref index of every subsquent doc 6389 for (let i = idx, len = this.size(); i < len; i += 1) { 6390 this.records[i].i -= 1; 6391 } 6392 } 6393 getValueForItemAtKeyId(item, keyId) { 6394 return item[this._keysMap[keyId]] 6395 } 6396 size() { 6397 return this.records.length 6398 } 6399 _addString(doc, docIndex) { 6400 if (!isDefined(doc) || isBlank(doc)) { 6401 return 6402 } 6403 6404 let record = { 6405 v: doc, 6406 i: docIndex, 6407 n: this.norm.get(doc) 6408 }; 6409 6410 this.records.push(record); 6411 } 6412 _addObject(doc, docIndex) { 6413 let record = { i: docIndex, $: {} }; 6414 6415 // Iterate over every key (i.e, path), and fetch the value at that key 6416 this.keys.forEach((key, keyIndex) => { 6417 let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path); 6418 6419 if (!isDefined(value)) { 6420 return 6421 } 6422 6423 if (isArray(value)) { 6424 let subRecords = []; 6425 const stack = [{ nestedArrIndex: -1, value }]; 6426 6427 while (stack.length) { 6428 const { nestedArrIndex, value } = stack.pop(); 6429 6430 if (!isDefined(value)) { 6431 continue 6432 } 6433 6434 if (isString(value) && !isBlank(value)) { 6435 let subRecord = { 6436 v: value, 6437 i: nestedArrIndex, 6438 n: this.norm.get(value) 6439 }; 6440 6441 subRecords.push(subRecord); 6442 } else if (isArray(value)) { 6443 value.forEach((item, k) => { 6444 stack.push({ 6445 nestedArrIndex: k, 6446 value: item 6447 }); 6448 }); 6449 } else ; 6450 } 6451 record.$[keyIndex] = subRecords; 6452 } else if (isString(value) && !isBlank(value)) { 6453 let subRecord = { 6454 v: value, 6455 n: this.norm.get(value) 6456 }; 6457 6458 record.$[keyIndex] = subRecord; 6459 } 6460 }); 6461 6462 this.records.push(record); 6463 } 6464 toJSON() { 6465 return { 6466 keys: this.keys, 6467 records: this.records 6468 } 6469 } 6470} 6471 6472function createIndex( 6473 keys, 6474 docs, 6475 { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {} 6476) { 6477 const myIndex = new FuseIndex({ getFn, fieldNormWeight }); 6478 myIndex.setKeys(keys.map(createKey)); 6479 myIndex.setSources(docs); 6480 myIndex.create(); 6481 return myIndex 6482} 6483 6484function parseIndex( 6485 data, 6486 { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {} 6487) { 6488 const { keys, records } = data; 6489 const myIndex = new FuseIndex({ getFn, fieldNormWeight }); 6490 myIndex.setKeys(keys); 6491 myIndex.setIndexRecords(records); 6492 return myIndex 6493} 6494 6495function computeScore$1( 6496 pattern, 6497 { 6498 errors = 0, 6499 currentLocation = 0, 6500 expectedLocation = 0, 6501 distance = Config.distance, 6502 ignoreLocation = Config.ignoreLocation 6503 } = {} 6504) { 6505 const accuracy = errors / pattern.length; 6506 6507 if (ignoreLocation) { 6508 return accuracy 6509 } 6510 6511 const proximity = Math.abs(expectedLocation - currentLocation); 6512 6513 if (!distance) { 6514 // Dodge divide by zero error. 6515 return proximity ? 1.0 : accuracy 6516 } 6517 6518 return accuracy + proximity / distance 6519} 6520 6521function convertMaskToIndices( 6522 matchmask = [], 6523 minMatchCharLength = Config.minMatchCharLength 6524) { 6525 let indices = []; 6526 let start = -1; 6527 let end = -1; 6528 let i = 0; 6529 6530 for (let len = matchmask.length; i < len; i += 1) { 6531 let match = matchmask[i]; 6532 if (match && start === -1) { 6533 start = i; 6534 } else if (!match && start !== -1) { 6535 end = i - 1; 6536 if (end - start + 1 >= minMatchCharLength) { 6537 indices.push([start, end]); 6538 } 6539 start = -1; 6540 } 6541 } 6542 6543 // (i-1 - start) + 1 => i - start 6544 if (matchmask[i - 1] && i - start >= minMatchCharLength) { 6545 indices.push([start, i - 1]); 6546 } 6547 6548 return indices 6549} 6550 6551// Machine word size 6552const MAX_BITS = 32; 6553 6554function search( 6555 text, 6556 pattern, 6557 patternAlphabet, 6558 { 6559 location = Config.location, 6560 distance = Config.distance, 6561 threshold = Config.threshold, 6562 findAllMatches = Config.findAllMatches, 6563 minMatchCharLength = Config.minMatchCharLength, 6564 includeMatches = Config.includeMatches, 6565 ignoreLocation = Config.ignoreLocation 6566 } = {} 6567) { 6568 if (pattern.length > MAX_BITS) { 6569 throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS)) 6570 } 6571 6572 const patternLen = pattern.length; 6573 // Set starting location at beginning text and initialize the alphabet. 6574 const textLen = text.length; 6575 // Handle the case when location > text.length 6576 const expectedLocation = Math.max(0, Math.min(location, textLen)); 6577 // Highest score beyond which we give up. 6578 let currentThreshold = threshold; 6579 // Is there a nearby exact match? (speedup) 6580 let bestLocation = expectedLocation; 6581 6582 // Performance: only computer matches when the minMatchCharLength > 1 6583 // OR if `includeMatches` is true. 6584 const computeMatches = minMatchCharLength > 1 || includeMatches; 6585 // A mask of the matches, used for building the indices 6586 const matchMask = computeMatches ? Array(textLen) : []; 6587 6588 let index; 6589 6590 // Get all exact matches, here for speed up 6591 while ((index = text.indexOf(pattern, bestLocation)) > -1) { 6592 let score = computeScore$1(pattern, { 6593 currentLocation: index, 6594 expectedLocation, 6595 distance, 6596 ignoreLocation 6597 }); 6598 6599 currentThreshold = Math.min(score, currentThreshold); 6600 bestLocation = index + patternLen; 6601 6602 if (computeMatches) { 6603 let i = 0; 6604 while (i < patternLen) { 6605 matchMask[index + i] = 1; 6606 i += 1; 6607 } 6608 } 6609 } 6610 6611 // Reset the best location 6612 bestLocation = -1; 6613 6614 let lastBitArr = []; 6615 let finalScore = 1; 6616 let binMax = patternLen + textLen; 6617 6618 const mask = 1 << (patternLen - 1); 6619 6620 for (let i = 0; i < patternLen; i += 1) { 6621 // Scan for the best match; each iteration allows for one more error. 6622 // Run a binary search to determine how far from the match location we can stray 6623 // at this error level. 6624 let binMin = 0; 6625 let binMid = binMax; 6626 6627 while (binMin < binMid) { 6628 const score = computeScore$1(pattern, { 6629 errors: i, 6630 currentLocation: expectedLocation + binMid, 6631 expectedLocation, 6632 distance, 6633 ignoreLocation 6634 }); 6635 6636 if (score <= currentThreshold) { 6637 binMin = binMid; 6638 } else { 6639 binMax = binMid; 6640 } 6641 6642 binMid = Math.floor((binMax - binMin) / 2 + binMin); 6643 } 6644 6645 // Use the result from this iteration as the maximum for the next. 6646 binMax = binMid; 6647 6648 let start = Math.max(1, expectedLocation - binMid + 1); 6649 let finish = findAllMatches 6650 ? textLen 6651 : Math.min(expectedLocation + binMid, textLen) + patternLen; 6652 6653 // Initialize the bit array 6654 let bitArr = Array(finish + 2); 6655 6656 bitArr[finish + 1] = (1 << i) - 1; 6657 6658 for (let j = finish; j >= start; j -= 1) { 6659 let currentLocation = j - 1; 6660 let charMatch = patternAlphabet[text.charAt(currentLocation)]; 6661 6662 if (computeMatches) { 6663 // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`) 6664 matchMask[currentLocation] = +!!charMatch; 6665 } 6666 6667 // First pass: exact match 6668 bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch; 6669 6670 // Subsequent passes: fuzzy match 6671 if (i) { 6672 bitArr[j] |= 6673 ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1]; 6674 } 6675 6676 if (bitArr[j] & mask) { 6677 finalScore = computeScore$1(pattern, { 6678 errors: i, 6679 currentLocation, 6680 expectedLocation, 6681 distance, 6682 ignoreLocation 6683 }); 6684 6685 // This match will almost certainly be better than any existing match. 6686 // But check anyway. 6687 if (finalScore <= currentThreshold) { 6688 // Indeed it is 6689 currentThreshold = finalScore; 6690 bestLocation = currentLocation; 6691 6692 // Already passed `loc`, downhill from here on in. 6693 if (bestLocation <= expectedLocation) { 6694 break 6695 } 6696 6697 // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`. 6698 start = Math.max(1, 2 * expectedLocation - bestLocation); 6699 } 6700 } 6701 } 6702 6703 // No hope for a (better) match at greater error levels. 6704 const score = computeScore$1(pattern, { 6705 errors: i + 1, 6706 currentLocation: expectedLocation, 6707 expectedLocation, 6708 distance, 6709 ignoreLocation 6710 }); 6711 6712 if (score > currentThreshold) { 6713 break 6714 } 6715 6716 lastBitArr = bitArr; 6717 } 6718 6719 const result = { 6720 isMatch: bestLocation >= 0, 6721 // Count exact matches (those with a score of 0) to be "almost" exact 6722 score: Math.max(0.001, finalScore) 6723 }; 6724 6725 if (computeMatches) { 6726 const indices = convertMaskToIndices(matchMask, minMatchCharLength); 6727 if (!indices.length) { 6728 result.isMatch = false; 6729 } else if (includeMatches) { 6730 result.indices = indices; 6731 } 6732 } 6733 6734 return result 6735} 6736 6737function createPatternAlphabet(pattern) { 6738 let mask = {}; 6739 6740 for (let i = 0, len = pattern.length; i < len; i += 1) { 6741 const char = pattern.charAt(i); 6742 mask[char] = (mask[char] || 0) | (1 << (len - i - 1)); 6743 } 6744 6745 return mask 6746} 6747 6748class BitapSearch { 6749 constructor( 6750 pattern, 6751 { 6752 location = Config.location, 6753 threshold = Config.threshold, 6754 distance = Config.distance, 6755 includeMatches = Config.includeMatches, 6756 findAllMatches = Config.findAllMatches, 6757 minMatchCharLength = Config.minMatchCharLength, 6758 isCaseSensitive = Config.isCaseSensitive, 6759 ignoreLocation = Config.ignoreLocation 6760 } = {} 6761 ) { 6762 this.options = { 6763 location, 6764 threshold, 6765 distance, 6766 includeMatches, 6767 findAllMatches, 6768 minMatchCharLength, 6769 isCaseSensitive, 6770 ignoreLocation 6771 }; 6772 6773 this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase(); 6774 6775 this.chunks = []; 6776 6777 if (!this.pattern.length) { 6778 return 6779 } 6780 6781 const addChunk = (pattern, startIndex) => { 6782 this.chunks.push({ 6783 pattern, 6784 alphabet: createPatternAlphabet(pattern), 6785 startIndex 6786 }); 6787 }; 6788 6789 const len = this.pattern.length; 6790 6791 if (len > MAX_BITS) { 6792 let i = 0; 6793 const remainder = len % MAX_BITS; 6794 const end = len - remainder; 6795 6796 while (i < end) { 6797 addChunk(this.pattern.substr(i, MAX_BITS), i); 6798 i += MAX_BITS; 6799 } 6800 6801 if (remainder) { 6802 const startIndex = len - MAX_BITS; 6803 addChunk(this.pattern.substr(startIndex), startIndex); 6804 } 6805 } else { 6806 addChunk(this.pattern, 0); 6807 } 6808 } 6809 6810 searchIn(text) { 6811 const { isCaseSensitive, includeMatches } = this.options; 6812 6813 if (!isCaseSensitive) { 6814 text = text.toLowerCase(); 6815 } 6816 6817 // Exact match 6818 if (this.pattern === text) { 6819 let result = { 6820 isMatch: true, 6821 score: 0 6822 }; 6823 6824 if (includeMatches) { 6825 result.indices = [[0, text.length - 1]]; 6826 } 6827 6828 return result 6829 } 6830 6831 // Otherwise, use Bitap algorithm 6832 const { 6833 location, 6834 distance, 6835 threshold, 6836 findAllMatches, 6837 minMatchCharLength, 6838 ignoreLocation 6839 } = this.options; 6840 6841 let allIndices = []; 6842 let totalScore = 0; 6843 let hasMatches = false; 6844 6845 this.chunks.forEach(({ pattern, alphabet, startIndex }) => { 6846 const { isMatch, score, indices } = search(text, pattern, alphabet, { 6847 location: location + startIndex, 6848 distance, 6849 threshold, 6850 findAllMatches, 6851 minMatchCharLength, 6852 includeMatches, 6853 ignoreLocation 6854 }); 6855 6856 if (isMatch) { 6857 hasMatches = true; 6858 } 6859 6860 totalScore += score; 6861 6862 if (isMatch && indices) { 6863 allIndices = [...allIndices, ...indices]; 6864 } 6865 }); 6866 6867 let result = { 6868 isMatch: hasMatches, 6869 score: hasMatches ? totalScore / this.chunks.length : 1 6870 }; 6871 6872 if (hasMatches && includeMatches) { 6873 result.indices = allIndices; 6874 } 6875 6876 return result 6877 } 6878} 6879 6880class BaseMatch { 6881 constructor(pattern) { 6882 this.pattern = pattern; 6883 } 6884 static isMultiMatch(pattern) { 6885 return getMatch(pattern, this.multiRegex) 6886 } 6887 static isSingleMatch(pattern) { 6888 return getMatch(pattern, this.singleRegex) 6889 } 6890 search(/*text*/) {} 6891} 6892 6893function getMatch(pattern, exp) { 6894 const matches = pattern.match(exp); 6895 return matches ? matches[1] : null 6896} 6897 6898// Token: 'file 6899 6900class ExactMatch extends BaseMatch { 6901 constructor(pattern) { 6902 super(pattern); 6903 } 6904 static get type() { 6905 return 'exact' 6906 } 6907 static get multiRegex() { 6908 return /^="(.*)"$/ 6909 } 6910 static get singleRegex() { 6911 return /^=(.*)$/ 6912 } 6913 search(text) { 6914 const isMatch = text === this.pattern; 6915 6916 return { 6917 isMatch, 6918 score: isMatch ? 0 : 1, 6919 indices: [0, this.pattern.length - 1] 6920 } 6921 } 6922} 6923 6924// Token: !fire 6925 6926class InverseExactMatch extends BaseMatch { 6927 constructor(pattern) { 6928 super(pattern); 6929 } 6930 static get type() { 6931 return 'inverse-exact' 6932 } 6933 static get multiRegex() { 6934 return /^!"(.*)"$/ 6935 } 6936 static get singleRegex() { 6937 return /^!(.*)$/ 6938 } 6939 search(text) { 6940 const index = text.indexOf(this.pattern); 6941 const isMatch = index === -1; 6942 6943 return { 6944 isMatch, 6945 score: isMatch ? 0 : 1, 6946 indices: [0, text.length - 1] 6947 } 6948 } 6949} 6950 6951// Token: ^file 6952 6953class PrefixExactMatch extends BaseMatch { 6954 constructor(pattern) { 6955 super(pattern); 6956 } 6957 static get type() { 6958 return 'prefix-exact' 6959 } 6960 static get multiRegex() { 6961 return /^\^"(.*)"$/ 6962 } 6963 static get singleRegex() { 6964 return /^\^(.*)$/ 6965 } 6966 search(text) { 6967 const isMatch = text.startsWith(this.pattern); 6968 6969 return { 6970 isMatch, 6971 score: isMatch ? 0 : 1, 6972 indices: [0, this.pattern.length - 1] 6973 } 6974 } 6975} 6976 6977// Token: !^fire 6978 6979class InversePrefixExactMatch extends BaseMatch { 6980 constructor(pattern) { 6981 super(pattern); 6982 } 6983 static get type() { 6984 return 'inverse-prefix-exact' 6985 } 6986 static get multiRegex() { 6987 return /^!\^"(.*)"$/ 6988 } 6989 static get singleRegex() { 6990 return /^!\^(.*)$/ 6991 } 6992 search(text) { 6993 const isMatch = !text.startsWith(this.pattern); 6994 6995 return { 6996 isMatch, 6997 score: isMatch ? 0 : 1, 6998 indices: [0, text.length - 1] 6999 } 7000 } 7001} 7002 7003// Token: .file$ 7004 7005class SuffixExactMatch extends BaseMatch { 7006 constructor(pattern) { 7007 super(pattern); 7008 } 7009 static get type() { 7010 return 'suffix-exact' 7011 } 7012 static get multiRegex() { 7013 return /^"(.*)"\$$/ 7014 } 7015 static get singleRegex() { 7016 return /^(.*)\$$/ 7017 } 7018 search(text) { 7019 const isMatch = text.endsWith(this.pattern); 7020 7021 return { 7022 isMatch, 7023 score: isMatch ? 0 : 1, 7024 indices: [text.length - this.pattern.length, text.length - 1] 7025 } 7026 } 7027} 7028 7029// Token: !.file$ 7030 7031class InverseSuffixExactMatch extends BaseMatch { 7032 constructor(pattern) { 7033 super(pattern); 7034 } 7035 static get type() { 7036 return 'inverse-suffix-exact' 7037 } 7038 static get multiRegex() { 7039 return /^!"(.*)"\$$/ 7040 } 7041 static get singleRegex() { 7042 return /^!(.*)\$$/ 7043 } 7044 search(text) { 7045 const isMatch = !text.endsWith(this.pattern); 7046 return { 7047 isMatch, 7048 score: isMatch ? 0 : 1, 7049 indices: [0, text.length - 1] 7050 } 7051 } 7052} 7053 7054class FuzzyMatch extends BaseMatch { 7055 constructor( 7056 pattern, 7057 { 7058 location = Config.location, 7059 threshold = Config.threshold, 7060 distance = Config.distance, 7061 includeMatches = Config.includeMatches, 7062 findAllMatches = Config.findAllMatches, 7063 minMatchCharLength = Config.minMatchCharLength, 7064 isCaseSensitive = Config.isCaseSensitive, 7065 ignoreLocation = Config.ignoreLocation 7066 } = {} 7067 ) { 7068 super(pattern); 7069 this._bitapSearch = new BitapSearch(pattern, { 7070 location, 7071 threshold, 7072 distance, 7073 includeMatches, 7074 findAllMatches, 7075 minMatchCharLength, 7076 isCaseSensitive, 7077 ignoreLocation 7078 }); 7079 } 7080 static get type() { 7081 return 'fuzzy' 7082 } 7083 static get multiRegex() { 7084 return /^"(.*)"$/ 7085 } 7086 static get singleRegex() { 7087 return /^(.*)$/ 7088 } 7089 search(text) { 7090 return this._bitapSearch.searchIn(text) 7091 } 7092} 7093 7094// Token: 'file 7095 7096class IncludeMatch extends BaseMatch { 7097 constructor(pattern) { 7098 super(pattern); 7099 } 7100 static get type() { 7101 return 'include' 7102 } 7103 static get multiRegex() { 7104 return /^'"(.*)"$/ 7105 } 7106 static get singleRegex() { 7107 return /^'(.*)$/ 7108 } 7109 search(text) { 7110 let location = 0; 7111 let index; 7112 7113 const indices = []; 7114 const patternLen = this.pattern.length; 7115 7116 // Get all exact matches 7117 while ((index = text.indexOf(this.pattern, location)) > -1) { 7118 location = index + patternLen; 7119 indices.push([index, location - 1]); 7120 } 7121 7122 const isMatch = !!indices.length; 7123 7124 return { 7125 isMatch, 7126 score: isMatch ? 0 : 1, 7127 indices 7128 } 7129 } 7130} 7131 7132// âOrder is important. DO NOT CHANGE. 7133const searchers = [ 7134 ExactMatch, 7135 IncludeMatch, 7136 PrefixExactMatch, 7137 InversePrefixExactMatch, 7138 InverseSuffixExactMatch, 7139 SuffixExactMatch, 7140 InverseExactMatch, 7141 FuzzyMatch 7142]; 7143 7144const searchersLen = searchers.length; 7145 7146// Regex to split by spaces, but keep anything in quotes together 7147const SPACE_RE = / +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/; 7148const OR_TOKEN = '|'; 7149 7150// Return a 2D array representation of the query, for simpler parsing. 7151// Example: 7152// "^core go$ | rb$ | py$ xy$" => [["^core", "go$"], ["rb$"], ["py$", "xy$"]] 7153function parseQuery(pattern, options = {}) { 7154 return pattern.split(OR_TOKEN).map((item) => { 7155 let query = item 7156 .trim() 7157 .split(SPACE_RE) 7158 .filter((item) => item && !!item.trim()); 7159 7160 let results = []; 7161 for (let i = 0, len = query.length; i < len; i += 1) { 7162 const queryItem = query[i]; 7163 7164 // 1. Handle multiple query match (i.e, once that are quoted, like `"hello world"`) 7165 let found = false; 7166 let idx = -1; 7167 while (!found && ++idx < searchersLen) { 7168 const searcher = searchers[idx]; 7169 let token = searcher.isMultiMatch(queryItem); 7170 if (token) { 7171 results.push(new searcher(token, options)); 7172 found = true; 7173 } 7174 } 7175 7176 if (found) { 7177 continue 7178 } 7179 7180 // 2. Handle single query matches (i.e, once that are *not* quoted) 7181 idx = -1; 7182 while (++idx < searchersLen) { 7183 const searcher = searchers[idx]; 7184 let token = searcher.isSingleMatch(queryItem); 7185 if (token) { 7186 results.push(new searcher(token, options)); 7187 break 7188 } 7189 } 7190 } 7191 7192 return results 7193 }) 7194} 7195 7196// These extended matchers can return an array of matches, as opposed 7197// to a singl match 7198const MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]); 7199 7200/** 7201 * Command-like searching 7202 * ====================== 7203 * 7204 * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`, 7205 * search in a given text. 7206 * 7207 * Search syntax: 7208 * 7209 * | Token | Match type | Description | 7210 * | ----------- | -------------------------- | -------------------------------------- | 7211 * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` | 7212 * | `=scheme` | exact-match | Items that are `scheme` | 7213 * | `'python` | include-match | Items that include `python` | 7214 * | `!ruby` | inverse-exact-match | Items that do not include `ruby` | 7215 * | `^java` | prefix-exact-match | Items that start with `java` | 7216 * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` | 7217 * | `.js$` | suffix-exact-match | Items that end with `.js` | 7218 * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` | 7219 * 7220 * A single pipe character acts as an OR operator. For example, the following 7221 * query matches entries that start with `core` and end with either`go`, `rb`, 7222 * or`py`. 7223 * 7224 * ``` 7225 * ^core go$ | rb$ | py$ 7226 * ``` 7227 */ 7228class ExtendedSearch { 7229 constructor( 7230 pattern, 7231 { 7232 isCaseSensitive = Config.isCaseSensitive, 7233 includeMatches = Config.includeMatches, 7234 minMatchCharLength = Config.minMatchCharLength, 7235 ignoreLocation = Config.ignoreLocation, 7236 findAllMatches = Config.findAllMatches, 7237 location = Config.location, 7238 threshold = Config.threshold, 7239 distance = Config.distance 7240 } = {} 7241 ) { 7242 this.query = null; 7243 this.options = { 7244 isCaseSensitive, 7245 includeMatches, 7246 minMatchCharLength, 7247 findAllMatches, 7248 ignoreLocation, 7249 location, 7250 threshold, 7251 distance 7252 }; 7253 7254 this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase(); 7255 this.query = parseQuery(this.pattern, this.options); 7256 } 7257 7258 static condition(_, options) { 7259 return options.useExtendedSearch 7260 } 7261 7262 searchIn(text) { 7263 const query = this.query; 7264 7265 if (!query) { 7266 return { 7267 isMatch: false, 7268 score: 1 7269 } 7270 } 7271 7272 const { includeMatches, isCaseSensitive } = this.options; 7273 7274 text = isCaseSensitive ? text : text.toLowerCase(); 7275 7276 let numMatches = 0; 7277 let allIndices = []; 7278 let totalScore = 0; 7279 7280 // ORs 7281 for (let i = 0, qLen = query.length; i < qLen; i += 1) { 7282 const searchers = query[i]; 7283 7284 // Reset indices 7285 allIndices.length = 0; 7286 numMatches = 0; 7287 7288 // ANDs 7289 for (let j = 0, pLen = searchers.length; j < pLen; j += 1) { 7290 const searcher = searchers[j]; 7291 const { isMatch, indices, score } = searcher.search(text); 7292 7293 if (isMatch) { 7294 numMatches += 1; 7295 totalScore += score; 7296 if (includeMatches) { 7297 const type = searcher.constructor.type; 7298 if (MultiMatchSet.has(type)) { 7299 allIndices = [...allIndices, ...indices]; 7300 } else { 7301 allIndices.push(indices); 7302 } 7303 } 7304 } else { 7305 totalScore = 0; 7306 numMatches = 0; 7307 allIndices.length = 0; 7308 break 7309 } 7310 } 7311 7312 // OR condition, so if TRUE, return 7313 if (numMatches) { 7314 let result = { 7315 isMatch: true, 7316 score: totalScore / numMatches 7317 }; 7318 7319 if (includeMatches) { 7320 result.indices = allIndices; 7321 } 7322 7323 return result 7324 } 7325 } 7326 7327 // Nothing was matched 7328 return { 7329 isMatch: false, 7330 score: 1 7331 } 7332 } 7333} 7334 7335const registeredSearchers = []; 7336 7337function register(...args) { 7338 registeredSearchers.push(...args); 7339} 7340 7341function createSearcher(pattern, options) { 7342 for (let i = 0, len = registeredSearchers.length; i < len; i += 1) { 7343 let searcherClass = registeredSearchers[i]; 7344 if (searcherClass.condition(pattern, options)) { 7345 return new searcherClass(pattern, options) 7346 } 7347 } 7348 7349 return new BitapSearch(pattern, options) 7350} 7351 7352const LogicalOperator = { 7353 AND: '$and', 7354 OR: '$or' 7355}; 7356 7357const KeyType = { 7358 PATH: '$path', 7359 PATTERN: '$val' 7360}; 7361 7362const isExpression = (query) => 7363 !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]); 7364 7365const isPath = (query) => !!query[KeyType.PATH]; 7366 7367const isLeaf = (query) => 7368 !isArray(query) && isObject(query) && !isExpression(query); 7369 7370const convertToExplicit = (query) => ({ 7371 [LogicalOperator.AND]: Object.keys(query).map((key) => ({ 7372 [key]: query[key] 7373 })) 7374}); 7375 7376// When `auto` is `true`, the parse function will infer and initialize and add 7377// the appropriate `Searcher` instance 7378function parse(query, options, { auto = true } = {}) { 7379 const next = (query) => { 7380 let keys = Object.keys(query); 7381 7382 const isQueryPath = isPath(query); 7383 7384 if (!isQueryPath && keys.length > 1 && !isExpression(query)) { 7385 return next(convertToExplicit(query)) 7386 } 7387 7388 if (isLeaf(query)) { 7389 const key = isQueryPath ? query[KeyType.PATH] : keys[0]; 7390 7391 const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key]; 7392 7393 if (!isString(pattern)) { 7394 throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key)) 7395 } 7396 7397 const obj = { 7398 keyId: createKeyId(key), 7399 pattern 7400 }; 7401 7402 if (auto) { 7403 obj.searcher = createSearcher(pattern, options); 7404 } 7405 7406 return obj 7407 } 7408 7409 let node = { 7410 children: [], 7411 operator: keys[0] 7412 }; 7413 7414 keys.forEach((key) => { 7415 const value = query[key]; 7416 7417 if (isArray(value)) { 7418 value.forEach((item) => { 7419 node.children.push(next(item)); 7420 }); 7421 } 7422 }); 7423 7424 return node 7425 }; 7426 7427 if (!isExpression(query)) { 7428 query = convertToExplicit(query); 7429 } 7430 7431 return next(query) 7432} 7433 7434// Practical scoring function 7435function computeScore( 7436 results, 7437 { ignoreFieldNorm = Config.ignoreFieldNorm } 7438) { 7439 results.forEach((result) => { 7440 let totalScore = 1; 7441 7442 result.matches.forEach(({ key, norm, score }) => { 7443 const weight = key ? key.weight : null; 7444 7445 totalScore *= Math.pow( 7446 score === 0 && weight ? Number.EPSILON : score, 7447 (weight || 1) * (ignoreFieldNorm ? 1 : norm) 7448 ); 7449 }); 7450 7451 result.score = totalScore; 7452 }); 7453} 7454 7455function transformMatches(result, data) { 7456 const matches = result.matches; 7457 data.matches = []; 7458 7459 if (!isDefined(matches)) { 7460 return 7461 } 7462 7463 matches.forEach((match) => { 7464 if (!isDefined(match.indices) || !match.indices.length) { 7465 return 7466 } 7467 7468 const { indices, value } = match; 7469 7470 let obj = { 7471 indices, 7472 value 7473 }; 7474 7475 if (match.key) { 7476 obj.key = match.key.src; 7477 } 7478 7479 if (match.idx > -1) { 7480 obj.refIndex = match.idx; 7481 } 7482 7483 data.matches.push(obj); 7484 }); 7485} 7486 7487function transformScore(result, data) { 7488 data.score = result.score; 7489} 7490 7491function format( 7492 results, 7493 docs, 7494 { 7495 includeMatches = Config.includeMatches, 7496 includeScore = Config.includeScore 7497 } = {} 7498) { 7499 const transformers = []; 7500 7501 if (includeMatches) transformers.push(transformMatches); 7502 if (includeScore) transformers.push(transformScore); 7503 7504 return results.map((result) => { 7505 const { idx } = result; 7506 7507 const data = { 7508 item: docs[idx], 7509 refIndex: idx 7510 }; 7511 7512 if (transformers.length) { 7513 transformers.forEach((transformer) => { 7514 transformer(result, data); 7515 }); 7516 } 7517 7518 return data 7519 }) 7520} 7521 7522class Fuse { 7523 constructor(docs, options = {}, index) { 7524 this.options = { ...Config, ...options }; 7525 7526 if ( 7527 this.options.useExtendedSearch && 7528 !true 7529 ) {} 7530 7531 this._keyStore = new KeyStore(this.options.keys); 7532 7533 this.setCollection(docs, index); 7534 } 7535 7536 setCollection(docs, index) { 7537 this._docs = docs; 7538 7539 if (index && !(index instanceof FuseIndex)) { 7540 throw new Error(INCORRECT_INDEX_TYPE) 7541 } 7542 7543 this._myIndex = 7544 index || 7545 createIndex(this.options.keys, this._docs, { 7546 getFn: this.options.getFn, 7547 fieldNormWeight: this.options.fieldNormWeight 7548 }); 7549 } 7550 7551 add(doc) { 7552 if (!isDefined(doc)) { 7553 return 7554 } 7555 7556 this._docs.push(doc); 7557 this._myIndex.add(doc); 7558 } 7559 7560 remove(predicate = (/* doc, idx */) => false) { 7561 const results = []; 7562 7563 for (let i = 0, len = this._docs.length; i < len; i += 1) { 7564 const doc = this._docs[i]; 7565 if (predicate(doc, i)) { 7566 this.removeAt(i); 7567 i -= 1; 7568 len -= 1; 7569 7570 results.push(doc); 7571 } 7572 } 7573 7574 return results 7575 } 7576 7577 removeAt(idx) { 7578 this._docs.splice(idx, 1); 7579 this._myIndex.removeAt(idx); 7580 } 7581 7582 getIndex() { 7583 return this._myIndex 7584 } 7585 7586 search(query, { limit = -1 } = {}) { 7587 const { 7588 includeMatches, 7589 includeScore, 7590 shouldSort, 7591 sortFn, 7592 ignoreFieldNorm 7593 } = this.options; 7594 7595 let results = isString(query) 7596 ? isString(this._docs[0]) 7597 ? this._searchStringList(query) 7598 : this._searchObjectList(query) 7599 : this._searchLogical(query); 7600 7601 computeScore(results, { ignoreFieldNorm }); 7602 7603 if (shouldSort) { 7604 results.sort(sortFn); 7605 } 7606 7607 if (isNumber(limit) && limit > -1) { 7608 results = results.slice(0, limit); 7609 } 7610 7611 return format(results, this._docs, { 7612 includeMatches, 7613 includeScore 7614 }) 7615 } 7616 7617 _searchStringList(query) { 7618 const searcher = createSearcher(query, this.options); 7619 const { records } = this._myIndex; 7620 const results = []; 7621 7622 // Iterate over every string in the index 7623 records.forEach(({ v: text, i: idx, n: norm }) => { 7624 if (!isDefined(text)) { 7625 return 7626 } 7627 7628 const { isMatch, score, indices } = searcher.searchIn(text); 7629 7630 if (isMatch) { 7631 results.push({ 7632 item: text, 7633 idx, 7634 matches: [{ score, value: text, norm, indices }] 7635 }); 7636 } 7637 }); 7638 7639 return results 7640 } 7641 7642 _searchLogical(query) { 7643 7644 const expression = parse(query, this.options); 7645 7646 const evaluate = (node, item, idx) => { 7647 if (!node.children) { 7648 const { keyId, searcher } = node; 7649 7650 const matches = this._findMatches({ 7651 key: this._keyStore.get(keyId), 7652 value: this._myIndex.getValueForItemAtKeyId(item, keyId), 7653 searcher 7654 }); 7655 7656 if (matches && matches.length) { 7657 return [ 7658 { 7659 idx, 7660 item, 7661 matches 7662 } 7663 ] 7664 } 7665 7666 return [] 7667 } 7668 7669 const res = []; 7670 for (let i = 0, len = node.children.length; i < len; i += 1) { 7671 const child = node.children[i]; 7672 const result = evaluate(child, item, idx); 7673 if (result.length) { 7674 res.push(...result); 7675 } else if (node.operator === LogicalOperator.AND) { 7676 return [] 7677 } 7678 } 7679 return res 7680 }; 7681 7682 const records = this._myIndex.records; 7683 const resultMap = {}; 7684 const results = []; 7685 7686 records.forEach(({ $: item, i: idx }) => { 7687 if (isDefined(item)) { 7688 let expResults = evaluate(expression, item, idx); 7689 7690 if (expResults.length) { 7691 // Dedupe when adding 7692 if (!resultMap[idx]) { 7693 resultMap[idx] = { idx, item, matches: [] }; 7694 results.push(resultMap[idx]); 7695 } 7696 expResults.forEach(({ matches }) => { 7697 resultMap[idx].matches.push(...matches); 7698 }); 7699 } 7700 } 7701 }); 7702 7703 return results 7704 } 7705 7706 _searchObjectList(query) { 7707 const searcher = createSearcher(query, this.options); 7708 const { keys, records } = this._myIndex; 7709 const results = []; 7710 7711 // List is Array<Object> 7712 records.forEach(({ $: item, i: idx }) => { 7713 if (!isDefined(item)) { 7714 return 7715 } 7716 7717 let matches = []; 7718 7719 // Iterate over every key (i.e, path), and fetch the value at that key 7720 keys.forEach((key, keyIndex) => { 7721 matches.push( 7722 ...this._findMatches({ 7723 key, 7724 value: item[keyIndex], 7725 searcher 7726 }) 7727 ); 7728 }); 7729 7730 if (matches.length) { 7731 results.push({ 7732 idx, 7733 item, 7734 matches 7735 }); 7736 } 7737 }); 7738 7739 return results 7740 } 7741 _findMatches({ key, value, searcher }) { 7742 if (!isDefined(value)) { 7743 return [] 7744 } 7745 7746 let matches = []; 7747 7748 if (isArray(value)) { 7749 value.forEach(({ v: text, i: idx, n: norm }) => { 7750 if (!isDefined(text)) { 7751 return 7752 } 7753 7754 const { isMatch, score, indices } = searcher.searchIn(text); 7755 7756 if (isMatch) { 7757 matches.push({ 7758 score, 7759 key, 7760 value: text, 7761 idx, 7762 norm, 7763 indices 7764 }); 7765 } 7766 }); 7767 } else { 7768 const { v: text, n: norm } = value; 7769 7770 const { isMatch, score, indices } = searcher.searchIn(text); 7771 7772 if (isMatch) { 7773 matches.push({ score, key, value: text, norm, indices }); 7774 } 7775 } 7776 7777 return matches 7778 } 7779} 7780 7781Fuse.version = '6.6.2'; 7782Fuse.createIndex = createIndex; 7783Fuse.parseIndex = parseIndex; 7784Fuse.config = Config; 7785 7786{ 7787 Fuse.parseQuery = parse; 7788} 7789 7790{ 7791 register(ExtendedSearch); 7792} 7793 7794 7795 7796 7797/***/ }), 7798 7799/***/ 791: 7800/***/ (function(__unused_webpack_module, __webpack_exports__, __nested_webpack_require_177999__) { 7801 7802// ESM COMPAT FLAG 7803__nested_webpack_require_177999__.r(__webpack_exports__); 7804 7805// EXPORTS 7806__nested_webpack_require_177999__.d(__webpack_exports__, { 7807 "__DO_NOT_USE__ActionTypes": function() { return /* binding */ ActionTypes; }, 7808 "applyMiddleware": function() { return /* binding */ applyMiddleware; }, 7809 "bindActionCreators": function() { return /* binding */ bindActionCreators; }, 7810 "combineReducers": function() { return /* binding */ combineReducers; }, 7811 "compose": function() { return /* binding */ compose; }, 7812 "createStore": function() { return /* binding */ createStore; }, 7813 "legacy_createStore": function() { return /* binding */ legacy_createStore; } 7814}); 7815 7816;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js 7817function _typeof(obj) { 7818 "@babel/helpers - typeof"; 7819 7820 return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { 7821 return typeof obj; 7822 } : function (obj) { 7823 return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 7824 }, _typeof(obj); 7825} 7826;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js 7827 7828function _toPrimitive(input, hint) { 7829 if (_typeof(input) !== "object" || input === null) return input; 7830 var prim = input[Symbol.toPrimitive]; 7831 if (prim !== undefined) { 7832 var res = prim.call(input, hint || "default"); 7833 if (_typeof(res) !== "object") return res; 7834 throw new TypeError("@@toPrimitive must return a primitive value."); 7835 } 7836 return (hint === "string" ? String : Number)(input); 7837} 7838;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js 7839 7840 7841function _toPropertyKey(arg) { 7842 var key = _toPrimitive(arg, "string"); 7843 return _typeof(key) === "symbol" ? key : String(key); 7844} 7845;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js 7846 7847function _defineProperty(obj, key, value) { 7848 key = _toPropertyKey(key); 7849 if (key in obj) { 7850 Object.defineProperty(obj, key, { 7851 value: value, 7852 enumerable: true, 7853 configurable: true, 7854 writable: true 7855 }); 7856 } else { 7857 obj[key] = value; 7858 } 7859 return obj; 7860} 7861;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js 7862 7863function ownKeys(object, enumerableOnly) { 7864 var keys = Object.keys(object); 7865 if (Object.getOwnPropertySymbols) { 7866 var symbols = Object.getOwnPropertySymbols(object); 7867 enumerableOnly && (symbols = symbols.filter(function (sym) { 7868 return Object.getOwnPropertyDescriptor(object, sym).enumerable; 7869 })), keys.push.apply(keys, symbols); 7870 } 7871 return keys; 7872} 7873function _objectSpread2(target) { 7874 for (var i = 1; i < arguments.length; i++) { 7875 var source = null != arguments[i] ? arguments[i] : {}; 7876 i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { 7877 _defineProperty(target, key, source[key]); 7878 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { 7879 Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); 7880 }); 7881 } 7882 return target; 7883} 7884;// CONCATENATED MODULE: ./node_modules/redux/es/redux.js 7885 7886 7887/** 7888 * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js 7889 * 7890 * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes 7891 * during build. 7892 * @param {number} code 7893 */ 7894function formatProdErrorMessage(code) { 7895 return "Minified Redux error #" + code + "; visit https://redux.js.org/Errors?code=" + code + " for the full message or " + 'use the non-minified dev environment for full errors. '; 7896} 7897 7898// Inlined version of the `symbol-observable` polyfill 7899var $$observable = (function () { 7900 return typeof Symbol === 'function' && Symbol.observable || '@@observable'; 7901})(); 7902 7903/** 7904 * These are private action types reserved by Redux. 7905 * For any unknown actions, you must return the current state. 7906 * If the current state is undefined, you must return the initial state. 7907 * Do not reference these action types directly in your code. 7908 */ 7909var randomString = function randomString() { 7910 return Math.random().toString(36).substring(7).split('').join('.'); 7911}; 7912 7913var ActionTypes = { 7914 INIT: "@@redux/INIT" + randomString(), 7915 REPLACE: "@@redux/REPLACE" + randomString(), 7916 PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() { 7917 return "@@redux/PROBE_UNKNOWN_ACTION" + randomString(); 7918 } 7919}; 7920 7921/** 7922 * @param {any} obj The object to inspect. 7923 * @returns {boolean} True if the argument appears to be a plain object. 7924 */ 7925function isPlainObject(obj) { 7926 if (typeof obj !== 'object' || obj === null) return false; 7927 var proto = obj; 7928 7929 while (Object.getPrototypeOf(proto) !== null) { 7930 proto = Object.getPrototypeOf(proto); 7931 } 7932 7933 return Object.getPrototypeOf(obj) === proto; 7934} 7935 7936// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of 7937function miniKindOf(val) { 7938 if (val === void 0) return 'undefined'; 7939 if (val === null) return 'null'; 7940 var type = typeof val; 7941 7942 switch (type) { 7943 case 'boolean': 7944 case 'string': 7945 case 'number': 7946 case 'symbol': 7947 case 'function': 7948 { 7949 return type; 7950 } 7951 } 7952 7953 if (Array.isArray(val)) return 'array'; 7954 if (isDate(val)) return 'date'; 7955 if (isError(val)) return 'error'; 7956 var constructorName = ctorName(val); 7957 7958 switch (constructorName) { 7959 case 'Symbol': 7960 case 'Promise': 7961 case 'WeakMap': 7962 case 'WeakSet': 7963 case 'Map': 7964 case 'Set': 7965 return constructorName; 7966 } // other 7967 7968 7969 return type.slice(8, -1).toLowerCase().replace(/\s/g, ''); 7970} 7971 7972function ctorName(val) { 7973 return typeof val.constructor === 'function' ? val.constructor.name : null; 7974} 7975 7976function isError(val) { 7977 return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number'; 7978} 7979 7980function isDate(val) { 7981 if (val instanceof Date) return true; 7982 return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function'; 7983} 7984 7985function kindOf(val) { 7986 var typeOfVal = typeof val; 7987 7988 if (false) {} 7989 7990 return typeOfVal; 7991} 7992 7993/** 7994 * @deprecated 7995 * 7996 * **We recommend using the `configureStore` method 7997 * of the `@reduxjs/toolkit` package**, which replaces `createStore`. 7998 * 7999 * Redux Toolkit is our recommended approach for writing Redux logic today, 8000 * including store setup, reducers, data fetching, and more. 8001 * 8002 * **For more details, please read this Redux docs page:** 8003 * **https://redux.js.org/introduction/why-rtk-is-redux-today** 8004 * 8005 * `configureStore` from Redux Toolkit is an improved version of `createStore` that 8006 * simplifies setup and helps avoid common bugs. 8007 * 8008 * You should not be using the `redux` core package by itself today, except for learning purposes. 8009 * The `createStore` method from the core `redux` package will not be removed, but we encourage 8010 * all users to migrate to using Redux Toolkit for all Redux code. 8011 * 8012 * If you want to use `createStore` without this visual deprecation warning, use 8013 * the `legacy_createStore` import instead: 8014 * 8015 * `import { legacy_createStore as createStore} from 'redux'` 8016 * 8017 */ 8018 8019function createStore(reducer, preloadedState, enhancer) { 8020 var _ref2; 8021 8022 if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') { 8023 throw new Error( true ? formatProdErrorMessage(0) : 0); 8024 } 8025 8026 if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { 8027 enhancer = preloadedState; 8028 preloadedState = undefined; 8029 } 8030 8031 if (typeof enhancer !== 'undefined') { 8032 if (typeof enhancer !== 'function') { 8033 throw new Error( true ? formatProdErrorMessage(1) : 0); 8034 } 8035 8036 return enhancer(createStore)(reducer, preloadedState); 8037 } 8038 8039 if (typeof reducer !== 'function') { 8040 throw new Error( true ? formatProdErrorMessage(2) : 0); 8041 } 8042 8043 var currentReducer = reducer; 8044 var currentState = preloadedState; 8045 var currentListeners = []; 8046 var nextListeners = currentListeners; 8047 var isDispatching = false; 8048 /** 8049 * This makes a shallow copy of currentListeners so we can use 8050 * nextListeners as a temporary list while dispatching. 8051 * 8052 * This prevents any bugs around consumers calling 8053 * subscribe/unsubscribe in the middle of a dispatch. 8054 */ 8055 8056 function ensureCanMutateNextListeners() { 8057 if (nextListeners === currentListeners) { 8058 nextListeners = currentListeners.slice(); 8059 } 8060 } 8061 /** 8062 * Reads the state tree managed by the store. 8063 * 8064 * @returns {any} The current state tree of your application. 8065 */ 8066 8067 8068 function getState() { 8069 if (isDispatching) { 8070 throw new Error( true ? formatProdErrorMessage(3) : 0); 8071 } 8072 8073 return currentState; 8074 } 8075 /** 8076 * Adds a change listener. It will be called any time an action is dispatched, 8077 * and some part of the state tree may potentially have changed. You may then 8078 * call `getState()` to read the current state tree inside the callback. 8079 * 8080 * You may call `dispatch()` from a change listener, with the following 8081 * caveats: 8082 * 8083 * 1. The subscriptions are snapshotted just before every `dispatch()` call. 8084 * If you subscribe or unsubscribe while the listeners are being invoked, this 8085 * will not have any effect on the `dispatch()` that is currently in progress. 8086 * However, the next `dispatch()` call, whether nested or not, will use a more 8087 * recent snapshot of the subscription list. 8088 * 8089 * 2. The listener should not expect to see all state changes, as the state 8090 * might have been updated multiple times during a nested `dispatch()` before 8091 * the listener is called. It is, however, guaranteed that all subscribers 8092 * registered before the `dispatch()` started will be called with the latest 8093 * state by the time it exits. 8094 * 8095 * @param {Function} listener A callback to be invoked on every dispatch. 8096 * @returns {Function} A function to remove this change listener. 8097 */ 8098 8099 8100 function subscribe(listener) { 8101 if (typeof listener !== 'function') { 8102 throw new Error( true ? formatProdErrorMessage(4) : 0); 8103 } 8104 8105 if (isDispatching) { 8106 throw new Error( true ? formatProdErrorMessage(5) : 0); 8107 } 8108 8109 var isSubscribed = true; 8110 ensureCanMutateNextListeners(); 8111 nextListeners.push(listener); 8112 return function unsubscribe() { 8113 if (!isSubscribed) { 8114 return; 8115 } 8116 8117 if (isDispatching) { 8118 throw new Error( true ? formatProdErrorMessage(6) : 0); 8119 } 8120 8121 isSubscribed = false; 8122 ensureCanMutateNextListeners(); 8123 var index = nextListeners.indexOf(listener); 8124 nextListeners.splice(index, 1); 8125 currentListeners = null; 8126 }; 8127 } 8128 /** 8129 * Dispatches an action. It is the only way to trigger a state change. 8130 * 8131 * The `reducer` function, used to create the store, will be called with the 8132 * current state tree and the given `action`. Its return value will 8133 * be considered the **next** state of the tree, and the change listeners 8134 * will be notified. 8135 * 8136 * The base implementation only supports plain object actions. If you want to 8137 * dispatch a Promise, an Observable, a thunk, or something else, you need to 8138 * wrap your store creating function into the corresponding middleware. For 8139 * example, see the documentation for the `redux-thunk` package. Even the 8140 * middleware will eventually dispatch plain object actions using this method. 8141 * 8142 * @param {Object} action A plain object representing âwhat changedâ. It is 8143 * a good idea to keep actions serializable so you can record and replay user 8144 * sessions, or use the time travelling `redux-devtools`. An action must have 8145 * a `type` property which may not be `undefined`. It is a good idea to use 8146 * string constants for action types. 8147 * 8148 * @returns {Object} For convenience, the same action object you dispatched. 8149 * 8150 * Note that, if you use a custom middleware, it may wrap `dispatch()` to 8151 * return something else (for example, a Promise you can await). 8152 */ 8153 8154 8155 function dispatch(action) { 8156 if (!isPlainObject(action)) { 8157 throw new Error( true ? formatProdErrorMessage(7) : 0); 8158 } 8159 8160 if (typeof action.type === 'undefined') { 8161 throw new Error( true ? formatProdErrorMessage(8) : 0); 8162 } 8163 8164 if (isDispatching) { 8165 throw new Error( true ? formatProdErrorMessage(9) : 0); 8166 } 8167 8168 try { 8169 isDispatching = true; 8170 currentState = currentReducer(currentState, action); 8171 } finally { 8172 isDispatching = false; 8173 } 8174 8175 var listeners = currentListeners = nextListeners; 8176 8177 for (var i = 0; i < listeners.length; i++) { 8178 var listener = listeners[i]; 8179 listener(); 8180 } 8181 8182 return action; 8183 } 8184 /** 8185 * Replaces the reducer currently used by the store to calculate the state. 8186 * 8187 * You might need this if your app implements code splitting and you want to 8188 * load some of the reducers dynamically. You might also need this if you 8189 * implement a hot reloading mechanism for Redux. 8190 * 8191 * @param {Function} nextReducer The reducer for the store to use instead. 8192 * @returns {void} 8193 */ 8194 8195 8196 function replaceReducer(nextReducer) { 8197 if (typeof nextReducer !== 'function') { 8198 throw new Error( true ? formatProdErrorMessage(10) : 0); 8199 } 8200 8201 currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT. 8202 // Any reducers that existed in both the new and old rootReducer 8203 // will receive the previous state. This effectively populates 8204 // the new state tree with any relevant data from the old one. 8205 8206 dispatch({ 8207 type: ActionTypes.REPLACE 8208 }); 8209 } 8210 /** 8211 * Interoperability point for observable/reactive libraries. 8212 * @returns {observable} A minimal observable of state changes. 8213 * For more information, see the observable proposal: 8214 * https://github.com/tc39/proposal-observable 8215 */ 8216 8217 8218 function observable() { 8219 var _ref; 8220 8221 var outerSubscribe = subscribe; 8222 return _ref = { 8223 /** 8224 * The minimal observable subscription method. 8225 * @param {Object} observer Any object that can be used as an observer. 8226 * The observer object should have a `next` method. 8227 * @returns {subscription} An object with an `unsubscribe` method that can 8228 * be used to unsubscribe the observable from the store, and prevent further 8229 * emission of values from the observable. 8230 */ 8231 subscribe: function subscribe(observer) { 8232 if (typeof observer !== 'object' || observer === null) { 8233 throw new Error( true ? formatProdErrorMessage(11) : 0); 8234 } 8235 8236 function observeState() { 8237 if (observer.next) { 8238 observer.next(getState()); 8239 } 8240 } 8241 8242 observeState(); 8243 var unsubscribe = outerSubscribe(observeState); 8244 return { 8245 unsubscribe: unsubscribe 8246 }; 8247 } 8248 }, _ref[$$observable] = function () { 8249 return this; 8250 }, _ref; 8251 } // When a store is created, an "INIT" action is dispatched so that every 8252 // reducer returns their initial state. This effectively populates 8253 // the initial state tree. 8254 8255 8256 dispatch({ 8257 type: ActionTypes.INIT 8258 }); 8259 return _ref2 = { 8260 dispatch: dispatch, 8261 subscribe: subscribe, 8262 getState: getState, 8263 replaceReducer: replaceReducer 8264 }, _ref2[$$observable] = observable, _ref2; 8265} 8266/** 8267 * Creates a Redux store that holds the state tree. 8268 * 8269 * **We recommend using `configureStore` from the 8270 * `@reduxjs/toolkit` package**, which replaces `createStore`: 8271 * **https://redux.js.org/introduction/why-rtk-is-redux-today** 8272 * 8273 * The only way to change the data in the store is to call `dispatch()` on it. 8274 * 8275 * There should only be a single store in your app. To specify how different 8276 * parts of the state tree respond to actions, you may combine several reducers 8277 * into a single reducer function by using `combineReducers`. 8278 * 8279 * @param {Function} reducer A function that returns the next state tree, given 8280 * the current state tree and the action to handle. 8281 * 8282 * @param {any} [preloadedState] The initial state. You may optionally specify it 8283 * to hydrate the state from the server in universal apps, or to restore a 8284 * previously serialized user session. 8285 * If you use `combineReducers` to produce the root reducer function, this must be 8286 * an object with the same shape as `combineReducers` keys. 8287 * 8288 * @param {Function} [enhancer] The store enhancer. You may optionally specify it 8289 * to enhance the store with third-party capabilities such as middleware, 8290 * time travel, persistence, etc. The only store enhancer that ships with Redux 8291 * is `applyMiddleware()`. 8292 * 8293 * @returns {Store} A Redux store that lets you read the state, dispatch actions 8294 * and subscribe to changes. 8295 */ 8296 8297var legacy_createStore = createStore; 8298 8299/** 8300 * Prints a warning in the console if it exists. 8301 * 8302 * @param {String} message The warning message. 8303 * @returns {void} 8304 */ 8305function warning(message) { 8306 /* eslint-disable no-console */ 8307 if (typeof console !== 'undefined' && typeof console.error === 'function') { 8308 console.error(message); 8309 } 8310 /* eslint-enable no-console */ 8311 8312 8313 try { 8314 // This error was thrown as a convenience so that if you enable 8315 // "break on all exceptions" in your console, 8316 // it would pause the execution at this line. 8317 throw new Error(message); 8318 } catch (e) {} // eslint-disable-line no-empty 8319 8320} 8321 8322function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { 8323 var reducerKeys = Object.keys(reducers); 8324 var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; 8325 8326 if (reducerKeys.length === 0) { 8327 return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; 8328 } 8329 8330 if (!isPlainObject(inputState)) { 8331 return "The " + argumentName + " has unexpected type of \"" + kindOf(inputState) + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\""); 8332 } 8333 8334 var unexpectedKeys = Object.keys(inputState).filter(function (key) { 8335 return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; 8336 }); 8337 unexpectedKeys.forEach(function (key) { 8338 unexpectedKeyCache[key] = true; 8339 }); 8340 if (action && action.type === ActionTypes.REPLACE) return; 8341 8342 if (unexpectedKeys.length > 0) { 8343 return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored."); 8344 } 8345} 8346 8347function assertReducerShape(reducers) { 8348 Object.keys(reducers).forEach(function (key) { 8349 var reducer = reducers[key]; 8350 var initialState = reducer(undefined, { 8351 type: ActionTypes.INIT 8352 }); 8353 8354 if (typeof initialState === 'undefined') { 8355 throw new Error( true ? formatProdErrorMessage(12) : 0); 8356 } 8357 8358 if (typeof reducer(undefined, { 8359 type: ActionTypes.PROBE_UNKNOWN_ACTION() 8360 }) === 'undefined') { 8361 throw new Error( true ? formatProdErrorMessage(13) : 0); 8362 } 8363 }); 8364} 8365/** 8366 * Turns an object whose values are different reducer functions, into a single 8367 * reducer function. It will call every child reducer, and gather their results 8368 * into a single state object, whose keys correspond to the keys of the passed 8369 * reducer functions. 8370 * 8371 * @param {Object} reducers An object whose values correspond to different 8372 * reducer functions that need to be combined into one. One handy way to obtain 8373 * it is to use ES6 `import * as reducers` syntax. The reducers may never return 8374 * undefined for any action. Instead, they should return their initial state 8375 * if the state passed to them was undefined, and the current state for any 8376 * unrecognized action. 8377 * 8378 * @returns {Function} A reducer function that invokes every reducer inside the 8379 * passed object, and builds a state object with the same shape. 8380 */ 8381 8382 8383function combineReducers(reducers) { 8384 var reducerKeys = Object.keys(reducers); 8385 var finalReducers = {}; 8386 8387 for (var i = 0; i < reducerKeys.length; i++) { 8388 var key = reducerKeys[i]; 8389 8390 if (false) {} 8391 8392 if (typeof reducers[key] === 'function') { 8393 finalReducers[key] = reducers[key]; 8394 } 8395 } 8396 8397 var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same 8398 // keys multiple times. 8399 8400 var unexpectedKeyCache; 8401 8402 if (false) {} 8403 8404 var shapeAssertionError; 8405 8406 try { 8407 assertReducerShape(finalReducers); 8408 } catch (e) { 8409 shapeAssertionError = e; 8410 } 8411 8412 return function combination(state, action) { 8413 if (state === void 0) { 8414 state = {}; 8415 } 8416 8417 if (shapeAssertionError) { 8418 throw shapeAssertionError; 8419 } 8420 8421 if (false) { var warningMessage; } 8422 8423 var hasChanged = false; 8424 var nextState = {}; 8425 8426 for (var _i = 0; _i < finalReducerKeys.length; _i++) { 8427 var _key = finalReducerKeys[_i]; 8428 var reducer = finalReducers[_key]; 8429 var previousStateForKey = state[_key]; 8430 var nextStateForKey = reducer(previousStateForKey, action); 8431 8432 if (typeof nextStateForKey === 'undefined') { 8433 var actionType = action && action.type; 8434 throw new Error( true ? formatProdErrorMessage(14) : 0); 8435 } 8436 8437 nextState[_key] = nextStateForKey; 8438 hasChanged = hasChanged || nextStateForKey !== previousStateForKey; 8439 } 8440 8441 hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length; 8442 return hasChanged ? nextState : state; 8443 }; 8444} 8445 8446function bindActionCreator(actionCreator, dispatch) { 8447 return function () { 8448 return dispatch(actionCreator.apply(this, arguments)); 8449 }; 8450} 8451/** 8452 * Turns an object whose values are action creators, into an object with the 8453 * same keys, but with every function wrapped into a `dispatch` call so they 8454 * may be invoked directly. This is just a convenience method, as you can call 8455 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. 8456 * 8457 * For convenience, you can also pass an action creator as the first argument, 8458 * and get a dispatch wrapped function in return. 8459 * 8460 * @param {Function|Object} actionCreators An object whose values are action 8461 * creator functions. One handy way to obtain it is to use ES6 `import * as` 8462 * syntax. You may also pass a single function. 8463 * 8464 * @param {Function} dispatch The `dispatch` function available on your Redux 8465 * store. 8466 * 8467 * @returns {Function|Object} The object mimicking the original object, but with 8468 * every action creator wrapped into the `dispatch` call. If you passed a 8469 * function as `actionCreators`, the return value will also be a single 8470 * function. 8471 */ 8472 8473 8474function bindActionCreators(actionCreators, dispatch) { 8475 if (typeof actionCreators === 'function') { 8476 return bindActionCreator(actionCreators, dispatch); 8477 } 8478 8479 if (typeof actionCreators !== 'object' || actionCreators === null) { 8480 throw new Error( true ? formatProdErrorMessage(16) : 0); 8481 } 8482 8483 var boundActionCreators = {}; 8484 8485 for (var key in actionCreators) { 8486 var actionCreator = actionCreators[key]; 8487 8488 if (typeof actionCreator === 'function') { 8489 boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); 8490 } 8491 } 8492 8493 return boundActionCreators; 8494} 8495 8496/** 8497 * Composes single-argument functions from right to left. The rightmost 8498 * function can take multiple arguments as it provides the signature for 8499 * the resulting composite function. 8500 * 8501 * @param {...Function} funcs The functions to compose. 8502 * @returns {Function} A function obtained by composing the argument functions 8503 * from right to left. For example, compose(f, g, h) is identical to doing 8504 * (...args) => f(g(h(...args))). 8505 */ 8506function compose() { 8507 for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { 8508 funcs[_key] = arguments[_key]; 8509 } 8510 8511 if (funcs.length === 0) { 8512 return function (arg) { 8513 return arg; 8514 }; 8515 } 8516 8517 if (funcs.length === 1) { 8518 return funcs[0]; 8519 } 8520 8521 return funcs.reduce(function (a, b) { 8522 return function () { 8523 return a(b.apply(void 0, arguments)); 8524 }; 8525 }); 8526} 8527 8528/** 8529 * Creates a store enhancer that applies middleware to the dispatch method 8530 * of the Redux store. This is handy for a variety of tasks, such as expressing 8531 * asynchronous actions in a concise manner, or logging every action payload. 8532 * 8533 * See `redux-thunk` package as an example of the Redux middleware. 8534 * 8535 * Because middleware is potentially asynchronous, this should be the first 8536 * store enhancer in the composition chain. 8537 * 8538 * Note that each middleware will be given the `dispatch` and `getState` functions 8539 * as named arguments. 8540 * 8541 * @param {...Function} middlewares The middleware chain to be applied. 8542 * @returns {Function} A store enhancer applying the middleware. 8543 */ 8544 8545function applyMiddleware() { 8546 for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) { 8547 middlewares[_key] = arguments[_key]; 8548 } 8549 8550 return function (createStore) { 8551 return function () { 8552 var store = createStore.apply(void 0, arguments); 8553 8554 var _dispatch = function dispatch() { 8555 throw new Error( true ? formatProdErrorMessage(15) : 0); 8556 }; 8557 8558 var middlewareAPI = { 8559 getState: store.getState, 8560 dispatch: function dispatch() { 8561 return _dispatch.apply(void 0, arguments); 8562 } 8563 }; 8564 var chain = middlewares.map(function (middleware) { 8565 return middleware(middlewareAPI); 8566 }); 8567 _dispatch = compose.apply(void 0, chain)(store.dispatch); 8568 return _objectSpread2(_objectSpread2({}, store), {}, { 8569 dispatch: _dispatch 8570 }); 8571 }; 8572 }; 8573} 8574 8575/* 8576 * This is a dummy function to check if the function name has been altered by minification. 8577 * If the function has been minified and NODE_ENV !== 'production', warn the user. 8578 */ 8579 8580function isCrushed() {} 8581 8582if (false) {} 8583 8584 8585 8586 8587/***/ }) 8588 8589/******/ }); 8590/************************************************************************/ 8591/******/ // The module cache 8592/******/ var __webpack_module_cache__ = {}; 8593/******/ 8594/******/ // The require function 8595/******/ function __nested_webpack_require_204296__(moduleId) { 8596/******/ // Check if module is in cache 8597/******/ var cachedModule = __webpack_module_cache__[moduleId]; 8598/******/ if (cachedModule !== undefined) { 8599/******/ return cachedModule.exports; 8600/******/ } 8601/******/ // Create a new module (and put it into the cache) 8602/******/ var module = __webpack_module_cache__[moduleId] = { 8603/******/ // no module.id needed 8604/******/ // no module.loaded needed 8605/******/ exports: {} 8606/******/ }; 8607/******/ 8608/******/ // Execute the module function 8609/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_204296__); 8610/******/ 8611/******/ // Return the exports of the module 8612/******/ return module.exports; 8613/******/ } 8614/******/ 8615/************************************************************************/ 8616/******/ /* webpack/runtime/compat get default export */ 8617/******/ !function() { 8618/******/ // getDefaultExport function for compatibility with non-harmony modules 8619/******/ __nested_webpack_require_204296__.n = function(module) { 8620/******/ var getter = module && module.__esModule ? 8621/******/ function() { return module['default']; } : 8622/******/ function() { return module; }; 8623/******/ __nested_webpack_require_204296__.d(getter, { a: getter }); 8624/******/ return getter; 8625/******/ }; 8626/******/ }(); 8627/******/ 8628/******/ /* webpack/runtime/define property getters */ 8629/******/ !function() { 8630/******/ // define getter functions for harmony exports 8631/******/ __nested_webpack_require_204296__.d = function(exports, definition) { 8632/******/ for(var key in definition) { 8633/******/ if(__nested_webpack_require_204296__.o(definition, key) && !__nested_webpack_require_204296__.o(exports, key)) { 8634/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 8635/******/ } 8636/******/ } 8637/******/ }; 8638/******/ }(); 8639/******/ 8640/******/ /* webpack/runtime/hasOwnProperty shorthand */ 8641/******/ !function() { 8642/******/ __nested_webpack_require_204296__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } 8643/******/ }(); 8644/******/ 8645/******/ /* webpack/runtime/make namespace object */ 8646/******/ !function() { 8647/******/ // define __esModule on exports 8648/******/ __nested_webpack_require_204296__.r = function(exports) { 8649/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 8650/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 8651/******/ } 8652/******/ Object.defineProperty(exports, '__esModule', { value: true }); 8653/******/ }; 8654/******/ }(); 8655/******/ 8656/************************************************************************/ 8657var __webpack_exports__ = {}; 8658// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. 8659!function() { 8660/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_204296__(373); 8661/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_204296__.n(_scripts_choices__WEBPACK_IMPORTED_MODULE_0__); 8662/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_204296__(187); 8663/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_204296__.n(_scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__); 8664/* harmony import */ var _scripts_constants__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_204296__(883); 8665/* harmony import */ var _scripts_defaults__WEBPACK_IMPORTED_MODULE_3__ = __nested_webpack_require_204296__(789); 8666/* harmony import */ var _scripts_templates__WEBPACK_IMPORTED_MODULE_4__ = __nested_webpack_require_204296__(686); 8667 8668 8669 8670 8671 8672 8673 8674/* harmony default export */ __webpack_exports__["default"] = ((_scripts_choices__WEBPACK_IMPORTED_MODULE_0___default())); 8675 8676}(); 8677__webpack_exports__ = __webpack_exports__["default"]; 8678/******/ return __webpack_exports__; 8679/******/ })() 8680; 8681}); 8682 8683/***/ }), 8684 8685/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./assets/css/main.css": 8686/*!*********************************************************************************************************************************************************************!*\ 8687 !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./assets/css/main.css ***! 8688 \*********************************************************************************************************************************************************************/ 8689/***/ ((module, __webpack_exports__, __webpack_require__) => { 8690 8691"use strict"; 8692__webpack_require__.r(__webpack_exports__); 8693/* harmony export */ __webpack_require__.d(__webpack_exports__, { 8694/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 8695/* harmony export */ }); 8696/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); 8697/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); 8698/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); 8699/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); 8700/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ "./node_modules/css-loader/dist/runtime/getUrl.js"); 8701/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); 8702// Imports 8703 8704 8705 8706var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== */ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg=="), __webpack_require__.b); 8707var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== */ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg=="), __webpack_require__.b); 8708var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! ../images/down-chevron-white.svg */ "./assets/images/down-chevron-white.svg"), __webpack_require__.b); 8709var ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __webpack_require__(/*! ../images/spinner.svg */ "./assets/images/spinner.svg"), __webpack_require__.b); 8710var ___CSS_LOADER_URL_IMPORT_4___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot"), __webpack_require__.b); 8711var ___CSS_LOADER_URL_IMPORT_5___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2"), __webpack_require__.b); 8712var ___CSS_LOADER_URL_IMPORT_6___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff"), __webpack_require__.b); 8713var ___CSS_LOADER_URL_IMPORT_7___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf"), __webpack_require__.b); 8714var ___CSS_LOADER_URL_IMPORT_8___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg"), __webpack_require__.b); 8715var ___CSS_LOADER_URL_IMPORT_9___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.eot"), __webpack_require__.b); 8716var ___CSS_LOADER_URL_IMPORT_10___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff2"), __webpack_require__.b); 8717var ___CSS_LOADER_URL_IMPORT_11___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff"), __webpack_require__.b); 8718var ___CSS_LOADER_URL_IMPORT_12___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.ttf"), __webpack_require__.b); 8719var ___CSS_LOADER_URL_IMPORT_13___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Bold.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.svg"), __webpack_require__.b); 8720var ___CSS_LOADER_URL_IMPORT_14___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.eot"), __webpack_require__.b); 8721var ___CSS_LOADER_URL_IMPORT_15___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff2"), __webpack_require__.b); 8722var ___CSS_LOADER_URL_IMPORT_16___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff"), __webpack_require__.b); 8723var ___CSS_LOADER_URL_IMPORT_17___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.ttf"), __webpack_require__.b); 8724var ___CSS_LOADER_URL_IMPORT_18___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue.svg"), __webpack_require__.b); 8725var ___CSS_LOADER_URL_IMPORT_19___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot"), __webpack_require__.b); 8726var ___CSS_LOADER_URL_IMPORT_20___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2"), __webpack_require__.b); 8727var ___CSS_LOADER_URL_IMPORT_21___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff"), __webpack_require__.b); 8728var ___CSS_LOADER_URL_IMPORT_22___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf"), __webpack_require__.b); 8729var ___CSS_LOADER_URL_IMPORT_23___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg"), __webpack_require__.b); 8730var ___CSS_LOADER_URL_IMPORT_24___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.eot"), __webpack_require__.b); 8731var ___CSS_LOADER_URL_IMPORT_25___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff2"), __webpack_require__.b); 8732var ___CSS_LOADER_URL_IMPORT_26___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff"), __webpack_require__.b); 8733var ___CSS_LOADER_URL_IMPORT_27___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.ttf"), __webpack_require__.b); 8734var ___CSS_LOADER_URL_IMPORT_28___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Light.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.svg"), __webpack_require__.b); 8735var ___CSS_LOADER_URL_IMPORT_29___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot"), __webpack_require__.b); 8736var ___CSS_LOADER_URL_IMPORT_30___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2"), __webpack_require__.b); 8737var ___CSS_LOADER_URL_IMPORT_31___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff"), __webpack_require__.b); 8738var ___CSS_LOADER_URL_IMPORT_32___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf"), __webpack_require__.b); 8739var ___CSS_LOADER_URL_IMPORT_33___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg"), __webpack_require__.b); 8740var ___CSS_LOADER_URL_IMPORT_34___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.eot"), __webpack_require__.b); 8741var ___CSS_LOADER_URL_IMPORT_35___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2"), __webpack_require__.b); 8742var ___CSS_LOADER_URL_IMPORT_36___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff"), __webpack_require__.b); 8743var ___CSS_LOADER_URL_IMPORT_37___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf"), __webpack_require__.b); 8744var ___CSS_LOADER_URL_IMPORT_38___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-LightItalic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.svg"), __webpack_require__.b); 8745var ___CSS_LOADER_URL_IMPORT_39___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.eot"), __webpack_require__.b); 8746var ___CSS_LOADER_URL_IMPORT_40___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff2"), __webpack_require__.b); 8747var ___CSS_LOADER_URL_IMPORT_41___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff"), __webpack_require__.b); 8748var ___CSS_LOADER_URL_IMPORT_42___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.ttf"), __webpack_require__.b); 8749var ___CSS_LOADER_URL_IMPORT_43___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Medium.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.svg"), __webpack_require__.b); 8750var ___CSS_LOADER_URL_IMPORT_44___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot"), __webpack_require__.b); 8751var ___CSS_LOADER_URL_IMPORT_45___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2"), __webpack_require__.b); 8752var ___CSS_LOADER_URL_IMPORT_46___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff"), __webpack_require__.b); 8753var ___CSS_LOADER_URL_IMPORT_47___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf"), __webpack_require__.b); 8754var ___CSS_LOADER_URL_IMPORT_48___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg"), __webpack_require__.b); 8755var ___CSS_LOADER_URL_IMPORT_49___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.eot */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.eot"), __webpack_require__.b); 8756var ___CSS_LOADER_URL_IMPORT_50___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.woff2 */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff2"), __webpack_require__.b); 8757var ___CSS_LOADER_URL_IMPORT_51___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.woff */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff"), __webpack_require__.b); 8758var ___CSS_LOADER_URL_IMPORT_52___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.ttf */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.ttf"), __webpack_require__.b); 8759var ___CSS_LOADER_URL_IMPORT_53___ = new URL(/* asset import */ __webpack_require__(/*! typography/fonts/dehinted-HelveticaNeue-Italic.svg */ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.svg"), __webpack_require__.b); 8760var ___CSS_LOADER_URL_IMPORT_54___ = new URL(/* asset import */ __webpack_require__(/*! ../images/point.png */ "./assets/images/point.png"), __webpack_require__.b); 8761var ___CSS_LOADER_URL_IMPORT_55___ = new URL(/* asset import */ __webpack_require__(/*! ../../../../../../../../../../assets/images/Footer-decal.svg */ "./assets/images/Footer-decal.svg"), __webpack_require__.b); 8762var ___CSS_LOADER_URL_IMPORT_56___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="8" /></filter></svg>#filter */ "data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feGaussianBlur stdDeviation=\"8\" /></filter></svg>#filter"), __webpack_require__.b); 8763var ___CSS_LOADER_URL_IMPORT_57___ = new URL(/* asset import */ __webpack_require__(/*! ../images/red-arrow-right.svg */ "./assets/images/red-arrow-right.svg"), __webpack_require__.b); 8764var ___CSS_LOADER_URL_IMPORT_58___ = new URL(/* asset import */ __webpack_require__(/*! ../images/blue-arrow-right.svg */ "./assets/images/blue-arrow-right.svg"), __webpack_require__.b); 8765var ___CSS_LOADER_URL_IMPORT_59___ = new URL(/* asset import */ __webpack_require__(/*! ../images/down-chevron.svg */ "./assets/images/down-chevron.svg"), __webpack_require__.b); 8766var ___CSS_LOADER_URL_IMPORT_60___ = new URL(/* asset import */ __webpack_require__(/*! ../images/search.svg */ "./assets/images/search.svg"), __webpack_require__.b); 8767var ___CSS_LOADER_URL_IMPORT_61___ = new URL(/* asset import */ __webpack_require__(/*! ../images/special_underline.svg */ "./assets/images/special_underline.svg"), __webpack_require__.b); 8768var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); 8769var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); 8770var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); 8771var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___); 8772var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___); 8773var ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___); 8774var ___CSS_LOADER_URL_REPLACEMENT_5___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___, { hash: "?#iefix" }); 8775var ___CSS_LOADER_URL_REPLACEMENT_6___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_5___); 8776var ___CSS_LOADER_URL_REPLACEMENT_7___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_6___); 8777var ___CSS_LOADER_URL_REPLACEMENT_8___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_7___); 8778var ___CSS_LOADER_URL_REPLACEMENT_9___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_8___, { hash: "#HelveticaNeue-BoldItalic" }); 8779var ___CSS_LOADER_URL_REPLACEMENT_10___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_9___); 8780var ___CSS_LOADER_URL_REPLACEMENT_11___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_9___, { hash: "?#iefix" }); 8781var ___CSS_LOADER_URL_REPLACEMENT_12___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_10___); 8782var ___CSS_LOADER_URL_REPLACEMENT_13___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_11___); 8783var ___CSS_LOADER_URL_REPLACEMENT_14___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_12___); 8784var ___CSS_LOADER_URL_REPLACEMENT_15___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_13___, { hash: "#HelveticaNeue-Bold" }); 8785var ___CSS_LOADER_URL_REPLACEMENT_16___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_14___); 8786var ___CSS_LOADER_URL_REPLACEMENT_17___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_14___, { hash: "?#iefix" }); 8787var ___CSS_LOADER_URL_REPLACEMENT_18___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_15___); 8788var ___CSS_LOADER_URL_REPLACEMENT_19___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_16___); 8789var ___CSS_LOADER_URL_REPLACEMENT_20___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_17___); 8790var ___CSS_LOADER_URL_REPLACEMENT_21___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_18___, { hash: "#HelveticaNeue" }); 8791var ___CSS_LOADER_URL_REPLACEMENT_22___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_19___); 8792var ___CSS_LOADER_URL_REPLACEMENT_23___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_19___, { hash: "?#iefix" }); 8793var ___CSS_LOADER_URL_REPLACEMENT_24___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_20___); 8794var ___CSS_LOADER_URL_REPLACEMENT_25___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_21___); 8795var ___CSS_LOADER_URL_REPLACEMENT_26___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_22___); 8796var ___CSS_LOADER_URL_REPLACEMENT_27___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_23___, { hash: "#HelveticaNeue-CondensedBlack" }); 8797var ___CSS_LOADER_URL_REPLACEMENT_28___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_24___); 8798var ___CSS_LOADER_URL_REPLACEMENT_29___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_24___, { hash: "?#iefix" }); 8799var ___CSS_LOADER_URL_REPLACEMENT_30___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_25___); 8800var ___CSS_LOADER_URL_REPLACEMENT_31___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_26___); 8801var ___CSS_LOADER_URL_REPLACEMENT_32___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_27___); 8802var ___CSS_LOADER_URL_REPLACEMENT_33___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_28___, { hash: "#HelveticaNeue-Light" }); 8803var ___CSS_LOADER_URL_REPLACEMENT_34___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_29___); 8804var ___CSS_LOADER_URL_REPLACEMENT_35___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_29___, { hash: "?#iefix" }); 8805var ___CSS_LOADER_URL_REPLACEMENT_36___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_30___); 8806var ___CSS_LOADER_URL_REPLACEMENT_37___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_31___); 8807var ___CSS_LOADER_URL_REPLACEMENT_38___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_32___); 8808var ___CSS_LOADER_URL_REPLACEMENT_39___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_33___, { hash: "#HelveticaNeue-CondensedBold" }); 8809var ___CSS_LOADER_URL_REPLACEMENT_40___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_34___); 8810var ___CSS_LOADER_URL_REPLACEMENT_41___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_34___, { hash: "?#iefix" }); 8811var ___CSS_LOADER_URL_REPLACEMENT_42___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_35___); 8812var ___CSS_LOADER_URL_REPLACEMENT_43___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_36___); 8813var ___CSS_LOADER_URL_REPLACEMENT_44___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_37___); 8814var ___CSS_LOADER_URL_REPLACEMENT_45___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_38___, { hash: "#HelveticaNeue-LightItalic" }); 8815var ___CSS_LOADER_URL_REPLACEMENT_46___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_39___); 8816var ___CSS_LOADER_URL_REPLACEMENT_47___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_39___, { hash: "?#iefix" }); 8817var ___CSS_LOADER_URL_REPLACEMENT_48___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_40___); 8818var ___CSS_LOADER_URL_REPLACEMENT_49___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_41___); 8819var ___CSS_LOADER_URL_REPLACEMENT_50___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_42___); 8820var ___CSS_LOADER_URL_REPLACEMENT_51___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_43___, { hash: "#HelveticaNeue-Medium" }); 8821var ___CSS_LOADER_URL_REPLACEMENT_52___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_44___); 8822var ___CSS_LOADER_URL_REPLACEMENT_53___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_44___, { hash: "?#iefix" }); 8823var ___CSS_LOADER_URL_REPLACEMENT_54___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_45___); 8824var ___CSS_LOADER_URL_REPLACEMENT_55___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_46___); 8825var ___CSS_LOADER_URL_REPLACEMENT_56___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_47___); 8826var ___CSS_LOADER_URL_REPLACEMENT_57___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_48___, { hash: "#HelveticaNeue-MediumItalic" }); 8827var ___CSS_LOADER_URL_REPLACEMENT_58___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_49___); 8828var ___CSS_LOADER_URL_REPLACEMENT_59___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_49___, { hash: "?#iefix" }); 8829var ___CSS_LOADER_URL_REPLACEMENT_60___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_50___); 8830var ___CSS_LOADER_URL_REPLACEMENT_61___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_51___); 8831var ___CSS_LOADER_URL_REPLACEMENT_62___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_52___); 8832var ___CSS_LOADER_URL_REPLACEMENT_63___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_53___, { hash: "#HelveticaNeue-Italic" }); 8833var ___CSS_LOADER_URL_REPLACEMENT_64___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_54___); 8834var ___CSS_LOADER_URL_REPLACEMENT_65___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_55___); 8835var ___CSS_LOADER_URL_REPLACEMENT_66___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_56___); 8836var ___CSS_LOADER_URL_REPLACEMENT_67___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_57___); 8837var ___CSS_LOADER_URL_REPLACEMENT_68___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_58___); 8838var ___CSS_LOADER_URL_REPLACEMENT_69___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_59___); 8839var ___CSS_LOADER_URL_REPLACEMENT_70___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_60___); 8840var ___CSS_LOADER_URL_REPLACEMENT_71___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_61___); 8841// Module 8842___CSS_LOADER_EXPORT___.push([module.id, "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\n/*Media Queries*/\n\n:root {\n /*fonts*/\n}\n\n@mixin until($size) {\n @media screen and (max-width: $size) {\n @content;\n }\n}\n\n@mixin from($size) {\n @media screen and (min-width: $size) {\n @content;\n }\n}\n\n/* vendor*/\n\n/*glidejs (slider)*/\n\n.glide {\n position: relative;\n width: 100%;\n box-sizing: border-box;\n}\n\n.glide * {\n box-sizing: inherit;\n}\n\n.glide__track {\n overflow: hidden;\n}\n\n.glide__slides {\n position: relative;\n width: 100%;\n list-style: none;\n backface-visibility: hidden;\n transform-style: preserve-3d;\n touch-action: pan-Y;\n overflow: hidden;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-wrap: nowrap;\n will-change: transform;\n}\n\n.glide__slides--dragging {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.glide__slide {\n width: 100%;\n height: 100%;\n flex-shrink: 0;\n white-space: normal;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.glide__slide a {\n -webkit-user-select: none;\n user-select: none;\n -webkit-user-drag: none;\n -moz-user-select: none;\n -ms-user-select: none;\n}\n\n.glide__arrows {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.glide__bullets {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.glide--rtl {\n direction: rtl;\n}\n\n.glide__arrow {\n position: absolute;\n display: block;\n top: 50%;\n z-index: 2;\n color: white;\n text-transform: uppercase;\n padding: 9px 12px;\n background-color: transparent;\n border: 2px solid rgba(255, 255, 255, .5);\n border-radius: 4px;\n box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, .1);\n text-shadow: 0 0.25em 0.5em rgba(0, 0, 0, .1);\n opacity: 1;\n cursor: pointer;\n transition: opacity 150ms ease, border 300ms ease-in-out;\n transform: translateY(-50%);\n line-height: 1;\n}\n\n.glide__arrow:focus {\n outline: none;\n}\n\n.glide__arrow:hover {\n border-color: white;\n}\n\n.glide__arrow--left {\n left: 2em;\n}\n\n.glide__arrow--right {\n right: 2em;\n}\n\n.glide__arrow--disabled {\n opacity: 0.33;\n}\n\n.glide__bullets {\n position: absolute;\n z-index: 2;\n bottom: 2em;\n left: 50%;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n list-style: none;\n transform: translateX(-50%);\n}\n\n.glide__bullet {\n background-color: rgba(255, 255, 255, .5);\n width: 9px;\n height: 9px;\n padding: 0;\n border-radius: 50%;\n border: 2px solid transparent;\n transition: all 300ms ease-in-out;\n cursor: pointer;\n line-height: 0;\n box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, .1);\n margin: 0 0.25em;\n}\n\n.glide__bullet:focus {\n outline: none;\n}\n\n.glide__bullet:hover, .glide__bullet:focus {\n border: 2px solid white;\n background-color: rgba(255, 255, 255, .5);\n}\n\n.glide__bullet--active {\n background-color: white;\n}\n\n.glide--swipeable {\n cursor: grab;\n cursor: -webkit-grab;\n}\n\n.glide--dragging {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n/*choices (select box)*/\n\n/*@import \"../../node_modules/choices.js/public/assets/styles/base.min\";*/\n\n.choices{position:relative;overflow:hidden;margin-bottom:24px;font-size:16px}\n\n.choices:focus{outline:0}\n\n.choices:last-child{margin-bottom:0}\n\n.choices.is-open{overflow:visible}\n\n.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}\n\n.choices.is-disabled .choices__item{cursor:not-allowed}\n\n.choices [hidden]{display:none!important}\n\n.choices[data-type*=select-one]{cursor:pointer}\n\n.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}\n\n.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}\n\n.choices[data-type*=select-one] .choices__button{background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.25}\n\n.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}\n\n.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}\n\n.choices[data-type*=select-one] .choices__item[data-value=\"\"] .choices__button{display:none}\n\n.choices[data-type*=select-one]::after{content:\"\";height:0;width:0;border-style:solid;border-color:#333 transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}\n\n.choices[data-type*=select-one].is-open::after{border-color:transparent transparent #333;margin-top:-7.5px}\n\n.choices[data-type*=select-one][dir=rtl]::after{left:11.5px;right:auto}\n\n.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}\n\n.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}\n\n.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0-4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}\n\n.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}\n\n.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}\n\n.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}\n\n.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}\n\n.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}\n\n.choices__list{margin:0;padding-left:0;list-style:none}\n\n.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}\n\n[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}\n\n.choices__list--single .choices__item{width:100%}\n\n.choices__list--multiple{display:inline}\n\n.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}\n\n.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}\n\n[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}\n\n.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}\n\n.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}\n\n.choices__list--dropdown,.choices__list[aria-expanded]{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}\n\n.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{visibility:visible}\n\n.is-open .choices__list--dropdown,.is-open .choices__list[aria-expanded]{border-color:#b7b7b7}\n\n.is-flipped .choices__list--dropdown,.is-flipped .choices__list[aria-expanded]{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}\n\n.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}\n\n.choices__list--dropdown .choices__item,.choices__list[aria-expanded] .choices__item{position:relative;padding:10px;font-size:14px}\n\n[dir=rtl] .choices__list--dropdown .choices__item,[dir=rtl] .choices__list[aria-expanded] .choices__item{text-align:right}\n\n@media (min-width:640px){.choices__list--dropdown .choices__item--selectable,.choices__list[aria-expanded] .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable::after,.choices__list[aria-expanded] .choices__item--selectable::after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable::after,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable::after{right:auto;left:10px}}\n\n.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{background-color:#f2f2f2}\n\n.choices__list--dropdown .choices__item--selectable.is-highlighted::after,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted::after{opacity:.5}\n\n.choices__item{cursor:default}\n\n.choices__item--selectable{cursor:pointer}\n\n.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}\n\n.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}\n\n.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}\n\n.choices__button:focus,.choices__input:focus{outline:0}\n\n.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}\n\n.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}\n\n.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;width:0;height:0}\n\n[dir=rtl] .choices__input{padding-right:2px;padding-left:0}\n\n.choices__placeholder{opacity:.5}\n\nhtml, body {\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.body-wrapper {\n position: relative;\n overflow-x: hidden\n\n}\n\n.body-wrapper.auth {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n min-height: 100%;\n justify-content: space-between;\n}\n\n.body-wrapper.auth > .container {\n width: 100%;\n}\n\n*, *:before, *:after {\n box-sizing: border-box;\n}\n\n.no-transition * {\n transition: none !important;\n}\n\n.container {\n display: block;\n margin: 0 auto;\n max-width: none;\n max-width: 1440px;\n padding: 0 15px;\n}\n\n@media screen and (max-width: 1920px) {\n\n .container {\n max-width: 1440px;\n }\n}\n\n@media screen and (max-width: 1536px) {\n\n .container {\n max-width: 1280px;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n .container {\n max-width: 1024px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .container {\n max-width: 768px;\n }\n}\n\n.sort-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n justify-content: flex-end;\n margin-bottom: 16px;\n}\n\n.sort-wrapper .page-sub-title {\n margin-bottom: 0;\n }\n\n.sort-wrapper .choices .choices__inner {\n background: #081C24;\n border-radius: 4px;\n color: #FFF;\n border: none;\n min-height: 32px;\n padding: 0.5px 16px;\n font-size: 14px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-weight: bold;\n }\n\n.sort-wrapper .choices[data-type*=\"select-one\"]::after {\n border: none;\n content: \"\";\n margin-top: -3px;\n pointer-events: none;\n position: absolute;\n right: 11.5px;\n top: 50%;\n width: 12px;\n height: 6px;\n background: url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ");\n background-size: 12px 6px;\n}\n\n.sort-wrapper .choices[data-type*=\"select-one\"].is-open::after {\n transform: rotate(180deg);\n}\n\n.sort-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable\n {\n padding-right: 0px;\n }\n\n.sort-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable::after\n {\n display: none;\n }\n\n.default-content-area {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: flex-start;\n gap: 56px;\n padding-bottom: 160px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .default-content-area {\n flex-wrap: wrap;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area {\n padding-bottom: 120px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area {\n padding-bottom: 80px;\n }\n}\n\n.default-content-area .sidebar {\n width: 215px;\n min-width: 215px;\n flex-shrink: 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n .default-content-area .sidebar {\n width: 100%;\n min-width: 100%;\n margin-top: 40px;\n }\n}\n\n.default-content-area .card-wrapper,.default-content-area .card-roll {\n width: 100%;\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area .card-roll {\n max-width: 450px;\n margin: 0 auto;\n }\n}\n\n.default-content-area.scientists .card-roll {\n display: grid;\n grid-gap: 100px 20px;\n gap: 100px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area.scientists .card-roll {\n grid-template-columns: 1fr 1fr;\n gap: 60px 15px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area.scientists .card-roll {\n grid-template-columns: 1fr;\n gap: 30px 15px;\n }\n}\n\n.default-content-area.publications {\n margin-top: 60px;\n}\n\n.default-content-area.publications .card-roll {\n display: grid;\n grid-gap: 20px;\n gap: 20px;\n grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .default-content-area.publications .card-roll {\n gap: 20px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area.publications .card-roll {\n grid-template-columns: 1fr;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area.publications .card-roll {\n gap: 20px;\n }\n}\n\n.default-content-area.project-type .card-roll {\n display: grid;\n grid-gap: 24px;\n gap: 24px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area.project-type .card-roll {\n grid-template-columns: 1fr;\n }\n}\n\n.default-content-area.project-type-v2 .card-roll {\n display: grid;\n grid-gap: 24px;\n gap: 24px;\n grid-template-columns: 1fr;\n}\n\n.default-content-area.teams .card-roll {\n display: grid;\n grid-gap: 80px 20px;\n gap: 80px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area.teams .card-roll {\n grid-template-columns: 1fr 1fr;\n gap: 60px 20px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area.teams .card-roll {\n grid-template-columns: 1fr;\n gap: 40px 20px;\n }\n}\n\n.default-content-area.news {\n margin-top: 60px;\n}\n\n.default-content-area.news .card-roll {\n display: grid;\n grid-gap: 120px 20px;\n gap: 120px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .default-content-area.news .card-roll {\n grid-template-columns: 1fr 1fr 1fr;\n gap: 80px 20px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area.news .card-roll {\n grid-template-columns: 1fr 1fr;\n gap: 64px 15px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area.news .card-roll {\n grid-template-columns: 1fr;\n gap: 32px 15px;\n }\n}\n\n.default-content-area.events .card-roll {\n display: grid;\n grid-gap: 120px 20px;\n gap: 120px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .default-content-area.events .card-roll {\n grid-template-columns: 1fr 1fr;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .default-content-area.events .card-roll {\n grid-template-columns: 1fr;\n }\n}\n\n.default-content-area.events .submit-news-v2.end {\n margin-bottom: 0;\n}\n\n.default-content-area.media .card-roll {\n display: grid;\n grid-gap: 120px 20px;\n gap: 120px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .default-content-area.media .card-roll {\n grid-template-columns: 1fr 1fr;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area.media .card-roll {\n grid-template-columns: 1fr;\n }\n}\n\n.default-content-area.gallery-page .card-roll {\n display: grid;\n grid-gap: 80px 20px;\n gap: 80px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .default-content-area.gallery-page .card-roll {\n grid-template-columns: 1fr 1fr;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area.gallery-page .card-roll {\n grid-template-columns: 1fr 1fr;\n gap: 32px 15px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area.gallery-page .card-roll {\n grid-template-columns: 1fr;\n gap: 32px 15px;\n }\n}\n\n.default-content-area.employment-page {\n padding-top: 40px;\n}\n\n.default-content-area.employment-page .card-roll {\n display: grid;\n grid-gap: 120px 20px;\n gap: 120px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr;\n}\n\n.default-content-area.forms .card-roll, .default-content-area.documents .card-roll {\n display: grid;\n grid-gap: 120px 20px;\n gap: 120px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1024px) {\n\n .default-content-area.forms .card-roll, .default-content-area.documents .card-roll {\n grid-template-columns: 1fr 1fr;\n gap: 32px 15px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .default-content-area.forms .card-roll, .default-content-area.documents .card-roll {\n grid-template-columns: 1fr;\n gap: 32px 15px;\n }\n}\n\n.default-content-area .card-wrapper.loading .card-roll {\n position: relative;\n}\n\n.default-content-area .card-wrapper.loading .card-roll::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background: #000 url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ") center center no-repeat;\n opacity: 0.5;\n}\n\n.single-content-area {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: flex-start;\n gap: 25px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-content-area {\n flex-wrap: wrap;\n }\n}\n\n.single-content-area .main {\n flex-grow: 1;\n max-width: 830px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-content-area .main {\n max-width: 639px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .single-content-area .main {\n max-width: 100%;\n }\n}\n\n.single-content-area.3-column .main {\n flex-grow: 1;\n max-width: 680px;\n}\n\n.single-content-area .sidebar.left {\n width: 320px;\n padding-right: 55px;\n flex-shrink: 0;\n}\n\n.single-content-area .sidebar.left .pagination-single a {\n transition: all 0.3s ease;\n display: inline-block;\n }\n\n.single-content-area .sidebar.left .pagination-single a rect{\n transition: all 0.3s ease;\n }\n\n.single-content-area .sidebar.left .pagination-single a path {\n transition: all 0.3s ease;\n }\n\n.single-content-area .sidebar.left .pagination-single a:hover rect {\n fill: #042C38;\n}\n\n.single-content-area .sidebar.left .pagination-single a:hover path {\n stroke: #FCFCFC;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-content-area .sidebar.left {\n width: 300px;\n padding-right: 30px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .single-content-area .sidebar.left {\n margin: 0 auto;\n padding-right: 0px;\n }\n\n .single-content-area .sidebar.left .pagination-single {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n.single-content-area .sidebar.right {\n width: 320px;\n flex-shrink: 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-content-area .sidebar.right {\n width: 100%;\n }\n}\n\n.single-content-area .sidebar.right.related {\n width: 360px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-content-area .sidebar.right.related {\n width: 100%;\n }\n}\n\n.single-content-area .sidebar.right .card:first-child {\n border-radius: 8px 8px 2px 2px;\n}\n\n.single-content-area .sidebar.right .card:last-child {\n border-radius: 2px 2px 8px 8px;\n}\n\n.single-content-area .sidebar.right .card {\n border-radius: 2px;\n}\n\n.single-content-area .info-list .title {\n margin: 0;\n }\n\n.single-content-area .info-list .list-item {\n padding: 15px;\n margin: 0 0 4px;\n background: #F5F5F5;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 0 8px;\n }\n\n.single-content-area .info-list .list-item p, .single-content-area .info-list .list-item a {\n margin: 0\n }\n\n.single-content-area .info-list .list-item p.label, .single-content-area .info-list .list-item a.label {\n margin-bottom: 8px;\n font-weight: bold;\n}\n\n.single-content-area .info-list .list-item a:hover {\n text-decoration: underline;\n}\n\n.single-content-area-v2 {\n display: grid;\n grid-gap: 20px 240px;\n gap: 20px 240px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-content-area-v2 {\n gap: 15px 32px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .single-content-area-v2 {\n grid-template-columns: 1fr;\n grid-auto-rows: auto;\n }\n}\n\n.single-content-area-v3 {\n display: grid;\n grid-gap: 20px 240px;\n gap: 20px 240px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1.3fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-content-area-v3 {\n gap: 15px 32px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .single-content-area-v3 {\n grid-template-columns: 1fr;\n grid-auto-rows: auto;\n }\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_4___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_5___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_6___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_7___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_8___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_9___ + ") format('svg');\n font-weight: bold;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_10___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_11___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_12___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_13___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_14___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_15___ + ") format('svg');\n font-weight: bold;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_16___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_17___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_18___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_19___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_20___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_21___ + ") format('svg');\n font-weight: normal;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue Condensed';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_22___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_23___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_24___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_25___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_26___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_27___ + ") format('svg');\n font-weight: 900;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_28___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_29___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_30___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_31___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_32___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_33___ + ") format('svg');\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue Condensed';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_34___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_35___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_36___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_37___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_38___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_39___ + ") format('svg');\n font-weight: bold;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_40___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_41___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_42___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_43___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_44___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_45___ + ") format('svg');\n font-weight: 300;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_46___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_47___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_48___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_49___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_50___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_51___ + ") format('svg');\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_52___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_53___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_54___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_55___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_56___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_57___ + ") format('svg');\n font-weight: 500;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_58___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_59___ + ") format('embedded-opentype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_60___ + ") format('woff2'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_61___ + ") format('woff'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_62___ + ") format('truetype'),\n url(" + ___CSS_LOADER_URL_REPLACEMENT_63___ + ") format('svg');\n font-weight: normal;\n font-style: italic;\n font-display: swap;\n}\n\nbody {\n color: #081C24;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-size: 16px;\n line-height: 140%;\n}\n\na {\n text-decoration: none;\n}\n\nh1,.h1 {\n color: #081C24;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n /*font-size: 86px;*/\n font-size: 80px;\n font-style: normal;\n font-weight: bold;\n line-height: 90%;\n margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 1536px) {\n\n h1,.h1 {\n font-size: 70px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n h1,.h1 {\n font-size: 60px;\n }\n}\n\nh2,.h2 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-style: normal;\n font-weight: bold;\n line-height: 100%;\n margin: 15px 0 25px;\n font-size: 56px;\n\n}\n\n@media screen and (max-width: 1536px) {\n\n h2,.h2 {\n font-size: 50px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n h2,.h2 {\n font-size: 40px;\n }\n}\n\nh3,.h3 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n /*font-size: 50px;*/\n font-size: 44px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 1024px) {\n\n h3,.h3 {\n font-size: 40px;\n }\n}\n\nh4,.h4 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n /*font-size: 36px;*/\n font-size: 34px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 768px) {\n\n h4,.h4 {\n font-size: 30px;\n }\n}\n\nh5,.h5 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n /*font-size: 28px;*/\n font-size: 26px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n margin: 15px 0 25px;\n\n}\n\n@media screen and (max-width: 1024px) {\n\n h5,.h5 {\n font-size: 24px;\n }\n}\n\nh6,.h6 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 26px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n margin: 15px 0 25px;\n}\n\n.s1 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 22px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 768px) {\n\n .s1 {\n font-size: 18px;\n }\n}\n\n.s2 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n /*font-size: 20px;*/\n font-size: 18px;\n font-style: normal;\n font-weight: bold;\n line-height: 130%;\n margin: 15px 0 25px;\n \n}\n\n@media screen and (max-width: 768px) {\n\n .s2 {\n font-size: 18px;\n }\n}\n\n.s3 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n margin: 15px 0 25px;\n}\n\n.s4 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: bold;\n line-height: 100%;\n margin: 15px 0 25px;\n}\n\n.s5 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 12px;\n font-style: normal;\n font-weight: bold;\n line-height: 100%;\n margin: 15px 0 25px;\n}\n\n.b1 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-size: 16px;\n font-style: normal;\n line-height: 140%;\n margin: 15px 0 25px;\n}\n\n.b2 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-size: 16px;\n line-height: 140%;\n margin: 15px 0 25px;\n}\n\n.b3 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-size: 14px;\n font-style: normal;\n line-height: 140%;\n margin: 15px 0 25px;\n}\n\n.b4 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-size: 12px;\n font-style: normal;\n line-height: 140%;\n margin: 15px 0 25px;\n}\n\n.c1 {\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n /*font-size: 22px;*/\n font-size: 20px;\n font-style: normal;\n font-weight: 400;\n line-height: 140%;\n margin: 15px 0 25px;\n}\n\n@media screen and (max-width: 1536px) {\n\n .c1 {\n font-size: 20px;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .c1 {\n font-size: 18px;\n }\n}\n\nb, strong {\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-style: normal;\n font-weight: bold;\n}\n\n.single-detail {\n padding: 0 0 120px;\n}\n\n@media screen and (max-width: 1024px) {\n\n .single-detail {\n padding: 0 0 64px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .single-detail {\n padding: 0 0 32px;\n }\n}\n\n.single-detail .sidebar.featured .image-wrapper {\n padding-bottom: 130%;\n padding-bottom: 79%;\n margin-bottom: 30px;\n overflow: visible;\n overflow: initial;\n}\n\n.single-detail .sidebar.featured .image-wrapper img {\n border-radius: 8px;\n /*\n height: auto;\n min-height: 70%;\n */\n height: 100%;\n }\n\n.single-detail .sidebar.featured .image-wrapper .image-caption p {\n font-size: 12px;\n color: #a9a9a9;\n line-height: 130%;\n }\n\n.single-detail .sidebar.featured.full .image-wrapper {\n padding-bottom: 0;\n}\n\n.single-detail .sidebar.featured.full .image-wrapper .position {\n position: relative;\n }\n\n.single-detail .sidebar.featured-event .image-wrapper {\n padding-bottom: 66%;\n padding-bottom: 79%;\n margin-bottom: 30px;\n}\n\n.single-detail .sidebar .publication-card {\n background: #F5F5F5;\n margin-bottom: 4px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 16px;\n gap: 8px;\n font-size: 16px;\n font-weight: 500;\n color: #081C24;\n transition: all 0.3s ease;\n}\n\n.single-detail .sidebar .publication-card svg {\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n }\n\n.single-detail .sidebar .publication-card svg path {\n transition: all 0.3s ease;\n }\n\n.single-detail .sidebar .publication-card:hover {\n background: #D53737;\n color: #FFF;\n}\n\n.single-detail .sidebar .publication-card:hover svg path {\n stroke: #FFF;\n }\n\n.single-detail .meta {\n margin-bottom: 64px;\n}\n\n.single-detail .meta a.link {\n color: #042C38;\n text-decoration: underline;\n }\n\n.single-detail .meta p {\n margin: 0;\n }\n\n.single-detail .meta .s3 {\n margin: 32px 0 15px;\n\n }\n\n.single-detail .meta .project {\n margin: 15px 0 25px;\n padding-left: 15px;\n border-left: 4px solid #D53737;\n\n }\n\n.single-detail .meta .project a {\n color: #000;\n transition: all 0.3s ease\n\n }\n\n.single-detail .meta .project a:hover {\n color: #D53737;\n}\n\n.single-detail .meta .tags {\n list-style: none;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: flex-start;\n padding: 0px;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n.single-detail .meta .tags li {\n list-style: none;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 4px 8px 5px;\n border: 1px solid #CFCFCF;\n border-radius: 2px;\n }\n\n.single-detail .meta .supervisor-list {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: flex-start;\n padding: 0px;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n.single-detail .meta .supervisor-list .supervisor-card {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n gap: 8px;\n color: #081C24;\n transition: all 0.2s ease;\n flex-wrap: nowrap\n }\n\n.single-detail .meta .supervisor-list .supervisor-card:hover {\n opacity: 0.2;\n}\n\n.single-detail .meta .supervisor-list .supervisor-card .image-wrapper {\n width: 32px;\n height: 32px;\n border-radius: 90px;\n}\n\n.single-detail .meta .supervisor-list .supervisor-card .image-wrapper img {\n width: 32px;\n height: 32px;\n }\n\n.single-detail .main.spacing-right {\n padding-right: 80px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .single-detail .main.spacing-right {\n padding-right: 0;\n }\n}\n\n.single-detail .main.full {\n max-width: none;\n}\n\n.single-detail .main .title-wrapper {\n border-bottom: 3px solid #042C38;\n padding-bottom: 10px;\n margin-bottom: 64px;\n}\n\n.single-detail .main .title-wrapper .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 5px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n }\n\n.single-detail .main .title-wrapper .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.single-detail .main .title-wrapper .s4 {\n color: #387E97;\n margin: 0 0 15px;\n text-transform: uppercase;\n }\n\n.single-detail .main .title-wrapper .h3 {\n margin-bottom: 20px;\n }\n\n.single-detail .main .title-wrapper p {\n margin: 5px 0;\n font-weight: 500;\n max-width: 325px;\n width: 100%;\n }\n\n.single-detail .main .title-wrapper .date {\n color: #387E97;\n margin: 0 0 10px;\n text-transform: uppercase;\n }\n\n.single-detail .main .title-wrapper .author {\n max-width: 328px;\n width: 100%;\n font-weight: 500;\n }\n\n.single-detail .main .title-wrapper span.label {\n display: block;\n margin: 0 0 8px;\n font-weight: 500;\n }\n\n.single-detail .main .title-wrapper .reduced-size {\n margin-top: 15px;\n }\n\n.single-detail .main .title-wrapper .reduced-size p {\n margin: 5px 0;\n font-weight: 400;\n max-width: 325px;\n width: 100%;\n\n color: #bbb;\n display: block;\n font-size: 14px;\n line-height: 120%;\n }\n\n.single-detail .main .content-area {\n margin-bottom: 64px;\n}\n\n.single-detail .main .file_download a.btn {\n display: inline-block;\n }\n\n.single-detail .main .social-area p {\n color: #081C24;\n font-weight: 500;\n }\n\n.single-detail .main .social-area ul,\n .single-detail .main .social-area li {\n list-style: none;\n padding: 0;\n }\n\n.single-detail .main .social-area ul {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n padding: 0px;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n.single-detail .main .social-area ul li.label {\n padding-right: 8px;\n font-weight: 500;\n\n }\n\n@media screen and (max-width: 640px) {\n\n .single-detail .main .social-area ul li.label {\n width: 100%;\n }\n}\n\n.single-detail .main .social-area ul li a {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 4px 8px 5px;\n background: transparent;\n border: 1px solid #CFCFCF;\n border-radius: 2px;\n opacity: 1;\n color: #081C24;\n gap: 8px;\n transition: all 0.3s ease;\n}\n\n.single-detail .main .social-area ul li a span {\n line-height: 1;\n }\n\n.single-detail .main .social-area ul li a svg path {\n transition: all 0.3s ease;\n }\n\n.single-detail .main .social-area ul li a:hover {\n background: #D53737;\n border: 1px solid #D53737;\n color: #FFF;\n}\n\n.single-detail .main .social-area ul li a:hover svg path.fill {\n fill: #FFF;\n}\n\n.single-detail .main .social-area ul li a:hover svg path.stroke {\n stroke: #FFF;\n}\n\n.single-detail .main .button_wrapper {\n padding-top: 25px;\n}\n\n.single-detail .main .button_wrapper .btn {\n display: inline-block;\n }\n\n#tinymce:first-child, .free-input:first-child {\n margin-top: 0;\n}\n\n#tinymce .has-x-large-font-size,#tinymce .has-large-font-size,.free-input .has-x-large-font-size,.free-input .has-large-font-size {\n margin: 60px 0;\n}\n\n#tinymce .has-x-large-font-size strong, #tinymce .has-large-font-size strong, .free-input .has-x-large-font-size strong, .free-input .has-large-font-size strong {\n line-height: 110%;\n }\n\n#tinymce .has-medium-font-size, .free-input .has-medium-font-size {\n margin: 60px 0;\n}\n\n#tinymce h1,#tinymce h2,#tinymce h3,#tinymce h4,#tinymce h5,.free-input h1,.free-input h2,.free-input h3,.free-input h4,.free-input h5 {\n margin-top: 60px;\n}\n\n#tinymce .wp-block-image,#tinymce .wp-block-embed,#tinymce .wp-block-quote,.free-input .wp-block-image,.free-input .wp-block-embed,.free-input .wp-block-quote {\n margin: 60px 0;\n}\n\n#tinymce ul,#tinymce ol,.free-input ul,.free-input ol {\n margin: 0 0 60px;\n margin-bottom: 20px;\n}\n\n#tinymce .smaller p, .free-input .smaller p {\n font-size: 12px;\n line-height: 150%;\n }\n\n#tinymce a:not(.wp-element-button), .free-input a:not(.wp-element-button) {\n color: #042C38;\n text-decoration: underline;\n position: relative;\n transition: all 0.3s ease;\n}\n\n#tinymce a:not(.wp-element-button) .hover, .free-input a:not(.wp-element-button) .hover {\n display: none;\n width: 340px;\n position: absolute;\n bottom: 100%;\n left: 0;\n border-bottom: 2px solid #D53737;\n background: #FFF;\n z-index: 5;\n padding: 16px;\n /*box-shadow: 43px 155px 65px rgba(0, 0, 0, 0.01), 24px 87px 54px rgba(0, 0, 0, 0.05), 11px 39px 40px rgba(0, 0, 0, 0.09);*/\n box-shadow: 3px -15px 40px rgba(0, 0, 0, .015), 24px 7px 40px rgba(0, 0, 0, .05), 11px 3px 40px rgba(0, 0, 0, .11);\n border-radius: 4px;\n color: #042C38;\n }\n\n#tinymce a:not(.wp-element-button) .hover p, .free-input a:not(.wp-element-button) .hover p {\n margin: 0;\n }\n\n#tinymce a:not(.wp-element-button) .hover .description, .free-input a:not(.wp-element-button) .hover .description {\n margin-bottom: 15px;\n }\n\n#tinymce a:not(.wp-element-button) .hover .title, .free-input a:not(.wp-element-button) .hover .title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n#tinymce a:not(.wp-element-button) .hover .title svg, .free-input a:not(.wp-element-button) .hover .title svg {\n flex-shrink: 0;\n }\n\n#tinymce a:not(.wp-element-button):hover, .free-input a:not(.wp-element-button):hover {\n color: #D53737;\n}\n\n#tinymce a:not(.wp-element-button):hover .hover, .free-input a:not(.wp-element-button):hover .hover {\n display: block;\n}\n\n#tinymce a.wp-element-button, .free-input a.wp-element-button {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 10px 24px 12px;\n border-radius: 8px;\n line-height: 140%;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-weight: bold;\n cursor: pointer;\n border: 0;\n gap: 12px;\n transition: all 0.3s ease-in;\n color: #FFF;\n background: #D53737;\n}\n\n#tinymce a.wp-element-button:hover, .free-input a.wp-element-button:hover {\n background: #951414;\n}\n\n#tinymce blockquote, .free-input blockquote {\n padding-top: 32px;\n border-top: 4px solid #387E97;\n margin: 15px 0 25px;\n}\n\n#tinymce blockquote > *:first-child, .free-input blockquote > *:first-child {\n margin-top: 0\n }\n\n#tinymce blockquote > *:first-child:before, .free-input blockquote > *:first-child:before {\n content: \"â\";\n font-size: 64px;\n font-style: normal;\n font-weight: bold;\n margin-right: 64px;\n position: relative;\n top: 15px;\n}\n\n#tinymce blockquote p, .free-input blockquote p {\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 36px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n margin: 15px 0 25px;\n color: #387E97;\n }\n\n#tinymce ul,#tinymce ol,.free-input ul,.free-input ol {\n padding-left: 30px;\n}\n\n#tinymce ul li, #tinymce ol li, .free-input ul li, .free-input ol li {\n margin-bottom: 5px;\n }\n\n#tinymce ul, .free-input ul {\n list-style-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_64___ + ");\n position: relative;\n padding-left: 30px;\n}\n\n#tinymce ul li, .free-input ul li {\n position: relative;\n padding-left: 15px;\n margin-bottom: 0;\n padding-bottom: 15px\n }\n\n#tinymce ul li:before, .free-input ul li:before {\n content: \"\";\n position: absolute;\n left: -15px;\n top: 15px;\n height: calc(100% - 13px);\n display: block;\n width: 1px;\n background: #E3E5E6;\n}\n\n#tinymce ul li:last-child:before, .free-input ul li:last-child:before {\n height: calc(100% - 30px);\n}\n\n.body-wrapper >.page-wrapper {\n position: relative;\n padding-top: 118px;\n }\n\n.admin-bar .body-wrapper >.page-wrapper {\n padding-top: 86px;\n }\n\n@media screen and (max-width: 1280px) {\n\n .body-wrapper >.page-wrapper {\n padding-top: 86px;\n }\n\n .admin-bar .body-wrapper >.page-wrapper {\n padding-top: 54px;\n }\n}\n\n.bg-blur.active {\n background: #042C38;\n opacity: 0.1;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 900;\n}\n\nheader {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n background: #FFF;\n transition: transform 0.3s ease-in-out\n}\n\nheader.scroll-up-enabled.scroll-down {\n transform: translateY(-100%);\n}\n\nheader .custom-logo {\n max-width: 212px;\n height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n header .custom-logo {\n max-width: 150px;\n }\n}\n\n.admin-bar header {\n /*top: 32px;*/\n}\n\nheader > .container {\n padding-top: 24px;\n padding-bottom: 24px;\n position: relative;\n}\n\nheader .nav-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items:center;\n justify-content: space-between;\n}\n\nheader a.logo {\n display: block;\n}\n\nheader .header-navigation nav > ul li a svg {\n display: none;\n }\n\nheader nav {\n display: block;\n}\n\nheader nav > ul {\n display: block;\n margin: 0;\n padding: 0;\n list-style: none;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 24px;\n flex-direction: row;\n align-items: center;\n }\n\n@media screen and (max-width: 1536px) {\n\n header nav > ul {\n gap: 12px;\n }\n}\n\nheader nav > ul li a, header nav > ul li span {\n font-size: 16px;\n }\n\nheader nav > ul li a .dropdown, header nav > ul li span .dropdown {\n display: none;\n }\n\nheader .mobile {\n padding-left: 20px;\n margin-left: 20px;\n border-left: 1px solid #CFCFCF;\n height: 30px;\n position: relative;\n display: none;\n}\n\n@media screen and (max-width: 1280px) {\n\n header .mobile {\n padding-left: 0px;\n margin-left: 0px;\n border-left: 0;\n }\n}\n\nheader .mobile-main {\n display: none;\n align-items: center;\n justify-content: flex-start;\n font-size: 16px;\n}\n\nheader .search-mobile {\n display: none;\n}\n\nheader .resp-menu-selector {\n position: absolute;\n top: 50%;\n display: none;\n width: 40px;\n height: 30px;\n position: relative;\n margin: 0;\n margin-top: -20px;\n transform: rotate(0deg);\n transition: .5s ease-in-out;\n cursor: pointer;\n}\n\n.resp-menu-open header .resp-menu-selector span:nth-child(1),.resp-menu-open header .resp-menu-selector span:nth-child(6) {\n transform: rotate(45deg);\n }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(2),.resp-menu-open header .resp-menu-selector span:nth-child(5) {\n transform: rotate(-45deg);\n }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(1) {\n left: 5px;\n top: 13px;\n }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(2) {\n left: calc(50% - 5px);\n top: 13px;\n }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(3) {\n left: -50%;\n opacity: 0;\n }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(4) {\n left: 100%;\n opacity: 0;\n }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(5) {\n left: 5px;\n top: 23px;\n }\n\n.resp-menu-open header .resp-menu-selector span:nth-child(6) {\n left: calc(50% - 5px);\n top: 23px;\n }\n\nheader .resp-menu-selector span {\n display: block;\n position: absolute;\n height: 4px;\n width: 50%;\n background: #D53737;\n opacity: 1;\n transform: rotate(0deg);\n transition: .25s ease-in-out\n }\n\nheader .resp-menu-selector span:nth-child(even) {\n left: 50%;\n border-radius: 0 9px 9px 0;\n}\n\nheader .resp-menu-selector span:nth-child(odd) {\n left:0px;\n border-radius: 9px 0 0 9px;\n}\n\nheader .resp-menu-selector span:nth-child(1), header .resp-menu-selector span:nth-child(2) {\n top: 5px;\n}\n\nheader .resp-menu-selector span:nth-child(3), header .resp-menu-selector span:nth-child(4) {\n top: 18px;\n}\n\nheader .resp-menu-selector span:nth-child(5), header .resp-menu-selector span:nth-child(6) {\n top: 31px;\n}\n\n@media screen and (max-width: 1280px) {\n\n header .resp-menu-selector {\n display: block;\n }\n}\n\nheader .user-navigation li {\n position: relative;\n }\n\n@media screen and (max-width: 1280px) {\n\n header .user-navigation li {\n display: none;\n }\n\n header .user-navigation .mobile {\n display: block;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n header .user-navigation li {\n display: none;\n }\n\n header .user-navigation li.mobile {\n display: block;\n }\n}\n\nheader .header-navigation > nav > ul > li > a {\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-weight: bold;\n color: #081C24\n }\n\nheader .header-navigation li {\n position: relative;\n }\n\nheader .header-navigation .toggleMoreLinks {\n display: block;\n position: relative;\n width: 9px;\n height: 3px;\n cursor: pointer;\n padding: 11px 0;\n }\n\nheader .header-navigation .toggleMoreLinks span {\n width: 3px;\n height: 3px;\n background: #001924;\n display: block;\n border-radius: 50%;\n margin: auto;\n transition: .5s ease all;\n }\n\nheader .header-navigation .toggleMoreLinks span.first,\n header .header-navigation .toggleMoreLinks span.third {\n position: absolute;\n top: 50%;\n }\n\nheader .header-navigation .toggleMoreLinks span.first {\n left: -3px;\n }\n\nheader .header-navigation .toggleMoreLinks span.third {\n right: -3px;\n }\n\n@media screen and (max-width: 1280px) {\n\n header .header-navigation {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: #FFF;\n margin-top: 118px;\n height: calc(100% - 118px);\n overflow: auto;\n border-top: 1px solid #CFCFCF;\n }\n header .header-navigation > nav > ul {\n flex-direction: column;\n gap: 0;\n }\n\n header .header-navigation nav {\n padding: 15px;\n }\n header .header-navigation nav > ul > li {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n width: 100%;\n border-bottom: 1px solid #CFCFCF\n }\n header .header-navigation nav > ul > li.mobile-main {\n display: none;\n }\n header .header-navigation nav > ul > li.search-mobile {\n display: none;\n }\n header .header-navigation nav > ul > li > a {\n font-size: 22px;\n padding: 30px 15px;\n display: block;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n transition: all 0.3s ease;\n }\n header .header-navigation nav > ul > li > a.toggleMoreLinks {\n width: 100%;\n height: 80px;\n }\n header .header-navigation nav > ul > li > a.toggleMoreLinks span.first {\n left: 15px;\n }\n header .header-navigation nav > ul > li > a.toggleMoreLinks span.second {\n left: 25px;\n top: 50%;\n position: absolute;\n }\n header .header-navigation nav > ul > li > a.toggleMoreLinks span.third {\n left: 35px;\n right: auto;\n }\n header .header-navigation nav > ul > li > a.toggleMoreLinks svg {\n position: absolute;\n right: 15px;\n top: 50%;\n margin-top: -12px;\n }\n header .header-navigation nav > ul > li > a svg {\n display: inline-block;\n transform: rotate(0deg);\n transition: all 0.3s ease;\n }\n\n header .header-navigation nav > ul > li > a svg path {\n transition: all 0.3s ease;\n }\n header .header-navigation nav > ul > li.open > a {\n background: #D53737;\n color: #FFF;\n }\n header .header-navigation nav > ul > li.open > a.toggleMoreLinks span.first,header .header-navigation nav > ul > li.open > a.toggleMoreLinks span.second,header .header-navigation nav > ul > li.open > a.toggleMoreLinks span.third {\n background: #FFF;\n }\n header .header-navigation nav > ul > li.open > a svg {\n transform: rotate(90deg);\n }\n\n header .header-navigation nav > ul > li.open > a svg path {\n fill: #FFF;\n }\n header .header-navigation nav > ul > li .dropdown {\n position: relative;\n opacity: 1;\n visibility: visible;\n top: auto;\n left: auto;\n display: none;\n }\n header .header-navigation nav > ul > li .dropdown.dropdown-navigation-detailed {\n width: auto;\n }\n header .header-navigation nav > ul > li .dropdown.dropdown-navigation ul {\n width: auto;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n padding: 20px 0;\n }\n header .header-navigation nav > ul > li .dropdown.dropdown-navigation ul li a:before {\n display: none;\n }\n header .header-navigation nav > ul > li .dropdown.dropdown-navigation ul li a {\n border-radius: 4px;\n }\n\n .resp-menu-open header .header-navigation {\n /*display: block;*/\n }\n}\n\n@media screen and (max-width: 1024px) {\n header .header-navigation nav > ul > li .dropdown .about {\n grid-template-columns: 1.5fr 1fr;\n gap: 20px;\n grid-auto-rows: auto;\n }\n\n\n\n header .header-navigation nav > ul > li .dropdown .about .organization {\n }\n header .header-navigation nav > ul > li .dropdown .about .stories-of-change .title, header .header-navigation nav > ul > li .dropdown .about .stories-of-change .content {\n justify-content: flex-start;\n }\n\n header .header-navigation nav > ul > li .dropdown .ecosystem {\n grid-template-columns: 1.5fr 1fr;\n gap: 20px;\n grid-auto-rows: auto;\n }\n}\n\n@media screen and (max-width: 768px) {\n header .header-navigation nav > ul > li.search-mobile {\n display: none;\n }\n header .header-navigation nav > ul > li.search-mobile.visible {\n display: block;\n }\n header .header-navigation nav > ul > li.mobile-main {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: center;\n padding-bottom: 20px;\n }\n header .header-navigation nav > ul > li.mobile-main a {\n font-size: 16px;\n padding: 10px 15px;\n }\n header .header-navigation nav > ul > li .dropdown .about {\n grid-template-columns:1fr;\n gap: 60px;\n }\n\n header .header-navigation nav > ul > li .dropdown .ecosystem {\n grid-template-columns:1fr;\n gap: 60px;\n }\n}\n\nheader.auth .alt-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #E3EAEC;\n padding: 20px;\n}\n\n@media screen and (max-width: 768px) {\n\n header.auth .alt-wrapper {\n flex-direction: row-reverse;\n }\n\n header.auth .alt-wrapper .spacer {\n display: none;\n }\n}\n\nheader.auth .back a {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n font-family: 'Helvetica Neue';\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 140%;\n color: #081C24;\n }\n\nheader.auth .back a svg {\n position: relative;\n margin-right: 5px;\n transition: all 0.3s ease-in-out;\n }\n\nheader.auth .back a:hover svg {\n transform: translateX(-15px);\n}\n\n.header-navigation-mobile {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: #FFF;\n margin-top: 86px;\n height: calc(100% - 86px);\n overflow: auto;\n border-top: 1px solid #CFCFCF;\n z-index: 99999;\n\n}\n\n.header-navigation-mobile li > a:hover,\n .header-navigation-mobile li > span:hover {\n background: #D53737 !important;\n color: #FFF !important;\n cursor: pointer;\n transition: all 0.3s ease-in-out;\n }\n\n.header-navigation-mobile li > a:hover .s3, .header-navigation-mobile li > span:hover .s3 {\n color: #FFF !important;\n transition: all 0.3s ease-in-out;\n }\n\n/*transform: rotate(90deg);*/\n\n.header-navigation-mobile li > a:hover svg path, .header-navigation-mobile li > span:hover svg path {\n stroke: #FFF !important;\n }\n\n.header-navigation-mobile > nav {\n padding: 15px;\n }\n\n.header-navigation-mobile > nav > ul {\n flex-direction: column;\n gap: 0;\n padding: 0;\n }\n\n.header-navigation-mobile > nav > ul > li {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n width: 100%;\n border-bottom: 1px solid #F5F5F5\n }\n\n.header-navigation-mobile > nav > ul > li.buttons {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: center;\n gap: 0 15px;\n flex-direction: row;\n padding: 24px 0;\n border-bottom: 0;\n}\n\n.header-navigation-mobile > nav > ul > li.buttons > a,\n .header-navigation-mobile > nav > ul > li.buttons span {\n padding: 10px 0px;\n width: 50%;\n justify-content: center;\n cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li.no-extra {\n border-bottom: 0;\n}\n\n.header-navigation-mobile > nav > ul > li.no-extra:first-child {\n margin-top: 30px;\n}\n\n.header-navigation-mobile > nav > ul > li.no-extra a,\n .header-navigation-mobile > nav > ul > li.no-extra span {\n padding: 0;\n margin: 0;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-weight: 500;\n font-size: 16px;\n cursor: pointer;\n display: block;\n padding: 15px;\n}\n\n.header-navigation-mobile > nav > ul > li > a,\n .header-navigation-mobile > nav > ul > li > span {\n font-size: 18px;\n padding: 12px 8px;\n display: block;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n transition: all 0.3s ease;\n color: #081C24;\n font-weight: bold;\n margin-top: 15px;\n cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li > a svg, .header-navigation-mobile > nav > ul > li > span svg {\n display: inline-block;\n transform: rotate(0deg);\n transition: all 0.3s ease;\n }\n\n.header-navigation-mobile > nav > ul > li > a svg path, .header-navigation-mobile > nav > ul > li > span svg path {\n transition: all 0.3s ease;\n }\n\n.header-navigation-mobile > nav > ul > li.open > a,\n .header-navigation-mobile > nav > ul > li.open > span {\n background: #D53737;\n color: #FFF;\n cursor: pointer;\n}\n\n/*transform: rotate(90deg);*/\n\n.header-navigation-mobile > nav > ul > li.open > a svg path, .header-navigation-mobile > nav > ul > li.open > span svg path {\n stroke: #FFF;\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile {\n background: #FFF;\n position: fixed;\n opacity: 1;\n visibility: visible;\n top: 100px;\n left: 100%;\n width: 100%;\n height: calc(100% - 100px);\n z-index: 9;\n overflow: auto;\n transition: left 1s ease-in-out;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > span.title {\n display: block;\n font-size: 18px;\n line-height: 140%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n border-bottom: 1px solid #D53737;\n padding: 12px 20px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n margin-bottom: 40px;\n cursor: pointer;\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > span.title svg {\n margin-right: 17px;\n cursor: pointer;\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul {\n list-style: none;\n padding: 0 20px;\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li {\n margin-bottom: 15px;\n\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a,\n .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span {\n margin: 0;\n padding: 12px 8px;\n border-bottom: 1px solid #F5F5F5;\n display: block;\n cursor: pointer;\n\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a span, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span span {\n margin: 0;\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a:before, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span:before {\n display: none;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown {\n justify-content: space-between;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown span, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown span {\n margin: 0;\n display: inline-block;\n cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown svg, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown svg {\n transform: rotate(180deg);\n transition: all 0.3s ease-in-out;\n cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown svg path, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown svg path {\n transition: all 0.3s ease-in-out;\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul {\n display: none;\n padding: 0;\n list-style: none;\n margin-top: 15px;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul > li a,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul > li span,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul > li a,.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul > li span {\n padding: 12px 8px;\n margin: 0;\n opacity: 0.7;\n border-bottom: 1px solid #F5F5F5;\n font-size: 14px;\n line-height: 140%;\n font-weight: 500;\n cursor: pointer;\n }\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > a.has-dropdown + ul > li:last-child, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li > span.has-dropdown + ul > li:last-child {\n border-bottom: 0;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 a,\n .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 span {\n cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 a.has-dropdown svg, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 span.has-dropdown svg {\n transform: rotate(90deg);\n cursor: pointer;\n}\n\n.header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 a.has-dropdown svg path, .header-navigation-mobile > nav > ul > li .dropdown-navigation-mobile > ul > li.open-mobile-stage-2 span.has-dropdown svg path {\n stroke: #D53737;\n }\n\n.header-navigation-mobile > nav > ul > li.open-mobile-stage-1 .dropdown-navigation-mobile {\n left: 0;\n box-shadow: -3px 5px 5px 1px rgba(0, 0, 0, .05);\n}\n\n@media screen and (max-width: 1280px) {\n\n .resp-menu-open .header-navigation-mobile {\n display: block;\n }\n}\n\n.header-navigation-mobile .search-navigation,\n .header-navigation-mobile .search-navigation.inline {\n color: #cacaca;\n padding: 0;\n}\n\n.header-navigation-mobile .search-navigation .search-bar, .header-navigation-mobile .search-navigation.inline .search-bar {\n background: transparent;\n border-bottom: 0px;\n border-radius: 0;\n }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper input, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper input {\n color: #b3b3b3;\n }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls {\n gap:0;\n }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls .search-toggle-mobile, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls .search-toggle-mobile {\n display: none;\n }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls #load-results, .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls #load-results {\n padding-right: 0;\n }\n\n.header-navigation-mobile .search-navigation .search-bar-wrapper .controls > li a,\n .header-navigation-mobile .search-navigation .search-bar-wrapper .controls > li span,\n .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls > li a,\n .header-navigation-mobile .search-navigation.inline .search-bar-wrapper .controls > li span {\n padding: 0;\n }\n\n.header-navigation-mobile .search-navigation .search-suggestion-wrapper h5, \n .header-navigation-mobile .search-navigation .search-suggestion-wrapper h6, \n .header-navigation-mobile .search-navigation.inline .search-suggestion-wrapper h5, \n .header-navigation-mobile .search-navigation.inline .search-suggestion-wrapper h6 {\n color: #042C38;\n }\n\n.header-navigation-mobile .search-navigation .search-suggestion-wrapper .search-v1 a, .header-navigation-mobile .search-navigation.inline .search-suggestion-wrapper .search-v1 a {\n color: #042C38;\n }\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading {\n display: none;\n text-align: center;\n border-top: 1px solid #E3EAEC;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading.visible {\n display: block;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div {\n width: 5px;\n height: 10px;\n background: #042C38;\n transform-origin: 5px 27px;\n left: 25px;\n top: 0;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(1) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(2) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(3) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(4) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(5) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(6) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(7) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(8) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(9) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(10) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(11) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .ldio-oruce3mgeyp div:nth-child(12) {\n background: #042C38;\n}\n\n.header-navigation-mobile .search-mobile .search-bar .search-loading .loadingio-spinner-spinner-v7b2k0aigi {\n width: 60px;\n height: 60px;\n margin: 20px 0;\n}\n\n.dropdown-navigation {\n display: block;\n position: absolute;\n opacity: 0;\n visibility: hidden;\n transition: all 0.3s ease;\n top: 71px;\n left: -50px;\n z-index: 400;\n}\n\n/*\n .admin-bar & {\n top: 71px;\n }*/\n\n.visible .dropdown-navigation {\n opacity: 1;\n visibility: visible;\n }\n\n.dropdown-navigation > ul {\n margin-top: 4px;\n background: #FFF;\n border-radius: 8px;\n list-style: none;\n width: 350px;\n padding: 0;\n }\n\n.dropdown-navigation > ul li {\n position: relative\n \n \n\n }\n\n.dropdown-navigation > ul li:first-child a {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\n\n.dropdown-navigation > ul li:last-child a {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\n\n.dropdown-navigation > ul li a {\n padding: 18px 24px;\n display: block;\n transition: all 0.3s ease;\n position: relative;\n}\n\n.dropdown-navigation > ul li a .sub-arrow {\n transition: all 0.3s ease;\n display: block;\n position: absolute;\n transform: rotate(180deg);\n top: 14px;\n right: 24px;\n \n }\n\n.dropdown-navigation > ul li a .sub-arrow path {\n stroke: #042C38;\n }\n\n.dropdown-navigation > ul li a:before {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 24;\n width: calc(100% - 48px);\n height: 1px;\n background: #E3EAEC;\n opacity: 1;\n transition: all 0.3s ease;\n}\n\n.dropdown-navigation > ul li a:hover {\n background: #D53737;\n}\n\n.dropdown-navigation > ul li a:hover .s3 {\n color: #FFF;\n}\n\n.dropdown-navigation > ul li a:hover .b4 {\n color: #FFF;\n}\n\n.dropdown-navigation > ul li a:hover:before {\n opacity: 0;\n}\n\n.dropdown-navigation > ul li:last-child a {\n border-bottom: 0;\n}\n\n.dropdown-navigation > ul li .sub-nav {\n display: none;\n position: absolute;\n top: 0;\n left: 100%; \n padding-left: 20px;\n width: 100%; \n z-index: 500;\n}\n\n.dropdown-navigation > ul li .sub-nav ul {\n left: 100%; \n padding: 0;\n background: #FFF;\n border-radius: 8px;\n list-style: none;\n width: 100%;\n }\n\n.dropdown-navigation > ul li .sub-nav ul li {\n list-style: none;\n }\n\n.dropdown-navigation > ul li .sub-nav ul li a {\n padding: 10px 15px;\n transition: all 0.3s ease;\n }\n\n.dropdown-navigation > ul li:hover a .sub-arrow {\n opacity: 1;\n visibility: visible;\n transform: rotate(0deg);\n }\n\n.dropdown-navigation > ul li:hover a .sub-arrow path {\n stroke: #D53737;\n }\n\n.dropdown-navigation > ul li:hover .sub-nav {\n display: block; /* Revealing the submenu*/\n}\n\n.dropdown-navigation > ul .s3 {\n transition: all 0.3s ease;\n margin: 0;\n }\n\n.dropdown-navigation > ul .b4 {\n margin: 10px 0 0;\n color: #042C38;\n opacity: 0.5;\n margin: 5px 0 0;\n transition: all 0.3s ease;\n }\n\n.dropdown-navigation-detailed {\n display: inline-block;\n position: absolute;\n opacity: 0;\n visibility: hidden;\n transition: all 0.3s ease;\n top: 71px;\n left: -150px\n/*\n .admin-bar & {\n top: 71px;\n }*/\n}\n\n.dropdown-navigation-detailed.research {\n left: -300px;\n}\n\n.dropdown-navigation-detailed.single {\n width: 350px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .dropdown-navigation-detailed {\n left: -50px;\n }\n}\n\n.dropdown-navigation-detailed {\n z-index: 950;\n width: 1054px;\n}\n\n.visible .dropdown-navigation-detailed {\n opacity: 1;\n visibility: visible;\n}\n\n.dropdown-navigation-detailed p, .dropdown-navigation-detailed a, .dropdown-navigation-detailed h1, .dropdown-navigation-detailed h2, .dropdown-navigation-detailed h3, .dropdown-navigation-detailed h4, .dropdown-navigation-detailed h5, .dropdown-navigation-detailed h6 {\n color: #042C38;\n}\n\n.dropdown-navigation-detailed p, .dropdown-navigation-detailed a {\n font-size: 14px;\n font-weight: 500;\n}\n\n.dropdown-navigation-detailed .about {\n display: grid;\n grid-gap: 40px;\n gap: 40px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1.5fr 1fr 2fr;\n grid-template-columns: 1.4fr 1.3fr 2fr;\n margin-top: 4px;\n border-radius: 8px;\n background: #FFF;\n padding: 30px;\n}\n\n.dropdown-navigation-detailed .about .s3 {\n margin: 0;\n }\n\n.dropdown-navigation-detailed .about .organization .button_wrapper {\n border-top: 1px solid #E3EAEC;\n padding-top: 15px;\n }\n\n.dropdown-navigation-detailed .about .organization .button_wrapper .btn {\n font-style: normal;\n font-weight: 700;\n font-size: 14px;\n line-height: 100%;\n color: #042C38;\n display: inline-block;\n }\n\n.dropdown-navigation-detailed .about .organization .b3 {\n opacity: 0.7;\n }\n\n.dropdown-navigation-detailed .about .organization:hover .button_wrapper .btn.arrow {\n padding-right: 25px;\n }\n\n.dropdown-navigation-detailed .about .our-scientists ul {\n list-style: none;\n padding-left: 0;\n }\n\n.dropdown-navigation-detailed .about .our-scientists ul li {\n margin-bottom: 15px;\n }\n\n.dropdown-navigation-detailed .about .our-scientists ul a:hover {\n text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change #header-slider-down {\n opacity: 0.4;\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .title, .dropdown-navigation-detailed .about .stories-of-change .content {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-end;\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width {\n width: 100%;\n max-width: 400px;\n padding-left: 40px;\n position: relative;\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width .s3 {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width .s3 a {\n font-size: 12px;\n text-decoration: underline\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .restrict-width .s3 a:hover {\n text-decoration: none;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider-arrows {\n position: absolute;\n bottom: 0;\n left: 0;\n\n display: -webkit-box;\n\n display: -ms-flexbox;\n\n display: flex;\n flex-direction: column;\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider-arrows svg {\n cursor: pointer;\n transition: all 0.3s ease;\n transform: scale(1)\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider-arrows svg:hover {\n transform: scale(1.5);\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .content .restrict-width .custom-slider {\n padding-top: 80px;\n position: relative;\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small {\n background: #F5F5F5;\n border-radius: 8px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 15px;\n gap: 24px;\n position: absolute;\n right: 0;\n left: 0;\n box-shadow: 2px -1px 24px rgba(0, 0, 0, .12)\n }\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:first-child {\n position: relative;\n z-index: 4;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:nth-child(2) {\n bottom: 40px;\n z-index: 3;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:nth-child(3) {\n bottom: 80px;\n z-index: 2;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small h4 {\n color: #042C38;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small span {\n border-bottom: 1px solid #D53737;\n transition:all 0.3s ease;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small .image-wrapper {\n width: 117px;\n height: 127px;\n flex-shrink: 0;\n}\n\n.dropdown-navigation-detailed .about .stories-of-change .stories-of-change-card-small:hover span {\n border-bottom: 1px solid transparent;\n}\n\n.dropdown-navigation-detailed .our-science {\n display: grid;\n grid-gap: 40px;\n gap: 40px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr;\n margin-top: 4px;\n border-radius: 8px;\n background: #FFF;\n padding: 30px;\n}\n\n.dropdown-navigation-detailed .our-science ul {\n list-style: none;\n padding: 0;\n }\n\n.dropdown-navigation-detailed .our-science ul li {\n margin-bottom: 5px;\n }\n\n.dropdown-navigation-detailed .our-science ul li a:hover span.s3 {\n text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .our-science ul li.divider {\n border-bottom: 1px solid #E3EAEC;\n margin: 5px 0;\n padding: 0;\n}\n\n.dropdown-navigation-detailed .our-science .organization .button_wrapper {\n border-top: 1px solid #E3EAEC;\n padding-top: 15px;\n }\n\n.dropdown-navigation-detailed .our-science .organization .button_wrapper .btn {\n font-style: normal;\n font-weight: 700;\n font-size: 14px;\n line-height: 100%;\n color: #042C38;\n display: inline-block;\n }\n\n.dropdown-navigation-detailed .our-science .organization .b3 {\n opacity: 0.7;\n }\n\n.dropdown-navigation-detailed .our-science .organization:hover .button_wrapper .btn.arrow {\n padding-right: 25px;\n }\n\n.dropdown-navigation-detailed .ecosystem {\n display: grid;\n grid-gap: 40px;\n gap: 40px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1.5fr 1fr 2fr;\n margin-top: 4px;\n border-radius: 8px;\n background: #FFF;\n padding: 30px;\n}\n\n.dropdown-navigation-detailed .ecosystem .s3 {\n margin: 0;\n }\n\n.dropdown-navigation-detailed .ecosystem .support-team .button_wrapper {\n border-top: 1px solid #E3EAEC;\n padding-top: 15px;\n }\n\n.dropdown-navigation-detailed .ecosystem .support-team .button_wrapper .btn {\n font-style: normal;\n font-weight: 700;\n font-size: 14px;\n line-height: 100%;\n color: #042C38;\n display: inline-block;\n }\n\n.dropdown-navigation-detailed .ecosystem .support-team .b3 {\n opacity: 0.7;\n }\n\n.dropdown-navigation-detailed .ecosystem .support-team:hover .button_wrapper .btn.arrow {\n padding-right: 25px;\n }\n\n.dropdown-navigation-detailed .ecosystem .teams ul {\n list-style: none;\n padding-left: 0;\n }\n\n.dropdown-navigation-detailed .ecosystem .teams ul li {\n margin-bottom: 10px;\n }\n\n.dropdown-navigation-detailed .ecosystem .teams ul a {\n margin: 0\n }\n\n.dropdown-navigation-detailed .ecosystem .teams ul a:hover {\n text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .ecosystem .projects .content {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 40px;\n }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul{\n padding: 0;\n list-style: none;\n }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul li {\n margin-bottom: 10px;\n }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul a {\n margin: 0\n }\n\n.dropdown-navigation-detailed .ecosystem .projects .content ul a:hover {\n text-decoration: underline;\n}\n\n.dropdown-navigation-detailed .title {\n margin-bottom: 24px;\n}\n\n.dropdown-navigation-detailed .content {\n }\n\nfooter {\n display: block;\n border-radius: 8px;\n background: #042C38 url(" + ___CSS_LOADER_URL_REPLACEMENT_65___ + ") no-repeat center right;\n background-size: contain;\n z-index: 101;\n position: relative;\n}\n\nfooter .menu {\n text-align: center;\n }\n\nfooter .menu nav {\n display: inline-block;\n }\n\nfooter .menu .secondary {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n\nfooter .menu .secondary a {\n color: #FFF;\n border-bottom: 2px solid transparent;\n transition: all 0.2s ease-in\n }\n\nfooter .menu .secondary a:hover {\n border-bottom: 2px solid #FFF;\n}\n\nfooter .top {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 40px 64px;\n }\n\n@media screen and (max-width: 640px) {\n\n footer .top {\n padding: 16px 32px 16px;\n }\n}\n\nfooter .top .menu .secondary {\n gap: 32px;\n margin-bottom: 20px;\n }\n\n@media screen and (max-width: 768px) {\n\n footer .top .menu .secondary {\n margin-bottom: 30px;\n }\n}\n\nfooter .top .menu .social {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 33px;\n margin-bottom: 0;\n}\n\nfooter .sep {\n display: block;\n width: 100%;\n height: 1px;\n background: #387E97;\n opacity: 0.2;\n}\n\nfooter .bottom {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 64px 24px;\n}\n\n@media screen and (max-width: 1280px) {\n\n footer .bottom {\n flex-wrap: wrap;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n footer .bottom {\n padding: 16px 32px 24px;\n }\n}\n\nfooter .bottom .copyright {\n margin-bottom: 0;\n}\n\nfooter .bottom .info,\n footer .bottom .menu,\n footer .bottom .hisq {\n width: 33%;\n}\n\nfooter .bottom .menu .secondary {\n gap: 16px;\n }\n\n@media screen and (max-width: 1280px) {\n\n footer .bottom .menu {\n text-align: right;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n footer .bottom .info,\n footer .bottom .menu {\n width: 50%;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n footer .bottom .info,\n footer .bottom .menu {\n width: 100%;\n text-align: left;\n margin: 15px 0;\n }\n}\n\nfooter .bottom .hisq a {\n color: #FFF;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: right;\n gap: 15px;\n padding-top: 10px;\n }\n\nfooter .bottom .hisq a span {\n font-size: 14px;\n }\n\n@media screen and (max-width: 1280px) {\n\n footer .bottom .hisq {\n margin-top: 35px;\n width: 100%;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n footer .bottom .hisq {\n margin-top: 5px;\n }\n}\n\nfooter ul,\n footer li {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\nfooter .b1,\n footer .b3 {\n color: #FFF;\n}\n\nfooter.auth {\n background: #FFF;\n border-top: 1px solid #E3EAEC;\n}\n\nfooter.auth .bottom {\n padding-left: 0;\n padding-right: 0;\n}\n\nfooter.auth .b1,\n footer.auth .b3,\n footer.auth .bottom .hisq a,\n footer.auth .menu .secondary a {\n color: #042C38;\n}\n\nfooter.auth .menu .secondary a {\n border-bottom: 2px solid transparent;\n transition: all 0.3s ease\n }\n\nfooter.auth .menu .secondary a:hover {\n border-bottom: 2px solid #042C38;\n}\n\n#hero-slider {\n position: relative;\n margin-bottom: 20px;\n}\n\n#hero-slider .glide__slide {\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n height: 750px;\n height: 705px;\n\n }\n\n@media screen and (max-width: 1536px) {\n\n #hero-slider .glide__slide {\n height: 650px;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n #hero-slider .glide__slide {\n height: 600px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n #hero-slider .glide__slide {\n height: 500px;\n }\n}\n\n#hero-slider .glide__slide .link {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n}\n\n#hero-slider .glide__slide .h2 {\n position: absolute;\n left: 30px;\n bottom: 110px;\n color: #FFF;\n width: auto;\n margin: 0;\n padding-right: 470px;\n z-index: 3;\n}\n\n@media screen and (max-width: 1280px) {\n\n #hero-slider .glide__slide .h2 {\n bottom: 110px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n #hero-slider .glide__slide .h2 {\n bottom: 60px;\n left: 15px;\n padding-right: 30px;\n }\n}\n\n#hero-slider .glide__slide img {\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n\n#hero-slider .glide__slide .gradient {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 60%;\n background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, .7)));\n background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .7) 100%);\n z-index: 2;\n}\n\n#hero-slider .glide__bullets {\n position: absolute;\n bottom: 60px;\n left: 30px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 12px;\n justify-content: center;\n align-items: center;\n transform: none;\n}\n\n@media screen and (max-width: 1024px) {\n\n #hero-slider .glide__bullets {\n left: 15px;\n bottom: 30px;\n }\n}\n\n#hero-slider .glide__bullets .glide__bullet {\n width: 6px;\n height: 6px;\n background: #E3EAEC;\n}\n\n#hero-slider .glide__bullets .glide__bullet.glide__bullet--active {\n width: 14px;\n height: 14px;\n background: #D53737;\n}\n\n.notification-wrapper {\n position: relative;\n}\n\n.notification-wrapper .notifications {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 16px;\n max-width: 280px;\n width: 100%;\n overflow: hidden;\n display: block;\n max-width: 382px;\n max-height: 100%;\n }\n\n.notification-wrapper .notifications .expand_wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-end;\n padding-bottom: 16px;\n transition: transform 0.3s ease-in\n\n }\n\n.notification-wrapper .notifications .expand_wrapper.card-0 {\n transform: translateY(0%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-1 {\n transform: translateY(178%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-2 {\n transform: translateY(360%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-3 {\n transform: translateY(530%);\n}\n\n.notification-wrapper .notifications .expand_wrapper.card-4 {\n transform: translateY(710%);\n}\n\n.notification-wrapper .notifications .expand_wrapper .expand {\n background: rgba(255, 255, 255, .5);\n padding: 5px 10px;\n color: #081C24;\n font-weight: 400;\n border-radius: 100px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.notification-wrapper .notifications .expand_wrapper .expand svg path {\n transition: all 0.3s ease;\n }\n\n.notification-wrapper .notifications .expand_wrapper .expand .state {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n.notification-wrapper .notifications .expand_wrapper .expand .state1 {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n\n.notification-wrapper .notifications .expand_wrapper .expand .state2 {\n display: none;\n }\n\n.notification-wrapper .notifications .expand_wrapper .expand:hover {\n background: #D53737;\n color: #FFF;\n}\n\n.notification-wrapper .notifications .expand_wrapper .expand:hover svg path {\n stroke: #FFF;\n}\n\n.notification-wrapper .notifications .notification-card {\n box-shadow: 2px -1px 24px rgba(0, 0, 0, .12);\n transition: transform 0.3s ease-in\n }\n\n.notification-wrapper .notifications .notification-card.card-0 {\n transform: translateY(280%);\n}\n\n.notification-wrapper .notifications .notification-card.card-1 {\n transform: translateY(210%);\n}\n\n.notification-wrapper .notifications .notification-card.card-2 {\n transform: translateY(140%);\n}\n\n.notification-wrapper .notifications .notification-card.card-3 {\n transform: translateY(70%);\n}\n\n.notification-wrapper .notifications .notification-card.card-4 {\n transform: translateY(0%);\n}\n\n.notification-wrapper .notifications .notification-card .image-wrapper {\n display: block;\n flex-shrink: 0;\n\n display: -webkit-box;\n\n display: -ms-flexbox;\n\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n@media screen and (max-width: 1024px) {\n\n .notification-wrapper .notifications .notification-card .image-wrapper {\n display: none;\n }\n}\n\n.notification-wrapper .notifications.expanded {\n overflow: auto;\n}\n\n.notification-wrapper .notifications.expanded .expand_wrapper {\n transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .expand_wrapper .expand .state1 {\n display: none;\n }\n\n.notification-wrapper .notifications.expanded .expand_wrapper .expand .state2 {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n\n.notification-wrapper .notifications.expanded .notification-card.card-0 {\n transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-1 {\n transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-2 {\n transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-3 {\n transform: translateY(0%);\n}\n\n.notification-wrapper .notifications.expanded .notification-card.card-4 {\n transform: translateY(0%);\n}\n\n@media screen and (max-width: 1024px) {\n\n .notification-wrapper .notifications {\n max-height: 100%;\n max-width: none;\n position: relative;\n bottom: auto;\n right: auto;\n padding: 0;\n margin-top: 40px;\n }\n\n .notification-wrapper .notifications .notification-card {\n transform: translateY(0%) !important;\n box-shadow: none;\n background: #F5F5F5;\n margin-bottom: 8px;\n }\n\n .notification-wrapper .notifications .notification-card .image-wrapper {\n display: block;\n }\n\n .notification-wrapper .notifications .expand_wrapper .expand {\n display: none;\n }\n}\n\n.notification-card {\n margin-bottom: 8px;\n padding: 16px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 24px;\n background: #FFF;\n border-radius: 8px;\n width: 100%;\n align-items: top;\n position: relative;\n filter: none !important;\n}\n\n.notification-card .image-wrapper {\n position: relative;\n width: 85px;\n height: 92px;\n border-radius: 4px;\n filter: none !important;\n\n width: 111px;\n height: auto;\n /* Define your base width (or use height instead) */\n aspect-ratio: 7 / 5;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n\n }\n\n.notification-card .image-wrapper .blur-bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-size: cover;\n background-position: center;\n filter: url(" + ___CSS_LOADER_URL_REPLACEMENT_66___ + ");\n filter: blur(8px);\n transform: scale(1.1);\n\n opacity: 0.2;\n z-index: 1;\n }\n\n.notification-card .image-wrapper {\n filter: url(" + ___CSS_LOADER_URL_REPLACEMENT_66___ + ");\n}\n\n.notification-card .image-wrapper img {\n position: relative;\n z-index: 2;\n width: auto;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n }\n\n.notification-card .notification-content {\n padding: 5px 0;\n }\n\n.notification-card .s4 {\n color: #D53737;\n margin: 0;\n }\n\n.notification-card {\n filter: url(" + ___CSS_LOADER_URL_REPLACEMENT_66___ + ");\n}\n\n.notification-card .b3 {\n color: #042C38;\n margin: 0;\n font-weight: 500;\n transition: all 0.3s ease;\n }\n\n.notification-card:hover .b3 {\n color: #D53737;\n}\n\n.gallery {\n padding: 60px 0;\n border-top: 1px solid #042C38\n}\n\n.gallery:after {\n content: \"\";\n display: block;\n width: 100%;\n height: 1px;\n clear: both;\n}\n\n.gallery br {\n\t\tdisplay: none;\n}\n\n.gallery .gallery-item {\n\t\tfloat: left;\n\t\tmargin-top: 0;\n\t\ttext-align: center;\n\t\twidth: 25%;\n\t\tmargin-bottom: 0;\n}\n\n.gallery .gallery-item dt {\n\t\t\tpadding: 15px;\n\t\t\t\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n .gallery .gallery-item dt {\n padding: 8px;\n }\n}\n\n.gallery .gallery-item dt a {\n\t\t\t\tdisplay: block;\n}\n\n.gallery .gallery-item dt a img {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tmax-width: none;\n\t\t\t\t}\n\n.gallery .gallery-item dd {\n\t\t\tpadding:0 15px 15px;\n}\n\n.gallery img {\n\t\tpadding: 10px;\n\t\tbackground: transparent;\n border-radius: 8px;\n transition: background 0.3s ease;\n}\n\n.gallery img:hover {\n background: #F5F5F5;\n}\n\n.gallery .gallery-caption {\n\t\tcolor: #888;\n\t\tfont-size: 12px;\n\t\tmargin: 0 0 12px;\n}\n\n.gallery dl {\n\t\tmargin: 0;\n}\n\n.gallery dt {\n\t\tmargin: 0;\n}\n\n.gallery br+br {\n\t\tdisplay: none;\n}\n\n.gallery-columns-1 .gallery-item {\n\t\twidth: 100%;\n\t}\n\n.gallery-columns-1 .attachment-medium {\n\t\tmax-width: 100%;\n\t\theight: auto;\n\t}\n\n.gallery-columns-2 .gallery-item {\n\t\twidth: 50%;\n\t}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-2 .gallery-item {\n width: 50%;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n .gallery-columns-2 .gallery-item {\n width: 100%;\n }\n\n .gallery-columns-2 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n\n .gallery-columns-2 .gallery-item img {\n\t\t\t\twidth: auto;\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 0 auto;\n }\n}\n\n.gallery-columns-2 .attachment-medium {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-4 .gallery-item {\n\t\twidth: 25%;\n\t}\n\n@media screen and (max-width: 768px) {\n\n .gallery-columns-4 .gallery-item {\n width: 25%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-4 .gallery-item {\n width: 33.3333%;\n }\n\n .gallery-columns-4 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n}\n\n.gallery-columns-4 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-5 .gallery-item {\n\t\twidth: 20%;\n\t}\n\n@media screen and (max-width: 768px) {\n\n .gallery-columns-5 .gallery-item {\n width: 25%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-5 .gallery-item {\n width: 33.3333%;\n }\n\n .gallery-columns-5 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n}\n\n.gallery-columns-5 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-6 .gallery-item {\n\t\twidth: 16.6666%;\n\t}\n\n@media screen and (max-width: 1024px) {\n\n .gallery-columns-6 .gallery-item {\n width: 20%;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .gallery-columns-6 .gallery-item {\n width: 25%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-6 .gallery-item {\n width: 33.3333%;\n }\n\n .gallery-columns-6 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n}\n\n.gallery-columns-6 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-7 .gallery-item {\n\t\twidth: 14.2857%;\n\t}\n\n.gallery-columns-7 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n .gallery-columns-7 .gallery-item {\n width: 20%;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .gallery-columns-7 .gallery-item {\n width: 25%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-7 .gallery-item {\n width: 33.3333%;\n }\n\n .gallery-columns-7 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n}\n\n.gallery-columns-7 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-8 .gallery-item {\n\t\twidth: 12.5%;\n\t}\n\n.gallery-columns-8 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n .gallery-columns-8 .gallery-item {\n width: 20%;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .gallery-columns-8 .gallery-item {\n width: 25%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-8 .gallery-item {\n width: 33.3333%;\n }\n\n .gallery-columns-8 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n}\n\n.gallery-columns-8 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-9 .gallery-item {\n\t\twidth: 11.1111%;\n\t}\n\n.gallery-columns-9 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n .gallery-columns-9 .gallery-item {\n width: 20%;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .gallery-columns-9 .gallery-item {\n width: 25%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-9 .gallery-item {\n width: 33.3333%;\n }\n\n .gallery-columns-9 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n}\n\n.gallery-columns-9 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.gallery-columns-10 .gallery-item {\n\t\twidth: 10%;\n\t}\n\n.gallery-columns-10 .gallery-item dt {\n\t\t\tpadding: 5px;\n\t\t}\n\n@media screen and (max-width: 1024px) {\n\n .gallery-columns-10 .gallery-item {\n width: 20%;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .gallery-columns-10 .gallery-item {\n width: 25%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .gallery-columns-10 .gallery-item {\n width: 33.3333%;\n }\n\n .gallery-columns-10 .gallery-item dt {\n\t\t\t\tpadding: 0px;\n }\n}\n\n.gallery-columns-10 .attachment-thumbnail {\n\t\tmax-width: 100%;\n\t\theight: auto;\n}\n\n.recent-news {\n padding: 64px 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n .recent-news {\n margin-top: 45px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .recent-news {\n margin-top: 0;\n }\n}\n\n.recent-news .title-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 50px;\n}\n\n@media screen and (max-width: 640px) {\n\n .recent-news .title-wrapper {\n justify-content: center;\n flex-wrap: wrap;\n margin-bottom: 64px;\n }\n}\n\n.recent-news .title-wrapper h3 {\n margin: 0;\n}\n\n@media screen and (max-width: 640px) {\n\n .recent-news .title-wrapper h3 {\n text-align: center;\n width: 100%;\n margin-bottom: 30px;\n }\n}\n\n.recent-news .news-wrapper {\n /*background: var(--white);*/\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: flex-start;\n gap: 24px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .recent-news .news-wrapper {\n flex-wrap: wrap;\n }\n}\n\n.recent-news .featured-news {\n width: 50%;\n height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n .recent-news .featured-news {\n width: calc(60% - 12px);\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .recent-news .featured-news {\n width: 100%;\n }\n}\n\n.recent-news .button-wrapper {\n position: absolute;\n bottom: 70px;\n right: 0;\n}\n\n.recent-news .button-wrapper .bottom-link {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n\n@media screen and (max-width: 640px) {\n\n .recent-news .button-wrapper {\n padding: 0;\n bottom: 0;\n }\n}\n\n.recent-news .normal-news {\n width: 25%;\n height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n .recent-news .normal-news {\n width: calc(40% - 12px);\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .recent-news .normal-news {\n width: 100%;\n }\n}\n\n.recent-news .caption-news {\n width: 25%;\n height: auto;\n}\n\n@media screen and (max-width: 1280px) {\n\n .recent-news .caption-news {\n width: 100%;\n }\n}\n\n.recent-news .top-link {\n }\n\n.recent-news .bottom-link {\n display: none;\n}\n\n@media screen and (max-width: 640px) {\n\n .recent-news .top-link {\n display: none;\n }\n\n .recent-news .bottom-link {\n display: inline-block;\n }\n\n .recent-news .button-wrapper {\n text-align: center;\n padding: 60px 0;\n }\n\n .recent-news .title-wrapper {\n justify-content: flex-start;\n margin-bottom: 32px;\n margin-top: 60px;\n }\n\n .recent-news .title-wrapper h3 {\n text-align: left;\n margin: 0;\n }\n}\n\n.news-card-large,\n .news-card-normal,\n .news-card-caption {\n display: block;\n\n }\n\n.news-card-large span.s4, .news-card-normal span.s4, .news-card-caption span.s4 {\n color: #387E97;\n margin: 0 0 10px;\n }\n\n.news-card-large p, .news-card-normal p, .news-card-caption p {\n margin: 0;\n }\n\n.news-card-large .h4, .news-card-large .s1, .news-card-large .s2, .news-card-normal .h4, .news-card-normal .s1, .news-card-normal .s2, .news-card-caption .h4, .news-card-caption .s1, .news-card-caption .s2 {\n transition: all 0.3s ease;\n }\n\n.news-card-large:hover .h4, .news-card-large:hover .s1, .news-card-large:hover .s2, .news-card-normal:hover .h4, .news-card-normal:hover .s1, .news-card-normal:hover .s2, .news-card-caption:hover .h4, .news-card-caption:hover .s1, .news-card-caption:hover .s2 {\n color: #D53737;\n}\n\n@media screen and (max-width: 640px) {\n\n .news-card-large {\n margin-bottom: 45px;\n }\n}\n\n.news-card-large .image-wrapper {\n margin-bottom: 35px;\n padding-bottom: 67%;\n padding-bottom: 79%;\n}\n\n@media screen and (max-width: 640px) {\n\n .news-card-large .image-wrapper {\n margin-bottom: 15px;\n padding-bottom: 40%;\n }\n}\n\n.news-card-large h4 {\n margin: 0;\n margin-bottom: 25px;\n}\n\n@media screen and (max-width: 640px) {\n\n .news-card-normal {\n margin-bottom: 45px;\n }\n}\n\n.news-card-normal .image-wrapper {\n margin-bottom: 20px;\n padding-bottom: 92%;\n padding-bottom: 79%;\n padding-bottom: 71%;\n}\n\n@media screen and (max-width: 1280px) {\n\n .news-card-normal .image-wrapper {\n margin-bottom: 35px;\n padding-bottom: 67%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .news-card-normal .image-wrapper {\n margin-bottom: 15px;\n padding-bottom: 40%;\n }\n}\n\n.news-card-normal h4 {\n margin: 0;\n margin-bottom: 20px;\n}\n\n.news-card-caption {\n padding: 24px 0;\n border-top: 1px solid #F2F2F2;\n}\n\n@media screen and (max-width: 768px) {\n\n .news-card-caption {\n padding: 18px 0;\n }\n}\n\n.news-card-caption h4 {\n margin: 0 0 20px;\n}\n\n.upcoming-events {\n background: #F5F5F5;\n padding: 65px 135px;\n margin: 80px 0;\n border-radius: 8px;\n\n}\n\n@media screen and (max-width: 1280px) {\n\n .upcoming-events {\n margin: 0 0 64px;\n padding: 45px 100px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .upcoming-events {\n padding: 30px 45px 45px;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .upcoming-events {\n padding: 30px 30px 45px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .upcoming-events {\n padding: 30px 15px 45px;\n }\n}\n\n.upcoming-events .title-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 50px;\n}\n\n.upcoming-events .title-wrapper h3 {\n margin: 0;\n }\n\n@media screen and (max-width: 640px) {\n\n .upcoming-events .title-wrapper h3 {\n font-size: 28px;\n }\n}\n\n.upcoming-events .controls {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 30px;\n}\n\n@media screen and (max-width: 640px) {\n\n .upcoming-events .controls {\n justify-content: center;\n flex-wrap: wrap;\n flex-direction: column-reverse;\n }\n}\n\n.upcoming-events .controls .glide__arrows {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: 15px;\n}\n\n@media screen and (max-width: 640px) {\n\n .upcoming-events .controls .glide__arrows {\n width: 100%;\n justify-content: center;\n margin-bottom: 35px;\n }\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow {\n position: relative;\n padding: 0;\n border: none;\n box-shadow: none;\n top: auto;\n transform: translateY(0);\n transition: all 0.2s ease;\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow rect{\n transition: all 0.3s ease;\n }\n\n.upcoming-events .controls .glide__arrows .glide__arrow path {\n transition: all 0.3s ease;\n }\n\n.upcoming-events .controls .glide__arrows .glide__arrow:hover rect {\n fill: #042C38;\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow:hover path {\n stroke: #FCFCFC;\n}\n\n.upcoming-events .controls .glide__arrows .glide__arrow--left,\n .upcoming-events .controls .glide__arrows .glide__arrow--right {\n left: auto;\n right: auto;\n}\n\n@media screen and (max-width: 640px) {\n\n .upcoming-events .glide__slides {\n flex-direction: column;\n }\n\n .upcoming-events .glide__slides .glide__slide {\n margin-bottom: 32px;\n display: none\n }\n\n .upcoming-events .glide__slides .glide__slide:nth-child(1) {\n display: block;\n }\n\n .upcoming-events .glide__slides .glide__slide:nth-child(2) {\n display: block;\n }\n\n .upcoming-events .glide__slides .glide__slide:nth-child(3) {\n display: block;\n }\n\n .upcoming-events .controls {\n padding-top: 32px;\n }\n .upcoming-events .controls .glide__arrows {\n display: none;\n }\n}\n\n.events-slide {\n display: block;\n\n }\n\n.events-slide .image-wrapper {\n padding-bottom: 79%;\n margin-bottom: 35px;\n }\n\n.events-slide .h5 {\n transition: all 0.3s ease;\n }\n\n.events-slide:hover .h5 {\n color: #D53737;\n}\n\n.introduction {\n background: #F5F5F5;\n padding: 65px 135px;\n margin: 80px 0 0;\n margin-top: 0;\n border-radius: 8px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .introduction {\n margin: 64px 0 0;\n padding: 45px 100px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .introduction {\n padding: 30px 45px 45px;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .introduction {\n padding: 30px 30px 45px;\n }\n}\n\n.introduction .intro-text {\n padding: 0 0 50px;\n max-width: 800px;\n}\n\n@media screen and (max-width: 768px) {\n\n .introduction .intro-text {\n padding: 0 0 10px;\n }\n}\n\n.introduction .intro-text .c1 {\n max-width: 565px;\n}\n\n.introduction .quick-links {\n position: relative;\n}\n\n.introduction .quick-links ul,\n .introduction .quick-links li {\n margin: 0;\n padding: 0;\n list-style: none;\n position: relative;\n }\n\n.introduction .quick-links li .quick-links-image {\n display: block;\n border-radius: 8px;\n position: absolute;\n top: -20px;\n right: 15%;\n opacity: 0;\n visibility: hidden;\n transition: all 0.5s ease;\n max-width: 300px;\n width: 100%;\n height: auto;\n z-index: 100;\n }\n\n@media screen and (max-width: 1280px) {\n\n .introduction .quick-links li .quick-links-image {\n display: none;\n }\n}\n\n.introduction .quick-links li:hover .quick-links-image {\n opacity: 1;\n visibility: visible;\n}\n\n.introduction .quick-links a {\n display: block;\n padding: 25px 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #CFCFCF;\n margin: 0;\n transition: border 0.2s ease-in, color 0.2s ease-in;\n font-size: 24px;\n}\n\n@media screen and (max-width: 768px) {\n\n .introduction .quick-links a {\n padding: 15px 0;\n font-size: 22px;\n }\n}\n\n.introduction .quick-links a svg {\n width: 14px;\n height: auto;\n transform: rotate(0deg);\n transition: transform 0.2s ease-in;\n}\n\n.introduction .quick-links a svg path {\n transition: fill 0.2s ease-in;\n }\n\n.introduction .quick-links a:hover {\n border-bottom: 2px solid #D53737;\n color: #D53737;\n}\n\n.introduction .quick-links a:hover svg {\n width: 14px;\n height: auto;\n transform: rotate(-45deg);\n}\n\n.introduction .quick-links a:hover svg path {\n fill: #D53737\n }\n\n.introduction .quick-links .images {\n position: absolute;\n width: auto;\n right: calc(300px + 10%);\n bottom: 50px;\n height: 244px;\n}\n\n.introduction .quick-links .images .image {\n position: absolute;\n opacity: 0;\n transition: .4s ease opacity\n\n }\n\n.introduction .quick-links .images .image.hover {\n opacity: 1;\n}\n\n.introduction .quick-links .images .image-wrapper {\n width: 350px;\n height: 244px;\n border-radius: 8px;\n\n }\n\n.introduction .quick-links .images .image-wrapper img {\n border-radius: 8px;\n }\n\n@media screen and (max-width: 1024px) {\n\n .introduction .quick-links .images {\n display: none;\n }\n}\n\n.search-navigation.fixed {\n opacity: 0;\n visibility: hidden;\n position: fixed;\n top: 0px;\n left: 0;\n right: 0;\n bottom: 0;\n transition: all 0.3s ease;\n z-index:9999;\n padding: 50px;\n}\n\n.search-navigation.fixed.visible {\n opacity: 1;\n visibility: visible;\n top: 40px;\n}\n\n.search-navigation.fixed .bg {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: rgba(0, 0, 0, .5);\n z-index: 4;\n}\n\n.search-navigation.inline {\n position: relative;\n}\n\n.search-navigation.inline .search-bar {\n padding: 0px 15px 0px;\n}\n\n.search-navigation.inline .search-bar-wrapper .controls {\n top: 7px;\n gap: 12px;\n }\n\n.search-navigation.inline .search-bar-wrapper .controls .btnTransparent span {\n display: none;\n }\n\n.search-navigation.inline .search-bar-wrapper input {\n font-style: normal;\n font-weight: 500;\n font-size: 18px;\n line-height: 120%;\n padding: 15px 0;\n padding-right: 0px;\n background: transparent;\n color: #E3EAEC;\n border: none;\n width: 100%;\n padding-right: 80px;\n }\n\n@media screen and (max-width: 768px) {\n\n .search-navigation {\n padding: 30px 15px;\n }\n}\n\n.search-navigation .search-bar {\n padding: 0px 50px 0px;\n background: #042C38;\n border-radius: 8px;\n position: relative;\n z-index: 5;\n max-height: 100%;\n overflow: auto;\n}\n\n.search-navigation .search-bar-wrapper {\n position: relative;\n}\n\n.search-navigation .search-bar-wrapper .controls {\n position: absolute;\n right: 0;\n top: 16px;\n list-style: none;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 24px;\n align-items: center;\n }\n\n.search-navigation .search-bar-wrapper .controls .btnTransparent {\n background: #FFF;\n }\n\n.search-navigation .search-bar-wrapper .controls .search-toggle {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n align-items: center;\n }\n\n.search-navigation .search-bar-wrapper input {\n font-style: normal;\n font-weight: 500;\n font-size: 28px;\n line-height: 120%;\n padding: 34px 0;\n background: transparent;\n color: #E3EAEC;\n border: none;\n width: 100%;\n padding-right: 195px\n }\n\n.search-navigation .search-bar-wrapper input:focus,.search-navigation .search-bar-wrapper input.focus-visible {\n border: none;\n outline: none;\n box-shadow: none;\n}\n\n.search-navigation .search-bar-wrapper input:focus,.search-navigation .search-bar-wrapper input:focus-visible {\n border: none;\n outline: none;\n box-shadow: none;\n}\n\n.search-navigation .search-suggestion-wrapper {\n padding-bottom: 50px;\n display: none;\n border-top: 1px solid #E3EAEC;\n gap: 16px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 2.5fr;\n}\n\n.search-navigation .search-suggestion-wrapper.visible {\n display: grid;\n}\n\n@media screen and (max-width: 1280px) {\n\n .search-navigation .search-suggestion-wrapper.visible {\n grid-template-columns: 1fr 1fr 1fr;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .search-navigation .search-suggestion-wrapper.visible {\n display: block;\n }\n\n .search-navigation .search-suggestion-wrapper.visible > div {\n margin-bottom: 40px;\n }\n}\n\n.search-navigation .search-suggestion-wrapper h5 {\n color: #FFF;\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 140%;\n margin-bottom: 25px;\n}\n\n@media screen and (max-width: 768px) {\n\n .search-navigation .search-suggestion-wrapper h5 {\n font-size: 22px;\n }\n}\n\n.search-navigation .search-suggestion-wrapper h6 {\n color: #FFF;\n font-style: normal;\n font-weight: 700;\n font-size: 14px;\n line-height: 140%;\n margin: 0;\n}\n\n.search-navigation .search-suggestion-wrapper .search-v1 {\n margin-bottom: 15px;\n padding-right: 30px;\n}\n\n.search-navigation .search-suggestion-wrapper .search-v1 a {\n font-style: normal;\n font-weight: 500;\n font-size: 14px;\n line-height: 140%;\n color: #FFF\n }\n\n.search-navigation .search-suggestion-wrapper .search-v1 a:hover {\n text-decoration: underline;\n}\n\n.search-navigation .search-loading {\n display: none;\n text-align: center;\n border-top: 1px solid #E3EAEC;\n}\n\n.search-navigation .search-loading.visible {\n display: block;\n}\n\n.search-navigation .search-loading {/*generated by https://loading.io/ */\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div {\n left: 94px;\n top: 48px;\n position: absolute;\n animation: ldio-oruce3mgeyp linear 1s infinite;\n background: #ffffff;\n width: 12px;\n height: 24px;\n border-radius: 6px / 12px;\n transform-origin: 6px 52px;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(1) {\n transform: rotate(0deg);\n animation-delay: -0.9166666666666666s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(2) {\n transform: rotate(30deg);\n animation-delay: -0.8333333333333334s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(3) {\n transform: rotate(60deg);\n animation-delay: -0.75s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(4) {\n transform: rotate(90deg);\n animation-delay: -0.6666666666666666s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(5) {\n transform: rotate(120deg);\n animation-delay: -0.5833333333333334s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(6) {\n transform: rotate(150deg);\n animation-delay: -0.5s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(7) {\n transform: rotate(180deg);\n animation-delay: -0.4166666666666667s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(8) {\n transform: rotate(210deg);\n animation-delay: -0.3333333333333333s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(9) {\n transform: rotate(240deg);\n animation-delay: -0.25s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(10) {\n transform: rotate(270deg);\n animation-delay: -0.16666666666666666s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(11) {\n transform: rotate(300deg);\n animation-delay: -0.08333333333333333s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div:nth-child(12) {\n transform: rotate(330deg);\n animation-delay: 0s;\n background: #ffffff;\n}\n\n.search-navigation .search-loading .loadingio-spinner-spinner-v7b2k0aigi {\n width: 200px;\n height: 200px;\n display: inline-block;\n overflow: hidden;\n background: none;\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp {\n width: 100%;\n height: 100%;\n position: relative;\n transform: translateZ(0) scale(1);\n backface-visibility: hidden;\n transform-origin: 0 0; /* see note above */\n}\n\n.search-navigation .search-loading .ldio-oruce3mgeyp div { box-sizing: content-box;\n}\n\n@keyframes ldio-oruce3mgeyp {\n0% { opacity: 1 }\n100% { opacity: 0 }\n}\n\n.sitemap > li > a, .sitemap > li span {\n font-size: 22px;\n font-weight: 500;\n }\n\n.sitemap ul {\n padding-left: 15px;\n margin-bottom: 15px;\n margin-top: 15px;\n }\n\n.sitemap li {\n margin-bottom: 5px;\n }\n\n.sitemap a {\n text-decoration: none;\n }\n\n.funding-v1 {\n border-radius: 16px;\n background: #F5F5F5;\n padding: 48px;\n display: block;\n }\n\n@media screen and (max-width: 640px) {\n\n .funding-v1 {\n padding: 30px 15px;\n }\n}\n\n.funding-v1 .dot {\n width: 6px;\n height: 6px;\n border-radius: 100px;\n background: #D53737;\n margin: 20px 0;\n}\n\n.funding-v1 span {\n color: #042C38;\n}\n\n.funding-v1 .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.funding-v1 .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.funding-v1 .h5 {\n margin: 0 0 24px;\n transition: all 0.3s ease;\n}\n\n.funding-v1 .sep {\n height: 1px;\n width: 100%;\n background: #CFCFCF;\n display: block;\n margin: 0 0 24px;\n}\n\n.funding-v1 .label {\n display: block;\n margin: 0 0 12px;\n font-weight: 500;\n}\n\n.funding-v1 .value {\n display: block;\n margin: 0 0 20px;\n font-weight: 500;\n}\n\n.funding-v1 .button_wrapper {\n padding-top: 25px;\n}\n\n.funding-v1 .button_wrapper .btn {\n display: inline-block;\n }\n\n.funding-v1:hover .h5 {\n color: #D53737;\n}\n\n.funding-v1:hover .button_wrapper {\n padding-top: 25px;\n}\n\n.funding-v1:hover .button_wrapper .btn {\n padding-right: 25px;\n }\n\n.funding-v2 {\n border-radius: 16px;\n background: #F5F5F5;\n padding: 48px;\n display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n .funding-v2 {\n padding: 30px;\n }\n}\n\n.funding-v2 .s1 {\n transition: all 0.3s ease;\n}\n\n.funding-v2 .top_level {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 24px;\n align-items: flex-start;\n}\n\n@media screen and (max-width: 640px) {\n\n .funding-v2 .top_level {\n gap: 12px;\n align-items: flex-start;\n margin-bottom: 25px;\n }\n\n .funding-v2 .top_level .s1 {\n margin-bottom: 0;\n }\n\n .funding-v2 .top_level .missing-image.medium {\n font-size: 40px;\n }\n}\n\n.funding-v2 .image-wrapper {\n width: 198px;\n height: 277px;\n flex-shrink: 0;\n margin-bottom: 24px;\n overflow: visible;\n overflow: initial;\n}\n\n@media screen and (max-width: 640px) {\n\n .funding-v2 .image-wrapper {\n width: 75px;\n height: 100px;\n border-radius: 3px;\n margin: 0;\n }\n}\n\n.funding-v2 .title-wrapper {\n }\n\n.funding-v2 .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.funding-v2 .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.funding-v2 .h5 {\n margin: 0 0 24px;\n font-size: 24px;\n transition: all 0.3s ease;\n}\n\n.funding-v2 .dot {\n width: 6px;\n height: 6px;\n border-radius: 100px;\n background: #D53737;\n margin: 20px 0;\n}\n\n.funding-v2 .sep {\n height: 1px;\n width: 100%;\n background: #CFCFCF;\n display: block;\n margin: 0 0 24px;\n}\n\n.funding-v2 .label,\n .funding-v2 .value {\n display: block;\n margin: 0 0 18px;\n font-weight: 500;\n}\n\n.funding-v2 span {\n color: #042C38;\n}\n\n.funding-v2 .button_wrapper {\n padding-top: 25px;\n}\n\n.funding-v2 .button_wrapper .btn {\n display: inline-block;\n }\n\n.funding-v2:hover .h5 {\n color: #D53737;\n}\n\n.funding-v2:hover .button_wrapper {\n padding-top: 25px;\n}\n\n.funding-v2:hover .button_wrapper .btn {\n padding-right: 25px;\n }\n\n.projects-v1 {\n border-radius: 16px;\n background: #F5F5F5;\n padding: 48px;\n display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n .projects-v1 {\n padding: 30px;\n }\n}\n\n.projects-v1 .s1 {\n transition: all 0.3s ease;\n}\n\n.projects-v1 .top_level {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 24px;\n align-items: flex-start;\n}\n\n@media screen and (max-width: 640px) {\n\n .projects-v1 .top_level {\n gap: 12px;\n align-items: flex-start;\n margin-bottom: 25px;\n }\n\n .projects-v1 .top_level .s1 {\n margin-bottom: 0;\n }\n\n .projects-v1 .top_level .missing-image.medium {\n font-size: 40px;\n }\n}\n\n.projects-v1 .image-wrapper {\n width: 198px;\n height: 277px;\n flex-shrink: 0;\n margin-bottom: 24px;\n overflow: visible;\n overflow: initial;\n}\n\n@media screen and (max-width: 640px) {\n\n .projects-v1 .image-wrapper {\n width: 75px;\n height: 100px;\n border-radius: 3px;\n margin: 0;\n }\n}\n\n.projects-v1 .title-wrapper {\n }\n\n.projects-v1 .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.projects-v1 .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.projects-v1 .h5 {\n margin: 0 0 24px;\n}\n\n.projects-v1 .sep {\n height: 1px;\n width: 100%;\n background: #CFCFCF;\n display: block;\n margin: 0 0 24px;\n}\n\n.projects-v1 .label,\n .projects-v1 .value {\n display: block;\n margin: 0 0 18px;\n font-weight: 500;\n}\n\n.projects-v1 .button_wrapper {\n padding-top: 25px;\n}\n\n.projects-v1 .button_wrapper .btn {\n display: inline-block;\n }\n\n.projects-v1:hover .s1 {\n color: #D53737;\n}\n\n.projects-v1:hover .btn {\n background: #D53737;\n color: #FFF;\n}\n\n.projects-v2 {\n border-radius: 8px;\n background: #F5F5F5;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-start;\n padding: 40px 24px;\n gap: 65px;\n color: #042C38;\n transition: all 0.2s ease-in;\n\n}\n\n@media screen and (max-width: 1024px) {\n\n .projects-v2 {\n display: block;\n }\n}\n\n.projects-v2 .list {\n flex-basis: 40%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0px;\n gap: 82px;\n margin-bottom: 24px;\n}\n\n@media screen and (max-width: 640px) {\n\n .projects-v2 .list {\n gap: 0px;\n }\n}\n\n.projects-v2 .list > div {\n flex-basis: 50%;\n}\n\n.projects-v2 .list p {\n margin: 0 0 15px;\n line-height: 1;\n}\n\n.projects-v2 .list .bold {\n font-weight: bold;\n}\n\n.projects-v2 .content {\n flex-basis: 60%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0px;\n gap: 24px 60px;\n}\n\n.projects-v2 .content .h5 {\n margin: 0 0 20px;\n transition: all 0.3s ease;\n }\n\n.projects-v2 .content p {\n margin: 0 0 15px;\n }\n\n.projects-v2 .content .image-wrapper {\n width: 164px;\n height: 248px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n@media screen and (max-width: 640px) {\n\n .projects-v2 .content {\n display: block;\n }\n\n .projects-v2 .content .image-wrapper {\n margin-bottom: 20px;\n }\n}\n\n.projects-v2:hover .content .h5 {\n color: #D53737;\n }\n\n.our-scientists-v1 a {\n display: block;\n background: #F5F5F5;\n padding: 24px;\n border-radius: 16px;\n transition: all 0.3s ease;\n height: 100%;\n\n }\n\n.our-scientists-v1 .image-wrapper {\n padding-bottom: 110%;\n margin-bottom: 30px;\n }\n\n.our-scientists-v1 .b2 {\n font-weight: 500;\n }\n\n.our-scientists-v1 .dot {\n width: 6px;\n height: 6px;\n border-radius: 100px;\n background: #D53737;\n margin: 20px 0;\n }\n\n.our-scientists-v1 h6 {\n margin-bottom: 15px;\n transition: all 0.3s ease;\n }\n\n.our-scientists-v1 p {\n margin: 8px 0;\n color: #042C38\n }\n\n.our-scientists-v1 p:last-child {\n margin: 8px 0 0;\n}\n\n.our-scientists-v1:hover h6 {\n color: #D53737;\n}\n\n.news-v1 .image-wrapper {\n margin-bottom: 20px;\n padding-bottom: 92%;\n padding-bottom: 79%;\n }\n\n.news-v1 h4 {\n margin: 0;\n margin-bottom: 20px;\n }\n\n.news-v1 .s4 {\n color: #387E97;\n margin-bottom: 10px;\n }\n\n.news-v1 .s1 {\n transition: all 0.3s ease\n }\n\n.news-v1:hover .s1 {\n color: #D53737;\n}\n\n.publications-v1 {\n border-radius: 16px;\n background: #F5F5F5;\n padding: 48px;\n display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n .publications-v1 {\n padding: 30px 15px;\n }\n}\n\n.publications-v1 span {\n color: #042C38;\n}\n\n.publications-v1 .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.publications-v1 .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.publications-v1 .h5 {\n margin: 0 0 24px;\n transition: all 0.3s ease;\n}\n\n.publications-v1 .sep {\n height: 1px;\n width: 100%;\n background: #CFCFCF;\n display: block;\n margin: 0 0 24px;\n}\n\n.publications-v1 .label {\n display: block;\n margin: 0 0 12px;\n font-weight: 500;\n}\n\n.publications-v1 .value {\n display: block;\n margin: 0 0 20px;\n font-weight: 500;\n}\n\n.publications-v1 .button_wrapper {\n padding-top: 25px;\n}\n\n.publications-v1 .button_wrapper .btn {\n display: inline-block;\n }\n\n.publications-v1:hover .h5 {\n color: #D53737;\n}\n\n.publications-v1:hover .button_wrapper {\n padding-top: 25px;\n}\n\n.publications-v1:hover .button_wrapper .btn {\n padding-right: 25px;\n }\n\n.publications-v2 {\n border-radius: 16px;\n background: #F5F5F5;\n padding: 48px;\n display: block;\n}\n\n@media screen and (max-width: 640px) {\n\n .publications-v2 {\n padding: 30px;\n }\n}\n\n.publications-v2 .s1 {\n transition: all 0.3s ease;\n}\n\n.publications-v2 .top_level {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 24px;\n align-items: flex-start;\n}\n\n@media screen and (max-width: 640px) {\n\n .publications-v2 .top_level {\n gap: 12px;\n align-items: flex-start;\n margin-bottom: 25px;\n }\n\n .publications-v2 .top_level .s1 {\n margin-bottom: 0;\n }\n\n .publications-v2 .top_level .missing-image.medium {\n font-size: 40px;\n }\n}\n\n.publications-v2 .image-wrapper {\n width: 198px;\n height: 277px;\n flex-shrink: 0;\n margin-bottom: 24px;\n overflow: visible;\n overflow: initial;\n}\n\n@media screen and (max-width: 640px) {\n\n .publications-v2 .image-wrapper {\n width: 75px;\n height: 100px;\n border-radius: 3px;\n margin: 0;\n }\n}\n\n.publications-v2 .title-wrapper {\n }\n\n.publications-v2 .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.publications-v2 .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.publications-v2 .h5 {\n margin: 0 0 24px;\n font-size: 24px;\n transition: all 0.3s ease;\n}\n\n.publications-v2 .sep {\n height: 1px;\n width: 100%;\n background: #CFCFCF;\n display: block;\n margin: 0 0 24px;\n}\n\n.publications-v2 .label,\n .publications-v2 .value {\n display: block;\n margin: 0 0 18px;\n font-weight: 500;\n}\n\n.publications-v2 span {\n color: #042C38;\n}\n\n.publications-v2 .button_wrapper {\n padding-top: 25px;\n}\n\n.publications-v2 .button_wrapper .btn {\n display: inline-block;\n }\n\n.publications-v2:hover .h5 {\n color: #D53737;\n}\n\n.publications-v2:hover .button_wrapper {\n padding-top: 25px;\n}\n\n.publications-v2:hover .button_wrapper .btn {\n padding-right: 25px;\n }\n\n.forms-v1 {\n border-radius: 16px;\n background: #F5F5F5;\n padding: 48px;\n}\n\n.forms-v1 span {\n color: #042C38;\n }\n\n.forms-v1 .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n }\n\n.forms-v1 .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.forms-v1 .h5 {\n margin: 0 0 24px;\n }\n\n.forms-v1 .sep {\n height: 2px;\n width: 100%;\n background: #042C38;\n display: block;\n margin: 0 0 24px;\n }\n\n.forms-v1 .label,\n .forms-v1 .value {\n display: block;\n margin: 0 0 18px;\n font-weight: 500;\n }\n\n.forms-v1 .button_wrapper {\n padding-top: 25px;\n }\n\n.forms-v1 .button_wrapper .btn {\n display: inline-block;\n }\n\n.forms-v1 .h5 {\n transition: all 0.3s ease;\n }\n\n.forms-v1:hover .h5 {\n color: #D53737;\n}\n\n.forms-v1:hover .btn.arrow,.forms-v1:hover .btn.arrow {\n padding-right: 25px;\n}\n\n.news-card-small {\n background: #F5F5F5;\n padding: 16px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 24px;\n width: 100%;\n margin-bottom: 4px;\n transition: all 0.3s ease;\n\n}\n\n.news-card-small .image-wrapper {\n border-radius: 4px;\n width: 85px;\n height: 92px;\n height: 55px;\n flex-shrink: 0;\n }\n\n.news-card-small .content-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n }\n\n.news-card-small .content-wrapper .s4 {\n color: #D53737;\n margin: 0 0 2px;\n }\n\n.news-card-small .content-wrapper h6 {\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-size: 14px;\n font-weight: 500;\n margin: 0;\n transition: all 0.3s ease;\n }\n\n.news-card-small:hover .content-wrapper h6 {\n color: #D53737;\n }\n\n.team-v1 {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 24px;\n gap: 40px;\n background: #F5F5F5;\n padding: 20px;\n border-radius: 16px;\n color: #042C38;\n}\n\n.team-v1 .content-wrapper .h5 {\n margin: 0;\n transition: all 0.3s ease;\n }\n\n.team-v1 .content-wrapper .dot {\n background: #D53737;\n width: 6px;\n height: 6px;\n border-radius: 90px;\n margin: 15px 0;\n }\n\n.team-v1 .content-wrapper p {\n margin: 0;\n }\n\n.team-v1 .content-wrapper .excerpt-wrapper {\n min-height: 135px;\n }\n\n.team-v1 .image-wrapper {\n padding-bottom: 110%;\n }\n\n.team-v1:hover .content-wrapper .h5 {\n color: #D53737;\n }\n\n.events-v1 {\n border-radius: 16px;\n background: #F5F5F5;\n padding: 48px;\n transition: all 0.3s ease-in-out;\n\n}\n\n@media screen and (max-width: 1024px) {\n\n .events-v1 {\n padding: 30px;\n }\n}\n\n.events-v1 .h3,\n .events-v1 p,\n .events-v1 span,\n .events-v1 .content .value,\n .events-v1 .metadata .ellipse,\n .events-v1 .sep {\n transition: all 0.3s ease-in-out;\n}\n\n.events-v1:hover {\n background: #D53737;\n}\n\n.events-v1:hover .h3,\n .events-v1:hover p,\n .events-v1:hover span,\n .events-v1:hover .content .value {\n color: #FFF;\n}\n\n.events-v1:hover .metadata .ellipse,\n .events-v1:hover .sep {\n background: #FFF;\n}\n\n.events-v1.fade {\n opacity: 0.35;\n}\n\n.events-v1 .image-wrapper {\n margin-bottom: 20px;\n padding-bottom: 79%;\n}\n\n@media screen and (max-width: 640px) {\n\n .events-v1 .image-wrapper {\n margin-bottom: 15px;\n padding-bottom: 40%;\n }\n}\n\n.events-v1 .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.events-v1 .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n.events-v1 .h5 {\n margin: 0 0 24px;\n}\n\n.events-v1 .sep {\n height: 2px;\n width: 100%;\n background: #D53737;\n display: block;\n margin: 25px 0 30px;\n}\n\n.events-v1 .content .label {\n display: block;\n margin: 0 0 8px;\n font-weight: bold;\n font-size: 16px;\n line-height: 1.2;\n }\n\n.events-v1 .content .value {\n display: block;\n margin: 0 0 30px;\n font-size: 16px;\n line-height: 1.2;\n color: #042C38\n }\n\n.events-v1 .content .value:last-child {\n margin-bottom: 0;\n}\n\n.media-card {\n display: block;\n color: #042C38;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.media-card .image-wrapper {\n padding-bottom: 67%;\n margin-bottom: 25px;\n }\n\n.media-card .h5 {\n transition: all 0.3s ease;\n }\n\n.media-card:hover .h5 {\n color: #D53737;\n}\n\n.gallery-card {\n display: block;\n color: #042C38;\n}\n\n.gallery-card .image-wrapper {\n padding-bottom: 67%;\n margin-bottom: 25px;\n }\n\n.employment-v1 {\n border-radius: 8px;\n background: #F5F5F5;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-start;\n padding: 40px 24px;\n gap: 65px;\n color: #042C38;\n transition: all 0.2s ease-in;\n}\n\n.employment-v1 .btn {\n display: inline-block;\n }\n\n@media screen and (max-width: 1024px) {\n\n .employment-v1 {\n display: block;\n }\n}\n\n.employment-v1:hover .btn.btnTransparentRed {\n background: #D53737;\n color: #FFF;\n}\n\n.employment-v1 .list {\n flex-basis: 40%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0px;\n gap: 82px;\n margin-bottom: 24px;\n}\n\n@media screen and (max-width: 640px) {\n\n .employment-v1 .list {\n gap: 0px;\n flex-wrap: wrap;\n }\n}\n\n.employment-v1 .list > div {\n flex-basis: 50%;\n}\n\n.employment-v1 .list p {\n margin: 0 0 15px;\n line-height: 1;\n}\n\n.employment-v1 .list .bold {\n font-weight: bold;\n}\n\n.employment-v1 .content {\n flex-basis: 60%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0px;\n gap: 24px;\n}\n\n.employment-v1 .content .h6 {\n margin: 0 0 25px;\n }\n\n.employment-v1 .content p {\n margin: 0 0 25px;\n }\n\n.employment-v1 .content .image-wrapper {\n width: 186px;\n height: 241px;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n@media screen and (max-width: 640px) {\n\n .employment-v1 .content {\n display: block;\n }\n\n .employment-v1 .content .image-wrapper {\n margin-bottom: 20px;\n }\n}\n\n.page-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items:flex-start;\n padding: 0 0 80px;\n\n}\n\n@media screen and (max-width: 640px) {\n\n .page-title {\n padding: 0 0 32px;\n }\n}\n\n.page-title h1 {\n flex-shrink: 0;\n width: 50%;\n}\n\n.page-title .c1 {\n flex-shrink: 0;\n width: 40%;\n}\n\n@media screen and (max-width: 1280px) {\n\n .page-title {\n display: block;\n }\n\n .page-title h1 {\n width: 100%;\n margin-bottom: 40px;\n text-align: left;\n }\n\n .page-title .c1 {\n width: 100%;\n text-align: left;\n }\n}\n\n.page-sub-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 0 20px;\n margin-bottom: 64px;\n border-bottom: 1px solid #E3EAEC;\n width: 100%;\n}\n\n.page-sub-title .h4 {\n margin: 0;\n }\n\n@media screen and (max-width: 640px) {\n\n .page-sub-title .h4 {\n text-align: left;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .page-sub-title {\n margin-bottom: 32px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .page-sub-title {\n display: block;\n }\n\n .page-sub-title .html {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding-top: 40px;\n }\n}\n\n.menu-style-1 {\n margin-bottom: 80px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #CFCFCF;\n}\n\n.menu-style-1-title {\n display: none;\n cursor: pointer;\n background: #D53737;\n color: #FFF;\n border-radius: 8px;\n padding: 15px;\n align-items: center;\n justify-content: space-between;\n }\n\n.menu-style-1-title .selection {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n }\n\n.menu-style-1-title .selection .instructions {\n padding-left: 15px;\n color: #FFF;\n font-size: 12px;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n }\n\n.menu-style-1-title svg {\n transition: 0.3s all ease;\n transform: rotate(0deg);\n }\n\n.menu-style-1-title.open svg {\n transform: rotate(90deg);\n}\n\n@media screen and (max-width: 768px) {\n\n .menu-style-1-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n .page-template-page-events .menu-style-1 {\n display: block;\n border-bottom: 0;\n margin-bottom: 32px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .page-template-page-events .menu-style-1 {\n display: none;\n }\n\n .page-template-page-events .menu-style-1 .menu_wrapper {\n width: 100%;\n text-align: center;\n }\n\n .page-template-page-events .menu-style-1-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .menu-style-1 {\n border-bottom: 0;\n margin-bottom: 32px;\n display: none;\n }\n\n .menu-style-1 .menu_wrapper {\n width: 100%;\n text-align: center;\n }\n}\n\n.menu-style-1 .choices {\n margin: 0;\n}\n\n.menu-style-1 .sort-wrapper {\n margin: 0;\n flex-shrink: 1;\n flex-grow: 0;\n width: 110px;\n}\n\n@media screen and (max-width: 1280px) {\n\n .menu-style-1.has-select {\n border-bottom: 0;\n }\n\n .menu-style-1.has-select .sort-wrapper {\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-end;\n padding: 10px 0;\n border-top: 1px solid #CFCFCF;\n }\n}\n\n.menu-style-1 ul, .menu-style-1 li {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.menu-style-1 ul {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: 24px;\n flex-shrink: 0;\n flex-grow: 1;\n overflow: auto;\n}\n\n@media screen and (max-width: 768px) {\n\n .menu-style-1 ul {\n display: block;\n width: 100%;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .menu-style-1 ul li {\n width: 100%;\n border-bottom: 1px solid #CFCFCF;\n }\n}\n\n.menu-style-1 ul li.checkbox {\n padding-left: 25px;\n border-left: 1px solid #CFCFCF;\n font-weight: 700;\n font-size: 16px;\n line-height: 140%;\n color: #9aaaae;\n cursor: pointer;\n}\n\n@media screen and (max-width: 768px) {\n\n .menu-style-1 ul li.checkbox {\n padding: 15px 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-end;\n border: 0;\n }\n}\n\n.menu-style-1 ul li.checkbox label {\n cursor: pointer;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.menu-style-1 ul li.checkbox input[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n margin: 0;\n font: inherit;\n color: currentColor;\n width: 1.15em;\n height: 1.15em;\n border: 0.15em solid currentColor;\n border-radius: 0.15em;\n transform: translateY(-0.075em);\n display: grid;\n align-content: center;\n justify-content: center;\n place-content: center;\n margin-right: 15px;\n}\n\n.menu-style-1 ul li.checkbox input[type=\"checkbox\"]::before {\n content: \"\";\n width: 0.65em;\n height: 0.65em;\n transform: scale(0);\n transition: 120ms transform ease-in-out;\n box-shadow: inset 1em 1em #042C38;\n}\n\n.menu-style-1 ul li.checkbox input[type=\"checkbox\"]:checked::before {\n transform: scale(1);\n}\n\n.menu-style-1 a {\n font-weight: bold;\n color: #9aaaae;\n display: inline-block;\n padding: 8px 0;\n transition: all 0.2s ease-in;\n border-bottom: 2px solid transparent;\n}\n\n@media screen and (max-width: 768px) {\n\n .menu-style-1 a {\n display: block;\n width: 100%;\n }\n}\n\n.menu-style-1 a.active,.menu-style-1 a:hover {\n color: #042C38;\n border-bottom: 2px solid #D53737;\n}\n\n.menu-style-1 span {\n font-weight: bold;\n color: #9aaaae;\n display: inline-block;\n padding: 8px 0;\n transition: all 0.2s ease-in;\n border-bottom: 2px solid transparent;\n cursor: not-allowed;\n}\n\n.menu-style-1 span.active,.menu-style-1 span:hover {\n color: #042C38;\n border-bottom: 2px solid #D53737;\n}\n\n.menu-style-1.events a {\n color: #042C38;\n}\n\n.follow-menu-style-1 {\n z-index: 9999;\n position: fixed;\n top: -200px;\n left: 0;\n right: 0;\n background: #FFF;\n transition: top 0.3s ease-in-out;\n}\n\n.follow-menu-style-1 .choices {\n margin: 0;\n }\n\n.follow-menu-style-1 p {\n margin: 0;\n }\n\n.follow-menu-style-1 .bg {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 2px solid #E3EAEC;\n padding: 32px 0;\n }\n\n.follow-menu-style-1 .bg ul, .follow-menu-style-1 .bg li {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n\n.follow-menu-style-1 .bg ul {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-start;\n gap: 24px;\n }\n\n.follow-menu-style-1 .bg a {\n font-weight: bold;\n color: #042C38;\n display: inline-block;\n padding: 8px 0;\n transition: all 0.2s ease-in;\n border-bottom: 2px solid transparent\n }\n\n.follow-menu-style-1 .bg a.active,.follow-menu-style-1 .bg a:hover {\n border-bottom: 2px solid #D53737;\n}\n\n.follow-menu-style-1 .bg span {\n font-weight: bold;\n color: #042C38;\n display: inline-block;\n padding: 8px 0;\n transition: all 0.2s ease-in;\n border-bottom: 2px solid transparent;\n cursor: not-allowed\n }\n\n.follow-menu-style-1 .bg span.active,.follow-menu-style-1 .bg span:hover {\n color: #042C38;\n border-bottom: 2px solid #D53737;\n}\n\n.follow-menu-style-1.visible {\n top: 0;\n transition: top 0.3s ease-in-out;\n}\n\n.filter-form .filter-head {\n display: none;\n cursor: pointer;\n color: #D53737;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 20px;\n border-bottom: 2px solid #D53737;\n font-weight: bold;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n }\n\n.filter-form .filter-head .selection {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n }\n\n.filter-form .filter-head .selection .instructions {\n padding-left: 15px;\n color: #cacaca;\n font-size: 12px;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n }\n\n.filter-form .filter-head svg {\n transition: 0.3s all ease;\n transform: rotate(0deg);\n }\n\n.filter-form .filter-head.open svg {\n transform: rotate(90deg);\n}\n\n@media screen and (max-width: 1280px) {\n\n .filter-form .filter-head {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n }\n}\n\n.filter-form .filter-body {\n display: block;\n}\n\n@media screen and (max-width: 1280px) {\n\n .filter-form .filter-body {\n display: none;\n }\n}\n\n.breadcrumb {\n border-top: 1px solid #E3EAEC;\n margin-bottom: 120px;\n padding: 16px 0;\n font-size: 14px;\n overflow: auto;\n}\n\n.breadcrumb > span {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n }\n\n.breadcrumb > span span {\n vertical-align: middle;\n display: inline-block;\n color: #cacaca;\n margin: 0 5px;\n white-space: nowrap\n }\n\n.breadcrumb > span span:first-child {\n margin-left: 0;\n}\n\n.breadcrumb > span span:last-child {\n margin-right: 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n .breadcrumb {\n margin-bottom: 80px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .breadcrumb {\n margin-bottom: 64px;\n }\n}\n\n.breadcrumb a {\n color: #cacaca;\n text-decoration: none;\n white-space: nowrap;\n}\n\n.breadcrumb a:hover {\n text-decoration: underline;\n}\n\n.breadcrumb .breadcrumb_last {\n max-width: 300px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.popup {\n background: rgba(4, 44, 56, .9);\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 9999;\n display: none;\n opacity: 0;\n visibility: hidden;\n overflow: auto;\n transition: all 0.3s ease\n}\n\n.popup.block {\n display: block;\n}\n\n.popup.open {\n opacity: 1;\n visibility: visible;\n}\n\n.popup .modal {\n background: #FFF;\n position: absolute;\n top: 125px;\n right: 32px;\n padding: 70px 135px;\n border-radius: 8px;\n max-width: 800px;\n width: 100%;\n}\n\n@media screen and (max-width: 1024px) {\n\n .popup .modal {\n padding: 60px 100px;\n width: calc(100% - 30px);\n }\n}\n\n@media screen and (max-width: 768px) {\n\n .popup .modal {\n padding: 60px 60px;\n top: 15px;\n right: 15px;\n width: calc(100% - 30px);\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .popup .modal {\n padding: 60px 15px;\n }\n}\n\n.popup .modal .close {\n cursor: pointer;\n position: absolute;\n top: 28px;\n right: 32px;\n}\n\n.submit-news {\n display: grid;\n grid-gap: 24px;\n gap: 24px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n margin: 120px 0;\n overflow: hidden;\n}\n\n@media screen and (max-width: 1280px) {\n\n .submit-news {\n gap: 15px;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n .submit-news {\n margin: 80px 0;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .submit-news {\n margin: 64px 0;\n grid-template-columns: 1fr;\n grid-auto-rows: auto;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .submit-news {\n margin: 32px 0;\n }\n}\n\n.submit-news.end {\n margin: 120px 0 0;\n}\n\n@media screen and (max-width: 1280px) {\n\n .submit-news.end {\n margin: 80px 0 0;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n .submit-news.end {\n margin: 64px 0 0;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .submit-news.end {\n margin: 32px 0 0;\n }\n}\n\n.submit-news .submit-news-text {\n background: rgba(227, 234, 236, .5);\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.submit-news .submit-news-text .tl {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n.submit-news .submit-news-text .tl svg {\n display: block;\n }\n\n@media screen and (max-width: 640px) {\n\n .submit-news .submit-news-text .tl svg {\n width: 300px;\n height: auto;\n }\n}\n\n.submit-news .submit-news-text .br {\n position: absolute;\n bottom: 0;\n right: 0;\n}\n\n.submit-news .submit-news-text .br svg {\n display: block;\n }\n\n@media screen and (max-width: 640px) {\n\n .submit-news .submit-news-text .br svg {\n width: 150px;\n height: auto;\n }\n}\n\n.submit-news .submit-news-text .content {\n position: relative;\n width: 60%;\n margin: 0 auto;\n padding: 64px 0;\n text-align: left;\n}\n\n@media screen and (max-width: 1280px) {\n\n .submit-news .submit-news-text .content {\n width: 80%;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .submit-news .submit-news-text .content {\n width: 100%;\n padding: 46px 30px;\n }\n}\n\n.submit-news .submit-news-text .content .b1 {\n margin-bottom: 20px;\n}\n\n.submit-news .submit-news-text .content .btn {\n display: inline-block;\n}\n\n.submit-news .submit-news-form {\n background: rgba(227, 234, 236, .5);\n position: relative;\n padding: 46px 135px;\n}\n\n@media screen and (max-width: 640px) {\n\n .submit-news .submit-news-form {\n padding: 46px 30px;\n }\n}\n\n.submit-news-v2 {\n background: rgba(227, 234, 236, .5);\n margin: 120px 0;\n position: relative;\n overflow: hidden;\n}\n\n.submit-news-v2 .tl {\n position: absolute;\n top: 0;\n left: 0;\n\n }\n\n.submit-news-v2 .tl svg {\n display: block;\n \n }\n\n@media screen and (max-width: 1024px) {\n\n .submit-news-v2 .tl svg {\n display: none;\n }\n}\n\n.submit-news-v2 .br {\n position: absolute;\n bottom: 0;\n right: 0;\n}\n\n.submit-news-v2 .br svg {\n display: block;\n }\n\n@media screen and (max-width: 1024px) {\n\n .submit-news-v2 .br svg {\n display: none;\n }\n}\n\n.submit-news-v2 .content {\n position: relative;\n width: 60%;\n margin: 0 auto;\n padding: 64px 0;\n text-align: center;\n}\n\n@media screen and (max-width: 768px) {\n\n .submit-news-v2 .content {\n width: 100%;\n padding: 64px 15px;\n }\n}\n\n.submit-news-v2 .content .b1 {\n margin-bottom: 20px;\n}\n\n.submit-news-v2 .content .btn {\n display: inline-block;\n}\n\n.submit-news-small-v2 {\n background: rgba(227, 234, 236, .5);\n margin: 0 0 64px;\n position: relative;\n overflow: hidden;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n border-radius: 8px;\n}\n\n.submit-news-small-v2 h5 {\n margin: 0;\n }\n\n.related_news {\n padding: 54px 0;\n border-top: 1px solid #CFCFCF;\n}\n\n@media screen and (max-width: 640px) {\n\n .related_news h3 {\n font-size: 28px;\n }\n}\n\n.related_news .h2 {\n margin: 0;\n}\n\n.related_news .card-roll {\n padding: 40px 0;\n display: grid;\n grid-gap: 24px;\n gap: 24px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n\n@media screen and (max-width: 1280px) {\n\n .related_news .card-roll {\n max-width: 750px;\n margin: 0 auto;\n grid-template-columns: 1fr 1fr;\n }\n\n .related_news .card-roll .s1 {\n font-size: 26px;\n }\n\n .related_news .card-roll .s2 {\n font-size: 22px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .related_news .card-roll {\n grid-template-columns: 1fr;\n }\n}\n\n.related_projects {\n padding: 54px 0;\n border-top: 1px solid #CFCFCF;\n}\n\n.related_projects .h2 {\n margin: 0;\n }\n\n.related_projects .card-roll{\n padding: 40px 0;\n display: grid;\n grid-gap: 24px;\n gap: 24px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n }\n\n@media screen and (max-width: 1280px) {\n\n .related_projects .card-roll {\n grid-template-columns: 1fr;\n max-width: 800px;\n margin: 0 auto;\n }\n}\n\n.image-wrapper {\n width: 100%;\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.image-wrapper .position {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n.image-wrapper img {\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n }\n\n.image-wrapper .hover-element {\n position: absolute;\n bottom: -80px;\n padding: 10px;\n left: 0;\n right: 0;\n transition: all 0.3s ease;\n z-index: 5;\n }\n\n.image-wrapper .hover-element p {\n margin: 0;\n background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, .2)), to(rgba(0, 0, 0, .2))), rgba(255, 255, 255, .5);\n background: linear-gradient(0deg, rgba(0, 0, 0, .2), rgba(0, 0, 0, .2)), rgba(255, 255, 255, .5);\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n border-radius: 4px;\n display: block;\n width: 100%;\n font-style: normal;\n font-weight: 700;\n font-size: 14px;\n line-height: 100%;\n padding: 8px;\n text-align: center;\n color: #FFF;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n.image-wrapper .hover-element p span {\n display: inline-block;\n }\n\n.image-wrapper .hover-element p svg {\n display: inline-block;\n\n }\n\na:hover .image-wrapper .hover-element {\n bottom: 0px;\n }\n\n/* Custom Image Styles */\n\n.is-style-rounded-corners img{\n border-radius: 8px;\n}\n\n.btn {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 10px 16px;\n border-radius: 8px;\n line-height: 140%;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-weight: bold;\n cursor: pointer;\n border:0;\n gap: 12px;\n transition: all 0.3s ease-in;\n}\n\n.btn svg path {\n transition: all 0.3s ease-in;\n }\n\n.btn.btnTransparent {\n background: transparent;\n color: #081C24;\n}\n\n.btn.btnTransparent:hover {\n background: #CFCFCF;\n}\n\n.btn.btnRed {\n background: #D53737;\n color: #FFF;\n}\n\n.btn.btnRed:hover {\n background: #951414;\n}\n\n.btn.btnLightRed {\n background: #FBECEC;\n color: #081C24;\n}\n\n.btn.btnLightRed:hover {\n background: #D53737;\n color: #FFF;\n}\n\n.btn.btnLightRed:hover svg path {\n stroke: #FFF;\n }\n\n.btn.btnTeal {\n background: #387E97;\n color: #FFF;\n}\n\n.btn.btnTeal:hover {\n background: #1a3e4b;\n}\n\n.btn.arrow {\n color:#D53737;\n background: transparent url(" + ___CSS_LOADER_URL_REPLACEMENT_67___ + ") center right no-repeat;\n padding-right: 20px;\n padding-left: 0;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.btn.arrow:hover {\n padding-right: 25px;\n}\n\n.btn.arrowBlue {\n color:#042C38;\n background: transparent url(" + ___CSS_LOADER_URL_REPLACEMENT_68___ + ") center right no-repeat;\n padding-right: 20px;\n padding-left: 0;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.btn.arrowBlue:hover {\n padding-right: 25px;\n}\n\n.btn.btnTransparentRed {\n color:#D53737;\n background: transparent;\n border: 1px solid #D53737;\n padding: 6px 16px;\n font-size: 14px;\n border-radius: 4px;\n}\n\n.btn.btnTransparentRed:hover {\n background: #D53737;\n color: #FFF;\n}\n\n.missing-image {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 190px\n}\n\n.missing-image.medium {\n font-size: 100px;\n}\n\n.missing-image.small {\n font-size: 60px;\n}\n\n.missing-image.tiny {\n font-size: 14px;\n}\n\n.missing-image.large {\n font-size: 260px;\n}\n\n.missing-image.feature-newsletter-image {\n flex-direction: column;\n gap: 3px;\n}\n\n.missing-image.feature-newsletter-image .large {\n font-size: 80px;\n font-weight: bold;\n line-height: 100%;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n}\n\n.missing-image.feature-newsletter-image .small {\n font-size: 35px;\n line-height: 100%;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n}\n\n.missing-image.dark {\n background: #081C24;\n color: #FFF;\n}\n\n.missing-image.midnight {\n background: #042C38;\n color: #FFF;\n}\n\n.missing-image.teal {\n background: #387E97;\n color: #FFF;\n}\n\n.missing-image.blue-sapphire {\n background: #015C77;\n color: #FFF;\n}\n\n.missing-image.red {\n background: #D53737;\n color: #FFF;\n}\n\n.missing-image.dark-red {\n background: #BB1A1A;\n color: #FFF;\n}\n\n.missing-image.lavender-blush {\n background: #FBECEC;\n color: #042C38;\n}\n\n.missing-image.salmon {\n background: #FCD3D3;\n color: #042C38;\n}\n\n.missing-image.alice-blue {\n background: #E3EAEC;\n color: #042C38;\n}\n\n.missing-image.gray {\n background: #CFCFCF;\n color: #042C38;\n}\n\n.animated-circle {\n height: 80px;\n position: relative;\n}\n\n.animated-circle svg {\n position: absolute;\n width: 72%;\n height: auto;\n }\n\n.animated-circle svg circle {\n stroke-dasharray: 2075;\n stroke-dashoffset: 2075;\n transition: all 5s ease-in-out;\n }\n\n.animated-circle.start svg circle {\n stroke-dashoffset: 0;\n }\n\n@media screen and (max-width: 1280px) {\n\n .animated-circle {\n display: none;\n }\n}\n\n@keyframes dash {\n to {\n stroke-dashoffset: 0;\n }\n from {\n stroke-dashoffset: 2075;\n }\n}\n\n.animated-circle-2 {\n position: relative;\n}\n\n@media screen and (max-width: 1024px) {\n\n .animated-circle-2 {\n display: none;\n }\n}\n\n.animated-circle-2 svg {\n position: absolute;\n top: 310px;\n}\n\n.animated-circle-2 svg path {\n stroke-dasharray: 1200;\n stroke-dashoffset: -1200;\n transition: all 5s ease-in-out;\n }\n\n.animated-circle-2.start svg path {\n stroke-dashoffset: 0;\n }\n\n.animated-circle-3 {\n position: relative;\n}\n\n.animated-circle-3 svg {\n position: absolute;\n top: 310px;\n }\n\n.animated-circle-3 svg rect {\n stroke-dasharray: 1200;\n stroke-dashoffset: -1200;\n transition: all 5s ease-in-out;\n }\n\n@media screen and (max-width: 1024px) {\n\n .animated-circle-3 {\n display: none;\n }\n}\n\n.animated-circle-3.start svg rect {\n stroke-dashoffset: 0;\n }\n\n.animated-circle-4 {\n position: relative;\n}\n\n.animated-circle-4 svg {\n position: absolute;\n top: 310px;\n }\n\n.animated-circle-4 svg path {\n stroke-dasharray: 900;\n stroke-dashoffset: -900;\n transition: all 5s ease-in-out;\n }\n\n@media screen and (max-width: 1024px) {\n\n .animated-circle-4 {\n display: none;\n }\n}\n\n.animated-circle-4.start svg path {\n stroke-dashoffset: 0;\n }\n\n.animated-circle-5 {\n position: relative;\n}\n\n.animated-circle-5 svg {\n position: absolute;\n top: 610px;\n }\n\n.animated-circle-5 svg path {\n stroke-dasharray: 650;\n stroke-dashoffset: -650;\n transition: all 5s ease-in-out;\n }\n\n.animated-circle-5.low svg {\n top: 1010px;\n}\n\n@media screen and (max-width: 1024px) {\n\n .animated-circle-5 {\n display: none;\n }\n}\n\n.animated-circle-5.start svg path {\n stroke-dashoffset: 0;\n }\n\n.animated-oval {\n position: relative;\n}\n\n.animated-oval svg {\n position: absolute;\n right: -100px;\n top: -200px;\n }\n\n.animated-oval svg rect {\n stroke-dasharray: 3050;\n stroke-dashoffset: 3050;\n transition: all 5s linear;\n }\n\n.animated-oval.start svg rect {\n stroke-dashoffset: 0;\n }\n\n@media screen and (max-width: 1280px) {\n\n .animated-oval {\n display: none;\n }\n}\n\n@keyframes dash {\n to {\n stroke-dashoffset: 0;\n }\n from {\n stroke-dashoffset: 3050;\n }\n}\n\n.z1 {\n z-index: 100;\n position: relative;\n}\n\n.z2 {\n z-index: 200;\n position: relative;\n}\n\n.z3 {\n z-index: 300;\n position: relative;\n}\n\n.z4 {\n z-index: 400;\n position: relative;\n}\n\n.z5 {\n z-index: 500;\n position: relative;\n}\n\n.page_not_found {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 80px 0;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.form .sidebar .form-reset-button {\n position: absolute;\n right: 15px;\n top: 50%;\n margin-top: -10px;\n cursor: pointer;\n visibility: hidden;\n opacity: 0;\n transition: all 0.3s ease\n }\n\n.form .sidebar .form-reset-button.visible {\n visibility: visible;\n opacity: 1;\n}\n\n.form .sidebar label {\n position: relative;\n background: #F5F5F5;\n border-radius: 8px;\n color: #042C38;\n padding: 18px 16px;\n width: 100%;\n margin: 0;\n }\n\n.form .sidebar .input-wrapper {\n position: relative;\n margin-bottom: 2px;\n }\n\n.form .sidebar .input-wrapper .choices {\n overflow: visible;\n }\n\n.form .sidebar .input-wrapper .choices .choices__inner {\n background: #F5F5F5;\n border-radius: 8px;\n color: #042C38;\n border: none;\n min-height: 56px;\n padding: 12.5px 7.5px;\n font-size: 16px;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-weight: 500;\n }\n\n.form .sidebar .input-wrapper .choices .choices__item {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n.form .sidebar .input-wrapper .choices .choices__list--dropdown, .form .sidebar .input-wrapper .choices .choices__list[aria-expanded] {\n width: auto;\n min-width: 100%;\n max-width: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n.form .sidebar .input-wrapper .choices[data-type*=\"select-one\"]::after {\n border: none;\n content: \"\";\n margin-top: -3px;\n pointer-events: none;\n position: absolute;\n right: 11.5px;\n top: 50%;\n width: 12px;\n height: 6px;\n background: url(" + ___CSS_LOADER_URL_REPLACEMENT_69___ + ");\n background-size: 12px 6px;\n}\n\n.form .sidebar .input-wrapper .choices[data-type*=\"select-one\"].is-open::after {\n transform: rotate(180deg);\n}\n\n.form .sidebar .input-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable\n {\n padding-right: 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 13px;\n }\n\n.form .sidebar .input-wrapper .choices[data-type*=select-one] > .choices__list > .choices__list > .choices__item--selectable::after\n {\n display: none;\n }\n\n.form .sidebar .input-wrapper input {\n width: 100%;\n height: 56px;\n border-radius: 8px;\n font-weight: 500;\n line-height: 1.4;\n color: #081C24;\n padding: 12.5px 7.5px;\n border: none;\n background: #F5F5F5 url(" + ___CSS_LOADER_URL_REPLACEMENT_70___ + ") center right+16px no-repeat;\n }\n\n.form .sidebar .input-wrapper .submit {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 10px 16px;\n background: #387E97;\n border-radius: 8px;\n\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 140%;\n color: #FFF;\n display: block;\n border: none;\n width: 100%;\n\n cursor: pointer;\n }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled textarea, \n html .body-wrapper .form_embed .cog-cognito--styled select, \n html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"], \n html .body-wrapper .form_embed .cog-cognito--styled textarea, \n html .body-wrapper .form_embed .cog-cognito--styled select, \n html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea, \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select, \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea, \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select, \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"], \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"] {\n background: transparent;\n border: 0;\n border-bottom: 1px solid #387E97;\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 120%;\n color: #042C38\n }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled textarea:focus, html .body-wrapper .form_embed .cog-cognito--styled select:focus, html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled textarea:focus, html .body-wrapper .form_embed .cog-cognito--styled select:focus, html .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, html .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled textarea:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled select:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled input[type=\"text\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"tel\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"password\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"date\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"email\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"url\"]:focus, :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled [type=\"time\"]:focus {\n box-shadow: none;\n}\n\nhtml .body-wrapper .form_embed .cog-form__container,\n html .body-wrapper .form_embed .cog-form__container,\n :root:root:root:root:root .body-wrapper .form_embed .cog-form__container,\n :root:root:root:root:root .body-wrapper .form_embed .cog-form__container {\n background: transparent;\n }\n\n/*\n .cog-label, \n .cog-label {\n display: none;\n }\n */\n\nhtml .body-wrapper .form_embed .cog-row .cog-col:not(td), :root:root:root:root:root .body-wrapper .form_embed .cog-row .cog-col:not(td) {\n width: 100%;\n }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n html .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button,\n html .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n html .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button,\n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button,\n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--primary,\n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-page__navigation .cog-button {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 10px 24px;\n border-radius: 8px;\n line-height: 140%;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-weight: bold;\n cursor: pointer;\n border: 0;\n gap: 12px;\n transition: all 0.3s ease-in;\n color: #FFF;\n background: #D53737;\n }\n\nhtml .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary, \n html .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary, \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary, \n :root:root:root:root:root .body-wrapper .form_embed .cog-cognito--styled .cog-button--secondary {\n background: #387E97;\n border: 1px solid #387E97;\n border-radius: 2px;\n padding: 2px 10px;\n color: #FFF;\n line-height: 140%;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-weight: bold;\n }\n\nhtml .body-wrapper .form_embed .cog-checkable .el-radio__label.el-radio__label, \n html .body-wrapper .form_embed .cog-checkable .el-checkbox__label.el-checkbox__label, \n :root:root:root:root:root .body-wrapper .form_embed .cog-checkable .el-radio__label.el-radio__label, \n :root:root:root:root:root .body-wrapper .form_embed .cog-checkable .el-checkbox__label.el-checkbox__label {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 140%;\n color: #042C38;\n }\n\n.pagination-load-more {\n text-align: center;\n padding: 120px 0 0;\n}\n\n@media screen and (max-width: 1024px) {\n\n .pagination-load-more {\n padding: 80px 0 0;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n .pagination-load-more {\n padding: 64px 0 0;\n }\n}\n\n.pagination-load-more a {\n padding:12px 24px;\n background: #387E97;\n color: #FFF;\n display: inline-block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%;\n border-radius: 8px;\n text-align: center;\n}\n\n.pagination-load-more a.hidden {\n display: none;\n}\n\n.pagination-numbers {\n padding-top: 80px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n}\n\n.pagination-numbers .page-numbers {\n padding: 6px 8px;\n color: #042C38;\n opacity: 0.5; \n transition: all 0.3s ease;\n border: 1px solid transparent;\n border-radius: 4px\n }\n\n.pagination-numbers .page-numbers.next,.pagination-numbers .page-numbers.prev {\n padding: 0;\n border: 0;\n opacity: 1;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n}\n\n.pagination-numbers .page-numbers:hover {\n opacity: 1;\n border: 1px solid #042C38;\n}\n\n.pagination-numbers .page-numbers:hover.next,.pagination-numbers .page-numbers:hover.prev {\n border: 0;\n opacity: 0.5;\n}\n\n.pagination-numbers .page-numbers.current {\n opacity: 1;\n border: 1px solid #042C38;\n}\n\n.wp-block-audio {\n margin-bottom: 25px;\n}\n\n.wp-block-embed {\n margin-bottom: 25px;\n}\n\n.wp-element-caption {\n font-size: 14px;\n}\n\n.wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper{ \n position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%;\n}\n\n.wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper iframe, .wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper object, .wp-block-embed.is-type-video.is-provider-youtube .wp-block-embed__wrapper embed { \n position: absolute; top: 0; left: 0; width: 100%; height: 100%; \n }\n\n.special_underline {\n background: transparent url(" + ___CSS_LOADER_URL_REPLACEMENT_71___ + ") 0 0 no-repeat;\n background-size: auto 100%;\n display: block;\n padding: 2px 0 2px 37px;\n margin: 0 0 25px;\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 120%;\n color: #387E97;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n#login-popup.load-login {\n position: fixed;\n z-index: 99999999;\n top:0;\n right: 0;\n bottom: 0;\n left: 0;\n background: rgba(0, 0, 0, .55);\n display: none;\n visibility: hidden;\n opacity: 0;\n transition: all 0.3s ease;\n width: 100%;\n height: 100%;\n}\n\n#login-popup.load-login .open-login-popup {\n cursor: pointer;\n position: absolute;\n top: 15px;\n right: 15px;\n width: 24px;\n height: 24px;\n}\n\n#login-popup.load-login .modal {\n position: fixed;\n z-index: 99999999;\n top:120px;\n left: 50%;\n margin-left: -200px;\n background: #FFF;\n display: none;\n visibility: hidden;\n opacity: 0;\n transition: all 0.6s ease;\n border-radius: 8px;\n box-shadow: 5px 5px 15px 0px rgba(0, 0, 0, .15);\n padding: 30px;\n max-width: 400px;\n width: 100%;\n}\n\n@media screen and (max-width: 400px) {\n\n #login-popup.load-login .modal {\n left: 15px;\n right: 15px;\n width: auto;\n margin-left: 0;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n #login-popup.load-login {\n }\n}\n\n#login-popup.load-login.open {\n display: block;\n}\n\n#login-popup.load-login.open .modal {\n display: block;\n}\n\n#login-popup.load-login.open.animate {\n visibility: visible;\n opacity: 1;\n}\n\n#login-popup.load-login.open.animate .modal {\n visibility: visible;\n opacity: 1;\n top: 40px;\n}\n\n#login-popup.load-account {\n position: fixed;\n z-index: 99999999;\n top:0;\n right: 0;\n bottom: 0;\n left: 0;\n background: rgba(0, 0, 0, .55);\n display: none;\n visibility: hidden;\n opacity: 0;\n transition: all 0.3s ease;\n width: 100%;\n height: 100%;\n}\n\n#login-popup.load-account .open-login-popup {\n cursor: pointer;\n position: absolute;\n top: 15px;\n right: 15px;\n width: 24px;\n height: 24px;\n}\n\n#login-popup.load-account .modal {\n position: fixed;\n z-index: 99999999;\n top:120px;\n left: 50%;\n margin-left: -200px;\n background: #FFF;\n display: none;\n visibility: hidden;\n opacity: 0;\n transition: all 0.6s ease;\n border-radius: 8px;\n box-shadow: 5px 5px 15px 0px rgba(0, 0, 0, .15);\n padding: 30px;\n max-width: 400px;\n width: 100%;\n}\n\n@media screen and (max-width: 400px) {\n\n #login-popup.load-account .modal {\n left: 15px;\n right: 15px;\n width: auto;\n margin-left: 0;\n }\n}\n\n#login-popup.load-account.open {\n display: block;\n}\n\n#login-popup.load-account.open .modal {\n display: block;\n}\n\n#login-popup.load-account.open.animate {\n visibility: visible;\n opacity: 1;\n}\n\n#login-popup.load-account.open.animate .modal {\n visibility: visible;\n opacity: 1;\n top: 120px;\n}\n\n.page-template-page-home .breadcrumb {\n display: none;\n }\n\nhtml #funding .single-detail {\n max-width: 800px;\n margin: 0 auto 0;\n\n }\n\n@media screen and (max-width: 1024px) {\n\n html #funding .single-detail {\n margin: 0 auto 0;\n }\n}\n\nhtml #funding .single-detail .free-input h1,html #funding .single-detail .free-input .h1 {\n font-size: 50px;\n }\n\n@media screen and (max-width: 768px) {\n\n html #funding .single-detail .free-input h1,html #funding .single-detail .free-input .h1 {\n font-size: 38px;\n }\n}\n\nhtml #funding .single-detail .free-input h2,html #funding .single-detail .free-input .h2 {\n font-size: 32px;\n}\n\nhtml #funding .single-detail .free-input h3,html #funding .single-detail .free-input .h3 {\n font-size: 22px;\n}\n\nhtml #funding .single-detail .free-input h4,html #funding .single-detail .free-input .h4 {\n font-size: 18px;\n}\n\nhtml #funding .single-detail .free-input h5,html #funding .single-detail .free-input .h5 {\n font-size: 16px;\n}\n\nhtml #funding .single-detail .free-input h6,html #funding .single-detail .free-input .h6 {\n font-size: 16px;\n}\n\nhtml #funding .meta-title {\n font-size: 14px;\n color: #387E97;\n margin: 0 0 15px;\n}\n\nhtml #funding .main-title {\n margin: 0 0 32px;\n}\n\nhtml #funding .contact {\n margin-top: 80px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: 0 24px;\n}\n\n@media screen and (max-width: 1024px) {\n\n html #funding .contact {\n margin-top: 32px;\n }\n}\n\nhtml #funding .contact p {\n margin: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 0 8px;\n align-items: center;\n}\n\nhtml #funding .contact p a {\n border: 1px solid #CFCFCF;\n padding: 6px 14px;\n color: #081C24;\n transition: all 0.3s ease-in;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin-left: 8px;\n gap: 0 8px;\n align-items: center\n }\n\nhtml #funding .contact p a:hover {\n background: #CFCFCF;\n}\n\n@media screen and (max-width: 1024px) {\n\n html #funding .submit-news-v2 {\n margin: 64px 0;\n }\n}\n\nhtml #funding .submission_form {\n display: grid;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n padding: 0px;\n grid-gap: 24px;\n gap: 24px;\n}\n\n@media screen and (max-width: 1024px) {\n\n html #funding .submission_form {\n grid-template-columns: 1fr;\n grid-auto-rows: auto;\n display: block;\n }\n}\n\nhtml #funding .submission_form .form_content {\n background: rgba(227, 234, 236, .5);\n flex-shrink: 0;\n flex-basis: 50%;\n padding: 110px 120px;\n position: relative;\n overflow: hidden;\n border-radius: 8px;\n}\n\n@media screen and (max-width: 1280px) {\n\n html #funding .submission_form .form_content {\n padding: 80px 60px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n html #funding .submission_form .form_content {\n margin-bottom: 60px;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n html #funding .submission_form .form_content {\n padding: 80px 15px;\n }\n}\n\nhtml #funding .submission_form .form_content .bg {\n position: absolute;\n top: 0;\n left: 0;\n}\n\nhtml #funding .submission_form .form_content p {\n color: #042C38;\n}\n\nhtml #funding .submission_form .form_embed {\n background: rgba(227, 234, 236, .5);\n border-radius: 8px;\n flex-shrink: 0;\n flex-basis: 50%;\n padding: 110px 120px;\n}\n\n@media screen and (max-width: 1280px) {\n\n html #funding .submission_form .form_embed {\n padding: 80px 60px;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n html #funding .submission_form .form_embed {\n padding: 80px 15px;\n }\n}\n\n#stories-of-change .card-wrapper {\n border-top: 1px solid #E3EAEC;\n padding-top: 120px;\n display: grid;\n grid-gap: 120px 20px;\n gap: 120px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 2fr 7fr;\n }\n\n@media screen and (max-width: 768px) {\n\n #stories-of-change .card-wrapper {\n grid-template-columns: 1fr 7fr;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #stories-of-change .card-wrapper {\n grid-template-columns: 1fr;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #stories-of-change .card-wrapper .year-warpper {\n display: none;\n }\n}\n\n#stories-of-change .card-wrapper .year-warpper .sticky {\n position: sticky;\n top: 120px;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li {\n margin: 0 0 24px;\n }\n\n@media screen and (max-width: 768px) {\n\n #stories-of-change .card-wrapper .year-warpper ul li {\n margin: 0 0 12px;\n }\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span {\n display: inline-block;\n margin: 0;\n cursor: pointer;\n transition: all 0.3s ease-in;\n}\n\n@media screen and (max-width: 768px) {\n\n #stories-of-change .card-wrapper .year-warpper ul li span {\n font-size: 30px;\n }\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-1 {\n opacity: 1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-2 {\n opacity: 0.5;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-3 {\n opacity: 0.3;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-4 {\n opacity: 0.2;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-5 {\n opacity: 0.1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-6 {\n opacity: 0.1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.pos-7 {\n opacity: 0.1;\n}\n\n#stories-of-change .card-wrapper .year-warpper ul li span.active, #stories-of-change .card-wrapper .year-warpper ul li span:hover, #stories-of-change .card-wrapper .year-warpper ul li span:focus {\n color: #D53737;\n opacity: 1;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card {\n display: grid;\n grid-gap: 0px 80px;\n gap: 0px 80px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 120px;\n }\n\n@media screen and (max-width: 640px) {\n\n #stories-of-change .card-wrapper .cards .impact-story-card {\n grid-template-columns: 1fr;\n margin-bottom: 32px;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n #stories-of-change .card-wrapper .cards .impact-story-card {\n gap: 0px 32px;\n }\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap {\n width: 100%;\n padding-top: 40px;\n border-top: 2px solid #042C38;\n transition: all 0.3s ease;\n }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap span {\n margin: 0 0 12px;\n }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .metadata {\n color: #387E97;\n display: block;\n margin: 0 0 15px;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .metadata .ellipse {\n width: 6px;\n height: 6px;\n display: inline-block;\n background: #387E97;\n margin: 0 8px;\n border-radius: 90px;\n }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .h5 {\n margin: 0 0 40px;\n }\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .button-wrapper {\n transition: all 0.3s ease-in;\n opacity: 0;\n }\n\n@media screen and (max-width: 640px) {\n\n #stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .button-wrapper {\n opacity: 1;\n }\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .content-wrapper .wrap .button-wrapper .btn {\n display: inline-block;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card .image-wrapper {\n padding-bottom: 65%;\n}\n\n#stories-of-change .card-wrapper .cards .impact-story-card:hover .content-wrapper .wrap {\n border-top: 2px solid #D53737;\n }\n\n#stories-of-change .card-wrapper .cards .impact-story-card:hover .content-wrapper .wrap .button-wrapper {\n opacity: 1;\n }\n\n#FAQ {\n padding-bottom: 60px;\n}\n\n#FAQ .menu-style-1 {\n justify-content: flex-start;\n }\n\n#FAQ .menu-style-1 .menu_wrapper {\n flex-basis: 652px;\n flex-shrink: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-start;\n \n }\n\n@media screen and (max-width: 1024px) {\n\n #FAQ .menu-style-1 .menu_wrapper {\n flex-basis: 100%;\n }\n}\n\n#FAQ .menu-style-1 ul {\n justify-content: flex-start;\n}\n\n#FAQ .align-right {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: flex-end;\n flex-direction: column;\n align-items: flex-start;\n}\n\n#FAQ .align-right .faq_card {\n max-width: 652px;\n width: 100%;\n background: rgba(227, 234, 236, .5);\n border-radius: 8px;\n margin-bottom: 24px;\n }\n\n@media screen and (max-width: 1024px) {\n\n #FAQ .align-right .faq_card {\n max-width: 100%;\n }\n}\n\n#FAQ .align-right .faq_card .title {\n margin: 0;\n position: relative;\n padding: 40px;\n cursor: pointer;\n}\n\n#FAQ .align-right .faq_card .title svg {\n position: absolute;\n right: 0px;\n top: 0px;\n transform: rotate(0deg);\n transition: all 0.3s ease;\n }\n\n#FAQ .align-right .faq_card .title h3 {\n margin: 0;\n padding-right: 30px;\n position: relative;\n }\n\n#FAQ .align-right .faq_card .body {\n display: none;\n padding: 0 40px 40px;\n}\n\n#FAQ .align-right .faq_card .body a {\n color: #042C38;\n text-decoration: underline\n }\n\n#FAQ .align-right .faq_card .body a:hover {\n text-decoration: none;\n}\n\n#FAQ .align-right .faq_card.open .title svg {\n transform: rotate(180deg);\n }\n\n#contact .wrap {\n display: grid;\n grid-gap: 20px 120px;\n gap: 20px 120px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n padding-bottom: 120px;\n }\n\n@media screen and (max-width: 1024px) {\n\n #contact .wrap {\n grid-template-columns: 1fr;\n grid-auto-rows: auto;\n }\n}\n\n#contact h1 {\n margin-bottom: 80px;\n}\n\n#contact .content p {\n margin: 10px 0;\n }\n\n#contact .content p strong {\n font-size: 18px;\n }\n\n#auth-page {\n padding: 120px 0;\n}\n\n@media screen and (max-width: 640px) {\n\n #auth-page {\n padding: 64px 0;\n }\n}\n\n#auth-page .title-wrapper p {\n font-size: 12px;\n color: #848484;\n margin: 15px 0;\n }\n\n#auth-page .title-wrapper p a {\n text-decoration: underline;\n color: #848484\n }\n\n#auth-page .title-wrapper p a:hover {\n text-decoration: none;\n}\n\n#auth-page .main {\n display: grid;\n grid-gap: 40px 20px;\n gap: 40px 20px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n}\n\n@media screen and (max-width: 640px) {\n\n #auth-page .main {\n grid-auto-rows: auto;\n grid-template-columns: 1fr;\n }\n}\n\n#employment .employment_wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: flex-start;\n justify-content: flex-end;\n margin-bottom: 80px;\n }\n\n#employment .employment_wrapper .content {\n flex-shrink: 0;\n width: 50%;\n }\n\n@media screen and (max-width: 1280px) {\n\n #employment .employment_wrapper .content {\n width: 100%;\n }\n}\n\n#employment .employment_wrapper .content h5 {\n font-size: 22px;\n}\n\n#employment .employment_wrapper .content h6 {\n font-size: 14px;\n line-height: 100%;\n text-transform: uppercase;\n color: #387E97;\n margin: 0 0 15px;\n}\n\n#employment .employment_wrapper .content ul,#employment .employment_wrapper .content ol {\n margin: 15px 0 25px;\n padding-left: 15px;\n}\n\n#employment .employment_wrapper .content ul li, #employment .employment_wrapper .content ol li {\n margin-bottom: 5px;\n }\n\n#employment .employment_wrapper .content ul {\n list-style-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_64___ + ");\n position: relative;\n padding-left: 15px;\n}\n\n#employment .employment_wrapper .content ul li {\n position: relative;\n padding-left: 15px;\n margin-bottom: 0;\n padding-bottom: 15px\n }\n\n#employment .employment_wrapper .content ul li:before {\n content: \"\";\n position: absolute;\n left: -15px;\n top: 15px;\n height: calc(100% - 13px);\n display: block;\n width: 1px;\n background: #E3E5E6;\n}\n\n#employment .employment_wrapper .content ul li:last-child:before {\n height: calc(100% - 30px);\n}\n\n#organisation {\n padding-bottom: 120px;\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation {\n padding-bottom: 64px;\n }\n}\n\n#organisation .free-input > p:first-child strong {\n font-size: 20px;\n }\n\n#organisation .free-input p {\n margin-bottom: 30px;\n }\n\n#organisation .infographics {\n padding-top: 120px;\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .infographics {\n padding-top: 64px;\n }\n}\n\n#organisation .infographics .infographic_row_title {\n margin: 0 0 64px;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .infographics .infographic_row_title {\n margin: 0 0 32px;\n }\n}\n\n#organisation .infographics .infographic_row {\n margin-bottom: 80px;\n display: grid;\n grid-gap: 80px 16px;\n gap: 80px 16px;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr 1fr;\n}\n\n#organisation .infographics .infographic_row:last-child {\n margin-bottom: 0;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .infographics .infographic_row {\n grid-template-columns: 1fr 1fr;\n gap: 16px 16px;\n margin-bottom: 64px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .infographics .infographic_row {\n grid-template-columns: 1fr;\n }\n}\n\n#organisation .infographics .infographic_row .icon {\n background: #FBECEC;\n text-align: center;\n border-radius: 8px;\n padding: 60px 15px 64px;\n}\n\n#organisation .infographics .infographic_row .icon .image {\n height: 180px;\n }\n\n@media screen and (max-width: 1280px) {\n\n #organisation .infographics .infographic_row .icon .image {\n height: 120px;\n }\n}\n\n#organisation .infographics .infographic_row .icon .image img {\n height: 100%;\n width: auto;\n}\n\n#organisation .infographics .infographic_row .icon .content-wrapper p {\n margin: 0;\n }\n\n@media screen and (max-width: 1280px) {\n\n #organisation .infographics .infographic_row .icon .content-wrapper p {\n font-size: 14px;\n }\n}\n\n#organisation .location-map {\n padding-top: 120px;\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .location-map {\n padding-top: 64px;\n }\n}\n\n#organisation .location-map .map-title h3 {\n margin: 0 0 80px;\n }\n\n@media screen and (max-width: 1024px) {\n\n #organisation .location-map .map-title h3 {\n margin: 0 0 32px;\n }\n}\n\n#organisation .location-map .map-wrapper {\n display: grid;\n grid-gap: 0 160px;\n gap: 0 160px;\n grid-auto-rows: auto;\n grid-template-columns: 1fr 1fr;\n padding: 75px 100px;\n background: #F1F5F6;\n}\n\n@media screen and (max-width: 1536px) {\n\n #organisation .location-map .map-wrapper {\n padding: 50px 75px;\n gap: 0 100px;\n }\n}\n\n@media screen and (max-width: 1280px) {\n\n #organisation .location-map .map-wrapper {\n padding: 25px 50px;\n gap: 0 40px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .location-map .map-wrapper {\n grid-template-columns: 1fr;\n }\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper {\n position: relative;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .location-map .map-wrapper .map-image-wrapper {\n max-width: 600px;\n width: 100%;\n margin: 0 auto 40px;\n }\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper img {\n width: 100%;\n height: auto;\n /*filter: drop-shadow(156px 123px 79px rgba(0, 0, 0, 0.01)) \n drop-shadow(88px 69px 67px rgba(0, 0, 0, 0.05)) \n drop-shadow(39px 31px 50px rgba(0, 0, 0, 0.09)) \n drop-shadow(10px 8px 27px rgba(0, 0, 0, 0.1)) \n drop-shadow(0px 0px 0px rgba(0, 0, 0, 0.1));*/\n border-radius: 1000px;\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper .location-icon {\n position: absolute;\n background: #87ABB6;\n /*backdrop-filter: blur(4px);*/\n border-radius: 100px;\n color: #042C38;\n font-style: normal;\n font-weight: 700;\n font-size: 12px;\n line-height: 140%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: center;\n /*border-top: 0.5px solid #fff;*/\n transform: scale(1);\n transition: all 0.3s ease;\n cursor: pointer;\n\n width: 28px;\n height: 28px;\n margin-top: -14px;\n margin-left: -14px;\n}\n\n#organisation .location-map .map-wrapper .map-image-wrapper .location-icon:hover,\n #organisation .location-map .map-wrapper .map-image-wrapper .location-icon.active {\n background: #D53737;\n color: #FFF;\n transform: scale(1.5);\n}\n\n#organisation .location-map .location-list .location-name {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin-bottom: 8px;\n cursor: pointer;\n }\n\n#organisation .location-map .location-list .location-name .number {\n width: 56px;\n height: 65px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #E3EAEC;\n border-radius: 8px;\n flex-grow: 0;\n flex-shrink: 0;\n font-weight: 400;\n font-size: 14px;\n line-height: 140%;\n transition: all 0.3s ease;\n\n }\n\n@media screen and (max-width: 640px) {\n\n #organisation .location-map .location-list .location-name .number {\n height: auto;\n padding: 10px 0px 10px 0px;\n }\n}\n\n#organisation .location-map .location-list .location-name .name {\n position: relative;\n height: 65px;\n min-width: calc(100% - 56px);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n border: 1px solid #E3EAEC;\n border-radius: 8px;\n padding: 0 40px 0 24px;\n font-weight: 400;\n font-size: 14px;\n line-height: 140%;\n transition: all 0.3s ease;\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .location-map .location-list .location-name .name {\n height: auto;\n padding: 10px 40px 10px 24px;\n }\n}\n\n#organisation .location-map .location-list .location-name .name svg {\n opacity: 0;\n visibility: hidden;\n transition: all 0.3s ease;\n position: absolute;\n top: 50%;\n margin-top: -12px;\n right: 15px;\n}\n\n#organisation .location-map .location-list .location-name:hover .number, #organisation .location-map .location-list .location-name.active .number {\n border: 1px solid #D53737;\n}\n\n#organisation .location-map .location-list .location-name:hover .name, #organisation .location-map .location-list .location-name.active .name {\n border: 1px solid #D53737;\n}\n\n#organisation .location-map .location-list .location-name:hover .name svg, #organisation .location-map .location-list .location-name.active .name svg {\n opacity: 1;\n visibility: visible;\n }\n\n#organisation .structure {\n background: #042C38;\n border-radius: 8px;\n padding: 130px 64px;\n margin-top: 120px;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure {\n padding: 80px 50px;\n margin-top: 80px;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n #organisation .structure {\n padding: 60px 15px;\n margin-top: 60px;\n }\n}\n\n#organisation .structure p,#organisation .structure li,#organisation .structure h1,#organisation .structure h2,#organisation .structure h3,#organisation .structure h4,#organisation .structure h5,#organisation .structure h6 {\n color: #FFF;\n}\n\n#organisation .structure .diagram {\n padding-top: 150px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n gap: 80px 0;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram {\n gap: 40px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram {\n padding-top: 80px;\n }\n}\n\n@media screen and (max-width: 768px) {\n\n #organisation .structure .diagram {\n padding-top: 60px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram {\n gap: 26.66667px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram {\n gap: 20px;\n }\n}\n\n#organisation .structure .diagram-title {\n margin: 0;\n text-transform: uppercase;\n font-size: 18px;\n display: inline-block;\n z-index: 2;\n position: relative;\n color: #FFF;\n}\n\n#organisation .structure .diagram-title a {\n color: #FFF;\n }\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-title {\n font-size: 16px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-title {\n font-size: 14px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-title {\n font-size: 9px;\n }\n}\n\n#organisation .structure .diagram-column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n gap: 40px;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-column {\n gap: 20px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-column {\n gap: 16px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-column {\n gap: 13.33333px;\n }\n}\n\n#organisation .structure .diagram-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n gap: 0 80px;\n justify-content: center;\n align-items: center;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-row {\n gap: 40px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-row {\n gap: 26.66667px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-row {\n gap: 20px;\n }\n}\n\n#organisation .structure .diagram-row-small {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n gap: 20px 20px;\n justify-content: center;\n align-items: center;\n}\n\n@media screen and (max-width: 1280px) {\n\n #organisation .structure .diagram-row-small {\n flex-wrap: wrap;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-row-small {\n gap: 16px 16px;\n }\n}\n\n#organisation .structure .diagram-block {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border: 1px solid #47656e;\n background: #042C38;\n border-radius: 10px;\n padding: 15px;\n height: 77px;\n position: relative;\n transition: all 0.3s ease;\n flex-grow: 1;\n flex: 1;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-block {\n height: 90px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-block {\n padding: 8px;\n }\n}\n\n#organisation .structure .diagram-block-large {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n padding: 15px;\n border: 1px solid #47656e;\n background: #042C38;\n border-radius: 10px;\n height: 270px;\n position: relative;\n flex-grow: 1;\n flex: 1;\n}\n\n@media screen and (max-width: 1280px) {\n\n #organisation .structure .diagram-block-large {\n flex-grow: 0;\n min-width: 166px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-block-large {\n height: 230px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-block-large {\n min-width: 130px;\n padding: 10px;\n height: 210px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-block-large {\n min-width: 100px;\n padding: 8px;\n height: 90px;\n }\n}\n\n#organisation .structure .diagram a.diagram-block:hover {\n z-index: 5;\n background: #47656e;\n}\n\n#organisation .structure .diagram-dot {\n position: absolute;\n width: 16px;\n height: 16px;\n background: #042C38;\n border-radius: 90px;\n z-index: 5;\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-dot {\n width: 8px;\n height: 8px;\n }\n}\n\n#organisation .structure .diagram-dot:before {\n content: \"\";\n position: absolute;\n top: 4px;\n left: 4px;\n width: 8px;\n height: 8px;\n background: #47656e;\n border-radius: 90px;\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-dot:before {\n top: 2px;\n left: 2px;\n width: 4px;\n height: 4px;\n }\n}\n\n#organisation .structure .diagram-dot-top {\n top: -8px;\n left: 50%;\n margin-left: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-dot-top {\n top: -4px;\n margin-left: -4px;\n }\n}\n\n#organisation .structure .diagram-dot-left {\n left: -8px;\n top: 50%;\n margin-top: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-dot-left {\n left: -4px;\n margin-top: -4px;\n }\n}\n\n#organisation .structure .diagram-dot-right {\n right: -8px;\n top: 50%;\n margin-top: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-dot-right {\n right: -4px;\n margin-top: -4px;\n }\n}\n\n#organisation .structure .diagram-dot-bottom {\n bottom: -8px;\n left: 50%;\n margin-left: -8px;\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-dot-bottom {\n bottom: -4px;\n margin-left: -4px;\n }\n}\n\n#organisation .structure .diagram-link {\n position: absolute;\n background: #47656e;\n}\n\n#organisation .structure .diagram-link-top {\n height: 120px;\n top: -120px;\n width: 1px;\n left: 50%;\n }\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-link-top {\n height: 60px;\n top: -60px;\n height: 85px;\n top: -85px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-link-top {\n height: 40px;\n top: -40px;\n height: 70px;\n top: -70px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-link-top {\n height: 30px;\n top: -30px;\n }\n}\n\n#organisation .structure .diagram-link-left {\n width: 80px;\n left: -80px;\n height: 1px;\n top: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-link-left {\n width: 40px;\n left: -40px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-link-left {\n width: 26.66667px;\n left: -26.66667px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-link-left {\n width: 20px;\n left: -20px;\n }\n}\n\n#organisation .structure .diagram-link-right {\n width: 80px;\n height: 1px;\n right: -80px;\n top: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-link-right {\n width: 40px;\n right: -40px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-link-right {\n width: 26.66667px;\n right: -26.66667px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-link-right {\n width: 20px;\n right: -20px;\n }\n}\n\n#organisation .structure .diagram-link-bottom {\n height: 80px;\n width: 1px;\n bottom: -80px;\n left: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .structure .diagram-link-bottom {\n height: 40px;\n bottom: -40px;\n }\n}\n\n@media screen and (max-width: 640px) {\n\n #organisation .structure .diagram-link-bottom {\n height: 26.66667px;\n bottom: -26.66667px;\n }\n}\n\n@media screen and (max-width: 400px) {\n\n #organisation .structure .diagram-link-bottom {\n height: 20px;\n bottom: -20px;\n }\n}\n\n#organisation .structure .diagram-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n text-align: center;\n border: 1px solid #47656e;\n border-bottom: 0;\n background: #042C38;\n border-radius: 10px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n height: 40px;\n position: relative;\n}\n\n#organisation .structure .diagram-label {\n position: relative;\n text-align: center;\n width: 100%;\n}\n\n#organisation .structure .diagram-label .diagram-title {\n padding: 15px 45px;\n background: #042C38;\n }\n\n#organisation .structure .diagram-label::before {\n content: \"\";\n width: 100%;\n position: absolute;\n left: 0;\n height: 1px;\n top: 50%;\n display: block;\n background: #47656e;\n}\n\n#organisation .partners .partner {\n margin-top: 100px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: flex-start;\n gap: 0 50px;\n }\n\n@media screen and (max-width: 1024px) {\n\n #organisation .partners .partner {\n display: block;\n }\n}\n\n#organisation .partners .partner .logo_wrapper {\n flex-shrink: 0;\n flex-grow: 0;\n width: 382px;\n height: auto;\n padding: 80px;\n min-height: 350px;\n border: 1px solid #E3EAEC;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n background: #FFF;\n}\n\n@media screen and (max-width: 1280px) {\n\n #organisation .partners .partner .logo_wrapper {\n width: 300px;\n min-height: 280px;\n padding: 60px;\n }\n}\n\n@media screen and (max-width: 1024px) {\n\n #organisation .partners .partner .logo_wrapper {\n margin-bottom: 40px;\n }\n}\n\n#organisation .partners .partner .logo_wrapper img {\n display: block;\n width: 100%;\n}\n\n#organisation .partners .partner .content_wrapper .title_wrapper {\n margin-bottom: 40px;\n }\n\n#organisation .partners .partner .content_wrapper .title_wrapper .s1 {\n margin: 0 0 5px;\n }\n\n#organisation .partners .partner .content_wrapper .title_wrapper p {\n margin: 0; \n font-weight: bold;\n }\n\n#organisation .partners .partner .content_wrapper .title_wrapper a {\n font-weight: bold;\n color: #042C38;\n border-bottom: 2px solid #042C38;\n transition: all 0.3s ease\n }\n\n#organisation .partners .partner .content_wrapper .title_wrapper a:hover {\n border-bottom: 2px solid transparent;\n}\n\n.user-navigation .dropdown-navigation {\n top: 81px;\n }\n\n.dropdown-navigation .um .um-misc-with-img {\n display: none;\n }\n\n.dropdown-navigation .um .um-misc-ul {\n margin-top: 4px;\n overflow: hidden;\n background: #FFF;\n border-radius: 8px;\n list-style: none;\n width: 250px;\n padding: 0;\n }\n\n.dropdown-navigation .um li a {\n\n padding: 18px 24px;\n display: block;\n transition: all 0.3s ease;\n position: relative;\n\n transition: all 0.3s ease;\n margin: 0;\n color: #042C38;\n display: block;\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: bold;\n line-height: 120%\n }\n\n.dropdown-navigation .um li a:before {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 24;\n width: calc(100% - 48px);\n height: 1px;\n background: #E3EAEC;\n opacity: 1;\n transition: all 0.3s ease;\n}\n\n.dropdown-navigation .um li a:hover {\n background: #D53737;\n color: #FFF;\n}\n\n.dropdown-navigation .um li a:hover:before {\n opacity: 0;\n}\n\n#login-popup .um {\n max-width: none !important;\n margin: 0 !important;\n }\n\n#login-popup .um-misc-with-img {\n display: none;\n }\n\n#login-popup .um-misc-ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n\n#login-popup .um-misc-ul li a {\n font-family: 'Helvetica Neue Condensed', Arial, Helvetica, sans-serif;\n font-weight: bold;\n color: #081C24;\n border-bottom: 1px solid #CFCFCF;\n text-align: center;\n display: block;\n padding: 10px;\n transition: all 0.3s ease\n }\n\n#login-popup .um-misc-ul li a:hover {\n background: #D53737;\n color: #FFF;\n}\n\n#login-popup .um-misc-ul li:last-child a {\n border-bottom: 0;\n}\n\n#login-popup .um-button {\n color: #FFF;\n background: #D53737;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 140%;\n border: 0;\n display: block;\n padding: 15px;\n border-radius: 8px;\n width: 100% !important;\n cursor: pointer;\n transition: all 0.3s ease\n }\n\n#login-popup .um-button:hover {\n background: #951414;\n}\n\n#auth-page .um {\n max-width: none;\n color: #081C24;\n }\n\n#auth-page .um-form-field {\n background: transparent;\n border: 0;\n border-bottom: 1px solid #387E97;\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 120%;\n color: #042C38;\n padding: 15px 0\n }\n\n#auth-page .um-form-field:focus,#auth-page .um-form-field.focus-visible {\n box-shadow: none;\n outline: none;\n}\n\n#auth-page .um-form-field:focus,#auth-page .um-form-field:focus-visible {\n box-shadow: none;\n outline: none;\n}\n\n#auth-page .um-button {\n color: #FFF;\n background: #D53737;\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-style: normal;\n font-weight: 700;\n font-size: 16px;\n line-height: 140%;\n border: 0;\n display: block;\n padding: 15px;\n border-radius: 8px;\n width: 100% !important;\n cursor: pointer;\n transition: all 0.3s ease\n }\n\n#auth-page .um-button:hover {\n background: #951414;\n}\n\n#auth-page .um-field-label {\n color: #081C24;\n }\n\n#auth-page .um-link-alt {\n text-align: right;\n }\n\n#auth-page .um-account .um-account-meta {\n display: none;\n }\n\n#auth-page .um-links {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n list-style: none;\n }\n\n#auth-page .um-links a {\n font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 140%;\n color: #042C38\n }\n\n#auth-page .um-links a:hover {\n text-decoration: underline;\n}\n\n#auth-page .um .um-account-main div.um-account-heading {\n color: #081C24;\n }\n\n#auth-page .um .um-form input:-webkit-autofill {\n color: #081C24;\n }\n\n#auth-page .um .um-form input:autofill {\n color: #081C24;\n }\n\n#auth-page .um .um-account-side {\n display: none;\n }\n\n#auth-page .um .um-account-nav {\n display: none;\n }\n\n#auth-page .um .um-account-tab {\n display: block;\n margin-bottom: 60px;\n }\n\n#auth-page .um .um-account-main {\n width: 100%;\n max-width: none;\n }", "",{"version":3,"sources":["webpack://./node_modules/normalize.css/normalize.css","webpack://./assets/css/abstract/variables.css","webpack://./assets/css/abstract/mxin.css","webpack://./assets/css/main.css","webpack://./node_modules/@glidejs/glide/src/assets/sass/glide.core.scss","webpack://./node_modules/@glidejs/glide/dist/css/glide.core.css","webpack://./node_modules/@glidejs/glide/src/assets/sass/glide.theme.scss","webpack://./node_modules/@glidejs/glide/dist/css/glide.theme.css","webpack://./node_modules/choices.js/public/assets/styles/choices.min.css","webpack://./assets/css/layout/body.css","webpack://./assets/css/layout/container.css","webpack://./assets/css/layout/sort-wrapper.css","webpack://./assets/css/layout/default-content-area.css","webpack://./assets/css/layout/single-content-area.css","webpack://./assets/css/layout/single-content-area-v2.css","webpack://./assets/css/layout/single-content-area-v3.css","webpack://./assets/css/typography/fonts.css","webpack://./assets/css/typography/styles.css","webpack://./assets/css/detail/single-detail.css","webpack://./assets/css/detail/free-input.css","webpack://./assets/css/components/global/header.css","webpack://./assets/css/components/global/header-mobile.css","webpack://./assets/css/components/global/dropdown-navigation.css","webpack://./assets/css/components/global/dropdown-navigation-detailed.css","webpack://./assets/css/components/global/footer.css","webpack://./assets/css/components/hero-slider.css","webpack://./assets/css/components/notifications.css","webpack://./assets/css/components/cards/notification-card.css","<no source>","webpack://./assets/css/components/gallery.css","webpack://./assets/css/components/recent-news.css","webpack://./assets/css/components/cards/news-cards.css","webpack://./assets/css/components/upcoming-events.css","webpack://./assets/css/components/cards/events-cards.css","webpack://./assets/css/components/introduction.css","webpack://./assets/css/components/search-navigation.css","webpack://./assets/css/components/sitemap.css","webpack://./assets/css/components/cards/funding-v1.css","webpack://./assets/css/components/cards/funding-v2.css","webpack://./assets/css/components/cards/projects-v1.css","webpack://./assets/css/components/cards/projects-v2.css","webpack://./assets/css/components/cards/our-scientists-v1.css","webpack://./assets/css/components/cards/news-v1.css","webpack://./assets/css/components/cards/publications-v1.css","webpack://./assets/css/components/cards/publications-v2.css","webpack://./assets/css/components/cards/forms-v1.css","webpack://./assets/css/components/cards/news-card-small.css","webpack://./assets/css/components/cards/team-v1.css","webpack://./assets/css/components/cards/events-v1.css","webpack://./assets/css/components/cards/media-card.css","webpack://./assets/css/components/cards/gallery-card.css","webpack://./assets/css/components/cards/employment-v1.css","webpack://./assets/css/components/global/page-title.css","webpack://./assets/css/components/global/page-sub-title.css","webpack://./assets/css/components/global/menu-style-1.css","webpack://./assets/css/components/global/filter-form.css","webpack://./assets/css/components/global/breadcrumb.css","webpack://./assets/css/components/global/popup.css","webpack://./assets/css/components/submit-news.css","webpack://./assets/css/components/submit-news-v2.css","webpack://./assets/css/components/submit-news-small-v2.css","webpack://./assets/css/components/related_news.css","webpack://./assets/css/components/related_projects.css","webpack://./assets/css/elements/image-wrapper.css","webpack://./assets/css/elements/buttons.css","webpack://./assets/css/elements/missing-image.css","webpack://./assets/css/elements/animated-circle.css","webpack://./assets/css/elements/animated-circle-2.css","webpack://./assets/css/elements/animated-circle-3.css","webpack://./assets/css/elements/animated-circle-4.css","webpack://./assets/css/elements/animated-circle-5.css","webpack://./assets/css/elements/animated-oval.css","webpack://./assets/css/elements/z-index.css","webpack://./assets/css/elements/page_not_found.css","webpack://./assets/css/elements/form.css","webpack://./assets/css/elements/pagination-load-more.css","webpack://./assets/css/elements/pagination-numbers.css","webpack://./assets/css/elements/wordpress-override.css","webpack://./assets/css/elements/special_underline.css","webpack://./assets/css/elements/login-popup.css","webpack://./assets/css/pages/page-template-page-home.css","webpack://./assets/css/pages/funding.css","webpack://./assets/css/pages/stories-of-change.css","webpack://./assets/css/pages/FAQ.css","webpack://./assets/css/pages/contact.css","webpack://./assets/css/pages/auth-page.css","webpack://./assets/css/pages/employment.css","webpack://./assets/css/pages/organisation.css","webpack://./assets/css/components/plugins/ultimate_member.css"],"names":[],"mappings":"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","sourceRoot":""}]); 8843// Exports 8844/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); 8845 8846 8847/***/ }), 8848
vendor: 2,585 bytes, lines 8849-8960
8849/***/ "./node_modules/css-loader/dist/runtime/api.js": 8850/*!*****************************************************!*\ 8851 !*** ./node_modules/css-loader/dist/runtime/api.js ***! 8852 \*****************************************************/ 8853/***/ ((module) => { 8854 8855"use strict"; 8856 8857 8858/* 8859 MIT License http://www.opensource.org/licenses/mit-license.php 8860 Author Tobias Koppers @sokra 8861*/ 8862module.exports = function (cssWithMappingToString) { 8863 var list = []; // return the list of modules as css string 8864 8865 list.toString = function toString() { 8866 return this.map(function (item) { 8867 var content = ""; 8868 var needLayer = typeof item[5] !== "undefined"; 8869 8870 if (item[4]) { 8871 content += "@supports (".concat(item[4], ") {"); 8872 } 8873 8874 if (item[2]) { 8875 content += "@media ".concat(item[2], " {"); 8876 } 8877 8878 if (needLayer) { 8879 content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); 8880 } 8881 8882 content += cssWithMappingToString(item); 8883 8884 if (needLayer) { 8885 content += "}"; 8886 } 8887 8888 if (item[2]) { 8889 content += "}"; 8890 } 8891 8892 if (item[4]) { 8893 content += "}"; 8894 } 8895 8896 return content; 8897 }).join(""); 8898 }; // import a list of modules into the list 8899 8900 8901 list.i = function i(modules, media, dedupe, supports, layer) { 8902 if (typeof modules === "string") { 8903 modules = [[null, modules, undefined]]; 8904 } 8905 8906 var alreadyImportedModules = {}; 8907 8908 if (dedupe) { 8909 for (var k = 0; k < this.length; k++) { 8910 var id = this[k][0]; 8911 8912 if (id != null) { 8913 alreadyImportedModules[id] = true; 8914 } 8915 } 8916 } 8917 8918 for (var _k = 0; _k < modules.length; _k++) { 8919 var item = [].concat(modules[_k]); 8920 8921 if (dedupe && alreadyImportedModules[item[0]]) { 8922 continue; 8923 } 8924 8925 if (typeof layer !== "undefined") { 8926 if (typeof item[5] === "undefined") { 8927 item[5] = layer; 8928 } else { 8929 item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); 8930 item[5] = layer; 8931 } 8932 } 8933 8934 if (media) { 8935 if (!item[2]) { 8936 item[2] = media; 8937 } else { 8938 item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); 8939 item[2] = media; 8940 } 8941 } 8942 8943 if (supports) { 8944 if (!item[4]) { 8945 item[4] = "".concat(supports); 8946 } else { 8947 item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); 8948 item[4] = supports; 8949 } 8950 } 8951 8952 list.push(item); 8953 } 8954 }; 8955 8956 return list; 8957}; 8958 8959/***/ }), 8960
vendor: 877 bytes, lines 8961-8999
8961/***/ "./node_modules/css-loader/dist/runtime/getUrl.js": 8962/*!********************************************************!*\ 8963 !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***! 8964 \********************************************************/ 8965/***/ ((module) => { 8966 8967"use strict"; 8968 8969 8970module.exports = function (url, options) { 8971 if (!options) { 8972 options = {}; 8973 } 8974 8975 if (!url) { 8976 return url; 8977 } 8978 8979 url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them 8980 8981 if (/^['"].*['"]$/.test(url)) { 8982 url = url.slice(1, -1); 8983 } 8984 8985 if (options.hash) { 8986 url += options.hash; 8987 } // Should url be wrapped? 8988 // See https://drafts.csswg.org/css-values-3/#urls 8989 8990 8991 if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) { 8992 return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\""); 8993 } 8994 8995 return url; 8996}; 8997 8998/***/ }), 8999
vendor: 983 bytes, lines 9000-9031
9000/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js": 9001/*!************************************************************!*\ 9002 !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***! 9003 \************************************************************/ 9004/***/ ((module) => { 9005 9006"use strict"; 9007 9008 9009module.exports = function (item) { 9010 var content = item[1]; 9011 var cssMapping = item[3]; 9012 9013 if (!cssMapping) { 9014 return content; 9015 } 9016 9017 if (typeof btoa === "function") { 9018 var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); 9019 var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); 9020 var sourceMapping = "/*# ".concat(data, " */"); 9021 var sourceURLs = cssMapping.sources.map(function (source) { 9022 return "/*# sourceURL=".concat(cssMapping.sourceRoot || "").concat(source, " */"); 9023 }); 9024 return [content].concat(sourceURLs).concat([sourceMapping]).join("\n"); 9025 } 9026 9027 return [content].join("\n"); 9028}; 9029 9030/***/ }), 9031
vendor: 5,914 bytes, lines 9032-9086
9032/***/ "./assets/css/main.css": 9033/*!*****************************!*\ 9034 !*** ./assets/css/main.css ***! 9035 \*****************************/ 9036/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 9037 9038"use strict"; 9039__webpack_require__.r(__webpack_exports__); 9040/* harmony export */ __webpack_require__.d(__webpack_exports__, { 9041/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 9042/* harmony export */ }); 9043/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); 9044/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); 9045/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); 9046/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); 9047/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); 9048/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); 9049/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); 9050/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); 9051/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); 9052/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); 9053/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); 9054/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); 9055/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./main.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./assets/css/main.css"); 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067var options = {}; 9068 9069options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); 9070options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); 9071 9072 options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); 9073 9074options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); 9075options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); 9076 9077var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); 9078 9079 9080 9081 9082 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_main_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); 9083 9084 9085/***/ }), 9086
vendor: 2,859 bytes, lines 9087-9200
9087/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": 9088/*!****************************************************************************!*\ 9089 !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! 9090 \****************************************************************************/ 9091/***/ ((module) => { 9092 9093"use strict"; 9094 9095 9096var stylesInDOM = []; 9097 9098function getIndexByIdentifier(identifier) { 9099 var result = -1; 9100 9101 for (var i = 0; i < stylesInDOM.length; i++) { 9102 if (stylesInDOM[i].identifier === identifier) { 9103 result = i; 9104 break; 9105 } 9106 } 9107 9108 return result; 9109} 9110 9111function modulesToDom(list, options) { 9112 var idCountMap = {}; 9113 var identifiers = []; 9114 9115 for (var i = 0; i < list.length; i++) { 9116 var item = list[i]; 9117 var id = options.base ? item[0] + options.base : item[0]; 9118 var count = idCountMap[id] || 0; 9119 var identifier = "".concat(id, " ").concat(count); 9120 idCountMap[id] = count + 1; 9121 var indexByIdentifier = getIndexByIdentifier(identifier); 9122 var obj = { 9123 css: item[1], 9124 media: item[2], 9125 sourceMap: item[3], 9126 supports: item[4], 9127 layer: item[5] 9128 }; 9129 9130 if (indexByIdentifier !== -1) { 9131 stylesInDOM[indexByIdentifier].references++; 9132 stylesInDOM[indexByIdentifier].updater(obj); 9133 } else { 9134 var updater = addElementStyle(obj, options); 9135 options.byIndex = i; 9136 stylesInDOM.splice(i, 0, { 9137 identifier: identifier, 9138 updater: updater, 9139 references: 1 9140 }); 9141 } 9142 9143 identifiers.push(identifier); 9144 } 9145 9146 return identifiers; 9147} 9148 9149function addElementStyle(obj, options) { 9150 var api = options.domAPI(options); 9151 api.update(obj); 9152 9153 var updater = function updater(newObj) { 9154 if (newObj) { 9155 if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { 9156 return; 9157 } 9158 9159 api.update(obj = newObj); 9160 } else { 9161 api.remove(); 9162 } 9163 }; 9164 9165 return updater; 9166} 9167 9168module.exports = function (list, options) { 9169 options = options || {}; 9170 list = list || []; 9171 var lastIdentifiers = modulesToDom(list, options); 9172 return function update(newList) { 9173 newList = newList || []; 9174 9175 for (var i = 0; i < lastIdentifiers.length; i++) { 9176 var identifier = lastIdentifiers[i]; 9177 var index = getIndexByIdentifier(identifier); 9178 stylesInDOM[index].references--; 9179 } 9180 9181 var newLastIdentifiers = modulesToDom(newList, options); 9182 9183 for (var _i = 0; _i < lastIdentifiers.length; _i++) { 9184 var _identifier = lastIdentifiers[_i]; 9185 9186 var _index = getIndexByIdentifier(_identifier); 9187 9188 if (stylesInDOM[_index].references === 0) { 9189 stylesInDOM[_index].updater(); 9190 9191 stylesInDOM.splice(_index, 1); 9192 } 9193 } 9194 9195 lastIdentifiers = newLastIdentifiers; 9196 }; 9197}; 9198 9199/***/ }), 9200
vendor: 1,332 bytes, lines 9201-9249
9201/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js": 9202/*!********************************************************************!*\ 9203 !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***! 9204 \********************************************************************/ 9205/***/ ((module) => { 9206 9207"use strict"; 9208 9209 9210var memo = {}; 9211/* istanbul ignore next */ 9212 9213function getTarget(target) { 9214 if (typeof memo[target] === "undefined") { 9215 var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself 9216 9217 if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { 9218 try { 9219 // This will throw an exception if access to iframe is blocked 9220 // due to cross-origin restrictions 9221 styleTarget = styleTarget.contentDocument.head; 9222 } catch (e) { 9223 // istanbul ignore next 9224 styleTarget = null; 9225 } 9226 } 9227 9228 memo[target] = styleTarget; 9229 } 9230 9231 return memo[target]; 9232} 9233/* istanbul ignore next */ 9234 9235 9236function insertBySelector(insert, style) { 9237 var target = getTarget(insert); 9238 9239 if (!target) { 9240 throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); 9241 } 9242 9243 target.appendChild(style); 9244} 9245 9246module.exports = insertBySelector; 9247 9248/***/ }), 9249
vendor: 621 bytes, lines 9250-9270
9250/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js": 9251/*!**********************************************************************!*\ 9252 !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***! 9253 \**********************************************************************/ 9254/***/ ((module) => { 9255 9256"use strict"; 9257 9258 9259/* istanbul ignore next */ 9260function insertStyleElement(options) { 9261 var element = document.createElement("style"); 9262 options.setAttributes(element, options.attributes); 9263 options.insert(element, options.options); 9264 return element; 9265} 9266 9267module.exports = insertStyleElement; 9268 9269/***/ }), 9270
vendor: 697 bytes, lines 9271-9292
9271/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": 9272/*!**********************************************************************************!*\ 9273 !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! 9274 \**********************************************************************************/ 9275/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 9276 9277"use strict"; 9278 9279 9280/* istanbul ignore next */ 9281function setAttributesWithoutAttributes(styleElement) { 9282 var nonce = true ? __webpack_require__.nc : 0; 9283 9284 if (nonce) { 9285 styleElement.setAttribute("nonce", nonce); 9286 } 9287} 9288 9289module.exports = setAttributesWithoutAttributes; 9290 9291/***/ }), 9292
vendor: 1,719 bytes, lines 9293-9372
9293/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js": 9294/*!***************************************************************!*\ 9295 !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***! 9296 \***************************************************************/ 9297/***/ ((module) => { 9298 9299"use strict"; 9300 9301 9302/* istanbul ignore next */ 9303function apply(styleElement, options, obj) { 9304 var css = ""; 9305 9306 if (obj.supports) { 9307 css += "@supports (".concat(obj.supports, ") {"); 9308 } 9309 9310 if (obj.media) { 9311 css += "@media ".concat(obj.media, " {"); 9312 } 9313 9314 var needLayer = typeof obj.layer !== "undefined"; 9315 9316 if (needLayer) { 9317 css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); 9318 } 9319 9320 css += obj.css; 9321 9322 if (needLayer) { 9323 css += "}"; 9324 } 9325 9326 if (obj.media) { 9327 css += "}"; 9328 } 9329 9330 if (obj.supports) { 9331 css += "}"; 9332 } 9333 9334 var sourceMap = obj.sourceMap; 9335 9336 if (sourceMap && typeof btoa !== "undefined") { 9337 css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); 9338 } // For old IE 9339 9340 /* istanbul ignore if */ 9341 9342 9343 options.styleTagTransform(css, styleElement, options.options); 9344} 9345 9346function removeStyleElement(styleElement) { 9347 // istanbul ignore if 9348 if (styleElement.parentNode === null) { 9349 return false; 9350 } 9351 9352 styleElement.parentNode.removeChild(styleElement); 9353} 9354/* istanbul ignore next */ 9355 9356 9357function domAPI(options) { 9358 var styleElement = options.insertStyleElement(options); 9359 return { 9360 update: function update(obj) { 9361 apply(styleElement, options, obj); 9362 }, 9363 remove: function remove() { 9364 removeStyleElement(styleElement); 9365 } 9366 }; 9367} 9368 9369module.exports = domAPI; 9370 9371/***/ }), 9372
vendor: 713 bytes, lines 9373-9398
9373/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js": 9374/*!*********************************************************************!*\ 9375 !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***! 9376 \*********************************************************************/ 9377/***/ ((module) => { 9378 9379"use strict"; 9380 9381 9382/* istanbul ignore next */ 9383function styleTagTransform(css, styleElement) { 9384 if (styleElement.styleSheet) { 9385 styleElement.styleSheet.cssText = css; 9386 } else { 9387 while (styleElement.firstChild) { 9388 styleElement.removeChild(styleElement.firstChild); 9389 } 9390 9391 styleElement.appendChild(document.createTextNode(css)); 9392 } 9393} 9394 9395module.exports = styleTagTransform; 9396 9397/***/ }), 9398
vendor: 32,183 bytes, lines 9399-10454
9399/***/ "./node_modules/typo-js/typo.js": 9400/*!**************************************!*\ 9401 !*** ./node_modules/typo-js/typo.js ***! 9402 \**************************************/ 9403/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 9404 9405var __dirname = "/"; 9406/* globals chrome: false */ 9407/* globals __dirname: false */ 9408/* globals require: false */ 9409/* globals Buffer: false */ 9410/* globals module: false */ 9411 9412/** 9413 * Typo is a JavaScript implementation of a spellchecker using hunspell-style 9414 * dictionaries. 9415 */ 9416 9417var Typo; 9418 9419(function () { 9420"use strict"; 9421 9422/** 9423 * Typo constructor. 9424 * 9425 * @param {String} [dictionary] The locale code of the dictionary being used. e.g., 9426 * "en_US". This is only used to auto-load dictionaries. 9427 * @param {String} [affData] The data from the dictionary's .aff file. If omitted 9428 * and Typo.js is being used in a Chrome extension, the .aff 9429 * file will be loaded automatically from 9430 * lib/typo/dictionaries/[dictionary]/[dictionary].aff 9431 * In other environments, it will be loaded from 9432 * [settings.dictionaryPath]/dictionaries/[dictionary]/[dictionary].aff 9433 * @param {String} [wordsData] The data from the dictionary's .dic file. If omitted 9434 * and Typo.js is being used in a Chrome extension, the .dic 9435 * file will be loaded automatically from 9436 * lib/typo/dictionaries/[dictionary]/[dictionary].dic 9437 * In other environments, it will be loaded from 9438 * [settings.dictionaryPath]/dictionaries/[dictionary]/[dictionary].dic 9439 * @param {Object} [settings] Constructor settings. Available properties are: 9440 * {String} [dictionaryPath]: path to load dictionary from in non-chrome 9441 * environment. 9442 * {Object} [flags]: flag information. 9443 * {Boolean} [asyncLoad]: If true, affData and wordsData will be loaded 9444 * asynchronously. 9445 * {Function} [loadedCallback]: Called when both affData and wordsData 9446 * have been loaded. Only used if asyncLoad is set to true. The parameter 9447 * is the instantiated Typo object. 9448 * 9449 * @returns {Typo} A Typo object. 9450 */ 9451 9452Typo = function (dictionary, affData, wordsData, settings) { 9453 settings = settings || {}; 9454 9455 this.dictionary = null; 9456 9457 this.rules = {}; 9458 this.dictionaryTable = {}; 9459 9460 this.compoundRules = []; 9461 this.compoundRuleCodes = {}; 9462 9463 this.replacementTable = []; 9464 9465 this.flags = settings.flags || {}; 9466 9467 this.memoized = {}; 9468 9469 this.loaded = false; 9470 9471 var self = this; 9472 9473 var path; 9474 9475 // Loop-control variables. 9476 var i, j, _len, _jlen; 9477 9478 if (dictionary) { 9479 self.dictionary = dictionary; 9480 9481 // If the data is preloaded, just setup the Typo object. 9482 if (affData && wordsData) { 9483 setup(); 9484 } 9485 // Loading data for Chrome extentions. 9486 else if (typeof window !== 'undefined' && 'chrome' in window && 'extension' in window.chrome && 'getURL' in window.chrome.extension) { 9487 if (settings.dictionaryPath) { 9488 path = settings.dictionaryPath; 9489 } 9490 else { 9491 path = "typo/dictionaries"; 9492 } 9493 9494 if (!affData) readDataFile(chrome.extension.getURL(path + "/" + dictionary + "/" + dictionary + ".aff"), setAffData); 9495 if (!wordsData) readDataFile(chrome.extension.getURL(path + "/" + dictionary + "/" + dictionary + ".dic"), setWordsData); 9496 } 9497 else { 9498 if (settings.dictionaryPath) { 9499 path = settings.dictionaryPath; 9500 } 9501 else if (true) { 9502 path = __dirname + '/dictionaries'; 9503 } 9504 else {} 9505 9506 if (!affData) readDataFile(path + "/" + dictionary + "/" + dictionary + ".aff", setAffData); 9507 if (!wordsData) readDataFile(path + "/" + dictionary + "/" + dictionary + ".dic", setWordsData); 9508 } 9509 } 9510 9511 function readDataFile(url, setFunc) { 9512 var response = self._readFile(url, null, settings.asyncLoad); 9513 9514 if (settings.asyncLoad) { 9515 response.then(function(data) { 9516 setFunc(data); 9517 }); 9518 } 9519 else { 9520 setFunc(response); 9521 } 9522 } 9523 9524 function setAffData(data) { 9525 affData = data; 9526 9527 if (wordsData) { 9528 setup(); 9529 } 9530 } 9531 9532 function setWordsData(data) { 9533 wordsData = data; 9534 9535 if (affData) { 9536 setup(); 9537 } 9538 } 9539 9540 function setup() { 9541 self.rules = self._parseAFF(affData); 9542 9543 // Save the rule codes that are used in compound rules. 9544 self.compoundRuleCodes = {}; 9545 9546 for (i = 0, _len = self.compoundRules.length; i < _len; i++) { 9547 var rule = self.compoundRules[i]; 9548 9549 for (j = 0, _jlen = rule.length; j < _jlen; j++) { 9550 self.compoundRuleCodes[rule[j]] = []; 9551 } 9552 } 9553 9554 // If we add this ONLYINCOMPOUND flag to self.compoundRuleCodes, then _parseDIC 9555 // will do the work of saving the list of words that are compound-only. 9556 if ("ONLYINCOMPOUND" in self.flags) { 9557 self.compoundRuleCodes[self.flags.ONLYINCOMPOUND] = []; 9558 } 9559 9560 self.dictionaryTable = self._parseDIC(wordsData); 9561 9562 // Get rid of any codes from the compound rule codes that are never used 9563 // (or that were special regex characters). Not especially necessary... 9564 for (i in self.compoundRuleCodes) { 9565 if (self.compoundRuleCodes[i].length === 0) { 9566 delete self.compoundRuleCodes[i]; 9567 } 9568 } 9569 9570 // Build the full regular expressions for each compound rule. 9571 // I have a feeling (but no confirmation yet) that this method of 9572 // testing for compound words is probably slow. 9573 for (i = 0, _len = self.compoundRules.length; i < _len; i++) { 9574 var ruleText = self.compoundRules[i]; 9575 9576 var expressionText = ""; 9577 9578 for (j = 0, _jlen = ruleText.length; j < _jlen; j++) { 9579 var character = ruleText[j]; 9580 9581 if (character in self.compoundRuleCodes) { 9582 expressionText += "(" + self.compoundRuleCodes[character].join("|") + ")"; 9583 } 9584 else { 9585 expressionText += character; 9586 } 9587 } 9588 9589 self.compoundRules[i] = new RegExp(expressionText, "i"); 9590 } 9591 9592 self.loaded = true; 9593 9594 if (settings.asyncLoad && settings.loadedCallback) { 9595 settings.loadedCallback(self); 9596 } 9597 } 9598 9599 return this; 9600}; 9601 9602Typo.prototype = { 9603 /** 9604 * Loads a Typo instance from a hash of all of the Typo properties. 9605 * 9606 * @param object obj A hash of Typo properties, probably gotten from a JSON.parse(JSON.stringify(typo_instance)). 9607 */ 9608 9609 load : function (obj) { 9610 for (var i in obj) { 9611 if (obj.hasOwnProperty(i)) { 9612 this[i] = obj[i]; 9613 } 9614 } 9615 9616 return this; 9617 }, 9618 9619 /** 9620 * Read the contents of a file. 9621 * 9622 * @param {String} path The path (relative) to the file. 9623 * @param {String} [charset="ISO8859-1"] The expected charset of the file 9624 * @param {Boolean} async If true, the file will be read asynchronously. For node.js this does nothing, all 9625 * files are read synchronously. 9626 * @returns {String} The file data if async is false, otherwise a promise object. If running node.js, the data is 9627 * always returned. 9628 */ 9629 9630 _readFile : function (path, charset, async) { 9631 charset = charset || "utf8"; 9632 9633 if (typeof XMLHttpRequest !== 'undefined') { 9634 var promise; 9635 var req = new XMLHttpRequest(); 9636 req.open("GET", path, async); 9637 9638 if (async) { 9639 promise = new Promise(function(resolve, reject) { 9640 req.onload = function() { 9641 if (req.status === 200) { 9642 resolve(req.responseText); 9643 } 9644 else { 9645 reject(req.statusText); 9646 } 9647 }; 9648 9649 req.onerror = function() { 9650 reject(req.statusText); 9651 } 9652 }); 9653 } 9654 9655 if (req.overrideMimeType) 9656 req.overrideMimeType("text/plain; charset=" + charset); 9657 9658 req.send(null); 9659 9660 return async ? promise : req.responseText; 9661 } 9662 else if (true) { 9663 // Node.js 9664 var fs = __webpack_require__(/*! fs */ "?b2fd"); 9665 9666 try { 9667 if (fs.existsSync(path)) { 9668 return fs.readFileSync(path, charset); 9669 } 9670 else { 9671 console.log("Path " + path + " does not exist."); 9672 } 9673 } catch (e) { 9674 console.log(e); 9675 return ''; 9676 } 9677 } 9678 }, 9679 9680 /** 9681 * Parse the rules out from a .aff file. 9682 * 9683 * @param {String} data The contents of the affix file. 9684 * @returns object The rules from the file. 9685 */ 9686 9687 _parseAFF : function (data) { 9688 var rules = {}; 9689 9690 var line, subline, numEntries, lineParts; 9691 var i, j, _len, _jlen; 9692 9693 var lines = data.split(/\r?\n/); 9694 9695 for (i = 0, _len = lines.length; i < _len; i++) { 9696 // Remove comment lines 9697 line = this._removeAffixComments(lines[i]); 9698 line = line.trim(); 9699 9700 if ( ! line ) { 9701 continue; 9702 } 9703 9704 var definitionParts = line.split(/\s+/); 9705 9706 var ruleType = definitionParts[0]; 9707 9708 if (ruleType == "PFX" || ruleType == "SFX") { 9709 var ruleCode = definitionParts[1]; 9710 var combineable = definitionParts[2]; 9711 numEntries = parseInt(definitionParts[3], 10); 9712 9713 var entries = []; 9714 9715 for (j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) { 9716 subline = lines[j]; 9717 9718 lineParts = subline.split(/\s+/); 9719 var charactersToRemove = lineParts[2]; 9720 9721 var additionParts = lineParts[3].split("/"); 9722 9723 var charactersToAdd = additionParts[0]; 9724 if (charactersToAdd === "0") charactersToAdd = ""; 9725 9726 var continuationClasses = this.parseRuleCodes(additionParts[1]); 9727 9728 var regexToMatch = lineParts[4]; 9729 9730 var entry = {}; 9731 entry.add = charactersToAdd; 9732 9733 if (continuationClasses.length > 0) entry.continuationClasses = continuationClasses; 9734 9735 if (regexToMatch !== ".") { 9736 if (ruleType === "SFX") { 9737 entry.match = new RegExp(regexToMatch + "$"); 9738 } 9739 else { 9740 entry.match = new RegExp("^" + regexToMatch); 9741 } 9742 } 9743 9744 if (charactersToRemove != "0") { 9745 if (ruleType === "SFX") { 9746 entry.remove = new RegExp(charactersToRemove + "$"); 9747 } 9748 else { 9749 entry.remove = charactersToRemove; 9750 } 9751 } 9752 9753 entries.push(entry); 9754 } 9755 9756 rules[ruleCode] = { "type" : ruleType, "combineable" : (combineable == "Y"), "entries" : entries }; 9757 9758 i += numEntries; 9759 } 9760 else if (ruleType === "COMPOUNDRULE") { 9761 numEntries = parseInt(definitionParts[1], 10); 9762 9763 for (j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) { 9764 line = lines[j]; 9765 9766 lineParts = line.split(/\s+/); 9767 this.compoundRules.push(lineParts[1]); 9768 } 9769 9770 i += numEntries; 9771 } 9772 else if (ruleType === "REP") { 9773 lineParts = line.split(/\s+/); 9774 9775 if (lineParts.length === 3) { 9776 this.replacementTable.push([ lineParts[1], lineParts[2] ]); 9777 } 9778 } 9779 else { 9780 // ONLYINCOMPOUND 9781 // COMPOUNDMIN 9782 // FLAG 9783 // KEEPCASE 9784 // NEEDAFFIX 9785 9786 this.flags[ruleType] = definitionParts[1]; 9787 } 9788 } 9789 9790 return rules; 9791 }, 9792 9793 /** 9794 * Removes comments. 9795 * 9796 * @param {String} data A line from an affix file. 9797 * @return {String} The cleaned-up line. 9798 */ 9799 9800 _removeAffixComments : function (line) { 9801 // This used to remove any string starting with '#' up to the end of the line, 9802 // but some COMPOUNDRULE definitions include '#' as part of the rule. 9803 // So, only remove lines that begin with a comment, optionally preceded by whitespace. 9804 if ( line.match( /^\s*#/, "" ) ) { 9805 return ''; 9806 } 9807 9808 return line; 9809 }, 9810 9811 /** 9812 * Parses the words out from the .dic file. 9813 * 9814 * @param {String} data The data from the dictionary file. 9815 * @returns object The lookup table containing all of the words and 9816 * word forms from the dictionary. 9817 */ 9818 9819 _parseDIC : function (data) { 9820 data = this._removeDicComments(data); 9821 9822 var lines = data.split(/\r?\n/); 9823 var dictionaryTable = {}; 9824 9825 function addWord(word, rules) { 9826 // Some dictionaries will list the same word multiple times with different rule sets. 9827 if (!dictionaryTable.hasOwnProperty(word)) { 9828 dictionaryTable[word] = null; 9829 } 9830 9831 if (rules.length > 0) { 9832 if (dictionaryTable[word] === null) { 9833 dictionaryTable[word] = []; 9834 } 9835 9836 dictionaryTable[word].push(rules); 9837 } 9838 } 9839 9840 // The first line is the number of words in the dictionary. 9841 for (var i = 1, _len = lines.length; i < _len; i++) { 9842 var line = lines[i]; 9843 9844 if (!line) { 9845 // Ignore empty lines. 9846 continue; 9847 } 9848 9849 var parts = line.split("/", 2); 9850 9851 var word = parts[0]; 9852 9853 // Now for each affix rule, generate that form of the word. 9854 if (parts.length > 1) { 9855 var ruleCodesArray = this.parseRuleCodes(parts[1]); 9856 9857 // Save the ruleCodes for compound word situations. 9858 if (!("NEEDAFFIX" in this.flags) || ruleCodesArray.indexOf(this.flags.NEEDAFFIX) == -1) { 9859 addWord(word, ruleCodesArray); 9860 } 9861 9862 for (var j = 0, _jlen = ruleCodesArray.length; j < _jlen; j++) { 9863 var code = ruleCodesArray[j]; 9864 9865 var rule = this.rules[code]; 9866 9867 if (rule) { 9868 var newWords = this._applyRule(word, rule); 9869 9870 for (var ii = 0, _iilen = newWords.length; ii < _iilen; ii++) { 9871 var newWord = newWords[ii]; 9872 9873 addWord(newWord, []); 9874 9875 if (rule.combineable) { 9876 for (var k = j + 1; k < _jlen; k++) { 9877 var combineCode = ruleCodesArray[k]; 9878 9879 var combineRule = this.rules[combineCode]; 9880 9881 if (combineRule) { 9882 if (combineRule.combineable && (rule.type != combineRule.type)) { 9883 var otherNewWords = this._applyRule(newWord, combineRule); 9884 9885 for (var iii = 0, _iiilen = otherNewWords.length; iii < _iiilen; iii++) { 9886 var otherNewWord = otherNewWords[iii]; 9887 addWord(otherNewWord, []); 9888 } 9889 } 9890 } 9891 } 9892 } 9893 } 9894 } 9895 9896 if (code in this.compoundRuleCodes) { 9897 this.compoundRuleCodes[code].push(word); 9898 } 9899 } 9900 } 9901 else { 9902 addWord(word.trim(), []); 9903 } 9904 } 9905 9906 return dictionaryTable; 9907 }, 9908 9909 9910 /** 9911 * Removes comment lines and then cleans up blank lines and trailing whitespace. 9912 * 9913 * @param {String} data The data from a .dic file. 9914 * @return {String} The cleaned-up data. 9915 */ 9916 9917 _removeDicComments : function (data) { 9918 // I can't find any official documentation on it, but at least the de_DE 9919 // dictionary uses tab-indented lines as comments. 9920 9921 // Remove comments 9922 data = data.replace(/^\t.*$/mg, ""); 9923 9924 return data; 9925 }, 9926 9927 parseRuleCodes : function (textCodes) { 9928 if (!textCodes) { 9929 return []; 9930 } 9931 else if (!("FLAG" in this.flags)) { 9932 // The flag symbols are single characters 9933 return textCodes.split(""); 9934 } 9935 else if (this.flags.FLAG === "long") { 9936 // The flag symbols are two characters long. 9937 var flags = []; 9938 9939 for (var i = 0, _len = textCodes.length; i < _len; i += 2) { 9940 flags.push(textCodes.substr(i, 2)); 9941 } 9942 9943 return flags; 9944 } 9945 else if (this.flags.FLAG === "num") { 9946 // The flag symbols are a CSV list of numbers. 9947 return textCodes.split(","); 9948 } 9949 else if (this.flags.FLAG === "UTF-8") { 9950 // The flags are single UTF-8 characters. 9951 // @see https://github.com/cfinke/Typo.js/issues/57 9952 return Array.from(textCodes); 9953 } 9954 else { 9955 // It's possible that this fallback case will not work for all FLAG values, 9956 // but I think it's more likely to work than not returning anything at all. 9957 return textCodes.split(""); 9958 } 9959 }, 9960 9961 /** 9962 * Applies an affix rule to a word. 9963 * 9964 * @param {String} word The base word. 9965 * @param {Object} rule The affix rule. 9966 * @returns {String[]} The new words generated by the rule. 9967 */ 9968 9969 _applyRule : function (word, rule) { 9970 var entries = rule.entries; 9971 var newWords = []; 9972 9973 for (var i = 0, _len = entries.length; i < _len; i++) { 9974 var entry = entries[i]; 9975 9976 if (!entry.match || word.match(entry.match)) { 9977 var newWord = word; 9978 9979 if (entry.remove) { 9980 newWord = newWord.replace(entry.remove, ""); 9981 } 9982 9983 if (rule.type === "SFX") { 9984 newWord = newWord + entry.add; 9985 } 9986 else { 9987 newWord = entry.add + newWord; 9988 } 9989 9990 newWords.push(newWord); 9991 9992 if ("continuationClasses" in entry) { 9993 for (var j = 0, _jlen = entry.continuationClasses.length; j < _jlen; j++) { 9994 var continuationRule = this.rules[entry.continuationClasses[j]]; 9995 9996 if (continuationRule) { 9997 newWords = newWords.concat(this._applyRule(newWord, continuationRule)); 9998 } 9999 /* 10000 else { 10001 // This shouldn't happen, but it does, at least in the de_DE dictionary. 10002 // I think the author mistakenly supplied lower-case rule codes instead 10003 // of upper-case. 10004 } 10005 */ 10006 } 10007 } 10008 } 10009 } 10010 10011 return newWords; 10012 }, 10013 10014 /** 10015 * Checks whether a word or a capitalization variant exists in the current dictionary. 10016 * The word is trimmed and several variations of capitalizations are checked. 10017 * If you want to check a word without any changes made to it, call checkExact() 10018 * 10019 * @see http://blog.stevenlevithan.com/archives/faster-trim-javascript re:trimming function 10020 * 10021 * @param {String} aWord The word to check. 10022 * @returns {Boolean} 10023 */ 10024 10025 check : function (aWord) { 10026 if (!this.loaded) { 10027 throw "Dictionary not loaded."; 10028 } 10029 10030 // Remove leading and trailing whitespace 10031 var trimmedWord = aWord.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 10032 10033 if (this.checkExact(trimmedWord)) { 10034 return true; 10035 } 10036 10037 // The exact word is not in the dictionary. 10038 if (trimmedWord.toUpperCase() === trimmedWord) { 10039 // The word was supplied in all uppercase. 10040 // Check for a capitalized form of the word. 10041 var capitalizedWord = trimmedWord[0] + trimmedWord.substring(1).toLowerCase(); 10042 10043 if (this.hasFlag(capitalizedWord, "KEEPCASE")) { 10044 // Capitalization variants are not allowed for this word. 10045 return false; 10046 } 10047 10048 if (this.checkExact(capitalizedWord)) { 10049 // The all-caps word is a capitalized word spelled correctly. 10050 return true; 10051 } 10052 10053 if (this.checkExact(trimmedWord.toLowerCase())) { 10054 // The all-caps is a lowercase word spelled correctly. 10055 return true; 10056 } 10057 } 10058 10059 var uncapitalizedWord = trimmedWord[0].toLowerCase() + trimmedWord.substring(1); 10060 10061 if (uncapitalizedWord !== trimmedWord) { 10062 if (this.hasFlag(uncapitalizedWord, "KEEPCASE")) { 10063 // Capitalization variants are not allowed for this word. 10064 return false; 10065 } 10066 10067 // Check for an uncapitalized form 10068 if (this.checkExact(uncapitalizedWord)) { 10069 // The word is spelled correctly but with the first letter capitalized. 10070 return true; 10071 } 10072 } 10073 10074 return false; 10075 }, 10076 10077 /** 10078 * Checks whether a word exists in the current dictionary. 10079 * 10080 * @param {String} word The word to check. 10081 * @returns {Boolean} 10082 */ 10083 10084 checkExact : function (word) { 10085 if (!this.loaded) { 10086 throw "Dictionary not loaded."; 10087 } 10088 10089 var ruleCodes = this.dictionaryTable[word]; 10090 10091 var i, _len; 10092 10093 if (typeof ruleCodes === 'undefined') { 10094 // Check if this might be a compound word. 10095 if ("COMPOUNDMIN" in this.flags && word.length >= this.flags.COMPOUNDMIN) { 10096 for (i = 0, _len = this.compoundRules.length; i < _len; i++) { 10097 if (word.match(this.compoundRules[i])) { 10098 return true; 10099 } 10100 } 10101 } 10102 } 10103 else if (ruleCodes === null) { 10104 // a null (but not undefined) value for an entry in the dictionary table 10105 // means that the word is in the dictionary but has no flags. 10106 return true; 10107 } 10108 else if (typeof ruleCodes === 'object') { // this.dictionary['hasOwnProperty'] will be a function. 10109 for (i = 0, _len = ruleCodes.length; i < _len; i++) { 10110 if (!this.hasFlag(word, "ONLYINCOMPOUND", ruleCodes[i])) { 10111 return true; 10112 } 10113 } 10114 } 10115 10116 return false; 10117 }, 10118 10119 /** 10120 * Looks up whether a given word is flagged with a given flag. 10121 * 10122 * @param {String} word The word in question. 10123 * @param {String} flag The flag in question. 10124 * @return {Boolean} 10125 */ 10126 10127 hasFlag : function (word, flag, wordFlags) { 10128 if (!this.loaded) { 10129 throw "Dictionary not loaded."; 10130 } 10131 10132 if (flag in this.flags) { 10133 if (typeof wordFlags === 'undefined') { 10134 wordFlags = Array.prototype.concat.apply([], this.dictionaryTable[word]); 10135 } 10136 10137 if (wordFlags && wordFlags.indexOf(this.flags[flag]) !== -1) { 10138 return true; 10139 } 10140 } 10141 10142 return false; 10143 }, 10144 10145 /** 10146 * Returns a list of suggestions for a misspelled word. 10147 * 10148 * @see http://www.norvig.com/spell-correct.html for the basis of this suggestor. 10149 * This suggestor is primitive, but it works. 10150 * 10151 * @param {String} word The misspelling. 10152 * @param {Number} [limit=5] The maximum number of suggestions to return. 10153 * @returns {String[]} The array of suggestions. 10154 */ 10155 10156 alphabet : "", 10157 10158 suggest : function (word, limit) { 10159 if (!this.loaded) { 10160 throw "Dictionary not loaded."; 10161 } 10162 10163 limit = limit || 5; 10164 10165 if (this.memoized.hasOwnProperty(word)) { 10166 var memoizedLimit = this.memoized[word]['limit']; 10167 10168 // Only return the cached list if it's big enough or if there weren't enough suggestions 10169 // to fill a smaller limit. 10170 if (limit <= memoizedLimit || this.memoized[word]['suggestions'].length < memoizedLimit) { 10171 return this.memoized[word]['suggestions'].slice(0, limit); 10172 } 10173 } 10174 10175 if (this.check(word)) return []; 10176 10177 // Check the replacement table. 10178 for (var i = 0, _len = this.replacementTable.length; i < _len; i++) { 10179 var replacementEntry = this.replacementTable[i]; 10180 10181 if (word.indexOf(replacementEntry[0]) !== -1) { 10182 var correctedWord = word.replace(replacementEntry[0], replacementEntry[1]); 10183 10184 if (this.check(correctedWord)) { 10185 return [ correctedWord ]; 10186 } 10187 } 10188 } 10189 10190 var self = this; 10191 self.alphabet = "abcdefghijklmnopqrstuvwxyz"; 10192 10193 /* 10194 if (!self.alphabet) { 10195 // Use the alphabet as implicitly defined by the words in the dictionary. 10196 var alphaHash = {}; 10197 10198 for (var i in self.dictionaryTable) { 10199 for (var j = 0, _len = i.length; j < _len; j++) { 10200 alphaHash[i[j]] = true; 10201 } 10202 } 10203 10204 for (var i in alphaHash) { 10205 self.alphabet += i; 10206 } 10207 10208 var alphaArray = self.alphabet.split(""); 10209 alphaArray.sort(); 10210 self.alphabet = alphaArray.join(""); 10211 } 10212 */ 10213 10214 /** 10215 * Returns a hash keyed by all of the strings that can be made by making a single edit to the word (or words in) `words` 10216 * The value of each entry is the number of unique ways that the resulting word can be made. 10217 * 10218 * @arg mixed words Either a hash keyed by words or a string word to operate on. 10219 * @arg bool known_only Whether this function should ignore strings that are not in the dictionary. 10220 */ 10221 function edits1(words, known_only) { 10222 var rv = {}; 10223 10224 var i, j, _iilen, _len, _jlen, _edit; 10225 10226 var alphabetLength = self.alphabet.length; 10227 10228 if (typeof words == 'string') { 10229 var word = words; 10230 words = {}; 10231 words[word] = true; 10232 } 10233 10234 for (var word in words) { 10235 for (i = 0, _len = word.length + 1; i < _len; i++) { 10236 var s = [ word.substring(0, i), word.substring(i) ]; 10237 10238 // Remove a letter. 10239 if (s[1]) { 10240 _edit = s[0] + s[1].substring(1); 10241 10242 if (!known_only || self.check(_edit)) { 10243 if (!(_edit in rv)) { 10244 rv[_edit] = 1; 10245 } 10246 else { 10247 rv[_edit] += 1; 10248 } 10249 } 10250 } 10251 10252 // Transpose letters 10253 // Eliminate transpositions of identical letters 10254 if (s[1].length > 1 && s[1][1] !== s[1][0]) { 10255 _edit = s[0] + s[1][1] + s[1][0] + s[1].substring(2); 10256 10257 if (!known_only || self.check(_edit)) { 10258 if (!(_edit in rv)) { 10259 rv[_edit] = 1; 10260 } 10261 else { 10262 rv[_edit] += 1; 10263 } 10264 } 10265 } 10266 10267 if (s[1]) { 10268 // Replace a letter with another letter. 10269 10270 var lettercase = (s[1].substring(0,1).toUpperCase() === s[1].substring(0,1)) ? 'uppercase' : 'lowercase'; 10271 10272 for (j = 0; j < alphabetLength; j++) { 10273 var replacementLetter = self.alphabet[j]; 10274 10275 // Set the case of the replacement letter to the same as the letter being replaced. 10276 if ( 'uppercase' === lettercase ) { 10277 replacementLetter = replacementLetter.toUpperCase(); 10278 } 10279 10280 // Eliminate replacement of a letter by itself 10281 if (replacementLetter != s[1].substring(0,1)){ 10282 _edit = s[0] + replacementLetter + s[1].substring(1); 10283 10284 if (!known_only || self.check(_edit)) { 10285 if (!(_edit in rv)) { 10286 rv[_edit] = 1; 10287 } 10288 else { 10289 rv[_edit] += 1; 10290 } 10291 } 10292 } 10293 } 10294 } 10295 10296 if (s[1]) { 10297 // Add a letter between each letter. 10298 for (j = 0; j < alphabetLength; j++) { 10299 // If the letters on each side are capitalized, capitalize the replacement. 10300 var lettercase = (s[0].substring(-1).toUpperCase() === s[0].substring(-1) && s[1].substring(0,1).toUpperCase() === s[1].substring(0,1)) ? 'uppercase' : 'lowercase'; 10301 10302 var replacementLetter = self.alphabet[j]; 10303 10304 if ( 'uppercase' === lettercase ) { 10305 replacementLetter = replacementLetter.toUpperCase(); 10306 } 10307 10308 _edit = s[0] + replacementLetter + s[1]; 10309 10310 if (!known_only || self.check(_edit)) { 10311 if (!(_edit in rv)) { 10312 rv[_edit] = 1; 10313 } 10314 else { 10315 rv[_edit] += 1; 10316 } 10317 } 10318 } 10319 } 10320 } 10321 } 10322 10323 return rv; 10324 } 10325 10326 function correct(word) { 10327 // Get the edit-distance-1 and edit-distance-2 forms of this word. 10328 var ed1 = edits1(word); 10329 var ed2 = edits1(ed1, true); 10330 10331 // Sort the edits based on how many different ways they were created. 10332 var weighted_corrections = ed2; 10333 10334 for (var ed1word in ed1) { 10335 if (!self.check(ed1word)) { 10336 continue; 10337 } 10338 10339 if (ed1word in weighted_corrections) { 10340 weighted_corrections[ed1word] += ed1[ed1word]; 10341 } 10342 else { 10343 weighted_corrections[ed1word] = ed1[ed1word]; 10344 } 10345 } 10346 10347 var i, _len; 10348 10349 var sorted_corrections = []; 10350 10351 for (i in weighted_corrections) { 10352 if (weighted_corrections.hasOwnProperty(i)) { 10353 sorted_corrections.push([ i, weighted_corrections[i] ]); 10354 } 10355 } 10356 10357 function sorter(a, b) { 10358 var a_val = a[1]; 10359 var b_val = b[1]; 10360 if (a_val < b_val) { 10361 return -1; 10362 } else if (a_val > b_val) { 10363 return 1; 10364 } 10365 // @todo If a and b are equally weighted, add our own weight based on something like the key locations on this language's default keyboard. 10366 return b[0].localeCompare(a[0]); 10367 } 10368 10369 sorted_corrections.sort(sorter).reverse(); 10370 10371 var rv = []; 10372 10373 var capitalization_scheme = "lowercase"; 10374 10375 if (word.toUpperCase() === word) { 10376 capitalization_scheme = "uppercase"; 10377 } 10378 else if (word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase() === word) { 10379 capitalization_scheme = "capitalized"; 10380 } 10381 10382 var working_limit = limit; 10383 10384 for (i = 0; i < Math.min(working_limit, sorted_corrections.length); i++) { 10385 if ("uppercase" === capitalization_scheme) { 10386 sorted_corrections[i][0] = sorted_corrections[i][0].toUpperCase(); 10387 } 10388 else if ("capitalized" === capitalization_scheme) { 10389 sorted_corrections[i][0] = sorted_corrections[i][0].substr(0, 1).toUpperCase() + sorted_corrections[i][0].substr(1); 10390 } 10391 10392 if (!self.hasFlag(sorted_corrections[i][0], "NOSUGGEST") && rv.indexOf(sorted_corrections[i][0]) == -1) { 10393 rv.push(sorted_corrections[i][0]); 10394 } 10395 else { 10396 // If one of the corrections is not eligible as a suggestion , make sure we still return the right number of suggestions. 10397 working_limit++; 10398 } 10399 } 10400 10401 return rv; 10402 } 10403 10404 this.memoized[word] = { 10405 'suggestions': correct(word), 10406 'limit': limit 10407 }; 10408 10409 return this.memoized[word]['suggestions']; 10410 } 10411}; 10412})(); 10413 10414// Support for use as a node.js module. 10415if (true) { 10416 module.exports = Typo; 10417} 10418 10419 10420/***/ }), 10421 10422/***/ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==": 10423/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ 10424 !*** data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== ***! 10425 \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ 10426/***/ ((module) => { 10427 10428"use strict"; 10429module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg=="; 10430 10431/***/ }), 10432 10433/***/ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==": 10434/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ 10435 !*** data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg== ***! 10436 \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ 10437/***/ ((module) => { 10438 10439"use strict"; 10440module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg=="; 10441 10442/***/ }), 10443 10444/***/ "data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feGaussianBlur stdDeviation=\"8\" /></filter></svg>#filter": 10445/*!**************************************************************************************************************************************************************!*\ 10446 !*** data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="8" /></filter></svg>#filter ***! 10447 \**************************************************************************************************************************************************************/ 10448/***/ ((module) => { 10449 10450"use strict"; 10451module.exports = "data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feGaussianBlur stdDeviation=\"8\" /></filter></svg>#filter"; 10452 10453/***/ }), 10454
10455/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.eot": 10456/*!*********************************************************************!*\ 10457 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.eot ***! 10458 \*********************************************************************/ 10459/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10460 10461"use strict"; 10462module.exports = __webpack_require__.p + "f6c676e1005f8d883fcb.eot"; 10463 10464/***/ }), 10465
10466/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.svg": 10467/*!*********************************************************************!*\ 10468 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.svg ***! 10469 \*********************************************************************/ 10470/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10471 10472"use strict"; 10473module.exports = __webpack_require__.p + "b3db874d80762a7726d7.svg"; 10474 10475/***/ }), 10476
10477/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.ttf": 10478/*!*********************************************************************!*\ 10479 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.ttf ***! 10480 \*********************************************************************/ 10481/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10482 10483"use strict"; 10484module.exports = __webpack_require__.p + "3a6cbd7e19f8451e63e6.ttf"; 10485 10486/***/ }), 10487
10488/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff": 10489/*!**********************************************************************!*\ 10490 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff ***! 10491 \**********************************************************************/ 10492/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10493 10494"use strict"; 10495module.exports = __webpack_require__.p + "2d4244cdcedf6f955511.woff"; 10496 10497/***/ }), 10498
10499/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff2": 10500/*!***********************************************************************!*\ 10501 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Bold.woff2 ***! 10502 \***********************************************************************/ 10503/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10504 10505"use strict"; 10506module.exports = __webpack_require__.p + "f59e63812dc02e93e677.woff2"; 10507 10508/***/ }), 10509
10510/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot": 10511/*!***************************************************************************!*\ 10512 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.eot ***! 10513 \***************************************************************************/ 10514/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10515 10516"use strict"; 10517module.exports = __webpack_require__.p + "60120b08290f11c17faa.eot"; 10518 10519/***/ }), 10520
10521/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg": 10522/*!***************************************************************************!*\ 10523 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.svg ***! 10524 \***************************************************************************/ 10525/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10526 10527"use strict"; 10528module.exports = __webpack_require__.p + "290640c3808fc1714a51.svg"; 10529 10530/***/ }), 10531
10532/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf": 10533/*!***************************************************************************!*\ 10534 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.ttf ***! 10535 \***************************************************************************/ 10536/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10537 10538"use strict"; 10539module.exports = __webpack_require__.p + "0fcfa3cf68921093708e.ttf"; 10540 10541/***/ }), 10542
10543/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff": 10544/*!****************************************************************************!*\ 10545 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff ***! 10546 \****************************************************************************/ 10547/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10548 10549"use strict"; 10550module.exports = __webpack_require__.p + "c0df3c405dad05bebd19.woff"; 10551 10552/***/ }), 10553
10554/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2": 10555/*!*****************************************************************************!*\ 10556 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-BoldItalic.woff2 ***! 10557 \*****************************************************************************/ 10558/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10559 10560"use strict"; 10561module.exports = __webpack_require__.p + "4977e7a93d958db4aaad.woff2"; 10562 10563/***/ }), 10564
10565/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot": 10566/*!*******************************************************************************!*\ 10567 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.eot ***! 10568 \*******************************************************************************/ 10569/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10570 10571"use strict"; 10572module.exports = __webpack_require__.p + "0aaa93df75858ceabfe3.eot"; 10573 10574/***/ }), 10575
10576/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg": 10577/*!*******************************************************************************!*\ 10578 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.svg ***! 10579 \*******************************************************************************/ 10580/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10581 10582"use strict"; 10583module.exports = __webpack_require__.p + "1f2758cabc53c7563e16.svg"; 10584 10585/***/ }), 10586
10587/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf": 10588/*!*******************************************************************************!*\ 10589 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.ttf ***! 10590 \*******************************************************************************/ 10591/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10592 10593"use strict"; 10594module.exports = __webpack_require__.p + "0339b2b1253b2c76cca5.ttf"; 10595 10596/***/ }), 10597
10598/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff": 10599/*!********************************************************************************!*\ 10600 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff ***! 10601 \********************************************************************************/ 10602/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10603 10604"use strict"; 10605module.exports = __webpack_require__.p + "34253fd9ff879587ae13.woff"; 10606 10607/***/ }), 10608
10609/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2": 10610/*!*********************************************************************************!*\ 10611 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBlack.woff2 ***! 10612 \*********************************************************************************/ 10613/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10614 10615"use strict"; 10616module.exports = __webpack_require__.p + "b04479957f76a6dd48fb.woff2"; 10617 10618/***/ }), 10619
10620/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot": 10621/*!******************************************************************************!*\ 10622 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.eot ***! 10623 \******************************************************************************/ 10624/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10625 10626"use strict"; 10627module.exports = __webpack_require__.p + "9825f7f146fe1bb8cc2a.eot"; 10628 10629/***/ }), 10630
10631/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg": 10632/*!******************************************************************************!*\ 10633 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.svg ***! 10634 \******************************************************************************/ 10635/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10636 10637"use strict"; 10638module.exports = __webpack_require__.p + "f684c2757b1deda0c26d.svg"; 10639 10640/***/ }), 10641
10642/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf": 10643/*!******************************************************************************!*\ 10644 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.ttf ***! 10645 \******************************************************************************/ 10646/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10647 10648"use strict"; 10649module.exports = __webpack_require__.p + "4e2ec0174114cbd99d43.ttf"; 10650 10651/***/ }), 10652
10653/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff": 10654/*!*******************************************************************************!*\ 10655 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff ***! 10656 \*******************************************************************************/ 10657/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10658 10659"use strict"; 10660module.exports = __webpack_require__.p + "4dbbe6bf5e8663971ee2.woff"; 10661 10662/***/ }), 10663
10664/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2": 10665/*!********************************************************************************!*\ 10666 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-CondensedBold.woff2 ***! 10667 \********************************************************************************/ 10668/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10669 10670"use strict"; 10671module.exports = __webpack_require__.p + "33da389c0466add5f476.woff2"; 10672 10673/***/ }), 10674
10675/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.eot": 10676/*!***********************************************************************!*\ 10677 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.eot ***! 10678 \***********************************************************************/ 10679/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10680 10681"use strict"; 10682module.exports = __webpack_require__.p + "b945e75e519cea048cda.eot"; 10683 10684/***/ }), 10685
10686/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.svg": 10687/*!***********************************************************************!*\ 10688 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.svg ***! 10689 \***********************************************************************/ 10690/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10691 10692"use strict"; 10693module.exports = __webpack_require__.p + "484c5221df6d705a878d.svg"; 10694 10695/***/ }), 10696
10697/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.ttf": 10698/*!***********************************************************************!*\ 10699 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.ttf ***! 10700 \***********************************************************************/ 10701/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10702 10703"use strict"; 10704module.exports = __webpack_require__.p + "f426c21abb36ddfdb74c.ttf"; 10705 10706/***/ }), 10707
10708/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff": 10709/*!************************************************************************!*\ 10710 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff ***! 10711 \************************************************************************/ 10712/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10713 10714"use strict"; 10715module.exports = __webpack_require__.p + "ea0e95f64e0361ebc096.woff"; 10716 10717/***/ }), 10718
10719/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff2": 10720/*!*************************************************************************!*\ 10721 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Italic.woff2 ***! 10722 \*************************************************************************/ 10723/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10724 10725"use strict"; 10726module.exports = __webpack_require__.p + "fd83affb7447a5fd1dbb.woff2"; 10727 10728/***/ }), 10729
10730/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.eot": 10731/*!**********************************************************************!*\ 10732 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.eot ***! 10733 \**********************************************************************/ 10734/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10735 10736"use strict"; 10737module.exports = __webpack_require__.p + "e9e25501bb8a5427be3a.eot"; 10738 10739/***/ }), 10740
10741/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.svg": 10742/*!**********************************************************************!*\ 10743 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.svg ***! 10744 \**********************************************************************/ 10745/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10746 10747"use strict"; 10748module.exports = __webpack_require__.p + "5e361e58fcbc9ad3b46b.svg"; 10749 10750/***/ }), 10751
10752/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.ttf": 10753/*!**********************************************************************!*\ 10754 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.ttf ***! 10755 \**********************************************************************/ 10756/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10757 10758"use strict"; 10759module.exports = __webpack_require__.p + "5ffd6b12ee11f029544b.ttf"; 10760 10761/***/ }), 10762
10763/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff": 10764/*!***********************************************************************!*\ 10765 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff ***! 10766 \***********************************************************************/ 10767/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10768 10769"use strict"; 10770module.exports = __webpack_require__.p + "43e58076e400525d9dba.woff"; 10771 10772/***/ }), 10773
10774/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff2": 10775/*!************************************************************************!*\ 10776 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Light.woff2 ***! 10777 \************************************************************************/ 10778/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10779 10780"use strict"; 10781module.exports = __webpack_require__.p + "d1228138dbfcdcf4b935.woff2"; 10782 10783/***/ }), 10784
10785/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.eot": 10786/*!****************************************************************************!*\ 10787 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.eot ***! 10788 \****************************************************************************/ 10789/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10790 10791"use strict"; 10792module.exports = __webpack_require__.p + "2e3ff4083f33f3c77ea0.eot"; 10793 10794/***/ }), 10795
10796/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.svg": 10797/*!****************************************************************************!*\ 10798 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.svg ***! 10799 \****************************************************************************/ 10800/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10801 10802"use strict"; 10803module.exports = __webpack_require__.p + "a5bca0943c2dedf74d52.svg"; 10804 10805/***/ }), 10806
10807/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf": 10808/*!****************************************************************************!*\ 10809 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.ttf ***! 10810 \****************************************************************************/ 10811/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10812 10813"use strict"; 10814module.exports = __webpack_require__.p + "76cce81e860fcb7abfe2.ttf"; 10815 10816/***/ }), 10817
10818/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff": 10819/*!*****************************************************************************!*\ 10820 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff ***! 10821 \*****************************************************************************/ 10822/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10823 10824"use strict"; 10825module.exports = __webpack_require__.p + "f6a3382167d11dd873f6.woff"; 10826 10827/***/ }), 10828
10829/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2": 10830/*!******************************************************************************!*\ 10831 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-LightItalic.woff2 ***! 10832 \******************************************************************************/ 10833/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10834 10835"use strict"; 10836module.exports = __webpack_require__.p + "e310cc5a28dead927f51.woff2"; 10837 10838/***/ }), 10839
10840/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.eot": 10841/*!***********************************************************************!*\ 10842 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.eot ***! 10843 \***********************************************************************/ 10844/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10845 10846"use strict"; 10847module.exports = __webpack_require__.p + "3e4f963a585f35f674ee.eot"; 10848 10849/***/ }), 10850
10851/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.svg": 10852/*!***********************************************************************!*\ 10853 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.svg ***! 10854 \***********************************************************************/ 10855/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10856 10857"use strict"; 10858module.exports = __webpack_require__.p + "419c9aaca31c14012789.svg"; 10859 10860/***/ }), 10861
10862/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.ttf": 10863/*!***********************************************************************!*\ 10864 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.ttf ***! 10865 \***********************************************************************/ 10866/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10867 10868"use strict"; 10869module.exports = __webpack_require__.p + "e06782e2e74b90fe7716.ttf"; 10870 10871/***/ }), 10872
10873/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff": 10874/*!************************************************************************!*\ 10875 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff ***! 10876 \************************************************************************/ 10877/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10878 10879"use strict"; 10880module.exports = __webpack_require__.p + "d16f692e7e736db0ce7b.woff"; 10881 10882/***/ }), 10883
10884/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff2": 10885/*!*************************************************************************!*\ 10886 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-Medium.woff2 ***! 10887 \*************************************************************************/ 10888/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10889 10890"use strict"; 10891module.exports = __webpack_require__.p + "4c29e4fa9c6112230ed4.woff2"; 10892 10893/***/ }), 10894
10895/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot": 10896/*!*****************************************************************************!*\ 10897 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.eot ***! 10898 \*****************************************************************************/ 10899/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10900 10901"use strict"; 10902module.exports = __webpack_require__.p + "8ee8655c7fab224532c7.eot"; 10903 10904/***/ }), 10905
10906/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg": 10907/*!*****************************************************************************!*\ 10908 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.svg ***! 10909 \*****************************************************************************/ 10910/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10911 10912"use strict"; 10913module.exports = __webpack_require__.p + "7d2ecf204e9fb31e4fe5.svg"; 10914 10915/***/ }), 10916
10917/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf": 10918/*!*****************************************************************************!*\ 10919 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.ttf ***! 10920 \*****************************************************************************/ 10921/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10922 10923"use strict"; 10924module.exports = __webpack_require__.p + "e0b441be652a91a651bd.ttf"; 10925 10926/***/ }), 10927
10928/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff": 10929/*!******************************************************************************!*\ 10930 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff ***! 10931 \******************************************************************************/ 10932/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10933 10934"use strict"; 10935module.exports = __webpack_require__.p + "a5a2acd720b82408ea94.woff"; 10936 10937/***/ }), 10938
10939/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2": 10940/*!*******************************************************************************!*\ 10941 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue-MediumItalic.woff2 ***! 10942 \*******************************************************************************/ 10943/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10944 10945"use strict"; 10946module.exports = __webpack_require__.p + "6138f70206ee37314a02.woff2"; 10947 10948/***/ }), 10949
10950/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.eot": 10951/*!****************************************************************!*\ 10952 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.eot ***! 10953 \****************************************************************/ 10954/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10955 10956"use strict"; 10957module.exports = __webpack_require__.p + "4e69d99ef6b9b65324ec.eot"; 10958 10959/***/ }), 10960
10961/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.svg": 10962/*!****************************************************************!*\ 10963 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.svg ***! 10964 \****************************************************************/ 10965/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10966 10967"use strict"; 10968module.exports = __webpack_require__.p + "53ece6944039b87b0d68.svg"; 10969 10970/***/ }), 10971
10972/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.ttf": 10973/*!****************************************************************!*\ 10974 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.ttf ***! 10975 \****************************************************************/ 10976/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10977 10978"use strict"; 10979module.exports = __webpack_require__.p + "768c8cdbf4d5bdf71903.ttf"; 10980 10981/***/ }), 10982
10983/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff": 10984/*!*****************************************************************!*\ 10985 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.woff ***! 10986 \*****************************************************************/ 10987/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10988 10989"use strict"; 10990module.exports = __webpack_require__.p + "2ba8cc41d26faf25314a.woff"; 10991 10992/***/ }), 10993
10994/***/ "./assets/css/typography/fonts/dehinted-HelveticaNeue.woff2": 10995/*!******************************************************************!*\ 10996 !*** ./assets/css/typography/fonts/dehinted-HelveticaNeue.woff2 ***! 10997 \******************************************************************/ 10998/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 10999 11000"use strict"; 11001module.exports = __webpack_require__.p + "db73a218633d32c5dc8b.woff2"; 11002 11003/***/ }), 11004
11005/***/ "./assets/images/Footer-decal.svg": 11006/*!****************************************!*\ 11007 !*** ./assets/images/Footer-decal.svg ***! 11008 \****************************************/ 11009/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11010 11011"use strict"; 11012module.exports = __webpack_require__.p + "9fbb063c8a5a2cc0823d.svg"; 11013 11014/***/ }), 11015
11016/***/ "./assets/images/blue-arrow-right.svg": 11017/*!********************************************!*\ 11018 !*** ./assets/images/blue-arrow-right.svg ***! 11019 \********************************************/ 11020/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11021 11022"use strict"; 11023module.exports = __webpack_require__.p + "66ac92f412aecb8f1010.svg"; 11024 11025/***/ }), 11026
11027/***/ "./assets/images/down-chevron-white.svg": 11028/*!**********************************************!*\ 11029 !*** ./assets/images/down-chevron-white.svg ***! 11030 \**********************************************/ 11031/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11032 11033"use strict"; 11034module.exports = __webpack_require__.p + "8eb5c5c05a84105dfa70.svg"; 11035 11036/***/ }), 11037
11038/***/ "./assets/images/down-chevron.svg": 11039/*!****************************************!*\ 11040 !*** ./assets/images/down-chevron.svg ***! 11041 \****************************************/ 11042/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11043 11044"use strict"; 11045module.exports = __webpack_require__.p + "6a9656d2e027b1f480bb.svg"; 11046 11047/***/ }), 11048
11049/***/ "./assets/images/point.png": 11050/*!*********************************!*\ 11051 !*** ./assets/images/point.png ***! 11052 \*********************************/ 11053/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11054 11055"use strict"; 11056module.exports = __webpack_require__.p + "02598292a29dbf133f27.png"; 11057 11058/***/ }), 11059
11060/***/ "./assets/images/red-arrow-right.svg": 11061/*!*******************************************!*\ 11062 !*** ./assets/images/red-arrow-right.svg ***! 11063 \*******************************************/ 11064/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11065 11066"use strict"; 11067module.exports = __webpack_require__.p + "44a275416bc03dc9e509.svg"; 11068 11069/***/ }), 11070
11071/***/ "./assets/images/search.svg": 11072/*!**********************************!*\ 11073 !*** ./assets/images/search.svg ***! 11074 \**********************************/ 11075/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11076 11077"use strict"; 11078module.exports = __webpack_require__.p + "2a7aeeeb0c0c4bafa03a.svg"; 11079 11080/***/ }), 11081
11082/***/ "./assets/images/special_underline.svg": 11083/*!*********************************************!*\ 11084 !*** ./assets/images/special_underline.svg ***! 11085 \*********************************************/ 11086/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11087 11088"use strict"; 11089module.exports = __webpack_require__.p + "0b174494e0fdf0a0dc33.svg"; 11090 11091/***/ }), 11092
11093/***/ "./assets/images/spinner.svg": 11094/*!***********************************!*\ 11095 !*** ./assets/images/spinner.svg ***! 11096 \***********************************/ 11097/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 11098 11099"use strict"; 11100module.exports = __webpack_require__.p + "2a7baf45616bc72e40dc.svg"; 11101 11102/***/ }), 11103 11104/***/ "?b2fd": 11105/*!********************!*\ 11106 !*** fs (ignored) ***! 11107 \********************/ 11108/***/ (() => { 11109 11110/* (ignored) */ 11111 11112/***/ }), 11113
vendor: 90,672 bytes, lines 11114-15003
11114/***/ "./node_modules/@glidejs/glide/dist/glide.esm.js": 11115/*!*******************************************************!*\ 11116 !*** ./node_modules/@glidejs/glide/dist/glide.esm.js ***! 11117 \*******************************************************/ 11118/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 11119 11120"use strict"; 11121__webpack_require__.r(__webpack_exports__); 11122/* harmony export */ __webpack_require__.d(__webpack_exports__, { 11123/* harmony export */ "default": () => (/* binding */ Glide) 11124/* harmony export */ }); 11125/*! 11126 * Glide.js v3.6.0 11127 * (c) 2013-2022 JÄdrzej ChaÅubek (https://github.com/jedrzejchalubek/) 11128 * Released under the MIT License. 11129 */ 11130 11131function _typeof(obj) { 11132 "@babel/helpers - typeof"; 11133 11134 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { 11135 _typeof = function (obj) { 11136 return typeof obj; 11137 }; 11138 } else { 11139 _typeof = function (obj) { 11140 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 11141 }; 11142 } 11143 11144 return _typeof(obj); 11145} 11146 11147function _classCallCheck(instance, Constructor) { 11148 if (!(instance instanceof Constructor)) { 11149 throw new TypeError("Cannot call a class as a function"); 11150 } 11151} 11152 11153function _defineProperties(target, props) { 11154 for (var i = 0; i < props.length; i++) { 11155 var descriptor = props[i]; 11156 descriptor.enumerable = descriptor.enumerable || false; 11157 descriptor.configurable = true; 11158 if ("value" in descriptor) descriptor.writable = true; 11159 Object.defineProperty(target, descriptor.key, descriptor); 11160 } 11161} 11162 11163function _createClass(Constructor, protoProps, staticProps) { 11164 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 11165 if (staticProps) _defineProperties(Constructor, staticProps); 11166 return Constructor; 11167} 11168 11169function _inherits(subClass, superClass) { 11170 if (typeof superClass !== "function" && superClass !== null) { 11171 throw new TypeError("Super expression must either be null or a function"); 11172 } 11173 11174 subClass.prototype = Object.create(superClass && superClass.prototype, { 11175 constructor: { 11176 value: subClass, 11177 writable: true, 11178 configurable: true 11179 } 11180 }); 11181 if (superClass) _setPrototypeOf(subClass, superClass); 11182} 11183 11184function _getPrototypeOf(o) { 11185 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { 11186 return o.__proto__ || Object.getPrototypeOf(o); 11187 }; 11188 return _getPrototypeOf(o); 11189} 11190 11191function _setPrototypeOf(o, p) { 11192 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { 11193 o.__proto__ = p; 11194 return o; 11195 }; 11196 11197 return _setPrototypeOf(o, p); 11198} 11199 11200function _isNativeReflectConstruct() { 11201 if (typeof Reflect === "undefined" || !Reflect.construct) return false; 11202 if (Reflect.construct.sham) return false; 11203 if (typeof Proxy === "function") return true; 11204 11205 try { 11206 Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); 11207 return true; 11208 } catch (e) { 11209 return false; 11210 } 11211} 11212 11213function _assertThisInitialized(self) { 11214 if (self === void 0) { 11215 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 11216 } 11217 11218 return self; 11219} 11220 11221function _possibleConstructorReturn(self, call) { 11222 if (call && (typeof call === "object" || typeof call === "function")) { 11223 return call; 11224 } else if (call !== void 0) { 11225 throw new TypeError("Derived constructors may only return object or undefined"); 11226 } 11227 11228 return _assertThisInitialized(self); 11229} 11230 11231function _createSuper(Derived) { 11232 var hasNativeReflectConstruct = _isNativeReflectConstruct(); 11233 11234 return function _createSuperInternal() { 11235 var Super = _getPrototypeOf(Derived), 11236 result; 11237 11238 if (hasNativeReflectConstruct) { 11239 var NewTarget = _getPrototypeOf(this).constructor; 11240 11241 result = Reflect.construct(Super, arguments, NewTarget); 11242 } else { 11243 result = Super.apply(this, arguments); 11244 } 11245 11246 return _possibleConstructorReturn(this, result); 11247 }; 11248} 11249 11250function _superPropBase(object, property) { 11251 while (!Object.prototype.hasOwnProperty.call(object, property)) { 11252 object = _getPrototypeOf(object); 11253 if (object === null) break; 11254 } 11255 11256 return object; 11257} 11258 11259function _get() { 11260 if (typeof Reflect !== "undefined" && Reflect.get) { 11261 _get = Reflect.get; 11262 } else { 11263 _get = function _get(target, property, receiver) { 11264 var base = _superPropBase(target, property); 11265 11266 if (!base) return; 11267 var desc = Object.getOwnPropertyDescriptor(base, property); 11268 11269 if (desc.get) { 11270 return desc.get.call(arguments.length < 3 ? target : receiver); 11271 } 11272 11273 return desc.value; 11274 }; 11275 } 11276 11277 return _get.apply(this, arguments); 11278} 11279 11280var defaults = { 11281 /** 11282 * Type of the movement. 11283 * 11284 * Available types: 11285 * `slider` - Rewinds slider to the start/end when it reaches the first or last slide. 11286 * `carousel` - Changes slides without starting over when it reaches the first or last slide. 11287 * 11288 * @type {String} 11289 */ 11290 type: 'slider', 11291 11292 /** 11293 * Start at specific slide number defined with zero-based index. 11294 * 11295 * @type {Number} 11296 */ 11297 startAt: 0, 11298 11299 /** 11300 * A number of slides visible on the single viewport. 11301 * 11302 * @type {Number} 11303 */ 11304 perView: 1, 11305 11306 /** 11307 * Focus currently active slide at a specified position in the track. 11308 * 11309 * Available inputs: 11310 * `center` - Current slide will be always focused at the center of a track. 11311 * `0,1,2,3...` - Current slide will be focused on the specified zero-based index. 11312 * 11313 * @type {String|Number} 11314 */ 11315 focusAt: 0, 11316 11317 /** 11318 * A size of the gap added between slides. 11319 * 11320 * @type {Number} 11321 */ 11322 gap: 10, 11323 11324 /** 11325 * Change slides after a specified interval. Use `false` for turning off autoplay. 11326 * 11327 * @type {Number|Boolean} 11328 */ 11329 autoplay: false, 11330 11331 /** 11332 * Stop autoplay on mouseover event. 11333 * 11334 * @type {Boolean} 11335 */ 11336 hoverpause: true, 11337 11338 /** 11339 * Allow for changing slides with left and right keyboard arrows. 11340 * 11341 * @type {Boolean} 11342 */ 11343 keyboard: true, 11344 11345 /** 11346 * Stop running `perView` number of slides from the end. Use this 11347 * option if you don't want to have an empty space after 11348 * a slider. Works only with `slider` type and a 11349 * non-centered `focusAt` setting. 11350 * 11351 * @type {Boolean} 11352 */ 11353 bound: false, 11354 11355 /** 11356 * Minimal swipe distance needed to change the slide. Use `false` for turning off a swiping. 11357 * 11358 * @type {Number|Boolean} 11359 */ 11360 swipeThreshold: 80, 11361 11362 /** 11363 * Minimal mouse drag distance needed to change the slide. Use `false` for turning off a dragging. 11364 * 11365 * @type {Number|Boolean} 11366 */ 11367 dragThreshold: 120, 11368 11369 /** 11370 * A number of slides moved on single swipe. 11371 * 11372 * Available types: 11373 * `` - Moves slider by one slide per swipe 11374 * `|` - Moves slider between views per swipe (number of slides defined in `perView` options) 11375 * 11376 * @type {String} 11377 */ 11378 perSwipe: '', 11379 11380 /** 11381 * Moving distance ratio of the slides on a swiping and dragging. 11382 * 11383 * @type {Number} 11384 */ 11385 touchRatio: 0.5, 11386 11387 /** 11388 * Angle required to activate slides moving on swiping or dragging. 11389 * 11390 * @type {Number} 11391 */ 11392 touchAngle: 45, 11393 11394 /** 11395 * Duration of the animation in milliseconds. 11396 * 11397 * @type {Number} 11398 */ 11399 animationDuration: 400, 11400 11401 /** 11402 * Allows looping the `slider` type. Slider will rewind to the first/last slide when it's at the start/end. 11403 * 11404 * @type {Boolean} 11405 */ 11406 rewind: true, 11407 11408 /** 11409 * Duration of the rewinding animation of the `slider` type in milliseconds. 11410 * 11411 * @type {Number} 11412 */ 11413 rewindDuration: 800, 11414 11415 /** 11416 * Easing function for the animation. 11417 * 11418 * @type {String} 11419 */ 11420 animationTimingFunc: 'cubic-bezier(.165, .840, .440, 1)', 11421 11422 /** 11423 * Wait for the animation to finish until the next user input can be processed 11424 * 11425 * @type {boolean} 11426 */ 11427 waitForTransition: true, 11428 11429 /** 11430 * Throttle costly events at most once per every wait milliseconds. 11431 * 11432 * @type {Number} 11433 */ 11434 throttle: 10, 11435 11436 /** 11437 * Moving direction mode. 11438 * 11439 * Available inputs: 11440 * - 'ltr' - left to right movement, 11441 * - 'rtl' - right to left movement. 11442 * 11443 * @type {String} 11444 */ 11445 direction: 'ltr', 11446 11447 /** 11448 * The distance value of the next and previous viewports which 11449 * have to peek in the current view. Accepts number and 11450 * pixels as a string. Left and right peeking can be 11451 * set up separately with a directions object. 11452 * 11453 * For example: 11454 * `100` - Peek 100px on the both sides. 11455 * { before: 100, after: 50 }` - Peek 100px on the left side and 50px on the right side. 11456 * 11457 * @type {Number|String|Object} 11458 */ 11459 peek: 0, 11460 11461 /** 11462 * Defines how many clones of current viewport will be generated. 11463 * 11464 * @type {Number} 11465 */ 11466 cloningRatio: 1, 11467 11468 /** 11469 * Collection of options applied at specified media breakpoints. 11470 * For example: display two slides per view under 800px. 11471 * `{ 11472 * '800px': { 11473 * perView: 2 11474 * } 11475 * }` 11476 */ 11477 breakpoints: {}, 11478 11479 /** 11480 * Collection of internally used HTML classes. 11481 * 11482 * @todo Refactor `slider` and `carousel` properties to single `type: { slider: '', carousel: '' }` object 11483 * @type {Object} 11484 */ 11485 classes: { 11486 swipeable: 'glide--swipeable', 11487 dragging: 'glide--dragging', 11488 direction: { 11489 ltr: 'glide--ltr', 11490 rtl: 'glide--rtl' 11491 }, 11492 type: { 11493 slider: 'glide--slider', 11494 carousel: 'glide--carousel' 11495 }, 11496 slide: { 11497 clone: 'glide__slide--clone', 11498 active: 'glide__slide--active' 11499 }, 11500 arrow: { 11501 disabled: 'glide__arrow--disabled' 11502 }, 11503 nav: { 11504 active: 'glide__bullet--active' 11505 } 11506 } 11507}; 11508 11509/** 11510 * Outputs warning message to the bowser console. 11511 * 11512 * @param {String} msg 11513 * @return {Void} 11514 */ 11515function warn(msg) { 11516 console.error("[Glide warn]: ".concat(msg)); 11517} 11518 11519/** 11520 * Converts value entered as number 11521 * or string to integer value. 11522 * 11523 * @param {String} value 11524 * @returns {Number} 11525 */ 11526function toInt(value) { 11527 return parseInt(value); 11528} 11529/** 11530 * Converts value entered as number 11531 * or string to flat value. 11532 * 11533 * @param {String} value 11534 * @returns {Number} 11535 */ 11536 11537function toFloat(value) { 11538 return parseFloat(value); 11539} 11540/** 11541 * Indicates whether the specified value is a string. 11542 * 11543 * @param {*} value 11544 * @return {Boolean} 11545 */ 11546 11547function isString(value) { 11548 return typeof value === 'string'; 11549} 11550/** 11551 * Indicates whether the specified value is an object. 11552 * 11553 * @param {*} value 11554 * @return {Boolean} 11555 * 11556 * @see https://github.com/jashkenas/underscore 11557 */ 11558 11559function isObject(value) { 11560 var type = _typeof(value); 11561 11562 return type === 'function' || type === 'object' && !!value; // eslint-disable-line no-mixed-operators 11563} 11564/** 11565 * Indicates whether the specified value is a function. 11566 * 11567 * @param {*} value 11568 * @return {Boolean} 11569 */ 11570 11571function isFunction(value) { 11572 return typeof value === 'function'; 11573} 11574/** 11575 * Indicates whether the specified value is undefined. 11576 * 11577 * @param {*} value 11578 * @return {Boolean} 11579 */ 11580 11581function isUndefined(value) { 11582 return typeof value === 'undefined'; 11583} 11584/** 11585 * Indicates whether the specified value is an array. 11586 * 11587 * @param {*} value 11588 * @return {Boolean} 11589 */ 11590 11591function isArray(value) { 11592 return value.constructor === Array; 11593} 11594 11595/** 11596 * Creates and initializes specified collection of extensions. 11597 * Each extension receives access to instance of glide and rest of components. 11598 * 11599 * @param {Object} glide 11600 * @param {Object} extensions 11601 * 11602 * @returns {Object} 11603 */ 11604 11605function mount(glide, extensions, events) { 11606 var components = {}; 11607 11608 for (var name in extensions) { 11609 if (isFunction(extensions[name])) { 11610 components[name] = extensions[name](glide, components, events); 11611 } else { 11612 warn('Extension must be a function'); 11613 } 11614 } 11615 11616 for (var _name in components) { 11617 if (isFunction(components[_name].mount)) { 11618 components[_name].mount(); 11619 } 11620 } 11621 11622 return components; 11623} 11624 11625/** 11626 * Defines getter and setter property on the specified object. 11627 * 11628 * @param {Object} obj Object where property has to be defined. 11629 * @param {String} prop Name of the defined property. 11630 * @param {Object} definition Get and set definitions for the property. 11631 * @return {Void} 11632 */ 11633function define(obj, prop, definition) { 11634 Object.defineProperty(obj, prop, definition); 11635} 11636/** 11637 * Sorts aphabetically object keys. 11638 * 11639 * @param {Object} obj 11640 * @return {Object} 11641 */ 11642 11643function sortKeys(obj) { 11644 return Object.keys(obj).sort().reduce(function (r, k) { 11645 r[k] = obj[k]; 11646 return r[k], r; 11647 }, {}); 11648} 11649/** 11650 * Merges passed settings object with default options. 11651 * 11652 * @param {Object} defaults 11653 * @param {Object} settings 11654 * @return {Object} 11655 */ 11656 11657function mergeOptions(defaults, settings) { 11658 var options = Object.assign({}, defaults, settings); // `Object.assign` do not deeply merge objects, so we 11659 // have to do it manually for every nested object 11660 // in options. Although it does not look smart, 11661 // it's smaller and faster than some fancy 11662 // merging deep-merge algorithm script. 11663 11664 if (settings.hasOwnProperty('classes')) { 11665 options.classes = Object.assign({}, defaults.classes, settings.classes); 11666 11667 if (settings.classes.hasOwnProperty('direction')) { 11668 options.classes.direction = Object.assign({}, defaults.classes.direction, settings.classes.direction); 11669 } 11670 11671 if (settings.classes.hasOwnProperty('type')) { 11672 options.classes.type = Object.assign({}, defaults.classes.type, settings.classes.type); 11673 } 11674 11675 if (settings.classes.hasOwnProperty('slide')) { 11676 options.classes.slide = Object.assign({}, defaults.classes.slide, settings.classes.slide); 11677 } 11678 11679 if (settings.classes.hasOwnProperty('arrow')) { 11680 options.classes.arrow = Object.assign({}, defaults.classes.arrow, settings.classes.arrow); 11681 } 11682 11683 if (settings.classes.hasOwnProperty('nav')) { 11684 options.classes.nav = Object.assign({}, defaults.classes.nav, settings.classes.nav); 11685 } 11686 } 11687 11688 if (settings.hasOwnProperty('breakpoints')) { 11689 options.breakpoints = Object.assign({}, defaults.breakpoints, settings.breakpoints); 11690 } 11691 11692 return options; 11693} 11694 11695var EventsBus = /*#__PURE__*/function () { 11696 /** 11697 * Construct a EventBus instance. 11698 * 11699 * @param {Object} events 11700 */ 11701 function EventsBus() { 11702 var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 11703 11704 _classCallCheck(this, EventsBus); 11705 11706 this.events = events; 11707 this.hop = events.hasOwnProperty; 11708 } 11709 /** 11710 * Adds listener to the specifed event. 11711 * 11712 * @param {String|Array} event 11713 * @param {Function} handler 11714 */ 11715 11716 11717 _createClass(EventsBus, [{ 11718 key: "on", 11719 value: function on(event, handler) { 11720 if (isArray(event)) { 11721 for (var i = 0; i < event.length; i++) { 11722 this.on(event[i], handler); 11723 } 11724 11725 return; 11726 } // Create the event's object if not yet created 11727 11728 11729 if (!this.hop.call(this.events, event)) { 11730 this.events[event] = []; 11731 } // Add the handler to queue 11732 11733 11734 var index = this.events[event].push(handler) - 1; // Provide handle back for removal of event 11735 11736 return { 11737 remove: function remove() { 11738 delete this.events[event][index]; 11739 } 11740 }; 11741 } 11742 /** 11743 * Runs registered handlers for specified event. 11744 * 11745 * @param {String|Array} event 11746 * @param {Object=} context 11747 */ 11748 11749 }, { 11750 key: "emit", 11751 value: function emit(event, context) { 11752 if (isArray(event)) { 11753 for (var i = 0; i < event.length; i++) { 11754 this.emit(event[i], context); 11755 } 11756 11757 return; 11758 } // If the event doesn't exist, or there's no handlers in queue, just leave 11759 11760 11761 if (!this.hop.call(this.events, event)) { 11762 return; 11763 } // Cycle through events queue, fire! 11764 11765 11766 this.events[event].forEach(function (item) { 11767 item(context || {}); 11768 }); 11769 } 11770 }]); 11771 11772 return EventsBus; 11773}(); 11774 11775var Glide$1 = /*#__PURE__*/function () { 11776 /** 11777 * Construct glide. 11778 * 11779 * @param {String} selector 11780 * @param {Object} options 11781 */ 11782 function Glide(selector) { 11783 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 11784 11785 _classCallCheck(this, Glide); 11786 11787 this._c = {}; 11788 this._t = []; 11789 this._e = new EventsBus(); 11790 this.disabled = false; 11791 this.selector = selector; 11792 this.settings = mergeOptions(defaults, options); 11793 this.index = this.settings.startAt; 11794 } 11795 /** 11796 * Initializes glide. 11797 * 11798 * @param {Object} extensions Collection of extensions to initialize. 11799 * @return {Glide} 11800 */ 11801 11802 11803 _createClass(Glide, [{ 11804 key: "mount", 11805 value: function mount$1() { 11806 var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 11807 11808 this._e.emit('mount.before'); 11809 11810 if (isObject(extensions)) { 11811 this._c = mount(this, extensions, this._e); 11812 } else { 11813 warn('You need to provide a object on `mount()`'); 11814 } 11815 11816 this._e.emit('mount.after'); 11817 11818 return this; 11819 } 11820 /** 11821 * Collects an instance `translate` transformers. 11822 * 11823 * @param {Array} transformers Collection of transformers. 11824 * @return {Void} 11825 */ 11826 11827 }, { 11828 key: "mutate", 11829 value: function mutate() { 11830 var transformers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 11831 11832 if (isArray(transformers)) { 11833 this._t = transformers; 11834 } else { 11835 warn('You need to provide a array on `mutate()`'); 11836 } 11837 11838 return this; 11839 } 11840 /** 11841 * Updates glide with specified settings. 11842 * 11843 * @param {Object} settings 11844 * @return {Glide} 11845 */ 11846 11847 }, { 11848 key: "update", 11849 value: function update() { 11850 var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 11851 this.settings = mergeOptions(this.settings, settings); 11852 11853 if (settings.hasOwnProperty('startAt')) { 11854 this.index = settings.startAt; 11855 } 11856 11857 this._e.emit('update'); 11858 11859 return this; 11860 } 11861 /** 11862 * Change slide with specified pattern. A pattern must be in the special format: 11863 * `>` - Move one forward 11864 * `<` - Move one backward 11865 * `={i}` - Go to {i} zero-based slide (eq. '=1', will go to second slide) 11866 * `>>` - Rewinds to end (last slide) 11867 * `<<` - Rewinds to start (first slide) 11868 * `|>` - Move one viewport forward 11869 * `|<` - Move one viewport backward 11870 * 11871 * @param {String} pattern 11872 * @return {Glide} 11873 */ 11874 11875 }, { 11876 key: "go", 11877 value: function go(pattern) { 11878 this._c.Run.make(pattern); 11879 11880 return this; 11881 } 11882 /** 11883 * Move track by specified distance. 11884 * 11885 * @param {String} distance 11886 * @return {Glide} 11887 */ 11888 11889 }, { 11890 key: "move", 11891 value: function move(distance) { 11892 this._c.Transition.disable(); 11893 11894 this._c.Move.make(distance); 11895 11896 return this; 11897 } 11898 /** 11899 * Destroy instance and revert all changes done by this._c. 11900 * 11901 * @return {Glide} 11902 */ 11903 11904 }, { 11905 key: "destroy", 11906 value: function destroy() { 11907 this._e.emit('destroy'); 11908 11909 return this; 11910 } 11911 /** 11912 * Start instance autoplaying. 11913 * 11914 * @param {Boolean|Number} interval Run autoplaying with passed interval regardless of `autoplay` settings 11915 * @return {Glide} 11916 */ 11917 11918 }, { 11919 key: "play", 11920 value: function play() { 11921 var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 11922 11923 if (interval) { 11924 this.settings.autoplay = interval; 11925 } 11926 11927 this._e.emit('play'); 11928 11929 return this; 11930 } 11931 /** 11932 * Stop instance autoplaying. 11933 * 11934 * @return {Glide} 11935 */ 11936 11937 }, { 11938 key: "pause", 11939 value: function pause() { 11940 this._e.emit('pause'); 11941 11942 return this; 11943 } 11944 /** 11945 * Sets glide into a idle status. 11946 * 11947 * @return {Glide} 11948 */ 11949 11950 }, { 11951 key: "disable", 11952 value: function disable() { 11953 this.disabled = true; 11954 return this; 11955 } 11956 /** 11957 * Sets glide into a active status. 11958 * 11959 * @return {Glide} 11960 */ 11961 11962 }, { 11963 key: "enable", 11964 value: function enable() { 11965 this.disabled = false; 11966 return this; 11967 } 11968 /** 11969 * Adds cuutom event listener with handler. 11970 * 11971 * @param {String|Array} event 11972 * @param {Function} handler 11973 * @return {Glide} 11974 */ 11975 11976 }, { 11977 key: "on", 11978 value: function on(event, handler) { 11979 this._e.on(event, handler); 11980 11981 return this; 11982 } 11983 /** 11984 * Checks if glide is a precised type. 11985 * 11986 * @param {String} name 11987 * @return {Boolean} 11988 */ 11989 11990 }, { 11991 key: "isType", 11992 value: function isType(name) { 11993 return this.settings.type === name; 11994 } 11995 /** 11996 * Gets value of the core options. 11997 * 11998 * @return {Object} 11999 */ 12000 12001 }, { 12002 key: "settings", 12003 get: function get() { 12004 return this._o; 12005 } 12006 /** 12007 * Sets value of the core options. 12008 * 12009 * @param {Object} o 12010 * @return {Void} 12011 */ 12012 , 12013 set: function set(o) { 12014 if (isObject(o)) { 12015 this._o = o; 12016 } else { 12017 warn('Options must be an `object` instance.'); 12018 } 12019 } 12020 /** 12021 * Gets current index of the slider. 12022 * 12023 * @return {Object} 12024 */ 12025 12026 }, { 12027 key: "index", 12028 get: function get() { 12029 return this._i; 12030 } 12031 /** 12032 * Sets current index a slider. 12033 * 12034 * @return {Object} 12035 */ 12036 , 12037 set: function set(i) { 12038 this._i = toInt(i); 12039 } 12040 /** 12041 * Gets type name of the slider. 12042 * 12043 * @return {String} 12044 */ 12045 12046 }, { 12047 key: "type", 12048 get: function get() { 12049 return this.settings.type; 12050 } 12051 /** 12052 * Gets value of the idle status. 12053 * 12054 * @return {Boolean} 12055 */ 12056 12057 }, { 12058 key: "disabled", 12059 get: function get() { 12060 return this._d; 12061 } 12062 /** 12063 * Sets value of the idle status. 12064 * 12065 * @return {Boolean} 12066 */ 12067 , 12068 set: function set(status) { 12069 this._d = !!status; 12070 } 12071 }]); 12072 12073 return Glide; 12074}(); 12075 12076function Run (Glide, Components, Events) { 12077 var Run = { 12078 /** 12079 * Initializes autorunning of the glide. 12080 * 12081 * @return {Void} 12082 */ 12083 mount: function mount() { 12084 this._o = false; 12085 }, 12086 12087 /** 12088 * Makes glides running based on the passed moving schema. 12089 * 12090 * @param {String} move 12091 */ 12092 make: function make(move) { 12093 var _this = this; 12094 12095 if (!Glide.disabled) { 12096 !Glide.settings.waitForTransition || Glide.disable(); 12097 this.move = move; 12098 Events.emit('run.before', this.move); 12099 this.calculate(); 12100 Events.emit('run', this.move); 12101 Components.Transition.after(function () { 12102 if (_this.isStart()) { 12103 Events.emit('run.start', _this.move); 12104 } 12105 12106 if (_this.isEnd()) { 12107 Events.emit('run.end', _this.move); 12108 } 12109 12110 if (_this.isOffset()) { 12111 _this._o = false; 12112 Events.emit('run.offset', _this.move); 12113 } 12114 12115 Events.emit('run.after', _this.move); 12116 Glide.enable(); 12117 }); 12118 } 12119 }, 12120 12121 /** 12122 * Calculates current index based on defined move. 12123 * 12124 * @return {Number|Undefined} 12125 */ 12126 calculate: function calculate() { 12127 var move = this.move, 12128 length = this.length; 12129 var steps = move.steps, 12130 direction = move.direction; // By default assume that size of view is equal to one slide 12131 12132 var viewSize = 1; // While direction is `=` we want jump to 12133 // a specified index described in steps. 12134 12135 if (direction === '=') { 12136 // Check if bound is true, 12137 // as we want to avoid whitespaces. 12138 if (Glide.settings.bound && toInt(steps) > length) { 12139 Glide.index = length; 12140 return; 12141 } 12142 12143 Glide.index = steps; 12144 return; 12145 } // When pattern is equal to `>>` we want 12146 // fast forward to the last slide. 12147 12148 12149 if (direction === '>' && steps === '>') { 12150 Glide.index = length; 12151 return; 12152 } // When pattern is equal to `<<` we want 12153 // fast forward to the first slide. 12154 12155 12156 if (direction === '<' && steps === '<') { 12157 Glide.index = 0; 12158 return; 12159 } // pagination movement 12160 12161 12162 if (direction === '|') { 12163 viewSize = Glide.settings.perView || 1; 12164 } // we are moving forward 12165 12166 12167 if (direction === '>' || direction === '|' && steps === '>') { 12168 var index = calculateForwardIndex(viewSize); 12169 12170 if (index > length) { 12171 this._o = true; 12172 } 12173 12174 Glide.index = normalizeForwardIndex(index, viewSize); 12175 return; 12176 } // we are moving backward 12177 12178 12179 if (direction === '<' || direction === '|' && steps === '<') { 12180 var _index = calculateBackwardIndex(viewSize); 12181 12182 if (_index < 0) { 12183 this._o = true; 12184 } 12185 12186 Glide.index = normalizeBackwardIndex(_index, viewSize); 12187 return; 12188 } 12189 12190 warn("Invalid direction pattern [".concat(direction).concat(steps, "] has been used")); 12191 }, 12192 12193 /** 12194 * Checks if we are on the first slide. 12195 * 12196 * @return {Boolean} 12197 */ 12198 isStart: function isStart() { 12199 return Glide.index <= 0; 12200 }, 12201 12202 /** 12203 * Checks if we are on the last slide. 12204 * 12205 * @return {Boolean} 12206 */ 12207 isEnd: function isEnd() { 12208 return Glide.index >= this.length; 12209 }, 12210 12211 /** 12212 * Checks if we are making a offset run. 12213 * 12214 * @param {String} direction 12215 * @return {Boolean} 12216 */ 12217 isOffset: function isOffset() { 12218 var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; 12219 12220 if (!direction) { 12221 return this._o; 12222 } 12223 12224 if (!this._o) { 12225 return false; 12226 } // did we view to the right? 12227 12228 12229 if (direction === '|>') { 12230 return this.move.direction === '|' && this.move.steps === '>'; 12231 } // did we view to the left? 12232 12233 12234 if (direction === '|<') { 12235 return this.move.direction === '|' && this.move.steps === '<'; 12236 } 12237 12238 return this.move.direction === direction; 12239 }, 12240 12241 /** 12242 * Checks if bound mode is active 12243 * 12244 * @return {Boolean} 12245 */ 12246 isBound: function isBound() { 12247 return Glide.isType('slider') && Glide.settings.focusAt !== 'center' && Glide.settings.bound; 12248 } 12249 }; 12250 /** 12251 * Returns index value to move forward/to the right 12252 * 12253 * @param viewSize 12254 * @returns {Number} 12255 */ 12256 12257 function calculateForwardIndex(viewSize) { 12258 var index = Glide.index; 12259 12260 if (Glide.isType('carousel')) { 12261 return index + viewSize; 12262 } 12263 12264 return index + (viewSize - index % viewSize); 12265 } 12266 /** 12267 * Normalizes the given forward index based on glide settings, preventing it to exceed certain boundaries 12268 * 12269 * @param index 12270 * @param length 12271 * @param viewSize 12272 * @returns {Number} 12273 */ 12274 12275 12276 function normalizeForwardIndex(index, viewSize) { 12277 var length = Run.length; 12278 12279 if (index <= length) { 12280 return index; 12281 } 12282 12283 if (Glide.isType('carousel')) { 12284 return index - (length + 1); 12285 } 12286 12287 if (Glide.settings.rewind) { 12288 // bound does funny things with the length, therefor we have to be certain 12289 // that we are on the last possible index value given by bound 12290 if (Run.isBound() && !Run.isEnd()) { 12291 return length; 12292 } 12293 12294 return 0; 12295 } 12296 12297 if (Run.isBound()) { 12298 return length; 12299 } 12300 12301 return Math.floor(length / viewSize) * viewSize; 12302 } 12303 /** 12304 * Calculates index value to move backward/to the left 12305 * 12306 * @param viewSize 12307 * @returns {Number} 12308 */ 12309 12310 12311 function calculateBackwardIndex(viewSize) { 12312 var index = Glide.index; 12313 12314 if (Glide.isType('carousel')) { 12315 return index - viewSize; 12316 } // ensure our back navigation results in the same index as a forward navigation 12317 // to experience a homogeneous paging 12318 12319 12320 var view = Math.ceil(index / viewSize); 12321 return (view - 1) * viewSize; 12322 } 12323 /** 12324 * Normalizes the given backward index based on glide settings, preventing it to exceed certain boundaries 12325 * 12326 * @param index 12327 * @param length 12328 * @param viewSize 12329 * @returns {*} 12330 */ 12331 12332 12333 function normalizeBackwardIndex(index, viewSize) { 12334 var length = Run.length; 12335 12336 if (index >= 0) { 12337 return index; 12338 } 12339 12340 if (Glide.isType('carousel')) { 12341 return index + (length + 1); 12342 } 12343 12344 if (Glide.settings.rewind) { 12345 // bound does funny things with the length, therefor we have to be certain 12346 // that we are on first possible index value before we to rewind to the length given by bound 12347 if (Run.isBound() && Run.isStart()) { 12348 return length; 12349 } 12350 12351 return Math.floor(length / viewSize) * viewSize; 12352 } 12353 12354 return 0; 12355 } 12356 12357 define(Run, 'move', { 12358 /** 12359 * Gets value of the move schema. 12360 * 12361 * @returns {Object} 12362 */ 12363 get: function get() { 12364 return this._m; 12365 }, 12366 12367 /** 12368 * Sets value of the move schema. 12369 * 12370 * @returns {Object} 12371 */ 12372 set: function set(value) { 12373 var step = value.substr(1); 12374 this._m = { 12375 direction: value.substr(0, 1), 12376 steps: step ? toInt(step) ? toInt(step) : step : 0 12377 }; 12378 } 12379 }); 12380 define(Run, 'length', { 12381 /** 12382 * Gets value of the running distance based 12383 * on zero-indexing number of slides. 12384 * 12385 * @return {Number} 12386 */ 12387 get: function get() { 12388 var settings = Glide.settings; 12389 var length = Components.Html.slides.length; // If the `bound` option is active, a maximum running distance should be 12390 // reduced by `perView` and `focusAt` settings. Running distance 12391 // should end before creating an empty space after instance. 12392 12393 if (this.isBound()) { 12394 return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt); 12395 } 12396 12397 return length - 1; 12398 } 12399 }); 12400 define(Run, 'offset', { 12401 /** 12402 * Gets status of the offsetting flag. 12403 * 12404 * @return {Boolean} 12405 */ 12406 get: function get() { 12407 return this._o; 12408 } 12409 }); 12410 return Run; 12411} 12412 12413/** 12414 * Returns a current time. 12415 * 12416 * @return {Number} 12417 */ 12418function now() { 12419 return new Date().getTime(); 12420} 12421 12422/** 12423 * Returns a function, that, when invoked, will only be triggered 12424 * at most once during a given window of time. 12425 * 12426 * @param {Function} func 12427 * @param {Number} wait 12428 * @param {Object=} options 12429 * @return {Function} 12430 * 12431 * @see https://github.com/jashkenas/underscore 12432 */ 12433 12434function throttle(func, wait, options) { 12435 var timeout, context, args, result; 12436 var previous = 0; 12437 if (!options) options = {}; 12438 12439 var later = function later() { 12440 previous = options.leading === false ? 0 : now(); 12441 timeout = null; 12442 result = func.apply(context, args); 12443 if (!timeout) context = args = null; 12444 }; 12445 12446 var throttled = function throttled() { 12447 var at = now(); 12448 if (!previous && options.leading === false) previous = at; 12449 var remaining = wait - (at - previous); 12450 context = this; 12451 args = arguments; 12452 12453 if (remaining <= 0 || remaining > wait) { 12454 if (timeout) { 12455 clearTimeout(timeout); 12456 timeout = null; 12457 } 12458 12459 previous = at; 12460 result = func.apply(context, args); 12461 if (!timeout) context = args = null; 12462 } else if (!timeout && options.trailing !== false) { 12463 timeout = setTimeout(later, remaining); 12464 } 12465 12466 return result; 12467 }; 12468 12469 throttled.cancel = function () { 12470 clearTimeout(timeout); 12471 previous = 0; 12472 timeout = context = args = null; 12473 }; 12474 12475 return throttled; 12476} 12477 12478var MARGIN_TYPE = { 12479 ltr: ['marginLeft', 'marginRight'], 12480 rtl: ['marginRight', 'marginLeft'] 12481}; 12482function Gaps (Glide, Components, Events) { 12483 var Gaps = { 12484 /** 12485 * Applies gaps between slides. First and last 12486 * slides do not receive it's edge margins. 12487 * 12488 * @param {HTMLCollection} slides 12489 * @return {Void} 12490 */ 12491 apply: function apply(slides) { 12492 for (var i = 0, len = slides.length; i < len; i++) { 12493 var style = slides[i].style; 12494 var direction = Components.Direction.value; 12495 12496 if (i !== 0) { 12497 style[MARGIN_TYPE[direction][0]] = "".concat(this.value / 2, "px"); 12498 } else { 12499 style[MARGIN_TYPE[direction][0]] = ''; 12500 } 12501 12502 if (i !== slides.length - 1) { 12503 style[MARGIN_TYPE[direction][1]] = "".concat(this.value / 2, "px"); 12504 } else { 12505 style[MARGIN_TYPE[direction][1]] = ''; 12506 } 12507 } 12508 }, 12509 12510 /** 12511 * Removes gaps from the slides. 12512 * 12513 * @param {HTMLCollection} slides 12514 * @returns {Void} 12515 */ 12516 remove: function remove(slides) { 12517 for (var i = 0, len = slides.length; i < len; i++) { 12518 var style = slides[i].style; 12519 style.marginLeft = ''; 12520 style.marginRight = ''; 12521 } 12522 } 12523 }; 12524 define(Gaps, 'value', { 12525 /** 12526 * Gets value of the gap. 12527 * 12528 * @returns {Number} 12529 */ 12530 get: function get() { 12531 return toInt(Glide.settings.gap); 12532 } 12533 }); 12534 define(Gaps, 'grow', { 12535 /** 12536 * Gets additional dimensions value caused by gaps. 12537 * Used to increase width of the slides wrapper. 12538 * 12539 * @returns {Number} 12540 */ 12541 get: function get() { 12542 return Gaps.value * Components.Sizes.length; 12543 } 12544 }); 12545 define(Gaps, 'reductor', { 12546 /** 12547 * Gets reduction value caused by gaps. 12548 * Used to subtract width of the slides. 12549 * 12550 * @returns {Number} 12551 */ 12552 get: function get() { 12553 var perView = Glide.settings.perView; 12554 return Gaps.value * (perView - 1) / perView; 12555 } 12556 }); 12557 /** 12558 * Apply calculated gaps: 12559 * - after building, so slides (including clones) will receive proper margins 12560 * - on updating via API, to recalculate gaps with new options 12561 */ 12562 12563 Events.on(['build.after', 'update'], throttle(function () { 12564 Gaps.apply(Components.Html.wrapper.children); 12565 }, 30)); 12566 /** 12567 * Remove gaps: 12568 * - on destroying to bring markup to its inital state 12569 */ 12570 12571 Events.on('destroy', function () { 12572 Gaps.remove(Components.Html.wrapper.children); 12573 }); 12574 return Gaps; 12575} 12576 12577/** 12578 * Finds siblings nodes of the passed node. 12579 * 12580 * @param {Element} node 12581 * @return {Array} 12582 */ 12583function siblings(node) { 12584 if (node && node.parentNode) { 12585 var n = node.parentNode.firstChild; 12586 var matched = []; 12587 12588 for (; n; n = n.nextSibling) { 12589 if (n.nodeType === 1 && n !== node) { 12590 matched.push(n); 12591 } 12592 } 12593 12594 return matched; 12595 } 12596 12597 return []; 12598} 12599/** 12600 * Checks if passed node exist and is a valid element. 12601 * 12602 * @param {Element} node 12603 * @return {Boolean} 12604 */ 12605 12606function exist(node) { 12607 if (node && node instanceof window.HTMLElement) { 12608 return true; 12609 } 12610 12611 return false; 12612} 12613/** 12614 * Coerces a NodeList to an Array. 12615 * 12616 * @param {NodeList} nodeList 12617 * @return {Array} 12618 */ 12619 12620function toArray(nodeList) { 12621 return Array.prototype.slice.call(nodeList); 12622} 12623 12624var TRACK_SELECTOR = '[data-glide-el="track"]'; 12625function Html (Glide, Components, Events) { 12626 var Html = { 12627 /** 12628 * Setup slider HTML nodes. 12629 * 12630 * @param {Glide} glide 12631 */ 12632 mount: function mount() { 12633 this.root = Glide.selector; 12634 this.track = this.root.querySelector(TRACK_SELECTOR); 12635 this.collectSlides(); 12636 }, 12637 12638 /** 12639 * Collect slides 12640 */ 12641 collectSlides: function collectSlides() { 12642 this.slides = toArray(this.wrapper.children).filter(function (slide) { 12643 return !slide.classList.contains(Glide.settings.classes.slide.clone); 12644 }); 12645 } 12646 }; 12647 define(Html, 'root', { 12648 /** 12649 * Gets node of the glide main element. 12650 * 12651 * @return {Object} 12652 */ 12653 get: function get() { 12654 return Html._r; 12655 }, 12656 12657 /** 12658 * Sets node of the glide main element. 12659 * 12660 * @return {Object} 12661 */ 12662 set: function set(r) { 12663 if (isString(r)) { 12664 r = document.querySelector(r); 12665 } 12666 12667 if (exist(r)) { 12668 Html._r = r; 12669 } else { 12670 warn('Root element must be a existing Html node'); 12671 } 12672 } 12673 }); 12674 define(Html, 'track', { 12675 /** 12676 * Gets node of the glide track with slides. 12677 * 12678 * @return {Object} 12679 */ 12680 get: function get() { 12681 return Html._t; 12682 }, 12683 12684 /** 12685 * Sets node of the glide track with slides. 12686 * 12687 * @return {Object} 12688 */ 12689 set: function set(t) { 12690 if (exist(t)) { 12691 Html._t = t; 12692 } else { 12693 warn("Could not find track element. Please use ".concat(TRACK_SELECTOR, " attribute.")); 12694 } 12695 } 12696 }); 12697 define(Html, 'wrapper', { 12698 /** 12699 * Gets node of the slides wrapper. 12700 * 12701 * @return {Object} 12702 */ 12703 get: function get() { 12704 return Html.track.children[0]; 12705 } 12706 }); 12707 /** 12708 * Add/remove/reorder dynamic slides 12709 */ 12710 12711 Events.on('update', function () { 12712 Html.collectSlides(); 12713 }); 12714 return Html; 12715} 12716 12717function Peek (Glide, Components, Events) { 12718 var Peek = { 12719 /** 12720 * Setups how much to peek based on settings. 12721 * 12722 * @return {Void} 12723 */ 12724 mount: function mount() { 12725 this.value = Glide.settings.peek; 12726 } 12727 }; 12728 define(Peek, 'value', { 12729 /** 12730 * Gets value of the peek. 12731 * 12732 * @returns {Number|Object} 12733 */ 12734 get: function get() { 12735 return Peek._v; 12736 }, 12737 12738 /** 12739 * Sets value of the peek. 12740 * 12741 * @param {Number|Object} value 12742 * @return {Void} 12743 */ 12744 set: function set(value) { 12745 if (isObject(value)) { 12746 value.before = toInt(value.before); 12747 value.after = toInt(value.after); 12748 } else { 12749 value = toInt(value); 12750 } 12751 12752 Peek._v = value; 12753 } 12754 }); 12755 define(Peek, 'reductor', { 12756 /** 12757 * Gets reduction value caused by peek. 12758 * 12759 * @returns {Number} 12760 */ 12761 get: function get() { 12762 var value = Peek.value; 12763 var perView = Glide.settings.perView; 12764 12765 if (isObject(value)) { 12766 return value.before / perView + value.after / perView; 12767 } 12768 12769 return value * 2 / perView; 12770 } 12771 }); 12772 /** 12773 * Recalculate peeking sizes on: 12774 * - when resizing window to update to proper percents 12775 */ 12776 12777 Events.on(['resize', 'update'], function () { 12778 Peek.mount(); 12779 }); 12780 return Peek; 12781} 12782 12783function Move (Glide, Components, Events) { 12784 var Move = { 12785 /** 12786 * Constructs move component. 12787 * 12788 * @returns {Void} 12789 */ 12790 mount: function mount() { 12791 this._o = 0; 12792 }, 12793 12794 /** 12795 * Calculates a movement value based on passed offset and currently active index. 12796 * 12797 * @param {Number} offset 12798 * @return {Void} 12799 */ 12800 make: function make() { 12801 var _this = this; 12802 12803 var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; 12804 this.offset = offset; 12805 Events.emit('move', { 12806 movement: this.value 12807 }); 12808 Components.Transition.after(function () { 12809 Events.emit('move.after', { 12810 movement: _this.value 12811 }); 12812 }); 12813 } 12814 }; 12815 define(Move, 'offset', { 12816 /** 12817 * Gets an offset value used to modify current translate. 12818 * 12819 * @return {Object} 12820 */ 12821 get: function get() { 12822 return Move._o; 12823 }, 12824 12825 /** 12826 * Sets an offset value used to modify current translate. 12827 * 12828 * @return {Object} 12829 */ 12830 set: function set(value) { 12831 Move._o = !isUndefined(value) ? toInt(value) : 0; 12832 } 12833 }); 12834 define(Move, 'translate', { 12835 /** 12836 * Gets a raw movement value. 12837 * 12838 * @return {Number} 12839 */ 12840 get: function get() { 12841 return Components.Sizes.slideWidth * Glide.index; 12842 } 12843 }); 12844 define(Move, 'value', { 12845 /** 12846 * Gets an actual movement value corrected by offset. 12847 * 12848 * @return {Number} 12849 */ 12850 get: function get() { 12851 var offset = this.offset; 12852 var translate = this.translate; 12853 12854 if (Components.Direction.is('rtl')) { 12855 return translate + offset; 12856 } 12857 12858 return translate - offset; 12859 } 12860 }); 12861 /** 12862 * Make movement to proper slide on: 12863 * - before build, so glide will start at `startAt` index 12864 * - on each standard run to move to newly calculated index 12865 */ 12866 12867 Events.on(['build.before', 'run'], function () { 12868 Move.make(); 12869 }); 12870 return Move; 12871} 12872 12873function Sizes (Glide, Components, Events) { 12874 var Sizes = { 12875 /** 12876 * Setups dimensions of slides. 12877 * 12878 * @return {Void} 12879 */ 12880 setupSlides: function setupSlides() { 12881 var width = "".concat(this.slideWidth, "px"); 12882 var slides = Components.Html.slides; 12883 12884 for (var i = 0; i < slides.length; i++) { 12885 slides[i].style.width = width; 12886 } 12887 }, 12888 12889 /** 12890 * Setups dimensions of slides wrapper. 12891 * 12892 * @return {Void} 12893 */ 12894 setupWrapper: function setupWrapper() { 12895 Components.Html.wrapper.style.width = "".concat(this.wrapperSize, "px"); 12896 }, 12897 12898 /** 12899 * Removes applied styles from HTML elements. 12900 * 12901 * @returns {Void} 12902 */ 12903 remove: function remove() { 12904 var slides = Components.Html.slides; 12905 12906 for (var i = 0; i < slides.length; i++) { 12907 slides[i].style.width = ''; 12908 } 12909 12910 Components.Html.wrapper.style.width = ''; 12911 } 12912 }; 12913 define(Sizes, 'length', { 12914 /** 12915 * Gets count number of the slides. 12916 * 12917 * @return {Number} 12918 */ 12919 get: function get() { 12920 return Components.Html.slides.length; 12921 } 12922 }); 12923 define(Sizes, 'width', { 12924 /** 12925 * Gets width value of the slider (visible area). 12926 * 12927 * @return {Number} 12928 */ 12929 get: function get() { 12930 return Components.Html.track.offsetWidth; 12931 } 12932 }); 12933 define(Sizes, 'wrapperSize', { 12934 /** 12935 * Gets size of the slides wrapper. 12936 * 12937 * @return {Number} 12938 */ 12939 get: function get() { 12940 return Sizes.slideWidth * Sizes.length + Components.Gaps.grow + Components.Clones.grow; 12941 } 12942 }); 12943 define(Sizes, 'slideWidth', { 12944 /** 12945 * Gets width value of a single slide. 12946 * 12947 * @return {Number} 12948 */ 12949 get: function get() { 12950 return Sizes.width / Glide.settings.perView - Components.Peek.reductor - Components.Gaps.reductor; 12951 } 12952 }); 12953 /** 12954 * Apply calculated glide's dimensions: 12955 * - before building, so other dimensions (e.g. translate) will be calculated propertly 12956 * - when resizing window to recalculate sildes dimensions 12957 * - on updating via API, to calculate dimensions based on new options 12958 */ 12959 12960 Events.on(['build.before', 'resize', 'update'], function () { 12961 Sizes.setupSlides(); 12962 Sizes.setupWrapper(); 12963 }); 12964 /** 12965 * Remove calculated glide's dimensions: 12966 * - on destoting to bring markup to its inital state 12967 */ 12968 12969 Events.on('destroy', function () { 12970 Sizes.remove(); 12971 }); 12972 return Sizes; 12973} 12974 12975function Build (Glide, Components, Events) { 12976 var Build = { 12977 /** 12978 * Init glide building. Adds classes, sets 12979 * dimensions and setups initial state. 12980 * 12981 * @return {Void} 12982 */ 12983 mount: function mount() { 12984 Events.emit('build.before'); 12985 this.typeClass(); 12986 this.activeClass(); 12987 Events.emit('build.after'); 12988 }, 12989 12990 /** 12991 * Adds `type` class to the glide element. 12992 * 12993 * @return {Void} 12994 */ 12995 typeClass: function typeClass() { 12996 Components.Html.root.classList.add(Glide.settings.classes.type[Glide.settings.type]); 12997 }, 12998 12999 /** 13000 * Sets active class to current slide. 13001 * 13002 * @return {Void} 13003 */ 13004 activeClass: function activeClass() { 13005 var classes = Glide.settings.classes; 13006 var slide = Components.Html.slides[Glide.index]; 13007 13008 if (slide) { 13009 slide.classList.add(classes.slide.active); 13010 siblings(slide).forEach(function (sibling) { 13011 sibling.classList.remove(classes.slide.active); 13012 }); 13013 } 13014 }, 13015 13016 /** 13017 * Removes HTML classes applied at building. 13018 * 13019 * @return {Void} 13020 */ 13021 removeClasses: function removeClasses() { 13022 var _Glide$settings$class = Glide.settings.classes, 13023 type = _Glide$settings$class.type, 13024 slide = _Glide$settings$class.slide; 13025 Components.Html.root.classList.remove(type[Glide.settings.type]); 13026 Components.Html.slides.forEach(function (sibling) { 13027 sibling.classList.remove(slide.active); 13028 }); 13029 } 13030 }; 13031 /** 13032 * Clear building classes: 13033 * - on destroying to bring HTML to its initial state 13034 * - on updating to remove classes before remounting component 13035 */ 13036 13037 Events.on(['destroy', 'update'], function () { 13038 Build.removeClasses(); 13039 }); 13040 /** 13041 * Remount component: 13042 * - on resizing of the window to calculate new dimensions 13043 * - on updating settings via API 13044 */ 13045 13046 Events.on(['resize', 'update'], function () { 13047 Build.mount(); 13048 }); 13049 /** 13050 * Swap active class of current slide: 13051 * - after each move to the new index 13052 */ 13053 13054 Events.on('move.after', function () { 13055 Build.activeClass(); 13056 }); 13057 return Build; 13058} 13059 13060function Clones (Glide, Components, Events) { 13061 var Clones = { 13062 /** 13063 * Create pattern map and collect slides to be cloned. 13064 */ 13065 mount: function mount() { 13066 this.items = []; 13067 13068 if (Glide.isType('carousel')) { 13069 this.items = this.collect(); 13070 } 13071 }, 13072 13073 /** 13074 * Collect clones with pattern. 13075 * 13076 * @return {[]} 13077 */ 13078 collect: function collect() { 13079 var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 13080 var slides = Components.Html.slides; 13081 var _Glide$settings = Glide.settings, 13082 perView = _Glide$settings.perView, 13083 classes = _Glide$settings.classes, 13084 cloningRatio = _Glide$settings.cloningRatio; 13085 13086 if (slides.length !== 0) { 13087 var peekIncrementer = +!!Glide.settings.peek; 13088 var cloneCount = perView + peekIncrementer + Math.round(perView / 2); 13089 var append = slides.slice(0, cloneCount).reverse(); 13090 var prepend = slides.slice(cloneCount * -1); 13091 13092 for (var r = 0; r < Math.max(cloningRatio, Math.floor(perView / slides.length)); r++) { 13093 for (var i = 0; i < append.length; i++) { 13094 var clone = append[i].cloneNode(true); 13095 clone.classList.add(classes.slide.clone); 13096 items.push(clone); 13097 } 13098 13099 for (var _i = 0; _i < prepend.length; _i++) { 13100 var _clone = prepend[_i].cloneNode(true); 13101 13102 _clone.classList.add(classes.slide.clone); 13103 13104 items.unshift(_clone); 13105 } 13106 } 13107 } 13108 13109 return items; 13110 }, 13111 13112 /** 13113 * Append cloned slides with generated pattern. 13114 * 13115 * @return {Void} 13116 */ 13117 append: function append() { 13118 var items = this.items; 13119 var _Components$Html = Components.Html, 13120 wrapper = _Components$Html.wrapper, 13121 slides = _Components$Html.slides; 13122 var half = Math.floor(items.length / 2); 13123 var prepend = items.slice(0, half).reverse(); 13124 var append = items.slice(half * -1).reverse(); 13125 var width = "".concat(Components.Sizes.slideWidth, "px"); 13126 13127 for (var i = 0; i < append.length; i++) { 13128 wrapper.appendChild(append[i]); 13129 } 13130 13131 for (var _i2 = 0; _i2 < prepend.length; _i2++) { 13132 wrapper.insertBefore(prepend[_i2], slides[0]); 13133 } 13134 13135 for (var _i3 = 0; _i3 < items.length; _i3++) { 13136 items[_i3].style.width = width; 13137 } 13138 }, 13139 13140 /** 13141 * Remove all cloned slides. 13142 * 13143 * @return {Void} 13144 */ 13145 remove: function remove() { 13146 var items = this.items; 13147 13148 for (var i = 0; i < items.length; i++) { 13149 Components.Html.wrapper.removeChild(items[i]); 13150 } 13151 } 13152 }; 13153 define(Clones, 'grow', { 13154 /** 13155 * Gets additional dimensions value caused by clones. 13156 * 13157 * @return {Number} 13158 */ 13159 get: function get() { 13160 return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones.items.length; 13161 } 13162 }); 13163 /** 13164 * Append additional slide's clones: 13165 * - while glide's type is `carousel` 13166 */ 13167 13168 Events.on('update', function () { 13169 Clones.remove(); 13170 Clones.mount(); 13171 Clones.append(); 13172 }); 13173 /** 13174 * Append additional slide's clones: 13175 * - while glide's type is `carousel` 13176 */ 13177 13178 Events.on('build.before', function () { 13179 if (Glide.isType('carousel')) { 13180 Clones.append(); 13181 } 13182 }); 13183 /** 13184 * Remove clones HTMLElements: 13185 * - on destroying, to bring HTML to its initial state 13186 */ 13187 13188 Events.on('destroy', function () { 13189 Clones.remove(); 13190 }); 13191 return Clones; 13192} 13193 13194var EventsBinder = /*#__PURE__*/function () { 13195 /** 13196 * Construct a EventsBinder instance. 13197 */ 13198 function EventsBinder() { 13199 var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 13200 13201 _classCallCheck(this, EventsBinder); 13202 13203 this.listeners = listeners; 13204 } 13205 /** 13206 * Adds events listeners to arrows HTML elements. 13207 * 13208 * @param {String|Array} events 13209 * @param {Element|Window|Document} el 13210 * @param {Function} closure 13211 * @param {Boolean|Object} capture 13212 * @return {Void} 13213 */ 13214 13215 13216 _createClass(EventsBinder, [{ 13217 key: "on", 13218 value: function on(events, el, closure) { 13219 var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; 13220 13221 if (isString(events)) { 13222 events = [events]; 13223 } 13224 13225 for (var i = 0; i < events.length; i++) { 13226 this.listeners[events[i]] = closure; 13227 el.addEventListener(events[i], this.listeners[events[i]], capture); 13228 } 13229 } 13230 /** 13231 * Removes event listeners from arrows HTML elements. 13232 * 13233 * @param {String|Array} events 13234 * @param {Element|Window|Document} el 13235 * @param {Boolean|Object} capture 13236 * @return {Void} 13237 */ 13238 13239 }, { 13240 key: "off", 13241 value: function off(events, el) { 13242 var capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 13243 13244 if (isString(events)) { 13245 events = [events]; 13246 } 13247 13248 for (var i = 0; i < events.length; i++) { 13249 el.removeEventListener(events[i], this.listeners[events[i]], capture); 13250 } 13251 } 13252 /** 13253 * Destroy collected listeners. 13254 * 13255 * @returns {Void} 13256 */ 13257 13258 }, { 13259 key: "destroy", 13260 value: function destroy() { 13261 delete this.listeners; 13262 } 13263 }]); 13264 13265 return EventsBinder; 13266}(); 13267 13268function Resize (Glide, Components, Events) { 13269 /** 13270 * Instance of the binder for DOM Events. 13271 * 13272 * @type {EventsBinder} 13273 */ 13274 var Binder = new EventsBinder(); 13275 var Resize = { 13276 /** 13277 * Initializes window bindings. 13278 */ 13279 mount: function mount() { 13280 this.bind(); 13281 }, 13282 13283 /** 13284 * Binds `rezsize` listener to the window. 13285 * It's a costly event, so we are debouncing it. 13286 * 13287 * @return {Void} 13288 */ 13289 bind: function bind() { 13290 Binder.on('resize', window, throttle(function () { 13291 Events.emit('resize'); 13292 }, Glide.settings.throttle)); 13293 }, 13294 13295 /** 13296 * Unbinds listeners from the window. 13297 * 13298 * @return {Void} 13299 */ 13300 unbind: function unbind() { 13301 Binder.off('resize', window); 13302 } 13303 }; 13304 /** 13305 * Remove bindings from window: 13306 * - on destroying, to remove added EventListener 13307 */ 13308 13309 Events.on('destroy', function () { 13310 Resize.unbind(); 13311 Binder.destroy(); 13312 }); 13313 return Resize; 13314} 13315 13316var VALID_DIRECTIONS = ['ltr', 'rtl']; 13317var FLIPED_MOVEMENTS = { 13318 '>': '<', 13319 '<': '>', 13320 '=': '=' 13321}; 13322function Direction (Glide, Components, Events) { 13323 var Direction = { 13324 /** 13325 * Setups gap value based on settings. 13326 * 13327 * @return {Void} 13328 */ 13329 mount: function mount() { 13330 this.value = Glide.settings.direction; 13331 }, 13332 13333 /** 13334 * Resolves pattern based on direction value 13335 * 13336 * @param {String} pattern 13337 * @returns {String} 13338 */ 13339 resolve: function resolve(pattern) { 13340 var token = pattern.slice(0, 1); 13341 13342 if (this.is('rtl')) { 13343 return pattern.split(token).join(FLIPED_MOVEMENTS[token]); 13344 } 13345 13346 return pattern; 13347 }, 13348 13349 /** 13350 * Checks value of direction mode. 13351 * 13352 * @param {String} direction 13353 * @returns {Boolean} 13354 */ 13355 is: function is(direction) { 13356 return this.value === direction; 13357 }, 13358 13359 /** 13360 * Applies direction class to the root HTML element. 13361 * 13362 * @return {Void} 13363 */ 13364 addClass: function addClass() { 13365 Components.Html.root.classList.add(Glide.settings.classes.direction[this.value]); 13366 }, 13367 13368 /** 13369 * Removes direction class from the root HTML element. 13370 * 13371 * @return {Void} 13372 */ 13373 removeClass: function removeClass() { 13374 Components.Html.root.classList.remove(Glide.settings.classes.direction[this.value]); 13375 } 13376 }; 13377 define(Direction, 'value', { 13378 /** 13379 * Gets value of the direction. 13380 * 13381 * @returns {Number} 13382 */ 13383 get: function get() { 13384 return Direction._v; 13385 }, 13386 13387 /** 13388 * Sets value of the direction. 13389 * 13390 * @param {String} value 13391 * @return {Void} 13392 */ 13393 set: function set(value) { 13394 if (VALID_DIRECTIONS.indexOf(value) > -1) { 13395 Direction._v = value; 13396 } else { 13397 warn('Direction value must be `ltr` or `rtl`'); 13398 } 13399 } 13400 }); 13401 /** 13402 * Clear direction class: 13403 * - on destroy to bring HTML to its initial state 13404 * - on update to remove class before reappling bellow 13405 */ 13406 13407 Events.on(['destroy', 'update'], function () { 13408 Direction.removeClass(); 13409 }); 13410 /** 13411 * Remount component: 13412 * - on update to reflect changes in direction value 13413 */ 13414 13415 Events.on('update', function () { 13416 Direction.mount(); 13417 }); 13418 /** 13419 * Apply direction class: 13420 * - before building to apply class for the first time 13421 * - on updating to reapply direction class that may changed 13422 */ 13423 13424 Events.on(['build.before', 'update'], function () { 13425 Direction.addClass(); 13426 }); 13427 return Direction; 13428} 13429 13430/** 13431 * Reflects value of glide movement. 13432 * 13433 * @param {Object} Glide 13434 * @param {Object} Components 13435 * @return {Object} 13436 */ 13437function Rtl (Glide, Components) { 13438 return { 13439 /** 13440 * Negates the passed translate if glide is in RTL option. 13441 * 13442 * @param {Number} translate 13443 * @return {Number} 13444 */ 13445 modify: function modify(translate) { 13446 if (Components.Direction.is('rtl')) { 13447 return -translate; 13448 } 13449 13450 return translate; 13451 } 13452 }; 13453} 13454 13455/** 13456 * Updates glide movement with a `gap` settings. 13457 * 13458 * @param {Object} Glide 13459 * @param {Object} Components 13460 * @return {Object} 13461 */ 13462function Gap (Glide, Components) { 13463 return { 13464 /** 13465 * Modifies passed translate value with number in the `gap` settings. 13466 * 13467 * @param {Number} translate 13468 * @return {Number} 13469 */ 13470 modify: function modify(translate) { 13471 var multiplier = Math.floor(translate / Components.Sizes.slideWidth); 13472 return translate + Components.Gaps.value * multiplier; 13473 } 13474 }; 13475} 13476 13477/** 13478 * Updates glide movement with width of additional clones width. 13479 * 13480 * @param {Object} Glide 13481 * @param {Object} Components 13482 * @return {Object} 13483 */ 13484function Grow (Glide, Components) { 13485 return { 13486 /** 13487 * Adds to the passed translate width of the half of clones. 13488 * 13489 * @param {Number} translate 13490 * @return {Number} 13491 */ 13492 modify: function modify(translate) { 13493 return translate + Components.Clones.grow / 2; 13494 } 13495 }; 13496} 13497 13498/** 13499 * Updates glide movement with a `peek` settings. 13500 * 13501 * @param {Object} Glide 13502 * @param {Object} Components 13503 * @return {Object} 13504 */ 13505 13506function Peeking (Glide, Components) { 13507 return { 13508 /** 13509 * Modifies passed translate value with a `peek` setting. 13510 * 13511 * @param {Number} translate 13512 * @return {Number} 13513 */ 13514 modify: function modify(translate) { 13515 if (Glide.settings.focusAt >= 0) { 13516 var peek = Components.Peek.value; 13517 13518 if (isObject(peek)) { 13519 return translate - peek.before; 13520 } 13521 13522 return translate - peek; 13523 } 13524 13525 return translate; 13526 } 13527 }; 13528} 13529 13530/** 13531 * Updates glide movement with a `focusAt` settings. 13532 * 13533 * @param {Object} Glide 13534 * @param {Object} Components 13535 * @return {Object} 13536 */ 13537function Focusing (Glide, Components) { 13538 return { 13539 /** 13540 * Modifies passed translate value with index in the `focusAt` setting. 13541 * 13542 * @param {Number} translate 13543 * @return {Number} 13544 */ 13545 modify: function modify(translate) { 13546 var gap = Components.Gaps.value; 13547 var width = Components.Sizes.width; 13548 var focusAt = Glide.settings.focusAt; 13549 var slideWidth = Components.Sizes.slideWidth; 13550 13551 if (focusAt === 'center') { 13552 return translate - (width / 2 - slideWidth / 2); 13553 } 13554 13555 return translate - slideWidth * focusAt - gap * focusAt; 13556 } 13557 }; 13558} 13559 13560/** 13561 * Applies diffrent transformers on translate value. 13562 * 13563 * @param {Object} Glide 13564 * @param {Object} Components 13565 * @return {Object} 13566 */ 13567 13568function mutator (Glide, Components, Events) { 13569 /** 13570 * Merge instance transformers with collection of default transformers. 13571 * It's important that the Rtl component be last on the list, 13572 * so it reflects all previous transformations. 13573 * 13574 * @type {Array} 13575 */ 13576 var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide._t, [Rtl]); 13577 return { 13578 /** 13579 * Piplines translate value with registered transformers. 13580 * 13581 * @param {Number} translate 13582 * @return {Number} 13583 */ 13584 mutate: function mutate(translate) { 13585 for (var i = 0; i < TRANSFORMERS.length; i++) { 13586 var transformer = TRANSFORMERS[i]; 13587 13588 if (isFunction(transformer) && isFunction(transformer().modify)) { 13589 translate = transformer(Glide, Components, Events).modify(translate); 13590 } else { 13591 warn('Transformer should be a function that returns an object with `modify()` method'); 13592 } 13593 } 13594 13595 return translate; 13596 } 13597 }; 13598} 13599 13600function Translate (Glide, Components, Events) { 13601 var Translate = { 13602 /** 13603 * Sets value of translate on HTML element. 13604 * 13605 * @param {Number} value 13606 * @return {Void} 13607 */ 13608 set: function set(value) { 13609 var transform = mutator(Glide, Components).mutate(value); 13610 var translate3d = "translate3d(".concat(-1 * transform, "px, 0px, 0px)"); 13611 Components.Html.wrapper.style.mozTransform = translate3d; // needed for supported Firefox 10-15 13612 13613 Components.Html.wrapper.style.webkitTransform = translate3d; // needed for supported Chrome 10-35, Safari 5.1-8, and Opera 15-22 13614 13615 Components.Html.wrapper.style.transform = translate3d; 13616 }, 13617 13618 /** 13619 * Removes value of translate from HTML element. 13620 * 13621 * @return {Void} 13622 */ 13623 remove: function remove() { 13624 Components.Html.wrapper.style.transform = ''; 13625 }, 13626 13627 /** 13628 * @return {number} 13629 */ 13630 getStartIndex: function getStartIndex() { 13631 var length = Components.Sizes.length; 13632 var index = Glide.index; 13633 var perView = Glide.settings.perView; 13634 13635 if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) { 13636 return length + (index - perView); 13637 } // "modulo length" converts an index that equals length to zero 13638 13639 13640 return (index + perView) % length; 13641 }, 13642 13643 /** 13644 * @return {number} 13645 */ 13646 getTravelDistance: function getTravelDistance() { 13647 var travelDistance = Components.Sizes.slideWidth * Glide.settings.perView; 13648 13649 if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) { 13650 // reverse travel distance so that we don't have to change subtract operations 13651 return travelDistance * -1; 13652 } 13653 13654 return travelDistance; 13655 } 13656 }; 13657 /** 13658 * Set new translate value: 13659 * - on move to reflect index change 13660 * - on updating via API to reflect possible changes in options 13661 */ 13662 13663 Events.on('move', function (context) { 13664 if (!Glide.isType('carousel') || !Components.Run.isOffset()) { 13665 return Translate.set(context.movement); 13666 } 13667 13668 Components.Transition.after(function () { 13669 Events.emit('translate.jump'); 13670 Translate.set(Components.Sizes.slideWidth * Glide.index); 13671 }); 13672 var startWidth = Components.Sizes.slideWidth * Components.Translate.getStartIndex(); 13673 return Translate.set(startWidth - Components.Translate.getTravelDistance()); 13674 }); 13675 /** 13676 * Remove translate: 13677 * - on destroying to bring markup to its inital state 13678 */ 13679 13680 Events.on('destroy', function () { 13681 Translate.remove(); 13682 }); 13683 return Translate; 13684} 13685 13686function Transition (Glide, Components, Events) { 13687 /** 13688 * Holds inactivity status of transition. 13689 * When true transition is not applied. 13690 * 13691 * @type {Boolean} 13692 */ 13693 var disabled = false; 13694 var Transition = { 13695 /** 13696 * Composes string of the CSS transition. 13697 * 13698 * @param {String} property 13699 * @return {String} 13700 */ 13701 compose: function compose(property) { 13702 var settings = Glide.settings; 13703 13704 if (!disabled) { 13705 return "".concat(property, " ").concat(this.duration, "ms ").concat(settings.animationTimingFunc); 13706 } 13707 13708 return "".concat(property, " 0ms ").concat(settings.animationTimingFunc); 13709 }, 13710 13711 /** 13712 * Sets value of transition on HTML element. 13713 * 13714 * @param {String=} property 13715 * @return {Void} 13716 */ 13717 set: function set() { 13718 var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform'; 13719 Components.Html.wrapper.style.transition = this.compose(property); 13720 }, 13721 13722 /** 13723 * Removes value of transition from HTML element. 13724 * 13725 * @return {Void} 13726 */ 13727 remove: function remove() { 13728 Components.Html.wrapper.style.transition = ''; 13729 }, 13730 13731 /** 13732 * Runs callback after animation. 13733 * 13734 * @param {Function} callback 13735 * @return {Void} 13736 */ 13737 after: function after(callback) { 13738 setTimeout(function () { 13739 callback(); 13740 }, this.duration); 13741 }, 13742 13743 /** 13744 * Enable transition. 13745 * 13746 * @return {Void} 13747 */ 13748 enable: function enable() { 13749 disabled = false; 13750 this.set(); 13751 }, 13752 13753 /** 13754 * Disable transition. 13755 * 13756 * @return {Void} 13757 */ 13758 disable: function disable() { 13759 disabled = true; 13760 this.set(); 13761 } 13762 }; 13763 define(Transition, 'duration', { 13764 /** 13765 * Gets duration of the transition based 13766 * on currently running animation type. 13767 * 13768 * @return {Number} 13769 */ 13770 get: function get() { 13771 var settings = Glide.settings; 13772 13773 if (Glide.isType('slider') && Components.Run.offset) { 13774 return settings.rewindDuration; 13775 } 13776 13777 return settings.animationDuration; 13778 } 13779 }); 13780 /** 13781 * Set transition `style` value: 13782 * - on each moving, because it may be cleared by offset move 13783 */ 13784 13785 Events.on('move', function () { 13786 Transition.set(); 13787 }); 13788 /** 13789 * Disable transition: 13790 * - before initial build to avoid transitioning from `0` to `startAt` index 13791 * - while resizing window and recalculating dimensions 13792 * - on jumping from offset transition at start and end edges in `carousel` type 13793 */ 13794 13795 Events.on(['build.before', 'resize', 'translate.jump'], function () { 13796 Transition.disable(); 13797 }); 13798 /** 13799 * Enable transition: 13800 * - on each running, because it may be disabled by offset move 13801 */ 13802 13803 Events.on('run', function () { 13804 Transition.enable(); 13805 }); 13806 /** 13807 * Remove transition: 13808 * - on destroying to bring markup to its inital state 13809 */ 13810 13811 Events.on('destroy', function () { 13812 Transition.remove(); 13813 }); 13814 return Transition; 13815} 13816 13817/** 13818 * Test via a getter in the options object to see 13819 * if the passive property is accessed. 13820 * 13821 * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection 13822 */ 13823var supportsPassive = false; 13824 13825try { 13826 var opts = Object.defineProperty({}, 'passive', { 13827 get: function get() { 13828 supportsPassive = true; 13829 } 13830 }); 13831 window.addEventListener('testPassive', null, opts); 13832 window.removeEventListener('testPassive', null, opts); 13833} catch (e) {} 13834 13835var supportsPassive$1 = supportsPassive; 13836 13837var START_EVENTS = ['touchstart', 'mousedown']; 13838var MOVE_EVENTS = ['touchmove', 'mousemove']; 13839var END_EVENTS = ['touchend', 'touchcancel', 'mouseup', 'mouseleave']; 13840var MOUSE_EVENTS = ['mousedown', 'mousemove', 'mouseup', 'mouseleave']; 13841function Swipe (Glide, Components, Events) { 13842 /** 13843 * Instance of the binder for DOM Events. 13844 * 13845 * @type {EventsBinder} 13846 */ 13847 var Binder = new EventsBinder(); 13848 var swipeSin = 0; 13849 var swipeStartX = 0; 13850 var swipeStartY = 0; 13851 var disabled = false; 13852 var capture = supportsPassive$1 ? { 13853 passive: true 13854 } : false; 13855 var Swipe = { 13856 /** 13857 * Initializes swipe bindings. 13858 * 13859 * @return {Void} 13860 */ 13861 mount: function mount() { 13862 this.bindSwipeStart(); 13863 }, 13864 13865 /** 13866 * Handler for `swipestart` event. Calculates entry points of the user's tap. 13867 * 13868 * @param {Object} event 13869 * @return {Void} 13870 */ 13871 start: function start(event) { 13872 if (!disabled && !Glide.disabled) { 13873 this.disable(); 13874 var swipe = this.touches(event); 13875 swipeSin = null; 13876 swipeStartX = toInt(swipe.pageX); 13877 swipeStartY = toInt(swipe.pageY); 13878 this.bindSwipeMove(); 13879 this.bindSwipeEnd(); 13880 Events.emit('swipe.start'); 13881 } 13882 }, 13883 13884 /** 13885 * Handler for `swipemove` event. Calculates user's tap angle and distance. 13886 * 13887 * @param {Object} event 13888 */ 13889 move: function move(event) { 13890 if (!Glide.disabled) { 13891 var _Glide$settings = Glide.settings, 13892 touchAngle = _Glide$settings.touchAngle, 13893 touchRatio = _Glide$settings.touchRatio, 13894 classes = _Glide$settings.classes; 13895 var swipe = this.touches(event); 13896 var subExSx = toInt(swipe.pageX) - swipeStartX; 13897 var subEySy = toInt(swipe.pageY) - swipeStartY; 13898 var powEX = Math.abs(subExSx << 2); 13899 var powEY = Math.abs(subEySy << 2); 13900 var swipeHypotenuse = Math.sqrt(powEX + powEY); 13901 var swipeCathetus = Math.sqrt(powEY); 13902 swipeSin = Math.asin(swipeCathetus / swipeHypotenuse); 13903 13904 if (swipeSin * 180 / Math.PI < touchAngle) { 13905 event.stopPropagation(); 13906 Components.Move.make(subExSx * toFloat(touchRatio)); 13907 Components.Html.root.classList.add(classes.dragging); 13908 Events.emit('swipe.move'); 13909 } else { 13910 return false; 13911 } 13912 } 13913 }, 13914 13915 /** 13916 * Handler for `swipeend` event. Finitializes user's tap and decides about glide move. 13917 * 13918 * @param {Object} event 13919 * @return {Void} 13920 */ 13921 end: function end(event) { 13922 if (!Glide.disabled) { 13923 var _Glide$settings2 = Glide.settings, 13924 perSwipe = _Glide$settings2.perSwipe, 13925 touchAngle = _Glide$settings2.touchAngle, 13926 classes = _Glide$settings2.classes; 13927 var swipe = this.touches(event); 13928 var threshold = this.threshold(event); 13929 var swipeDistance = swipe.pageX - swipeStartX; 13930 var swipeDeg = swipeSin * 180 / Math.PI; 13931 this.enable(); 13932 13933 if (swipeDistance > threshold && swipeDeg < touchAngle) { 13934 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, "<"))); 13935 } else if (swipeDistance < -threshold && swipeDeg < touchAngle) { 13936 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, ">"))); 13937 } else { 13938 // While swipe don't reach distance apply previous transform. 13939 Components.Move.make(); 13940 } 13941 13942 Components.Html.root.classList.remove(classes.dragging); 13943 this.unbindSwipeMove(); 13944 this.unbindSwipeEnd(); 13945 Events.emit('swipe.end'); 13946 } 13947 }, 13948 13949 /** 13950 * Binds swipe's starting event. 13951 * 13952 * @return {Void} 13953 */ 13954 bindSwipeStart: function bindSwipeStart() { 13955 var _this = this; 13956 13957 var _Glide$settings3 = Glide.settings, 13958 swipeThreshold = _Glide$settings3.swipeThreshold, 13959 dragThreshold = _Glide$settings3.dragThreshold; 13960 13961 if (swipeThreshold) { 13962 Binder.on(START_EVENTS[0], Components.Html.wrapper, function (event) { 13963 _this.start(event); 13964 }, capture); 13965 } 13966 13967 if (dragThreshold) { 13968 Binder.on(START_EVENTS[1], Components.Html.wrapper, function (event) { 13969 _this.start(event); 13970 }, capture); 13971 } 13972 }, 13973 13974 /** 13975 * Unbinds swipe's starting event. 13976 * 13977 * @return {Void} 13978 */ 13979 unbindSwipeStart: function unbindSwipeStart() { 13980 Binder.off(START_EVENTS[0], Components.Html.wrapper, capture); 13981 Binder.off(START_EVENTS[1], Components.Html.wrapper, capture); 13982 }, 13983 13984 /** 13985 * Binds swipe's moving event. 13986 * 13987 * @return {Void} 13988 */ 13989 bindSwipeMove: function bindSwipeMove() { 13990 var _this2 = this; 13991 13992 Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function (event) { 13993 _this2.move(event); 13994 }, Glide.settings.throttle), capture); 13995 }, 13996 13997 /** 13998 * Unbinds swipe's moving event. 13999 * 14000 * @return {Void} 14001 */ 14002 unbindSwipeMove: function unbindSwipeMove() { 14003 Binder.off(MOVE_EVENTS, Components.Html.wrapper, capture); 14004 }, 14005 14006 /** 14007 * Binds swipe's ending event. 14008 * 14009 * @return {Void} 14010 */ 14011 bindSwipeEnd: function bindSwipeEnd() { 14012 var _this3 = this; 14013 14014 Binder.on(END_EVENTS, Components.Html.wrapper, function (event) { 14015 _this3.end(event); 14016 }); 14017 }, 14018 14019 /** 14020 * Unbinds swipe's ending event. 14021 * 14022 * @return {Void} 14023 */ 14024 unbindSwipeEnd: function unbindSwipeEnd() { 14025 Binder.off(END_EVENTS, Components.Html.wrapper); 14026 }, 14027 14028 /** 14029 * Normalizes event touches points accorting to different types. 14030 * 14031 * @param {Object} event 14032 */ 14033 touches: function touches(event) { 14034 if (MOUSE_EVENTS.indexOf(event.type) > -1) { 14035 return event; 14036 } 14037 14038 return event.touches[0] || event.changedTouches[0]; 14039 }, 14040 14041 /** 14042 * Gets value of minimum swipe distance settings based on event type. 14043 * 14044 * @return {Number} 14045 */ 14046 threshold: function threshold(event) { 14047 var settings = Glide.settings; 14048 14049 if (MOUSE_EVENTS.indexOf(event.type) > -1) { 14050 return settings.dragThreshold; 14051 } 14052 14053 return settings.swipeThreshold; 14054 }, 14055 14056 /** 14057 * Enables swipe event. 14058 * 14059 * @return {self} 14060 */ 14061 enable: function enable() { 14062 disabled = false; 14063 Components.Transition.enable(); 14064 return this; 14065 }, 14066 14067 /** 14068 * Disables swipe event. 14069 * 14070 * @return {self} 14071 */ 14072 disable: function disable() { 14073 disabled = true; 14074 Components.Transition.disable(); 14075 return this; 14076 } 14077 }; 14078 /** 14079 * Add component class: 14080 * - after initial building 14081 */ 14082 14083 Events.on('build.after', function () { 14084 Components.Html.root.classList.add(Glide.settings.classes.swipeable); 14085 }); 14086 /** 14087 * Remove swiping bindings: 14088 * - on destroying, to remove added EventListeners 14089 */ 14090 14091 Events.on('destroy', function () { 14092 Swipe.unbindSwipeStart(); 14093 Swipe.unbindSwipeMove(); 14094 Swipe.unbindSwipeEnd(); 14095 Binder.destroy(); 14096 }); 14097 return Swipe; 14098} 14099 14100function Images (Glide, Components, Events) { 14101 /** 14102 * Instance of the binder for DOM Events. 14103 * 14104 * @type {EventsBinder} 14105 */ 14106 var Binder = new EventsBinder(); 14107 var Images = { 14108 /** 14109 * Binds listener to glide wrapper. 14110 * 14111 * @return {Void} 14112 */ 14113 mount: function mount() { 14114 this.bind(); 14115 }, 14116 14117 /** 14118 * Binds `dragstart` event on wrapper to prevent dragging images. 14119 * 14120 * @return {Void} 14121 */ 14122 bind: function bind() { 14123 Binder.on('dragstart', Components.Html.wrapper, this.dragstart); 14124 }, 14125 14126 /** 14127 * Unbinds `dragstart` event on wrapper. 14128 * 14129 * @return {Void} 14130 */ 14131 unbind: function unbind() { 14132 Binder.off('dragstart', Components.Html.wrapper); 14133 }, 14134 14135 /** 14136 * Event handler. Prevents dragging. 14137 * 14138 * @return {Void} 14139 */ 14140 dragstart: function dragstart(event) { 14141 event.preventDefault(); 14142 } 14143 }; 14144 /** 14145 * Remove bindings from images: 14146 * - on destroying, to remove added EventListeners 14147 */ 14148 14149 Events.on('destroy', function () { 14150 Images.unbind(); 14151 Binder.destroy(); 14152 }); 14153 return Images; 14154} 14155 14156function Anchors (Glide, Components, Events) { 14157 /** 14158 * Instance of the binder for DOM Events. 14159 * 14160 * @type {EventsBinder} 14161 */ 14162 var Binder = new EventsBinder(); 14163 /** 14164 * Holds detaching status of anchors. 14165 * Prevents detaching of already detached anchors. 14166 * 14167 * @private 14168 * @type {Boolean} 14169 */ 14170 14171 var detached = false; 14172 /** 14173 * Holds preventing status of anchors. 14174 * If `true` redirection after click will be disabled. 14175 * 14176 * @private 14177 * @type {Boolean} 14178 */ 14179 14180 var prevented = false; 14181 var Anchors = { 14182 /** 14183 * Setups a initial state of anchors component. 14184 * 14185 * @returns {Void} 14186 */ 14187 mount: function mount() { 14188 /** 14189 * Holds collection of anchors elements. 14190 * 14191 * @private 14192 * @type {HTMLCollection} 14193 */ 14194 this._a = Components.Html.wrapper.querySelectorAll('a'); 14195 this.bind(); 14196 }, 14197 14198 /** 14199 * Binds events to anchors inside a track. 14200 * 14201 * @return {Void} 14202 */ 14203 bind: function bind() { 14204 Binder.on('click', Components.Html.wrapper, this.click); 14205 }, 14206 14207 /** 14208 * Unbinds events attached to anchors inside a track. 14209 * 14210 * @return {Void} 14211 */ 14212 unbind: function unbind() { 14213 Binder.off('click', Components.Html.wrapper); 14214 }, 14215 14216 /** 14217 * Handler for click event. Prevents clicks when glide is in `prevent` status. 14218 * 14219 * @param {Object} event 14220 * @return {Void} 14221 */ 14222 click: function click(event) { 14223 if (prevented) { 14224 event.stopPropagation(); 14225 event.preventDefault(); 14226 } 14227 }, 14228 14229 /** 14230 * Detaches anchors click event inside glide. 14231 * 14232 * @return {self} 14233 */ 14234 detach: function detach() { 14235 prevented = true; 14236 14237 if (!detached) { 14238 for (var i = 0; i < this.items.length; i++) { 14239 this.items[i].draggable = false; 14240 } 14241 14242 detached = true; 14243 } 14244 14245 return this; 14246 }, 14247 14248 /** 14249 * Attaches anchors click events inside glide. 14250 * 14251 * @return {self} 14252 */ 14253 attach: function attach() { 14254 prevented = false; 14255 14256 if (detached) { 14257 for (var i = 0; i < this.items.length; i++) { 14258 this.items[i].draggable = true; 14259 } 14260 14261 detached = false; 14262 } 14263 14264 return this; 14265 } 14266 }; 14267 define(Anchors, 'items', { 14268 /** 14269 * Gets collection of the arrows HTML elements. 14270 * 14271 * @return {HTMLElement[]} 14272 */ 14273 get: function get() { 14274 return Anchors._a; 14275 } 14276 }); 14277 /** 14278 * Detach anchors inside slides: 14279 * - on swiping, so they won't redirect to its `href` attributes 14280 */ 14281 14282 Events.on('swipe.move', function () { 14283 Anchors.detach(); 14284 }); 14285 /** 14286 * Attach anchors inside slides: 14287 * - after swiping and transitions ends, so they can redirect after click again 14288 */ 14289 14290 Events.on('swipe.end', function () { 14291 Components.Transition.after(function () { 14292 Anchors.attach(); 14293 }); 14294 }); 14295 /** 14296 * Unbind anchors inside slides: 14297 * - on destroying, to bring anchors to its initial state 14298 */ 14299 14300 Events.on('destroy', function () { 14301 Anchors.attach(); 14302 Anchors.unbind(); 14303 Binder.destroy(); 14304 }); 14305 return Anchors; 14306} 14307 14308var NAV_SELECTOR = '[data-glide-el="controls[nav]"]'; 14309var CONTROLS_SELECTOR = '[data-glide-el^="controls"]'; 14310var PREVIOUS_CONTROLS_SELECTOR = "".concat(CONTROLS_SELECTOR, " [data-glide-dir*=\"<\"]"); 14311var NEXT_CONTROLS_SELECTOR = "".concat(CONTROLS_SELECTOR, " [data-glide-dir*=\">\"]"); 14312function Controls (Glide, Components, Events) { 14313 /** 14314 * Instance of the binder for DOM Events. 14315 * 14316 * @type {EventsBinder} 14317 */ 14318 var Binder = new EventsBinder(); 14319 var capture = supportsPassive$1 ? { 14320 passive: true 14321 } : false; 14322 var Controls = { 14323 /** 14324 * Inits arrows. Binds events listeners 14325 * to the arrows HTML elements. 14326 * 14327 * @return {Void} 14328 */ 14329 mount: function mount() { 14330 /** 14331 * Collection of navigation HTML elements. 14332 * 14333 * @private 14334 * @type {HTMLCollection} 14335 */ 14336 this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR); 14337 /** 14338 * Collection of controls HTML elements. 14339 * 14340 * @private 14341 * @type {HTMLCollection} 14342 */ 14343 14344 this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR); 14345 /** 14346 * Collection of arrow control HTML elements. 14347 * 14348 * @private 14349 * @type {Object} 14350 */ 14351 14352 this._arrowControls = { 14353 previous: Components.Html.root.querySelectorAll(PREVIOUS_CONTROLS_SELECTOR), 14354 next: Components.Html.root.querySelectorAll(NEXT_CONTROLS_SELECTOR) 14355 }; 14356 this.addBindings(); 14357 }, 14358 14359 /** 14360 * Sets active class to current slide. 14361 * 14362 * @return {Void} 14363 */ 14364 setActive: function setActive() { 14365 for (var i = 0; i < this._n.length; i++) { 14366 this.addClass(this._n[i].children); 14367 } 14368 }, 14369 14370 /** 14371 * Removes active class to current slide. 14372 * 14373 * @return {Void} 14374 */ 14375 removeActive: function removeActive() { 14376 for (var i = 0; i < this._n.length; i++) { 14377 this.removeClass(this._n[i].children); 14378 } 14379 }, 14380 14381 /** 14382 * Toggles active class on items inside navigation. 14383 * 14384 * @param {HTMLElement} controls 14385 * @return {Void} 14386 */ 14387 addClass: function addClass(controls) { 14388 var settings = Glide.settings; 14389 var item = controls[Glide.index]; 14390 14391 if (!item) { 14392 return; 14393 } 14394 14395 if (item) { 14396 item.classList.add(settings.classes.nav.active); 14397 siblings(item).forEach(function (sibling) { 14398 sibling.classList.remove(settings.classes.nav.active); 14399 }); 14400 } 14401 }, 14402 14403 /** 14404 * Removes active class from active control. 14405 * 14406 * @param {HTMLElement} controls 14407 * @return {Void} 14408 */ 14409 removeClass: function removeClass(controls) { 14410 var item = controls[Glide.index]; 14411 14412 if (item) { 14413 item.classList.remove(Glide.settings.classes.nav.active); 14414 } 14415 }, 14416 14417 /** 14418 * Calculates, removes or adds `Glide.settings.classes.disabledArrow` class on the control arrows 14419 */ 14420 setArrowState: function setArrowState() { 14421 if (Glide.settings.rewind) { 14422 return; 14423 } 14424 14425 var next = Controls._arrowControls.next; 14426 var previous = Controls._arrowControls.previous; 14427 this.resetArrowState(next, previous); 14428 14429 if (Glide.index === 0) { 14430 this.disableArrow(previous); 14431 } 14432 14433 if (Glide.index === Components.Run.length) { 14434 this.disableArrow(next); 14435 } 14436 }, 14437 14438 /** 14439 * Removes `Glide.settings.classes.disabledArrow` from given NodeList elements 14440 * 14441 * @param {NodeList[]} lists 14442 */ 14443 resetArrowState: function resetArrowState() { 14444 var settings = Glide.settings; 14445 14446 for (var _len = arguments.length, lists = new Array(_len), _key = 0; _key < _len; _key++) { 14447 lists[_key] = arguments[_key]; 14448 } 14449 14450 lists.forEach(function (list) { 14451 toArray(list).forEach(function (element) { 14452 element.classList.remove(settings.classes.arrow.disabled); 14453 }); 14454 }); 14455 }, 14456 14457 /** 14458 * Adds `Glide.settings.classes.disabledArrow` to given NodeList elements 14459 * 14460 * @param {NodeList[]} lists 14461 */ 14462 disableArrow: function disableArrow() { 14463 var settings = Glide.settings; 14464 14465 for (var _len2 = arguments.length, lists = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 14466 lists[_key2] = arguments[_key2]; 14467 } 14468 14469 lists.forEach(function (list) { 14470 toArray(list).forEach(function (element) { 14471 element.classList.add(settings.classes.arrow.disabled); 14472 }); 14473 }); 14474 }, 14475 14476 /** 14477 * Adds handles to the each group of controls. 14478 * 14479 * @return {Void} 14480 */ 14481 addBindings: function addBindings() { 14482 for (var i = 0; i < this._c.length; i++) { 14483 this.bind(this._c[i].children); 14484 } 14485 }, 14486 14487 /** 14488 * Removes handles from the each group of controls. 14489 * 14490 * @return {Void} 14491 */ 14492 removeBindings: function removeBindings() { 14493 for (var i = 0; i < this._c.length; i++) { 14494 this.unbind(this._c[i].children); 14495 } 14496 }, 14497 14498 /** 14499 * Binds events to arrows HTML elements. 14500 * 14501 * @param {HTMLCollection} elements 14502 * @return {Void} 14503 */ 14504 bind: function bind(elements) { 14505 for (var i = 0; i < elements.length; i++) { 14506 Binder.on('click', elements[i], this.click); 14507 Binder.on('touchstart', elements[i], this.click, capture); 14508 } 14509 }, 14510 14511 /** 14512 * Unbinds events binded to the arrows HTML elements. 14513 * 14514 * @param {HTMLCollection} elements 14515 * @return {Void} 14516 */ 14517 unbind: function unbind(elements) { 14518 for (var i = 0; i < elements.length; i++) { 14519 Binder.off(['click', 'touchstart'], elements[i]); 14520 } 14521 }, 14522 14523 /** 14524 * Handles `click` event on the arrows HTML elements. 14525 * Moves slider in direction given via the 14526 * `data-glide-dir` attribute. 14527 * 14528 * @param {Object} event 14529 * @return {void} 14530 */ 14531 click: function click(event) { 14532 if (!supportsPassive$1 && event.type === 'touchstart') { 14533 event.preventDefault(); 14534 } 14535 14536 var direction = event.currentTarget.getAttribute('data-glide-dir'); 14537 Components.Run.make(Components.Direction.resolve(direction)); 14538 } 14539 }; 14540 define(Controls, 'items', { 14541 /** 14542 * Gets collection of the controls HTML elements. 14543 * 14544 * @return {HTMLElement[]} 14545 */ 14546 get: function get() { 14547 return Controls._c; 14548 } 14549 }); 14550 /** 14551 * Swap active class of current navigation item: 14552 * - after mounting to set it to initial index 14553 * - after each move to the new index 14554 */ 14555 14556 Events.on(['mount.after', 'move.after'], function () { 14557 Controls.setActive(); 14558 }); 14559 /** 14560 * Add or remove disabled class of arrow elements 14561 */ 14562 14563 Events.on(['mount.after', 'run'], function () { 14564 Controls.setArrowState(); 14565 }); 14566 /** 14567 * Remove bindings and HTML Classes: 14568 * - on destroying, to bring markup to its initial state 14569 */ 14570 14571 Events.on('destroy', function () { 14572 Controls.removeBindings(); 14573 Controls.removeActive(); 14574 Binder.destroy(); 14575 }); 14576 return Controls; 14577} 14578 14579function Keyboard (Glide, Components, Events) { 14580 /** 14581 * Instance of the binder for DOM Events. 14582 * 14583 * @type {EventsBinder} 14584 */ 14585 var Binder = new EventsBinder(); 14586 var Keyboard = { 14587 /** 14588 * Binds keyboard events on component mount. 14589 * 14590 * @return {Void} 14591 */ 14592 mount: function mount() { 14593 if (Glide.settings.keyboard) { 14594 this.bind(); 14595 } 14596 }, 14597 14598 /** 14599 * Adds keyboard press events. 14600 * 14601 * @return {Void} 14602 */ 14603 bind: function bind() { 14604 Binder.on('keyup', document, this.press); 14605 }, 14606 14607 /** 14608 * Removes keyboard press events. 14609 * 14610 * @return {Void} 14611 */ 14612 unbind: function unbind() { 14613 Binder.off('keyup', document); 14614 }, 14615 14616 /** 14617 * Handles keyboard's arrows press and moving glide foward and backward. 14618 * 14619 * @param {Object} event 14620 * @return {Void} 14621 */ 14622 press: function press(event) { 14623 var perSwipe = Glide.settings.perSwipe; 14624 14625 if (event.code === 'ArrowRight') { 14626 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, ">"))); 14627 } 14628 14629 if (event.code === 'ArrowLeft') { 14630 Components.Run.make(Components.Direction.resolve("".concat(perSwipe, "<"))); 14631 } 14632 } 14633 }; 14634 /** 14635 * Remove bindings from keyboard: 14636 * - on destroying to remove added events 14637 * - on updating to remove events before remounting 14638 */ 14639 14640 Events.on(['destroy', 'update'], function () { 14641 Keyboard.unbind(); 14642 }); 14643 /** 14644 * Remount component 14645 * - on updating to reflect potential changes in settings 14646 */ 14647 14648 Events.on('update', function () { 14649 Keyboard.mount(); 14650 }); 14651 /** 14652 * Destroy binder: 14653 * - on destroying to remove listeners 14654 */ 14655 14656 Events.on('destroy', function () { 14657 Binder.destroy(); 14658 }); 14659 return Keyboard; 14660} 14661 14662function Autoplay (Glide, Components, Events) { 14663 /** 14664 * Instance of the binder for DOM Events. 14665 * 14666 * @type {EventsBinder} 14667 */ 14668 var Binder = new EventsBinder(); 14669 var Autoplay = { 14670 /** 14671 * Initializes autoplaying and events. 14672 * 14673 * @return {Void} 14674 */ 14675 mount: function mount() { 14676 this.enable(); 14677 this.start(); 14678 14679 if (Glide.settings.hoverpause) { 14680 this.bind(); 14681 } 14682 }, 14683 14684 /** 14685 * Enables autoplaying 14686 * 14687 * @returns {Void} 14688 */ 14689 enable: function enable() { 14690 this._e = true; 14691 }, 14692 14693 /** 14694 * Disables autoplaying. 14695 * 14696 * @returns {Void} 14697 */ 14698 disable: function disable() { 14699 this._e = false; 14700 }, 14701 14702 /** 14703 * Starts autoplaying in configured interval. 14704 * 14705 * @param {Boolean|Number} force Run autoplaying with passed interval regardless of `autoplay` settings 14706 * @return {Void} 14707 */ 14708 start: function start() { 14709 var _this = this; 14710 14711 if (!this._e) { 14712 return; 14713 } 14714 14715 this.enable(); 14716 14717 if (Glide.settings.autoplay) { 14718 if (isUndefined(this._i)) { 14719 this._i = setInterval(function () { 14720 _this.stop(); 14721 14722 Components.Run.make('>'); 14723 14724 _this.start(); 14725 14726 Events.emit('autoplay'); 14727 }, this.time); 14728 } 14729 } 14730 }, 14731 14732 /** 14733 * Stops autorunning of the glide. 14734 * 14735 * @return {Void} 14736 */ 14737 stop: function stop() { 14738 this._i = clearInterval(this._i); 14739 }, 14740 14741 /** 14742 * Stops autoplaying while mouse is over glide's area. 14743 * 14744 * @return {Void} 14745 */ 14746 bind: function bind() { 14747 var _this2 = this; 14748 14749 Binder.on('mouseover', Components.Html.root, function () { 14750 if (_this2._e) { 14751 _this2.stop(); 14752 } 14753 }); 14754 Binder.on('mouseout', Components.Html.root, function () { 14755 if (_this2._e) { 14756 _this2.start(); 14757 } 14758 }); 14759 }, 14760 14761 /** 14762 * Unbind mouseover events. 14763 * 14764 * @returns {Void} 14765 */ 14766 unbind: function unbind() { 14767 Binder.off(['mouseover', 'mouseout'], Components.Html.root); 14768 } 14769 }; 14770 define(Autoplay, 'time', { 14771 /** 14772 * Gets time period value for the autoplay interval. Prioritizes 14773 * times in `data-glide-autoplay` attrubutes over options. 14774 * 14775 * @return {Number} 14776 */ 14777 get: function get() { 14778 var autoplay = Components.Html.slides[Glide.index].getAttribute('data-glide-autoplay'); 14779 14780 if (autoplay) { 14781 return toInt(autoplay); 14782 } 14783 14784 return toInt(Glide.settings.autoplay); 14785 } 14786 }); 14787 /** 14788 * Stop autoplaying and unbind events: 14789 * - on destroying, to clear defined interval 14790 * - on updating via API to reset interval that may changed 14791 */ 14792 14793 Events.on(['destroy', 'update'], function () { 14794 Autoplay.unbind(); 14795 }); 14796 /** 14797 * Stop autoplaying: 14798 * - before each run, to restart autoplaying 14799 * - on pausing via API 14800 * - on destroying, to clear defined interval 14801 * - while starting a swipe 14802 * - on updating via API to reset interval that may changed 14803 */ 14804 14805 Events.on(['run.before', 'swipe.start', 'update'], function () { 14806 Autoplay.stop(); 14807 }); 14808 Events.on(['pause', 'destroy'], function () { 14809 Autoplay.disable(); 14810 Autoplay.stop(); 14811 }); 14812 /** 14813 * Start autoplaying: 14814 * - after each run, to restart autoplaying 14815 * - on playing via API 14816 * - while ending a swipe 14817 */ 14818 14819 Events.on(['run.after', 'swipe.end'], function () { 14820 Autoplay.start(); 14821 }); 14822 /** 14823 * Start autoplaying: 14824 * - after each run, to restart autoplaying 14825 * - on playing via API 14826 * - while ending a swipe 14827 */ 14828 14829 Events.on(['play'], function () { 14830 Autoplay.enable(); 14831 Autoplay.start(); 14832 }); 14833 /** 14834 * Remount autoplaying: 14835 * - on updating via API to reset interval that may changed 14836 */ 14837 14838 Events.on('update', function () { 14839 Autoplay.mount(); 14840 }); 14841 /** 14842 * Destroy a binder: 14843 * - on destroying glide instance to clearup listeners 14844 */ 14845 14846 Events.on('destroy', function () { 14847 Binder.destroy(); 14848 }); 14849 return Autoplay; 14850} 14851 14852/** 14853 * Sorts keys of breakpoint object so they will be ordered from lower to bigger. 14854 * 14855 * @param {Object} points 14856 * @returns {Object} 14857 */ 14858 14859function sortBreakpoints(points) { 14860 if (isObject(points)) { 14861 return sortKeys(points); 14862 } else { 14863 warn("Breakpoints option must be an object"); 14864 } 14865 14866 return {}; 14867} 14868 14869function Breakpoints (Glide, Components, Events) { 14870 /** 14871 * Instance of the binder for DOM Events. 14872 * 14873 * @type {EventsBinder} 14874 */ 14875 var Binder = new EventsBinder(); 14876 /** 14877 * Holds reference to settings. 14878 * 14879 * @type {Object} 14880 */ 14881 14882 var settings = Glide.settings; 14883 /** 14884 * Holds reference to breakpoints object in settings. Sorts breakpoints 14885 * from smaller to larger. It is required in order to proper 14886 * matching currently active breakpoint settings. 14887 * 14888 * @type {Object} 14889 */ 14890 14891 var points = sortBreakpoints(settings.breakpoints); 14892 /** 14893 * Cache initial settings before overwritting. 14894 * 14895 * @type {Object} 14896 */ 14897 14898 var defaults = Object.assign({}, settings); 14899 var Breakpoints = { 14900 /** 14901 * Matches settings for currectly matching media breakpoint. 14902 * 14903 * @param {Object} points 14904 * @returns {Object} 14905 */ 14906 match: function match(points) { 14907 if (typeof window.matchMedia !== 'undefined') { 14908 for (var point in points) { 14909 if (points.hasOwnProperty(point)) { 14910 if (window.matchMedia("(max-width: ".concat(point, "px)")).matches) { 14911 return points[point]; 14912 } 14913 } 14914 } 14915 } 14916 14917 return defaults; 14918 } 14919 }; 14920 /** 14921 * Overwrite instance settings with currently matching breakpoint settings. 14922 * This happens right after component initialization. 14923 */ 14924 14925 Object.assign(settings, Breakpoints.match(points)); 14926 /** 14927 * Update glide with settings of matched brekpoint: 14928 * - window resize to update slider 14929 */ 14930 14931 Binder.on('resize', window, throttle(function () { 14932 Glide.settings = mergeOptions(settings, Breakpoints.match(points)); 14933 }, Glide.settings.throttle)); 14934 /** 14935 * Resort and update default settings: 14936 * - on reinit via API, so breakpoint matching will be performed with options 14937 */ 14938 14939 Events.on('update', function () { 14940 points = sortBreakpoints(points); 14941 defaults = Object.assign({}, settings); 14942 }); 14943 /** 14944 * Unbind resize listener: 14945 * - on destroying, to bring markup to its initial state 14946 */ 14947 14948 Events.on('destroy', function () { 14949 Binder.off('resize', window); 14950 }); 14951 return Breakpoints; 14952} 14953 14954var COMPONENTS = { 14955 // Required 14956 Html: Html, 14957 Translate: Translate, 14958 Transition: Transition, 14959 Direction: Direction, 14960 Peek: Peek, 14961 Sizes: Sizes, 14962 Gaps: Gaps, 14963 Move: Move, 14964 Clones: Clones, 14965 Resize: Resize, 14966 Build: Build, 14967 Run: Run, 14968 // Optional 14969 Swipe: Swipe, 14970 Images: Images, 14971 Anchors: Anchors, 14972 Controls: Controls, 14973 Keyboard: Keyboard, 14974 Autoplay: Autoplay, 14975 Breakpoints: Breakpoints 14976}; 14977 14978var Glide = /*#__PURE__*/function (_Core) { 14979 _inherits(Glide, _Core); 14980 14981 var _super = _createSuper(Glide); 14982 14983 function Glide() { 14984 _classCallCheck(this, Glide); 14985 14986 return _super.apply(this, arguments); 14987 } 14988 14989 _createClass(Glide, [{ 14990 key: "mount", 14991 value: function mount() { 14992 var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 14993 return _get(_getPrototypeOf(Glide.prototype), "mount", this).call(this, Object.assign({}, COMPONENTS, extensions)); 14994 } 14995 }]); 14996 14997 return Glide; 14998}(Glide$1); 14999 15000 15001 15002 15003/***/ })
vendor: 4,663 bytes, lines 15003-15113
15003 15004 15005/******/ }); 15006/************************************************************************/ 15007/******/ // The module cache 15008/******/ var __webpack_module_cache__ = {}; 15009/******/ 15010/******/ // The require function 15011/******/ function __webpack_require__(moduleId) { 15012/******/ // Check if module is in cache 15013/******/ var cachedModule = __webpack_module_cache__[moduleId]; 15014/******/ if (cachedModule !== undefined) { 15015/******/ return cachedModule.exports; 15016/******/ } 15017/******/ // Create a new module (and put it into the cache) 15018/******/ var module = __webpack_module_cache__[moduleId] = { 15019/******/ id: moduleId, 15020/******/ // no module.loaded needed 15021/******/ exports: {} 15022/******/ }; 15023/******/ 15024/******/ // Execute the module function 15025/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 15026/******/ 15027/******/ // Return the exports of the module 15028/******/ return module.exports; 15029/******/ } 15030/******/ 15031/******/ // expose the modules object (__webpack_modules__) 15032/******/ __webpack_require__.m = __webpack_modules__; 15033/******/ 15034/************************************************************************/ 15035/******/ /* webpack/runtime/compat get default export */ 15036/******/ (() => { 15037/******/ // getDefaultExport function for compatibility with non-harmony modules 15038/******/ __webpack_require__.n = (module) => { 15039/******/ var getter = module && module.__esModule ? 15040/******/ () => (module['default']) : 15041/******/ () => (module); 15042/******/ __webpack_require__.d(getter, { a: getter }); 15043/******/ return getter; 15044/******/ }; 15045/******/ })(); 15046/******/ 15047/******/ /* webpack/runtime/define property getters */ 15048/******/ (() => { 15049/******/ // define getter functions for harmony exports 15050/******/ __webpack_require__.d = (exports, definition) => { 15051/******/ for(var key in definition) { 15052/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 15053/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 15054/******/ } 15055/******/ } 15056/******/ }; 15057/******/ })(); 15058/******/ 15059/******/ /* webpack/runtime/global */ 15060/******/ (() => { 15061/******/ __webpack_require__.g = (function() { 15062/******/ if (typeof globalThis === 'object') return globalThis; 15063/******/ try { 15064/******/ return this || new Function('return this')(); 15065/******/ } catch (e) { 15066/******/ if (typeof window === 'object') return window; 15067/******/ } 15068/******/ })(); 15069/******/ })(); 15070/******/ 15071/******/ /* webpack/runtime/hasOwnProperty shorthand */ 15072/******/ (() => { 15073/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 15074/******/ })(); 15075/******/ 15076/******/ /* webpack/runtime/make namespace object */ 15077/******/ (() => { 15078/******/ // define __esModule on exports 15079/******/ __webpack_require__.r = (exports) => { 15080/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 15081/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 15082/******/ } 15083/******/ Object.defineProperty(exports, '__esModule', { value: true }); 15084/******/ }; 15085/******/ })(); 15086/******/ 15087/******/ /* webpack/runtime/publicPath */ 15088/******/ (() => { 15089/******/ var scriptUrl; 15090/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; 15091/******/ var document = __webpack_require__.g.document; 15092/******/ if (!scriptUrl && document) { 15093/******/ if (document.currentScript) 15094/******/ scriptUrl = document.currentScript.src 15095/******/ if (!scriptUrl) { 15096/******/ var scripts = document.getElementsByTagName("script"); 15097/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src 15098/******/ } 15099/******/ } 15100/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration 15101/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. 15102/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); 15103/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); 15104/******/ __webpack_require__.p = scriptUrl; 15105/******/ })(); 15106/******/ 15107/******/ /* webpack/runtime/jsonp chunk loading */ 15108/******/ (() => { 15109/******/ __webpack_require__.b = document.baseURI || self.location.href; 15110/******/ 15111/******/ // object to store loaded and loading chunks 15112/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched 15113/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
15114/******/ var installedChunks = { 15115/******/ "main": 0 15116/******/ }; 15117/******/ 15118/******/ // no chunk on demand loading 15119/******/ 15120/******/ // no prefetching 15121/******/ 15122/******/ // no preloaded 15123/******/ 15124/******/ // no HMR 15125/******/ 15126/******/ // no HMR manifest 15127/******/ 15128/******/ // no on chunks loaded 15129/******/ 15130/******/ // no jsonp function 15131/******/ })(); 15132/******/ 15133/******/ /* webpack/runtime/nonce */ 15134/******/ (() => { 15135/******/ __webpack_require__.nc = undefined; 15136/******/ })(); 15137/******/ 15138/************************************************************************/ 15139var __webpack_exports__ = {}; 15140// This entry need to be wrapped in an IIFE because it need to be in strict mode. 15141(() => { 15142"use strict"; 15143/*!***************************!*\ 15144 !*** ./assets/js/main.js ***! 15145 \***************************/ 15146__webpack_require__.r(__webpack_exports__); 15147/* harmony import */ var _css_main_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../css/main.css */ "./assets/css/main.css"); 15148/* harmony import */ var _abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./abstract/helpers.js */ "./assets/js/abstract/helpers.js"); 15149/* harmony import */ var _components_responsive_menu_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/responsive-menu.js */ "./assets/js/components/responsive-menu.js"); 15150/* harmony import */ var _components_glide_slider_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/glide-slider.js */ "./assets/js/components/glide-slider.js"); 15151/* harmony import */ var _components_custom_select_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/custom-select.js */ "./assets/js/components/custom-select.js"); 15152/* harmony import */ var _archives_replace_page_content__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./archives/replace-page-content */ "./assets/js/archives/replace-page-content.js"); 15153/* harmony import */ var _components_notifications_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/notifications.js */ "./assets/js/components/notifications.js"); 15154/* harmony import */ var _components_follow_menu_style_1_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/follow-menu-style-1.js */ "./assets/js/components/follow-menu-style-1.js"); 15155/* harmony import */ var _components_hover_popups_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/hover-popups.js */ "./assets/js/components/hover-popups.js"); 15156/* harmony import */ var _components_search_popups_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/search-popups.js */ "./assets/js/components/search-popups.js"); 15157/* harmony import */ var _components_select_menu_style_1_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/select-menu-style-1.js */ "./assets/js/components/select-menu-style-1.js"); 15158/* harmony import */ var _components_funding_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/funding.js */ "./assets/js/components/funding.js"); 15159/* harmony import */ var _components_popup_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./components/popup.js */ "./assets/js/components/popup.js"); 15160/* harmony import */ var _components_faq_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./components/faq.js */ "./assets/js/components/faq.js"); 15161/* harmony import */ var _components_impact_slider_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./components/impact-slider.js */ "./assets/js/components/impact-slider.js"); 15162/* harmony import */ var _components_header_slider_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./components/header-slider.js */ "./assets/js/components/header-slider.js"); 15163/* harmony import */ var _components_form_reset_button_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./components/form-reset-button.js */ "./assets/js/components/form-reset-button.js"); 15164/* harmony import */ var _components_menu_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./components/menu.js */ "./assets/js/components/menu.js"); 15165/* harmony import */ var _components_location_map_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./components/location-map.js */ "./assets/js/components/location-map.js"); 15166/* harmony import */ var _components_scroll_class_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./components/scroll-class.js */ "./assets/js/components/scroll-class.js"); 15167/* harmony import */ var _components_open_login_popup_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./components/open-login-popup.js */ "./assets/js/components/open-login-popup.js"); 15168/* harmony import */ var _components_introduction_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./components/introduction.js */ "./assets/js/components/introduction.js"); 15169function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 15170 15171function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 15172 15173function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197(0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.pageReady)(function () { 15198 var Init = /*#__PURE__*/_createClass(function Init() { 15199 _classCallCheck(this, Init); 15200 15201 //responsive menu class toggle 15202 new _components_responsive_menu_js__WEBPACK_IMPORTED_MODULE_2__.ResponsiveMenu(); 15203 new _components_notifications_js__WEBPACK_IMPORTED_MODULE_6__.Notifications(); 15204 new _components_custom_select_js__WEBPACK_IMPORTED_MODULE_4__.CustomSelect(); 15205 new _archives_replace_page_content__WEBPACK_IMPORTED_MODULE_5__.ReplacePageContent(); 15206 new _components_hover_popups_js__WEBPACK_IMPORTED_MODULE_8__.HoverPopups(); 15207 new _components_follow_menu_style_1_js__WEBPACK_IMPORTED_MODULE_7__.FollowMenu(); 15208 new _components_select_menu_style_1_js__WEBPACK_IMPORTED_MODULE_10__.SelectMenu(); 15209 new _components_funding_js__WEBPACK_IMPORTED_MODULE_11__.Funding(); 15210 new _components_impact_slider_js__WEBPACK_IMPORTED_MODULE_14__.ImpactSlider(); 15211 new _components_faq_js__WEBPACK_IMPORTED_MODULE_13__.FAQ(); 15212 new _components_header_slider_js__WEBPACK_IMPORTED_MODULE_15__.HeaderSlider(); 15213 new _components_menu_js__WEBPACK_IMPORTED_MODULE_17__.Menu(); 15214 new _components_search_popups_js__WEBPACK_IMPORTED_MODULE_9__.SearchPopup(); 15215 new _components_form_reset_button_js__WEBPACK_IMPORTED_MODULE_16__.FormResetButton(); 15216 new _components_popup_js__WEBPACK_IMPORTED_MODULE_12__.Popup(); 15217 new _components_location_map_js__WEBPACK_IMPORTED_MODULE_18__.LocationMap(); 15218 new _components_open_login_popup_js__WEBPACK_IMPORTED_MODULE_20__.OpenLoginPopup(); 15219 new _components_scroll_class_js__WEBPACK_IMPORTED_MODULE_19__.ScrollClass(); 15220 new _components_introduction_js__WEBPACK_IMPORTED_MODULE_21__.Introduction(); 15221 new _components_glide_slider_js__WEBPACK_IMPORTED_MODULE_3__.GlideSlider('.hero-glide', { 15222 type: 'carousel', 15223 perView: 1, 15224 autoplay: 2500, 15225 hoverpause: true 15226 }); 15227 15228 if (window.matchMedia("screen and (min-width: 640px)").matches) { 15229 new _components_glide_slider_js__WEBPACK_IMPORTED_MODULE_3__.GlideSlider('.event-glide', { 15230 type: 'carousel', 15231 perView: 3, 15232 breakpoints: { 15233 1024: { 15234 perView: 2 15235 }, 15236 600: { 15237 perView: 1 15238 } 15239 }, 15240 autoplay: 4000, 15241 gap: 24 15242 }); 15243 } 15244 15245 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle', function (e) { 15246 if (e) {
15247 document.querySelector('.animated-circle').classList.add('start'); 15248 } 15249 }); 15250 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-2', function (e) { 15251 if (e) { 15252 document.querySelector('.animated-circle-2').classList.add('start'); 15253 } 15254 }); 15255 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-3', function (e) { 15256 if (e) { 15257 document.querySelector('.animated-circle-3').classList.add('start'); 15258 } 15259 }); 15260 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-4', function (e) { 15261 if (e) { 15262 document.querySelector('.animated-circle-4').classList.add('start'); 15263 } 15264 }); 15265 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-circle-5', function (e) { 15266 if (e) { 15267 document.querySelector('.animated-circle-5').classList.add('start'); 15268 } 15269 }); 15270 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.inViewport)('.animated-oval', function (e) { 15271 if (e) { 15272 document.querySelector('.animated-oval').classList.add('start'); 15273 } 15274 }); 15275 (0,_abstract_helpers_js__WEBPACK_IMPORTED_MODULE_1__.onClick)(document.querySelector('#copy'), function (e) { 15276 if (e) { 15277 e.preventDefault(); 15278 var dummy = document.createElement('input'), 15279 text = window.location.href; 15280 document.body.appendChild(dummy); 15281 dummy.value = text; 15282 dummy.select(); 15283 document.execCommand('copy'); 15284 document.body.removeChild(dummy); 15285 document.querySelector('#copy span').innerHTML = 'Copied!'; 15286 } 15287 }); 15288 document.querySelector("body").classList.remove("no-transition"); 15289 }); 15290 15291 new Init(); 15292}); 15293})(); 15294 15295/******/ })() 15296; 15297//# sourceMappingURL=main.bundle.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.