PageSourceSearch

https://www.hopehospice.com/wp-content/mu-plugins/assets/js/vendor.js?v=1789125456

js hopehospice.com collected 2026-10-01 15:27:12 UTC 7,704 bytes, 202 lines download raw bytes

1var $ = jQuery;
2function getHeaderHeight() {
3  const header = document.getElementById("mainHeader");
4  if (header) {
5    const headerHeight = header.offsetHeight;
6    document.body.style.setProperty('--header', `${headerHeight}px`);
7    return headerHeight;
8  }
9  return null;
10}
11document.addEventListener("DOMContentLoaded", () => {
12    getHeaderHeight();
13});
14window.addEventListener('resize', getHeaderHeight);
15/**** Donate Form slider */
16document.addEventListener("DOMContentLoaded", function () {
17   const wrapper = document.querySelector(".custom-Tabslider");
18    if (!wrapper) return;
19    let initialized = false;
20    let current = 0;
21    function getPerView() {
22        return window.innerWidth <= 767 ? 1 : 2;
23    }
24    function initSlider() {
25        if (initialized || window.innerWidth > 1200) return;
26        const tabsHeading = wrapper.querySelector(".e-n-tabs-heading");
27        const contentWrapper = wrapper.querySelector(".e-n-tabs-content");
28        if (!contentWrapper) return;
29        const contents = [...contentWrapper.children];
30        const headings = wrapper.querySelectorAll(".e-n-tab-title");
31        if (tabsHeading) {
32            tabsHeading.style.display = "none";
33        }
34        const slider = document.createElement("div");
35        slider.className = "cts-slider";
36        contents.forEach((content, index) => {
37            const slide = document.createElement("div");
38            slide.className = "cts-slide";
39            const title = document.createElement("div");
40            title.className = "cts-title";
41            title.textContent =
42                headings[index]?.querySelector(".e-n-tab-title-text")?.textContent || "";
43            slide.appendChild(title);
44            slide.appendChild(content);
45            slider.appendChild(slide);
46        });
47        contentWrapper.appendChild(slider);
48        const prev = document.createElement("button");
49        prev.className = "cts-prev";
50        prev.innerHTML = `
51        <svg width="15" height="24" viewBox="0 0 15 24" fill="none"> <path d="M5.6 12L14.8 21.2L12 24L0 12L12 0L14.8 2.8L5.6 12Z" fill="white"/> </svg>
52        `;
53        const next = document.createElement("button");
54        next.className = "cts-next";
55        next.innerHTML = `
56        <svg width="15" height="24" viewBox="0 0 15 24" fill="none"> <path d="M9.2 12L0 2.8L2.8 0L14.8 12L2.8 24L0 21.2L9.2 12Z" fill="white"/> </svg>
57        `;
58        wrapper.appendChild(prev);
59        wrapper.appendChild(next);
60        function updateSlider() {
61            const perView = getPerView();
62            const slideWidth = 100 / perView;
63            slider.style.transform =
64                `translateX(-${current * slideWidth}%)`;
65            slider.querySelectorAll(".cts-slide").forEach((slide, index) => {
66                slide.style.minWidth = `${slideWidth}%`;
67                slide.classList.remove("active");
68                if (index === current) {
69                    slide.classList.add("active");
70                }
71            });
72        }
73        function nextSlide() {
74            const max = contents.length - getPerView();
75            if (current < max) {
76                current++;
77            } else{current = 0;}
78            updateSlider();
79        }
80        function prevSlide() {
81            const max = contents.length - getPerView();
82            if (current > 0) {
83                current--;
84            } else{current = max;}
85            updateSlider();
86        }
87        next.addEventListener("click", nextSlide);
88        prev.addEventListener("click", prevSlide);
89        let startX = 0;
90        slider.addEventListener("touchstart", function (e) {
91            startX = e.touches[0].clientX;
92        });
93        slider.addEventListener("touchend", function (e) {
94            let endX = e.changedTouches[0].clientX;
95            let diff = startX - endX;
96            if (Math.abs(diff) > 50) {
97                if (diff > 0) {
98                    nextSlide();
99                } else{prevSlide();}
100            }
101        });
102        updateSlider();
103        initialized = true;
104    }
105    function destroySlider() {
106        if (!initialized) return;
107        const slider = wrapper.querySelector(".cts-slider");
108        const contentWrapper = wrapper.querySelector(".e-n-tabs-content");
109        const tabsHeading = wrapper.querySelector(".e-n-tabs-heading");
110        if (slider && contentWrapper) {
111            const slides = slider.querySelectorAll(".cts-slide");
112            slides.forEach((slide) => {
113                const tabContent = slide.querySelector("[role='tabpanel']");
114                if (tabContent) {
115                    contentWrapper.appendChild(tabContent);
116                }
117            });
118            slider.remove();
119        }
120        wrapper
121            .querySelectorAll(".cts-prev, .cts-next")
122            .forEach(btn => btn.remove());
123
124        if (tabsHeading) {
125            tabsHeading.style.display = "";
126        }
127        initialized = false;
128        current = 0;
129    }
130    function handleResize() {
131        if (window.innerWidth <= 1200) {
132            initSlider();
133        } else {
134            destroySlider();
135        }
136    }
137    handleResize();
138    let resizeTimer;
139    window.addEventListener("resize", function () {
140        clearTimeout(resizeTimer);
141        resizeTimer = setTimeout(() => {
142            destroySlider();
143            handleResize();
144        }, 200);
145    });
146});
147/** Animation */
148document.addEventListener("DOMContentLoaded", function () {
149    const elements = document.querySelectorAll(
150        '.fadeInUp, .fadeInDown, .fadeInLeft, .fadeInRight, .zoomIn'
151    );
152    const observer = new IntersectionObserver((entries) => {
153        entries.forEach((entry) => {
154            if (entry.isIntersecting) {
155                entry.target.classList.add('animated');
156            }
157        });
158    }, {
159        threshold: 0.15,
160        rootMargin: "0px 0px -100px 0px"
161    });
162    elements.forEach((el) => {
163        observer.observe(el);
164    });
165});
166document.addEventListener("DOMContentLoaded", function () {
167    var dropdown = document.getElementById('orgDropdown');
168    var trigger  = document.getElementById('orgTrigger');
169    var label    = document.getElementById('orgTriggerLabel');
170    var list     = document.getElementById('orgList');
171    if (!dropdown || !trigger || !list) return;
172    var currentHost = window.location.hostname;
173    list.querySelectorAll('a').forEach(function (link) {
174        var linkHost = new URL(link.href).hostname;
175        if (linkHost === currentHost) {
176            link.classList.add('active');
177            link.parentElement.classList.add('active');
178            label.textContent = link.getAttribute('data-label');
179        } else {
180            link.setAttribute('target', '_blank');
181            link.setAttribute('rel', 'noopener noreferrer');
182        }
183    });
184    trigger.addEventListener('click', function (e) {
185        e.stopPropagation();
186        var isOpen = dropdown.classList.toggle('open');
187        trigger.setAttribute('aria-expanded', isOpen);
188    });
189    document.addEventListener('click', function () {
190        dropdown.classList.remove('open');
191        trigger.setAttribute('aria-expanded', false);
192    });
193    list.addEventListener('click', function (e) {
194        e.stopPropagation();
195    });
196    list.querySelectorAll('a').forEach(function (link) {
197        link.addEventListener('click', function () {
198            dropdown.classList.remove('open');
199            trigger.setAttribute('aria-expanded', false);
200        });
201    });
202});

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.