1(function ($) { 2 3 ! function (o) { 4 var n = {}; 5 6 function i(e) { 7 if (n[e]) return n[e].exports; 8 var t = n[e] = { 9 i: e, 10 l: !1, 11 exports: {} 12 }; 13 return o[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports 14 } 15 i.m = o, i.c = n, i.d = function (e, t, o) { 16 i.o(e, t) || Object.defineProperty(e, t, { 17 enumerable: !0, 18 get: o 19 }) 20 }, i.r = function (e) { 21 "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { 22 value: "Module" 23 }), Object.defineProperty(e, "__esModule", { 24 value: !0 25 }) 26 }, i.t = function (t, e) { 27 if (1 & e && (t = i(t)), 8 & e) return t; 28 if (4 & e && "object" == typeof t && t && t.__esModule) return t; 29 var o = Object.create(null); 30 if (i.r(o), Object.defineProperty(o, "default", { 31 enumerable: !0, 32 value: t 33 }), 2 & e && "string" != typeof t) 34 for (var n in t) i.d(o, n, function (e) { 35 return t[e] 36 }.bind(null, n)); 37 return o 38 }, i.n = function (e) { 39 var t = e && e.__esModule ? function () { 40 return e.default 41 } : function () { 42 return e 43 }; 44 return i.d(t, "a", t), t 45 }, i.o = function (e, t) { 46 return Object.prototype.hasOwnProperty.call(e, t) 47 }
47, i.p = "", i(i.s = 11) 48 }([, , function (e, t, o) { 49 "use strict"; 50 e.exports = function (e) { 51 "complete" === document.readyState || "interactive" === document.readyState ? e.call() : document.attachEvent ? document.attachEvent("onreadystatechange", function () { 52 "interactive" === document.readyState && e.call() 53 }) : document.addEventListener && document.addEventListener("DOMContentLoaded", e) 54 } 55 }, , function (o, e, t) { 56 "use strict"; 57 (function (e) { 58 var t; 59 t = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {}, o.exports = t 60 }).call(this, t(5)) 61 }, function (e, t, o) { 62 "use strict"; 63 var n, i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { 64 return typeof e 65 } : function (e) { 66 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e 67 }; 68 n = function () { 69 return this 70 }(); 71 try { 72 n = n || Function("return this")() || (0, eval)("this") 73 } catch (e) { 74 "object" === ("undefined" == typeof window ? "undefined" : i(window)) && (n = window) 75 } 76 e.exports = n 77 }, , , , , , function (e, t, o) { 78 e.exports = o(12) 79 }, function (e, t, o) { 80 "use strict"; 81 var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { 82 return typeof e 83 } : function (e) { 84 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e 85 }, 86 i = l(o(2)), 87 a = o(4), 88 r = l(o(13)); 89 90 function l(e) { 91 return e && e.__esModule ? e : { 92 default: e 93 } 94 } 95 var s = a.window.jarallax; 96 if (a.window.jarallax = r.default, a.window.jarallax.noConflict = function () { 97 return a.window.jarallax = s, this 98 }, void 0 !== a.jQuery) { 99 var c = function () { 100 var e = arguments || []; 101 Array.prototype.unshift.call(e, this); 102 var t = r.default.apply(a.window, e); 103 return "object" !== (void 0 === t ? "undefined" : n(t)) ? t : this 104 }; 105 c.constructor = r.default.constructor; 106 var u = a.jQuery.fn.jarallax; 107 a.jQuery.fn.jarallax = c, a.jQuery.fn.jarallax.noConflict = function () { 108 return a.jQuery.fn.jarallax = u, this 109 } 110 } (0, i.default)(function () { 111 (0, r.default)(document.querySelectorAll("[data-jarallax]")) 112 }) 113 }, function (e, j, S) { 114 "use strict"; 115 (function (e) { 116 Object.defineProperty(j, "__esModule", { 117 value: !0 118 }); 119 var d = function (e, t) { 120 if (Array.isArray(e)) return e; 121 if (Symbol.iterator in Object(e)) return function (e, t) { 122 var o = [], 123 n = !0, 124 i = !1, 125 a = void 0; 126 try { 127 for (var r, l = e[Symbol.iterator](); !(n = (r = l.next()).done) && (o.push(r.value), !t || o.length !== t); n = !0); 128 } catch (e) { 129 i = !0, a = e 130 } finally { 131 try { 132 !n && l.return && l.return() 133 } finally { 134 if (i) throw a 135 } 136 } 137 return o 138 }(e, t); 139 throw new TypeError("Invalid attempt to destructure non-iterable instance") 140 }, 141 t = function () { 142 function n(e, t) { 143 for (var o = 0; o < t.length; o++) { 144 var n = t[o]; 145 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n) 146 } 147 } 148 return function (e, t, o) { 149 return t && n(e.prototype, t), o && n(e, o), e 150 } 151 }(), 152 p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { 153 return typeof e 154 } : function (e) { 155 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e 156 }, 157 o = a(S(2)), 158 n = a(S(14)), 159 i = S(4); 160 161 function a(e) {
162 return e && e.__esModule ? e : { 163 default: e 164 } 165 } 166 var s = -1 < navigator.userAgent.indexOf("MSIE ") || -1 < navigator.userAgent.indexOf("Trident/") || -1 < navigator.userAgent.indexOf("Edge/"), 167 r = function () { 168 for (var e = "transform WebkitTransform MozTransform".split(" "), t = document.createElement("div"), o = 0; o < e.length; o++) 169 if (t && void 0 !== t.style[e[o]]) return e[o]; 170 return !1 171 }(), 172 b = void 0, 173 v = void 0, 174 l = void 0, 175 c = !1, 176 u = !1; 177 178 function m(e) { 179 b = i.window.innerWidth || document.documentElement.clientWidth, v = i.window.innerHeight || document.documentElement.clientHeight, "object" !== (void 0 === e ? "undefined" : p(e)) || "load" !== e.type && "dom-loaded" !== e.type || (c = !0) 180 } 181 m(), i.window.addEventListener("resize", m), i.window.addEventListener("orientationchange", m), i.window.addEventListener("load", m), (0, o.default)(function () { 182 m({ 183 type: "dom-loaded" 184 }) 185 }); 186 var f = [], 187 y = !1; 188 189 function g() { 190 if (f.length) { 191 l = void 0 !== i.window.pageYOffset ? i.window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop; 192 var t = c || !y || y.width !== b || y.height !== v, 193 o = u || t || !y || y.y !== l; 194 u = c = !1, (t || o) && (f.forEach(function (e) { 195 t && e.onResize(), o && e.onScroll() 196 }), y = { 197 width: b, 198 height: v, 199 y: l 200 }), (0, n.default)(g) 201 } 202 } 203 var h = !!e.ResizeObserver && new e.ResizeObserver(function (e) { 204 e && e.length && (0, n.default)(function () { 205 e.forEach(function (e) { 206 e.target && e.target.jarallax && (c || e.target.jarallax.onResize(), u = !0) 207 }) 208 }) 209 }), 210 x = 0, 211 w = function () { 212 function u(e, t) { 213 ! function (e, t) { 214 if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") 215 }(this, u); 216 var o = this; 217 o.instanceID = x++, o.$item = e, o.defaults = { 218 type: "scroll", 219 speed: .5, 220 imgSrc: null, 221 imgElement: ".jarallax-img", 222 imgSize: "cover", 223 imgPosition: "50% 50%", 224 imgRepeat: "no-repeat", 225 keepImg: !1, 226 elementInViewport: null, 227 zIndex: -100, 228 disableParallax: !1, 229 disableVideo: !1, 230 automaticResize: !0, 231 videoSrc: null, 232 videoStartTime: 0, 233 videoEndTime: 0, 234 videoVolume: 0, 235 videoPlayOnlyVisible: !0, 236 onScroll: null, 237 onInit: null, 238 onDestroy: null, 239 onCoverImage: null 240 }; 241 var n = o.$item.getAttribute("data-jarallax"), 242 i = JSON.parse(n || "{}"); 243 n && console.warn("Detected usage of deprecated data-jarallax JSON options, you should use pure data-attribute options. See info here - https://github.com/nk-o/jarallax/issues/53"); 244 var a = o.$item.dataset || {}, 245 r = {};
246 if (Object.keys(a).forEach(function (e) { 247 var t = e.substr(0, 1).toLowerCase() + e.substr(1); 248 t && void 0 !== o.defaults[t] && (r[t] = a[e]) 249 }), o.options = o.extend({}, o.defaults, i, r, t), o.pureOptions = o.extend({}, o.options), Object.keys(o.options).forEach(function (e) { 250 "true" === o.options[e] ? o.options[e] = !0 : "false" === o.options[e] && (o.options[e] = !1) 251 }), o.options.speed = Math.min(2, Math.max(-1, parseFloat(o.options.speed))), (o.options.noAndroid || o.options.noIos) && (console.warn("Detected usage of deprecated noAndroid or noIos options, you should use disableParallax option. See info here - https://github.com/nk-o/jarallax/#disable-on-mobile-devices"), o.options.disableParallax || (o.options.noIos && o.options.noAndroid ? o.options.disableParallax = /iPad|iPhone|iPod|Android/ : o.options.noIos ? o.options.disableParallax = /iPad|iPhone|iPod/ : o.options.noAndroid && (o.options.disableParallax = /Android/))), "string" == typeof o.options.disableParallax && (o.options.disableParallax = new RegExp(o.options.disableParallax)), o.options.disableParallax instanceof RegExp) { 252 var l = o.options.disableParallax; 253 o.options.disableParallax = function () { 254 return l.test(navigator.userAgent) 255 } 256 } 257 if ("function" != typeof o.options.disableParallax && (o.options.disableParallax = function () { 258 return !1 259 }), "string" == typeof o.options.disableVideo && (o.options.disableVideo = new RegExp(o.options.disableVideo)), o.options.disableVideo instanceof RegExp) { 260 var s = o.options.disableVideo; 261 o.options.disableVideo = function () { 262 return s.test(navigator.userAgent) 263 } 264 } 265 "function" != typeof o.options.disableVideo && (o.options.disableVideo = function () { 266 return !1 267 }); 268 var c = o.options.elementInViewport; 269 c && "object" === (void 0 === c ? "undefined" : p(c)) && void 0 !== c.length && (c = d(c, 1)[0]); 270 c instanceof Element || (c = null), o.options.elementInViewport = c, o.image = { 271 src: o.options.imgSrc || null, 272 $container: null, 273 useImgTag: !1, 274 position: "absolute" 275 }, o.initImg() && o.canInitParallax() && o.init() 276 } 277 return t(u, [{ 278 key: "css", 279 value: function (t, o) { 280 return "string" == typeof o ? i.window.getComputedStyle(t).getPropertyValue(o) : (o.transform && r && (o[r] = o.transform), Object.keys(o).forEach(function (e) { 281 t.style[e] = o[e] 282 }), t) 283 } 284 }, { 285 key: "extend", 286 value: function (o) { 287 var n = arguments; 288 return o = o || {}, Object.keys(arguments).forEach(function (t) { 289 n[t] && Object.keys(n[t]).forEach(function (e) { 290 o[e] = n[t][e] 291 }) 292 }), o 293 } 294 }, { 295 key: "getWindowData", 296 value: function () { 297 return { 298 width: b, 299 height: v, 300 y: l 301 } 302 } 303 }, { 304 key: "initImg", 305 value: function () { 306 var e = this, 307 t = e.options.imgElement; 308 return t && "string" == typeof t && (t = e.$item.querySelector(t)), t instanceof Element || (t = null), t && (e.options.keepImg ? e.image.$item = t.cloneNode(!0) : (e.image.$item = t, e.image.$itemParent = t.parentNode), e.image.useImgTag = !0), !!e.image.$item || (null === e.image.src && (e.image.src = e.css(e.$item, "background-image").replace(/^url\(['"]?/g, "").replace(/['"]?\)$/g, "")), !(!e.image.src || "none" === e.image.src)) 309 } 310 }, { 311 key: "canInitParallax", 312 value: function () { 313 return r && !this.options.disableParallax() 314 } 315 }, { 316 key: "init", 317 value: function () { 318 var e = this, 319 t = { 320 position: "absolute",
321 top: 0, 322 left: 0, 323 width: "100%", 324 height: "100%", 325 overflow: "hidden", 326 pointerEvents: "none" 327 }, 328 o = {}; 329 if (!e.options.keepImg) { 330 var n = e.$item.getAttribute("style"); 331 if (n && e.$item.setAttribute("data-jarallax-original-styles", n), e.image.useImgTag) { 332 var i = e.image.$item.getAttribute("style"); 333 i && e.image.$item.setAttribute("data-jarallax-original-styles", i) 334 } 335 } 336 if ("static" === e.css(e.$item, "position") && e.css(e.$item, { 337 position: "relative" 338 }), "auto" === e.css(e.$item, "z-index") && e.css(e.$item, { 339 zIndex: 0 340 }), e.image.$container = document.createElement("div"), e.css(e.image.$container, t), e.css(e.image.$container, { 341 "z-index": e.options.zIndex 342 }), s && e.css(e.image.$container, { 343 opacity: .9999 344 }), e.image.$container.setAttribute("id", "jarallax-container-" + e.instanceID), e.$item.appendChild(e.image.$container), e.image.useImgTag ? o = e.extend({ 345 "object-fit": e.options.imgSize, 346 "object-position": e.options.imgPosition, 347 "font-family": "object-fit: " + e.options.imgSize + "; object-position: " + e.options.imgPosition + ";", 348 "max-width": "none" 349 }, t, o) : (e.image.$item = document.createElement("div"), e.image.src && (o = e.extend({ 350 "background-position": e.options.imgPosition, 351 "background-size": e.options.imgSize, 352 "background-repeat": e.options.imgRepeat, 353 "background-image": 'url("' + e.image.src + '")' 354 }, t, o))), "opacity" !== e.options.type && "scale" !== e.options.type && "scale-opacity" !== e.options.type && 1 !== e.options.speed || (e.image.position = "absolute"), "fixed" === e.image.position) 355 for (var a = 0, r = e.$item; null !== r && r !== document && 0 === a;) { 356 var l = e.css(r, "-webkit-transform") || e.css(r, "-moz-transform") || e.css(r, "transform"); 357 l && "none" !== l && (a = 1, e.image.position = "absolute"), r = r.parentNode 358 } 359 o.position = e.image.position, e.css(e.image.$item, o), e.image.$container.appendChild(e.image.$item), e.onResize(), e.onScroll(!0), e.options.automaticResize && h && h.observe(e.$item), e.options.onInit && e.options.onInit.call(e), "none" !== e.css(e.$item, "background-image") && e.css(e.$item, { 360 "background-image": "none" 361 }), e.addToParallaxList() 362 } 363 }, { 364 key: "addToParallaxList", 365 value: function () { 366 f.push(this), 1 === f.length && g() 367 } 368 }, { 369 key: "removeFromParallaxList", 370 value: function () { 371 var o = this; 372 f.forEach(function (e, t) { 373 e.instanceID === o.instanceID && f.splice(t, 1) 374 }) 375 } 376 }, {
377 key: "destroy", 378 value: function () { 379 var e = this; 380 e.removeFromParallaxList(); 381 var t = e.$item.getAttribute("data-jarallax-original-styles"); 382 if (e.$item.removeAttribute("data-jarallax-original-styles"), t ? e.$item.setAttribute("style", t) : e.$item.removeAttribute("style"), e.image.useImgTag) { 383 var o = e.image.$item.getAttribute("data-jarallax-original-styles"); 384 e.image.$item.removeAttribute("data-jarallax-original-styles"), o ? e.image.$item.setAttribute("style", t) : e.image.$item.removeAttribute("style"), e.image.$itemParent && e.image.$itemParent.appendChild(e.image.$item) 385 } 386 e.$clipStyles && e.$clipStyles.parentNode.removeChild(e.$clipStyles), e.image.$container && e.image.$container.parentNode.removeChild(e.image.$container), e.options.onDestroy && e.options.onDestroy.call(e), delete e.$item.jarallax 387 } 388 }, { 389 key: "clipContainer", 390 value: function () { 391 if ("fixed" === this.image.position) { 392 var e = this, 393 t = e.image.$container.getBoundingClientRect(), 394 o = t.width, 395 n = t.height; 396 if (!e.$clipStyles) e.$clipStyles = document.createElement("style"), e.$clipStyles.setAttribute("type", "text/css"), e.$clipStyles.setAttribute("id", "jarallax-clip-" + e.instanceID), (document.head || document.getElementsByTagName("head")[0]).appendChild(e.$clipStyles); 397 var i = "#jarallax-container-" + e.instanceID + " {\n clip: rect(0 " + o + "px " + n + "px 0);\n clip: rect(0, " + o + "px, " + n + "px, 0);\n }"; 398 e.$clipStyles.styleSheet ? e.$clipStyles.styleSheet.cssText = i : e.$clipStyles.innerHTML = i 399 } 400 } 401 }, { 402 key: "coverImage", 403 value: function () { 404 var e = this, 405 t = e.image.$container.getBoundingClientRect(), 406 o = t.height, 407 n = e.options.speed, 408 i = "scroll" === e.options.type || "scroll-opacity" === e.options.type, 409 a = 0, 410 r = o, 411 l = 0; 412 return i && (a = n < 0 ? n * Math.max(o, v) : n * (o + v), 1 < n ? r = Math.abs(a - v) : n < 0 ? r = a / n + Math.abs(a) : r += Math.abs(v - o) * (1 - n), a /= 2), e.parallaxScrollDistance = a, l = i ? (v - r) / 2 : (o - r) / 2, e.css(e.image.$item, { 413 height: r + "px", 414 marginTop: l + "px", 415 left: "fixed" === e.image.position ? t.left + "px" : "0", 416 width: t.width + "px" 417 }
417), e.options.onCoverImage && e.options.onCoverImage.call(e), { 418 image: { 419 height: r, 420 marginTop: l 421 }, 422 container: t 423 } 424 } 425 }, { 426 key: "isVisible", 427 value: function () { 428 return this.isElementInViewport || !1 429 } 430 }, { 431 key: "onScroll", 432 value: function (e) { 433 var t = this, 434 o = t.$item.getBoundingClientRect(), 435 n = o.top, 436 i = o.height, 437 a = {}, 438 r = o; 439 if (t.options.elementInViewport && (r = t.options.elementInViewport.getBoundingClientRect()), t.isElementInViewport = 0 <= r.bottom && 0 <= r.right && r.top <= v && r.left <= b, e || t.isElementInViewport) { 440 var l = Math.max(0, n), 441 s = Math.max(0, i + n), 442 c = Math.max(0, -n), 443 u = Math.max(0, n + i - v), 444 d = Math.max(0, i - (n + i - v)), 445 p = Math.max(0, -n + v - i), 446 m = 1 - 2 * (v - n) / (v + i), 447 f = 1; 448 if (i < v ? f = 1 - (c || u) / i : s <= v ? f = s / v : d <= v && (f = d / v), "opacity" !== t.options.type && "scale-opacity" !== t.options.type && "scroll-opacity" !== t.options.type || (a.transform = "translate3d(0,0,0)", a.opacity = f), "scale" === t.options.type || "scale-opacity" === t.options.type) { 449 var y = 1; 450 t.options.speed < 0 ? y -= t.options.speed * f : y += t.options.speed * (1 - f), a.transform = "scale(" + y + ") translate3d(0,0,0)" 451 } 452 if ("scroll" === t.options.type || "scroll-opacity" === t.options.type) { 453 var g = t.parallaxScrollDistance * m; 454 "absolute" === t.image.position && (g -= n), a.transform = "translate3d(0," + g + "px,0)" 455 } 456 t.css(t.image.$item, a), t.options.onScroll && t.options.onScroll.call(t, { 457 section: o, 458 beforeTop: l, 459 beforeTopEnd: s, 460 afterTop: c, 461 beforeBottom: u, 462 beforeBottomEnd: d, 463 afterBottom: p, 464 visiblePercent: f, 465 fromViewportCenter: m 466 }) 467 } 468 } 469 }, { 470 key: "onResize", 471 value: function () { 472 this.coverImage(), this.clipContainer() 473 } 474 }]), u 475 }(), 476 $ = function (e) { 477 ("object" === ("undefined" == typeof HTMLElement ? "undefined" : p(HTMLElement)) ? e instanceof HTMLElement : e && "object" === (void 0 === e ? "undefined" : p(e)) && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName) && (e = [e]); 478 for (var t = arguments[1], o = Array.prototype.slice.call(arguments, 2), n = e.length, i = 0, a = void 0; i < n; i++) 479 if ("object" === (void 0 === t ? "undefined" : p(t)) || void 0 === t ? e[i].jarallax || (e[i].jarallax = new w(e[i], t)) : e[i].jarallax && (a = e[i].jarallax[t].apply(e[i].jarallax, o)), void 0 !== a) return a; 480 return e 481 }; 482 $.constructor = w, j.default = $ 483 }).call(this, S(5)) 484 }, function (e, t, o) { 485 "use strict"; 486 var n = o(4), 487 i = n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || function (e) { 488 var t = +new Date, 489 o = Math.max(0, 16 - (t - a)), 490 n = setTimeout(e, o); 491 return a = t, n 492 }, 493 a = +new Date; 494 var r = n.cancelAnimationFrame || n.webkitCancelAnimationFrame || n.mozCancelAnimationFrame || clearTimeout; 495 Function.prototype.bind && (i = i.bind(n), r = r.bind(n)), (e.exports = i).cancel = r 496 }]); 497 498 /*! 499 * ScrollToPlugin 3.6.1 500 * https://greensock.com 501 * 502 * @license Copyright 2021, GreenSock. All rights reserved. 503 * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership. 504 * @author: Jack Doyle, [email protected] 505 */ 506 507 !function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = t || self).window = t.window || {}) }(this, function (e) { "use strict"; function k() { return "undefined" != typeof window } function l() { return i || k() && (i = window.gsap) && i.registerPlugin && i } function m(t) { return "string" == typeof t } function n(t) { return "function" == typeof t } function o(t, e) { var o = "x" === e ? "Width" : "Height", n = "scroll" + o, r = "client" + o; return t === x || t === u || t === c ? Math.max(u[n], c[n]) - (x["inner" + o] || u[r] || c[r]) : t[n] - t["offset" + o] } function p(t, e) { var o = "scroll" + ("x" === e ? "Left" : "Top"); return t === x && (null != t.pageXOffset ? o = "page" + e.toUpperCase() + "Offset" : t = null != u[o] ? u : c), function () { return t[o] } } function r(t, e) { if (!(t = a(t)[0]) || !t.getBoundingClientRect) return console.warn("scrollTo target doesn't exist. Using 0") || { x: 0, y: 0 }; var o = t.getBoundingClientRect(), n = !e || e === x || e === c, r = n ? { top: u.clientTop - (x.pageYOffset || u.scrollTop || c.scrollTop || 0), left: u.clientLeft - (x.pageXOffset || u.scrollLeft || c.scrollLeft || 0) } : e.getBoundingClientRect(), i = { x: o.left - r.left, y: o.top - r.top }; return !n && e && (i.x += p(e, "x")(), i.y += p(e, "y")()), i } function s(t, e, n, i, l) { return isNaN(t) || "object" == typeof t ? m(t) && "=" === t.charAt(1) ? parseFloat(t.substr(2)) * ("-" === t.charAt(0) ? -1 : 1) + i - l : "max" === t ? o(e, n) - l : Math.min(o(e, n), r(t, e)[n] - l) : parseFloat(t) - l }
507 function t() { i = l(), k() && i && document.body && (x = window, c = document.body, u = document.documentElement, a = i.utils.toArray, i.config({ autoKillThreshold: 7 }), g = i.config(), f = 1) } var i, f, x, u, c, a, g, y = { version: "3.6.1", name: "scrollTo", rawVars: 1, register: function register(e) { i = e, t() }, init: function init(e, o, r, i, l) { f || t(); var u = this; u.isWin = e === x, u.target = e, u.tween = r, o = function _clean(t, e, o, r) { if (n(t) && (t = t(e, o, r)), "object" != typeof t) return m(t) && "max" !== t && "=" !== t.charAt(1) ? { x: t, y: t } : { y: t }; if (t.nodeType) return { y: t, x: t }; var i, l = {}; for (i in t) l[i] = "onAutoKill" !== i && n(t[i]) ? t[i](e, o, r) : t[i]; return l }(o, i, e, l), u.vars = o, u.autoKill = !!o.autoKill, u.getX = p(e, "x"), u.getY = p(e, "y"), u.x = u.xPrev = u.getX(), u.y = u.yPrev = u.getY(), null != o.x ? (u.add(u, "x", u.x, s(o.x, e, "x", u.x, o.offsetX || 0), i, l), u._props.push("scrollTo_x")) : u.skipX = 1, null != o.y ? (u.add(u, "y", u.y, s(o.y, e, "y", u.y, o.offsetY || 0), i, l), u._props.push("scrollTo_y")) : u.skipY = 1 }, render: function render(t, e) { for (var n, r, i, l, s, u = e._pt, f = e.target, p = e.tween, c = e.autoKill, a = e.xPrev, y = e.yPrev, d = e.isWin; u;)u.r(t, u.d), u = u._next; n = d || !e.skipX ? e.getX() : a, i = (r = d || !e.skipY ? e.getY() : y) - y, l = n - a, s = g.autoKillThreshold, e.x < 0 && (e.x = 0), e.y < 0 && (e.y = 0), c && (!e.skipX && (s < l || l < -s) && n < o(f, "x") && (e.skipX = 1), !e.skipY && (s < i || i < -s) && r < o(f, "y") && (e.skipY = 1), e.skipX && e.skipY && (p.kill(), e.vars.onAutoKill && e.vars.onAutoKill.apply(p, e.vars.onAutoKillParams || []))), d ? x.scrollTo(e.skipX ? n : e.x, e.skipY ? r : e.y) : (e.skipY || (f.scrollTop = e.y), e.skipX || (f.scrollLeft = e.x)), e.xPrev = e.x, e.yPrev = e.y }, kill: function kill(t) { var e = "scrollTo" === t; !e && "scrollTo_x" !== t || (this.skipX = 1), !e && "scrollTo_y" !== t || (this.skipY = 1) } }; y.max = o, y.getOffset = r, y.buildGetter = p, l() && i.registerPlugin(y), e.ScrollToPlugin = y, e.default = y; if (typeof (window) === "undefined" || window !== e) { Object.defineProperty(e, "__esModule", { value: !0 }) } else { delete e.default } }); 508 509 window.premiumParallaxEffects = function (element, settings) { 510 511 var self = this, 512 $el = $(element), 513 scrolls = $el.data("scrolls"), 514 elementSettings = settings, 515 elType = elementSettings.elType, 516 elOffset = $el.offset(); 517 518 //Check if Horizontal Scroll Widget 519 var isHScrollWidget = $el.closest(".premium-hscroll-temp").length; 520 521 self.elementRules = {}; 522 523 self.init = function () { 524 525 if (scrolls || 'SECTION' === elType) { 526 527 if (!elementSettings.effects.length) { 528 return; 529 } 530 self.setDefaults(); 531 elementorFrontend.elements.$window.on('scroll load', self.initScroll); 532 } else { 533 elementorFrontend.elements.$window.off('scroll load', self.initScroll); 534 return; 535 } 536 537 }; 538 539 self.setDefaults = function () { 540 541 elementSettings.defaults = {}; 542 elementSettings.defaults.axis = 'y'; 543 544 }; 545 546 self.transform = function (action, percents, data) { 547 548 if ("down" === data.direction) { 549 percents = 100 - percents; 550 } 551 552 if (data.range) { 553 if (data.range.start > percents && !isHScrollWidget) { 554 percents = data.range.start; 555 } 556 557 if (data.range.end < percents && !isHScrollWidget) { 558 percents = data.range.end; 559 } 560 561 } 562 563 if ('rotate' === action) { 564 elementSettings.defaults.unit = 'deg'; 565 } else { 566 elementSettings.defaults.unit = 'px'; 567 } 568 569 self.updateElement('transform', action, self.getStep(percents, data) + elementSettings.defaults.unit); 570 571 }; 572 573 self.getPercents = function () { 574 575 var dimensions = self.getDimensions(); 576
577 var startOffset = innerHeight; 578 579 if (isHScrollWidget) startOffset = 0; 580 581 (elementTopWindowPoint = dimensions.elementTop - pageYOffset), 582 (elementEntrancePoint = elementTopWindowPoint - startOffset); 583 584 passedRangePercents = 585 (100 / dimensions.range) * (elementEntrancePoint * -1); 586 587 return passedRangePercents; 588 589 }; 590 591 self.initScroll = function () { 592 593 if (elementSettings.effects.includes('translateY')) { 594 595 self.initVScroll(); 596 597 } 598 599 if (elementSettings.effects.includes('translateX')) { 600 601 self.initHScroll(); 602 603 } 604 605 }; 606 607 self.initVScroll = function () { 608 609 var percents = self.getPercents(); 610 611 self.transform('translateY', percents, elementSettings.vscroll); 612 613 }; 614 615 self.initHScroll = function () { 616 617 var percents = self.getPercents(); 618 619 self.transform('translateX', percents, elementSettings.hscroll); 620 621 }; 622 623 self.getDimensions = function () { 624 625 var elementOffset = $el.offset(); 626 627 var dimensions = { 628 elementHeight: $el.outerHeight(), 629 elementWidth: $el.outerWidth(), 630 elementTop: elementOffset.top, 631 elementLeft: elementOffset.left 632 }; 633 634 dimensions.range = dimensions.elementHeight + innerHeight; 635 636 return dimensions; 637 638 }; 639 640 self.getStep = function (percents, options) { 641 642 return -(percents - 50) * options.speed; 643 644 }; 645 646 self.getEffectMovePoint = function (percents, effect, range) { 647 648 var point = 0; 649 650 if (percents < range.start) { 651 if ("down" === effect) { 652 point = 0; 653 } else { 654 point = 100; 655 } 656 } else if (percents < range.end) { 657 658 point = self.getPointFromPercents((range.end - range.start), (percents - range.start)); 659 660 if ("up" === effect) { 661 point = 100 - point; 662 } 663 664 } else if ("up" === effect) { 665 point = 0; 666 } else if ("down" === effect) { 667 point = 100; 668 } 669 670 return point; 671 672 }; 673 674 self.getEffectValueFromMovePoint = function (level, movePoint) { 675 676 return level * movePoint / 100; 677 678 }; 679 680 self.getPointFromPercents = function (movableRange, percents) { 681 682 var movePoint = percents / movableRange * 100; 683 684 return +movePoint.toFixed(2); 685 686 }; 687 688 self.updateElement = function (propName, key, value) { 689 690 if (!self.elementRules[propName]) { 691 self.elementRules[propName] = {}; 692 } 693 694 if (!self.elementRules[propName][key]) { 695 self.elementRules[propName][key] = true; 696 697 self.updateElementRule(propName); 698 } 699 700 var cssVarKey = '--' + key; 701 702 element.style.setProperty(cssVarKey, value); 703 704 }; 705 706 self.updateElementRule = function (rule) { 707 708 var cssValue = ''; 709 710 $.each(self.elementRules[rule], function (variableKey) { 711 cssValue += variableKey + '(var(--' + variableKey + '))'; 712 }); 713 714 $el.css(rule, cssValue); 715 716 }; 717 718 }; 719 720 $(window).on('elementor/frontend/init', function () { 721 722 var PremiumParallaxHandler = function ($scope) { 723 724 if (!$scope.hasClass("premium-parallax-yes")) 725 return; 726 727 var target = $scope, 728 sectionId = target.data("id"), 729 elementType = target.data('element_type'), 730 settings = {}, 731 tempTarget = target.find('#premium-parallax-' + sectionId), 732 editMode = elementorFrontend.isEditMode() && tempTarget.length > 0, 733 targetID = editMode ? tempTarget : target; 734 735 generateSettings(targetID); 736 737 if (!settings || undefined == settings.type) { 738 return false; 739 } 740 741 if ("multi" !== settings.type && "automove" !== settings.type) { 742 generateJarallax();
743 } else if ("automove" === settings.type) { 744 generateAutoMoveBackground(); 745 } else { 746 var currentDevice = elementorFrontend.getCurrentDeviceMode(); 747 748 generateMultiLayers(currentDevice); 749 750 if (editMode) { 751 var settings = { 752 repeater: 'premium_parallax_layers_list', 753 item: '.premium-parallax-layer', 754 hor: 'premium_parallax_layer_hor_pos', 755 ver: 'premium_parallax_layer_ver_pos', 756 width: 'premium_parallax_layer_width', 757 tab: 'section_premium_parallax', 758 offset: 0, 759 widgets: ["drag", "resize"] 760 }, 761 instance = null; 762 763 instance = new premiumEditorBehavior(target, settings); 764 instance.init(); 765 } 766 } 767 768 function generateSettings(target) { 769 770 var parallaxSettings = target.data("pa-parallax"); 771 772 if (!parallaxSettings) { 773 return false; 774 } 775 776 settings.type = parallaxSettings["type"]; 777 778 if (undefined == settings.type) { 779 return false; 780 } 781 782 if ("multi" !== settings.type && "automove" !== settings.type) { 783 settings.speed = parallaxSettings["speed"]; 784 settings.android = parallaxSettings["android"]; 785 settings.ios = parallaxSettings["ios"]; 786 settings.size = parallaxSettings["size"]; 787 settings.position = target.css('backgroundPosition'); 788 settings.repeat = parallaxSettings["repeat"]; 789 } else if ("automove" === settings.type) { 790 settings.speed = parallaxSettings["speed"]; 791 settings.direction = parallaxSettings["direction"]; 792 } else { 793 settings.items = []; 794 $.each(parallaxSettings["items"], function (index, layer) { 795 settings.items.push(layer); 796 }); 797 settings.devices = parallaxSettings["devices"]; 798 settings.speed = parallaxSettings["speed"]; 799 } 800 801 if (0 !== Object.keys(settings).length) { 802 return settings; 803 } 804 805 return false; 806 } 807 808 function responsiveParallax(android, ios) { 809 switch (true || 1) { 810 case android && ios: 811 return /iPad|iPhone|iPod|Android/; 812 case android && !ios: 813 return /Android/; 814 case !android && ios: 815 return /iPad|iPhone|iPod/; 816 case !android && !ios: 817 return null; 818 } 819 } 820 821 function generateJarallax() { 822 823 //Fix image bounce issue on page load 824 target.removeClass("premium-parallax-section-hide"); 825 826 if (elementType === 'column') { 827 target = $scope.find('.elementor-column-wrap').first(); 828 829 if (target.length < 1) 830 target = $scope.find('.elementor-widget-wrap').first(); 831 832 } 833 834 var eleObserver = new IntersectionObserver(function (entries) { 835 entries.forEach(function (entry) { 836 if (entry.isIntersecting) { 837 838 target.jarallax({ 839 type: settings.type, 840 speed: settings.speed || 0.1, 841 disableParallax: responsiveParallax( 842 1 == settings.android, 843 1 == settings.ios 844 ), 845 keepImg: true, 846 imgSize: settings.size, 847 imgPosition: settings.position, 848 imgRepeat: settings.repeat 849 }); 850 851 eleObserver.unobserve(entry.target); // to only excecute the callback func once. 852 } 853 }); 854 }); 855 856 eleObserver.observe(target[0]); 857 858 } 859
860 function generateAutoMoveBackground() { 861 var speed = parseInt(settings.speed); 862 863 if (elementType === 'column') { 864 target = $scope.find('.elementor-column-wrap').first(); 865 866 if (target.length < 1) 867 target = $scope.find('.elementor-widget-wrap').first(); 868 869 } 870 871 //Remove transitions for Safari to prevent jittering coming from Elementor default transitions. 872 var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); 873 874 if (isSafari) 875 target.addClass("premium-parallax-no-trans"); 876 877 target.css("background-position", "0px 0px"); 878 879 if (settings.direction === "left") { 880 var position = parseInt(target.css("background-position-x")); 881 882 setInterval(function () { 883 position = position + speed; 884 target.css("backgroundPosition", position + "px 0"); 885 }, 70); 886 } else if (settings.direction === "right") { 887 var position = parseInt(target.css("background-position-x")); 888 889 setInterval(function () { 890 position = position - speed; 891 target.css("backgroundPosition", position + "px 0"); 892 }, 70); 893 } else if (settings.direction === "top") { 894 var position = parseInt(target.css("background-position-y")); 895 896 setInterval(function () { 897 position = position + speed; 898 target.css("backgroundPosition", "0 " + position + "px"); 899 }, 70); 900 } else if (settings.direction === "bottom") { 901 var position = parseInt(target.css("background-position-y")); 902 903 setInterval(function () { 904 position = position - speed; 905 target.css("backgroundPosition", "0 " + position + "px"); 906 }, 70); 907 } 908 } 909 910 function generateMultiLayers(currentDevice) { 911 912 var mouseParallax = "", 913 deviceSuffix = ('desktop' === currentDevice) ? '' : '_' + currentDevice, 914 mouseRate = ""; 915 916 target.find(".premium-parallax-layer").remove(); 917 918 $.each(settings.items, function (index, layout) { 919 920 if (!layout.show_layer_on.includes(currentDevice)) 921 return; 922 923 var layerHTML = getLayerHTML(layout); 924 925 if ('' == layerHTML) 926 return; 927 928 var layerID = 'premium-parallax-layer-' + layout._id, 929 layerPosition = ' premium-parallax-' + layout.premium_parallax_layer_hor + ' premium-parallax-' + layout.premium_parallax_layer_ver, 930 layerType = ' parallax-' + layout.layer_type; 931 932 if ("yes" === layout.premium_parallax_layer_mouse && "" !== layout.premium_parallax_layer_rate) { 933 mouseParallax = ' data-parallax="true" '; 934 mouseRate = ' data-rate="' + layout.premium_parallax_layer_rate + '" '; 935 } else { 936 mouseParallax = ' data-parallax="false" '; 937 } 938 939 if ('img' === layout.layer_type) 940 var width = 'undefined' != typeof layout["premium_parallax_layer_width" + deviceSuffix] ? layout["premium_parallax_layer_width" + deviceSuffix].size : layout["premium_parallax_layer_width"].size; 941 942 $('<div id="' + layerID + '"' + 943 mouseParallax + 944 mouseRate + 945 ' class="premium-parallax-layer elementor-repeater-item-' + layout._id + layerPosition + layerType + '">' + layerHTML + '</div>' 946 ) 947 .prependTo(target) 948 .css({ 949 "z-index": layout["premium_parallax_layer_z_index"], 950 "background-size": layout["premium_parallax_layer_back_size"], 951 "width": 'img' === layout.layer_type ? width + "%" : "auto" 952 }); 953 954 var $layer = target.find('#' + layerID); 955
956 if ('custom' === layout.premium_parallax_layer_hor) { 957 958 var left = 'undefined' != typeof layout["premium_parallax_layer_hor_pos" + deviceSuffix] ? layout["premium_parallax_layer_hor_pos" + deviceSuffix].size : layout["premium_parallax_layer_hor_pos"].size; 959 960 $layer.css('left', left + '%'); 961 } 962 963 if ('custom' === layout.premium_parallax_layer_ver) { 964 965 var top = 'undefined' != typeof layout["premium_parallax_layer_ver_pos" + deviceSuffix] ? layout["premium_parallax_layer_ver_pos" + deviceSuffix].size : layout["premium_parallax_layer_ver_pos"].size; 966 967 $layer.css('top', top + '%'); 968 969 } 970 971 if (settings.devices.includes(currentDevice)) { 972 if ('yes' === layout['premium_parallax_layer_scroll']) { 973 if ('yes' === layout['premium_parallax_layer_scroll_hor']) { 974 975 $layer.attr({ 976 'data-parallax-scroll': 'yes', 977 'data-parallax-hscroll': 'yes', 978 'data-parallax-hscroll_speed': layout['premium_parallax_layer_speed_hor']['size'], 979 'data-parallax-hscroll_start': layout['premium_parallax_layer_view_hor']['sizes']['start'], 980 'data-parallax-hscroll_end': layout['premium_parallax_layer_view_hor']['sizes']['end'], 981 'data-parallax-hscroll_direction': layout['premium_parallax_layer_direction_hor'] 982 }); 983 } 984 985 if ('yes' === layout['premium_parallax_layer_scroll_ver']) { 986 $layer.attr({ 987 'data-parallax-scroll': 'yes', 988 'data-parallax-vscroll': 'yes', 989 'data-parallax-speed': layout['premium_parallax_layer_speed']['size'], 990 'data-parallax-start': layout['premium_parallax_layer_view']['sizes']['start'], 991 'data-parallax-end': layout['premium_parallax_layer_view']['sizes']['end'], 992 'data-parallax-direction': layout['premium_parallax_layer_direction'] 993 }); 994 } 995 } 996 } 997 998 999 }); 1000 1001 target.imagesLoaded().done(function () { 1002 target.trigger("paParallaxLoaded"); 1003 }); 1004 1005 window.PremiumSvgDrawerHandler(target, $, settings.speed); 1006 1007 function getLayerHTML(layer) { 1008 1009 var html = '', 1010 imgID = '' != layer.premium_parallax_layer_id ? 'id="' + layer.premium_parallax_layer_id + '"' : ''; 1011 1012 if ('img' === layer.layer_type) { 1013 1014 if (null !== layer["premium_parallax_layer_image"]["url"] && "" !== layer["premium_parallax_layer_image"]["url"]) { 1015 1016 var backgroundImage = layer["premium_parallax_layer_image"]["url"], 1017 alt = layer['alt']; 1018 1019 html = '<img ' + imgID + ' class="premium-parallax-img" src="' + backgroundImage + '" alt="' + alt + '">'; 1020 1021 } 1022 1023 } else { 1024 1025 var attributes = imgID + ' class="' + ("yes" === layer.draw_svg ? "premium-svg-drawer" : "premium-svg-nodraw") + '"'; 1026 1027 if ("yes" === layer.draw_svg) { 1028 attributes += 'data-svg-reverse="' + layer.svg_reverse + '"'; 1029 attributes += 'data-svg-loop="' + layer.svg_loop + '"'; 1030 attributes += 'data-svg-sync="' + layer.svg_sync + '"'; 1031 attributes += 'data-svg-hover="' + layer.svg_hover + '"'; 1032 attributes += 'data-svg-restart="' + layer.restart_draw + '"'; 1033 attributes += 'data-svg-fill="' + layer.svg_color + '"'; 1034 attributes += 'data-svg-stroke="' + layer.svg_stroke + '"'; 1035 attributes += 'data-svg-frames="' + layer.frames + '"'; 1036 attributes += 'data-svg-yoyo="' + layer.svg_yoyo + '"'; 1037 attributes += 'data-svg-point="' + (layer.svg_reverse ? layer.end_point.size : layer.start_point.size) + '"'; 1038 } 1039 1040 html = '<div ' + attributes + '>' + layer.premium_parallax_layer_svg + '</div>'; 1041 } 1042 1043 return html; 1044 } 1045 1046 if (-1 !== settings.devices.indexOf(currentDevice)) { 1047 target.find('.premium-parallax-layer').each(function (index, layer) { 1048 var data = $(layer).data(); 1049 if ('yes' === data.parallaxScroll) { 1050 var effects = [], 1051 vScrollSettings = {}, 1052 hScrollSettings = {}, 1053 settings = {} 1054 1055 if ('yes' === data.parallaxVscroll) { 1056 1057 effects.push('translateY'); 1058 vScrollSettings = { 1059 speed: data.parallaxSpeed, 1060 direction: data.parallaxDirection, 1061 range: { 1062 start: data.parallaxStart, 1063 end: data.parallaxEnd 1064 } 1065 }; 1066 } 1067 1068 if ('yes' === data.parallaxHscroll) { 1069 effects.push('translateX'); 1070 hScrollSettings = { 1071 speed: data.parallaxHscroll_speed, 1072 direction: data.parallaxHscroll_direction, 1073 range: { 1074 start: data.parallaxHscroll_start, 1075 end: data.parallaxHscroll_end 1076 } 1077 }; 1078 1079 } 1080 1081 settings = { 1082 elType: 'SECTION', 1083 vscroll: vScrollSettings, 1084 hscroll: hScrollSettings, 1085 effects: effects 1086 }, 1087 1088 instance = null; 1089 1090 instance = new premiumParallaxEffects(layer, settings); 1091 1092 instance.init(); 1093 } 1094 }); 1095 } 1096 1097 target.mousemove(function (e) { 1098 $(this)
1099 .find('.premium-parallax-layer[data-parallax="true"]') 1100 .each(function () { 1101 var $this = $(this), 1102 resistance = $(this).data("rate"); 1103 TweenLite.to($this, 0.2, { 1104 x: -((e.clientX - window.innerWidth / 2) / resistance), 1105 y: -((e.clientY - window.innerHeight / 2) / resistance) 1106 }); 1107 }); 1108 }); 1109 } 1110 1111 }; 1112 1113 elementorFrontend.hooks.addAction("frontend/element_ready/section", PremiumParallaxHandler); 1114 elementorFrontend.hooks.addAction("frontend/element_ready/column", PremiumParallaxHandler); 1115 elementorFrontend.hooks.addAction("frontend/element_ready/container", PremiumParallaxHandler); 1116 1117 1118 }); 1119 1120})(jQuery);
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.