/* eslint-disable no-console */ // window.onload = function() { window.addEventListener('message', handleMessageReceived); function toggleHoursTab(dom, enable = false) { if (dom) { dom.tabIndex = enable ? '0' : '-1'; dom.setAttribute('aria-selected', enable ? 'true' : 'false'); const aTag = dom.getElementsByTagName('a')[0]; aTag.style.opacity = enable ? 1 : 0.5; } } function toggleHoursPanel(dom, enable = false) { if (dom) { dom.setAttribute('aria-expanded', enable ? 'true' : 'false'); dom.setAttribute('aria-hidden', enable ? 'false' : 'true'); dom.style.display = enable ? 'block' : 'none'; } } function formatTime(time) { let hour = time.split(':')[0]; let min = time.split(':')[1]; let part = hour >= 12 ? 'pm' : 'am'; min = (min + '').length == 1 ? `0${min}` : min; hour = hour > 12 ? hour - 12 : hour; return `${ hour.toString() === '00' ? '12' : parseInt(hour, 10) }:${min}${part}`; } function closeDayHours(dom) { if (dom.getElementsByTagName('div')[0]) { // previously open dom.appendChild( dom.getElementsByTagName('div')[0].getElementsByTagName('p')[0] ); dom.getElementsByTagName('div')[0]?.remove(); } dom.getElementsByTagName('p')[1].innerHTML = 'Closed'; } function setDayHours(dom, hrs) { if (!dom.getElementsByTagName('div')[0]) { // previously closed const div = dom.appendChild(window.document.createElement('div')); div.style.display = 'block'; hrs.map((intrval) => { const para = div.appendChild(window.document.createElement('p')); para.classList.add('sc-ovnq1p-0'); para.classList.add('ovnq1p-0'); para.classList.add('cLpOUX'); para.appendChild(window.document.createElement('span')); para.appendChild(window.document.createElement('span')); }); const pClosed = dom.getElementsByTagName('p')[1]; pClosed.innerHTML = ''; div.appendChild(pClosed); } //remove existing split iterval when status changed from split to open let para = dom.getElementsByTagName('div')[0].getElementsByTagName('p'); if (para.length > hrs.length) { dom.getElementsByTagName('div')[0].removeChild(para[1]); } //looping through hours to add split hours based on openIntervals length hrs.map((intrval, position) => { const start = formatTime(intrval.start); const end = formatTime(intrval.end); let childPara = dom .getElementsByTagName('div')[0] .getElementsByTagName('p')[position]; let spans = []; if (childPara) { //let para = dom.getElementsByTagName("div")[0].getElementsByTagName("p")[position] spans = childPara.getElementsByTagName('span'); if (spans.length == 0) { childPara.appendChild(window.document.createElement('span')); childPara.appendChild(window.document.createElement('span')); spans = childPara.getElementsByTagName('span'); } } else { const para = dom .getElementsByTagName('div')[0] .appendChild(window.document.createElement('p')); para.classList.add('sc-ovnq1p-0'); para.classList.add('ovnq1p-0'); para.classList.add('cLpOUX'); para.appendChild(window.document.createElement('span')); para.appendChild(window.document.createElement('span')); spans = para.getElementsByTagName('span'); } spans[0].setAttribute('itemprop', 'opens'); if (start == end || (start == '12:00am' && end == '11:59pm')) { spans[0].innerHTML = 'Open 24 hrs'; spans[0].setAttribute('content', 'Open 24 hrs'); if (spans[1]) { spans[1].remove(); } } else { spans[0].innerHTML = start; spans[0].setAttribute('content', start); const secondSpan = spans[1] ? spans[1] : spans[0].cloneNode(true); secondSpan.setAttribute('itemprop', 'closes'); secondSpan.setAttribute('content', end); secondSpan.innerHTML = ' - ' + end; if (!spans[1]) { spans[0].parentNode.appendChild(secondSpan); } } }); } function updateHours(dom, hrs, addtlText) { if (dom) { const hours = dom.getElementsByTagName('ul')[0].getElementsByTagName('li'); // set monday if ( hrs.monday.isClosed && hrs.monday.isClosed != 'split' && hrs.monday.isClosed != 'hours24' ) { closeDayHours(hours[0]); } else { setDayHours(hours[0], hrs.monday.openIntervals); } // set tuesday if ( hrs.tuesday.isClosed && hrs.tuesday.isClosed != 'split' && hrs.tuesday.isClosed != 'hours24' ) { closeDayHours(hours[1]); } else { setDayHours(hours[1], hrs.tuesday.openIntervals); } // set wednesday if ( hrs.wednesday.isClosed && hrs.wednesday.isClosed != 'split' && hrs.wednesday.isClosed != 'hours24' ) { closeDayHours(hours[2]); } else { setDayHours(hours[2], hrs.wednesday.openIntervals); } // set thursday if ( hrs.thursday.isClosed && hrs.thursday.isClosed != 'split' && hrs.thursday.isClosed != 'hours24' ) { closeDayHours(hours[3]); } else { setDayHours(hours[3], hrs.thursday.openIntervals); } // set friday if ( hrs.friday.isClosed && hrs.friday.isClosed != 'split' && hrs.friday.isClosed != 'hours24' ) { closeDayHours(hours[4]); } else { setDayHours(hours[4], hrs.friday.openIntervals); } // set saturday if ( hrs.saturday.isClosed && hrs.saturday.isClosed != 'split' && hrs.saturday.isClosed != 'hours24' ) { closeDayHours(hours[5]); } else { setDayHours(hours[5], hrs.saturday.openIntervals); } // set sunday if ( hrs.sunday.isClosed && hrs.sunday.isClosed != 'split' && hrs.sunday.isClosed != 'hours24' ) { closeDayHours(hours[6]); } else { setDayHours(hours[6], hrs.sunday.openIntervals); } // set addtl text dom .getElementsByTagName('ul')[1] .getElementsByTagName('li')[0] .getElementsByTagName('p')[0].innerHTML = addtlText; } } function createExtendedHrsTab(mainHrsTab) { if(!mainHrsTab) return; let domExtHoursTab = mainHrsTab.cloneNode(true); domExtHoursTab.classList.remove('hWUsla'); domExtHoursTab.classList.remove('kTzKDV'); domExtHoursTab.classList.remove('bar'); domExtHoursTab.style.display = 'inline-block'; domExtHoursTab.setAttribute('aria-controls', 'tab-list-item-1'); domExtHoursTab.setAttribute('aria-selected', 'false'); domExtHoursTab.setAttribute('id', 'tab_1'); domExtHoursTab.setAttribute('tabindex', '-1'); const p = domExtHoursTab.getElementsByTagName('p')[0]; p.innerHTML = 'Extended Hours'; p.parentNode.style.opacity = '0.5'; mainHrsTab.parentNode.appendChild(domExtHoursTab); mainHrsTab.classList.add('bar'); return domExtHoursTab; } function createExtendedHrsPanel(mainHrsPanel) { if(!mainHrsPanel) return; let domExtHoursPanel = mainHrsPanel.cloneNode(true); domExtHoursPanel.classList.remove('cKjIPf'); domExtHoursPanel.classList.remove('PABmB'); domExtHoursPanel.classList.remove('gFVtRY'); domExtHoursPanel.classList.add('gSAkUH'); domExtHoursPanel.classList.add('kzTSAb'); domExtHoursPanel.classList.add('bjckby'); domExtHoursPanel.style.display = 'none'; domExtHoursPanel.setAttribute('id', 'tab-list-item-1'); domExtHoursPanel.setAttribute('aria-expanded', 'false'); domExtHoursPanel.setAttribute('aria-hidden', 'true'); domExtHoursPanel.setAttribute('aria-labelledby', 'tab_1'); domExtHoursPanel.setAttribute('hidden', ''); mainHrsPanel.parentNode.appendChild(domExtHoursPanel); return domExtHoursPanel; } function get404ElementFromPage() { const page404Elements = document.getElementsByClassName("page-404"); const page404 = page404Elements?.[0]; return page404; } function buildPageFor404Page(objMsg, convertToHTML) { const page404 = get404ElementFromPage(); if(!page404) return; const title = objMsg.content?.name; const image = objMsg.content?.serviceImage; let serviceOverview = ""; let serviceDetails = ""; let localCopy = ""; objMsg.content?.serviceOverview?.json?.content?.forEach((node) => { serviceOverview += convertToHTML(node); }); objMsg.content?.serviceDetails?.json?.content?.forEach((node) => { serviceDetails += convertToHTML(node); }); objMsg.content?.localCopy?.json?.content?.forEach((node) => { localCopy += convertToHTML(node); }); page404.innerHTML = objMsg?.templateHtml .replace("{{EE_TITLE}}", title) .replaceAll("{{EE_IMAGE}}", image) .replace("{{EE_SERVICE_OVERVIEW}}", serviceOverview) .replace("{{EE_SERVICE_DETAILS}}", serviceDetails) .replace("{{EE_LOCAL_COPY}}", localCopy); } const formatPhoneNumber = (phoneNumberString) => { if(!phoneNumberString) return ""; if(phoneNumberString.length < 4) { return `(${phoneNumberString})`; } if(phoneNumberString.length < 6) { return `(${phoneNumberString.slice(0, 3)}) ${phoneNumberString.slice(3, phoneNumberString.length)}`; } return `(${phoneNumberString.slice(0, 3)}) ${phoneNumberString.slice(3, 6)}-${phoneNumberString.slice(6, phoneNumberString.length)}`; }; const scrollToContactInfo = () => { const contactInfo = document.getElementsByClassName('panel-section')?.[0]; if (!contactInfo) { return; } contactInfo.scrollIntoView({ behavior: 'smooth', block: 'center', }); }; function handleMessageReceived(event) { const whitelist = [ 'https://easyeditor.azureedge.net', 'https://easyeditoruat.azureedge.net', 'https://easyeditorprd.azureedge.net', 'https://easyeditor.nva.com', 'http://localhost:8910', ]; if (!whitelist.includes(event.origin)) { return; } document.body.style['pointer-events'] = 'none'; // Hide GTM banner const oldEmergencyBanner = document.getElementById('covid19_msg'); if (oldEmergencyBanner) { oldEmergencyBanner.style.display = 'none'; } const getTruncateChars = (text) => { let canvas = document.createElement('canvas'); canvas.style.cssText += 'display:none'; document.body.appendChild(canvas); let fillStr = ''; let dummyPara = document.createElement('p'); dummyPara.style.cssText = 'display:none'; let fontSize = window.innerWidth >= 1024 ? '18px' : '16px'; let fontFamily = 'OpenSansSemiBold, sans-serif'; if (document.getElementById('emergency-banner')) { document.querySelector('#emergency-banner').appendChild(dummyPara); let pDomTag = document.querySelector('#emergency-banner p'); fontFamily = window.getComputedStyle(pDomTag).fontFamily; fontSize = window.getComputedStyle(pDomTag).fontSize; document.querySelector('#emergency-banner').removeChild(dummyPara); } for (var i = 0; i < text.length; i++) { let ctx = canvas.getContext('2d'); ctx.font = `${fontSize} ${fontFamily}`; fillStr += text[i]; let windowWidth = window.innerWidth > 1600 ? 1600 : window.innerWidth; if ( ctx.measureText(fillStr.split('').join(String.fromCharCode(8202))) .width > (windowWidth - 30) * 2 - 100 ) { fillStr = fillStr.substr( 0, Math.min(fillStr.length, fillStr.lastIndexOf(' ')) ); break; } } document.body.removeChild(canvas); return fillStr.length; }; const getHTMLFromJson = (json) => { let localCopy = ''; const getText = (node) => { let paraContent = ''; node.content .filter((item) => item.nodeType === 'text') .map((item) => { if (item.marks.length > 0) { let formatted = item.value; item.marks.map((mark) => { if (mark.type === 'bold') formatted = '' + formatted + ''; if (mark.type === 'italic') formatted = '' + formatted + ''; }); paraContent += formatted; } else { paraContent += item.value; } }); return paraContent; }; json?.content?.map((node) => { if (node.nodeType == 'paragraph') { localCopy += `

