https://midcitiesdirectcare.com/bundles/1284/MidCitiesDirectCare-Redesign/home/scripts.js?v=c0c7d0ce
1/****************************************************************************** 2W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\header\_shared\header.js 3******************************************************************************/ 4;(function () { 5 console.debug('initializing dynamic-css-var --header-height'); 6 7 // track the max header height we've seen (used in the scroll listener) 8 let maxHeaderHeight = 0; 9 10 /** 11 * Sets the --header-height property based on the (header) offsetHeight. 12 */ 13 function setHeaderHeight(height) { 14 maxHeaderHeight = Math.max(maxHeaderHeight, height); 15 const root = document.querySelector(':root'); 16 root.style.setProperty('--header-height', height + 'px'); 17 } 18 19 /** 20 * Initializes the ResizeObserver to change the --header-height property. 21 * @param {HTMLElement} header 22 */ 23 function initHeaderHeightObserver(header) { 24 try { 25 // set the initial height because the observer doesn't always fire immediately 26 setHeaderHeight(header?.offsetHeight || 0); 27 28 const headerObserver = new ResizeObserver(entries => { 29 // we only use the first entry 30 const headerEntry = entries && entries[0]; 31 32 if (headerEntry) { 33 setHeaderHeight(headerEntry.target.offsetHeight); 34 } 35 }); 36 37 headerObserver.observe(header, { box: 'border-box' }); 38 } catch (ex) { 39 console.debug('Could not set --header-height observer.', ex); 40 } 41 } 42 43 function init() { 44 const header = document.querySelector('header'); 45 46 // only run the rest if we have a header 47 if (header) { 48 initHeaderHeightObserver(header); 49 50 // add or remove the header--scroll class based on scroll position 51 window.addEventListener('scroll', () => { 52 const scrollPosition = window.scrollY; 53 54 // use 75% of the max header height, 30 minimum 55 const threshold = Math.max(maxHeaderHeight * 0.75, 30); 56 57 if (scrollPosition >= threshold) { 58 header.classList.add('header--scroll'); 59 } else { 60 const currentHeaderHeight = header.offsetHeight; 61 62 // make sure that going back to the larger header isn't going to cause oscillation 63 if (maxHeaderHeight - currentHeaderHeight + scrollPosition < threshold) { 64 header.classList.remove('header--scroll'); 65 } 66 } 67 }, { passive: true }); 68 } 69 } 70 71 // no dependencies, call immediately 72 init(); 73})(); 74/****************************************************************************** 75W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\assets\js\util\namespace.js 76******************************************************************************/ 77;// namespace.js 78(() => { 79 const namespace = (name, root) => { 80 const parts = name.split("."); 81 let ns = root || globalThis; 82 83 for (const p of parts) { 84 ns = ns[p] = ns[p] || {}; 85 } 86 87 return ns; 88 }; 89 90 const namespaces = (/** @type {string[]} */ ...names) => 91 names.map(name => namespace(name)); 92 93 // add the namespace function in the dl.util namespace 94 const ns = namespace("dl.util"); 95 ns.namespace = namespace; 96 ns.namespaces = namespaces; 97})(); 98 99/****************************************************************************** 100W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\assets\js\util\events.js 101******************************************************************************/ 102;/// <reference path="./types.d.ts" /> 103((/** @type {DL_Util_Events_Namespace} */ events) => { 104 events.domContentLoaded = (cb) => { 105 if (document.readyState === 'loading') { 106 window.addEventListener('DOMContentLoaded', cb); 107 } else { 108 cb(); 109 } 110 }; 111 events.hashChange = (cb) => { 112 if (document.readyState === "loading") { 113 window.addEventListener("hashchange", cb); 114 } else { 115 cb(); 116 } 117 }; 118})(window.dl.util.namespace('dl.util.events')); 119/****************************************************************************** 120W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\header-notification\header-notification\header-notification.js 121******************************************************************************/ 122;/// <reference path="../../../assets/js/util/types.d.ts" /> 123((/** @type {DL_Util_Events_Namespace} */ events) => { 124 let dlHeaderNotificationStorageName = 125 "__DL-dl-headerNotification-lastAccessedData"; 126 127 let closeButtonElement = document.querySelector( 128 `.header__notification-close` 129 ); 130 131 let headerNotifacationElem = document.querySelector(`.header__notification`); 132
133 function init() { 134 if (closeButtonElement) { 135 closeButtonElement.addEventListener("click", function (event) { 136 event.preventDefault(); 137 headerNotifacationElem.classList.toggle("header__notification--hidden"); 138 localStorage.setItem(dlHeaderNotificationStorageName, new Date()); 139 }); 140 } 141 } 142 function hideHeaderNotification() { 143 let __debugging = !!location.hash.match(/__testHeaderNotification/); 144 145 let lastDateAccessed = new Date( 146 localStorage.getItem(dlHeaderNotificationStorageName) 147 ); 148 149 let yesterday = new Date().getTime() - 1 * 24 * 60 * 60 * 1000; 150 let wasViewInLast24Hours = lastDateAccessed > yesterday; 151 152 if (wasViewInLast24Hours) { 153 headerNotifacationElem.classList.add("header__notification--hidden"); 154 } 155 if (__debugging) { 156 headerNotifacationElem.classList.remove("header__notification--hidden"); 157 } 158 } 159 160 events.domContentLoaded(function () { 161 init(); 162 hideHeaderNotification(); 163 }); 164 165 events.hashChange(function () { 166 hideHeaderNotification(); 167 }); 168})(dl.util.namespace("dl.util.events")); 169 170/****************************************************************************** 171W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\assets\js\slide-menu.js 172******************************************************************************/ 173;!function (t) { var e = {}; function n(r) { if (e[r]) return e[r].exports; var i = e[r] = { i: r, l: !1, exports: {} }; return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports } n.m = t, n.c = e, n.d = function (t, e, r) { n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r }) }, n.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, n.t = function (t, e) { if (1 & e && (t = n(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var i in t) n.d(r, i, function (e) { return t[e] }.bind(null, i)); return r }, n.n = function (t) { var e = t && t.__esModule ? function () { return t.default } : function () { return t }; return n.d(e, "a", e), e }, n.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, n.p = "", n(n.s = 59) }([function (t, e, n) { (function (e) { var n = function (t) { return t && t.Math == Math && t }; t.exports = n("object" == typeof globalThis && globalThis) || n("object" == typeof window && window) || n("object" == typeof self && self) || n("object" == typeof e && e) || Function("return this")() }).call(this, n(32)) }, function (t, e) { t.exports = function (t) { try { return !!t() } catch (t) { return !0 } } }, function (t, e) { var n = {}.hasOwnProperty; t.exports = function (t, e) { return n.call(t, e) } }, function (t, e, n) { var r = n(1); t.exports = !r((function () { return 7 != Object.defineProperty({}, "a", { get: function () { return 7 } }).a })) }, function (t, e) { t.exports = function (t) { return "object" == typeof t ? null !== t : "function" == typeof t } }, function (t, e, n) { var r = n(3), i = n(18), o = n(13); t.exports = r ? function (t, e, n) { return i.f(t, e, o(1, n)) } : function (t, e, n) { return t[e] = n, t } }, function (t, e, n) { var r = n(4); t.exports = function (t) { if (!r(t)) throw TypeError(String(t) + " is not an object"); return t } }, function (t, e, n) { var r = n(14), i = n(8); t.exports = function (t) { return r(i(t)) } }, function (t, e) { t.exports = function (t) { if (null == t) throw TypeError("Can't call method on " + t); return t } }, function (t, e, n) { var r = n(0), i = n(5); t.exports = function (t, e) { try { i(r, t, e) } catch (n) { r[t] = e } return e } }, function (t, e, n) { var r = n(0), i = n(11).f, o = n(5), c = n(19), s = n(9), a = n(38), u = n(46); t.exports = function (t, e) { var n, l, f, p, h, m = t.target, d = t.global, v = t.stat; if (n = d ? r : v ? r[m] || s(m, {}) : (r[m] || {}).prototype) for (l in e) { if (p = e[l], f = t.noTargetGet ? (h = i(n, l)) && h.value : n[l], !u(d ? l : m + (v ? "." : "#") + l, t.forced) && void 0 !== f) { if (typeof p == typeof f) continue; a(p, f) } (t.sham || f && f.sham) && o(p, "sham", !0), c(n, l, p, t) } } }, function (t, e, n) { var r = n(3), i = n(12), o = n(13), c = n(7), s = n(16), a = n(2), u = n(17), l = Object.getOwnPropertyDescriptor; e.f = r ? l : function (t, e) { if (t = c(t), e = s(e, !0), u) try { return l(t, e) } catch (t) { } if (a(t, e)) return o(!i.f.call(t, e), t[e]) } }, function (t, e, n) { "use strict"; var r = {}.propertyIsEnumerable, i = Object.getOwnPropertyDescriptor, o = i && !r.call({ 1: 2 }, 1); e.f = o ? function (t) { var e = i(this, t); return !!e && e.enumerable } : r }, function (t, e) { t.exports = function (t, e) { return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: e } } }, function (t, e, n) { var r = n(1), i = n(15), o = "".split; t.exports = r((function () { return !Object("z").propertyIsEnumerable(0) })) ? function (t) { return "String" == i(t) ? o.call(t, "") : Object(t) } : Object }, function (t, e) { var n = {}.toString; t.exports = function (t) { return n.call(t).slice(8, -1) } }, function (t, e, n) { var r = n(4); t.exports = function (t, e) { if (!r(t)) return t; var n, i; if (e && "function" == typeof (n = t.toString) && !r(i = n.call(t))) return i; if ("function" == typeof (n = t.valueOf) && !r(i = n.call(t))) return i; if (!e && "function" == typeof (n = t.toString) && !r(i = n.call(t))) return i; throw TypeError("Can't convert object to primitive value") } }, function (t, e, n) { var r = n(3), i = n(1), o = n(33); t.exports = !r && !i((function () { return 7 != Object.defineProperty(o("div"), "a", { get: function () { return 7 } }).a })) }, function (t, e, n) { var r = n(3), i = n(17), o = n(6), c = n(16), s = Object.defineProperty; e.f = r ? s : function (t, e, n) { if (o(t), e = c(e, !0), o(n), i) try { return s(t, e, n) } catch (t) { } if ("get" in n || "set" in n) throw TypeError("Accessors not supported"); return "value" in n && (t[e] = n.value), t } }, function (t, e, n) { var r = n(0), i = n(5), o = n(2), c = n(9), s = n(20), a = n(34), u = a.get, l = a.enforce, f = String(String).split("String"); (t.exports = function (t, e, n, s) { var a = !!s && !!s.unsafe, u = !!s && !!s.enumerable, p = !!s && !!s.noTargetGet; "function" == typeof n && ("string" != typeof e || o(n, "name") || i(n, "name", e), l(n).source = f.join("string" == typeof e ? e : "")), t !== r ? (a ? !p && t[e] && (u = !0) : delete t[e], u ? t[e] = n : i(t, e, n)) : u ? t[e] = n : c(e, n) })(Function.prototype, "toString", (function () { return "function" == typeof this && u(this).source || s(this) })) }, function (t, e, n) { var r = n(21), i = Function.toString; "function" != typeof r.inspectSource && (r.inspectSource = function (t) { return i.call(t) }), t.exports = r.inspectSource }, function (t, e, n) { var r = n(0), i = n(9), o = r["__core-js_shared__"] || i("__core-js_shared__", {});
vendor: 1,205 bytes, line 173
173 t.exports = o }, function (t, e, n) { var r = n(37), i = n(21); (t.exports = function (t, e) { return i[t] || (i[t] = void 0 !== e ? e : {}) })("versions", []).push({ version: "3.6.1", mode: r ? "pure" : "global", copyright: "© 2019 Denis Pushkarev (zloirock.ru)" }) }, function (t, e) { var n = 0, r = Math.random(); t.exports = function (t) { return "Symbol(" + String(void 0 === t ? "" : t) + ")_" + (++n + r).toString(36) } }, function (t, e) { t.exports = {} }, function (t, e, n) { var r = n(2), i = n(7), o = n(43).indexOf, c = n(24); t.exports = function (t, e) { var n, s = i(t), a = 0, u = []; for (n in s) !r(c, n) && r(s, n) && u.push(n); for (; e.length > a;)r(s, n = e[a++]) && (~o(u, n) || u.push(n)); return u } }, function (t, e) { var n = Math.ceil, r = Math.floor; t.exports = function (t) { return isNaN(t = +t) ? 0 : (t > 0 ? r : n)(t) } }, function (t, e) { t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] }, function (t, e) { e.f = Object.getOwnPropertySymbols }, function (t, e, n) { var r = n(0), i = n(22), o = n(2), c = n(23), s = n(30), a = n(55), u = i("wks"), l = r.Symbol, f = a ? l : l && l.
vendor: 4,413 bytes, line 173
173withoutSetter || c; t.exports = function (t) { return o(u, t) || (s && o(l, t) ? u[t] = l[t] : u[t] = f("Symbol." + t)), u[t] } }, function (t, e, n) { var r = n(1); t.exports = !!Object.getOwnPropertySymbols && !r((function () { return !String(Symbol()) })) }, function (t, e, n) { var r = n(10), i = n(47); r({ target: "Object", stat: !0, forced: Object.assign !== i }, { assign: i }) }, function (t, e) { var n; n = function () { return this }(); try { n = n || new Function("return this")() } catch (t) { "object" == typeof window && (n = window) } t.exports = n }, function (t, e, n) { var r = n(0), i = n(4), o = r.document, c = i(o) && i(o.createElement); t.exports = function (t) { return c ? o.createElement(t) : {} } }, function (t, e, n) { var r, i, o, c = n(35), s = n(0), a = n(4), u = n(5), l = n(2), f = n(36), p = n(24), h = s.WeakMap; if (c) { var m = new h, d = m.get, v = m.has, g = m.set; r = function (t, e) { return g.call(m, t, e), e }, i = function (t) { return d.call(m, t) || {} }, o = function (t) { return v.call(m, t) } } else { var E = f("state"); p[E] = !0, r = function (t, e) { return u(t, E, e), e }, i = function (t) { return l(t, E) ? t[E] : {} }, o = function (t) { return l(t, E) } } t.exports = { set: r, get: i, has: o, enforce: function (t) { return o(t) ? i(t) : r(t, {}) }, getterFor: function (t) { return function (e) { var n; if (!a(e) || (n = i(e)).type !== t) throw TypeError("Incompatible receiver, " + t + " required"); return n } } } }, function (t, e, n) { var r = n(0), i = n(20), o = r.WeakMap; t.exports = "function" == typeof o && /native code/.test(i(o)) }, function (t, e, n) { var r = n(22), i = n(23), o = r("keys"); t.exports = function (t) { return o[t] || (o[t] = i(t)) } }, function (t, e) { t.exports = !1 }, function (t, e, n) { var r = n(2), i = n(39), o = n(11), c = n(18); t.exports = function (t, e) { for (var n = i(e), s = c.f, a = o.f, u = 0; u < n.length; u++) { var l = n[u]; r(t, l) || s(t, l, a(e, l)) } } }, function (t, e, n) { var r = n(40), i = n(42), o = n(28), c = n(6); t.exports = r("Reflect", "ownKeys") || function (t) { var e = i.f(c(t)), n = o.f; return n ? e.concat(n(t)) : e } }, function (t, e, n) { var r = n(41), i = n(0), o = function (t) { return "function" == typeof t ? t : void 0 }; t.exports = function (t, e) { return arguments.length < 2 ? o(r[t]) || o(i[t]) : r[t] && r[t][e] || i[t] && i[t][e] } }, function (t, e, n) { var r = n(0); t.exports = r }, function (t, e, n) { var r = n(25), i = n(27).concat("length", "prototype"); e.f = Object.getOwnPropertyNames || function (t) { return r(t, i) } }, function (t, e, n) { var r = n(7), i = n(44), o = n(45), c = function (t) { return function (e, n, c) { var s, a = r(e), u = i(a.length), l = o(c, u); if (t && n != n) { for (; u > l;)if ((s = a[l++]) != s) return !0 } else for (; u > l; l++)if ((t || l in a) && a[l] === n) return t || l || 0; return !t && -1 } }; t.exports = { includes: c(!0), indexOf: c(!1) } }, function (t, e, n) { var r = n(26), i = Math.min; t.exports = function (t) { return t > 0 ? i(r(t), 9007199254740991) : 0 } }, function (t, e, n) { var r = n(26), i = Math.max, o = Math.min; t.exports = function (t, e) { var n = r(t); return n < 0 ? i(n + e, 0) : o(n, e) } }, function (t, e, n) { var r = n(1), i = /#|\.prototype\./, o = function (t, e) { var n = s[c(t)]; return n == u || n != a && ("function" == typeof e ? r(e) : !!e) }, c = o.normalize = function (t) { return String(t).replace(i, ".").toLowerCase() }, s = o.data = {}, a = o.NATIVE = "N", u = o.POLYFILL = "P"; t.exports = o }, function (t, e, n) { "use strict"; var r = n(3), i = n(1), o = n(48), c = n(28), s = n(12), a = n(49), u = n(14), l = Object.assign, f = Object.defineProperty; t.exports = !l || i((function () { if (r && 1 !== l({ b: 1 }, l(f({}, "a", { enumerable: !0, get: function () { f(this, "b", { value: 3, enumerable: !1 }) } }), { b: 2 })).b) return !0; var t = {}, e = {}, n = Symbol(); return t[n] = 7, "abcdefghijklmnopqrst".split("").forEach((function (t) { e[t] = t })), 7 != l({}, t)[n] || "abcdefghijklmnopqrst" != o(l({}, e)).join("") })) ? function (t, e) { for (var n = a(t), i = arguments.length, l = 1, f = c.f, p = s.f; i > l;)for (var h, m = u(arguments[l++]), d = f ? o(m).concat(f(m)) : o(m), v = d.length, g = 0; v > g;)h = d[g++], r && !p.call(m, h) || (n[h] = m[h]); return n } : l }, function (t, e, n) { var r = n(25), i = n(27);
vendor: 4,843 bytes, line 173
173 t.exports = Object.keys || function (t) { return r(t, i) } }, function (t, e, n) { var r = n(8); t.exports = function (t) { return Object(r(t)) } }, function (t, e, n) { "use strict"; var r = n(19), i = n(6), o = n(1), c = n(51), s = RegExp.prototype, a = s.toString, u = o((function () { return "/a/b" != a.call({ source: "a", flags: "b" }) })), l = "toString" != a.name; (u || l) && r(RegExp.prototype, "toString", (function () { var t = i(this), e = String(t.source), n = t.flags; return "/" + e + "/" + String(void 0 === n && t instanceof RegExp && !("flags" in s) ? c.call(t) : n) }), { unsafe: !0 }) }, function (t, e, n) { "use strict"; var r = n(6); t.exports = function () { var t = r(this), e = ""; return t.global && (e += "g"), t.ignoreCase && (e += "i"), t.multiline && (e += "m"), t.dotAll && (e += "s"), t.unicode && (e += "u"), t.sticky && (e += "y"), e } }, function (t, e, n) { "use strict"; var r = n(10), i = n(53), o = n(8); r({ target: "String", proto: !0, forced: !n(56)("includes") }, { includes: function (t) { return !!~String(o(this)).indexOf(i(t), arguments.length > 1 ? arguments[1] : void 0) } }) }, function (t, e, n) { var r = n(54); t.exports = function (t) { if (r(t)) throw TypeError("The method doesn't accept regular expressions"); return t } }, function (t, e, n) { var r = n(4), i = n(15), o = n(29)("match"); t.exports = function (t) { var e; return r(t) && (void 0 !== (e = t[o]) ? !!e : "RegExp" == i(t)) } }, function (t, e, n) { var r = n(30); t.exports = r && !Symbol.sham && "symbol" == typeof Symbol.iterator }, function (t, e, n) { var r = n(29)("match"); t.exports = function (t) { var e = /./; try { "/./"[t](e) } catch (n) { try { return e[r] = !1, "/./"[t](e) } catch (t) { } } return !1 } }, function (t, e, n) { }, , function (t, e, n) { "use strict"; n.r(e); var r, i, o; n(31), n(50), n(52), n(57); function c(t, e, n) { const r = []; for (; t && null !== t.parentElement && (void 0 === n || r.length < n);)t instanceof HTMLElement && t.matches(e) && r.push(t), t = t.parentElement; return r } function s(t, e) { const n = c(t, e, 1); return n.length ? n[0] : null } !function (t) { t[t.Backward = -1] = "Backward", t[t.Forward = 1] = "Forward" }(r || (r = {})), function (t) { t.Left = "left", t.Right = "right" }(i || (i = {})), function (t) { t.Back = "back", t.Close = "close", t.Forward = "forward", t.Navigate = "navigate", t.Open = "open" }(o || (o = {})); const a = { backLinkAfter: "", backLinkBefore: "", keyClose: "", keyOpen: "", position: "right", showBackLink: !0, submenuLinkAfter: "", submenuLinkBefore: "" }; class u { constructor(t, e) { if (this.level = 0, this.isOpen = !1, this.isAnimating = !1, this.lastAction = null, null === t) throw new Error("Argument `elem` must be a valid HTML node"); this.options = Object.assign({}, a, e), this.menuElem = t, this.wrapperElem = document.createElement("div"), this.wrapperElem.classList.add(u.CLASS_NAMES.wrapper); const n = this.menuElem.querySelector("ul"); n && function (t, e) { if (null === t.parentElement) throw Error("`elem` has no parentElement"); t.parentElement.insertBefore(e, t), e.appendChild(t) }(n, this.wrapperElem), this.initMenu(), this.initSubmenus(), this.initEventHandlers(), this.menuElem._slideMenu = this } toggle(t, e = !0) { let n; if (void 0 === t) return this.isOpen ? this.close(e) : this.open(e); if (n = t ? 0 : this.options.position === i.Left ? "-100%" : "100%", this.isOpen = t, e) this.moveSlider(this.menuElem, n); else { const t = this.moveSlider.bind(this, this.menuElem, n); this.runWithoutAnimation(t) } } open(t = !0) { this.triggerEvent(o.Open), this.toggle(!0, t) } close(t = !0) { this.triggerEvent(o.Close), this.toggle(!1, t) } back() { this.navigate(r.Backward) } destroy() { const { submenuLinkAfter: t, submenuLinkBefore: e, showBackLink: n } = this.options; if (t || e) { Array.from(this.wrapperElem.querySelectorAll(".".concat(u.CLASS_NAMES.decorator))).forEach(t => { t.parentElement && t.parentElement.removeChild(t) }) } if (n) { Array.from(this.wrapperElem.querySelectorAll(".".concat(u.CLASS_NAMES.control))).forEach(t => { const e = s(t, "li"); e && e.parentElement && e.parentElement.removeChild(e) }) } !function (t) { const e = t.parentElement; if (null === e) throw Error("`elem` has no parentElement"); for (; t.firstChild;)e.insertBefore(t.firstChild, t); e.removeChild(t) }(this.wrapperElem), this.menuElem.style.cssText = "", this.menuElem.querySelectorAll("ul").forEach(t => t.style.cssText = ""), delete this.menuElem._slideMenu } navigateTo(t) { if (this.triggerEvent(o.Navigate), "string" == typeof t) { const e = document.querySelector(t); if (!(e instanceof HTMLElement)) throw new Error("Invalid parameter `target`. A valid query selector is required."); t = e } Array.from(this.wrapperElem.querySelectorAll(".".concat(u.CLASS_NAMES.active))).forEac
173h(t => { t.style.display = "none", t.classList.remove(u.CLASS_NAMES.active) }); const e = c(t, "ul"), n = e.length - 1; n >= 0 && n !== this.level && (this.level = n, this.moveSlider(this.wrapperElem, 100 * -this.level)), e.forEach(t => { t.style.display = "block", t.classList.add(u.CLASS_NAMES.active) }) } initEventHandlers() { Array.from(this.menuElem.querySelectorAll("a")).forEach(t => t.addEventListener("click", t => { const e = t.target, n = e.matches("a") ? e : s(e, "a"); n && this.navigate(r.Forward, n) })), this.menuElem.addEventListener("transitionend", this.onTransitionEnd.bind(this)), this.wrapperElem.addEventListener("transitionend", this.onTransitionEnd.bind(this)), this.initKeybindings(), this.initSubmenuVisibility() } onTransitionEnd(t) { t.target !== this.menuElem && t.target !== this.wrapperElem || (this.isAnimating = !1, this.lastAction && (this.triggerEvent(this.lastAction, !0), this.lastAction = null)) } initKeybindings() { document.addEventListener("keydown", t => { switch (t.key) { case this.options.keyClose: this.close(); break; case this.options.keyOpen: this.open(); break; default: return }t.preventDefault() }) } initSubmenuVisibility() { this.menuElem.addEventListener("sm.back-after", () => { const t = ".".concat(u.CLASS_NAMES.active, " ").repeat(this.level + 1), e = this.menuElem.querySelector("ul ".concat(t)); e && (e.style.display = "none", e.classList.remove(u.CLASS_NAMES.active)) }) } triggerEvent(t, e = !1) { this.lastAction = t; const n = "sm.".concat(t).concat(e ? "-after" : ""), r = new CustomEvent(n); this.menuElem.dispatchEvent(r) } navigate(t = r.Forward, e) { if (this.isAnimating || t === r.Backward && 0 === this.level) return; const n = -100 * (this.level + t); if (e && null !== e.parentElement && t === r.Forward) { const t = e.parentElement.querySelector("ul"); if (!t) return; t.classList.add(u.CLASS_NAMES.active), t.style.display = "block" } const i = t === r.Forward ? o.Forward : o.Back; this.triggerEvent(i), this.level = this.level + t, this.moveSlider(this.wrapperElem, n) } moveSlider(t, e) { e.toString().includes("%") || (e += "%"), t.style.transform = "translateX(".concat(e, ")"), this.isAnimating = !0 } initMenu() { this.runWithoutAnimation(() => { switch (this.options.position) { case i.Left: Object.assign(this.menuElem.style, { left: 0, right: "auto", transform: "translateX(-100%)" }); break; default: Object.assign(this.menuElem.style, { left: "auto", right: 0 }) }this.menuElem.style.display = "block" }) } runWithoutAnimation(t) { const e = [this.menuElem, this.wrapperElem]; e.forEach(t => t.style.transition = "none"), t(), this.menuElem.offsetHeight, e.forEach(t => t.style.removeProperty("transition")), this.isAnimating = !1 } initSubmenus() { this.menuElem.querySelectorAll("a").forEach(t => { if (null === t.parentElement) return; const e = t.parentElement.querySelector("ul"); if (!e) return; t.addEventListener("click", t => { t.preventDefault() }); const n = t.textContent; if (this.addLinkDecorators(t), this.options.showBackLink) { const { backLinkBefore: t, backLinkAfter: r } = this.options, i = document.createElement("a"); i.href = "#", i.addEventListener("click", t => { t.preventDefault() }), i.innerHTML = t + n + r, i.classList.add(u.CLASS_NAMES.backlink, u.CLASS_NAMES.control), i.setAttribute("data-action", o.Back); const c = document.createElement("li"); c.appendChild(i), e.insertBefore(c, e.firstChild) } }) } addLinkDecorators(t) { const { submenuLinkBefore: e, submenuLinkAfter: n } = this.options; if (e) { const n = document.createElement("span"); n.classList.add(u.CLASS_NAMES.decorator), n.innerHTML = e, t.insertBefore(n, t.firstChild) } if (n) { const e = document.createElement("span"); e.classList.add(u.CLASS_NAMES.decorator), e.innerHTML = n, t.appendChild(e) } return t } } u.NAMESPACE = "slide-menu", u.CLASS_NAMES = { active: "".concat(u.NAMESPACE, "__submenu--active"), backlink: "".concat(u.NAMESPACE, "__backlink"), control: "".concat(u.NAMESPACE, "__control"), decorator: "".concat(u.NAMESPACE, "__decorator"), wrapper: "".concat(u.NAMESPACE, "__slider") }, document.addEventListener("click", t => { if (!(t.target instanceof HTMLElement)) return; const e = t.target.className.includes(u.CLASS_NAMES.control) ? t.target : s(t.target, ".".concat(u.CLASS_NAMES.control)); if (!e || !e.className.includes(u.CLASS_NAMES.control)) return; const n = e.getAttribute("data-target"), r = n && "this" !== n ? document.getElementById(n) : s(e, ".".concat(u.NAMESPACE)); if (!r) throw new Error("Unable to find menu ".concat(n)); const i = r._slideMenu, o = e.getAttribute("data-action"), c = e.getAttribute("data-arg"); i && o && "function" == typeof i[o] && (c ? i[o](c) : i[o]()) }), window.SlideMenu = u }]); 174/****************************************************************************** 175W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\navigation\slide-nav-2\slide-nav-2.js 176******************************************************************************/ 177;/// <reference path="../../../assets/js/util/types.d.ts" /> 178((/** @type {DL_Util_Events_Namespace} */ events) => { 179 events.domContentLoaded(function () { 180 181 if ('dlSlideNavInit' in document.body.dataset) { 182 return; 183 } 184 document.body.dataset.dlSlideNavInit = 'true'; 185 186 const toggles = document.querySelectorAll('[data-nav-toggle]'); 187 188 // a toggle is required, bail if we don't find any 189 if (toggles.length < 1) { 190 return; 191 } 192 193 const openDirection = document.querySelector('[data-open-direction]')?.dataset.openDirection || 'right'; 194 const body = document.body; 195 const navBreakPoint = getComputedStyle(document.documentElement).getPropertyValue('--nav-breakpoint'); 196 const menuEl = document.querySelector('.slide-menu'); 197 198 if (!menuEl) { 199 console.warn('[slide-nav] No .slide-menu found, cannot initialize.'); 200 return; 201 } 202 203 /** @type {HTMLDivElement} */ 204 let menuSliderEl; 205 let menu = null; 206 207 // set the direction modifier 208 body.classList.add(`nav-opens--${openDirection}`); 209 210 // add event listeners to adjust menu height when active menu changes 211 menuEl.addEventListener('sm.navigate-after', menuNavigateListener); 212 menuEl.addEventListener('sm.back', menuNavigateListener); 213 menuEl.addEventListener('sm.forward', menuNavigateListener); 214 215 function menuNavigateListener(ev) { 216 const eventType = ev.type; 217 218 if (menuSliderEl) { 219 // using `:scope` so that the `>` selector works to get the top item 220 const activeMenus = menuSliderEl.querySelectorAll(':scope > .nav__items, .slide-menu__submenu--active'); 221 const activeMenu = activeMenus[activeMenus.length - (eventType === 'sm.back' ? 2 : 1)]; 222 223 const newHeight = activeMenu ? 224 `${activeMenu.clientHeight}px` : 225 ''; 226 227 menuSliderEl.style.height = newHeight; 228 229 console.debug(`[slide-nav] (${eventType}) new height ${newHeight}`, activeMenu, activeMenus); 230 } else { 231 console.debug('[slide-nav] no slider'); 232 } 233 } 234 235 function toggleNav() { 236 console.debug('[slide-nav] toggleNav', toggles);
237 toggles.forEach(toggle => 238 toggle.classList.toggle('header__nav-toggle--open') 239 ); 240 body.classList.toggle('openNav'); 241 242 if (openDirection) { 243 body.classList.toggle(`openNav--${openDirection}`); 244 } 245 246 if (menu) { 247 menu.toggle(); 248 } 249 } 250 251 function setupMenu() { 252 if (window.matchMedia(`(min-width: ${navBreakPoint})`).matches) { 253 if (menu) { 254 menu.destroy(); 255 menu = null; 256 menuSliderEl = null; 257 } 258 } 259 else { 260 if (!menu) { 261 menu = new SlideMenu(menuEl, { 262 keyClose: 'Escape', 263 submenuLinkAfter: '<span style="margin-left: 1em;"><\/span>', 264 backLinkBefore: '<span style="margin-right: 1em;"><\/span>', 265 position: openDirection, 266 }); 267 268 // get the slider element created by SlideMenu 269 menuSliderEl = menuEl.querySelector('.slide-menu__slider'); 270 } 271 } 272 } 273 274 // Calling the function after click event occurs 275 toggles.forEach(toggle => 276 toggle.addEventListener('click', function () { 277 toggleNav(); 278 }) 279 ); 280 281 window.addEventListener('resize', setupMenu); 282 setupMenu(); // initial load 283 }); 284})(dl.util.namespace('dl.util.events')); 285/****************************************************************************** 286W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\footer\footer-2\footer-2.js 287******************************************************************************/ 288;(function () { 289 console.debug('initializing dynamic-css-var --footer-height'); 290 291 /** 292 * Sets the --footer-height property based on the (footer) offsetHeight. 293 */ 294 function setFooterHeight(height) { 295 const root = document.querySelector(':root'); 296 root.style.setProperty('--footer-height', height + 'px'); 297 } 298 299 /** 300 * Initializes the ResizeObserver to change the --footer-height property. 301 * @param {HTMLElement} footer 302 */ 303 function initFooterHeightObserver(footer) { 304 try { 305 // set the initial height because the observer doesn't always fire immediately 306 setFooterHeight(footer?.offsetHeight || 0); 307 308 const footerObserver = new ResizeObserver(entries => { 309 // we only use the first entry 310 const footerEntry = entries && entries[0]; 311 312 if (footerEntry) { 313 setFooterHeight(footerEntry.target.offsetHeight); 314 } 315 }); 316 317 footerObserver.observe(footer, { box: 'border-box' }); 318 } catch (ex) { 319 console.debug('Could not set --footer-height observer.', ex); 320 } 321 } 322 323 function init() { 324 const footer = document.querySelector('footer'); 325 326 // only run the rest if we have a footer 327 if (footer) { 328 initFooterHeightObserver(footer); 329 } 330 } 331 332 // no dependencies, call immediately 333 init(); 334})(); 335/****************************************************************************** 336W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\_func\pushup\pushup.js 337******************************************************************************/ 338; 339/// <reference path="../../../assets/js/util/types.d.ts" /> 340((/** @type {DL_Util_Events_Namespace} */ events) => { 341 events.domContentLoaded(function () { 342 const pushup = document.querySelectorAll('.pushup'); 343 const spacing = { 344 rootMargin: '-50px 0px -20%' 345 }; 346 347 const observer = new IntersectionObserver(function (entries, self) { 348 entries.forEach(entry => { 349 if (entry.isIntersecting) { 350 entry.target.classList.add('pushed'); 351 self.unobserve(entry.target); 352 } 353 }); 354 }, spacing); 355 356 pushup.forEach(push => { 357 observer.observe(push); 358 }); 359 });
360})(dl.util.namespace('dl.util.events')); 361/****************************************************************************** 362W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\_func\pushright\pushright.js 363******************************************************************************/ 364; 365/// <reference path="../../../assets/js/util/types.d.ts" /> 366((/** @type {DL_Util_Events_Namespace} */ events) => { 367 events.domContentLoaded(function () { 368 const pushright = document.querySelectorAll('.pushright'); 369 const spacing = { 370 rootMargin: '-50px 0px -20%' 371 }; 372 373 const observer = new IntersectionObserver(function (entries, self) { 374 entries.forEach(entry => { 375 if (entry.isIntersecting) { 376 entry.target.classList.add('pushedright'); 377 self.unobserve(entry.target); 378 } 379 }); 380 }, spacing); 381 382 pushright.forEach(pushright => { 383 observer.observe(pushright); 384 }); 385 }); 386})(dl.util.namespace('dl.util.events')); 387/****************************************************************************** 388W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\_func\pushleft\pushleft.js 389******************************************************************************/ 390; 391/// <reference path="../../../assets/js/util/types.d.ts" /> 392((/** @type {DL_Util_Events_Namespace} */ events) => { 393 events.domContentLoaded(function () { 394 const pushleft = document.querySelectorAll('.pushleft'); 395 const spacing = { 396 rootMargin: '-50px 0px -20%' 397 }; 398 399 const observer = new IntersectionObserver(function (entries, self) { 400 entries.forEach(entry => { 401 if (entry.isIntersecting) { 402 entry.target.classList.add('pushedleft'); 403 self.unobserve(entry.target); 404 } 405 }); 406 }, spacing); 407 408 pushleft.forEach(pushleft => { 409 observer.observe(pushleft); 410 }); 411 }); 412})(dl.util.namespace('dl.util.events')); 413/****************************************************************************** 414W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\_func\fadein\fadein.js 415******************************************************************************/ 416; 417/// <reference path="../../../assets/js/util/types.d.ts" /> 418((/** @type {DL_Util_Events_Namespace} */ events) => { 419 events.domContentLoaded(function () { 420 const fadein = document.querySelectorAll('.fadein'); 421 const spacing = { 422 rootMargin: '-50px 0px -20%' 423 }; 424 425 const observer = new IntersectionObserver(function (entries, self) { 426 entries.forEach(entry => { 427 if (entry.isIntersecting) { 428 entry.target.classList.add('faded'); 429 self.unobserve(entry.target); 430 } 431 }); 432 }, spacing); 433 434 fadein.forEach(fade => { 435 observer.observe(fade); 436 }); 437 }); 438})(dl.util.namespace('dl.util.events')); 439/****************************************************************************** 440W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\_func\pushdown\pushdown.js 441******************************************************************************/ 442; 443/// <reference path="../../../assets/js/util/types.d.ts" /> 444((/** @type {DL_Util_Events_Namespace} */ events) => { 445 events.domContentLoaded(function () { 446 const pushdown = document.querySelectorAll('.pushdown'); 447 const spacing = { 448 rootMargin: '-50px 0px -20%' 449 }; 450 451 const observer = new IntersectionObserver(function (entries, self) { 452 entries.forEach(entry => { 453 if (entry.isIntersecting) { 454 entry.target.classList.add('pushed-down'); 455 self.unobserve(entry.target); 456 } 457 }); 458 }, spacing); 459 460 pushdown.forEach(push => { 461 observer.observe(push); 462 }); 463 });
464})(dl.util.namespace('dl.util.events')); 465/****************************************************************************** 466W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\_func\fadeout\fadeout.js 467******************************************************************************/ 468;/// <reference path="../../../assets/js/util/types.d.ts" /> 469 470(/** @type {DL_Util_Events_Namespace} */ events => { 471 events.domContentLoaded(function () { 472 const fadeout = document.querySelectorAll('.fadeout'); 473 474 const spacing = { 475 rootMargin: '-40% 0px 0px 0px' 476 }; 477 478 const observer = new IntersectionObserver(function (entries, self) { 479 entries.forEach(entry => { 480 if (!entry.isIntersecting) { // Check if the element is not intersecting 481 entry.target.classList.add('faded-out'); 482 self.unobserve(entry.target); 483 } 484 }); 485 }, spacing); 486 487 fadeout.forEach(fade=> { 488 observer.observe(fade); 489 }); 490 }); 491 })(dl.util.namespace('dl.util.events')); 492/****************************************************************************** 493W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\assets\js\flickity.pkgd.min.js 494******************************************************************************/ 495;/*! 496 * Flickity PACKAGED v2.2.3 497 * Touch, responsive, flickable carousels 498 * 499 * Licensed GPLv3 for open source use 500 * or Flickity Commercial License for commercial use 501 * 502 * https://flickity.metafizzy.co 503 * Copyright 2015-2021 Metafizzy 504 */ 505(function(e,i){if(typeof define=="function"&&define.amd){define("jquery-bridget/jquery-bridget",["jquery"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("jquery"))}else{e.jQueryBridget=i(e,e.jQuery)}})(window,function t(e,r){"use strict";var o=Array.prototype.slice;var i=e.console;var u=typeof i=="undefined"?function(){}:function(t){i.error(t)};function n(h,s,c){c=c||r||e.jQuery;if(!c){return}if(!s.prototype.option){s.prototype.option=function(t){if(!c.isPlainObject(t)){return}this.options=c.extend(true,this.options,t)}}c.fn[h]=function(t){if(typeof t=="string"){var e=o.call(arguments,1);return i(this,t,e)}n(this,t);return this};function i(t,r,o){var a;var l="$()."+h+'("'+r+'")';t.each(function(t,e){var i=c.data(e,h);if(!i){u(h+" not initialized. Cannot call methods, i.e. "+l);return}var n=i[r];if(!n||r.charAt(0)=="_"){u(l+" is not a valid method");return}var s=n.apply(i,o);a=a===undefined?s:a});return a!==undefined?a:t}function n(t,n){t.each(function(t,e){var i=c.data(e,h);if(i){i.option(n);i._init()}else{i=new s(e,n);c.data(e,h,i)}})}a(c)}function a(t){if(!t||t&&t.bridget){return}t.bridget=n}a(r||e.jQuery);return n});(function(t,e){if(typeof define=="function"&&define.amd){define("ev-emitter/ev-emitter",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t.EvEmitter=e()}})(typeof window!="undefined"?window:this,function(){function t(){}var e=t.prototype;e.on=function(t,e){if(!t||!e){return}var i=this._events=this._events||{};var n=i[t]=i[t]||[];if(n.indexOf(e)==-1){n.push(e)}return this};e.once=function(t,e){if(!t||!e){return}this.on(t,e);var i=this._onceEvents=this._onceEvents||{};var n=i[t]=i[t]||{};n[e]=true;return this};e.off=function(t,e){var i=this._events&&this._events[t];if(!i||!i.length){return}var n=i.indexOf(e);if(n!=-1){i.splice(n,1)}return this};e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(!i||!i.length){return}i=i.slice(0);e=e||[];var n=this._onceEvents&&this._onceEvents[t];for(var s=0;s<i.length;s++){var r=i[s];var o=n&&n[r];if(o){this.off(t,r);delete n[r]}r.apply(this,e)}return this};e.allOff=function(){delete this._events;delete this._onceEvents};return t}); 506/*! 507 * getSize v2.0.3 508 * measure size of elements 509 * MIT license 510 */ 511(function(t,e){if(typeof define=="function"&&define.amd){define("get-size/get-size",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t.getSize=e()}})(window,function t(){"use strict";function m(t){var e=parseFloat(t);var i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}var i=typeof console=="undefined"?e:function(t){console.error(t)};var y=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];var b=y.length;function E(){var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0};for(var e=0;e<b;e++){var i=y[e];t[i]=0}return t}function S(t){var e=getComputedStyle(t);if(!e){i("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? "+"See https://bit.ly/getsizebug1")}return e}var n=false;var C;function x(){if(n){return}n=true;var t=document.createElement("div");t.style.width="200px";t.style.padding="1px 2px 3px 4px";t.style.borderStyle="solid";t.style.borderWidth="1px 2px 3px 4px";t.style.boxSizing="border-box";var e=document.body||document.documentElement;e.appendChild(t);var i=S(t);C=Math.round(m(i.width))==200;s.isBoxSizeOuter=C;e.removeChild(t)}function s(t){x();if(typeof t=="string"){t=document.querySelector(t)}if(!t||typeof t!="object"||!t.nodeType){return}var e=S(t);if(e.display=="none"){return E()}var i={};i.width=t.offsetWidth;i.height=t.offsetHeight;var n=i.isBorderBox=e.boxSizing=="border-box";for(var s=0;s<b;s++){var r=y[s];var o=e[r];var a=parseFloat(o);i[r]=!isNaN(a)?a:0}var l=i.paddingLeft+i.paddingRight;var h=i.paddingTop+i.paddingBottom;var c=i.marginLeft+i.marginRight;var u=i.marginTop+i.marginBottom;var d=i.borderLeftWidth+i.borderRightWidth;var f=i.borderTopWidth+i.borderBottomWidth;var p=n&&C;var v=m(e.width);if(v!==false){i.width=v+(p?0:l+d)}var g=m(e.height);if(g!==false){i.height=g+(p?0:h+f)}i.innerWidth=i.width-(l+d);i.innerHeight=i.height-(h+f);i.outerWidth=i.width+c;i.outerHeight=i.height+u;return i}return s});(function(t,e){"use strict";if(typeof define=="function"&&define.amd){define("desandro-matches-selector/matches-selector",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t.matchesSelector=e()}})(window,function t(){"use strict";var n=function(){var t=window.Element.prototype;if(t.matches){return"matches"}if(t.matchesSelector){return"matchesSelector"}var e=["webkit","moz","ms","o"];for(var i=0;i<e.length;i++){var n=e[i];var s=n+"MatchesSelector";if(t[s]){return s}}}();return function t(e,i){return e[n](i)}});(function(e,i){if(typeof define=="function"&&define.amd){define("fizzy-ui-utils/utils",["de
511sandro-matches-selector/matches-selector"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("desandro-matches-selector"))}else{e.fizzyUIUtils=i(e,e.matchesSelector)}})(window,function t(h,r){var c={};c.extend=function(t,e){for(var i in e){t[i]=e[i]}return t};c.modulo=function(t,e){return(t%e+e)%e};var i=Array.prototype.slice;c.makeArray=function(t){if(Array.isArray(t)){return t}if(t===null||t===undefined){return[]}var e=typeof t=="object"&&typeof t.length=="number";if(e){return i.call(t)}return[t]};c.removeFrom=function(t,e){var i=t.indexOf(e);if(i!=-1){t.splice(i,1)}};c.getParent=function(t,e){while(t.parentNode&&t!=document.body){t=t.parentNode;if(r(t,e)){return t}}};c.getQueryElement=function(t){if(typeof t=="string"){return document.querySelector(t)}return t};c.handleEvent=function(t){var e="on"+t.type;if(this[e]){this[e](t)}};c.filterFindElements=function(t,n){t=c.makeArray(t);var s=[];t.forEach(function(t){if(!(t instanceof HTMLElement)){return}if(!n){s.push(t);return}if(r(t,n)){s.push(t)}var e=t.querySelectorAll(n);for(var i=0;i<e.length;i++){s.push(e[i])}});return s};c.debounceMethod=function(t,e,n){n=n||100;var s=t.prototype[e];var r=e+"Timeout";t.prototype[e]=function(){var t=this[r];clearTimeout(t);var e=arguments;var i=this;this[r]=setTimeout(function(){s.apply(i,e);delete i[r]},n)}};c.docReady=function(t){var e=document.readyState;if(e=="complete"||e=="interactive"){setTimeout(t)}else{document.addEventListener("DOMContentLoaded",t)}};c.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var u=h.console;c.htmlInit=function(a,l){c.docReady(function(){var t=c.toDashed(l);var s="data-"+t;var e=document.querySelectorAll("["+s+"]");var i=document.querySelectorAll(".js-"+t);var n=c.makeArray(e).concat(c.makeArray(i));var r=s+"-options";var o=h.jQuery;n.forEach(function(e){var t=e.getAttribute(s)||e.getAttribute(r);var i;try{i=t&&JSON.parse(t)}catch(t){if(u){u.error("Error parsing "+s+" on "+e.className+": "+t)}return}var n=new a(e,i);if(o){o.data(e,l,n)}})})};return c});(function(e,i){if(typeof define=="function"&&define.amd){define("flickity/js/cell",["get-size/get-size"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("get-size"))}else{e.Flickity=e.Flickity||{};if(typeof e.Flickity.Cell==="function"){return}e.Flickity.Cell=i(e,e.getSize)}})(window,function t(e,i){function n(t,e){this.element=t;this.parent=e;this.create()}var s=n.prototype;s.create=function(){this.element.style.position="absolute";this.element.setAttribute("aria-hidden","true");this.x=0;this.shift=0};s.destroy=function(){this.unselect();this.element.style.position="";var t=this.parent.originSide;this.element.style[t]="";this.element.removeAttribute("aria-hidden")};s.getSize=function(){this.size=i(this.element)};s.setPosition=function(t){this.x=t;this.updateTarget();this.renderPosition(t)};s.updateTarget=s.setDefaultTarget=function(){var t=this.parent.originSide=="left"?"marginLeft":"marginRight";this.target=this.x+this.size[t]+this.size.width*this.parent.cellAlign};s.renderPosition=function(t){var e=this.parent.originSide;this.element.style[e]=this.parent.getPositionValue(t)};s.select=function(){this.element.classList.add("is-selected");this.element.removeAttribute("aria-hidden")};s.unselect=function(){this.element.classList.remove("is-selected");this.element.setAttribute("aria-hidden","true")};s.wrapShift=function(t){this.shift=t;this.renderPosition(this.x+this.parent.slideableWidth*t)};s.remove=function(){this.element.parentNode.removeChild(this.element)};return n});(function(t,e){if(typeof define=="function"&&define.amd){define("flickity/js/slide",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t.Flickity=t.Flickity||{};if(typeof t.Flickity.Slide==="function"){return}t.Flickity.Slide=e()}})(window,function t(){function e(t){this.parent=t;this.isOriginLeft=t.originSide=="left";this.cells=[];this.outerWidth=0;this.height=0}var i=e.prototype;i.addCell=function(t){this.cells.push(t);this.outerWidth+=t.size.outerWidth;this.height=Math.max(t.size.outerHeight,this.height);if(this.cells.length==1){this.x=t.x;var e=this.isOriginLeft?"marginLeft":"marginRight";this.firstMargin=t.size[e]}};i.updateTarget=function(){var t=this.isOriginLeft?"marginRight":"marginLeft";var e=this.getLastCell();var i=e?e.size[t]:0;var n=this.outerWidth-(this.firstMargin+i);this.target=this.x+this.firstMargin+n*this.parent.cellAlign};i.getLastCell=function(){return this.cells[this.cells.length-1]};
511i.select=function(){this.cells.forEach(function(t){t.select()})};i.unselect=function(){this.cells.forEach(function(t){t.unselect()})};i.getCellElements=function(){return this.cells.map(function(t){return t.element})};return e});(function(e,i){if(typeof define=="function"&&define.amd){define("flickity/js/animate",["fizzy-ui-utils/utils"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("fizzy-ui-utils"))}else{e.Flickity=e.Flickity||{};e.Flickity.animatePrototype=i(e,e.fizzyUIUtils)}})(window,function t(e,i){var n={};n.startAnimation=function(){if(this.isAnimating){return}this.isAnimating=true;this.restingFrames=0;this.animate()};n.animate=function(){this.applyDragForce();this.applySelectedAttraction();var t=this.x;this.integratePhysics();this.positionSlider();this.settle(t);if(this.isAnimating){var e=this;requestAnimationFrame(function t(){e.animate()})}};n.positionSlider=function(){var t=this.x;if(this.options.wrapAround&&this.cells.length>1){t=i.modulo(t,this.slideableWidth);t-=this.slideableWidth;this.shiftWrapCells(t)}this.setTranslateX(t,this.isAnimating);this.dispatchScrollEvent()};n.setTranslateX=function(t,e){t+=this.cursorPosition;t=this.options.rightToLeft?-t:t;var i=this.getPositionValue(t);this.slider.style.transform=e?"translate3d("+i+",0,0)":"translateX("+i+")"};n.dispatchScrollEvent=function(){var t=this.slides[0];if(!t){return}var e=-this.x-t.target;var i=e/this.slidesWidth;this.dispatchEvent("scroll",null,[i,e])};n.positionSliderAtSelected=function(){if(!this.cells.length){return}this.x=-this.selectedSlide.target;this.velocity=0;this.positionSlider()};n.getPositionValue=function(t){if(this.options.percentPosition){return Math.round(t/this.size.innerWidth*1e4)*.01+"%"}else{return Math.round(t)+"px"}};n.settle=function(t){var e=!this.isPointerDown&&Math.round(this.x*100)==Math.round(t*100);if(e){this.restingFrames++}if(this.restingFrames>2){this.isAnimating=false;delete this.isFreeScrolling;this.positionSlider();this.dispatchEvent("settle",null,[this.selectedIndex])}};n.shiftWrapCells=function(t){var e=this.cursorPosition+t;this._shiftCells(this.beforeShiftCells,e,-1);var i=this.size.innerWidth-(t+this.slideableWidth+this.cursorPosition);this._shiftCells(this.afterShiftCells,i,1)};n._shiftCells=function(t,e,i){for(var n=0;n<t.length;n++){var s=t[n];var r=e>0?i:0;s.wrapShift(r);e-=s.size.outerWidth}};n._unshiftCells=function(t){if(!t||!t.length){return}for(var e=0;e<t.length;e++){t[e].wrapShift(0)}};n.integratePhysics=function(){this.x+=this.velocity;this.velocity*=this.getFrictionFactor()};n.applyForce=function(t){this.velocity+=t};n.getFrictionFactor=function(){return 1-this.options[this.isFreeScrolling?"freeScrollFriction":"friction"]};n.getRestingPosition=function(){return this.x+this.velocity/(1-this.getFrictionFactor())};n.applyDragForce=function(){if(!this.isDraggable||!this.isPointerDown){return}var t=this.dragX-this.x;var e=t-this.velocity;this.applyForce(e)};n.applySelectedAttraction=function(){var t=this.isDraggable&&this.isPointerDown;if(t||this.isFreeScrolling||!this.slides.length){return}var e=this.selectedSlide.target*-1-this.x;var i=e*this.options.selectedAttraction;this.applyForce(i)};return n});(function(o,a){if(typeof define=="function"&&define.amd){define("flickity/js/flickity",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./cell","./slide","./animate"],function(t,e,i,n,s,r){return a(o,t,e,i,n,s,r)})}else if(typeof module=="object"&&module.exports){module.exports=a(o,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./cell"),require("./sli
511de"),require("./animate"))}else{var t=o.Flickity;if(typeof t==="function"){return}o.Flickity=a(o,o.EvEmitter,o.getSize,o.fizzyUIUtils,t.Cell,t.Slide,t.animatePrototype)}})(window,function t(n,e,i,a,s,o,r){var l=n.jQuery;var h=n.getComputedStyle;var c=n.console;function u(t,e){t=a.makeArray(t);while(t.length){e.appendChild(t.shift())}}var d=0;var f={};function p(t,e){var i=a.getQueryElement(t);if(!i){if(c){c.error("Bad element for Flickity: "+(i||t))}return}this.element=i;if(this.element.flickityGUID){var n=f[this.element.flickityGUID];if(n)n.option(e);return n}if(l){this.$element=l(this.element)}this.options=a.extend({},this.constructor.defaults);this.option(e);this._create()}p.defaults={accessibility:true,cellAlign:"center",freeScrollFriction:.075,friction:.28,namespaceJQueryEvents:true,percentPosition:true,resize:true,selectedAttraction:.025,setGallerySize:true};p.createMethods=[];var v=p.prototype;a.extend(v,e.prototype);v._create=function(){var t=this.guid=++d;this.element.flickityGUID=t;f[t]=this;this.selectedIndex=0;this.restingFrames=0;this.x=0;this.velocity=0;this.originSide=this.options.rightToLeft?"right":"left";this.viewport=document.createElement("div");this.viewport.className="flickity-viewport";this._createSlider();if(this.options.resize||this.options.watchCSS){n.addEventListener("resize",this)}for(var e in this.options.on){var i=this.options.on[e];this.on(e,i)}p.createMethods.forEach(function(t){this[t]()},this);if(this.options.watchCSS){this.watchCSS()}else{this.activate()}};v.option=function(t){a.extend(this.options,t)};v.activate=function(){if(this.isActive){return}this.isActive=true;this.element.classList.add("flickity-enabled");if(this.options.rightToLeft){this.element.classList.add("flickity-rtl")}this.getSize();var t=this._filterFindCellElements(this.element.children);u(t,this.slider);this.viewport.appendChild(this.slider);this.element.appendChild(this.viewport);this.reloadCells();if(this.options.accessibility){this.element.tabIndex=0;this.element.addEventListener("keydown",this)}this.emitEvent("activate");this.selectInitialIndex();this.isInitActivated=true;this.dispatchEvent("ready")};v._createSlider=function(){var t=document.createElement("div");t.className="flickity-slider";t.style[this.originSide]=0;this.slider=t};v._filterFindCellElements=function(t){return a.filterFindElements(t,this.options.cellSelector)};v.reloadCells=function(){this.cells=this._makeCells(this.slider.children);this.positionCells();this._getWrapShiftCells();this.setGallerySize()};v._makeCells=function(t){var e=this._filterFindCellElements(t);var i=e.map(function(t){return new s(t,this)},this);return i};v.getLastCell=function(){return this.cells[this.cells.length-1]};v.getLastSlide=function(){return this.slides[this.slides.length-1]};v.positionCells=function(){this._sizeCells(this.cells);this._positionCells(0)};v._positionCells=function(t){t=t||0;this.maxCellHeight=t?this.maxCellHeight||0:0;var e=0;if(t>0){var i=this.cells[t-1];e=i.x+i.size.outerWidth}var n=this.cells.length;for(var s=t;s<n;s++){var r=this.cells[s];r.setPosition(e);e+=r.size.outerWidth;this.maxCellHeight=Math.max(r.size.outerHeight,this.maxCellHeight)}this.slideableWidth=e;this.updateSlides();this._containSlides();this.slidesWidth=n?this.getLastSlide().target-this.slides[0].target:0};v._sizeCells=function(t){t.forEach(function(t){t.getSize()})};v.updateSlides=function(){this.slides=[];if(!this.cells.length){return}var n=new o(this);this.slides.push(n);var t=this.originSide=="left";var s=t?"marginRight":"marginLeft";var r=this._getCanCellFit();this.cells.forEach(function(t,e){if(!n.cells.length){n.addCell(t);return}var i=n.outerWidth-n.firstMargin+(t.size.outerWidth-t.size[s]);if(r.call(this,e,i)){n.addCell(t)}else{n.updateTarget();n=new o(this);this.slides.push(n);n.addCell(t)}},this);n.updateTarget();this.updateSelectedSlide()};v._getCanCellFit=function(){var t=this.options.groupCells;if(!t){return function(){return false}}else if(typeof t=="number"){var e=parseInt(t,10);return function(t){return t%e!==0}}var i=typeof t=="string"&&t.match(/^(\d+)%$/);var n=i?parseInt(i[1],10)/100:1;return function(t,e){return e<=(this.size.innerWidth+1)*n}};v._init=v.reposition=function(){this.positionCells();this.positionSliderAtSelected()};v.getSize=function(){this.size=i(this.element);this.setCellAlign();this.cursorPosition=this.size.innerWidth*this.cellAlign};var g={center:{left:.5,right:.5},left:{left:0,right:1},right:{right:0,left:1}};v.setCellAlign=function(){var t=g[this.options.cellAlign];this.cellAlign=t?t[this.originSide]:this.options.cellAlign};v.setGallerySize=function(){if(this.options.setGallerySize){var t=this.options.adaptiveHeight&&this.selectedSlide?this.selectedSlide.height:this.maxCellHeight;this.viewport.style.height=t+"px"}};v._getWrapShiftCells=function(){if(!this.options.wrapAround){return}this._unshiftCells(this.beforeShiftCells);this._unshiftCells(this.afterShiftCells);var t=this.cursorPosition;var e=this.cells.length-1;this.beforeShiftCells=this._getGapCells(t,e,-1);
511t=this.size.innerWidth-this.cursorPosition;this.afterShiftCells=this._getGapCells(t,0,1)};v._getGapCells=function(t,e,i){var n=[];while(t>0){var s=this.cells[e];if(!s){break}n.push(s);e+=i;t-=s.size.outerWidth}return n};v._containSlides=function(){if(!this.options.contain||this.options.wrapAround||!this.cells.length){return}var t=this.options.rightToLeft;var e=t?"marginRight":"marginLeft";var i=t?"marginLeft":"marginRight";var n=this.slideableWidth-this.getLastCell().size[i];var s=n<this.size.innerWidth;var r=this.cursorPosition+this.cells[0].size[e];var o=n-this.size.innerWidth*(1-this.cellAlign);this.slides.forEach(function(t){if(s){t.target=n*this.cellAlign}else{t.target=Math.max(t.target,r);t.target=Math.min(t.target,o)}},this)};v.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;this.emitEvent(t,n);if(l&&this.$element){t+=this.options.namespaceJQueryEvents?".flickity":"";var s=t;if(e){var r=new l.Event(e);r.type=t;s=r}this.$element.trigger(s,i)}};v.select=function(t,e,i){if(!this.isActive){return}t=parseInt(t,10);this._wrapSelect(t);if(this.options.wrapAround||e){t=a.modulo(t,this.slides.length)}if(!this.slides[t]){return}var n=this.selectedIndex;this.selectedIndex=t;this.updateSelectedSlide();if(i){this.positionSliderAtSelected()}else{this.startAnimation()}if(this.options.adaptiveHeight){this.setGallerySize()}this.dispatchEvent("select",null,[t]);if(t!=n){this.dispatchEvent("change",null,[t])}this.dispatchEvent("cellSelect")};v._wrapSelect=function(t){var e=this.slides.length;var i=this.options.wrapAround&&e>1;if(!i){return t}var n=a.modulo(t,e);var s=Math.abs(n-this.selectedIndex);var r=Math.abs(n+e-this.selectedIndex);var o=Math.abs(n-e-this.selectedIndex);if(!this.isDragSelect&&r<s){t+=e}else if(!this.isDragSelect&&o<s){t-=e}if(t<0){this.x-=this.slideableWidth}else if(t>=e){this.x+=this.slideableWidth}};v.previous=function(t,e){this.select(this.selectedIndex-1,t,e)};v.next=function(t,e){this.select(this.selectedIndex+1,t,e)};v.updateSelectedSlide=function(){var t=this.slides[this.selectedIndex];if(!t){return}this.unselectSelectedSlide();this.selectedSlide=t;t.select();this.selectedCells=t.cells;this.selectedElements=t.getCellElements();this.selectedCell=t.cells[0];this.selectedElement=this.selectedElements[0]};v.unselectSelectedSlide=function(){if(this.selectedSlide){this.selectedSlide.unselect()}};v.selectInitialIndex=function(){var t=this.options.initialIndex;if(this.isInitActivated){this.select(this.selectedIndex,false,true);return}if(t&&typeof t=="string"){var e=this.queryCell(t);if(e){this.selectCell(t,false,true);return}}var i=0;if(t&&this.slides[t]){i=t}this.select(i,false,true)};v.selectCell=function(t,e,i){var n=this.queryCell(t);if(!n){return}var s=this.getCellSlideIndex(n);this.select(s,e,i)};v.getCellSlideIndex=function(t){for(var e=0;e<this.slides.length;e++){var i=this.slides[e];var n=i.cells.indexOf(t);if(n!=-1){return e}}};v.getCell=function(t){for(var e=0;e<this.cells.length;e++){var i=this.cells[e];if(i.element==t){return i}}};v.getCells=function(t){t=a.makeArray(t);var i=[];t.forEach(function(t){var e=this.getCell(t);if(e){i.push(e)}},this);return i};v.getCellElements=function(){return this.cells.map(function(t){return t.element})};v.getParentCell=function(t){var e=this.getCell(t);if(e){return e}t=a.getParent(t,".flickity-slider > *");return this.getCell(t)};v.getAdjacentCellElements=function(t,e){if(!t){return this.selectedSlide.getCellElements()}e=e===undefined?this.selectedIndex:e;var i=this.slides.length;if(1+t*2>=i){return this.getCellElements()}var n=[];for(var s=e-t;s<=e+t;s++){var r=this.options.wrapAround?a.modulo(s,i):s;var o=this.slides[r];if(o){n=n.concat(o.getCellElements())}}return n};v.queryCell=function(t){if(typeof t=="number"){return this.cells[t]}if(typeof t=="string"){if(t.match(/^[#.]?[\d/]/)){return}t=this.element.querySelector(t)}return this.getCell(t)};v.uiChange=function(){this.emitEvent("uiChange")};v.childUIPointerDown=function(t){ 512// HACK iOS does not allow touch events to bubble up?! 513if(t.type!="touchstart"){t.preventDefault()}this.focus()};v.onresize=function(){this.watchCSS();this.resize()};a.debounceMethod(p,"onresize",150);v.resize=function(){if(!this.isActive){return}this.getSize();if(this.options.wrapAround){this.x=a.modulo(this.x,this.slideableWidth)}this.positionCells();this._getWrapShiftCells();this.setGallerySize();this.emitEvent("resize");var t=this.selectedElements&&this.selectedElements[0];this.selectCell(t,false,true)};v.watchCSS=function(){var t=this.options.watchCSS;if(!t){return}var e=h(this.element,":after").content;if(e.indexOf("flickity")!=-1){this.activate()}else{this.deactivate()}};v.onkeydown=function(t){var e=document.activeElement&&document.activeElement!=this.element;if(!this.options.accessibility||e){return}var i=p.keyboardHandlers[t.keyCode];if(i){i.call(this)}};p.keyboardHandlers={37:function(){var t=this.options.rightToLeft?"next":"previous";this.uiChange();this[t]()},39:function(){var t=this.options.rightToLeft?"previous":"next";this.uiChange();this[t]()}};v.focus=function(){var t=n.pageYOffset;this.element.focus({preventScroll:true});if(n.pageYOffset!=t){n.scrollTo(n.pageXOffset,t)}};v.deactivate=function(){if(!this.isActive){return}this.element.classList.remove("flickity-enabled");this.element.classList.remove("flickity-rtl");this.unselectSelectedSlide();
513this.cells.forEach(function(t){t.destroy()});this.element.removeChild(this.viewport);u(this.slider.children,this.element);if(this.options.accessibility){this.element.removeAttribute("tabIndex");this.element.removeEventListener("keydown",this)}this.isActive=false;this.emitEvent("deactivate")};v.destroy=function(){this.deactivate();n.removeEventListener("resize",this);this.allOff();this.emitEvent("destroy");if(l&&this.$element){l.removeData(this.element,"flickity")}delete this.element.flickityGUID;delete f[this.guid]};a.extend(v,r);p.data=function(t){t=a.getQueryElement(t);var e=t&&t.flickityGUID;return e&&f[e]};a.htmlInit(p,"flickity");if(l&&l.bridget){l.bridget("flickity",p)}p.setJQuery=function(t){l=t};p.Cell=s;p.Slide=o;return p}); 514/*! 515 * Unipointer v2.4.0 516 * base class for doing one thing with pointer event 517 * MIT license 518 */ 519(function(e,i){if(typeof define=="function"&&define.amd){define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("ev-emitter"))}else{e.Unipointer=i(e,e.EvEmitter)}})(window,function t(s,e){function i(){}function n(){}var r=n.prototype=Object.create(e.prototype);r.bindStartEvent=function(t){this._bindStartEvent(t,true)};r.unbindStartEvent=function(t){this._bindStartEvent(t,false)};r._bindStartEvent=function(t,e){e=e===undefined?true:e;var i=e?"addEventListener":"removeEventListener";var n="mousedown";if("ontouchstart"in s){n="touchstart"}else if(s.PointerEvent){n="pointerdown"}t[i](n,this)};r.handleEvent=function(t){var e="on"+t.type;if(this[e]){this[e](t)}};r.getTouch=function(t){for(var e=0;e<t.length;e++){var i=t[e];if(i.identifier==this.pointerIdentifier){return i}}};r.onmousedown=function(t){var e=t.button;if(e&&(e!==0&&e!==1)){return}this._pointerDown(t,t)};r.ontouchstart=function(t){this._pointerDown(t,t.changedTouches[0])};r.onpointerdown=function(t){this._pointerDown(t,t)};r._pointerDown=function(t,e){if(t.button||this.isPointerDown){return}this.isPointerDown=true;this.pointerIdentifier=e.pointerId!==undefined?e.pointerId:e.identifier;this.pointerDown(t,e)};r.pointerDown=function(t,e){this._bindPostStartEvents(t);this.emitEvent("pointerDown",[t,e])};var o={mousedown:["mousemove","mouseup"],touchstart:["touchmove","touchend","touchcancel"],pointerdown:["pointermove","pointerup","pointercancel"]};r._bindPostStartEvents=function(t){if(!t){return}var e=o[t.type];e.forEach(function(t){s.addEventListener(t,this)},this);this._boundPointerEvents=e};r._unbindPostStartEvents=function(){if(!this._boundPointerEvents){return}this._boundPointerEvents.forEach(function(t){s.removeEventListener(t,this)},this);delete this._boundPointerEvents};r.onmousemove=function(t){this._pointerMove(t,t)};r.onpointermove=function(t){if(t.pointerId==this.pointerIdentifier){this._pointerMove(t,t)}};r.ontouchmove=function(t){var e=this.getTouch(t.changedTouches);if(e){this._pointerMove(t,e)}};r._pointerMove=function(t,e){this.pointerMove(t,e)};r.pointerMove=function(t,e){this.emitEvent("pointerMove",[t,e])};r.onmouseup=function(t){this._pointerUp(t,t)};r.onpointerup=function(t){if(t.pointerId==this.pointerIdentifier){this._pointerUp(t,t)}};r.ontouchend=function(t){var e=this.getTouch(t.changedTouches);if(e){this._pointerUp(t,e)}};r._pointerUp=function(t,e){this._pointerDone();this.pointerUp(t,e)};r.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e])};r._pointerDone=function(){this._pointerReset();this._unbindPostStartEvents();this.pointerDone()};r._pointerReset=function(){this.isPointerDown=false;delete this.pointerIdentifier};r.pointerDone=i;r.onpointercancel=function(t){if(t.pointerId==this.pointerIdentifier){this._pointerCancel(t,t)}};r.ontouchcancel=function(t){var e=this.getTouch(t.changedTouches);if(e){this._pointerCancel(t,e)}};r._pointerCancel=function(t,e){this._pointerDone();this.pointerCancel(t,e)};r.pointerCancel=function(t,e){this.emitEvent("pointerCancel",[t,e])};n.getPointerPoint=function(t){return{x:t.pageX,y:t.pageY}};return n}); 520/*! 521 * Unidragger v2.4.0 522 * Draggable base class 523 * MIT license 524 */ 525(function(e,i){if(typeof define=="function"&&define.amd){define("unidragger/unidragger",["unipointer/unipointer"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("unipointer"))}else{e.Unidragger=i(e,e.Unipointer)}})(window,function t(r,e){function i(){}var n=i.prototype=Object.create(e.prototype);n.bindHandles=function(){this._bindHandles(true)};n.unbindHandles=function(){this._bindHandles(false)};n._bindHandles=function(t){t=t===undefined?true:t;var e=t?"addEventListener":"removeEventListener";var i=t?this._touchActionValue:"";for(var n=0;n<this.handles.length;n++){var s=this.handles[n];this._bindStartEvent(s,t);s[e]("click",this);if(r.PointerEvent){s.style.touchAction=i}}};n._touchActionValue="none";n.pointerDown=function(t,e){var i=this.okayPointerDown(t);if(!i){return}this.pointerDownPointer={pageX:e.pageX,pageY:e.pageY};t.preventDefault();this.pointerDownBlur();this._bindPostStartEvents(t);this.emitEvent("pointerDown",[t,e])};var s={TEXTAREA:true,INPUT:true,SELECT:true,OPTION:true};var o={radio:true,checkbox:true,button:true,submit:true,image:true,file:true};n.okayPointerDown=function(t){var e=s[t.target.nodeName];var i=o[t.target.type];var n=!e||i;
525if(!n){this._pointerReset()}return n};n.pointerDownBlur=function(){var t=document.activeElement;var e=t&&t.blur&&t!=document.body;if(e){t.blur()}};n.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.emitEvent("pointerMove",[t,e,i]);this._dragMove(t,e,i)};n._dragPointerMove=function(t,e){var i={x:e.pageX-this.pointerDownPointer.pageX,y:e.pageY-this.pointerDownPointer.pageY};if(!this.isDragging&&this.hasDragStarted(i)){this._dragStart(t,e)}return i};n.hasDragStarted=function(t){return Math.abs(t.x)>3||Math.abs(t.y)>3};n.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e]);this._dragPointerUp(t,e)};n._dragPointerUp=function(t,e){if(this.isDragging){this._dragEnd(t,e)}else{this._staticClick(t,e)}};n._dragStart=function(t,e){this.isDragging=true;this.isPreventingClicks=true;this.dragStart(t,e)};n.dragStart=function(t,e){this.emitEvent("dragStart",[t,e])};n._dragMove=function(t,e,i){if(!this.isDragging){return}this.dragMove(t,e,i)};n.dragMove=function(t,e,i){t.preventDefault();this.emitEvent("dragMove",[t,e,i])};n._dragEnd=function(t,e){this.isDragging=false;
525setTimeout(function(){delete this.isPreventingClicks}.bind(this));this.dragEnd(t,e)};n.dragEnd=function(t,e){this.emitEvent("dragEnd",[t,e])};n.onclick=function(t){if(this.isPreventingClicks){t.preventDefault()}};n._staticClick=function(t,e){if(this.isIgnoringMouseUp&&t.type=="mouseup"){return}this.staticClick(t,e);if(t.type!="mouseup"){this.isIgnoringMouseUp=true;setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400)}};n.staticClick=function(t,e){this.emitEvent("staticClick",[t,e])};i.getPointerPoint=e.getPointerPoint;return i});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/drag",["./flickity","unidragger/unidragger","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity"),require("unidragger"),require("fizzy-ui-utils"))}else{n.Flickity=s(n,n.Flickity,n.Unidragger,n.fizzyUIUtils)}})(window,function t(n,e,i,a){a.extend(e.defaults,{draggable:">1",dragThreshold:3});e.createMethods.push("_createDrag");var s=e.prototype;a.extend(s,i.prototype);s._touchActionValue="pan-y";var r="createTouch"in document;var o=false;s._createDrag=function(){this.on("activate",this.onActivateDrag);this.on("uiChange",this._uiChangeDrag);this.on("deactivate",this.onDeactivateDrag);this.on("cellChange",this.updateDraggable);if(r&&!o){n.addEventListener("touchmove",function(){});o=true}};s.onActivateDrag=function(){this.handles=[this.viewport];this.bindHandles();this.updateDraggable()};s.onDeactivateDrag=function(){this.unbindHandles();this.element.classList.remove("is-draggable")};s.updateDraggable=function(){if(this.options.draggable==">1"){this.isDraggable=this.slides.length>1}else{this.isDraggable=this.options.draggable}if(this.isDraggable){this.element.classList.add("is-draggable")}else{this.element.classList.remove("is-draggable")}};s.bindDrag=function(){this.options.draggable=true;this.updateDraggable()};s.unbindDrag=function(){this.options.draggable=false;this.updateDraggable()};s._uiChangeDrag=function(){delete this.isFreeScrolling};s.pointerDown=function(t,e){if(!this.isDraggable){this._pointerDownDefault(t,e);return}var i=this.okayPointerDown(t);if(!i){return}this._pointerDownPreventDefault(t);this.pointerDownFocus(t);if(document.activeElement!=this.element){this.pointerDownBlur()}this.dragX=this.x;this.viewport.classList.add("is-pointer-down");this.pointerDownScroll=h();n.addEventListener("scroll",this);this._pointerDownDefault(t,e)};s._pointerDownDefault=function(t,e){this.pointerDownPointer={pageX:e.pageX,pageY:e.pageY};this._bindPostStartEvents(t);this.dispatchEvent("pointerDown",t,[e])};var l={INPUT:true,TEXTAREA:true,SELECT:true};s.pointerDownFocus=function(t){var e=l[t.target.nodeName];if(!e){this.focus()}};s._pointerDownPreventDefault=function(t){var e=t.type=="touchstart";var i=t.pointerType=="touch";var n=l[t.target.nodeName];if(!e&&!i&&!n){t.preventDefault()}};s.hasDragStarted=function(t){return Math.abs(t.x)>this.options.dragThreshold};s.pointerUp=function(t,e){delete this.isTouchScrolling;this.viewport.classList.remove("is-pointer-down");this.dispatchEvent("pointerUp",t,[e]);this._dragPointerUp(t,e)};s.pointerDone=function(){n.removeEventListener("scroll",this);delete this.pointerDownScroll};s.dragStart=function(t,e){if(!this.isDraggable){return}this.dragStartPosition=this.x;this.startAnimation();n.removeEventListener("scroll",this);this.dispatchEvent("dragStart",t,[e])};s.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.dispatchEvent("pointerMove",t,[e,i]);this._dragMove(t,e,i)};s.dragMove=function(t,e,i){if(!this.isDraggable){return}t.preventDefault();this.previousDragX=this.dragX;var n=this.options.rightToLeft?-1:1;if(this.options.wrapAround){i.x%=this.slideableWidth}var s=this.dragStartPosition+i.x*n;if(!this.options.wrapAround&&this.slides.length){var r=Math.max(-this.slides[0].target,this.dragStartPosition);s=s>r?(s+r)*.5:s;var o=Math.min(-this.getLastSlide().target,this.dragStartPosition);s=s<o?(s+o)*.5:s}this.dragX=s;this.dragMoveTime=new Date;this.dispatchEvent("dragMove",t,[e,i])};s.dragEnd=function(t,e){if(!this.isDraggable){return}if(this.options.freeScroll){this.isFreeScrolling=true}var i=this.dragEndRestingSelect();if(this.options.freeScroll&&!this.options.wrapAround){var n=this.getRestingPosition();this.isFreeScrolling=-n>this.slides[0].target&&-n<this.getLastSlide().target}else if(!this.options.freeScroll&&i==this.selectedIndex){i+=this.dragEndBoostSelect()}delete this.previousDragX;this.isDragSelect=this.options.wrapAround;this.select(i);delete this.isDragSelect;this.dispatchEvent("dragEnd",t,[e])};s.dragEndRestingSelect=function(){var t=this.getRestingPosition();var e=Math.abs(this.getSlideDistance(-t,this.selectedIndex));var i=this._getClosestResting(t,e,1);var n=this._getClosestResting(t,e,-1);var s=i.distance<n.distance?i.index:n.index;return s};
525s._getClosestResting=function(t,e,i){var n=this.selectedIndex;var s=Infinity;var r=this.options.contain&&!this.options.wrapAround?function(t,e){return t<=e}:function(t,e){return t<e};while(r(e,s)){n+=i;s=e;e=this.getSlideDistance(-t,n);if(e===null){break}e=Math.abs(e)}return{distance:s,index:n-i}};s.getSlideDistance=function(t,e){var i=this.slides.length;var n=this.options.wrapAround&&i>1;var s=n?a.modulo(e,i):e;var r=this.slides[s];if(!r){return null}var o=n?this.slideableWidth*Math.floor(e/i):0;return t-(r.target+o)};s.dragEndBoostSelect=function(){if(this.previousDragX===undefined||!this.dragMoveTime||new Date-this.dragMoveTime>100){return 0}var t=this.getSlideDistance(-this.dragX,this.selectedIndex);var e=this.previousDragX-this.dragX;if(t>0&&e>0){return 1}else if(t<0&&e<0){return-1}return 0};s.staticClick=function(t,e){var i=this.getParentCell(t.target);var n=i&&i.element;var s=i&&this.cells.indexOf(i);this.dispatchEvent("staticClick",t,[e,n,s])};s.onscroll=function(){var t=h();var e=this.pointerDownScroll.x-t.x;var i=this.pointerDownScroll.y-t.y;if(Math.abs(e)>3||Math.abs(i)>3){this._pointerDone()}};function h(){return{x:n.pageXOffset,y:n.pageYOffset}}return e});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/prev-next-button",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils"))}else{s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}})(window,function t(e,i,n,s){var r="http://www.w3.org/2000/svg";function o(t,e){this.direction=t;this.parent=e;this._create()}o.prototype=Object.create(n.prototype);o.prototype._create=function(){this.isEnabled=true;this.isPrevious=this.direction==-1;var t=this.parent.options.rightToLeft?1:-1;this.isLeft=this.direction==t;var e=this.element=document.createElement("button");e.className="flickity-button flickity-prev-next-button";e.className+=this.isPrevious?" previous":" next";e.setAttribute("type","button");this.disable();e.setAttribute("aria-label",this.isPrevious?"Previous":"Next");var i=this.createSVG();e.appendChild(i);this.parent.on("select",this.update.bind(this));this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))};o.prototype.activate=function(){this.bindStartEvent(this.element);this.element.addEventListener("click",this);this.parent.element.appendChild(this.element)};o.prototype.deactivate=function(){this.parent.element.removeChild(this.element);this.unbindStartEvent(this.element);this.element.removeEventListener("click",this)};o.prototype.createSVG=function(){var t=document.createElementNS(r,"svg");t.setAttribute("class","flickity-button-icon");t.setAttribute("viewBox","0 0 100 100");var e=document.createElementNS(r,"path");var i=a(this.parent.options.arrowShape);e.setAttribute("d",i);e.setAttribute("class","arrow");if(!this.isLeft){e.setAttribute("transform","translate(100, 100) rotate(180) ")}t.appendChild(e);return t};function a(t){if(typeof t=="string"){return t}return"M "+t.x0+",50"+" L "+t.x1+","+(t.y1+50)+" L "+t.x2+","+(t.y2+50)+" L "+t.x3+",50 "+" L "+t.x2+","+(50-t.y2)+" L "+t.x1+","+(50-t.y1)+" Z"}o.prototype.handleEvent=s.handleEvent;o.prototype.onclick=function(){if(!this.isEnabled){return}this.parent.uiChange();var t=this.isPrevious?"previous":"next";this.parent[t]()};o.prototype.enable=function(){if(this.isEnabled){return}this.element.disabled=false;this.isEnabled=true};o.prototype.disable=function(){if(!this.isEnabled){return}this.element.disabled=true;this.isEnabled=false};o.prototype.update=function(){var t=this.parent.slides;if(this.parent.options.wrapAround&&t.length>1){this.enable();return}var e=t.length?t.length-1:0;var i=this.isPrevious?0:e;var n=this.parent.selectedIndex==i?"disable":"enable";this[n]()};o.prototype.destroy=function(){this.deactivate();this.allOff()};s.extend(i.defaults,{prevNextButtons:true,arrowShape:{x0:10,x1:60,y1:50,x2:70,y2:40,x3:30}});i.createMethods.push("_createPrevNextButtons");var l=i.prototype;l._createPrevNextButtons=function(){if(!this.options.prevNextButtons){return}this.prevButton=new o(-1,this);this.nextButton=new o(1,this);this.on("activate",this.activatePrevNextButtons)};l.activatePrevNextButtons=function(){this.prevButton.activate();this.nextButton.activate();this.on("deactivate",this.deactivatePrevNextButtons)};l.deactivatePrevNextButtons=function(){this.prevButton.deactivate();this.nextButton.deactivate();this.off("deactivate",this.deactivatePrevNextButtons)};i.PrevNextButton=o;return i});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/page-dots",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,
525i){return s(n,t,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils"))}else{s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}})(window,function t(e,i,n,s){function r(t){this.parent=t;this._create()}r.prototype=Object.create(n.prototype);r.prototype._create=function(){this.holder=document.createElement("ol");this.holder.className="flickity-page-dots";this.dots=[];this.handleClick=this.onClick.bind(this);this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))};r.prototype.activate=function(){this.setDots();this.holder.addEventListener("click",this.handleClick);this.bindStartEvent(this.holder);this.parent.element.appendChild(this.holder)};r.prototype.deactivate=function(){this.holder.removeEventListener("click",this.handleClick);this.unbindStartEvent(this.holder);this.parent.element.removeChild(this.holder)};r.prototype.setDots=function(){var t=this.parent.slides.length-this.dots.length;if(t>0){this.addDots(t)}else if(t<0){this.removeDots(-t)}};r.prototype.addDots=function(t){var e=document.createDocumentFragment();var i=[];var n=this.dots.length;var s=n+t;for(var r=n;r<s;r++){var o=document.createElement("li");o.className="dot";o.setAttribute("aria-label","Page dot "+(r+1));e.appendChild(o);i.push(o)}this.holder.appendChild(e);this.dots=this.dots.concat(i)};r.prototype.removeDots=function(t){var e=this.dots.splice(this.dots.length-t,t);e.forEach(function(t){this.holder.removeChild(t)},this)};r.prototype.updateSelected=function(){if(this.selectedDot){this.selectedDot.className="dot";this.selectedDot.removeAttribute("aria-current")}if(!this.dots.length){return}this.selectedDot=this.dots[this.parent.selectedIndex];this.selectedDot.className="dot is-selected";this.selectedDot.setAttribute("aria-current","step")};r.prototype.onTap=r.prototype.onClick=function(t){var e=t.target;if(e.nodeName!="LI"){return}this.parent.uiChange();var i=this.dots.indexOf(e);this.parent.select(i)};r.prototype.destroy=function(){this.deactivate();this.allOff()};i.PageDots=r;s.extend(i.defaults,{pageDots:true});i.createMethods.push("_createPageDots");var o=i.prototype;o._createPageDots=function(){if(!this.options.pageDots){return}this.pageDots=new r(this);this.on("activate",this.activatePageDots);this.on("select",this.updateSelectedPageDots);this.on("cellChange",this.updatePageDots);this.on("resize",this.updatePageDots);this.on("deactivate",this.deactivatePageDots)};o.activatePageDots=function(){this.pageDots.activate()};o.updateSelectedPageDots=function(){this.pageDots.updateSelected()};o.updatePageDots=function(){this.pageDots.setDots()};o.deactivatePageDots=function(){this.pageDots.deactivate()};i.PageDots=r;return i});(function(t,n){if(typeof define=="function"&&define.amd){define("flickity/js/player",["ev-emitter/ev-emitter","fizzy-ui-utils/utils","./flickity"],function(t,e,i){return n(t,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=n(require("ev-emitter"),require("fizzy-ui-utils"),require("./flickity"))}else{n(t.EvEmitter,t.fizzyUIUtils,t.Flickity)}})(window,function t(e,i,n){function s(t){this.parent=t;this.state="stopped";this.onVisibilityChange=this.visibilityChange.bind(this);this.onVisibilityPlay=this.visibilityPlay.bind(this)}s.prototype=Object.create(e.prototype);s.prototype.play=function(){if(this.state=="playing"){return}var t=document.hidden;if(t){document.addEventListener("visibilitychange",this.onVisibilityPlay);return}this.state="playing";document.addEventListener("visibilitychange",this.onVisibilityChange);this.tick()};s.prototype.tick=function(){if(this.state!="playing"){return}var t=this.parent.options.autoPlay;t=typeof t=="number"?t:3e3;var e=this;this.clear();this.timeout=setTimeout(function(){e.parent.next(true);e.tick()},t)};s.prototype.stop=function(){this.state="stopped";this.clear();document.removeEventListener("visibilitychange",this.onVisibilityChange)};s.prototype.clear=function(){clearTimeout(this.timeout)};s.prototype.pause=function(){if(this.state=="playing"){this.state="paused";this.clear()}};s.prototype.unpause=function(){if(this.state=="paused"){this.play()}};s.prototype.visibilityChange=function(){var t=document.hidden;this[t?"pause":"unpause"]()};s.prototype.visibilityPlay=function(){this.play();document.removeEventListener("visibilitychange",this.onVisibilityPlay)};i.extend(n.defaults,{pauseAutoPlayOnHover:true});n.createMethods.push("_createPlayer");var r=n.prototype;r._createPlayer=function(){this.player=new s(this);this.on("activate",this.activatePlayer);this.on("uiChange",this.stopPlayer);this.on("pointerDown",this.stopPlayer);this.on("deactivate",this.deactivatePlayer)};r.activatePlayer=function(){if(!this.options.autoPlay){return}this.player.play();this.element.addEventListener("mouseenter",this)};r.playPlayer=function(){this.player.play()};r.stopPlayer=function(){this.player.stop()};r.pausePlayer=function(){this.player.pause()};r.unpausePlayer=function(){this.player.unpause()};r.deactivatePlayer=function(){this.player.stop();this.element.removeEventListener("mouseenter",this)};r.onmouseenter=function(){if(!this.options.pauseAutoPlayOnHover){return}this.player.pause();this.element.addEventListener("mouseleave",this)};r.onmouseleave=function(){this.player.unpause();this.element.removeEventListener("mouseleave",this)};n.Player=s;return n});(function(i,n){if(typeof define=="function"&&define.amd){define("flickity/js/add-remove-cell",["./flickity","fizzy-ui-utils/utils"],function(t,e){return n(i,t,e)})}else if(typeof module=="object"&&module.exports){module.exports=n(i,require("./flickity"),require("fizzy-ui-utils"))}else{n(i,i.Flickity,i.fizzyUIUtils)}})(window,function t(e,i,n){function l(t){var e=document.createDocumentFragment();t.forEach(function(t){e.appendChild(t.element)});return e}var s=i.prototype;s.insert=function(t,e){var i=this._makeCells(t);if(!i||!i.length){return}var n=this.cells.length;e=e===undefined?n:e;var s=l(i);var r=e==n;if(r){this.slider.appendChild(s)}else{var o=this.cells[e].element;this.slider.insertBefore(s,o)}if(e===0){this.cells=i.concat(this.cells)}else if(r){this.cells=this.cells.concat(i)}else{var a=this.cells.splice(e,n-e);
525this.cells=this.cells.concat(i).concat(a)}this._sizeCells(i);this.cellChange(e,true)};s.append=function(t){this.insert(t,this.cells.length)};s.prepend=function(t){this.insert(t,0)};s.remove=function(t){var e=this.getCells(t);if(!e||!e.length){return}var i=this.cells.length-1;e.forEach(function(t){t.remove();var e=this.cells.indexOf(t);i=Math.min(e,i);n.removeFrom(this.cells,t)},this);this.cellChange(i,true)};s.cellSizeChange=function(t){var e=this.getCell(t);if(!e){return}e.getSize();var i=this.cells.indexOf(e);this.cellChange(i)};s.cellChange=function(t,e){var i=this.selectedElement;this._positionCells(t);this._getWrapShiftCells();this.setGallerySize();var n=this.getCell(i);if(n){this.selectedIndex=this.getCellSlideIndex(n)}this.selectedIndex=Math.min(this.slides.length-1,this.selectedIndex);this.emitEvent("cellChange",[t]);this.select(this.selectedIndex);if(e){this.positionSliderAtSelected()}};return i});(function(i,n){if(typeof define=="function"&&define.amd){define("flickity/js/lazyload",["./flickity","fizzy-ui-utils/utils"],function(t,e){return n(i,t,e)})}else if(typeof module=="object"&&module.exports){module.exports=n(i,require("./flickity"),require("fizzy-ui-utils"))}else{n(i,i.Flickity,i.fizzyUIUtils)}})(window,function t(e,i,o){i.createMethods.push("_createLazyload");var n=i.prototype;n._createLazyload=function(){this.on("select",this.lazyLoad)};n.lazyLoad=function(){var t=this.options.lazyLoad;if(!t){return}var e=typeof t=="number"?t:0;var i=this.getAdjacentCellElements(e);var n=[];i.forEach(function(t){var e=s(t);n=n.concat(e)});n.forEach(function(t){new r(t,this)},this)};function s(t){if(t.nodeName=="IMG"){var e=t.getAttribute("data-flickity-lazyload");var i=t.getAttribute("data-flickity-lazyload-src");var n=t.getAttribute("data-flickity-lazyload-srcset");if(e||i||n){return[t]}}var s="img[data-flickity-lazyload], "+"img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]";var r=t.querySelectorAll(s);return o.makeArray(r)}function r(t,e){this.img=t;this.flickity=e;this.load()}r.prototype.handleEvent=o.handleEvent;r.prototype.load=function(){this.img.addEventListener("load",this);this.img.addEventListener("error",this);var t=this.img.getAttribute("data-flickity-lazyload")||this.img.getAttribute("data-flickity-lazyload-src");var e=this.img.getAttribute("data-flickity-lazyload-srcset");this.img.src=t;if(e){this.img.setAttribute("srcset",e)}this.img.removeAttribute("data-flickity-lazyload");this.img.removeAttribute("data-flickity-lazyload-src");this.img.removeAttribute("data-flickity-lazyload-srcset")};r.prototype.onload=function(t){this.complete(t,"flickity-lazyloaded")};r.prototype.onerror=function(t){this.complete(t,"flickity-lazyerror")};r.prototype.complete=function(t,e){this.img.removeEventListener("load",this);this.img.removeEventListener("error",this);var i=this.flickity.getParentCell(this.img);var n=i&&i.element;this.flickity.cellSizeChange(n);this.img.classList.add(e);this.flickity.dispatchEvent("lazyLoad",t,n)};i.LazyLoader=r;return i}); 526/*! 527 * Flickity v2.2.3 528 * Touch, responsive, flickable carousels 529 * 530 * Licensed GPLv3 for open source use 531 * or Flickity Commercial License for commercial use 532 * 533 * https://flickity.metafizzy.co 534 * Copyright 2015-2021 Metafizzy 535 */ 536(function(t,e){if(typeof define=="function"&&define.amd){define("flickity/js/index",["./flickity","./drag","./prev-next-button","./page-dots","./player","./add-remove-cell","./lazyload"],e)}else if(typeof module=="object"&&module.exports){module.exports=e(require("./flickity"),require("./drag"),require("./prev-next-button"),require("./page-dots"),require("./player"),require("./add-remove-cell"),require("./lazyload"))}})(window,function t(e){return e}); 537/*! 538 * Flickity asNavFor v2.0.2 539 * enable asNavFor for Flickity 540 */ 541(function(t,e){if(typeof define=="function"&&define.amd){define("flickity-as-nav-for/as-nav-for",["flickity/js/index","fizzy-ui-utils/utils"],e)}else if(typeof module=="object"&&module.exports){module.exports=e(require("flickity"),require("fizzy-ui-utils"))}else{t.Flickity=e(t.Flickity,t.fizzyUIUtils)}})(window,function t(n,s){n.createMethods.push("_createAsNavFor");var e=n.prototype;e._createAsNavFor=function(){this.on("activate",this.activateAsNavFor);this.on("deactivate",this.deactivateAsNavFor);this.on("destroy",this.destroyAsNavFor);var e=this.options.asNavFor;if(!e){return}var i=this;setTimeout(function t(){i.setNavCompanion(e)})};e.setNavCompanion=function(t){t=s.getQueryElement(t);var e=n.data(t);
541if(!e||e==this){return}this.navCompanion=e;var i=this;this.onNavCompanionSelect=function(){i.navCompanionSelect()};e.on("select",this.onNavCompanionSelect);this.on("staticClick",this.onNavStaticClick);this.navCompanionSelect(true)};e.navCompanionSelect=function(t){var e=this.navCompanion&&this.navCompanion.selectedCells;if(!e){return}var i=e[0];var n=this.navCompanion.cells.indexOf(i);var s=n+e.length-1;var r=Math.floor(a(n,s,this.navCompanion.cellAlign));this.selectCell(r,false,t);this.removeNavSelectedElements();if(r>=this.cells.length){return}var o=this.cells.slice(n,s+1);this.navSelectedElements=o.map(function(t){return t.element});this.changeNavSelectedClass("add")};function a(t,e,i){return(e-t)*i+t}e.changeNavSelectedClass=function(e){this.navSelectedElements.forEach(function(t){t.classList[e]("is-nav-selected")})};e.activateAsNavFor=function(){this.navCompanionSelect(true)};e.removeNavSelectedElements=function(){if(!this.navSelectedElements){return}this.changeNavSelectedClass("remove");delete this.navSelectedElements};e.onNavStaticClick=function(t,e,i,n){if(typeof n=="number"){this.navCompanion.selectCell(n)}};e.deactivateAsNavFor=function(){this.removeNavSelectedElements()};e.destroyAsNavFor=function(){if(!this.navCompanion){return}this.navCompanion.off("select",this.onNavCompanionSelect);this.off("staticClick",this.onNavStaticClick);delete this.navCompanion};return n}); 542/*! 543 * imagesLoaded v4.1.4 544 * JavaScript is all like "You images are done yet or what?" 545 * MIT License 546 */ 547(function(e,i){"use strict";if(typeof define=="function"&&define.amd){define("imagesloaded/imagesloaded",["ev-emitter/ev-emitter"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("ev-emitter"))}else{e.imagesLoaded=i(e,e.EvEmitter)}})(typeof window!=="undefined"?window:this,function t(e,i){var s=e.jQuery;var r=e.console;function o(t,e){for(var i in e){t[i]=e[i]}return t}var n=Array.prototype.slice;function a(t){if(Array.isArray(t)){return t}var e=typeof t=="object"&&typeof t.length=="number";if(e){return n.call(t)}return[t]}function l(t,e,i){if(!(this instanceof l)){return new l(t,e,i)}var n=t;if(typeof t=="string"){n=document.querySelectorAll(t)}if(!n){r.error("Bad element for imagesLoaded "+(n||t));return}this.elements=a(n);this.options=o({},this.options);if(typeof e=="function"){i=e}else{o(this.options,e)}if(i){this.on("always",i)}this.getImages();if(s){this.jqDeferred=new s.Deferred}setTimeout(this.check.bind(this))}l.prototype=Object.create(i.prototype);l.prototype.options={};l.prototype.getImages=function(){this.images=[];this.elements.forEach(this.addElementImages,this)};l.prototype.addElementImages=function(t){if(t.nodeName=="IMG"){this.addImage(t)}if(this.options.background===true){this.addElementBackgroundImages(t)}var e=t.nodeType;if(!e||!h[e]){return}var i=t.querySelectorAll("img");for(var n=0;n<i.length;n++){var s=i[n];this.addImage(s)}if(typeof this.options.background=="string"){var r=t.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var o=r[n];this.addElementBackgroundImages(o)}}};var h={1:true,9:true,11:true};l.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(!e){return}var i=/url\((['"])?(.*?)\1\)/gi;var n=i.exec(e.backgroundImage);while(n!==null){var s=n&&n[2];if(s){this.addBackground(s,t)}n=i.exec(e.backgroundImage)}};l.prototype.addImage=function(t){var e=new c(t);this.images.push(e)};l.prototype.addBackground=function(t,e){var i=new u(t,e);this.images.push(i)};l.prototype.check=function(){var n=this;this.progressedCount=0;this.hasAnyBroken=false;if(!this.images.length){this.complete();return}function e(t,e,i){setTimeout(function(){n.progress(t,e,i)})}this.images.forEach(function(t){t.once("progress",e);t.check()})};l.prototype.progress=function(t,e,i){this.progressedCount++;this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded;this.emitEvent("progress",[this,t,e]);if(this.jqDeferred&&this.jqDeferred.notify){this.jqDeferred.notify(this,t)}if(this.progressedCount==this.images.length){this.complete()}if(this.options.debug&&r){r.log("progress: "+i,t,e)}};l.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";this.isComplete=true;this.emitEvent(t,[this]);this.emitEvent("always",[this]);if(this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}};function c(t){this.img=t}c.prototype=Object.create(i.prototype);c.prototype.check=function(){var t=this.getIsImageComplete();
547if(t){this.confirm(this.img.naturalWidth!==0,"naturalWidth");return}this.proxyImage=new Image;this.proxyImage.addEventListener("load",this);this.proxyImage.addEventListener("error",this);this.img.addEventListener("load",this);this.img.addEventListener("error",this);this.proxyImage.src=this.img.src};c.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth};c.prototype.confirm=function(t,e){this.isLoaded=t;this.emitEvent("progress",[this,this.img,e])};c.prototype.handleEvent=function(t){var e="on"+t.type;if(this[e]){this[e](t)}};c.prototype.onload=function(){this.confirm(true,"onload");this.unbindEvents()};c.prototype.onerror=function(){this.confirm(false,"onerror");this.unbindEvents()};c.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this);this.proxyImage.removeEventListener("error",this);this.img.removeEventListener("load",this);this.img.removeEventListener("error",this)};function u(t,e){this.url=t;this.element=e;this.img=new Image}u.prototype=Object.create(c.prototype);u.prototype.check=function(){this.img.addEventListener("load",this);this.img.addEventListener("error",this);this.img.src=this.url;var t=this.getIsImageComplete();if(t){this.confirm(this.img.naturalWidth!==0,"naturalWidth");this.unbindEvents()}};u.prototype.unbindEvents=function(){this.img.removeEventListener("load",this);this.img.removeEventListener("error",this)};u.prototype.confirm=function(t,e){this.isLoaded=t;this.emitEvent("progress",[this,this.element,e])};l.makeJQueryPlugin=function(t){t=t||e.jQuery;if(!t){return}s=t;s.fn.imagesLoaded=function(t,e){var i=new l(this,t,e);return i.jqDeferred.promise(s(this))}};l.makeJQueryPlugin();return l}); 548/*! 549 * Flickity imagesLoaded v2.0.0 550 * enables imagesLoaded option for Flickity 551 */ 552(function(i,n){if(typeof define=="function"&&define.amd){define(["flickity/js/index","imagesloaded/imagesloaded"],function(t,e){return n(i,t,e)})}else if(typeof module=="object"&&module.exports){module.exports=n(i,require("flickity"),require("imagesloaded"))}else{i.Flickity=n(i,i.Flickity,i.imagesLoaded)}})(window,function t(e,i,s){"use strict";i.createMethods.push("_createImagesLoaded");var n=i.prototype;n._createImagesLoaded=function(){this.on("activate",this.imagesLoaded)};n.imagesLoaded=function(){if(!this.options.imagesLoaded){return}var n=this;function t(t,e){var i=n.getParentCell(e.img);n.cellSizeChange(i&&i.element);if(!n.options.freeScroll){n.positionSliderAtSelected()}}s(this.slider).on("progress",t)};return i}); 553/****************************************************************************** 554W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\assets\js\flickity-fade.js 555******************************************************************************/ 556;/** 557 * Flickity fade v1.0.0 558 * Fade between Flickity slides 559 */ 560 561/* jshint browser: true, undef: true, unused: true */ 562 563( function( window, factory ) { 564 // universal module definition 565 /*globals define, module, require */ 566 if ( typeof define == 'function' && define.amd ) { 567 // AMD 568 define( [ 569 'flickity/js/index', 570 'fizzy-ui-utils/utils', 571 ], factory ); 572 } else if ( typeof module == 'object' && module.exports ) { 573 // CommonJS 574 module.exports = factory( 575 require('flickity'), 576 require('fizzy-ui-utils') 577 ); 578 } else { 579 // browser global 580 factory( 581 window.Flickity, 582 window.fizzyUIUtils 583 ); 584 } 585 586}( this, function factory( Flickity, utils ) { 587 588// ---- Slide ---- // 589 590var Slide = Flickity.Slide; 591 592var slideUpdateTarget = Slide.prototype.updateTarget; 593Slide.prototype.updateTarget = function() { 594 slideUpdateTarget.apply( this, arguments ); 595 if ( !this.parent.options.fade ) { 596 return; 597 } 598 // position cells at selected target 599 var slideTargetX = this.target - this.x; 600 var firstCellX = this.cells[0].x; 601 this.cells.forEach( function( cell ) { 602 var targetX = cell.x - firstCellX - slideTargetX; 603 cell.renderPosition( targetX ); 604 }); 605}; 606 607Slide.prototype.setOpacity = function( alpha ) {
608 this.cells.forEach( function( cell ) { 609 cell.element.style.opacity = alpha; 610 }); 611}; 612 613// ---- Flickity ---- // 614 615var proto = Flickity.prototype; 616 617Flickity.createMethods.push('_createFade'); 618 619proto._createFade = function() { 620 this.fadeIndex = this.selectedIndex; 621 this.prevSelectedIndex = this.selectedIndex; 622 this.on( 'select', this.onSelectFade ); 623 this.on( 'dragEnd', this.onDragEndFade ); 624 this.on( 'settle', this.onSettleFade ); 625 this.on( 'activate', this.onActivateFade ); 626 this.on( 'deactivate', this.onDeactivateFade ); 627}; 628 629var updateSlides = proto.updateSlides; 630proto.updateSlides = function() { 631 updateSlides.apply( this, arguments ); 632 if ( !this.options.fade ) { 633 return; 634 } 635 // set initial opacity 636 this.slides.forEach( function( slide, i ) { 637 var alpha = i == this.selectedIndex ? 1 : 0; 638 slide.setOpacity( alpha ); 639 }, this ); 640}; 641 642/* ---- events ---- */ 643 644proto.onSelectFade = function() { 645 // in case of resize, keep fadeIndex within current count 646 this.fadeIndex = Math.min( this.prevSelectedIndex, this.slides.length - 1 ); 647 this.prevSelectedIndex = this.selectedIndex; 648}; 649 650proto.onSettleFade = function() { 651 delete this.didDragEnd; 652 if ( !this.options.fade ) { 653 return; 654 } 655 // set full and 0 opacity on selected & faded slides 656 this.selectedSlide.setOpacity( 1 ); 657 var fadedSlide = this.slides[ this.fadeIndex ]; 658 if ( fadedSlide && this.fadeIndex != this.selectedIndex ) { 659 this.slides[ this.fadeIndex ].setOpacity( 0 ); 660 } 661}; 662 663proto.onDragEndFade = function() { 664 // set flag 665 this.didDragEnd = true; 666}; 667 668proto.onActivateFade = function() { 669 if ( this.options.fade ) { 670 this.element.classList.add('is-fade'); 671 } 672}; 673 674proto.onDeactivateFade = function() { 675 if ( !this.options.fade ) { 676 return; 677 } 678 this.element.classList.remove('is-fade'); 679 // reset opacity 680 this.slides.forEach( function( slide ) { 681 slide.setOpacity(''); 682 }); 683}; 684 685/* ---- position & fading ---- */ 686 687var positionSlider = proto.positionSlider; 688proto.positionSlider = function() { 689 if ( !this.options.fade ) { 690 positionSlider.apply( this, arguments ); 691 return; 692 } 693 694 this.fadeSlides(); 695 this.dispatchScrollEvent(); 696}; 697 698var positionSliderAtSelected = proto.positionSliderAtSelected; 699proto.positionSliderAtSelected = function() { 700 if ( this.options.fade ) { 701 // position fade slider at origin 702 this.setTranslateX( 0 ); 703 } 704 positionSliderAtSelected.apply( this, arguments ); 705}; 706 707proto.fadeSlides = function() { 708 if ( this.slides.length < 2 ) { 709 return; 710 } 711 // get slides to fade-in & fade-out 712 var indexes = this.getFadeIndexes(); 713 var fadeSlideA = this.slides[ indexes.a ]; 714 var fadeSlideB = this.slides[ indexes.b ]; 715 var distance = this.wrapDifference( fadeSlideA.target, fadeSlideB.target ); 716 var progress = this.wrapDifference( fadeSlideA.target, -this.x ); 717 progress = progress / distance; 718 719 fadeSlideA.setOpacity( 1 - progress ); 720 fadeSlideB.setOpacity( progress ); 721 722 // hide previous slide 723 var fadeHideIndex = indexes.a; 724 if ( this.isDragging ) { 725 fadeHideIndex = progress > 0.5 ? indexes.a : indexes.b; 726 } 727 var isNewHideIndex = this.fadeHideIndex != undefined && 728 this.fadeHideIndex != fadeHideIndex && 729 this.fadeHideIndex != indexes.a && 730 this.fadeHideIndex != indexes.b; 731 if ( isNewHideIndex ) { 732 // new fadeHideSlide set, hide previous 733 this.slides[ this.fadeHideIndex ].setOpacity( 0 ); 734 } 735 this.fadeHideIndex = fadeHideIndex; 736}; 737 738proto.getFadeIndexes = function() { 739 if ( !this.isDragging && !this.didDragEnd ) { 740 return { 741 a: this.fadeIndex, 742 b: this.selectedIndex, 743 }; 744 } 745 if ( this.options.wrapAround ) { 746 return this.getFadeDragWrapIndexes(); 747 } else { 748 return this.getFadeDragLimitIndexes(); 749 } 750}; 751 752proto.getFadeDragWrapIndexes = function() { 753 var distances = this.slides.map( function( slide, i ) { 754 return this.getSlideDistance( -this.x, i ); 755 }, this ); 756 var absDistances = distances.map( function( distance ) { 757 return Math.abs( distance ); 758 }); 759 var minDistance = Math.min.apply( Math, absDistances ); 760 var closestIndex = absDistances.indexOf( minDistance ); 761 var distance = distances[ closestIndex ]; 762 var len = this.slides.length; 763 764 var delta = distance >= 0 ? 1 : -1; 765 return { 766 a: closestIndex, 767 b: utils.modulo( closestIndex + delta, len ), 768 }; 769};
770 771proto.getFadeDragLimitIndexes = function() { 772 // calculate closest previous slide 773 var dragIndex = 0; 774 for ( var i=0; i < this.slides.length - 1; i++ ) { 775 var slide = this.slides[i]; 776 if ( -this.x < slide.target ) { 777 break; 778 } 779 dragIndex = i; 780 } 781 return { 782 a: dragIndex, 783 b: dragIndex + 1, 784 }; 785}; 786 787proto.wrapDifference = function( a, b ) { 788 var diff = b - a; 789 790 if ( !this.options.wrapAround ) { 791 return diff; 792 } 793 794 var diffPlus = diff + this.slideableWidth; 795 var diffMinus = diff - this.slideableWidth; 796 if ( Math.abs( diffPlus ) < Math.abs( diff ) ) { 797 diff = diffPlus; 798 } 799 if ( Math.abs( diffMinus ) < Math.abs( diff ) ) { 800 diff = diffMinus; 801 } 802 return diff; 803}; 804 805// ---- wrapAround ---- // 806 807var _getWrapShiftCells = proto._getWrapShiftCells; 808proto._getWrapShiftCells = function() { 809 if ( !this.options.fade ) { 810 _getWrapShiftCells.apply( this, arguments ); 811 } 812}; 813 814var shiftWrapCells = proto.shiftWrapCells; 815proto.shiftWrapCells = function() { 816 if ( !this.options.fade ) { 817 shiftWrapCells.apply( this, arguments ); 818 } 819}; 820 821return Flickity; 822 823})); 824 825/****************************************************************************** 826W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\section\section-1\corporate-card-rotator.js 827******************************************************************************/ 828;(function () { 829 'use strict'; 830 831 var SELECTOR = '.corporate-card-rotator__track'; 832 var FALLBACK_BREAKPOINT = 768; // only used if the custom property is missing 833 834 function toMilliseconds(value) { 835 if (!value || value === 'false' || value === '0') { 836 return 0; 837 } 838 839 var parsed = parseInt(value, 10); 840 841 return isNaN(parsed) || parsed <= 0 ? 0 : parsed; 842 } 843 844 function breakpointFor(element) { 845 var raw = window.getComputedStyle(element).getPropertyValue('--ccr-breakpoint'); 846 var parsed = parseInt(raw, 10); 847 848 return isNaN(parsed) ? FALLBACK_BREAKPOINT : parsed; 849 } 850 851 function bind(element) { 852 var flickity = window.Flickity && window.Flickity.data(element); 853 854 if (!flickity) { 855 return false; 856 } 857 858 var desktop = toMilliseconds(element.getAttribute('data-auto-play-desktop')); 859 var mobile = toMilliseconds(element.getAttribute('data-auto-play-mobile')); 860 861 var query = window.matchMedia('(min-width: ' + breakpointFor(element) + 'px)'); 862 863 function applyAlign() { 864 // desktop clips a card at BOTH edges, so the run is centred; the mobile mockup puts 865 // card one flush against the gutter with a single peek to its right 866 var align = query.matches ? 'center' : 'left'; 867 868 if (flickity.options.cellAlign === align) { 869 return; 870 } 871 872 flickity.options.cellAlign = align; 873 flickity.resize(); 874 } 875 876 function applyAutoPlay() { 877 // never asked to rotate - leave the player alone entirely 878 if (!desktop && !mobile) { 879 return; 880 } 881 882 var interval = query.matches ? desktop : mobile; 883 884 // watchCSS deactivates the carousel when there are too few cards to rotate; starting 885 // the player then would do nothing useful, and flickity restarts it on activate anyway 886 if (!element.classList.contains('flickity-enabled') || !interval) { 887 flickity.stopPlayer(); 888 return; 889 } 890 891 // flickity's player reads options.autoPlay when it starts, so set it before playing 892 flickity.options.autoPlay = interval; 893 flickity.playPlayer(); 894 } 895 896 function apply() { 897 applyAlign(); 898 applyAutoPlay(); 899 } 900 901 apply(); 902 903 if (query.addEventListener) { 904 query.addEventListener('change', apply); 905 } else if (query.addListener) { 906 query.addListener(apply); // Safari < 14 907 } 908 909 // watchCSS can activate/deactivate on resize, which stops the player, so re-apply after 910 // the carousel has had a chance to settle 911 window.addEventListener('resize', function () { 912 window.clearTimeout(apply.timer); 913 apply.timer = window.setTimeout(apply, 150); 914 }); 915 916 return true; 917 } 918 919 function boot() { 920 var pending = Array.prototype.slice.call(document.querySelectorAll(SELECTOR)); 921 922 if (!pending.length) { 923 return; 924 } 925 926 // flickity auto-inits on DOM ready, but load order isn't guaranteed - retry briefly 927 // rather than assume the instance already exists 928 var attempts = 0; 929 930 (function attempt() { 931 pending = pending.filter(function (element) { 932 return !bind(element); 933 }); 934 935 if (pending.length && ++attempts < 20) { 936 window.setTimeout(attempt, 100); 937 } 938 })(); 939 } 940 941 if (document.readyState === 'loading') { 942 document.addEventListener('DOMContentLoaded', boot); 943 } else { 944 boot(); 945 } 946})(); 947 948/****************************************************************************** 949W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\section\section-1\fan-accordion.js 950******************************************************************************/ 951;// Fan Accordion (SectionTemplateId 18) - AR-6813 952(function () { 953 'use strict'; 954 955 var MEDIA_SELECTOR = '.fan-accordion__media'; 956 var ACCORDION_SELECTOR = '[data-fan-accordion]'; 957 var FALLBACK_BREAKPOINT = 768; // only used if the custom property is missing 958 959 var END_FRACTION = 0.45; 960 961 function clamp(value, min, max) { 962 return Math.min(Math.max(value, min), max); 963 } 964 965 function breakpointFor(element) { 966 var raw = window.getComputedStyle(element).getPropertyValue('--fan-accordion-breakpoint'); 967 var parsed = parseInt(raw, 10); 968 969 return isNaN(parsed) ? FALLBACK_BREAKPOINT : parsed; 970 } 971 972 function fanOnMobile(element) { 973 var raw = window.getComputedStyle(element).getPropertyValue('--fan-on-mobile').trim(); 974 975 return raw === '' ? true : raw !== '0'; 976 } 977 978 function prefersReducedMotion() { 979 return window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 980 } 981 982 function fanEnabledFor(element) { 983 if (prefersReducedMotion()) { 984 return false; 985 } 986 987 if (element.closest('.no-fan')) { 988 return false; 989 } 990 991 if (!fanOnMobile(element)) { 992 return window.matchMedia('(min-width: ' + breakpointFor(element) + 'px)').matches; 993 } 994 995 return true; 996 } 997 998 function driveFan(element) { 999 if (!fanEnabledFor(element)) { 1000 return; 1001 } 1002 1003 var latched = 0; 1004 var ticking = false; 1005 var observer = null; 1006 var listening = false; 1007 1008 element.style.setProperty('--fan-progress', '0'); 1009 1010 function measure() {
1011 var viewportHeight = window.innerHeight; 1012 var start = viewportHeight; 1013 var end = viewportHeight * END_FRACTION; 1014 var top = element.getBoundingClientRect().top; 1015 1016 var progress = clamp((start - top) / (start - end), 0, 1); 1017 1018 // latched: the fan only ever opens further 1019 if (progress <= latched) { 1020 return; 1021 } 1022 1023 latched = progress; 1024 element.style.setProperty('--fan-progress', latched.toFixed(4)); 1025 1026 if (latched >= 1) { 1027 stop(); 1028 if (observer) { 1029 observer.disconnect(); 1030 } 1031 } 1032 } 1033 1034 function onScroll() { 1035 if (ticking) { 1036 return; 1037 } 1038 1039 ticking = true; 1040 window.requestAnimationFrame(function () { 1041 measure(); 1042 ticking = false; 1043 }); 1044 } 1045 1046 function start() { 1047 if (listening) { 1048 return; 1049 } 1050 1051 listening = true; 1052 window.addEventListener('scroll', onScroll, { passive: true }); 1053 window.addEventListener('resize', onScroll, { passive: true }); 1054 measure(); 1055 } 1056 1057 function stop() { 1058 if (!listening) { 1059 return; 1060 } 1061 1062 listening = false; 1063 window.removeEventListener('scroll', onScroll); 1064 window.removeEventListener('resize', onScroll); 1065 } 1066 1067 if (!window.IntersectionObserver) { 1068 start(); 1069 return; 1070 } 1071 1072 // only listen to scroll while the block is anywhere near the viewport 1073 observer = new IntersectionObserver(function (entries) { 1074 entries.forEach(function (entry) { 1075 if (entry.isIntersecting) { 1076 start(); 1077 } else { 1078 stop(); 1079 } 1080 }); 1081 }, { rootMargin: '100px 0px 100px 0px' }); 1082 1083 observer.observe(element); 1084 } 1085 1086 function supportsExclusiveDetails() { 1087 return 'name' in document.createElement('details'); 1088 } 1089 1090 function enforceOneOpen(list) { 1091 list.addEventListener('toggle', function (ev) { 1092 var opened = ev.target; 1093 1094 if (!opened.open || opened.tagName !== 'DETAILS') { 1095 return; 1096 } 1097 1098 Array.prototype.forEach.call(list.querySelectorAll('details'), function (other) { 1099 if (other !== opened) { 1100 other.open = false; 1101 } 1102 }); 1103 }, true); 1104 } 1105 1106 function boot() { 1107 Array.prototype.forEach.call(document.querySelectorAll(MEDIA_SELECTOR), driveFan); 1108 1109 if (!supportsExclusiveDetails()) { 1110 Array.prototype.forEach.call(document.querySelectorAll(ACCORDION_SELECTOR), enforceOneOpen); 1111 } 1112 } 1113 1114 if (document.readyState === 'loading') { 1115 document.addEventListener('DOMContentLoaded', boot); 1116 } else { 1117 boot(); 1118 } 1119})(); 1120/****************************************************************************** 1121W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\section\section-1\team-rotator.js 1122******************************************************************************/ 1123;(function () { 1124 'use strict'; 1125 1126 var SELECTOR = '.team-rotator__slides'; 1127 var FALLBACK_BREAKPOINT = 768; // only used if the custom property is missing 1128 1129 function toMilliseconds(value) { 1130 if (!value || value === 'false') { 1131 return 0; 1132 } 1133 1134 var parsed = parseInt(value, 10); 1135 1136 return isNaN(parsed) || parsed <= 0 ? 0 : parsed; 1137 } 1138 1139 function breakpointFor(element) { 1140 var raw = window.getComputedStyle(element).getPropertyValue('--team-rotator-breakpoint'); 1141 var parsed = parseInt(raw, 10); 1142 1143 return isNaN(parsed) ? FALLBACK_BREAKPOINT : parsed; 1144 } 1145 1146 function bind(element) { 1147 var flickity = window.Flickity && window.Flickity.data(element); 1148 1149 if (!flickity) { 1150 return false; 1151 } 1152 1153 var desktop = toMilliseconds(element.getAttribute('data-auto-play-desktop')); 1154 var mobile = toMilliseconds(element.getAttribute('data-auto-play-mobile')); 1155 1156 // nothing to drive - leave flickity alone entirely 1157 if (!desktop && !mobile) { 1158 return true; 1159 } 1160 1161 var query = window.matchMedia('(min-width: ' + breakpointFor(element) + 'px)'); 1162 1163 function apply() { 1164 var interval = query.matches ? desktop : mobile; 1165 1166 // watchCSS deactivates the carousel when there is only one slide; starting the
1167 // player then would do nothing useful, and flickity would restart it on activate 1168 if (!element.classList.contains('flickity-enabled') || !interval) { 1169 flickity.stopPlayer(); 1170 return; 1171 } 1172 1173 // flickity's player reads options.autoPlay when it starts, so set it before playing 1174 flickity.options.autoPlay = interval; 1175 flickity.playPlayer(); 1176 } 1177 1178 apply(); 1179 1180 if (query.addEventListener) { 1181 query.addEventListener('change', apply); 1182 } else if (query.addListener) { 1183 query.addListener(apply); // Safari < 14 1184 } 1185 1186 // watchCSS can activate/deactivate on resize, which stops the player, so re-apply after 1187 // the carousel has had a chance to settle 1188 window.addEventListener('resize', function () { 1189 window.clearTimeout(apply.timer); 1190 apply.timer = window.setTimeout(apply, 150); 1191 }); 1192 1193 return true; 1194 } 1195 1196 function boot() { 1197 var pending = Array.prototype.slice.call(document.querySelectorAll(SELECTOR)); 1198 1199 if (!pending.length) { 1200 return; 1201 } 1202 1203 // flickity auto-inits on DOM ready, but load order isn't guaranteed - retry briefly 1204 // rather than assume the instance already exists 1205 var attempts = 0; 1206 1207 (function attempt() { 1208 pending = pending.filter(function (element) { 1209 return !bind(element); 1210 }); 1211 1212 if (pending.length && ++attempts < 20) { 1213 window.setTimeout(attempt, 100); 1214 } 1215 })(); 1216 } 1217 1218 if (document.readyState === 'loading') { 1219 document.addEventListener('DOMContentLoaded', boot); 1220 } else { 1221 boot(); 1222 } 1223})(); 1224 1225/****************************************************************************** 1226W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\section\section-1\text-rotator.js 1227******************************************************************************/ 1228;// Doorway modals for the Text Rotator section (doorwayStyle: "headline-modal"). 1229// 1230// Native <dialog> rather than the older .modal-state checkbox pattern used by 1231// filter--modal / megafinder-search: showModal() brings focus trapping, Escape to 1232// close, aria-modal, background inerting and top-layer stacking with it, none of 1233// which those overlays have. 1234// 1235// The top layer is not a nicety here. Flickity reparents its cells into 1236// .flickity-viewport (overflow: hidden) and transforms them, and a transformed 1237// ancestor is a containing block even for position: fixed - so a hand-rolled 1238// overlay would be clipped by the rotator. The partial also renders the dialogs 1239// outside .section__rotator so Flickity never owns them in the first place. 1240(function () { 1241 'use strict'; 1242 1243 function getRotator(trigger) { 1244 var section = trigger.closest('.section--text-rotator'); 1245 1246 return section ? section.querySelector('.section__rotator') : null; 1247 } 1248 1249 // Pause autoplay while a modal is open, so the rotator is not advancing behind 1250 // it. Flickity may not have initialised yet - it auto-inits from data-flickity 1251 // on DOM ready and load order is not guaranteed - so this is best-effort. 1252 function setAutoplay(trigger, playing) { 1253 var el = getRotator(trigger); 1254 var instance = el && window.Flickity && window.Flickity.data(el); 1255 1256 if (!instance) { 1257 return; 1258 } 1259 1260 if (playing && typeof instance.playPlayer === 'function') { 1261 instance.playPlayer(); 1262 } else if (!playing && typeof instance.stopPlayer === 'function') { 1263 instance.stopPlayer(); 1264 } 1265 } 1266 1267 function open(dialog, trigger) { 1268 setAutoplay(trigger, false); 1269 1270 if (typeof dialog.showModal === 'function') { 1271 dialog.showModal(); 1272 } else { 1273 // No top layer on this browser. The dialog is styled position: fixed so it 1274 // still covers the page, but focus and Escape are not handled for us. 1275 dialog.setAttribute('open', ''); 1276 } 1277 } 1278 1279 function close(dialog, trigger) { 1280 if (typeof dialog.close === 'function') { 1281 dialog.close(); 1282 } else { 1283 dialog.removeAttribute('open'); 1284 // close() restores focus to the opener for us; the fallback path does not 1285 trigger.focus(); 1286 } 1287 1288 setAutoplay(trigger, true); 1289 } 1290 1291 function bind(trigger) { 1292 // dependencies are deduped tree-wide but a component can be registered more 1293 // than once, so make double-binding harmless 1294 if (trigger.dataset.dlDoorwayModalInit) { 1295 return; 1296 } 1297 1298 var dialog = document.getElementById(trigger.getAttribute('data-doorway-modal')); 1299 1300 if (!dialog) { 1301 // the partial only emits a dialog when the Doorway has modal content; a 1302 // trigger without one is an authoring problem, already reported by the 1303 // shaper's dev_messages 1304 return; 1305 } 1306 1307 trigger.dataset.dlDoorwayModalInit = '1'; 1308 1309 trigger.addEventListener('click', function () { 1310 open(dialog, trigger); 1311 }); 1312 1313 dialog.querySelectorAll('[data-doorway-modal-close]').forEach(function (btn) { 1314 btn.addEventListener('click', function () { 1315 close(dialog, trigger); 1316 }); 1317 }); 1318 1319 // .section__doorway-modal-inner covers the dialog's whole content box, so a 1320 // click that lands on the dialog itself came from the backdrop 1321 dialog.addEventListener('click', function (e) { 1322 if (e.target === dialog) { 1323 close(dialog, trigger); 1324 } 1325 }); 1326 1327 // Escape is handled natively by showModal(), but it fires 'close' rather than 1328 // running our handler - restart autoplay from there too 1329 dialog.addEventListener('close', function () { 1330 setAutoplay(trigger, true); 1331 }); 1332 } 1333 1334 function boot() { 1335 document.querySelectorAll('[data-doorway-modal]').forEach(bind); 1336 } 1337 1338 if (document.readyState === 'loading') { 1339 document.addEventListener('DOMContentLoaded', boot); 1340 } else { 1341 boot(); 1342 } 1343})(); 1344 1345/****************************************************************************** 1346W:\dl-components\9fc7f379a895c8e33a39547d7a0bd355ba7021ac\DoctorLogic.Components\components\section\section-1\treatment-steps.js 1347******************************************************************************/ 1348;// Treatment Steps (SectionTemplateId 21) - AR-6832 1349// 1350// Writes a single latched --steps-progress (0 -> 1) onto each track as it scrolls into view. The 1351// stylesheet does the rest: every step derives its own local progress from --step-index, so one 1352// property staggers the whole row left to right. 1353// 1354// Writing NOTHING is the disabled state. The stylesheet's own --steps-progress is 1 - the finished 1355// state - so no-JS, a blocked script, reduced motion and mobile all render complete rather than 1356// invisible. 1357(function () { 1358 'use strict'; 1359 1360 var TRACK_SELECTOR = '.treatment-steps__items'; 1361 var FALLBACK_BREAKPOINT = 768; // only used if the custom property is missing 1362 1363 // the fraction of the viewport height at which the run finishes 1364 var END_FRACTION = 0.45; 1365 1366 function clamp(value, min, max) { 1367 return Math.min(Math.max(value, min), max); 1368 } 1369 1370 function breakpointFor(element) { 1371 var raw = window.getComputedStyle(element).getPropertyValue('--treatment-steps-breakpoint'); 1372 var parsed = parseInt(raw, 10); 1373 return isNaN(parsed) ? FALLBACK_BREAKPOINT : parsed; 1374 } 1375 1376 // Unlike fan-accordion's --fan-on-mobile this defaults to OFF: below the breakpoint the rotator 1377 // shows one step at a time, so there is no left-to-right stagger to watch.
1378 function animateOnMobile(element) { 1379 var raw = window.getComputedStyle(element).getPropertyValue('--steps-on-mobile').trim(); 1380 return raw !== '' && raw !== '0'; 1381 } 1382 1383 function prefersReducedMotion() { 1384 return window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 1385 } 1386 1387 function animationEnabledFor(element) { 1388 if (prefersReducedMotion()) { return false; } 1389 if (element.closest('.no-rotator')) { return false; } 1390 if (!animateOnMobile(element)) { 1391 return window.matchMedia('(min-width: ' + breakpointFor(element) + 'px)').matches; 1392 } 1393 return true; 1394 } 1395 1396 function driveSteps(element) { 1397 if (!animationEnabledFor(element)) { return; } // writes NOTHING, so the sheet's `1` stands 1398 1399 var latched = 0; 1400 var seeded = false; 1401 var ticking = false; 1402 var listening = false; 1403 1404 function measure() { 1405 var viewportHeight = window.innerHeight; 1406 var start = viewportHeight;
1407 var end = viewportHeight * END_FRACTION; 1408 var top = element.getBoundingClientRect().top; 1409 1410 var progress = clamp((start - top) / (start - end), 0, 1); 1411 1412 // latched: the steps only ever slide further in, never back out 1413 if (seeded && progress <= latched) { return; } 1414 1415 seeded = true; 1416 latched = progress; 1417 element.style.setProperty('--steps-progress', latched.toFixed(4)); 1418 1419 // the latch is what makes a bare scroll listener cheap enough: once the run is 1420 // finished this section stops listening for good 1421 if (latched >= 1) { stop(); } 1422 } 1423 1424 function onScroll() { 1425 if (ticking) { return; } 1426 ticking = true; 1427 window.requestAnimationFrame(function () { 1428 measure(); 1429 ticking = false; 1430 }); 1431 } 1432 1433 function start() { 1434 if (listening) { return; } 1435 listening = true; 1436 window.addEventListener('scroll', onScroll, { passive: true }); 1437 window.addEventListener('resize', onScroll, { passive: true }); 1438 measure(); 1439 } 1440 1441 function stop() { 1442 if (!listening) { return; } 1443 listening = false; 1444 window.removeEventListener('scroll', onScroll); 1445 window.removeEventListener('resize', onScroll); 1446 } 1447 1448 // Seed from where the section ACTUALLY is, then listen until the run finishes. 1449 // 1450 // Two deliberate differences from fan-accordion.js, which this otherwise mirrors. Both 1451 // come from the same place: that component's resting state is "cards not fanned", which 1452 // is merely less pretty, whereas this one fades the steps to opacity 0 at progress 0. Any 1453 // path that leaves progress at 0 here does not degrade the effect, it HIDES THE CONTENT. 1454 // 1455 // 1. The initial value is measured, not assumed. fan-accordion writes a blind 0 and 1456 // relies on the observer's first callback to correct it; measuring here means a page 1457 // that loads already scrolled to the section - a reload that restores scroll, an 1458 // #anchor, a back-navigation - is right before any callback is involved. 1459 // 2. No IntersectionObserver. It exists there to detach the scroll listener while the 1460 // block is far away, but the latch already removes that listener the moment progress 1461 // reaches 1, so it saves one rAF-throttled passive listener at the cost of a second 1462 // async mechanism that can leave the section blank if it mis-fires. Not a trade 1463 // worth making when the downside is invisible copy. 1464 start(); 1465 1466 // late-loading images shift the section, so re-measure once everything has settled 1467 window.addEventListener('load', onScroll); 1468 } 1469 1470 function boot() { 1471 Array.prototype.forEach.call(document.querySelectorAll(TRACK_SELECTOR), driveSteps); 1472 } 1473 1474 if (document.readyState === 'loading') { 1475 document.addEventListener('DOMContentLoaded', boot); 1476 } else { 1477 boot(); 1478 } 1479})(); 1480
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.