1/*! iFrame Resizer (iframeSizer.min.js ) - v4.3.2 - 2021-04-26 2 * Desc: Force cross domain iframes to size to content. 3 * Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame. 4 * Copyright: (c) 2021 David J. Bradshaw - [email protected] 5 * License: MIT 6 */ 7function _defineProperty(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } !function (e) { var t, n, i, r, a, o, s, l, c, d, u, p, h; function f() { return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver } function g(e, t, n) { e.addEventListener(t, n, !1) } function m(e, t, n) { e.removeEventListener(t, n, !1) } function y(e) { return d[e] ? d[e].log : n } function v(e, t) { _("log", e, t, y(e)) } function b(e, t) { _("info", e, t, y(e)) } function w(e, t) { _("warn", e, t, !0) } function _(e, t, n, i) { !0 === i && "object" == typeof window.console && console[e](function (e) { return a + "[" + (e = "Host page: " + (t = e), (e = window.top !== window.self ? window.parentIFrame && window.parentIFrame.getId ? window.parentIFrame.getId() + ": " + t : "Nested host page: " + t : e) + "]"); var t }(t), n) } function x(e) { function t() { n("Height"), n("Width"), M(function () { C(F), A(j), _("onResized", F) }, F, "init") } function n(e) { var t = Number(d[j]["max" + e]), n = Number(d[j]["min" + e]), i = e.toLowerCase(); e = Number(F[i]); v(j, "Checking " + i + " is in range " + n + "-" + t), e < n && (e = n, v(j, "Set " + i + " to min value")), t < e && (e = t, v(j, "Set " + i + " to max value")), F[i] = "" + e } function i(e) { return R.substr(R.indexOf(":") + r + e) } function l(e, t) { var n, i; n = function () { var n, i; q("Send Page Info", "pageInfo:" + (n = document.body.getBoundingClientRect(), i = F.iframe.getBoundingClientRect(), JSON.stringify({ iframeHeight: i.height, iframeWidth: i.width, clientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0), clientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0), offsetTop: parseInt(i.top - n.top, 10), offsetLeft: parseInt(i.left - n.left, 10), scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset, documentHeight: document.documentElement.clientHeight, documentWidth: document.documentElement.clientWidth, windowHeight: window.innerHeight, windowWidth: window.innerWidth })), e, t) }, h[i = t] || (h[i] = setTimeout(function () { h[i] = null, n() }, 32)) } function c(e) { return e = e.getBoundingClientRect(), k(j), { x: Math.floor(Number(e.left) + Number(s.x)), y: Math.floor(Number(e.top) + Number(s.y)) } } function u(e) { var t = e ? c(F.iframe) : { x: 0, y: 0 }, n = { x: Number(F.width) + t.x, y: Number(F.height) + t.y }; v(j, "Reposition requested from iFrame (offset x:" + t.x + " y:" + t.y + ")"), window.top !== window.self ? window.parentIFrame ? window.parentIFrame["scrollTo" + (e ? "Offset" : "")](n.x, n.y) : w(j, "Unable to scroll to requested position, window.parentIFrame not found") : (s = n, p(), v(j, "--")) } function p() { !1 !== _("onScroll", s) ? A(j) : L() } function f(e) { var t, n = e.split("#")[1] || "", i = (e = decodeURIComponent(n), document.getElementById(e) || document.getElementsByName(e)[0]); i ? (t = c(i), v(j, "Moving to in page link (#" + n + ") at x: " + t.x + " y: " + t.y), s = { x: t.x, y: t.y }, p(), v(j, "--")) : window.top !== window.self ? window.parentIFrame ? window.parentIFrame.moveToAnchor(n) : v(j, "In page link #" + n + " not found and window.parentIFrame not found") : v(j, "In page link #" + n + " not found") } function y(e) { var t, n; n = 0 === Number(F.width) && 0 === Number(F.height) ? { x: (t = i(9).split(":"))[1], y: t[0] } : { x: F.width, y: F.height }, _(e, { iframe: F.iframe, screenX: Number(n.x), screenY: Number(n.y), type: F.type }) } function _(e, t) { return E(j, e, t) } var x, P, O, N, R = e.data, F = {}, j = null; "[iFrameResizerChild]Ready" === R ? function () { for (var e in d) q("iFrame requested init", T(e), d[e].iframe, e) }() : a === ("" + R).substr(0, o) && R.substr(o).split(":")[0] in d ? (F = function () { var e = R.substr(o).split(":"), t = e[1] ? parseInt(e[1], 10) : 0, n = d[e[0]] && d[e[0]].iframe, i = getComputedStyle(n); return { iframe: n, id: e[0], height: t + function (e) { return "border-box" !== e.boxSizing ? 0 : (e.paddingTop ? parseInt(e.paddingTop, 10) : 0) + (e = e.paddingBottom ? parseInt(e.paddingBottom, 10) : 0) }(i) + function (e) { return "border-box" !== e.boxSizing ? 0 : (e.borderTopWidth ? parseInt(e.borderTopWidth, 10) : 0) + (e = e.borderBottomWidth ? parseInt(e.borderBottomWidth, 10) : 0) }(i), width: e[2], type: e[3] } }(), j = F.id, d[j] && (d[j].loaded = !0), (N = F.type in { true: 1, false: 1, undefined: 1 }) && v(j, "Ignoring init message from meta parent page"), !N && (O = !0, d[P = j] || (O = !1, w(F.type + " No settings for " + P + ". Message was: " + R)), O) && (v(j, "Received: " + R), x = !0, null === F.iframe && (w(j, "IFrame (" + F.id + ")
7not found"), x = !1), x && function () { var t = e.origin, n = d[j] && d[j].checkOrigin; if (n && "" + t != "null" && !function () { return n.constructor === Array ? function () { var e = 0, i = !1; for (v(j, "Checking connection is from allowed list of origins: " + n); e < n.length; e++)if (n[e] === t) { i = !0; break } return i }() : (e = d[j] && d[j].remoteHost, v(j, "Checking connection is from: " + e), t === e); var e }()) throw new Error("Unexpected message received from: " + t + " for " + F.iframe.id + ". Message was: " + e.data + ". This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains."); return 1 }() && function () { switch (d[j] && d[j].firstRun && d[j] && (d[j].firstRun = !1), F.type) { case "close": S(F.iframe); break; case "message": a = i(6), v(j, "onMessage passed: {iframe: " + F.iframe.id + ", message: " + a + "}"), _("onMessage", { iframe: F.iframe, message: JSON.parse(a) }), v(j, "--"); break; case "mouseenter": y("onMouseEnter"); break; case "mouseleave": y("onMouseLeave"); break; case "autoResize": d[j].autoResize = JSON.parse(i(9)); break; case "scrollTo": u(!1); break; case "scrollToOffset": u(!0); break; case "pageInfo": l(d[j] && d[j].iframe, j), r = j, e("Add ", g), d[r] && (d[r].stopPageInfo = n); break; case "pageInfoStop": d[j] && d[j].stopPageInfo && (d[j].stopPageInfo(), delete d[j].stopPageInfo); break; case "inPageLink": f(i(9)); break; case "reset": I(F); break; case "init": t(), _("onInit", F.iframe); break; default: 0 === Number(F.width) && 0 === Number(F.height) ? w("Unsupported message received (" + F.type + "), this is likely due to the iframe containing a later version of iframe-resizer than the parent page") : t() }function e(e, t) { function i() { d[r] ? l(d[r].iframe, r) : n() } ["scroll", "resize"].forEach(function (n) { v(r, e + n + " listener for sendPageInfo"), t(window, n, i) }) } function n() { e("Remove ", m) } var r, a }())) : b(j, "Ignored: " + R) } function E(e, t, n) { var i = null, r = null; if (d[e]) { if ("function" != typeof (i = d[e][t])) throw new TypeError(t + " on iFrame[" + e + "] is not a function"); r = i(n) } return r } function P(e) { e = e.id, delete d[e] } function S(e) { var t = e.id; if (!1 !== E(t, "onClose", t)) { v(t, "Removing iFrame: " + t); try { e.parentNode && e.parentNode.removeChild(e) } catch (e) { w(e) } E(t, "onClosed", t), v(t, "--"), P(e) } else v(t, "Close iframe cancelled by onClose event") } function k(t) { null === s && v(t, "Get page position: " + (s = { x: window.pageXOffset !== e ? window.pageXOffset : document.documentElement.scrollLeft, y: window.pageYOffset !== e ? window.pageYOffset : document.documentElement.scrollTop }).x + "," + s.y) } function A(e) { null !== s && (window.scrollTo(s.x, s.y), v(e, "Set page position: " + s.x + "," + s.y), L()) } function L() { s = null } function I(e) { v(e.id, "Size reset requested by " + ("init" === e.type ? "host page" : "iFrame")), k(e.id), M(function () { C(e), q("reset", "reset", e.iframe, e.id) }, e, "reset") } function C(e) { function t(t) { var r; r = t, e.id ? (e.iframe.style[r] = e[r] + "px", v(e.id, "IFrame (" + n + ") " + r + " set to " + e[r] + "px")) : v("undefined", "messageData id not set"), function (t) { function r() { Object.keys(d).forEach(function (e) { function t(e) { return "0px" === (d[n] && d[n].iframe.style[e]) } var n; d[n = e] && null !== d[n].iframe.offsetParent && (t("height") || t("width")) && q("Visibility change", "resize", d[n].iframe, n) }) } function a(e) { v("window", "Mutation observed: " + e[0].target + " " + e[0].type), N(r, 16) } var o; i || "0" !== e[t] || (i = !0, v(n, "Hidden iFrame detected, creating visibility listener"), (o = f()) && function () { var e = document.querySelector("body"); new o(a).observe(e, { attributes: !0, attributeOldValue: !1, characterData: !0, characterDataOldValue: !1, childList: !0, subtree: !0 }) }()) }(t) } var n = e.iframe.id; d[n] && (d[n].sizeHeight && t("height"), d[n].sizeWidth && t("width")) } function M(e, t, n) { n !== t.type && l && !window.jasmine ? (v(t.id, "Requesting animation frame"), l(e)) : e() } function q(e, t, n, i, r) { var o = !1; i = i || n.id, d[i] && (function () { var r; n && "contentWindow" in n && null !== n.contentWindow ? (r = d[i] && d[i].targetOrigin, v(i, "[" + e + "] Sending msg to iframe[" + i + "] (" + t + ") targetOrigin: " + r), n.contentWindow.postMessage(
7a + t, r)) : w(i, "[" + e + "] IFrame(" + i + ") not found") }(), r && d[i] && d[i].warningTimeout && (d[i].msgTimeout = setTimeout(function () { !d[i] || d[i].loaded || o || (o = !0, w(i, "IFrame has not responded within " + d[i].warningTimeout / 1e3 + " seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.")) }, d[i].warningTimeout))) } function T(e) { return e + ":" + d[e].bodyMarginV1 + ":" + d[e].sizeWidth + ":" + d[e].log + ":" + d[e].interval + ":" + d[e].enablePublicMethods + ":" + d[e].autoResize + ":" + d[e].bodyMargin + ":" + d[e].heightCalculationMethod + ":" + d[e].bodyBackground + ":" + d[e].bodyPadding + ":" + d[e].tolerance + ":" + d[e].inPageLinks + ":" + d[e].resizeFrom + ":" + d[e].widthCalculationMethod + ":" + d[e].mouseEvents } function O(i, r) { function a(e) { var t = e.split("Callback"); 2 === t.length && (this[t = "on" + t[0].charAt(0).toUpperCase() + t[0].slice(1)] = this[e], delete this[e], w(l, "Deprecated: '" + e + "' has been renamed '" + t + "'. The old method will be removed in the next major version.")) } var o, s, l = ("" === (o = i.id) && (i.id = (s = r && r.id || p.id + t++, null !== document.getElementById(s) && (s += t++), o = s), n = (r || {}).log, v(o, "Added missing iframe ID: " + o + " (" + i.src + ")")), o); function u(e) { var t = d[l][e]; 1 / 0 !== t && 0 !== t && (i.style[e] = "number" == typeof t ? t + "px" : t, v(l, "Set " + e + " = " + i.style[e])) } function h(e) { if (d[l]["min" + e] > d[l]["max" + e]) throw new Error("Value for min" + e + " can not be greater than max" + e) } l in d && "iFrameResizer" in i ? w(l, "Ignored iFrame, already setup.") : (function (e) { e = e || {}, d[l] = { firstRun: !0, iframe: i, remoteHost: i.src && i.src.split("/").slice(0, 3).join("/") }, function (e) { if ("object" != typeof e) throw new TypeError("Options is not an object") }(e), Object.keys(e).forEach(a, e), function (e) { for (var t in p) Object.prototype.hasOwnProperty.call(p, t) && (d[l][t] = (Object.prototype.hasOwnProperty.call(e, t) ? e : p)[t]) }(e), d[l] && (d[l].targetOrigin = !0 === d[l].checkOrigin ? "" === (e = d[l].remoteHost) || null !== e.match(/^(about:blank|javascript:|file:\/\/)/) ? "*" : e : "*") }(r), function () { switch (v(l, "IFrame scrolling " + (d[l] && d[l].scrolling ? "enabled" : "disabled") + " for " + l), i.style.overflow = !1 === (d[l] && d[l].scrolling) ? "hidden" : "auto", d[l] && d[l].scrolling) { case "omit": break; case !0: i.scrolling = "yes"; break; case !1: i.scrolling = "no"; break; default: i.scrolling = d[l] ? d[l].scrolling : "no" } }(), h("Height"), h("Width"), u("maxHeight"), u("minHeight"), u("maxWidth"), u("minWidth"), "number" != typeof (d[l] && d[l].bodyMargin) && "0" !== (d[l] && d[l].bodyMargin) || (d[l].bodyMarginV1 = d[l].bodyMargin, d[l].bodyMargin = d[l].bodyMargin + "px"), function (t) { var n, r = f(); r && (n = r, i.parentNode && new n(function (e) { e.forEach(function (e) { Array.prototype.slice.call(e.removedNodes).forEach(function (e) { e === i && S(i) }) }) }).observe(i.parentNode, { childList: !0 })), g(i, "load", function () { var n, r; q("iFrame.onload", t, i, e, !0), n = d[l] && d[l].firstRun, r = d[l] && d[l].heightCalculationMethod in c, !n && r && I({ iframe: i, height: 0, width: 0, type: "init" }) }), q("init", t, i, e, !0) }(T(l)), d[l] && (d[l].iframe.iFrameResizer = { close: S.bind(null, d[l].iframe), removeListeners: P.bind(null, d[l].iframe), resize: q.bind(null, "Window resize", "resize", d[l].iframe), moveToAnchor: function (e) { q("Move to anchor", "moveToAnchor:" + e, d[l].iframe, l) }, sendMessage: function (e) { q("Send Message", "message:" + (e = JSON.stringify(e)), d[l].iframe, l) } })) } function N(e, t) { null === u && (u = setTimeout(function () { u = null, e() }, t)) } function R() { "hidden" !== document.visibilityState && (v("document", "Trigger event: Visiblity change"), N(function () { F("Tab Visable", "resize") }, 16)) }
7 function F(e, t) { Object.keys(d).forEach(function (n) { var i; d[i = n] && "parent" === d[i].resizeFrom && d[i].autoResize && !d[i].firstRun && q(e, t, d[n].iframe, n) }) } function j() { function t(e, t) { t && (function () { if (!t.tagName) throw new TypeError("Object is not a valid DOM element"); if ("IFRAME" !== t.tagName.toUpperCase()) throw new TypeError("Expected <IFRAME> tag, found <" + t.tagName + ">") }(), O(t, e), n.push(t)) } var n; return function () { for (var e = ["moz", "webkit", "o", "ms"], t = 0; t < e.length && !l; t += 1)l = window[e[t] + "RequestAnimationFrame"]; l ? l = l.bind(window) : v("setup", "RequestAnimationFrame not supported") }(), g(window, "message", x), g(window, "resize", function () { v("window", "Trigger event: resize"), N(function () { F("Window resize", "resize") }, 16) }), g(document, "visibilitychange", R), g(document, "-webkit-visibilitychange", R), function (i, r) { var a; switch (n = [], (a = i) && a.enablePublicMethods && w("enablePublicMethods option has been removed, public methods are now always available in the iFrame"), typeof r) { case "undefined": case "string": Array.prototype.forEach.call(document.querySelectorAll(r || "iframe"), t.bind(e, i)); break; case "object": t(i, r); break; default: throw new TypeError("Unexpected data type (" + typeof r + ")") }return n } } "undefined" != typeof window && (r = 7, o = (a = "[iFrameSizer]").length, l = window.requestAnimationFrame, p = { autoResize: !(u = s = null), bodyBackground: null, bodyMargin: null, bodyMarginV1: 8, bodyPadding: null, checkOrigin: !(i = n = !1), inPageLinks: !(d = {}), enablePublicMethods: !(t = 0), heightCalculationMethod: "bodyOffset", id: "iFrameResizer", interval: 32, log: !(c = { max: 1, scroll: 1, bodyScroll: 1, documentElementScroll: 1 }), maxHeight: 1 / 0, maxWidth: 1 / 0, minHeight: 0, minWidth: 0, mouseEvents: !0, resizeFrom: "parent", scrolling: !1, sizeHeight: !0, sizeWidth: !1, warningTimeout: 5e3, tolerance: 0, widthCalculationMethod: "scroll", onClose: function () { return !0 }, onClosed: function () { }, onInit: function () { }, onMessage: function () { w("onMessage function not defined") }, onMouseEnter: function () { }, onMouseLeave: function () { }, onResized: function () { }, onScroll: function () { return !0 } }, h = {}, window.jQuery && function (e) { e.fn ? e.fn.iFrameResize || (e.fn.iFrameResize = function (e) { return this.filter("iframe").each(function (t, n) { O(n, e) }).end() }) : b("", "Unable to bind to jQuery, it is not fully loaded.") }(window.jQuery), "function" == typeof define && define.amd ? define([], j) : "object" == typeof module && "object" == typeof module.exports && (module.exports = j()), window.iFrameResize = window.iFrameResize || j()) }(), function (e) { var t = "js-carrousel", n = "js-carrousel__container", i = "js-carrousel__content", r = "js-carrousel__control__list__item", a = "js-carrousel__control__list__link", o = "carrousel__content", s = "js-carrousel__button-container", l = "carrousel__button-container", c = "js-carrousel__button__previous", d = "js-carrousel__button__next", u = "carrousel__button__button", p = "carrousel__button__img", h = "data-carrousel-prefix-class", f = "data-carrousel-btn-previous-img", g = "data-carrousel-btn-previous-text", m = "data-carrousel-btn-next-img", y = "data-carrousel-btn-next-text", v = "data-carrousel-span-text-class", b = "data-carrousel-transition", w = "data-carrousel-active-slide", _ = "data-carrousel-control-element-number", x = "data-carrousel-existing-hx", E = "data-carrousel-hx", P = "data-carrousel-span-text", S = "invisible", k = "role", A = "aria-controls", L = "aria-labelledby", I = "aria-hidden", C = "aria-selected", M = "type", q = "button", T = "class", O = function (t) { return e.getElementById(t) }, N = function (e, t) { e.classList ? e.classList.add(t) : e.className += " " + t }, R = function (e, t) { return e.classList ? e.classList.contains(t) : new RegExp("(^| )" + t + "( |$)", "gi").test(e.className) }, F = function (e, t) { Object.keys(t).forEach(function (n) { e.setAttribute(n, t[n]) }) }, j = function (e, t) { for (var n = !1, i = e; i && !1 === n;)!0 === R(i, t) ? n = !0 : i = i.parentNode; return !0 === n ? i.getAttribute("id") : "" }, z = function (e) { var t = e.id, n = e.text, i = e.spanClass, o = e.prefixClass + "carrousel__control__list__item", s = e.prefixClass + "carrousel__control__list__link", l = e.controlsId, c = e.selected, d = c ? "0" : "-1", u = e.numberElement; return '<li class="' + r + " " + o + '" ' + k + '="presentation"><a class="' + a + " " + s + '" id="' + t + '" ' + k + '="tab" ' + A + '="' + l + '" ' + C + '="' + c + '" ' + _ + '="' + u + '" tabindex="' + d + '"><span class="' + i + '">' + n + "</span></a></li>" }, H = function (e) { var t, n, i = e.controlListLink, r = e.panelControled, o = e.carrouselContainer, s = o.parentNode, l = !!e.giveFocus, c = Number(o.getAttribute(w)), d = s.querySelector("." + a + "[" + _ + '="' + c + '"]'), u = O(d.getAttribute(A)); F(d, (_defineProperty(t = {}, C, "false"), _defineProperty(t, "tabindex", "-1"), t)), F(u, _defineProperty({}, I, "true")), F(i, (_defineProperty(n = {}, C, "true"), _defineProperty(n, "tabindex", "0"), n)), F(r, _defineProperty({}, I, "false")), F(o, _defineProperty({}, w, Number(i.getAttribute(_)))), l && setTimeout(function () { return i.focus() }, 0) }, B = function (C) { var B = arguments.length <= 1 || void 0 === arguments[1] || arguments[1]; (function () { var n = arguments.length <= 0 || void 0 === arguments[0] ? e : arguments[0]; return [].slice.call(n.querySelectorAll("." + t)) }
7)(C).forEach(function (t) { var r = Math.random().toString(32).slice(2, 12), a = t.querySelector("." + n), _ = !0 === a.hasAttribute(b) ? a.getAttribute(b) : "", A = !0 === a.hasAttribute(h) ? a.getAttribute(h) + "-" : "", C = !0 === a.hasAttribute(x) ? a.getAttribute(x) : "", O = !0 === a.hasAttribute(E) ? a.getAttribute(E) : "span", R = !0 === a.hasAttribute(P) ? a.getAttribute(P) + " " : "", j = !0 === a.hasAttribute(v) ? a.getAttribute(v) : S, H = !0 === a.hasAttribute("data-carousel-hide-arrows-focus"), B = !0 === a.hasAttribute(g) ? a.getAttribute(g) : "", W = e.createElement("SPAN"); W.innerHTML = B, W = W.textContent; var D = !0 === a.hasAttribute(f) ? a.getAttribute(f) : "", V = !0 === a.hasAttribute(y) ? a.getAttribute(y) : "", U = e.createElement("SPAN"); U.innerHTML = V, U = U.textContent; var $ = !0 === a.hasAttribute(m) ? a.getAttribute(m) : "", X = !0 === a.hasAttribute(w) ? Number(a.getAttribute(w)) : 1; N(t, A + "carrousel"), N(a, A + "carrousel__container"), "" !== _ && N(a, _); var J = document.createElement("OL"); if (N(J, "js-carrousel__control__list"), N(J, A + "carrousel__control__list"), F(J, _defineProperty({}, k, "tablist")), [].slice.call(a.querySelectorAll("." + i)).forEach(function (e, t) { var n, i = "id_carrousel_content_" + r + "_" + t, a = "label_" + i, s = X === t + 1, l = void 0, c = void 0; if (N(e, A + o), N(e, o), F(e, (_defineProperty(n = {}, k, "tabpanel"), _defineProperty(n, "id", i), _defineProperty(n, I, s ? "false" : "true"), _defineProperty(n, L, a), n)), "" !== C) (l = e.querySelector(C)) && (F(l, { tabindex: "-1" }), c = l.textContent); else { c = R + (t + 1); var d = document.createElement(O); F(d, { tabindex: "-1" }), d.innerHTML = c, N(d, S), d = e.insertBefore(d, e.firstChild) } J.innerHTML += z({ id: a, text: c, spanClass: j, prefixClass: A, controlsId: i, selected: s, numberElement: t + 1 }) }), J = t.insertBefore(J, a), "" !== B) { var G, K = document.createElement("DIV"); N(K, s), N(K, A + l), N(K, A + "carrousel__button__previous"); var Q, Y = document.createElement("BUTTON"); if (F(Y, (_defineProperty(G = {}, M, q), _defineProperty(G, "id", c + "_" + r), _defineProperty(G, "title", B), G)), H) F(Y, (_defineProperty(Q = {}, I, !0), _defineProperty(Q, "tabindex", "-1"), Q)); if (N(Y, c), N(Y, A + u), Y = K.appendChild(Y), "" !== D) { var Z, ee = document.createElement("IMG"); F(ee, (_defineProperty(Z = {}, "src", D), _defineProperty(Z, "alt", W), _defineProperty(Z, T, A + p), Z)), ee = Y.appendChild(ee) } else Y.innerHTML = B; K = t.insertBefore(K, a) } if ("" !== V) { var te, ne = document.createElement("DIV"); N(ne, s), N(ne, A + l), N(ne, A + "carrousel__button__next"); var ie, re = document.createElement("BUTTON"); if (F(re, (_defineProperty(te = {}, M, q), _defineProperty(te, "id", d + "_" + r), _defineProperty(te, "title", V), te)), H) F(re, (_defineProperty(ie = {}, I, !0), _defineProperty(ie, "tabindex", "-1"), ie)); if (N(re, d), N(re, A + u), re = ne.appendChild(re), "" !== $) { var ae, oe = document.createElement("IMG"); F(oe, (_defineProperty(ae = {}, "src", $), _defineProperty(ae, "alt", U), _defineProperty(ae, T, A + p), ae)), oe = re.appendChild(oe) } else re.innerHTML = V; t.appendChild(ne) } F(a, _defineProperty({}, w, X)) }), B && ["click", "keydown"].forEach(function (o) { e.body.addEventListener(o, function (e) { var s = j(e.target, a), l = j(e.target, i), u = j(e.target, c), p = j(e.target, d); if ("" !== s && "click" === o) { var h = O(s), f = (g = O(h.getAttribute(A))).parentNode; H({ controlListLink: h, panelControled: g, carrouselContainer: f }) } if ("" !== u && "click" === o) { f = (y = O(u).parentNode.parentNode).querySelector("." + n), h = void 0; var g = void 0; (m = Number(f.getAttribute(w))) > 1 ? (h = y.querySelector("." + a + "[" + _ + '="' + (m - 1) + '"]'), g = O(h.getAttribute(A))) : (h = y.querySelector("." + r + ":last-child > ." + a), g = O(h.getAttribute(A))), H({ controlListLink: h, panelControled: g, carrouselContainer: f }) } if ("" !== p && "click" === o) { f = (y = O(p).parentNode.parentNode).querySelector("." + n); var m = Number(f.getAttribute(w)); g = void 0; (h = y.querySelector("." + a + "[" + _ + '="' + (m + 1) + '"]')) || (h = y.querySelector("." + a + "[" + _ + '="1"]')), g = O(h.getAttribute(A)), H({ control
7ListLink: h, panelControled: g, carrouselContainer: f }) } if ("" !== s && "keydown" === o) { var y = function (e, t) { for (var n = !1, i = e.parentNode; i && !1 === n;)!0 === R(i, t) ? n = !0 : i = i.parentNode; return !0 === n ? i : "" }(O(s), t); f = y.querySelector("." + n), h = void 0, g = void 0, m = void 0; if (36 === e.keyCode) h = y.querySelector("." + a + "[" + _ + '="1"]'), g = O(h.getAttribute(A)); else if (35 === e.keyCode) h = y.querySelector("." + r + ":last-child > ." + a), g = O(h.getAttribute(A)); else if (37 !== e.keyCode && 38 !== e.keyCode || e.ctrlKey) { if (40 !== e.keyCode && 39 !== e.keyCode || e.ctrlKey) return; m = Number(f.getAttribute(w)), (h = y.querySelector("." + a + "[" + _ + '="' + (m + 1) + '"]')) || (h = y.querySelector("." + a + "[" + _ + '="1"]')), g = O(h.getAttribute(A)) } else (m = Number(f.getAttribute(w))) > 1 ? (h = y.querySelector("." + a + "[" + _ + '="' + (m - 1) + '"]'), g = O(h.getAttribute(A))) : (h = y.querySelector("." + r + ":last-child > ." + a), g = O(h.getAttribute(A))); H({ controlListLink: h, panelControled: g, carrouselContainer: f, giveFocus: !0 }) } "" !== l && "keydown" === o && function () { var t = O(l), n = O(t.getAttribute(L)); 37 !== e.keyCode && 38 !== e.keyCode || !e.ctrlKey || setTimeout(function () { return n.focus() }, 0) }() }, !0) }) }; document.addEventListener("DOMContentLoaded", function e() { B(), document.removeEventListener("DOMContentLoaded", e) }), window.van11yAccessibleCarrouselAria = B }(document), function (e) { var t = { init: function (n) { var i = e.extend({ items: 1, itemsOnPage: 1, pages: 0, displayedPages: 5, edges: 2, currentPage: 0, useAnchors: !0, hrefTextPrefix: "#page-", hrefTextSuffix: "", prevText: "Prev", nextText: "Next", ellipseText: "…", ellipsePageSet: !0, cssStyle: "light-theme", listStyle: "", labelMap: [], selectOnClick: !0, nextAtFront: !1, invertPageOrder: !1, useStartEdge: !0, useEndEdge: !0, onPageClick: function (e, t) { }, onInit: function () { } }, n || {}), r = this; return i.pages = i.pages ? i.pages : Math.ceil(i.items / i.itemsOnPage) ? Math.ceil(i.items / i.itemsOnPage) : 1, i.currentPage ? i.currentPage = i.currentPage - 1 : i.currentPage = i.invertPageOrder ? i.pages - 1 : 0, i.halfDisplayed = i.displayedPages / 2, this.each(function () { r.addClass(i.cssStyle + " simple-pagination").data("pagination", i), t._draw.call(r) }), i.onInit(), this }, selectPage: function (e) { return t._selectPage.call(this, e - 1), this }, prevPage: function () { var e = this.data("pagination"); return e.invertPageOrder ? e.currentPage < e.pages - 1 && t._selectPage.call(this, e.currentPage + 1) : e.currentPage > 0 && t._selectPage.call(this, e.currentPage - 1), this }, nextPage: function () { var e = this.data("pagination"); return e.invertPageOrder ? e.currentPage > 0 && t._selectPage.call(this, e.currentPage - 1) : e.currentPage < e.pages - 1 && t._selectPage.call(this, e.currentPage + 1), this }, getPagesCount: function () { return this.data("pagination").pages }, setPagesCount: function (e) { this.data("pagination").pages = e }, getCurrentPage: function () { return this.data("pagination").currentPage + 1 }, destroy: function () { return this.empty(), this }, drawPage: function (e) { var n = this.data("pagination"); return n.currentPage = e - 1, this.data("pagination", n), t._draw.call(this), this }, redraw: function () { return t._draw.call(this), this }, disable: function () { var e = this.data("pagination"); return e.disabled = !0, this.data("pagination", e), t._draw.call(this), this }, enable: function () { var e = this.data("pagination"); return e.disabled = !1, this.data("pagination", e), t._draw.call(this), this }, updateItems: function (e) { var n = this.data("pagination"); n.items = e, n.pages = t._getPages(n), this.data("pagination", n), t._draw.call(this) }, updateItemsOnPage: function (e) { var n = this.data("pagination"); return n.itemsOnPage = e, n.pages = t._getPages(n), this.data("pagination", n), t._selectPage.call(this, 0), this }, getItemsOnPage: function () { return this.data("pagination").itemsOnPage }, _draw: function () { var n, i = this.data("pagination"), r = t._getInterval(i); t.destroy.call(this); var a = "UL" === ("function" == typeof this.prop ? this.prop("tagName") : this.attr("tagName")) ? this
7: e("<ul" + (i.listStyle ? ' class="' + i.listStyle + '"' : "") + "></ul>").appendTo(this); if (i.prevText && t._appendItem.call(this, i.invertPageOrder ? i.currentPage + 1 : i.currentPage - 1, { text: i.prevText, classes: "prev" }), i.nextText && i.nextAtFront && t._appendItem.call(this, i.invertPageOrder ? i.currentPage - 1 : i.currentPage + 1, { text: i.nextText, classes: "next" }), i.invertPageOrder) { if (r.end < i.pages && i.edges > 0) { if (i.useStartEdge) { var o = Math.max(i.pages - i.edges, r.end); for (n = i.pages - 1; n >= o; n--)t._appendItem.call(this, n) } i.pages - i.edges > r.end && i.pages - i.edges - r.end != 1 ? a.append('<li class="disabled"><span class="ellipse">' + i.ellipseText + "</span></li>") : i.pages - i.edges - r.end == 1 && t._appendItem.call(this, r.end) } } else if (r.start > 0 && i.edges > 0) { if (i.useStartEdge) { var s = Math.min(i.edges, r.start); for (n = 0; n < s; n++)t._appendItem.call(this, n) } i.edges < r.start && r.start - i.edges != 1 ? a.append('<li class="disabled"><span class="ellipse">' + i.ellipseText + "</span></li>") : r.start - i.edges == 1 && t._appendItem.call(this, i.edges) } if (i.invertPageOrder) for (n = r.end - 1; n >= r.start; n--)t._appendItem.call(this, n); else for (n = r.start; n < r.end; n++)t._appendItem.call(this, n); if (i.invertPageOrder) { if (r.start > 0 && i.edges > 0 && (i.edges < r.start && r.start - i.edges != 1 ? a.append('<li class="disabled"><span class="ellipse">' + i.ellipseText + "</span></li>") : r.start - i.edges == 1 && t._appendItem.call(this, i.edges), i.useEndEdge)) for (n = (s = Math.min(i.edges, r.start)) - 1; n >= 0; n--)t._appendItem.call(this, n) } else if (r.end < i.pages && i.edges > 0 && (i.pages - i.edges > r.end && i.pages - i.edges - r.end != 1 ? a.append('<li class="disabled"><span class="ellipse">' + i.ellipseText + "</span></li>") : i.pages - i.edges - r.end == 1 && t._appendItem.call(this, r.end), i.useEndEdge)) for (n = o = Math.max(i.pages - i.edges, r.end); n < i.pages; n++)t._appendItem.call(this, n); i.nextText && !i.nextAtFront && t._appendItem.call(this, i.invertPageOrder ? i.currentPage - 1 : i.currentPage + 1, { text: i.nextText, classes: "next" }), i.ellipsePageSet && !i.disabled && t._ellipseClick.call(this, a) }, _getPages: function (e) { return Math.ceil(e.items / e.itemsOnPage) || 1 }, _getInterval: function (e) { return { start: Math.ceil(e.currentPage > e.halfDisplayed ? Math.max(Math.min(e.currentPage - e.halfDisplayed, e.pages - e.displayedPages), 0) : 0), end: Math.ceil(e.currentPage > e.halfDisplayed ? Math.min(e.currentPage + e.halfDisplayed, e.pages) : Math.min(e.displayedPages, e.pages)) } }, _appendItem: function (n, i) { var r, a, o = this, s = o.data("pagination"), l = e("<li></li>"), c = o.find("ul"); r = { text: (n = n < 0 ? 0 : n < s.pages ? n : s.pages - 1) + 1, classes: "" }, s.labelMap.length && s.labelMap[n] && (r.text = s.labelMap[n]), r = e.extend(r, i || {}), n == s.currentPage || s.disabled ? (s.disabled || "prev" === r.classes || "next" === r.classes ? l.addClass("disabled") : l.addClass("active"), a = e('<span class="current">' + r.text + "</span>")) : (a = s.useAnchors ? e('<a href="' + s.hrefTextPrefix + (n + 1) + s.hrefTextSuffix + '" class="page-link">' + r.text + "</a>") : e("<span >" + r.text + "</span>")).click(function (e) { return t._selectPage.call(o, n, e) }), r.classes && a.addClass(r.classes), l.append(a), c.length ? c.append(l) : o.append(l) }, _selectPage: function (e, n) { var i = this.data("pagination"); return i.currentPage = e, i.selectOnClick && t._draw.call(this), i.onPageClick(e + 1, n) }, _ellipseClick: function (n) { var i = this, r = this.data("pagination"), a = n.find(".ellipse"); a.addClass("clickable").parent().removeClass("disabled"), a.click(function (n) { if (!r.disable) { var o = e(this), s = (parseInt(o.parent().prev().text(), 10) || 0) + 1; o.html('<input type="number" min="1" max="' + r.pages + '" step="1" value="' + s + '">').find("input").focus().click(function (e) { e.stopPropagation() }).keyup(function (n) { var o = e(this).val(); 13 === n.which && "" !== o ? o > 0 && o <= r.pages && t._selectPage.call(i, o - 1) : 27 === n.which && a.empty().html(r.ellipseText) }).bind("blur", function (n) { var o = e(this).val(); return "" !== o && t._selectPage.call(i, o - 1), a.empty().html(r.ellipseText), !1 }) } return !1 }) } }; e.fn.pagination = function (n) { return t[n] && "_" != n.charAt(0) ? t[n].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof n && n ? void e.error("Method " + n + " does not exist on jQuery.pagination") : t.init.a
7pply(this, arguments) } }(jQuery); const initGetRates = () => { const e = document.querySelector(".sri-sticky-get-pricing-widget"), t = document.getElementById("openStickyGetPricingWidget"), n = document.getElementById("closeStickyGetPricingWidget"); let i = !1; e && (e.style.transition = "left 0.4s ease"); const r = () => { e && (e.style.left = "0"), t && (t.style.visibility = "hidden"), n && (n.style.visibility = "visible"), i = !1 }, a = () => { e && (e.style.left = "-295px"), t && (t.style.visibility = "visible"), n && (n.style.visibility = "hidden"), i = !1 }; if (n?.addEventListener("click", e => { e.preventDefault(), a() }), t?.addEventListener("click", e => { e.preventDefault(), r() }), void 0 === Cookies.get("sri_get_rates_cookie")) { Cookies.set("sri_get_rates_cookie", 1, { expires: 5 }), a(); const e = window.innerHeight, t = document.getElementById("sri-home__get-rate-widget-js-trigger")?.offsetTop ?? 0; i = !0, window.addEventListener("scroll", () => { i && window.scrollY > t - e / 2 && r() }) } else a() }; function HeroSlider(e) { this.root = e, this.slides = Array.from(e.querySelectorAll(".hero__slide")), this.prevBtn = e.querySelector(".hero__control--prev"), this.nextBtn = e.querySelector(".hero__control--next"), this.current = 0; var t = e.getAttribute("data-autoplay"); this.autoplay = "true" === t; var n = parseInt(e.getAttribute("data-autoplay-interval"), 10); this.autoplayInterval = isNaN(n) ? 8e3 : n, this.autoplayTimer = null, this.init() } HeroSlider.prototype.init = function () { var e = this; if (this.slides.length <= 1) { var t = this.root.closest(".hero"); t && t.classList.add("hero--single-slide") } this.slides.forEach(function (t, n) { 0 === n ? (t.classList.add("is-active"), t.setAttribute("aria-hidden", "false")) : (t.classList.remove("is-active"), t.setAttribute("aria-hidden", "true")), e.setupVideoSlide(t) }), this.prevBtn && this.nextBtn && this.slides.length > 1 && (this.prevBtn.addEventListener("click", function () { e.showSlide(e.current - 1), e.restartAutoplay() }), this.nextBtn.addEventListener("click", function () { e.showSlide(e.current + 1), e.restartAutoplay() })), this.root.addEventListener("keydown", function (t) { "ArrowLeft" === t.key ? (e.showSlide(e.current - 1), e.restartAutoplay()) : "ArrowRight" === t.key && (e.showSlide(e.current + 1), e.restartAutoplay()) }), this.autoplay && this.slides.length > 1 && this.startAutoplay() }, HeroSlider.prototype.showSlide = function (e) { if (this.slides.length) { var t = this.slides.length, n = (e + t) % t; if (n !== this.current) { var i = this.slides[this.current], r = this.slides[n]; i.classList.remove("is-active"), i.setAttribute("aria-hidden", "true"), r.classList.add("is-active"), r.setAttribute("aria-hidden", "false"), this.pauseAllVideos(), this.current = n } } }, HeroSlider.prototype.startAutoplay = function () { var e = this; this.stopAutoplay(), this.autoplayTimer = window.setInterval(function () { e.showSlide(e.current + 1) }, this.autoplayInterval) }, HeroSlider.prototype.stopAutoplay = function () { this.autoplayTimer && (window.clearInterval(this.autoplayTimer), this.autoplayTimer = null) }, HeroSlider.prototype.restartAutoplay = function () { this.autoplay && this.startAutoplay() }, HeroSlider.prototype.pauseAllVideos = function () { this.root.querySelectorAll(".hero__video-embed iframe").forEach(function (e) { try { e.contentWindow.postMessage(JSON.stringify({ method: "pause" }), "*") } catch (e) { } }) }, HeroSlider.prototype.setupVideoSlide = function (e) { var t = e.querySelector('.hero__media--video[data-media-type="video"]'); if (t && "true" !== t.dataset.initialized) { var n = t.getAttribute("data-vimeo-id"), i = t.getAttribute("data-video-id-extra"); if (n) { var r = t.querySelector(".hero__video-placeholder"), a = t.querySelector(".hero__video-embed"), o = t.querySelector(".hero__video-play"), s = window.matchMedia("(min-width: 768px)").matches; r && (r.style.display = "block"), a && a.setAttribute("aria-hidden", "true"), o && o.addEventListener("click", function () { l(s) }, { once: !0 }), s && l(!0), t.dataset.initialized = "true" } } function l(e) { if (a && !a.querySelector("iframe")) { var t = document.createElement("iframe"); if ("" != i) var o = ["h=" + i, "loop=1", "autoplay=1", "muted=" + (e ? "1" : "0"), "title=0", "byline=0", "portrait=0", "playsinline=1"].join("&"); else o = ["loop=1", "autoplay=1", "muted=" + (e ? "1" : "0"), "title=0", "byline=0", "portrait=0", "playsinline=1"].join("&"); t.src = "https://player.vimeo.com/video/" + encodeURIComponent(n) + "?" + o, t.setAttribute("allow", "autoplay; fullscreen; picture-in-picture"), t.setAttribute("allowfullscreen", "true"), a.style.display = "block", a.setAttribute("aria-hidden", "false"), a.appendChild(t), r && (r.style.display = "none") } } }, window.addEventListener("DOMContentLoaded", () => { document.body, document.querySelectorAll(".hamburger-inner"); const e = e =>
7 e.shiftKey || [35, 36, 8, 9, 13, 46].includes(e.keyCode) || e.keyCode > 36 && e.keyCode < 41 || (e.ctrlKey || e.metaKey) && [65, 67, 86, 88, 90].includes(e.keyCode), t = t => { (({ keyCode: e, target: t }) => { const n = t.value.length; return n < 2 || 14 === n ? e >= 50 && e <= 57 || e >= 98 && e <= 105 : e >= 48 && e <= 57 || e >= 96 && e <= 105 })(t) || e(t) || t.preventDefault() }, n = ({ target: t }) => { if (e({})) return; const n = t.value.replace(/\D/g, "").slice(0, 10), i = n.slice(0, 3), r = n.slice(3, 6), a = n.slice(6); t.value = a ? `(${i}) ${r}-${a}` : r ? `(${i}) ${r}` : i ? `(${i}` : "" }; document.querySelectorAll(".js-phone input").forEach(e => { e.addEventListener("paste", e => e.preventDefault()), e.addEventListener("keydown", t), e.addEventListener("keyup", n), e.autocomplete = "off" }), document.getElementById("direct-contact-btn")?.addEventListener("click", () => { document.getElementById("share-feedback-view")?.classList.remove("visible"), document.getElementById("direct-contact-view")?.classList.add("visible") }), document.querySelectorAll(".accordion-header").forEach(e => { const t = e.parentElement.parentElement.nextElementSibling; e.addEventListener("click", () => { const n = "true" === e.getAttribute("aria-expanded"); e.setAttribute("aria-expanded", String(!n)), t.hidden = n, e.lastElementChild?.classList.toggle("fa-plus"), e.lastElementChild?.classList.toggle("fa-minus") }) }), document.querySelectorAll(".js-reveal-hero-video").forEach(e => { const t = document.getElementById("hero-video-player"), n = document.getElementById("hero-video"); if (!t || !n) return; const i = new Vimeo.Player(n); e.addEventListener("click", async () => { await i.play(), t.classList.add("visible") }); const r = () => { const e = document.getElementById("page-hero"); e && (t.style.height = `${e.offsetHeight}px`) }; r(), window.addEventListener("resize", r) }), document.querySelectorAll(".js-close-hero-video").forEach(e => { const t = document.getElementById("hero-video-player"), n = document.getElementById("hero-video"); if (!t || !n) return; const i = new Vimeo.Player(n); e.addEventListener("click", async () => { await i.pause(), t.classList.remove("visible") }) }); if (document.querySelector(".contact-reason .gfield_select")) { const e = document.querySelector(".contact-reason .gfield_select"); console.log(e); var i = document.querySelector(".js-ssid"), r = document.querySelector(".js-crm_skip"); const t = i.value; e.addEventListener("change", n => { contactReasonFieldValue = e.value, console.log(contactReasonFieldValue), "Resident or Family Member" == contactReasonFieldValue || "Vendor" == contactReasonFieldValue || "Volunteer" == contactReasonFieldValue || "Employment" == contactReasonFieldValue ? (i.value = t, r.value = "1", console.log(r.value)) : (r.value = "0", console.log(r.value), "Potential Resident" == contactReasonFieldValue && (i.value = "67547"), "Referral" == contactReasonFieldValue && (i.value = "67548")) }) } const a = (e, t = "") => { let n = new URLSearchParams(location.search).get(e) || (e => document.cookie.split("; ").find(t => t.startsWith(e + "="))?.split("=")[1] || "")(e) || t; return n.includes("+") && (n = n.replace(/\+/g, " ")), document.querySelectorAll(`.js-${e}`).forEach(e => e.value = n), console.log(`Setting ${e} to ${n}`), n }, o = a("psid", "29276"); a("ssid"), a("source_name", "Organic"), a("network"), window.PROFORM_V1 = o, new URLSearchParams(location.search).get("form_id") && (window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "validFormSubmission", formID: new URLSearchParams(location.search).get("form_id") })), initGetRates(), document.querySelectorAll(".js-carrousel__container").forEach(e => { const t = () => { const t = Number(e.getAttribute("data-carrousel-active-slide")) || 1; e.style.setProperty("--carrousel-active-slide", t) }; t(), "undefined" != typeof MutationObserver && new MutationObserver(t).observe(e, { attributes: !0, attributeFilter: ["data-carrousel-active-slide"] }) }), document.querySelectorAll(".gallery").forEach(e => { const t = e.querySelector(".preview-image"), n = e.querySelector(".thumbnails"), i = e.querySelectorAll(".thumbnails img"), r = e.querySelector(".preview .prev"), a = e.querySelector(".preview .next"), o = (e.querySelector(".thumbnails-container .prev"), e.querySelector(".thumbnails-container .next"), e.querySelector(".preview")); let s = 0, l = 0, c = 0; const d = () => { window.innerWidth >= 960 ? n && o && (n.style.maxHeight = `${o.offsetHeight}px`) : n && (n.style.maxHeight = "") }; d(), window.addEventListener("resize", d), t?.addEventListener("load", d), n?.addEventListener("touchstart", e => l = c = e.touches[0].clientX), n?.addEventListener("touchmove", e => { c = e.touches[0].clientX, Math.abs(l - c) > 5 && e.preventDefault() }), n?.addEventListener("touchend", () => { const e = l - c; Math.abs(e) > 50 && n.scrollBy({ left: e > 0 ? 130 : -130, behavior: "smooth" }) }), o?.addEventListener("touchstart", e => { e.target.closest(".arrow") || (l = c = e.touches[0].clientX) }), o?.addEventListener("touchmove", e => { c = e.touches[0].clientX, Math.abs(l - c) > 5 && e.preventDefault() }), o?.addEventListener("touchend", e => { if (e.target.closest(".arrow")) return; const t = l - c; Math.abs(t) > 50 && (t > 0 ? p() : h()) }); const u = e => { if (!t) return; t.classList.replace("fade-in", "fade-out"); const n = i[e]; t.src = n.dataset.large, t.alt = n.alt, t.classList.replace("fade-out", "fade-in"), i.forEac
7h(e => e.classList.remove("active")), n.classList.add("active"), s = e }, p = () => u((s + 1) % i.length), h = () => u((s - 1 + i.length) % i.length); i.forEach((e, t) => { e.addEventListener("click", () => u(t)), e.addEventListener("keydown", e => { ["Enter", " "].includes(e.key) && (u(t), e.preventDefault()) }) }), r?.addEventListener("click", h), a?.addEventListener("click", p), r?.addEventListener("keydown", e => { ["Enter", " "].includes(e.key) && (h(), e.preventDefault()) }), a?.addEventListener("keydown", e => { ["Enter", " "].includes(e.key) && (p(), e.preventDefault()) }), i.length && u(0) }); new class { constructor() { this.gallery = document.querySelector(".video-gallery"), this.gallery && (this.thumbnails = Array.from(this.gallery.querySelectorAll(".video-thumbnail")), this.thumbnails.length && (this.currentIndex = 0, this.isMobile = window.innerWidth <= 767, this.isMobile && this.addNavigationArrows(), this.initLightbox(), this.bindEvents())) } addNavigationArrows() { const e = Object.assign(document.createElement("button"), { className: "arrow prev", innerHTML: "❮" }), t = Object.assign(document.createElement("button"), { className: "arrow next", innerHTML: "❯" }); e.setAttribute("aria-label", "Previous video"), t.setAttribute("aria-label", "Next video"), this.gallery.append(e, t) } bindEvents() { this.gallery.addEventListener("touchstart", e => this.isMobile && (this.startX = e.touches[0].clientX)), this.gallery.addEventListener("touchmove", e => this.isMobile && (e.touches[0].clientX, Math.abs(e.touches[0].clientX - this.startX) > 10 && e.preventDefault())), this.gallery.addEventListener("touchend", () => { if (!this.isMobile) return; const e = event.changedTouches[0].clientX - this.startX; Math.abs(e) > 50 && this.navigate(e > 0 ? "prev" : "next") }), this.isMobile && (this.gallery.querySelector(".arrow.prev")?.addEventListener("click", () => this.navigate("prev")), this.gallery.querySelector(".arrow.next")?.addEventListener("click", () => this.navigate("next"))), window.addEventListener("resize", () => { const e = this.isMobile; this.isMobile = window.innerWidth <= 767, e !== this.isMobile && (e ? this.addNavigationArrows() : this.gallery.querySelectorAll(".arrow").forEach(e => e.remove())) }) } navigate(e) { this.thumbnails[this.currentIndex].classList.remove("active"), this.currentIndex = "next" === e ? (this.currentIndex + 1) % this.thumbnails.length : (this.currentIndex - 1 + this.thumbnails.length) % this.thumbnails.length, this.thumbnails[this.currentIndex].classList.add("active") } initLightbox() { const e = document.querySelector(".video-lightbox"), t = e.querySelector("iframe"), n = e.querySelector(".close-lightbox"); this.thumbnails.forEach(n => n.addEventListener("click", () => { const i = n.dataset.videoId; t.src = `https://player.vimeo.com/video/${i}${i.includes("?") ? "&autoplay=1" : "?autoplay=1"}`, e.classList.add("active"), document.body.style.overflow = "hidden" })), n?.addEventListener("click", () => { t.src = "", e.classList.remove("active"), document.body.style.overflow = "" }), e?.addEventListener("click", n => { n.target === e && (t.src = "", e.classList.remove("active"), document.body.style.overflow = "") }), document.addEventListener("keydown", n => { "Escape" === n.key && e.classList.contains("active") && (t.src = "", e.classList.remove("active"), document.body.style.overflow = "") }) } }, document.querySelectorAll(".hero-banner").forEach(e => { const t = Array.from(e.querySelectorAll(".hero-slide")), n = e.querySelector(".hero-banner__arrow--prev"), i = e.querySelector(".hero-banner__arrow--next"); let r = 0; t.length <= 1 && e.classList.add("single"); const a = e => t.forEach((t, n) => t.classList.toggle("active", n === e)); n?.addEventListener("click", () => a(r = (r - 1 + t.length) % t.length)), i?.addEventListener("click", () => a(r = (r + 1) % t.length)), e.querySelectorAll(".vimeo-embed").forEach(e => { const t = e.dataset.videoId, n = e.dataset.videoIdExtra, i = document.createElement("iframe"); i.src = `https://player.vimeo.com/video/${t}${n ? `?h=${n}&autoplay=1&muted=1` : "?autoplay=1&muted=1"}`, i.setAttribute("frameborder", "0"), i.setAttribute("allow", "autoplay; fullscreen"), i.setAttribute("allowfullscreen", ""), i.setAttribute("title", "Embedded Vimeo Video"), e.appendChild(i) }); const o = "true" === e.dataset.autoplay, s = Number(e.dataset.autoplayInterval) || 5e3; let l; o && t.length > 1 && (l = setInterval(() => i.click(), s), e.addEventListener("mouseover", () => clearInterval(l)), e.addEventListener("mouseout", () => l = setInterval(() => i.click(), s))) }), document.querySelectorAll("[data-hero]").forEach(function (e) { new HeroSlider(e) }) }), window.addEventListener("load", () => { window.matchMedia("(max-width:959px)").matches && document.querySelectorAll(".menu-item-has-children").forEach(e => { e.addEventListener("click", () => { const t = e.querySelector(".sub-menu"); if (!t) return; const n = t.offsetHeight + 40; t.classList.toggle("visible") ? e.style.marginBottom = `${n}px` : e.style.marginBottom = "40px" }) }), window.matchMedia("(min-width:960px)").matches && document.querySelectorAll(".menu-item-has-children").forEach(e => { e.addEventListener("mouseenter", () => e.querySelector(".sub-menu")?.classList.add("visible")), e.addEventListener("mouseleave", () => e.querySelector(".sub-menu")?.classList.remove("visible")) }), iFrameResize({ log: !0, widthCalculationMethod: "taggedElement", autoResize: !1 }, "#cost-calculator-iframe") }), function (e) { "use strict"; var t = !1; "function" == typeof define && define.amd && (define(e), t = !0), "object" == typeof exports && (module.exports = e(), t = !0), t || window.Cookies || (window.Cookies = e()) }(function () { function e() { for (var e = 0, t = {}; e < arguments.length; e++) { var n = arguments[e]; for (var i in n) t[i] = n[i] } return t } return function t(n) { function i(t, r, a) { var o; if ("undefined" != typeof document) { if (arguments.length > 1) { "number" == typeof (a = e({ path: "/" }, i.defaults, a)).expires && (a.expires = new Date(Date.now() + 864e5 * a.expires)), a.expires = a.expires ? a.expires.toUTCString() : ""; try { r = JSON.stringify(r), /^[\{\[]/.test(r) } catch (e) { } r = encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), t = (t = encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape); var s = ""; for (var l in a) a[l] && (s += "; " + l, !0 !== a[l] && (s += "=" + a[l])); return document.cookie = t + "=" + r + s } t || (o = {}); for (var c = document.cookie ? document.cookie.split("; ") : [], d = /(%[0-9A-Z]{2})+/g, u = 0; u < c.length; u++) { var p = c[u].split("="), h = p.slice(1).join("="); this.json && '"' === h.charAt(0) && (h = h.slice(1, -1)); try { var f = p[0].replace(d, decodeURIComponent); if (h = n.read ? n.read(h, f) : decodeURIComponent(h), this.json && (h = JSON.parse(h)), t === f) { o = h; break } t || (o[f] = h) } catch (e) { } } return o } } return i.set = i, i.get = function (e) { return i.call(i, e) }, i.getJSON = function () { return i.apply({ json: !0 }, [].slice.call(arguments)) }, i.defaults = {}, i.remove = function (t, n) { i(t, "", e(n, { expires: -1 })) }, i.withConverter = t, i }(function (e) { return e }) });
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.