${getText(node)}

`; } else if (node.nodeType === 'heading-1') { localCopy += `

${getText(node)}

`; } else if (node.nodeType === 'heading-2') { localCopy += `

${getText(node)}

`; } else if (node.nodeType === 'heading-3') { localCopy += `

${getText(node)}

`; } else if (node.nodeType === 'heading-4') { localCopy += `

${getText(node)}

`; } }); return localCopy; }; const objMsg = event.data instanceof Object ? event.data : JSON.parse(event.data); if (objMsg.author) { // Message is for the emergency banner // eslint-disable-next-line no-inner-declarations function truncateNode(node, limit) { if (node.nodeType === Node.TEXT_NODE) { node.textContent = node.textContent.substring(0, limit); return limit - node.textContent.length; } node.childNodes.forEach((child) => { limit = truncateNode(child, limit); }); return limit; } const getTrimmedPara = () => { let width = window.innerWidth; const para = document.createElement('p'); para.innerHTML = objMsg.author.description; if (width) { truncateNode(para, getTruncateChars(para.innerText)); } return para; }; const trimmedParagraph = getTrimmedPara(); if ( document.getElementById('emergency-banner') == null || document .getElementById('emergency-banner') ?.className?.includes('preview-banner') ) { trimmedParagraph.style.color = 'white'; trimmedParagraph.style.marginBottom = 0; let allAnchors = trimmedParagraph.querySelectorAll('a'); allAnchors.forEach((each) => { each.style.textDecoration = 'underline'; each.style.color = 'white'; }); } let mainParagraph = document.createElement('p'); mainParagraph.innerHTML = objMsg.author.description; if (mainParagraph.innerText.length != trimmedParagraph.innerText.length) { trimmedParagraph.appendChild(document.createTextNode('... ')); let readmoreAnchor = document.createElement('a'); readmoreAnchor.href = ''; readmoreAnchor.style.color = 'white'; readmoreAnchor.style.textDecoration = 'underline'; readmoreAnchor.innerHTML = 'Read More'; trimmedParagraph.appendChild(readmoreAnchor); } const colors = { Corporate: { heroCTA: '#007f85' }, EarthyV1: { heroCTA: '#6a7a62' }, EarthyV2: { heroCTA: '#063b5d' }, EarthyV3: { heroCTA: '#f59174' }, Equine: { heroCTA: '#423F40' }, ModernV1: { heroCTA: '#527c8e' }, ModernV2: { heroCTA: '#ff5338' }, ModernV3: { heroCTA: '#5069e7' }, OutdoorV1: { heroCTA: '#f66e00' }, OutdoorV2: { heroCTA: '#4b99b1' }, OutdoorV3: { heroCTA: '#fe3725' }, PetSuites: { heroCTA: '#4a0d66' }, PlayfulV1: { heroCTA: '#745af6' }, PlayfulV2: { heroCTA: '#65b766' }, PlayfulV3: { heroCTA: '#ff8141' }, PreciseV1: { heroCTA: '#00a7ff' }, PreciseV2: { heroCTA: '#296293' }, undefined: { heroCTA: 'rgb(255, 0, 0)' }, null: { heroCTA: 'rgb(255, 0, 0)' }, }; const bannerColorClasses = { 'Choose a value': 'rgb(255, 0, 0)', Red: 'rgb(255, 0, 0)', Grey: 'rgb(118, 118, 118)', 'Theme Color': colors[objMsg.websiteTheme].heroCTA, }; const domEmergencyBanner = document.getElementById('emergency-banner'); if (domEmergencyBanner) { if (!objMsg.showBanner) { domEmergencyBanner.style.display = 'none'; } else { domEmergencyBanner.style.display = 'block'; domEmergencyBanner.innerHTML = ''; domEmergencyBanner.appendChild(trimmedParagraph); } domEmergencyBanner.style.background = bannerColorClasses[objMsg.bannerBackgroundColor || 'Red']; } else { /*console.log( 'Message for emergency banner received but DOM not found. Creating...' );*/ const domNewEB = document.createElement('div'); domNewEB.setAttribute('id', 'emergency-banner'); domNewEB.style.color = 'white'; domNewEB.style.width = '100%'; domNewEB.style.height = '78px'; domNewEB.style.background = bannerColorClasses[objMsg.bannerBackgroundColor || 'Red']; domNewEB.style.padding = '15px'; domNewEB.style.textAlign = 'center'; domNewEB.classList.add('banner-div'); domNewEB.classList.add('preview-banner'); domNewEB.innerHTML = ''; domNewEB.appendChild(trimmedParagraph); document.body.insertBefore(domNewEB, document.body.firstChild); if (!objMsg.showBanner) { domNewEB.style.display = 'none'; } else { domNewEB.style.display = null; } } } else if (objMsg.type === 'EmergencyBanner') { // Message is for the emergency banner // eslint-disable-next-line no-inner-declarations function truncateNode(node, limit) { if (node.nodeType === Node.TEXT_NODE) { node.textContent = node.textContent.substring(0, limit); return limit - node.textContent.length; } node.childNodes.forEach((child) => { limit = truncateNode(child, limit); }); return limit; } const getTrimmedPara = () => { let width = window.innerWidth; const para = document.createElement('p'); para.innerHTML = objMsg.content.description; if (width) { truncateNode(para, getTruncateChars(para.innerText)); } return para; }; const trimmedParagraph = getTrimmedPara(); if ( document.getElementById('emergency-banner') == null || document .getElementById('emergency-banner') ?.className?.includes('preview-banner') ) { trimmedParagraph.style.color = 'white'; trimmedParagraph.style.marginBottom = 0; let allAnchors = trimmedParagraph.querySelectorAll('a'); allAnchors.forEach((each) => { each.style.textDecoration = 'underline'; each.style.color = 'white'; }); } let mainParagraph = document.createElement('p'); mainParagraph.innerHTML = objMsg.content.description; if (mainParagraph.innerText.length != trimmedParagraph.innerText.length) { trimmedParagraph.appendChild(document.createTextNode('... ')); let readmoreAnchor = document.createElement('a'); readmoreAnchor.href = ''; readmoreAnchor.style.color = 'white'; readmoreAnchor.style.textDecoration = 'underline'; readmoreAnchor.innerHTML = 'Read More'; trimmedParagraph.appendChild(readmoreAnchor); } const colors = { Corporate: { heroCTA: '#007f85', }, EarthyV1: { heroCTA: '#6a7a62', }, EarthyV2: { heroCTA: '#063b5d', }, EarthyV3: { heroCTA: '#f59174', }, Equine: { heroCTA: '#423F40', }, ModernV1: { heroCTA: '#527c8e', }, ModernV2: { heroCTA: '#ff5338', }, ModernV3: { heroCTA: '#5069e7', }, OutdoorV1: { heroCTA: '#f66e00', }, OutdoorV2: { heroCTA: '#4b99b1', }, OutdoorV3: { heroCTA: '#fe3725', }, PetSuites: { heroCTA: '#4a0d66', }, PlayfulV1: { heroCTA: '#745af6', }, PlayfulV2: { heroCTA: '#65b766', }, PlayfulV3: { heroCTA: '#ff8141', }, PreciseV1: { heroCTA: '#00a7ff', }, PreciseV2: { heroCTA: '#296293', }, undefined: { heroCTA: 'rgb(255, 0, 0)', }, null: { heroCTA: 'rgb(255, 0, 0)', }, }; const bannerColorClasses = { 'Choose a value': 'rgb(255, 0, 0)', Red: 'rgb(255, 0, 0)', Grey: 'rgb(118, 118, 118)', 'Theme Color': colors[objMsg.content.websiteTheme].heroCTA, }; const domEmergencyBanner = document.getElementById('emergency-banner'); if (domEmergencyBanner) { if (!objMsg.content.showBanner) { domEmergencyBanner.style.display = 'none'; } else { domEmergencyBanner.style.display = 'block'; domEmergencyBanner.innerHTML = ''; domEmergencyBanner.appendChild(trimmedParagraph); } domEmergencyBanner.style.background = bannerColorClasses[objMsg.content.bannerBackgroundColor || 'Red']; } else { const domNewEB = document.createElement('div'); domNewEB.setAttribute('id', 'emergency-banner'); domNewEB.style.color = 'white'; domNewEB.style.width = '100%'; domNewEB.style.height = '78px'; domNewEB.style.background = bannerColorClasses[objMsg.content.bannerBackgroundColor || 'Red']; domNewEB.style.padding = '15px'; domNewEB.style.textAlign = 'center'; domNewEB.classList.add('banner-div'); domNewEB.classList.add('preview-banner'); domNewEB.innerHTML = ''; domNewEB.appendChild(trimmedParagraph); document.body.insertBefore(domNewEB, document.body.firstChild); /*console.log( 'creating banner and appending read more if truncate text and original text are not equal' );*/ if (!objMsg.content.showBanner) { domNewEB.style.display = 'none'; } else { domNewEB.style.display = null; } } } else if (objMsg.editingHours) { const domMainHoursTab = document.getElementById('tab_0'); let domExtHoursTab = document.getElementById('tab_1'); const domMainHoursPanel = document.getElementById('tab-list-item-0'); let domExtHoursPanel = document.getElementById('tab-list-item-1'); if (objMsg.editingHours === 'main') { toggleHoursTab(domMainHoursTab, true); toggleHoursPanel(domMainHoursPanel, true); toggleHoursTab(domExtHoursTab, false); toggleHoursPanel(domExtHoursPanel, false); } else { if (!domExtHoursTab) { domExtHoursTab = createExtendedHrsTab(domMainHoursTab); } if (!domExtHoursPanel) { domExtHoursPanel = createExtendedHrsPanel(domMainHoursPanel); } toggleHoursTab(domMainHoursTab, false); toggleHoursPanel(domMainHoursPanel, false); toggleHoursTab(domExtHoursTab, true); toggleHoursPanel(domExtHoursPanel, true); } } else if (objMsg.mainHours || objMsg.extendedHours) { let domMainHoursTab = document.getElementById('tab_0'); let domExtHoursTab = document.getElementById('tab_1'); let domMainHoursPanel = document.getElementById('tab-list-item-0'); let domExtHoursPanel = document.getElementById('tab-list-item-1'); if (!objMsg.haveExtendedHours) { if (domExtHoursTab) domExtHoursTab.remove(); if (domExtHoursPanel) domExtHoursPanel.remove(); domMainHoursTab?.classList.remove('bar'); toggleHoursTab(domMainHoursTab, true); toggleHoursPanel(domMainHoursPanel, true); } else { if (!domExtHoursTab) { domExtHoursTab = createExtendedHrsTab(domMainHoursTab); } if (!domExtHoursPanel) { domExtHoursPanel = createExtendedHrsPanel(domMainHoursPanel); } } if (domExtHoursPanel && objMsg.haveExtendedHours) { updateHours( domExtHoursPanel, objMsg.extendedHours.extendedHours, objMsg.extendedHours.c_extendedAdditionalHoursText || '' ); } if (domMainHoursPanel) { updateHours( domMainHoursPanel, objMsg.mainHours.hours, objMsg.mainHours.additionalHoursText || '' ); } } else if (objMsg.scrollToStaffId || objMsg.scrollToGroupId) { if (objMsg.scrollToGroupId && !objMsg.scrollToStaffId) { let scrollToEl = document.getElementById(objMsg.scrollToGroupId); scrollToEl?.scrollIntoView({ behavior: 'smooth', block: 'start', }); } else if (objMsg.scrollToGroupId && objMsg.scrollToStaffId) { let groupElem = document.getElementById(objMsg.scrollToGroupId); // let scrollToEl = groupElem.querySelector( // `[id="${objMsg.scrollToStaffId}"]` // ); let scrollToEl = document.getElementById(objMsg.scrollToStaffId); scrollToEl?.scrollIntoView({ behavior: 'smooth', block: 'start', }); } } else if (objMsg.type === 'UpdateId') { const element = document.getElementById(objMsg.content.old); if (element) element.id = objMsg.content.new; } else if (objMsg.type === 'Services') { if (!Array.isArray(objMsg.content)) { return; } // Get all group keys const groups = objMsg.content.map((group) => group.key); // Get group sections container div const parent = window.document.querySelectorAll('.wrapper')[0]; const serviceBlade = parent.getElementsByClassName("services-blade"); const existingServicesIds = [...serviceBlade].map(element => element.parentElement?.getAttribute("id")); // Remove sections that are not in the new list existingServicesIds?.forEach(id => { if(!groups.includes(id)) { const section = document.getElementById(id); section?.remove(); } }); // get new groups const newGroups = groups?.filter(id => !existingServicesIds.includes(id)); const globalFooter = parent.getElementsByClassName('globalFooter')[0]; // ADD GROUP newGroups .forEach((id) => { // Clone the last group const lastGroup = serviceBlade?.[0]?.parentElement; if(!lastGroup) return; const clone = lastGroup.cloneNode(true); clone.id = id; clone.getElementsByTagName('h2')[0].innerHTML = objMsg.content.find( (group) => group.key === id ).groupName; const serviceTileContainer = clone.getElementsByClassName( 'service-tile-container' )[0]; serviceTileContainer.innerHTML = ''; parent.insertBefore(clone, globalFooter); }); // REORDER GROUPS groups.forEach((id) => { const section = document.getElementById(id); if (!section) return; parent.insertBefore(section, globalFooter); }); const aServiceDetailClone = document.querySelectorAll("a.service-tile")?.[0]; objMsg.content.forEach((group) => { // Get all staff keys const services = group.services.map( (service) => service.serviceEntryId ); // Get group section const domGroupSection = document.getElementById(group.key); //Update Group description const groupDescription = domGroupSection?.getElementsByClassName('blade-description')[0]; let description = ''; group.bodyText?.json?.content .filter((para) => para.nodeType == 'paragraph') .map((para) => { para.content .filter((item) => item.nodeType === 'text') .map((item) => { if (item.marks.length > 0) { let formatted = item.value; item.marks.map((mark) => { if (mark.type === 'bold') formatted = '' + formatted + ''; if (mark.type === 'italic') formatted = '' + formatted + ''; }); description += formatted; } else { description += item.value + '\n'; } }); }); if (groupDescription) { groupDescription.innerHTML = `

