1"use strict"; 2 3var _excluded = ["endValue"]; 4 5function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 6 7function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 8 9function _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; } 10 11function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } 12 13function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } 14 15function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 16 17function _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); } } 18 19function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 20 21/* -------------------------------------------------------------------------- */ 22 23/* Utils */ 24 25/* -------------------------------------------------------------------------- */ 26var docReady = function docReady(fn) { 27 // see if DOM is already available 28 if (document.readyState === 'loading') { 29 document.addEventListener('DOMContentLoaded', fn); 30 } else { 31 setTimeout(fn, 1); 32 } 33}; 34 35var isRTL = function isRTL() { 36 return document.querySelector('html').getAttribute('dir') === 'rtl'; 37}; 38 39var resize = function resize(fn) { 40 return window.addEventListener('resize', fn); 41}; 42/*eslint consistent-return: */ 43 44 45var isIterableArray = function isIterableArray(array) { 46 return Array.isArray(array) && !!array.length; 47}; 48 49var camelize = function camelize(str) { 50 if (str) { 51 var text = str.replace(/[-_\s.]+(.)?/g, function (_, c) { 52 return c ? c.toUpperCase() : ''; 53 }); 54 return "".concat(text.substr(0, 1).toLowerCase()).concat(text.substr(1)); 55 } 56}; 57 58var getData = function getData(el, data) { 59 try { 60 return JSON.parse(el.dataset[camelize(data)]); 61 } catch (e) { 62 return el.dataset[camelize(data)]; 63 } 64}; 65/* ----------------------------- Colors function ---------------------------- */ 66 67 68var hexToRgb = function hexToRgb(hexValue) { 69 var hex; 70 hexValue.indexOf('#') === 0 ? hex = hexValue.substring(1) : hex = hexValue; // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") 71 72 var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; 73 var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex.replace(shorthandRegex, function (m, r, g, b) { 74 return r + r + g + g + b + b; 75 })); 76 return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null; 77}; 78 79var rgbaColor = function rgbaColor() { 80 var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '#fff'; 81 var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.5; 82 return "rgba(".concat(hexToRgb(color), ", ").concat(alpha, ")"); 83}; 84/* --------------------------------- Colors --------------------------------- */ 85 86 87var getColor = function getColor(name) { 88 var dom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement; 89 return getComputedStyle(dom).getPropertyValue("--sparrow-".concat(name)).trim(); 90}; 91 92var getColors = function getColors(dom) { 93 return { 94 primary: getColor('primary', dom), 95 secondary: getColor('secondary', dom), 96 success: getColor('success', dom), 97 info: getColor('info', dom), 98 warning: getColor('warning', dom), 99 danger: getColor('danger', dom), 100 light: getColor('light', dom), 101 dark: getColor('dark', dom) 102 }; 103}; 104 105var getSoftColors = function getSoftColors(dom) { 106 return { 107 primary: getColor('soft-primary', dom), 108 secondary: getColor('soft-secondary', dom), 109 success: getColor('soft-success', dom), 110 info: getColor('soft-info', dom), 111 warning: getColor('soft-warning', dom), 112 danger: getColor('soft-danger', dom), 113 light: getColor('soft-light', dom), 114 dark: getColor('soft-dark', dom) 115 }; 116}; 117 118var getGrays = function getGrays(dom) { 119 return { 120 white: getColor('white', dom), 121 100: getColor('100', dom), 122 200: getColor('200', dom), 123 300: getColor('300', dom), 124 400: getColor('400', dom), 125 500: getColor('500', dom), 126 600: getColor('600', dom), 127 700: getColor('700', dom), 128 800: getColor('800', dom), 129 900: getColor('900', dom), 130 1000: getColor('1000', dom), 131 1100: getColor('1100', dom), 132 black: getColor('black', dom) 133 }; 134}; 135 136var hasClass = function hasClass(el, className) { 137 !el && false; 138 return el.classList.value.includes(className); 139}; 140 141var addClass = function addClass(el, className) { 142 el.classList.add(className); 143}; 144 145var getOffset = function getOffset(el) { 146 var rect = el.getBoundingClientRect(); 147 var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft; 148 var scrollTop = window.pageYOffset || document.documentElement.scrollTop; 149 return { 150 top: rect.top + scrollTop, 151 left: rect.left + scrollLeft 152 }; 153}; 154 155var isScrolledIntoView = function isScrolledIntoView(el) { 156 var top = el.offsetTop; 157 var left = el.offsetLeft; 158 var width = el.offsetWidth; 159 var height = el.offsetHeight; 160 161 while (el.offsetParent) { 162 // eslint-disable-next-line no-param-reassign 163 el = el.offsetParent; 164 top += el.offsetTop; 165 left += el.offsetLeft; 166 } 167 168 return { 169 all: top >= window.pageYOffset && left >= window.pageXOffset && top + height <= window.pageYOffset + window.innerHeight && left + width <= window.pageXOffset + window.innerWidth, 170 partial: top < window.pageYOffset + window.innerHeight && left < window.pageXOffset + window.innerWidth && top + height > window.pageYOffset && left + width > window.pageXOffset 171 }; 172}; 173 174var isElementIntoView = function isElementIntoView(el) { 175 var position = el.getBoundingClientRect(); // checking whether fully visible 176 177 if (position.top >= 0 && position.bottom <= window.innerHeight) { 178 return true; 179 } // checking for partial visibility 180 181 182 if (position.top < window.innerHeight && position.bottom >= 0) { 183 return true; 184 } 185}; 186 187var breakpoints = { 188 xs: 0, 189 sm: 576, 190 md: 768, 191 lg: 992, 192 xl: 1200 193}; 194
195var getBreakpoint = function getBreakpoint(el) { 196 var classes = el && el.classList.value; 197 var breakpoint; 198 199 if (classes) { 200 breakpoint = breakpoints[classes.split(' ').filter(function (cls) { 201 return cls.includes('navbar-expand-'); 202 }).pop().split('-').pop()]; 203 } 204 205 return breakpoint; 206}; 207 208var getCurrentScreenBreakpoint = function getCurrentScreenBreakpoint() { 209 var currentBreakpoint = ''; 210 211 if (window.innerWidth >= breakpoints.xl) { 212 currentBreakpoint = 'xl'; 213 } else if (window.innerWidth >= breakpoints.lg) { 214 currentBreakpoint = 'lg'; 215 } else if (window.innerWidth >= breakpoints.md) { 216 currentBreakpoint = 'md'; 217 } else { 218 currentBreakpoint = 'sm'; 219 } 220 221 var breakpointStartVal = breakpoints[currentBreakpoint]; 222 return { 223 currentBreakpoint: currentBreakpoint, 224 breakpointStartVal: breakpointStartVal 225 }; 226}; 227/* --------------------------------- Cookie --------------------------------- */ 228 229 230var setCookie = function setCookie(name, value, expire) { 231 var expires = new Date(); 232 expires.setTime(expires.getTime() + expire); 233 document.cookie = "".concat(name, "=").concat(value, ";expires=").concat(expires.toUTCString()); 234}; 235 236var getCookie = function getCookie(name) { 237 var keyValue = document.cookie.match("(^|;) ?".concat(name, "=([^;]*)(;|$)")); 238 return keyValue ? keyValue[2] : keyValue; 239}; 240 241var settings = { 242 tinymce: { 243 theme: 'oxide' 244 }, 245 chart: { 246 borderColor: 'rgba(255, 255, 255, 0.8)' 247 } 248}; 249/* -------------------------- Chart Initialization -------------------------- */ 250 251var newChart = function newChart(chart, config) { 252 var ctx = chart.getContext('2d'); 253 return new window.Chart(ctx, config); 254}; 255/* ---------------------------------- Store --------------------------------- */ 256 257 258var getItemFromStore = function getItemFromStore(key, defaultValue) { 259 var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : localStorage; 260 261 try { 262 return JSON.parse(store.getItem(key)) || defaultValue; 263 } catch (_unused) { 264 return store.getItem(key) || defaultValue; 265 } 266}; 267 268var setItemToStore = function setItemToStore(key, payload) { 269 var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : localStorage; 270 return store.setItem(key, payload); 271}; 272 273var getStoreSpace = function getStoreSpace() { 274 var store = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : localStorage; 275 return parseFloat((escape(encodeURIComponent(JSON.stringify(store))).length / (1024 * 1024)).toFixed(2)); 276}; 277/* get Dates between */ 278 279 280var getDates = function getDates(startDate, endDate) { 281 var interval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000 * 60 * 60 * 24; 282 var duration = endDate - startDate; 283 var steps = duration / interval; 284 return Array.from({ 285 length: steps + 1 286 }, function (v, i) { 287 return new Date(startDate.valueOf() + interval * i); 288 }); 289}; 290 291var getPastDates = function getPastDates(duration) { 292 var days; 293 294 switch (duration) { 295 case 'week': 296 days = 7; 297 break; 298 299 case 'month': 300 days = 30; 301 break; 302 303 case 'year': 304 days = 365; 305 break; 306 307 default: 308 days = duration; 309 } 310 311 var date = new Date(); 312 var endDate = date; 313 var startDate = new Date(new Date().setDate(date.getDate() - (days - 1))); 314 return getDates(startDate, endDate); 315}; 316/* Get Random Number */ 317 318 319var getRandomNumber = function getRandomNumber(min, max) { 320 return Math.floor(Math.random() * (max - min) + min); 321}; 322 323var utils = { 324 docReady: docReady, 325 resize: resize, 326 isIterableArray: isIterableArray, 327 camelize: camelize, 328 getData: getData, 329 hasClass: hasClass, 330 addClass: addClass, 331 hexToRgb: hexToRgb, 332 rgbaColor: rgbaColor, 333 getColor: getColor, 334 getColors: getColors, 335 getSoftColors: getSoftColors, 336 getGrays: getGrays, 337 getOffset: getOffset, 338 isScrolledIntoView: isScrolledIntoView, 339 getBreakpoint: getBreakpoint, 340 setCookie: setCookie, 341 getCookie: getCookie, 342 newChart: newChart, 343 settings: settings, 344 getItemFromStore: getItemFromStore, 345 setItemToStore: setItemToStore, 346 getStoreSpace: getStoreSpace, 347 getDates: getDates, 348 getPastDates: getPastDates, 349 getRandomNumber: getRandomNumber, 350 getCurrentScreenBreakpoint: getCurrentScreenBreakpoint, 351 breakpoints: breakpoints, 352 isElementIntoView: isElementIntoView, 353 isRTL: isRTL 354}; 355/* -------------------------------------------------------------------------- */ 356
357/* Detector */ 358 359/* -------------------------------------------------------------------------- */ 360 361var detectorInit = function detectorInit() { 362 var _window = window, 363 is = _window.is; 364 var html = document.querySelector('html'); 365 is.opera() && addClass(html, 'opera'); 366 is.mobile() && addClass(html, 'mobile'); 367 is.firefox() && addClass(html, 'firefox'); 368 is.safari() && addClass(html, 'safari'); 369 is.ios() && addClass(html, 'ios'); 370 is.iphone() && addClass(html, 'iphone'); 371 is.ipad() && addClass(html, 'ipad'); 372 is.ie() && addClass(html, 'ie'); 373 is.edge() && addClass(html, 'edge'); 374 is.chrome() && addClass(html, 'chrome'); 375 is.mac() && addClass(html, 'osx'); 376 is.windows() && addClass(html, 'windows'); 377 navigator.userAgent.match('CriOS') && addClass(html, 'chrome'); 378}; 379/*----------------------------------------------- 380| DomNode 381-----------------------------------------------*/ 382 383 384var DomNode = /*#__PURE__*/function () { 385 function DomNode(node) { 386 _classCallCheck(this, DomNode); 387 388 this.node = node; 389 } 390 391 _createClass(DomNode, [{ 392 key: "addClass", 393 value: function addClass(className) { 394 this.isValidNode() && this.node.classList.add(className); 395 } 396 }, { 397 key: "removeClass", 398 value: function removeClass(className) { 399 this.isValidNode() && this.node.classList.remove(className); 400 } 401 }, { 402 key: "toggleClass", 403 value: function toggleClass(className) { 404 this.isValidNode() && this.node.classList.toggle(className); 405 } 406 }, { 407 key: "hasClass", 408 value: function hasClass(className) { 409 this.isValidNode() && this.node.classList.contains(className); 410 } 411 }, { 412 key: "data", 413 value: function data(key) { 414 if (this.isValidNode()) { 415 try { 416 return JSON.parse(this.node.dataset[this.camelize(key)]); 417 } catch (e) { 418 return this.node.dataset[this.camelize(key)]; 419 } 420 } 421 422 return null; 423 } 424 }, { 425 key: "attr", 426 value: function attr(name) { 427 return this.isValidNode() && this.node[name]; 428 } 429 }, { 430 key: "setAttribute", 431 value: function setAttribute(name, value) { 432 this.isValidNode() && this.node.setAttribute(name, value); 433 } 434 }, { 435 key: "removeAttribute", 436 value: function removeAttribute(name) { 437 this.isValidNode() && this.node.removeAttribute(name); 438 } 439 }, { 440 key: "setProp", 441 value: function setProp(name, value) { 442 this.isValidNode() && (this.node[name] = value); 443 } 444 }, { 445 key: "on", 446 value: function on(event, cb) { 447 this.isValidNode() && this.node.addEventListener(event, cb); 448 } 449 }, { 450 key: "isValidNode", 451 value: function isValidNode() { 452 return !!this.node; 453 } // eslint-disable-next-line class-methods-use-this 454 455 }, { 456 key: "camelize", 457 value: function camelize(str) { 458 var text = str.replace(/[-_\s.]+(.)?/g, function (_, c) { 459 return c ? c.toUpperCase() : ''; 460 }); 461 return "".concat(text.substr(0, 1).toLowerCase()).concat(text.substr(1)); 462 } 463 }]); 464 465 return DomNode; 466}(); 467/* -------------------------------------------------------------------------- */ 468 469/* Anchor JS */ 470 471/* -------------------------------------------------------------------------- */ 472 473 474var anchors = new window.AnchorJS(); 475anchors.options = { 476 icon: '#' 477}; 478anchors.add('[data-anchor]'); 479/* -------------------------------------------------------------------------- 480| bg player 481--------------------------------------------------------------------------- */ 482 483var bgPlayerInit = function bgPlayerInit() { 484 var Selector = { 485 DATA_YOUTUBE_EMBED: '[data-youtube-embed]', 486 YT_VIDEO: '.yt-video' 487 }; 488 var DATA_KEY = { 489 YOUTUBE_EMBED: 'youtube-embed' 490 }; 491 var ClassName = { 492 LOADED: 'loaded' 493 }; 494 var Events = { 495 SCROLL: 'scroll', 496 LOADING: 'loading', 497 DOM_CONTENT_LOADED: 'DOMContentLoaded' 498 }; 499 var youtubeEmbedElements = document.querySelectorAll(Selector.DATA_YOUTUBE_EMBED); 500 501 var loadVideo = function loadVideo() { 502 function setupPlayer() { 503 window.YT.ready(function () {
504 youtubeEmbedElements.forEach(function (youtubeEmbedElement) { 505 var userOptions = utils.getData(youtubeEmbedElement, DATA_KEY.YOUTUBE_EMBED); 506 var defaultOptions = { 507 videoId: 'hLpy-DRuiz0', 508 startSeconds: 1, 509 endSeconds: 50 510 }; 511 512 var options = window._.merge(defaultOptions, userOptions); 513 514 var youTubePlayer = function youTubePlayer() { 515 // eslint-disable-next-line 516 new YT.Player(youtubeEmbedElement, { 517 videoId: options.videoId, 518 playerVars: { 519 autoplay: 1, 520 disablekb: 1, 521 controls: 0, 522 modestbranding: 1, 523 // Hide the Youtube Logo 524 loop: 1, 525 fs: 0, 526 enablejsapi: 0, 527 start: options === null || options === void 0 ? void 0 : options.startSeconds, 528 end: options === null || options === void 0 ? void 0 : options.endSeconds 529 }, 530 events: { 531 onReady: function onReady(e) { 532 e.target.mute(); 533 e.target.playVideo(); 534 }, 535 onStateChange: function onStateChange(e) { 536 if (e.data === window.YT.PlayerState.PLAYING) { 537 document.querySelectorAll(Selector.DATA_YOUTUBE_EMBED).forEach(function (embedElement) { 538 embedElement.classList.add(ClassName.LOADED); 539 }); 540 } 541 542 if (e.data === window.YT.PlayerState.PAUSED) { 543 e.target.playVideo(); 544 } 545 546 if (e.data === window.YT.PlayerState.ENDED) { 547 // Loop from starting point 548 e.target.seekTo(options.startSeconds); 549 } 550 } 551 } 552 }); 553 }; 554 555 youTubePlayer(); 556 }); 557 }); 558 } 559 560 var tag = document.createElement('script'); 561 tag.src = 'https://www.youtube.com/iframe_api'; 562 var firstScriptTag = document.getElementsByTagName('script')[0]; 563 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 564 tag.onload = setupPlayer; 565 }; 566 567 if (document.readyState !== Events.LOADING) { 568 loadVideo(); 569 } else { 570 document.addEventListener(Events.DOM_CONTENT_LOADED, function () { 571 return loadVideo(); 572 }); 573 } 574 /* -------------------------------------------------------------------------- 575 | Adjust BG Ratio 576 --------------------------------------------------------------------------- */ 577 578 579 var adjustBackgroundRatio = function adjustBackgroundRatio() { 580 var ytElements = document.querySelectorAll(Selector.YT_VIDEO); 581 ytElements.forEach(function (ytEl) { 582 var ytElement = ytEl; 583 var width = ytElement.parentElement.offsetWidth + 200; 584 var height = width * 9 / 16; 585 var minHeight = ytElement.parentElement.offsetHeight + 112; 586 var minWidth = minHeight * 16 / 9; 587 ytElement.style.width = "".concat(width, "px"); 588 ytElement.style.height = "".concat(height, "px"); 589 ytElement.style.minHeight = "".concat(minHeight, "px"); 590 ytElement.style.minWidth = "".concat(minWidth, "px"); 591 }); 592 }; 593 594 adjustBackgroundRatio(); 595 document.addEventListener(Events.SCROLL, function () { 596 return adjustBackgroundRatio(); 597 }); 598}; 599/* -------------------------------------------------------------------------- 600| Sparrow Navbar 601/* -------------------------------------------------------------------------- */ 602 603 604var bootstrapNavbarInit = function bootstrapNavbarInit() { 605 var navbar = document.querySelector('.navbar-sparrow'); 606 607 if (navbar) { 608 var windowHeight = window.innerHeight; 609 610 var handleAlpha = function handleAlpha() { 611 var scrollTop = window.pageYOffset; 612 var alpha = scrollTop / windowHeight * 2; 613 alpha >= 1 && (alpha = 1); 614 navbar.style.backgroundColor = "rgba(0, 0, 0, ".concat(alpha, ")"); 615 }; 616 617 handleAlpha(); 618 document.addEventListener('scroll', function () { 619 return handleAlpha(); 620 });
620 // Top navigation background toggle on mobile 621 622 navbar.addEventListener('show.bs.collapse', function (e) { 623 e.currentTarget.classList.toggle('bg-black'); 624 }); 625 navbar.addEventListener('hide.bs.collapse', function (e) { 626 e.currentTarget.classList.toggle('bg-black'); 627 }); 628 } 629}; 630/* -------------------------------------------------------------------------- 631| Countdown 632--------------------------------------------------------------------------- */ 633 634 635var countdownInit = function countdownInit() { 636 var countdownElements = document.querySelectorAll('[data-countdown]'); 637 countdownElements.forEach(function (el) { 638 var countdownElement = el; 639 var userOptions = utils.getData(countdownElement, 'countdown'); 640 var countDownDate = new Date("".concat(userOptions === null || userOptions === void 0 ? void 0 : userOptions.month, " ", "".concat(userOptions === null || userOptions === void 0 ? void 0 : userOptions.date, ","), " ").concat(userOptions.year)).getTime(); // Update the count down every 1 second 641 642 var updateCountdown = setInterval(function () { 643 var currentTime = new Date().getTime(); 644 var distance = countDownDate - currentTime; // Time calculations for days, hours, minutes and seconds 645 646 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 647 var hours = Math.floor(distance % (1000 * 60 * 60 * 24) / (1000 * 60 * 60)); 648 var minutes = Math.floor(distance % (1000 * 60 * 60) / (1000 * 60)); 649 var seconds = Math.floor(distance % (1000 * 60) / 1000); 650 countdownElement.innerHTML = "".concat(days, " days ").concat("0".concat(hours).toString().slice(-2), ":").concat("0".concat(minutes).toString().slice(-2), ":").concat("0".concat(seconds).toString().slice(-2)); // If the count down is over, write some text 651 652 if (distance < 0) { 653 clearInterval(updateCountdown); 654 countdownElement.innerHTML = 'EXPIRED'; 655 } 656 }, 10); 657 }); 658}; 659/* -------------------------------------------------------------------------- */ 660 661/* Count Up */ 662 663/* -------------------------------------------------------------------------- */ 664 665 666var countupInit = function countupInit() { 667 if (window.countUp) { 668 var countups = document.querySelectorAll('[data-countup]'); 669 countups.forEach(function (node) { 670 var _utils$getData = utils.getData(node, 'countup'), 671 endValue = _utils$getData.endValue, 672 options = _objectWithoutProperties(_utils$getData, _excluded); 673 674 var playCountUpTriggerd = false; 675 676 var countUP = function countUP() { 677 if (utils.isElementIntoView(node) && !playCountUpTriggerd) { 678 var countUp = new window.countUp.CountUp(node, endValue, _objectSpread({ 679 duration: 3, 680 useEasing: false 681 }, options)); 682 683 if (!countUp.error) { 684 countUp.start(); 685 } else { 686 console.error(countUp.error); 687 } 688 689 playCountUpTriggerd = true; 690 } 691 }; 692 693 countUP(); 694 window.addEventListener('scroll', function () { 695 return countUP(); 696 }); 697 }); 698 } 699}; 700/*----------------------------------------------- 701| Draw SVG 702-----------------------------------------------*/ 703 704/* 705 gsap 706*/ 707 708 709var Selector = { 710 DATA_ZANIM_SVG_TRIGGER: 'data-zanim-svg-trigger', 711 DATA_ZANIM_REPEAT: '[zanim-repeat]', 712 PATH: 'path', 713 ZANIM_SVG: 'zanim-svg' 714}; 715var Events = { 716 SCROLL: 'scroll' 717}; 718 719var drawSvgInit = function drawSvgInit() { 720 var drawSvg = function drawSvg(el) { 721 var path = el.querySelector(Selector.PATH); 722 var defaultOptions = { 723 delay: 0, 724 duration: 2, 725 ease: 'Expo.easeOut' 726 }; 727 var controller = Object.assign(defaultOptions, utils.getData(el, Selector.ZANIM_SVG)); 728 var timeline = window.gsap.timeline(); 729 timeline.from(path, controller.duration, { 730 drawSVG: 0, 731 delay: controller.delay, 732 ease: controller.ease 733 }); 734 window.gsap.set(path, { 735 visibility: 'visible' 736 }); 737 }; 738 739 var triggerSvg = function triggerSvg() { 740 var svgTriggerElement = document.querySelectorAll("[".concat(Selector.DATA_ZANIM_SVG_TRIGGER, "]")); 741 svgTriggerElement.forEach(function (el) { 742 if (utils.isElementIntoView(el) && el.hasAttribute(Selector.DATA_ZANIM_SVG_TRIGGER)) { 743 drawSvg(el); 744 745 if (!document.querySelector(Selector.DATA_ZANIM_REPEAT)) { 746 el.removeAttribute(Selector.DATA_ZANIM_SVG_TRIGGER); 747 } 748 } 749 }); 750 }; 751 752 triggerSvg(); 753 window.addEventListener(Events.SCROLL, function () { 754 return triggerSvg(); 755 }); 756}; 757/*----------------------------------------------- 758| Fancynav 759-----------------------------------------------*/ 760 761 762var fancyNavInit = function fancyNavInit() { 763 var ClassName = { 764 SHOW: 'show', 765 PLAY: 'play', 766 COLLAPSED: 'collapsed', 767 FANCYNAVBAR_LEFT: 'fancynavbar-left', 768 FANCYNAVBAR_TOP: 'fancynavbar-top' 769 }; 770 var Selector = { 771 FANCYNAVBAR: '.fancynavbar', 772 FANCYNAVBAR_LEFT: '.fancynavbar-left', 773 FANCYNAVBAR_TOGGLERBAR: '.fancynavbar-togglerbar', 774 FANCYNAVBAR_BRAND_IMG: '.fancynavbar-brand-img', 775 FANCYNAVBAR_ADDON: '.fancynavbar-addon', 776 FANCYNAVBAR_COLLAPSE: '.fancynavbar-collapse', 777 FANCYNAVBAR_TOGGLER: '.fancynavbar-toggler', 778 FANCYNAVBAR_TOGGLER_ICON: '.fancynavbar-toggler-icon', 779 PATH_TOP: '#path-top', 780 PATH_MIDDLE: '#path-middle', 781 PATH_BOTTOM: '#path-bottom', 782 FANCYNAV_LINK: '.fancynav-link', 783 FANCY_DROPDOWN: '.fancy-dropdown', 784 FANCY_DROPDOWN_MENU: '.fancy-dropdown-menu', 785 FANCY_DROPDOWN_TOGGLE: '.fancy-dropdown-toggle',
786 FANCY_DROPDOWN_ITEM: '.fancy-dropdown-item', 787 DATA_ONE_PAGE: '[data-one-page]' 788 }; 789 var DATA_KEY = { 790 ZANIM_XS: 'data-zanim-xs', 791 ZANIM_MD: 'data-zanim-md', 792 ZANIM_LG: 'data-zanim-lg', 793 EXCLUSIVE: 'data-exclusive' 794 }; 795 var Events = { 796 CLICK: 'click', 797 SCROLL: 'scroll', 798 RESIZE: 'resize' 799 }; 800 var EASE = 'CubicBezier'; 801 var fancynavbar = document.querySelector(Selector.FANCYNAVBAR); 802 var isFancynavbarLeft = fancynavbar === null || fancynavbar === void 0 ? void 0 : fancynavbar.classList.contains(ClassName.FANCYNAVBAR_LEFT); 803 var isFancynavbarTop = fancynavbar === null || fancynavbar === void 0 ? void 0 : fancynavbar.classList.contains(ClassName.FANCYNAVBAR_TOP); 804 /*----------------------------------------------- 805 | RTL compatibility 806 -----------------------------------------------*/ 807 808 if ((utils.isRTL() || isFancynavbarLeft) && !(utils.isRTL() && isFancynavbarLeft)) { 809 var fancyNavbarBrandImg = document.querySelector(Selector.FANCYNAVBAR_BRAND_IMG); 810 var fancyNavbarTogglerIcon = document.querySelector(Selector.FANCYNAVBAR_TOGGLER_ICON); 811 var fancyNavbarAddon = document.querySelector(Selector.FANCYNAVBAR_ADDON); 812 813 var reverseZanimData = function reverseZanimData(el) { 814 var attrObj = JSON.parse(el.getAttribute(DATA_KEY.ZANIM_LG)); 815 attrObj.from.x = -attrObj.from.x; 816 var attrStr = JSON.stringify(attrObj); 817 el.setAttribute(DATA_KEY.ZANIM_LG, attrStr); 818 }; 819 820 reverseZanimData(fancynavbar); 821 reverseZanimData(fancyNavbarBrandImg); 822 reverseZanimData(fancyNavbarTogglerIcon); 823 reverseZanimData(fancyNavbarAddon); 824 } 825 826 if (isFancynavbarTop) { 827 var _fancyNavbarBrandImg = document.querySelector(Selector.FANCYNAVBAR_BRAND_IMG); 828 829 var _fancyNavbarTogglerIcon = document.querySelector(Selector.FANCYNAVBAR_TOGGLER_ICON); 830 831 var _fancyNavbarAddon = document.querySelector(Selector.FANCYNAVBAR_ADDON); 832 833 var setZanimData = function setZanimData(el, anim) { 834 var animStr = JSON.stringify(anim); 835 el.setAttribute(DATA_KEY.ZANIM_LG, animStr); 836 }; 837 838 var reverseZanimDataY = function reverseZanimDataY(el, val) { 839 var attrObj = JSON.parse(el.getAttribute(DATA_KEY.ZANIM_LG)); 840 attrObj.from.y = -val; 841 var attrStr = JSON.stringify(attrObj); 842 el.setAttribute(DATA_KEY.ZANIM_LG, attrStr); 843 }; 844 845 var anim = JSON.parse(fancynavbar.getAttribute(DATA_KEY.ZANIM_XS)); 846 847 var childAnim = _objectSpread(_objectSpread({}, anim), {}, { 848 delay: 0.4 849 }); 850 851 var addonAnim = _objectSpread(_objectSpread({}, anim), {}, { 852 delay: 0.5 853 }); 854 855 setZanimData(fancynavbar, anim); 856 setZanimData(_fancyNavbarBrandImg, childAnim); 857 reverseZanimDataY(_fancyNavbarBrandImg, 38); 858 setZanimData(_fancyNavbarTogglerIcon, childAnim); 859 setZanimData(_fancyNavbarAddon, addonAnim); 860 reverseZanimDataY(_fancyNavbarAddon, 30); 861 } 862 863 if (fancynavbar) { 864 var fancyNavbarCollapse = document.querySelector(Selector.FANCYNAVBAR_COLLAPSE); 865 var fancyNavbarToggler = document.querySelector(Selector.FANCYNAVBAR_TOGGLER); 866 var exclusive = document.querySelector("[".concat(DATA_KEY.EXCLUSIVE, "]")); 867 var x = '100%'; 868 (utils.isRTL() || isFancynavbarLeft) && !(utils.isRTL() && isFancynavbarLeft) && (x = '-100%'); 869 /*----------------------------------------------- 870 | Fancy Navbar Collapse Animation 871 -----------------------------------------------*/ 872 873 var fancyNavbarCollapseTimeline = window.gsap.timeline().pause(); 874 var fancyNavItems = document.querySelectorAll("".concat(Selector.FANCYNAV_LINK, ", ").concat(Selector.FANCY_DROPDOWN_MENU)); //$fancyNavItems.css('opacity', 0); 875 876 fancyNavbarCollapseTimeline.fromTo(fancyNavbarCollapse, 0.6, { 877 x: x 878 }, { 879 x: '0%', 880 ease: EASE 881 }).staggerFromTo(Array.from(fancyNavItems), 0.8, { 882 y: 56, 883 opacity: 0 884 }, { 885 y: 0, 886 opacity: 1, 887 ease: EASE 888 }, 0.05, '-=0.4'); 889 /*----------------------------------------------- 890 | End of Drawer Animation 891 -----------------------------------------------*/ 892 893 /*----------------------------------------------- 894 | Fancy Navbar Toggler Icon Animation 895 -----------------------------------------------*/ 896 897 var fancyNavbarTogglerIconTimeline = window.gsap.timeline().pause(); 898 899 var _fancyNavbarTogglerIcon2 = document.querySelector(Selector.FANCYNAVBAR_TOGGLER_ICON); 900 901 var fancyNavbarTogglerIconPathTop = _fancyNavbarTogglerIcon2.querySelector(Selector.PATH_TOP); 902 903 var fancyNavbarTogglerIconPathMiddle = _fancyNavbarTogglerIcon2.querySelector(Selector.PATH_MIDDLE); 904 905 var fancyNavbarTogglerIconPathBottom = _fancyNavbarTogglerIcon2.querySelector(Selector.PATH_BOTTOM); 906 907 fancyNavbarTogglerIconTimeline.fromTo(fancyNavbarTogglerIconPathTop, 0.5, { 908 'stroke-dashoffset': '0', 909 'stroke-dasharray': '30px 88px' 910 }, {
911 'stroke-dashoffset': '-81px', 912 delay: 0, 913 ease: EASE 914 }, 0).fromTo(fancyNavbarTogglerIconPathMiddle, 0.5, { 915 'stroke-dashoffset': '0', 916 'stroke-dasharray': '30px 30px' 917 }, { 918 'stroke-dashoffset': '-15px', 919 'stroke-dasharray': '0.1px 30px', 920 delay: 0, 921 ease: EASE 922 }, 0).fromTo(fancyNavbarTogglerIconPathBottom, 0.5, { 923 'stroke-dashoffset': '-87.9px', 924 'stroke-dasharray': '30px 88.1px' 925 }, { 926 'stroke-dashoffset': '-6.3px', 927 delay: 0, 928 ease: EASE 929 }, 0); 930 /*----------------------------------------------- 931 | End of Fancy Navbar Toggler Icon Animation 932 -----------------------------------------------*/ 933 934 var animateMenu = function animateMenu() { 935 _fancyNavbarTogglerIcon2.classList.contains(ClassName.PLAY) ? fancyNavbarTogglerIconTimeline.reverse() : fancyNavbarTogglerIconTimeline.play(); 936 937 _fancyNavbarTogglerIcon2.classList.toggle(ClassName.PLAY); 938 939 fancyNavbarToggler.classList.contains(ClassName.COLLAPSED) ? fancyNavbarCollapseTimeline.reverse() : fancyNavbarCollapseTimeline.play(); 940 fancyNavbarToggler.classList.toggle(ClassName.COLLAPSED); 941 }; 942 943 fancyNavbarToggler.addEventListener(Events.CLICK, animateMenu); 944 document.querySelector('main').addEventListener(Events.CLICK, function () { 945 fancyNavbarToggler.classList.contains(ClassName.COLLAPSED) && animateMenu(); 946 }); 947 /*----------------------------------------------- 948 | Resize Fancy Dropdown 949 -----------------------------------------------*/ 950 951 var fancyDropdownMenus = document.querySelectorAll(Selector.FANCY_DROPDOWN_MENU); 952 953 if (fancyDropdownMenus.length) { 954 fancyDropdownMenus.forEach(function (el) { 955 var fancyDropdownMenu = el; 956 var dpMenuPrevSiblingHeight = "".concat(fancyDropdownMenu.previousElementSibling.offsetHeight, "px"); 957 fancyDropdownMenu.closest(Selector.FANCY_DROPDOWN).style.height = dpMenuPrevSiblingHeight; 958 }); 959 /*----------------------------------------------- 960 | On Resize, Adjust the Menu Height 961 -----------------------------------------------*/ 962 963 window.resize(function () { 964 var fancyDropdownList = document.querySelectorAll(Selector.FANCY_DROPDOWN); 965 fancyDropdownList.forEach(function (el) { 966 var fancyDropdown = el; 967 var dropdownToggleHeight = el.querySelector(Selector.FANCY_DROPDOWN_TOGGLE).offsetHeight; 968 969 if (fancyDropdown.classList.contains(ClassName.SHOW)) { 970 var fancyDropdownMenuHeight = fancyDropdown.querySelector(Selector.FANCY_DROPDOWN_MENU).offsetHeight; 971 fancyDropdown.style.height = "".concat(dropdownToggleHeight + fancyDropdownMenuHeight, "px"); 972 } else { 973 fancyDropdown.style.height = "".concat(dropdownToggleHeight, "px"); 974 } 975 }); 976 }); 977 } 978 /*----------------------------------------------- 979 | End of Resize Fancy Dropdown 980 -----------------------------------------------*/ 981 982 983 var fancyNavLinks = document.querySelectorAll(Selector.FANCYNAV_LINK); 984 fancyNavLinks.forEach(function (fancyNavLink) { 985 fancyNavLink.addEventListener(Events.CLICK, function (e) { 986 var fancyLink = e.target; // if one-page 987 988 if (fancyLink.closest(Selector.DATA_ONE_PAGE)) { 989 animateMenu(); 990 } else { 991 var _targetFancyLinkParen; 992 993 var fancyDropdownMenuTl = window.gsap.timeline().pause(); 994 var targetFancyLink = fancyLink.closest(Selector.FANCY_DROPDOWN_TOGGLE); 995 var targetNavSiblings = targetFancyLink === null || targetFancyLink === void 0 ? void 0 : targetFancyLink.nextElementSibling; 996 var siblingsList = targetNavSiblings === null || targetNavSiblings === void 0 ? void 0 : targetNavSiblings.querySelectorAll(Selector.FANCY_DROPDOWN_ITEM); 997 var listOfItems = Array.from(siblingsList); 998 fancyDropdownMenuTl.staggerFromTo(listOfItems, 0.3, { 999 y: 30, 1000 opacity: 0 1001 }, { 1002 y: 0, 1003 opacity: 1, 1004 ease: EASE 1005 }, 0.01).delay(0.1); 1006 var targetFancyLinkParentLi = fancyLink === null || fancyLink === void 0 ? void 0 : fancyLink.closest(Selector.FANCY_DROPDOWN); 1007 targetFancyLinkParentLi === null || targetFancyLinkParentLi === void 0 ? void 0 : (_targetFancyLinkParen = targetFancyLinkParentLi.classList) === null || _targetFancyLinkParen === void 0 ? void 0 : _targetFancyLinkParen.toggle(ClassName.SHOW); 1008 1009 if (fancyLink.closest(Selector.FANCY_DROPDOWN).classList.contains(ClassName.SHOW)) { 1010 targetFancyLinkParentLi.style.height = "".concat(targetFancyLink.offsetHeight + targetFancyLink.nextElementSibling.offsetHeight, "px"); 1011 fancyDropdownMenuTl.play(); 1012 } else { 1013 fancyDropdownMenuTl.reverse(); 1014 targetFancyLinkParentLi.style.height = "".concat(targetFancyLink.offsetHeight, "px"); 1015 } 1016 /*----------------------------------------------- 1017 | Exclusive 1018 -----------------------------------------------*/ 1019 1020 1021 if (exclusive) { 1022 var currentDropdownEl = fancyLink.closest(Selector.FANCY_DROPDOWN); 1023 var dropdownElements = document.querySelectorAll(Selector.FANCY_DROPDOWN);
1024 dropdownElements.forEach(function (item) { 1025 var dropdownElement = item; 1026 1027 if (dropdownElement !== currentDropdownEl) { 1028 dropdownElement.style.height = "".concat(targetFancyLink.offsetHeight, "px"); 1029 dropdownElement.classList.remove(ClassName.SHOW); 1030 } 1031 }); 1032 } 1033 } 1034 }); 1035 }); //------------- click event end ------------ 1036 1037 /*----------------------------------------------- 1038 | Transparency on scroll on mobile 1039 -----------------------------------------------*/ 1040 1041 var togglerbar = document.querySelector(Selector.FANCYNAVBAR_TOGGLERBAR); 1042 var onscrollFadeIn = utils.getData(togglerbar, 'onscroll-fade-in'); 1043 var prevBgColor = window.getComputedStyle(togglerbar).backgroundColor; 1044 var prevBgClass = togglerbar.classList.value.split(' ').filter(function (className) { 1045 return className.indexOf('bg-') === 0; 1046 })[0]; 1047 1048 if (onscrollFadeIn) { 1049 var sideNavBgColor = window.getComputedStyle(togglerbar).backgroundColor; 1050 if (sideNavBgColor === 'transparent') sideNavBgColor = 'rgb(0, 0, 0)'; 1051 1052 if (sideNavBgColor.indexOf('a') === -1) { 1053 sideNavBgColor = sideNavBgColor.replace(')', ', 1)').replace('rgb', 'rgba'); 1054 } 1055 1056 var backgroundColorAlpha = sideNavBgColor.split(', ')[3].split(')')[0]; 1057 if (window.pageYOffset === 0) backgroundColorAlpha = 0; 1058 var fancynavBreakpoint = fancynavbar.classList.value.split(' ').filter(function (className) { 1059 return className.indexOf('fancynavbar-expand') === 0; 1060 })[0].split('fancynavbar-expand-')[1]; 1061 1062 var ChangeFancyNavBG = function ChangeFancyNavBG() { 1063 var windowHeight = window.innerHeight; 1064 1065 if (window.innerWidth > utils.breakpoints[fancynavBreakpoint]) { 1066 prevBgClass && togglerbar.classList.add(prevBgClass); 1067 togglerbar.style.backgroundColor = "".concat(prevBgColor.replace('rgba', 'rgb').split(',').slice(0, 3).join(), ")"); 1068 } else { 1069 togglerbar.classList.remove(prevBgClass); 1070 var tempBgColor = sideNavBgColor.split(', '); 1071 var bgColor = tempBgColor.join(); 1072 togglerbar.style.backgroundColor = bgColor; 1073 1074 var adjustFancyNavBG = function adjustFancyNavBG() { 1075 if (window.innerWidth < utils.breakpoints[fancynavBreakpoint]) { 1076 var scrollTop = window.pageYOffset; 1077 backgroundColorAlpha = scrollTop / windowHeight * 2; 1078 backgroundColorAlpha >= 1 && (backgroundColorAlpha = 1); 1079 tempBgColor[3] = "".concat(backgroundColorAlpha, ")"); 1080 bgColor = tempBgColor.join(); 1081 togglerbar.style.backgroundColor = bgColor; 1082 } 1083 }; // adjustFancyNavBG(); 1084 1085 1086 document.addEventListener(Events.SCROLL, function () { 1087 return adjustFancyNavBG(); 1088 }); 1089 } 1090 }; 1091 1092 ChangeFancyNavBG(); 1093 window.addEventListener(Events.RESIZE, function () { 1094 return ChangeFancyNavBG(); 1095 }); 1096 } 1097 } 1098}; 1099/*----------------------------------------------- 1100| Gooogle Map 1101-----------------------------------------------*/ 1102 1103 1104function initMap() { 1105 var themeController = document.body; 1106 var $googlemaps = document.querySelectorAll('[data-gmap]'); 1107 1108 if ($googlemaps.length && window.google) { 1109 // Visit https://snazzymaps.com/ for more themes 1110 var mapStyles = { 1111 Default: [{ 1112 featureType: 'water', 1113 elementType: 'geometry', 1114 stylers: [{ 1115 color: '#e9e9e9' 1116 }, { 1117 lightness: 17 1118 }] 1119 }, { 1120 featureType: 'landscape', 1121 elementType: 'geometry', 1122 stylers: [{ 1123 color: '#f5f5f5' 1124 }, { 1125 lightness: 20 1126 }] 1127 }, { 1128 featureType: 'road.highway', 1129 elementType: 'geometry.fill', 1130 stylers: [{ 1131 color: '#ffffff' 1132 }, { 1133 lightness: 17 1134 }] 1135 }, { 1136 featureType: 'road.highway', 1137 elementType: 'geometry.stroke', 1138 stylers: [{ 1139 color: '#ffffff' 1140 }, { 1141 lightness: 29 1142 }, { 1143 weight: 0.2 1144 }] 1145 }, { 1146 featureType: 'road.arterial', 1147 elementType: 'geometry', 1148 stylers: [{ 1149 color: '#ffffff' 1150 }, { 1151 lightness: 18 1152 }] 1153 }, { 1154 featureType: 'road.local', 1155 elementType: 'geometry', 1156 stylers: [{ 1157 color: '#ffffff' 1158 }, { 1159 lightness: 16 1160 }] 1161 }, { 1162 featureType: 'poi', 1163 elementType: 'geometry', 1164 stylers: [{ 1165 color: '#f5f5f5' 1166 }, { 1167 lightness: 21 1168 }] 1169 }, { 1170 featureType: 'poi.park', 1171 elementType: 'geometry', 1172 stylers: [{ 1173 color: '#dedede' 1174 }, { 1175 lightness: 21 1176 }] 1177 }, { 1178 elementType: 'labels.text.stroke', 1179 stylers: [{ 1180 visibility: 'on' 1181 }, { 1182 color: '#ffffff' 1183 }, { 1184 lightness: 16 1185 }] 1186 }, { 1187 elementType: 'labels.text.fill', 1188 stylers: [{ 1189 saturation: 36 1190 }, { 1191 color: '#333333' 1192 }, { 1193 lightness: 40 1194 }] 1195 }, { 1196 elementType: 'labels.icon', 1197 stylers: [{ 1198 visibility: 'off' 1199 }] 1200 }, { 1201 featureType: 'transit', 1202 elementType: 'geometry', 1203 stylers: [{ 1204 color: '#f2f2f2' 1205 }, { 1206 lightness: 19 1207 }] 1208 }, { 1209 featureType: 'administrative', 1210 elementType: 'geometry.fill', 1211 stylers: [{ 1212 color: '#fefefe' 1213 }, { 1214 lightness: 20 1215 }] 1216 }, { 1217 featureType: 'administrative', 1218 elementType: 'geometry.stroke', 1219 stylers: [{ 1220 color: '#fefefe' 1221 }, { 1222 lightness: 17 1223 }, { 1224 weight: 1.2 1225 }] 1226 }], 1227 Gray: [{ 1228 featureType: 'all', 1229 elementType: 'labels.text.fill', 1230 stylers: [{ 1231 saturation: 36 1232 }, { 1233 color: '#000000' 1234 }, { 1235 lightness: 40 1236 }] 1237 }, { 1238 featureType: 'all', 1239 elementType: 'labels.text.stroke', 1240 stylers: [{ 1241 visibility: 'on' 1242 }, { 1243 color: '#000000' 1244 }, { 1245 lightness: 16 1246 }] 1247 }, { 1248 featureType: 'all', 1249 elementType: 'labels.icon', 1250 stylers: [{ 1251 visibility: 'off' 1252 }] 1253 }, { 1254 featureType: 'administrative', 1255 elementType: 'geometry.fill', 1256 stylers: [{ 1257 color: '#000000' 1258 }, { 1259 lightness: 20 1260 }] 1261 }, { 1262 featureType: 'administrative', 1263 elementType: 'geometry.stroke', 1264 stylers: [{ 1265 color: '#000000' 1266 }, { 1267 lightness: 17 1268 }, { 1269 weight: 1.2 1270 }] 1271 }, { 1272 featureType: 'landscape', 1273 elementType: 'geometry', 1274 stylers: [{ 1275 color: '#000000' 1276 }, { 1277 lightness: 20 1278 }] 1279 }, { 1280 featureType: 'poi', 1281 elementType: 'geometry', 1282 stylers: [{ 1283 color: '#000000' 1284 }, { 1285 lightness: 21 1286 }] 1287 }, { 1288 featureType: 'road.highway', 1289 elementType: 'geometry.fill', 1290 stylers: [{ 1291 color: '#000000' 1292 }, { 1293 lightness: 17 1294 }] 1295 }, { 1296 featureType: 'road.highway', 1297 elementType: 'geometry.stroke', 1298 stylers: [{ 1299 color: '#000000' 1300 }, { 1301 lightness: 29 1302 }, { 1303 weight: 0.2 1304 }] 1305 }, { 1306 featureType: 'road.arterial', 1307 elementType: 'geometry', 1308 stylers: [{ 1309 color: '#000000' 1310 }, { 1311 lightness: 18 1312 }] 1313 }, { 1314 featureType: 'road.local', 1315 elementType: 'geometry', 1316 stylers: [{ 1317 color: '#000000' 1318 }, { 1319 lightness: 16 1320 }] 1321 }, { 1322 featureType: 'transit', 1323 elementType: 'geometry', 1324 stylers: [{ 1325 color: '#000000' 1326 }, { 1327 lightness: 19 1328 }] 1329 }, { 1330 featureType: 'water', 1331 elementType: 'geometry', 1332 stylers: [{ 1333 color: '#000000' 1334 }, { 1335 lightness: 17 1336 }] 1337 }], 1338 Midnight: [{ 1339 featureType: 'all', 1340 elementType: 'labels.text.fill', 1341 stylers: [{ 1342 color: '#ffffff' 1343 }] 1344 }, { 1345 featureType: 'all', 1346 elementType: 'labels.text.stroke', 1347 stylers: [{ 1348 color: '#000000' 1349 }, { 1350 lightness: 13 1351 }] 1352 }, { 1353 featureType: 'administrative', 1354 elementType: 'geometry.fill', 1355 stylers: [{ 1356 color: '#000000' 1357 }] 1358 }, { 1359 featureType: 'administrative', 1360 elementType: 'geometry.stroke', 1361 stylers: [{ 1362 color: '#144b53' 1363 }, { 1364 lightness: 14 1365 }, { 1366 weight: 1.4 1367 }] 1368 }, { 1369 featureType: 'landscape', 1370 elementType: 'all', 1371 stylers: [{ 1372 color: '#08304b' 1373 }] 1374 }, { 1375 featureType: 'poi', 1376 elementType: 'geometry', 1377 stylers: [{ 1378 color: '#0c4152' 1379 }, { 1380 lightness: 5 1381 }] 1382 }, { 1383 featureType: 'road.highway', 1384 elementType: 'geometry.fill', 1385 stylers: [{ 1386 color: '#000000' 1387 }] 1388 }, { 1389 featureType: 'road.highway', 1390 elementType: 'geometry.stroke', 1391 stylers: [{ 1392 color: '#0b434f' 1393 }, { 1394 lightness: 25 1395 }] 1396 }, { 1397 featureType: 'road.arterial', 1398 elementType: 'geometry.fill', 1399 stylers: [{ 1400 color: '#000000' 1401 }] 1402 }, { 1403 featureType: 'road.arterial', 1404 elementType: 'geometry.stroke', 1405 stylers: [{ 1406 color: '#0b3d51' 1407 }, { 1408 lightness: 16 1409 }] 1410 }, { 1411 featureType: 'road.local', 1412 elementType: 'geometry', 1413 stylers: [{ 1414 color: '#000000' 1415 }] 1416 }, { 1417 featureType: 'transit', 1418 elementType: 'all', 1419 stylers: [{ 1420 color: '#146474' 1421 }] 1422 }, { 1423 featureType: 'water', 1424 elementType: 'all', 1425 stylers: [{ 1426 color: '#021019' 1427 }] 1428 }], 1429 Hopper: [{ 1430 featureType: 'water', 1431 elementType: 'geometry', 1432 stylers: [{ 1433 hue: '#165c64' 1434 }, { 1435 saturation: 34 1436 }, { 1437 lightness: -69 1438 }, { 1439 visibility: 'on' 1440 }] 1441 }, { 1442 featureType: 'landscape', 1443 elementType: 'geometry', 1444 stylers: [{ 1445 hue: '#b7caaa' 1446 }, { 1447 saturation: -14 1448 }, { 1449 lightness: -18 1450 }, { 1451 visibility: 'on' 1452 }] 1453 }, { 1454 featureType: 'landscape.man_made', 1455 elementType: 'all', 1456 stylers: [{ 1457 hue: '#cbdac1' 1458 }, { 1459 saturation: -6 1460 }, { 1461 lightness: -9 1462 }, { 1463 visibility: 'on' 1464 }] 1465 }, { 1466 featureType: 'road', 1467 elementType: 'geometry', 1468 stylers: [{ 1469 hue: '#8d9b83' 1470 }, { 1471 saturation: -89 1472 }, { 1473 lightness: -12 1474 }, { 1475 visibility: 'on' 1476 }] 1477 }, { 1478 featureType: 'road.highway', 1479 elementType: 'geometry', 1480 stylers: [{ 1481 hue: '#d4dad0' 1482 }, { 1483 saturation: -88 1484 }, { 1485 lightness: 54 1486 }, { 1487 visibility: 'simplified' 1488 }] 1489 }, { 1490 featureType: 'road.arterial', 1491 elementType: 'geometry', 1492 stylers: [{ 1493 hue: '#bdc5b6' 1494 }, { 1495 saturation: -89 1496 }, { 1497 lightness: -3 1498 }, { 1499 visibility: 'simplified' 1500 }] 1501 }, { 1502 featureType: 'road.local', 1503 elementType: 'geometry', 1504 stylers: [{ 1505 hue: '#bdc5b6' 1506 }, { 1507 saturation: -89 1508 }, { 1509 lightness: -26 1510 }, { 1511 visibility: 'on' 1512 }] 1513 }, { 1514 featureType: 'poi', 1515 elementType: 'geometry', 1516 stylers: [{ 1517 hue: '#c17118' 1518 }, { 1519 saturation: 61 1520 }, { 1521 lightness: -45 1522 }, { 1523 visibility: 'on' 1524 }] 1525 }, { 1526 featureType: 'poi.park', 1527 elementType: 'all', 1528 stylers: [{ 1529 hue: '#8ba975' 1530 }, { 1531 saturation: -46 1532 }, { 1533 lightness: -28 1534 }, { 1535 visibility: 'on' 1536 }] 1537 }, { 1538 featureType: 'transit', 1539 elementType: 'geometry', 1540 stylers: [{ 1541 hue: '#a43218' 1542 }, { 1543 saturation: 74 1544 }, { 1545 lightness: -51 1546 }, { 1547 visibility: 'simplified' 1548 }] 1549 }, { 1550 featureType: 'administrative.province', 1551 elementType: 'all', 1552 stylers: [{ 1553 hue: '#ffffff' 1554 }, { 1555 saturation: 0 1556 }, { 1557 lightness: 100 1558 }, { 1559 visibility: 'simplified' 1560 }] 1561 }, { 1562 featureType: 'administrative.neighborhood', 1563 elementType: 'all', 1564 stylers: [{ 1565 hue: '#ffffff' 1566 }, { 1567 saturation: 0 1568 }, { 1569 lightness: 100 1570 }, { 1571 visibility: 'off' 1572 }] 1573 }, { 1574 featureType: 'administrative.locality', 1575 elementType: 'labels', 1576 stylers: [{ 1577 hue: '#ffffff' 1578 }, { 1579 saturation: 0 1580 }, { 1581 lightness: 100 1582 }, { 1583 visibility: 'off' 1584 }] 1585 }, { 1586 featureType: 'administrative.land_parcel', 1587 elementType: 'all', 1588 stylers: [{ 1589 hue: '#ffffff' 1590 }, { 1591 saturation: 0 1592 }, { 1593 lightness: 100 1594 }, { 1595 visibility: 'off' 1596 }] 1597 }, { 1598 featureType: 'administrative', 1599 elementType: 'all', 1600 stylers: [{ 1601 hue: '#3a3935' 1602 }, { 1603 saturation: 5 1604 }, { 1605 lightness: -57 1606 }, { 1607 visibility: 'off' 1608 }] 1609 }, { 1610 featureType: 'poi.medical', 1611 elementType: 'geometry', 1612 stylers: [{ 1613 hue: '#cba923' 1614 }, { 1615 saturation: 50 1616 }, { 1617 lightness: -46 1618 }, { 1619 visibility: 'on' 1620 }] 1621 }], 1622 Beard: [{ 1623 featureType: 'poi.business', 1624 elementType: 'labels.text', 1625 stylers: [{ 1626 visibility: 'on' 1627 }, { 1628 color: '#333333' 1629 }] 1630 }], 1631 AssassianCreed: [{ 1632 featureType: 'all', 1633 elementType: 'all', 1634 stylers: [{ 1635 visibility: 'on' 1636 }] 1637 }, { 1638 featureType: 'all', 1639 elementType: 'labels', 1640 stylers: [{ 1641 visibility: 'off' 1642 }, { 1643 saturation: '-100' 1644 }] 1645 }, { 1646 featureType: 'all', 1647 elementType: 'labels.text.fill', 1648 stylers: [{ 1649 saturation: 36 1650 }, { 1651 color: '#000000' 1652 }, { 1653 lightness: 40 1654 }, { 1655 visibility: 'off' 1656 }] 1657 }, { 1658 featureType: 'all', 1659 elementType: 'labels.text.stroke', 1660 stylers: [{ 1661 visibility: 'off' 1662 }, { 1663 color: '#000000' 1664 }, { 1665 lightness: 16 1666 }] 1667 }, { 1668 featureType: 'all', 1669 elementType: 'labels.icon', 1670 stylers: [{ 1671 visibility: 'off' 1672 }] 1673 }, { 1674 featureType: 'administrative', 1675 elementType: 'geometry.fill', 1676 stylers: [{ 1677 color: '#000000' 1678 }, { 1679 lightness: 20 1680 }] 1681 }, { 1682 featureType: 'administrative', 1683 elementType: 'geometry.stroke', 1684 stylers: [{ 1685 color: '#000000' 1686 }, { 1687 lightness: 17 1688 }, { 1689 weight: 1.2 1690 }] 1691 }, { 1692 featureType: 'landscape', 1693 elementType: 'geometry', 1694 stylers: [{ 1695 color: '#000000' 1696 }, { 1697 lightness: 20 1698 }] 1699 }, { 1700 featureType: 'landscape', 1701 elementType: 'geometry.fill', 1702 stylers: [{ 1703 color: '#4d6059' 1704 }] 1705 }, { 1706 featureType: 'landscape', 1707 elementType: 'geometry.stroke', 1708
1708 stylers: [{ 1709 color: '#4d6059' 1710 }] 1711 }, { 1712 featureType: 'landscape.natural', 1713 elementType: 'geometry.fill', 1714 stylers: [{ 1715 color: '#4d6059' 1716 }] 1717 }, { 1718 featureType: 'poi', 1719 elementType: 'geometry', 1720 stylers: [{ 1721 lightness: 21 1722 }] 1723 }, { 1724 featureType: 'poi', 1725 elementType: 'geometry.fill', 1726 stylers: [{ 1727 color: '#4d6059' 1728 }] 1729 }, { 1730 featureType: 'poi', 1731 elementType: 'geometry.stroke', 1732 stylers: [{ 1733 color: '#4d6059' 1734 }] 1735 }, { 1736 featureType: 'road', 1737 elementType: 'geometry', 1738 stylers: [{ 1739 visibility: 'on' 1740 }, { 1741 color: '#7f8d89' 1742 }] 1743 }, { 1744 featureType: 'road', 1745 elementType: 'geometry.fill', 1746 stylers: [{ 1747 color: '#7f8d89' 1748 }] 1749 }, { 1750 featureType: 'road.highway', 1751 elementType: 'geometry.fill', 1752 stylers: [{ 1753 color: '#7f8d89' 1754 }, { 1755 lightness: 17 1756 }] 1757 }, { 1758 featureType: 'road.highway', 1759 elementType: 'geometry.stroke', 1760 stylers: [{ 1761 color: '#7f8d89' 1762 }, { 1763 lightness: 29 1764 }, { 1765 weight: 0.2 1766 }] 1767 }, { 1768 featureType: 'road.arterial', 1769 elementType: 'geometry', 1770 stylers: [{ 1771 color: '#000000' 1772 }, { 1773 lightness: 18 1774 }] 1775 }, { 1776 featureType: 'road.arterial', 1777 elementType: 'geometry.fill', 1778 stylers: [{ 1779 color: '#7f8d89' 1780 }] 1781 }, { 1782 featureType: 'road.arterial', 1783 elementType: 'geometry.stroke', 1784 stylers: [{ 1785 color: '#7f8d89' 1786 }] 1787 }, { 1788 featureType: 'road.local', 1789 elementType: 'geometry', 1790 stylers: [{ 1791 color: '#000000' 1792 }, { 1793 lightness: 16 1794 }] 1795 }, { 1796 featureType: 'road.local', 1797 elementType: 'geometry.fill', 1798 stylers: [{ 1799 color: '#7f8d89' 1800 }] 1801 }, { 1802 featureType: 'road.local', 1803 elementType: 'geometry.stroke', 1804 stylers: [{ 1805 color: '#7f8d89' 1806 }] 1807 }, { 1808 featureType: 'transit', 1809 elementType: 'geometry', 1810 stylers: [{ 1811 color: '#000000' 1812 }, { 1813 lightness: 19 1814 }] 1815 }, { 1816 featureType: 'water', 1817 elementType: 'all', 1818 stylers: [{ 1819 color: '#2b3638' 1820 }, { 1821 visibility: 'on' 1822 }] 1823 }, { 1824 featureType: 'water', 1825 elementType: 'geometry', 1826 stylers: [{ 1827 color: '#2b3638' 1828 }, { 1829 lightness: 17 1830 }] 1831 }, { 1832 featureType: 'water', 1833 elementType: 'geometry.fill', 1834 stylers: [{ 1835 color: '#24282b' 1836 }] 1837 }, { 1838 featureType: 'water', 1839 elementType: 'geometry.stroke', 1840 stylers: [{ 1841 color: '#24282b' 1842 }] 1843 }, { 1844 featureType: 'water', 1845 elementType: 'labels', 1846 stylers: [{ 1847 visibility: 'off' 1848 }] 1849 }, { 1850 featureType: 'water', 1851 elementType: 'labels.text', 1852 stylers: [{ 1853 visibility: 'off ' 1854 }] 1855 }, { 1856 featureType: 'water', 1857 elementType: 'labels.text.fill', 1858 stylers: [{ 1859 visibility: 'off' 1860 }] 1861 }, { 1862 featureType: 'water', 1863 elementType: 'labels.text.stroke', 1864 stylers: [{ 1865 visibility: 'off' 1866 }] 1867 }, { 1868 featureType: 'water', 1869 elementType: 'labels.icon', 1870 stylers: [{ 1871 visibility: 'off' 1872 }] 1873 }], 1874 SubtleGray: [{ 1875 featureType: 'administrative', 1876 elementType: 'all', 1877 stylers: [{ 1878 saturation: '-100' 1879 }] 1880 }, { 1881 featureType: 'administrative.province', 1882 elementType: 'all', 1883 stylers: [{ 1884 visibility: 'off' 1885 }] 1886 }, { 1887 featureType: 'landscape', 1888 elementType: 'all', 1889 stylers: [{ 1890 saturation: -100 1891 }, { 1892 lightness: 65 1893 }, { 1894 visibility: 'on' 1895 }] 1896 }, { 1897 featureType: 'poi', 1898 elementType: 'all', 1899 stylers: [{ 1900 saturation: -100 1901 }, { 1902 lightness: '50' 1903 }, { 1904 visibility: 'simplified' 1905 }] 1906 }, { 1907 featureType: 'road', 1908 elementType: 'all', 1909 stylers: [{ 1910 saturation: -100 1911 }] 1912 }, { 1913 featureType: 'road.highway', 1914 elementType: 'all', 1915 stylers: [{ 1916 visibility: 'simplified' 1917 }] 1918 }, { 1919 featureType: 'road.arterial', 1920 elementType: 'all', 1921 stylers: [{ 1922 lightness: '30' 1923 }] 1924 }, { 1925 featureType: 'road.local', 1926 elementType: 'all', 1927 stylers: [{ 1928 lightness: '40' 1929 }] 1930 }, { 1931 featureType: 'transit', 1932 elementType: 'all', 1933 stylers: [{ 1934 saturation: -100 1935 }, { 1936 visibility: 'simplified' 1937 }] 1938 }, { 1939 featureType: 'water', 1940 elementType: 'geometry', 1941 stylers: [{ 1942 hue: '#ffff00' 1943 }, { 1944 lightness: -25 1945 }, { 1946 saturation: -97 1947 }] 1948 }, { 1949 featureType: 'water', 1950 elementType: 'labels', 1951 stylers: [{ 1952 lightness: -25 1953 }, { 1954 saturation: -100 1955 }] 1956 }], 1957 Tripitty: [{ 1958 featureType: 'all', 1959 elementType: 'labels', 1960 stylers: [{ 1961 visibility: 'off' 1962 }] 1963 }, { 1964 featureType: 'administrative', 1965 elementType: 'all', 1966 stylers: [{ 1967 visibility: 'off' 1968 }] 1969 }, { 1970 featureType: 'landscape', 1971 elementType: 'all', 1972 stylers: [{ 1973 color: '#2c5ca5' 1974 }] 1975 }, { 1976 featureType: 'poi', 1977 elementType: 'all', 1978 stylers: [{ 1979 color: '#2c5ca5' 1980 }] 1981 }, { 1982 featureType: 'road', 1983 elementType: 'all', 1984 stylers: [{ 1985 visibility: 'off' 1986 }] 1987 }, { 1988 featureType: 'transit', 1989 elementType: 'all', 1990 stylers: [{ 1991 visibility: 'off' 1992 }] 1993 }, { 1994 featureType: 'water', 1995 elementType: 'all', 1996 stylers: [{ 1997 color: '#193a70' 1998 }, { 1999 visibility: 'on' 2000 }] 2001 }], 2002 Cobalt: [{ 2003 featureType: 'all', 2004 elementType: 'all', 2005 stylers: [{ 2006 invert_lightness: true 2007 }, { 2008 saturation: 10 2009 }, { 2010 lightness: 30 2011 }, { 2012 gamma: 0.5 2013 }, { 2014 hue: '#435158' 2015 }] 2016 }] 2017 }; 2018 $googlemaps.forEach(function (itm) { 2019 var latLng = utils.getData(itm, 'latlng').split(','); 2020 var markerPopup = itm.innerHTML; 2021 var icon = utils.getData(itm, 'icon') ? utils.getData(itm, 'icon') : 'https://maps.gstatic.
2021com/mapfiles/api-3/images/spotlight-poi.png'; 2022 var zoom = utils.getData(itm, 'zoom'); 2023 var mapElement = itm; 2024 var mapStyle = utils.getData(itm, 'theme'); 2025 2026 if (utils.getData(itm, 'theme') === 'streetview') { 2027 var pov = utils.getData(itm, 'pov'); 2028 var _mapOptions = { 2029 position: { 2030 lat: Number(latLng[0]), 2031 lng: Number(latLng[1]) 2032 }, 2033 pov: pov, 2034 zoom: zoom, 2035 gestureHandling: 'none', 2036 scrollwheel: false 2037 }; 2038 return new window.google.maps.StreetViewPanorama(mapElement, _mapOptions); 2039 } 2040 2041 var mapOptions = { 2042 zoom: zoom, 2043 scrollwheel: utils.getData(itm, 'scrollwheel'), 2044 center: new window.google.maps.LatLng(latLng[0], latLng[1]), 2045 styles: localStorage.getItem('theme') === 'dark' ? mapStyles.Cobalt : mapStyles[mapStyle] 2046 }; 2047 var map = new window.google.maps.Map(mapElement, mapOptions); 2048 var infowindow = new window.google.maps.InfoWindow({ 2049 content: markerPopup 2050 }); 2051 var marker = new window.google.maps.Marker({ 2052 position: new window.google.maps.LatLng(latLng[0], latLng[1]), 2053 icon: icon, 2054 map: map 2055 }); 2056 marker.addListener('click', function () { 2057 infowindow.open(map, marker); 2058 }); 2059 themeController && themeController.addEventListener('clickControl', function (_ref) { 2060 var _ref$detail = _ref.detail, 2061 control = _ref$detail.control, 2062 value = _ref$detail.value; 2063 2064 if (control === 'theme') { 2065 map.set('styles', value === 'dark' ? mapStyles.Cobalt : mapStyles[mapStyle]); 2066 } 2067 }); 2068 return null; 2069 }); 2070 } 2071} 2072/*----------------------------------------------- 2073| Isotope 2074-----------------------------------------------*/ 2075 2076 2077var isotopeInit = function isotopeInit() { 2078 var Selector = { 2079 ISOTOPE_ITEM: '.isotope-item', 2080 DATA_ISOTOPE: '[data-isotope]', 2081 DATA_FILTER: '[data-filter]', 2082 DATA_FILER_NAV: '[data-filter-NAV]' 2083 }; 2084 var DATA_KEY = { 2085 ISOTOPE: 'isotope' 2086 }; 2087 var ClassName = { 2088 ACTIVE: 'active' 2089 }; 2090 2091 if (window.Isotope) { 2092 var masonryItems = document.querySelectorAll(Selector.DATA_ISOTOPE); 2093 masonryItems.length && masonryItems.forEach(function (masonryItem) { 2094 window.imagesLoaded(masonryItem, function () { 2095 masonryItem.querySelectorAll(Selector.ISOTOPE_ITEM).forEach(function (item) { 2096 // eslint-disable-next-line 2097 item.style.visibility = "visible"; 2098 }); 2099 var userOptions = utils.getData(masonryItem, DATA_KEY.ISOTOPE); 2100 var defaultOptions = { 2101 itemSelector: Selector.ISOTOPE_ITEM, 2102 layoutMode: 'packery' 2103 }; 2104 2105 var options = window._.merge(defaultOptions, userOptions); 2106 2107 var isotope = new window.Isotope(masonryItem, options); //--------- filter ----------------- 2108 2109 var filterElement = document.querySelector(Selector.DATA_FILER_NAV); 2110 filterElement === null || filterElement === void 0 ? void 0 : filterElement.addEventListener('click', function (e) { 2111 if (e.target.classList.contains('isotope-nav')) { 2112 var item = e.target.dataset.filter; 2113 isotope.arrange({ 2114 filter: item 2115 }); 2116 document.querySelectorAll(Selector.DATA_FILTER).forEach(function (el) { 2117 el.classList.remove(ClassName.ACTIVE); 2118 }); 2119 e.target.classList.add(ClassName.ACTIVE); 2120 } 2121 }); //---------- filter end ------------ 2122 2123 return isotope; 2124 }); 2125 }); 2126 } 2127}; 2128/* -------------------------------------------------------------------------- */ 2129 2130/* bigPicture */ 2131 2132/* -------------------------------------------------------------------------- */ 2133 2134 2135var lightboxInit = function lightboxInit() { 2136 if (window.BigPicture) { 2137 var bpItems = document.querySelectorAll('[data-bigpicture]'); 2138 bpItems.forEach(function (bpItem) { 2139 var userOptions = utils.getData(bpItem, 'bigpicture'); 2140 var defaultOptions = { 2141 el: bpItem 2142 }; 2143 2144 var options = window._.merge(defaultOptions, userOptions); 2145 2146 bpItem.addEventListener('click', function () { 2147 window.BigPicture(options); 2148 }); 2149 }); 2150 } 2151}; 2152/*----------------------------------------------- 2153| Cookie notice 2154-----------------------------------------------*/ 2155 2156 2157var cookieNoticeInit = function cookieNoticeInit() { 2158 var Selector = { 2159 NOTICE: '.notice', 2160 DATA_TOGGLE_NOTICE: '[data-bs-toggle="notice"]' 2161 }; 2162 var Events = { 2163 CLICK: 'click', 2164 HIDDEN_BS_TOAST: 'hidden.bs.toast' 2165 }; 2166 var DataKeys = { 2167 OPTIONS: 'options' 2168 }; 2169 var ClassNames = { 2170 HIDE: 'hide' 2171 }; 2172 var notices = document.querySelectorAll(Selector.NOTICE); 2173 var showNotice = true;
2174 notices.forEach(function (item) { 2175 var notice = new window.bootstrap.Toast(item); 2176 2177 var options = _objectSpread({ 2178 autoShow: false, 2179 autoShowDelay: 0, 2180 showOnce: false, 2181 cookieExpireTime: 3600000, 2182 autohide: false 2183 }, utils.getData(item, DataKeys.OPTIONS)); 2184 2185 var showOnce = options.showOnce, 2186 autoShow = options.autoShow, 2187 autoShowDelay = options.autoShowDelay; 2188 2189 if (showOnce) { 2190 var hasNotice = utils.getCookie('notice'); 2191 showNotice = hasNotice === null; 2192 } 2193 2194 if (autoShow && showNotice) { 2195 setTimeout(function () { 2196 notice.show(); 2197 }, autoShowDelay); 2198 } 2199 2200 item.addEventListener(Events.HIDDEN_BS_TOAST, function (e) { 2201 var el = e.currentTarget; 2202 2203 var toastOptions = _objectSpread({ 2204 cookieExpireTime: 3600000, 2205 showOnce: false, 2206 autohide: false 2207 }, utils.getData(el, DataKeys.OPTIONS)); 2208 2209 toastOptions.showOnce && utils.setCookie('notice', false, toastOptions.cookieExpireTime); 2210 }); 2211 }); 2212 var btnNoticeToggle = document.querySelector(Selector.DATA_TOGGLE_NOTICE); 2213 btnNoticeToggle && btnNoticeToggle.addEventListener(Events.CLICK, function (_ref2) { 2214 var currentTarget = _ref2.currentTarget; 2215 var id = currentTarget.getAttribute('href'); 2216 var notice = new window.bootstrap.Toast(document.querySelector(id)); 2217 /*eslint-disable-next-line*/ 2218 2219 var el = notice._element; 2220 utils.hasClass(el, ClassNames.HIDE) ? notice.show() : notice.hide(); 2221 }); 2222}; 2223/*----------------------------------------------- 2224| Inline Player [plyr] 2225-----------------------------------------------*/ 2226 2227 2228var plyrInit = function plyrInit() { 2229 if (window.Plyr) { 2230 var plyrs = document.querySelectorAll('[data-plyr]'); 2231 plyrs.forEach(function (plyr) { 2232 var userOptions = utils.getData(plyr, 'plyr'); 2233 var defaultOptions = { 2234 captions: { 2235 active: true 2236 } 2237 }; 2238 2239 var options = window._.merge(defaultOptions, userOptions); 2240 2241 return new window.Plyr(plyr, options); 2242 }); 2243 } 2244}; 2245/* -------------------------------------------------------------------------- */ 2246 2247/* Popover */ 2248 2249/* -------------------------------------------------------------------------- */ 2250 2251 2252var popoverInit = function popoverInit() { 2253 var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')); 2254 popoverTriggerList.map(function (popoverTriggerEl) { 2255 return new window.bootstrap.Popover(popoverTriggerEl); 2256 }); 2257}; 2258/* -------------------------------------------------------------------------- */ 2259 2260/* Preloader */ 2261 2262/* -------------------------------------------------------------------------- */ 2263 2264 2265var preloaderInit = function preloaderInit() { 2266 var bodyElement = document.querySelector('body'); 2267 window.imagesLoaded(bodyElement, function () { 2268 var preloader = document.querySelector('.preloader'); 2269 preloader === null || preloader === void 0 ? void 0 : preloader.classList.add('loaded'); 2270 setTimeout(function () { 2271 preloader === null || preloader === void 0 ? void 0 : preloader.remove(); 2272 }, 800); 2273 }); 2274}; 2275/* -------------------------------------------------------------------------- */ 2276 2277/* Progressbar JS */ 2278 2279/* -------------------------------------------------------------------------- */ 2280 2281/* 2282 global ProgressBar 2283*/ 2284 2285 2286var progressBarInit = function progressBarInit() { 2287 var Selector = { 2288 DATA_PROGRESS_CIRCLE: '[data-progress-circle]', 2289 DATA_PROGRESS_LINE: '[data-progress-line]' 2290 }; 2291 var Events = { 2292 SCROLL: 'scroll' 2293 }; 2294 var merge = window._.merge; // [email protected] version is used 2295 // Docs: http://progressbarjs.readthedocs.org/en/1.0.0/ 2296 2297 /*----------------------------------------------- 2298 | Progress Circle 2299 -----------------------------------------------*/ 2300 2301 var progressCircle = document.querySelectorAll(Selector.DATA_PROGRESS_CIRCLE); 2302 2303 if (progressCircle.length) { 2304 progressCircle.forEach(function (item) { 2305 var userOptions = utils.getData(item, 'progress-circle'); 2306 2307 var getDefaultOptions = function getDefaultOptions() { 2308 return { 2309 strokeWidth: 2, 2310 trailWidth: 2, 2311 easing: 'easeInOut', 2312 duration: 3000, 2313 svgStyle: { 2314 'stroke-linecap': 'round', 2315 display: 'block', 2316 width: '100%' 2317 }, 2318 text: { 2319 autoStyleContainer: false 2320 }, 2321 from: { 2322 color: '#aaa', 2323 width: 2 2324 }, 2325 to: { 2326 color: '#333', 2327 width: 2 2328 },
2329 // Set default step function for all animate calls 2330 step: function step(state, circle) { 2331 circle.path.setAttribute('stroke', state.color); 2332 circle.path.setAttribute('stroke-width', state.width); 2333 var percentage = Math.round(circle.value() * 100); 2334 circle.setText("<span class='value'>".concat(percentage, "<b>%</b></span> <span>").concat(userOptions.subText || '', "</span>")); 2335 } 2336 }; 2337 }; 2338 2339 var options = merge(getDefaultOptions(), userOptions); 2340 var bar = new ProgressBar.Circle(item, options); 2341 var linearGradient = "<defs>\n <linearGradient id=\"gradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0%\" stop-color='#1970e2' />\n <stop offset=\"100%\" stop-color='#4695ff' />\n </linearGradient>\n </defs>"; 2342 bar.svg.insertAdjacentHTML('beforeEnd', linearGradient); 2343 var playProgressTriggered = false; 2344 2345 var progressCircleAnimation = function progressCircleAnimation() { 2346 if (!playProgressTriggered) { 2347 if (utils.isElementIntoView(item)) { 2348 bar.animate(options.progress / 100); 2349 playProgressTriggered = true; 2350 } 2351 } 2352 2353 return playProgressTriggered; 2354 }; 2355 2356 progressCircleAnimation(); 2357 window.addEventListener(Events.SCROLL, function () { 2358 progressCircleAnimation(); 2359 }); 2360 document.body.addEventListener('clickControl', function (_ref3) { 2361 var control = _ref3.detail.control; 2362 2363 if (control === 'theme') { 2364 bar.trail.setAttribute('stroke', utils.getGrays()['200']); 2365 2366 if (!bar.path.getAttribute('stroke').includes('url')) { 2367 bar.path.setAttribute('stroke', utils.getGrays()['400']); 2368 } 2369 } 2370 }); 2371 }); 2372 } 2373 /*----------------------------------------------- 2374 | Progress Line 2375 -----------------------------------------------*/ 2376 2377 2378 var progressLine = document.querySelectorAll(Selector.DATA_PROGRESS_LINE); 2379 2380 if (progressLine.length) { 2381 progressLine.forEach(function (item) { 2382 var userOptions = utils.getData(item, 'progress-line'); 2383 2384 var getDefaultOptions = function getDefaultOptions() { 2385 return { 2386 strokeWidth: 1, 2387 easing: 'easeInOut', 2388 duration: 3000, 2389 trailWidth: 1, 2390 color: '#333', 2391 svgStyle: { 2392 width: '100%', 2393 height: '0.25rem', 2394 'stroke-linecap': 'round', 2395 'border-radius': '0.125rem' 2396 }, 2397 text: { 2398 style: { 2399 transform: null 2400 }, 2401 autoStyleContainer: false 2402 }, 2403 step: function step(state, line) { 2404 line.setText("<span class='value'>".concat(Math.round(line.value() * 100), "<b>%</b></span> <span>").concat(userOptions.subText, "</span>")); 2405 } 2406 }; 2407 }; 2408 2409 var options = merge(getDefaultOptions(), userOptions); 2410 var bar = new ProgressBar.Line(item, options); 2411 var playProgressTriggered = false; 2412 2413 var progressLineAnimation = function progressLineAnimation() { 2414 if (!playProgressTriggered) { 2415 if (utils.isElementIntoView(item)) { 2416 bar.animate(options.progress / 100); 2417 playProgressTriggered = true; 2418 } 2419 } 2420 2421 return playProgressTriggered; 2422 }; 2423 2424 progressLineAnimation(); 2425 window.addEventListener(Events.SCROLL, function () { 2426 progressLineAnimation(); 2427 }); 2428 }); 2429 } //----------- progress line end -------------- 2430 2431}; 2432/* -------------------------------------------------------------------------- 2433| Rellax js 2434/* -------------------------------------------------------------------------- */ 2435 2436 2437var rellaxInit = function rellaxInit() { 2438 return window.Rellax && new window.Rellax('[data-parallax]', {}); 2439}; 2440/*----------------------------------------------- 2441| Swiper 2442-----------------------------------------------*/ 2443 2444 2445var swiperInit = function swiperInit() { 2446 var Selector = { 2447 DATA_SWIPER: '[data-swiper]', 2448 DATA_ZANIM_TIMELINE: '[data-zanim-timeline]', 2449 IMG: 'img', 2450 SWIPER_NAV: '.swiper-nav', 2451 SWIPER_BUTTON_NEXT: '.swiper-button-next', 2452 SWIPER_BUTTON_PREV: '.swiper-button-prev' 2453 }; 2454 var DATA_KEY = { 2455 SWIPER: 'swiper' 2456 }; 2457 var Events = { 2458 SLIDE_CHANGE: 'slideChange' 2459 }; 2460 var swipers = document.querySelectorAll(Selector.DATA_SWIPER);
2461 swipers.forEach(function (swiper) { 2462 var options = utils.getData(swiper, DATA_KEY.SWIPER); 2463 var thumbsOptions = options.thumb; 2464 var thumbsInit; 2465 2466 if (thumbsOptions) { 2467 var thumbImages = swiper.querySelectorAll(Selector.IMG); 2468 var slides = ''; 2469 thumbImages.forEach(function (img) { 2470 slides += "\n <div class='swiper-slide '>\n <img class='img-fluid rounded mt-1' src=".concat(img.src, " alt=''/>\n </div>\n "); 2471 }); 2472 var thumbs = document.createElement('div'); 2473 thumbs.setAttribute('class', 'swiper-container thumb'); 2474 thumbs.innerHTML = "<div class='swiper-wrapper'>".concat(slides, "</div>"); 2475 2476 if (thumbsOptions.parent) { 2477 var parent = document.querySelector(thumbsOptions.parent); 2478 parent.parentNode.appendChild(thumbs); 2479 } else { 2480 swiper.parentNode.appendChild(thumbs); 2481 } 2482 2483 thumbsInit = new window.Swiper(thumbs, thumbsOptions); 2484 } 2485 2486 var swiperNav = swiper.querySelector(Selector.SWIPER_NAV); 2487 var newSwiper = new window.Swiper(swiper, _objectSpread(_objectSpread({}, options), {}, { 2488 navigation: { 2489 nextEl: swiperNav === null || swiperNav === void 0 ? void 0 : swiperNav.querySelector(Selector.SWIPER_BUTTON_NEXT), 2490 prevEl: swiperNav === null || swiperNav === void 0 ? void 0 : swiperNav.querySelector(Selector.SWIPER_BUTTON_PREV) 2491 }, 2492 thumbs: { 2493 swiper: thumbsInit 2494 } 2495 })); //- zanimation effect start 2496 2497 if (swiper) { 2498 newSwiper.on(Events.SLIDE_CHANGE, function () { 2499 var timelineElements = swiper.querySelectorAll(Selector.DATA_ZANIM_TIMELINE); 2500 timelineElements.forEach(function (el) { 2501 window.zanimation(el, function (animation) { 2502 setTimeout(function () { 2503 animation.play(); 2504 }, 1200); 2505 }); 2506 }); 2507 }); 2508 } //- zanimation effect end 2509 2510 }); 2511}; 2512/* -------------------------------------------------------------------------- */ 2513 2514/* Tooltip */ 2515 2516/* -------------------------------------------------------------------------- */ 2517 2518 2519var tooltipInit = function tooltipInit() { 2520 var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); 2521 tooltipTriggerList.map(function (tooltipTriggerEl) { 2522 return new window.bootstrap.Tooltip(tooltipTriggerEl, { 2523 trigger: 'hover' 2524 }); 2525 }); 2526}; 2527/* -------------------------------------------------------------------------- */ 2528 2529/* Typed Text */ 2530 2531/* -------------------------------------------------------------------------- */ 2532 2533 2534var typedTextInit = function typedTextInit() { 2535 var typedTexts = document.querySelectorAll('[data-typed-text]'); 2536 2537 if (typedTexts.length && window.Typed) { 2538 typedTexts.forEach(function (typedText) { 2539 return new window.Typed(typedText, { 2540 strings: utils.getData(typedText, 'typed-text'), 2541 typeSpeed: 100, 2542 loop: true, 2543 backDelay: 1500 2544 }); 2545 }); 2546 } 2547}; 2548/*----------------------------------------------- 2549| Zanimation 2550-----------------------------------------------*/ 2551 2552/* 2553global CustomEase, gsap 2554*/ 2555 2556 2557CustomEase.create('CubicBezier', '.77,0,.18,1'); 2558/*----------------------------------------------- 2559| Global Functions 2560-----------------------------------------------*/ 2561 2562var filterBlur = function filterBlur() { 2563 var blur = 'blur(5px)'; 2564 var isIpadIphoneMacFirefox = (window.is.ios() || window.is.mac()) && window.is.firefox(); 2565 2566 if (isIpadIphoneMacFirefox) { 2567 blur = 'blur(0px)'; 2568 } 2569 2570 return blur; 2571}; 2572 2573var zanimationEffects = { 2574 "default": { 2575 from: { 2576 opacity: 0, 2577 y: 70 2578 }, 2579 to: { 2580 opacity: 1, 2581 y: 0 2582 }, 2583 ease: 'CubicBezier', 2584 duration: 0.8, 2585 delay: 0 2586 }, 2587 'slide-down': { 2588 from: { 2589 opacity: 0, 2590 y: -70 2591 }, 2592 to: { 2593 opacity: 1, 2594 y: 0 2595 }, 2596 ease: 'CubicBezier', 2597 duration: 0.8, 2598 delay: 0 2599 }, 2600 'slide-left': { 2601 from: { 2602 opacity: 0, 2603 x: 70 2604 }, 2605 to: { 2606 opacity: 1, 2607 x: 0 2608 }, 2609 ease: 'CubicBezier', 2610 duration: 0.8, 2611 delay: 0 2612 }, 2613 'slide-right': { 2614 from: { 2615 opacity: 0, 2616 x: -70 2617 }, 2618 to: { 2619 opacity: 1, 2620 x: 0 2621 }, 2622 ease: 'CubicBezier', 2623 duration: 0.8, 2624 delay: 0 2625 }, 2626 'zoom-in': { 2627 from: { 2628 scale: 0.9, 2629 opacity: 0, 2630 filter: filterBlur() 2631 }, 2632 to: { 2633 scale: 1, 2634 opacity: 1, 2635 filter: 'blur(0px)' 2636 }, 2637 delay: 0, 2638 ease: 'CubicBezier', 2639 duration: 0.8 2640 }, 2641 'zoom-out': { 2642 from: { 2643 scale: 1.1, 2644 opacity: 1, 2645 filter: filterBlur() 2646 }, 2647 to: { 2648 scale: 1, 2649 opacity: 1, 2650 filter: 'blur(0px)' 2651 }, 2652 delay: 0, 2653 ease: 'CubicBezier', 2654 duration: 0.8 2655 }, 2656 'zoom-out-slide-right': { 2657 from: { 2658 scale: 1.1, 2659 opacity: 1, 2660 x: -70, 2661 filter: filterBlur() 2662 }, 2663 to: { 2664 scale: 1, 2665 opacity: 1, 2666 x: 0, 2667 filter: 'blur(0px)' 2668 }, 2669 delay: 0, 2670 ease: 'CubicBezier', 2671 duration: 0.8 2672 }, 2673 'zoom-out-slide-left': { 2674 from: { 2675 scale: 1.1, 2676 opacity: 1, 2677 x: 70, 2678 filter: filterBlur() 2679 }, 2680 to: { 2681 scale: 1, 2682 opacity: 1, 2683 x: 0, 2684 filter: 'blur(0px)' 2685 }, 2686 delay: 0, 2687 ease: 'CubicBezier', 2688 duration: 0.8 2689 }, 2690 'blur-in': { 2691 from: { 2692 opacity: 0, 2693 filter: filterBlur() 2694 }, 2695 to: { 2696 opacity: 1, 2697 filter: 'blur(0px)' 2698 }, 2699 delay: 0, 2700 ease: 'CubicBezier', 2701 duration: 0.8 2702 } 2703}; 2704 2705if (utils.isRTL()) {
2706 Object.keys(zanimationEffects).forEach(function (key) { 2707 if (zanimationEffects[key].from.x) { 2708 zanimationEffects[key].from.x = -zanimationEffects[key].from.x; 2709 } 2710 }); 2711} 2712 2713var zanimation = function zanimation(el, callback) { 2714 var Selector = { 2715 DATA_ZANIM_TIMELINE: '[data-zanim-timeline]', 2716 DATA_KEYS: '[data-zanim-xs], [data-zanim-sm], [data-zanim-md], [data-zanim-lg], [data-zanim-xl]' 2717 }; 2718 var DATA_KEY = { 2719 DATA_ZANIM_TRIGGER: 'data-zanim-trigger' 2720 }; 2721 /*----------------------------------------------- 2722 | Get Controller 2723 -----------------------------------------------*/ 2724 2725 var controllerZanim; 2726 var currentBreakpointName = utils.getCurrentScreenBreakpoint().currentBreakpoint; 2727 var currentBreakpointVal = utils.getCurrentScreenBreakpoint().breakpointStartVal; 2728 2729 var getController = function getController(element) { 2730 var options = {}; 2731 var controller = {}; 2732 2733 if (element.hasAttribute("data-zanim-".concat(currentBreakpointName))) { 2734 controllerZanim = "zanim-".concat(currentBreakpointName); 2735 } else { 2736 /*----------------------------------------------- 2737 | Set the mobile first Animation 2738 -----------------------------------------------*/ 2739 var animationBreakpoints = []; 2740 var attributes = element.getAttributeNames(); 2741 attributes.forEach(function (attribute) { 2742 if (attribute !== DATA_KEY.DATA_ZANIM_TRIGGER && attribute.startsWith('data-zanim-')) { 2743 var breakPointName = attribute.split('data-zanim-')[1]; 2744 2745 if (utils.breakpoints[breakPointName] < currentBreakpointVal) { 2746 animationBreakpoints.push({ 2747 name: breakPointName, 2748 size: utils.breakpoints[breakPointName] 2749 }); 2750 } 2751 } 2752 }); 2753 controllerZanim = undefined; 2754 2755 if (animationBreakpoints.length !== 0) { 2756 animationBreakpoints = animationBreakpoints.sort(function (a, b) { 2757 return a.size - b.size; 2758 }); 2759 var activeBreakpoint = animationBreakpoints.pop(); 2760 controllerZanim = "zanim-".concat(activeBreakpoint.name); 2761 } 2762 } 2763 2764 var userOptions = utils.getData(element, controllerZanim); 2765 controller = window._.merge(options, userOptions); 2766 2767 if (!(controllerZanim === undefined)) { 2768 if (userOptions.animation) { 2769 options = zanimationEffects[userOptions.animation]; 2770 } else { 2771 options = zanimationEffects["default"]; 2772 } 2773 } 2774 2775 if (controllerZanim === undefined) { 2776 options = { 2777 delay: 0, 2778 duration: 0, 2779 ease: 'Expo.easeOut', 2780 from: {}, 2781 to: {} 2782 }; 2783 } 2784 /*----------------------------------------------- 2785 | populating the controller 2786 -----------------------------------------------*/ 2787 2788 2789 controller.delay || (controller.delay = options.delay); 2790 controller.duration || (controller.duration = options.duration); 2791 controller.from || (controller.from = options.from); 2792 controller.to || (controller.to = options.to); 2793 2794 if (controller.ease) { 2795 controller.to.ease = controller.ease; 2796 } else { 2797 controller.to.ease = options.ease; 2798 } 2799 2800 return controller; 2801 }; 2802 /*----------------------------------------------- 2803 | End of Get Controller 2804 -----------------------------------------------*/ 2805 2806 /*----------------------------------------------- 2807 | For Timeline 2808 -----------------------------------------------*/ 2809 2810 2811 var zanimTimeline = el.hasAttribute('data-zanim-timeline'); 2812 2813 if (zanimTimeline) { 2814 var timelineOption = utils.getData(el, 'zanim-timeline'); 2815 var timeline = gsap.timeline(timelineOption); 2816 var timelineElements = el.querySelectorAll(Selector.DATA_KEYS); 2817 timelineElements.forEach(function (timelineEl) { 2818 var controller = getController(timelineEl); 2819 timeline.fromTo(timelineEl, controller.duration, controller.from, controller.to, controller.delay).pause(); 2820 window.imagesLoaded(timelineEl, callback(timeline)); 2821 }); 2822 } else if (!el.closest(Selector.DATA_ZANIM_TIMELINE)) { 2823 /*----------------------------------------------- 2824 | For single elements outside timeline 2825 -----------------------------------------------*/ 2826 var controller = getController(el); 2827 callback(gsap.fromTo(el, controller.duration, controller.from,
2827controller.to).delay(controller.delay).pause()); 2828 } 2829 2830 callback(gsap.timeline()); 2831}; 2832/*----------------------------------------------- 2833| Zanimation Init 2834-----------------------------------------------*/ 2835 2836 2837var zanimationInit = function zanimationInit() { 2838 var Selector = { 2839 DATA_ZANIM_TRIGGER: '[data-zanim-trigger]', 2840 DATA_ZANIM_REPEAT: '[zanim-repeat]' 2841 }; 2842 var DATA_KEY = { 2843 DATA_ZANIM_TRIGGER: 'data-zanim-trigger' 2844 }; 2845 var Events = { 2846 SCROLL: 'scroll' 2847 }; 2848 /*----------------------------------------------- 2849 | Triggering zanimation when the element enters in the view 2850 -----------------------------------------------*/ 2851 2852 var triggerZanimation = function triggerZanimation() { 2853 var triggerElement = document.querySelectorAll(Selector.DATA_ZANIM_TRIGGER); 2854 triggerElement.forEach(function (el) { 2855 if (utils.isElementIntoView(el) && el.hasAttribute(DATA_KEY.DATA_ZANIM_TRIGGER)) { 2856 zanimation(el, function (animation) { 2857 return animation.play(); 2858 }); 2859 2860 if (!document.querySelector(Selector.DATA_ZANIM_REPEAT)) { 2861 el.removeAttribute(DATA_KEY.DATA_ZANIM_TRIGGER); 2862 } 2863 } 2864 }); 2865 }; 2866 2867 triggerZanimation(); 2868 window.addEventListener(Events.SCROLL, function () { 2869 return triggerZanimation(); 2870 }); 2871}; 2872 2873var gsapAnimation = { 2874 zanimationInit: zanimationInit, 2875 zanimation: zanimation 2876}; 2877/* -------------------------------------------------------------------------- */ 2878 2879/* Theme Initialization */ 2880 2881/* -------------------------------------------------------------------------- */ 2882 2883docReady(fancyNavInit); 2884docReady(countdownInit); 2885docReady(plyrInit); 2886docReady(initMap); 2887docReady(tooltipInit); 2888docReady(popoverInit); 2889docReady(typedTextInit); 2890docReady(progressBarInit); 2891docReady(rellaxInit); 2892docReady(countupInit); 2893docReady(isotopeInit); 2894docReady(zanimationInit); 2895docReady(swiperInit); 2896docReady(drawSvgInit); 2897docReady(bgPlayerInit); 2898docReady(lightboxInit); 2899docReady(cookieNoticeInit); 2900docReady(bootstrapNavbarInit); 2901docReady(preloaderInit); 2902//# sourceMappingURL=theme.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.