PageSourceSearch

https://www.radiomercuryawards.com/assets/js/theme.js

js radiomercuryawards.com collected 2026-09-26 00:22:44 UTC 86,255 bytes, 2,902 lines download raw bytes

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.