${description}

`; } // Hide services if (group.hideBlade) { domGroupSection?.setAttribute('style', 'display: none'); } if(!aServiceDetailClone) return; const serviceSectionParent = domGroupSection.getElementsByClassName('service-tile-container')?.[0]; if(!serviceSectionParent) return; // create the new service section const clone = aServiceDetailClone.cloneNode(true); group.services .filter((s) => !document.getElementById(s.serviceEntryId)) ?.forEach((newService) => { const newClone = clone.cloneNode(true); newClone.id = newService.serviceEntryId; const header = newClone.getElementsByClassName('card-header')[0]; const innerHeader = header.getElementsByTagName('a')[0] || header; innerHeader.innerHTML = newService.name; const bodyText = newClone.getElementsByClassName('card-rich-text')[0]; let description = ''; newService.serviceOverview.json.content && newService.serviceOverview.json.content .filter((para) => para.nodeType == 'paragraph') .map((para) => { para.content .filter((item) => item.nodeType === 'text') .map((item) => { if (item.marks.length > 0) { let formatted = item.value; item.marks.map((mark) => { if (mark.type === 'bold') formatted = '' + formatted + ''; if (mark.type === 'italic') formatted = '' + formatted + ''; }); description += formatted; } else { description += item.value + '\n'; } }); description += '
'; }); bodyText.innerHTML = `

${description}

`; const picture = newClone.querySelector('.image-container picture'); const image = newClone.querySelector('.image-container img'); image.src = `https:${newService.serviceImage}?fit=fill&fm=webp&h=334&w=375&q=72`; picture.innerHTML = ''; // remove the source tags picture.append(image); serviceSectionParent.append(newClone); }); //Remove old services [...domGroupSection?.getElementsByClassName('service-tile')] .map((node) => node.id) .filter((sId) => !services.includes(sId)) .forEach((s) => document.getElementById(s).remove()); // REORDER STAFF services.map((id) => { serviceSectionParent.append( domGroupSection.querySelector(`[id="${id}"]`) ); }); group.services.forEach((s) => { document .getElementById(s.serviceEntryId) ?.setAttribute( 'style', `display: ${s.hideService ? 'none' : null}` ); }); }); // make visible groups if hideBlade is false objMsg.content.forEach((group) => { const domGroupSection = document.getElementById(group.key); if (!domGroupSection) return; if (!group.hideBlade) { domGroupSection?.setAttribute('style', 'display: block'); }else{ domGroupSection?.setAttribute('style', 'display: none'); } }); } else if (objMsg.type === 'ServicesUpdateGroupDescription') { const group = objMsg.content; // Get group section const domGroupSection = document.getElementById(group.key); //Update Group description const groupDescription = domGroupSection?.getElementsByClassName('blade-description')[0]; let description = ''; group.bodyText?.json?.content .filter((para) => para.nodeType == 'paragraph') .map((para) => { para.content .filter((item) => item.nodeType === 'text') .map((item) => { if (item.marks.length > 0) { let formatted = item.value; item.marks.map((mark) => { if (mark.type === 'bold') formatted = '' + formatted + ''; if (mark.type === 'italic') formatted = '' + formatted + ''; }); description += formatted; } else { description += item.value + '\n'; } }); }); groupDescription.innerHTML = `

${description}

`; } else if (objMsg.type === 'ServicesDetailsUpdateLocalCopy') { const domDetails = document.getElementById('LocalCopyDiv'); const getText = (node) => { let paraContent = ''; node.content .filter((item) => item.nodeType === 'text') .map((item) => { if (item.marks.length > 0) { let formatted = item.value; item.marks.map((mark) => { if (mark.type === 'bold') formatted = '' + formatted + ''; if (mark.type === 'italic') formatted = '' + formatted + ''; }); paraContent += formatted; } else { paraContent += item.value; } }); return paraContent; }; const convertToHTML = (node) => { let textHTML = ''; if (node.nodeType == 'paragraph') { textHTML += `

${getText(node)}

`; } else if (node.nodeType === 'heading-1') { textHTML += `

${getText(node)}

`; } else if (node.nodeType === 'heading-2') { textHTML += `

${getText(node)}

`; } else if (node.nodeType === 'heading-3') { textHTML += `

${getText(node)}

`; } else if (node.nodeType === 'heading-4') { textHTML += `

${getText(node)}

`; } return textHTML; }; if(!domDetails){ buildPageFor404Page(objMsg, convertToHTML); return; }; let localCopy = ''; objMsg.content.localCopy?.json?.content?.forEach((node) => { localCopy += convertToHTML(node); }); domDetails.innerHTML = `${localCopy}`; } else if (objMsg.type === 'ServicesDetails') { //console.log('Service Details msg received'); } else if (objMsg.type === 'ServicesDeleteGroup') { const groups = objMsg.content.groups; groups?.forEach((group) => { if (group.hideBlade) { // Get group section const domGroupSection = document.getElementById(group.key); domGroupSection.setAttribute('style', 'display: none'); } }); } else if (objMsg.type === 'ServicesAddExistingGroup') { const groups = objMsg.content; // Get group sections container div const parent = window.document.querySelectorAll('.wrapper')[0]; groups.forEach((group) => { // Get group section if (group.hideBlade === true) { return; } const domGroupSection = document.getElementById(group.key); if (domGroupSection?.style?.display === 'none') { // relocate the element to the bottom parent.insertBefore(domGroupSection, parent.lastChild); } domGroupSection.setAttribute('style', 'display: block'); }); if(objMsg.goToItem) { document.getElementById(objMsg.goToItem).scrollIntoView({ behavior: 'smooth', block: 'center', }); } } else if (objMsg.type === 'ServicesAddGroup') { // Get all group keys const groups = objMsg.content.map((group) => group.key); // Get group sections container div const parent = window.document.querySelectorAll('.wrapper')[0]; // Get all the section tags inside div class wrapper const sections = parent.getElementsByClassName('nva-service-blade'); // Extract IDs of group sections only const rawGroupSectionIds = []; for (let i = 0; i < sections.length; i++) { if ( sections[i].parentElement.getAttribute('class') === 'p-services wrapper' && sections[i].hasAttribute('id') ) rawGroupSectionIds.push(sections[i].id); } // cleaned group Sections const groupSectionIds = rawGroupSectionIds.filter((id) => groups.includes(id) ); // ADD GROUP groups .filter((id) => !groupSectionIds.includes(id)) .forEach((id) => { // Clone the last group const lastGroup = document.getElementById( groupSectionIds[groupSectionIds.length - 1] ); const clone = lastGroup.cloneNode(true); clone.id = id; clone.getElementsByTagName('h2')[0].innerHTML = objMsg.content.find( (group) => group.key === id ).groupName; const serviceTileContainer = clone.getElementsByClassName( 'service-tile-container' )[0]; serviceTileContainer.innerHTML = ''; parent.insertBefore(clone, parent.lastChild); }); if(objMsg.goToItem) { document.getElementById(objMsg.goToItem).scrollIntoView({ behavior: 'smooth', block: 'center', }); } } else if (objMsg.type === 'ServicesAddService') { const group = objMsg.content; //Get the group section const domGroupSection = document.getElementById(group.key); //Get a clone of a service tile const clone = document .getElementsByClassName('service-tile')[0] .cloneNode(true); //Get the service tile container const serviceTileContainer = domGroupSection.getElementsByClassName( 'service-tile-container' )[0]; group.services.forEach((s) => { document .getElementById(s.serviceEntryId) ?.setAttribute('style', `display: ${s.hideService ? 'none' : null}`); }); group.services .filter((s) => !document.getElementById(s.serviceEntryId)) .forEach((service) => { clone.id = service.serviceEntryId; clone.getElementsByTagName('h3')[0].innerHTML = service.name; let serviceOverview = getHTMLFromJson(service.serviceOverview.json); clone.getElementsByClassName('card-rich-text')[0].innerHTML = serviceOverview; const picture = clone.querySelector('.image-container picture'); const image = clone.querySelector('.image-container img'); image.src = `https:${service.serviceImage}?fit=fill&fm=webp&h=334&w=375&q=72`; picture.innerHTML = ''; // remove the source tags picture.append(image); serviceTileContainer.appendChild(clone); }); } else if (objMsg.type === 'contactInfo') { let liPhoneNumber = document.getElementById('phone-number'); if (!liPhoneNumber) { liPhoneNumber = document.getElementById('nva-contact-us-card__list-item phone-number'); } let liTextNumber = document.getElementById('text-number'); let liFaxNumber = document.getElementById('fax-number'); const setContactInfoPhoneNumber = () => { if(!liPhoneNumber) return; liPhoneNumber.innerHTML = ''; if(!objMsg?.content?.phone) return; let formattedPhone = formatPhoneNumber(objMsg?.content?.phone); if(!formattedPhone) return; let template = objMsg?.template?.replaceAll('{EE_LABEL}', 'Phone')?.replaceAll('{EE_NUMBER}', formattedPhone); if(!template) return; liPhoneNumber.innerHTML = template; }; setContactInfoPhoneNumber(); const setContactInfoTextNumber = () => { if(!liTextNumber) return; liTextNumber.innerHTML = ''; if(!objMsg?.content?.text) return; let formattedTextNumber = formatPhoneNumber(objMsg?.content?.text); if(!formattedTextNumber) return; let template = objMsg?.template?.replaceAll('{EE_LABEL}', 'Text')?.replaceAll('{EE_NUMBER}', formattedTextNumber); if(!template) return; liTextNumber.innerHTML = template; }; setContactInfoTextNumber(); const setContactInfoFaxNumber = () => { if(!liFaxNumber) return; liFaxNumber.innerHTML = ''; if(!objMsg?.content?.fax) return; let formattedFaxNumber = formatPhoneNumber(objMsg?.content?.fax); if(!formattedFaxNumber) return; let template = objMsg?.template?.replaceAll('{EE_LABEL}', 'Fax')?.replaceAll('{EE_NUMBER}', formattedFaxNumber); if(!template) return; liFaxNumber.innerHTML = template; }; setContactInfoFaxNumber(); }else if (objMsg.goToLocalCopy) { let scrollToEl = document.getElementById("LocalCopyDiv"); scrollToEl?.scrollIntoView({ behavior: 'smooth', block: 'end', }); } else { // Staff Info if (Array.isArray(objMsg)) { // Get all group keys const groups = objMsg.map((group) => group.key); // Get group sections container div const parent = window.document.querySelectorAll('.wrapper')[0]; // Get all the section tags inside div class wrapper const sections = parent.getElementsByTagName('section'); // Extract IDs of group sections only const rawGroupSectionIds = []; for (let i = 0; i < sections.length; i++) { if ( sections[i].parentElement.getAttribute('class') === 'wrapper' && sections[i].hasAttribute('id') ) rawGroupSectionIds.push(sections[i].id); } // DELETE GROUP rawGroupSectionIds .filter((id) => { // return !groups.includes(id) && id.length > 3 return !groups.includes(id); }) .map((id) => { document.getElementById(id).remove(); }); // cleaned group Sections const groupSectionIds = rawGroupSectionIds.filter((id) => groups.includes(id) ); // ADD GROUP groups .filter((id) => !groupSectionIds.includes(id)) .map((id) => { // Clone the last group const lastGroup = document.getElementById( groupSectionIds[groupSectionIds.length - 1] ); const clone = lastGroup.cloneNode(true); clone.id = id; const staffDesc = clone.getElementsByClassName('staff-description'); if (staffDesc.length > 0) { staffDesc[0].remove(); } clone.style.background = 'white'; clone.getElementsByTagName('h2')[0].style.color = 'black'; clone.getElementsByTagName('h2')[0].innerHTML = objMsg.find( (group) => group.key === id ).groupName; const cloneSections = clone.getElementsByTagName('section'); while (cloneSections[0]) { cloneSections[0].parentNode.removeChild(cloneSections[0]); } parent.insertBefore( clone, parent.getElementsByClassName('globalFooter')[0] ); }); // REORDER GROUPS groups.map((id) => { parent.insertBefore( document.getElementById(id), parent.getElementsByClassName('globalFooter')[0] ); }); objMsg.forEach((group) => { // Get all staff keys const staffMembers = group.staffMembers.map( (staff) => staff.staffEntryId ); // Get group section const domGroupSection = document.getElementById(group.key); // EDIT GROUP if (domGroupSection.getElementsByTagName('h2')[0]) { domGroupSection.getElementsByTagName('h2')[0].innerHTML = group.groupName; } else { const h2Element = window.document.createElement('h2'); h2Element.classList.add('sc-1lhs05s-0'); h2Element.classList.add('bvWGOr'); h2Element.classList.add('bQuPGT'); h2Element.classList.add('staff-heading'); h2Element.setAttribute('role', 'heading'); h2Element.setAttribute('aria-level', '2'); h2Element.id = group.groupName; h2Element.innerHTML = !group.groupName || group.groupName == 'No Name' ? '' : group.groupName; domGroupSection .getElementsByClassName('tile-wrapper')[0] .insertBefore( h2Element, domGroupSection.getElementsByClassName('tile-wrapper')[0] .firstChild ); } if (group.bodyText?.json) { let description = ''; group.bodyText.json.content .filter((para) => para.nodeType == 'paragraph') .map((para) => { para.content .filter((item) => item.nodeType === 'text') .map((item) => { if (item.marks.length > 0) { let formatted = item.value; item.marks.map((mark) => { if (mark.type === 'bold') formatted = '' + formatted + ''; if (mark.type === 'italic') formatted = '' + formatted + ''; }); description += formatted; } else { description += item.value + '\n'; } }); description += '
'; }); if (domGroupSection.getElementsByClassName('staff-description')[0]) { let staffDesc = domGroupSection.getElementsByClassName('staff-description')[0]; staffDesc.innerHTML = ''; staffDesc.appendChild(window.document.createElement('p')); staffDesc.getElementsByTagName('p')[0].innerHTML = description; } else { const divElement = window.document.createElement('div'); divElement.classList.add('sc-wturor-0'); divElement.classList.add('kbsDvK'); divElement.classList.add('col-lg-8'); divElement.classList.add('col-sm-10'); divElement.classList.add('staff-description'); divElement.appendChild(window.document.createElement('p')); domGroupSection .getElementsByClassName('tile-wrapper')[0] .insertBefore( divElement, domGroupSection.getElementsByClassName('tile-wrapper')[0] .firstChild.nextSibling ); domGroupSection .getElementsByClassName('staff-description')[0] .getElementsByTagName('p')[0].innerHTML = description; } } else { //Remove description let staffElement = domGroupSection.getElementsByClassName('staff-description')[0]; staffElement && staffElement.remove(); } // Get all the section tags inside group section const sections = domGroupSection.getElementsByTagName('section'); // Set the correct Variation for the Staff Card for (let i = 0; i < sections.length; i++) { let section = sections[i]; let image = section.getElementsByTagName('img')[0]; let link = section.getElementsByClassName('blade-link')[0]?.firstChild; if (link) link.className = ''; if (group.variation === 'Variation-A') { image?.setAttribute( 'style', 'filter: none; transition: filter 0.3s ease-out 0s;' ); section.classList.remove('five-blade'); section.classList.add('three-blade'); if (link) { link.className = 'sg-btn-cpnt primary-anchor sc-1ux5mjm-0 gHSvbo arrow'; } } else { image?.setAttribute('style', ' height: 218px; object-fit: cover;'); section.classList.remove('three-blade'); section.classList.add('five-blade'); if (link) link.className = 'sc-1ux5mjm-0 chtvcU arrow'; } } // Extract IDs of staff sections let staffSectionIds = []; for (let i = 0; i < sections.length; i++) { staffSectionIds.push(sections[i].id); } // extract unique IDs only - because staff sections have duplicates // it is in div showCarouselContainer and showAllTilesContainer staffSectionIds = staffSectionIds.filter( (value, index, self) => self.indexOf(value) === index ); // DELETE STAFF staffSectionIds .filter((id) => !staffMembers.includes(id)) .map((id) => domGroupSection.querySelector(`[id="${id}"]`).remove()); // ADD STAFF staffMembers .filter( (id) => staffSectionIds.length === 0 || !staffSectionIds.includes(id) ) .map((id) => { // Staff info const staff = group.staffMembers.find( (staff) => staff.staffEntryId === id ); // Check for existing staff sections const existingStaffSections = domGroupSection.getElementsByTagName('section'); let newStaffSection = null; if (existingStaffSections.length > 0) { newStaffSection = existingStaffSections[0].cloneNode(true); newStaffSection.id = id; Array.from(newStaffSection.childNodes).forEach((node) => { if (node.classList?.contains('blade-subheading')) { node.remove(); } else if (node.classList?.contains('blade-para')) { node.remove(); } }); } else { newStaffSection = window.document.createElement('section'); newStaffSection.classList.add('sc-h1x7ke-0'); newStaffSection.classList.add('h1x7ke-0'); newStaffSection.classList.add('kNxsWf'); newStaffSection.classList.add('sc-h1x7ke-1'); newStaffSection.classList.add('h1x7ke-1'); newStaffSection.classList.add('gurLZX'); newStaffSection.classList.add('three-blade'); newStaffSection.id = id; const divImage = window.document.createElement('div'); divImage.classList.add('blade-image'); const imgTag = window.document.createElement('img'); imgTag.classList.add('sc-eu5zgc-0'); imgTag.classList.add('eu5zgc-0'); imgTag.classList.add('jyhTFI'); imgTag.classList.add('dWfdZB'); imgTag.classList.add('gqsKUR'); divImage .appendChild(window.document.createElement('picture')) .appendChild(imgTag); newStaffSection.appendChild(divImage); const pName = window.document.createElement('p'); pName.classList.add('sc-ovnq1p-0'); pName.classList.add('ovnq1p-0'); pName.classList.add('cLpOUX'); pName.classList.add('heading_three'); pName.classList.add('blade-heading'); pName.innerHTML = staff.name; newStaffSection.appendChild(pName); const pLink = window.document.createElement('p'); pLink.classList.add('sc-ovnq1p-0'); pLink.classList.add('ovnq1p-0'); pLink.classList.add('cLpOUX'); pLink.classList.add('blade-link'); const aViewProfile = window.document.createElement('a'); aViewProfile.classList.add('sc-1ux5mjm-0'); aViewProfile.classList.add('cUVdBo'); aViewProfile.classList.add('arrow'); aViewProfile.innerHTML = 'View Profile'; pLink.appendChild(aViewProfile); newStaffSection.appendChild(pLink); } // appendChild inside 8th div of the group section domGroupSection .getElementsByTagName('div')[7] .appendChild(newStaffSection); }); // only reorder and edit if there are staff members already if (domGroupSection.getElementsByTagName('section').length > 0) { const staffSectionParent = domGroupSection.getElementsByTagName('section')[0]?.parentNode; // REORDER STAFF staffMembers.map((id) => { staffSectionParent.append( domGroupSection.querySelector(`[id="${id}"]`) ); }); group.staffMembers.forEach((staff) => { // Get staff section const domStaffSection = domGroupSection.querySelector( `[id="${staff.staffEntryId}"]` ); const domImgParent = domStaffSection.getElementsByTagName('img')[0]; if (domImgParent) { domImgParent.setAttribute( 'srcset', staff.staffImage.includes('data:') ? staff.staffImage : staff.staffImage + '?fit=fill&fm=jpg&fl=progressive&h=360&w=328' ); if ( staff.staffImage.includes('data:') && !domStaffSection.classList.contains('five-blade') ) { domImgParent.style.height = '241px'; domImgParent.style.width = '220px'; domImgParent.style.objectFit = 'cover'; } } else { const divImage = domStaffSection.getElementsByClassName('blade-image')[0]; let pictureEle = divImage.getElementsByTagName('picture'); if (!pictureEle || pictureEle.length == 0) { const invalidSpan = divImage.getElementsByTagName('span'); if (invalidSpan) { divImage.removeChild(invalidSpan[0]); } const imgTag = window.document.createElement('img'); imgTag.classList.add('sc-eu5zgc-0'); imgTag.classList.add('eu5zgc-0'); imgTag.classList.add('jyhTFI'); imgTag.classList.add('dWfdZB'); imgTag.classList.add('gqsKUR'); if ( staff.staffImage.includes('data:') && !domStaffSection.classList.contains('five-blade') ) { imgTag.style.height = '241px'; imgTag.style.width = '220px'; imgTag.style.objectFit = 'cover'; } divImage .appendChild(window.document.createElement('picture')) .appendChild(imgTag); // divImage.classList.add("blade-image") imgTag.setAttribute( 'srcset', staff.staffImage.includes('data:') ? staff.staffImage : staff.staffImage + '?fit=fill&fm=jpg&fl=progressive&h=360&w=328' ); } } Array.prototype.slice .call(domStaffSection.getElementsByTagName('source')) .forEach((source) => { domImgParent.parentNode?.removeChild(source); }); if (domStaffSection.classList.contains('five-blade')) { // domStaffSection.getElementsByTagName('img')[0].style.width = // '198px'; domStaffSection.getElementsByTagName('img')[0].style.height = '218px'; domStaffSection.getElementsByTagName('img')[0].style.objectFit = 'cover'; } domStaffSection.getElementsByTagName('p')[0].innerHTML = staff.name; domStaffSection.getElementsByTagName('p')[0].style.color = 'black'; if (staff.title) { const titleElement = domStaffSection.getElementsByClassName('blade-subheading')[0]; if (titleElement) { titleElement.innerHTML = staff.title; } else { let p = null; if ( domStaffSection.previousSibling && domStaffSection.previousSibling.tagName == 'SECTION' ) { const previousStaffSection = domStaffSection.previousSibling; if ( previousStaffSection.getElementsByClassName( 'blade-subheading' ).length > 0 ) { p = previousStaffSection .getElementsByClassName('blade-subheading')[0] .cloneNode(true); } } if (!p) { p = window.document.createElement('p'); p.classList.add('ovnq1p-0'); p.classList.add('cLpOUX'); p.classList.add('heading_four'); p.classList.add('blade-subheading'); p.style.color = 'black'; } p.innerHTML = staff.title; domStaffSection.insertBefore( p, domStaffSection.getElementsByClassName('blade-heading')[0] .nextSibling ); } } else { // if no title in objMsg but title element is in the DOM, remove const titleElement = domStaffSection.getElementsByTagName('p')[1]; if ( titleElement && titleElement.classList.contains('blade-subheading') ) { titleElement.remove(); } } if (staff.shortBio?.json) { let shortBio = ''; staff.shortBio.json.content .filter((para) => para.nodeType == 'paragraph') .map((para) => { para.content .filter((item) => item.nodeType === 'text') .map((item) => { if (item.marks.length > 0) { let formatted = item.value; item.marks.map((mark) => { if (mark.type === 'bold') formatted = '' + formatted + ''; if (mark.type === 'italic') formatted = '' + formatted + ''; }); shortBio += formatted; } else { shortBio += item.value + '\n'; } }); shortBio += '
'; }); if ( domStaffSection .getElementsByTagName('p') [staff.title ? 2 : 1]?.classList?.contains('blade-link') ) { const domParent = domStaffSection.getElementsByTagName('p')[0].parentNode; const div = window.document.createElement('div'); div.classList.add('sc-wturor-0'); div.classList.add('wturor-0'); div.classList.add('iQHNbA'); div.classList.add('blade-para'); const shortBioP = window.document.createElement('p'); shortBioP.style.color = 'black'; div.appendChild(shortBioP); domParent.insertBefore( div, domParent.getElementsByClassName('blade-link')[0] ); } if ( domStaffSection.getElementsByTagName('p')[ staff.title ? 2 : 1 ] && staff.staffVariation !== 'Variation-B' ) { domStaffSection.getElementsByTagName('p')[ staff.title ? 2 : 1 ].innerHTML = shortBio; } else { domStaffSection .getElementsByClassName('blade-para')[0] ?.remove(); } } else { // if shortbio is deleted, remove element too const shortBioElement = domStaffSection.getElementsByTagName('div')[1]; if (shortBioElement?.classList.contains('blade-para')) { shortBioElement.remove(); } } }); } }); } } if(objMsg.goToContactInfo){ scrollToContactInfo(); } }