(function (w, d) {
w.tsUpdateMetaDescription = function () {
var existingTitle = document.querySelector('title').innerText;
document.querySelector('title').innerText = "***** Rating: 5.0 - 15 Reviews - " + existingTitle;
var existingDesc = document.querySelector('meta[name="description"]').getAttribute("content");
document.querySelector('meta[name="description"]').setAttribute("content", "***** Rating: 5.0 - 15 Reviews - " + existingDesc);
};
var timestamp = document.createElement("meta");
timestamp.setAttribute("name", "ts-timestamp");
timestamp.setAttribute("content", new Date().toLocaleString());
document.head.appendChild(timestamp);
var businessKey = "478j9t1a";
var locationKey = "";
var tenantKey = "";
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var accessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbnRpdHlJZCI6IjQ3OGo5dDFhIiwiZXhwIjoxNzQ4ODkxNjg2LCJpc3MiOiJUcnVzdGlzdCIsImF1ZCI6IldpZGdldHMifQ.2Tkmku6aqUq0EoH_qY8gyR2et4azoe63jRNZ_idBa7U";
function start(f) { /in/.test(document.readyState) ? setTimeout(start, 5, f) : f(); }
tsAddCssTag("https://fonts.googleapis.com/css2?family=Poppins&display=swap");;
tsAddCssTag("https://widgetassets.trustist.com/css/cleanslate.css");
tsAddCssTag("https://widgetassets.trustist.com/css/sidebar.css");
w.trustist ??= {};
w.trustist.sidebar = {
draw: function () {
if (d.getElementById("ts-json") === null) {
var filter = Array.prototype.filter;
var els = d.querySelectorAll('h1,title,h2');
var productName = "Kajal's Wellness Tree";
var field = filter.call(els, function (node) {
return node.innerText != "";
})[0];
if (typeof field !== "undefined") {
productName = field.innerText;
}
var json = "[{\"@type\":\"Product\",\"@id\":\"{{url}}#trustist\",\"description\":null,\"logo\":\"https://content.trustist.com/brandlogos/bd71f95b-19e3-4565-9008-a239bbf406c7.png\",\"image\":[\"https://content.trustist.com/brandlogos/bd71f95b-19e3-4565-9008-a239bbf406c7.png\"],\"name\":\"{{productName}}\",\"alternateName\":null,\"hasMap\":null,\"geo\":null,\"telephone\":null,\"url\":\"{{url}}\",\"address\":null,\"branchOf\":null,\"openingHoursSpecification\":null,\"sameAs\":[\"https://www.trustist.com/local-reviews/Website-Review-kajal-s-wellness-tree-reviews-4471.html\"],\"@context\":\"http://schema.org\",\"brand\":{\"@type\":\"Organization\",\"@id\":null,\"description\":null,\"logo\":\"https://content.trustist.com/brandlogos/bd71f95b-19e3-4565-9008-a239bbf406c7.png\",\"image\":[\"https://content.trustist.com/brandlogos/bd71f95b-19e3-4565-9008-a239bbf406c7.png\"],\"name\":\"Kajal\u0027s Wellness Tree\",\"alternateName\":null,\"hasMap\":null,\"geo\":null,\"telephone\":null,\"url\":null,\"address\":null,\"branchOf\":null,\"openingHoursSpecification\":null,\"sameAs\":null},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":5,\"bestRating\":5,\"worstRating\":1,\"reviewCount\":15},\"review\":{\"@type\":\"Review\",\"url\":\"https://www.trustist.com/local-reviews/Website-Review-kajal-s-wellness-tree-reviews-4471.html\",\"author\":{\"@type\":\"Person\",\"name\":\"Darshna Dave\",\"address\":null},\"datePublished\":\"2025-05-28T12:34:03.000Z\",\"headline\":\"\",\"isBasedOn\":null,\"reviewBody\":\"I first came across Kajal’s instagram page around Nov 2022. I was really impressed with the way she expressed herself and what she was saying so when she mentioned she was doing a retreat in Oct 2023, I signed up straight away, even though I did not know anyone else that was going. That was the first time I had made such a bold decision! \\r\\n\\r\\nIn the retreat Kajal had the first healing session with me where she said my heart chakra was completely closed and she worked on me to help remove some of the trapped trauma in my body and mind that I did not have access to. Later on she sent me a message saying that she saw a lot of blue in me, indicating that my throat chakra was also imbalanced. This was the first time I had heard about chakras and the effect trapped traumas can have on your body and mind. To be honest it was all very overwhelming, especially when I left the retreat because I knew I was coming back to the same things in my life. But that retreat was a game changer for me! The healing session, the daily practices of yoga, breathing and bring joy to your mind caused a shift in me to look more into the blocks that existed in me.\\r\\n\\r\\nSince my trip in 2023 I have more healing sessions with Kajal and doing more to bring balance with my mind, body and soul and aligning my energy. By doing this my life has changed and I have found my inner essence that gives me more choices in life and generally keeps me happy, no matter what life throws my way. \\r\\n\\r\\nI am so glad I took that bold decision of going to the retreat as my heart chakra has opened up and I have found love for myself. This was the key that I needed to start of my transformation.\",\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":5,\"bestRating\":5,\"worstRating\":1},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Trustist\",\"sameAs\":\"https://www.trustist.com\"},\"reply\":null,\"replyDate\":null,\"subject\":null},\"mpn\":\"{{url}}\",\"sku\":\"{{url}}\"}]";
var a = d;
var c = a.createElement("script");
c.type = 'application/ld+json';
c.id = 'ts-json';
c.innerText = json
.replace(new RegExp("{{url}}", 'g'), w.location.href)
.replace("{{productName}}", productName)
.replace("\"{{productDesc}}\"", JSON.stringify((d.body.innerText || d.body.textContent).replace(/[^ -~]+/g, "").substring(0, 200) + "..."));
a = a.getElementsByTagName("head")[0];
a.appendChild(c);
}
// iterate over all widgets on the page and render
var div = document.querySelector("[ts-sidebarWidget],div.ts-sidebarWidget");
if (!div) {
div = d.createElement('div');
div.setAttribute('ts-sidebarWidget', '');
d.body.appendChild(div);
}
if (div) {
tsDisplayWidget(div, businessKey, locationKey, tenantKey);
}
else {
}
}
};
start(w.trustist.sidebar.draw);
function tsDisplayWidget(target) {
// get options before cleanslate
var options = tsReadAttributes(target);
// draw the main template
var template = '
';
var theme = options.theme;
if (theme !== "white" && theme !== "blue" && theme !== "orange") theme = "white";
var buttonLogo = options.theme === "white" ? "TrustedBy-01.svg" : "TrustedBy-White-01.svg";
target.innerHTML = template
.replace(new RegExp("{{side}}", "g"), options.side)
.replace(new RegExp("{{theme}}", "g"), theme)
.replace(new RegExp("{{buttonLogo}}", "g"), buttonLogo)
.replace(new RegExp("{{buttonBottom}}", "g"), options.widgetBottom)
.replace(new RegExp("{{url}}", "g"), options.reviewPageUrl || "https://www.trustist.com/local-reviews/Website-Review-kajal-s-wellness-tree-reviews-4471.html");
// draw the reviews
var xhr = new XMLHttpRequest();
var url = tsBuildUrl(options);
xhr.open("GET", url);
xhr.onload = function () {
if (xhr.status === 200 && xhr.responseText !== "") {
var reviews = JSON.parse(xhr.responseText);
tsDrawReviews(target, reviews, options);
tsWireUp(options);
} else {
}
};
xhr.send();
}
function tsBuildUrl(options) {
var url = "https://widget.trustist.com/reviewlistdata?v=1&accessToken=" + accessToken + "&pageNum=1&pageSize=" + options.pageSize;
if (typeof tenantKey !== "undefined" && tenantKey !== "") url += "&tenantKey=" + tenantKey;
if (typeof businessKey !== "undefined" && businessKey !== "") url += "&businessKey=" + businessKey;
if (typeof locationKey !== "undefined" && locationKey !== "") url += "&locationKey=" + locationKey;
if (options.ratingsAbove > 0) url += "&ratingFrom=" + options.ratingsAbove;
if (options.exclude > '') url += "&exclude=" + options.exclude;
return url;
}
function tsDrawReviews(target, reviews, options) {
var reviewContent = '';
var template = '
';
var replyTemplate = '';
reviews.forEach(function (review) {
var d = new Date(review.datePublished);
var reviewDate = d.getDate() + ' ' + months[d.getMonth()] + ' ' + d.getFullYear();
var thisReview = template
.replace('{{reviewSourceLogo}}', review.image)
.replace('', review.author.name)
.replace('', reviewDate)
.replace('{{rating}}', (review.reviewRating.ratingValue / 2).toFixed(1))
.replace('{{reviewStarsWidth}}', ((130 * review.reviewRating.ratingValue / review.reviewRating.bestRating).toFixed(0)))
.replace('', review.reviewBody);
if (review.reply > '') {
var replyDate = new Date(review.replyDate);
var replyDateString = replyDate.getDate() + " " + months[replyDate.getMonth()] + " " + replyDate.getFullYear();
thisReview = thisReview.replace(
'',
replyTemplate
.replace('', review.reply)
.replace('', replyDateString));
}
reviewContent += thisReview;
});
target.innerHTML = target.innerHTML.replace('', reviewContent).replace('', reviews.length);
}
function tsReadAttributes(target) {
return {
pageSize: target.getAttribute("ts-page-size") || 20,
side: target.getAttribute("ts-side") === "left" ? "left" : "right",
ratingsAbove: parseInt(target.getAttribute("ts-ratings-above")) || 0,
exclude: target.getAttribute("ts-exclude") || "",
theme: target.getAttribute("ts-theme") || "white",
reviewPageUrl: target.getAttribute("ts-reviews-url"),
widgetBottom: target.getAttribute("ts-widget-bottom") || 13.0625,
};
}
function tsAddCssTag(url) {
var includedAlready = tsCheckIfIncluded(url);
var head = d.getElementsByTagName("head")[0];
if (!includedAlready) {
var tag = d.createElement("link");
tag.rel = "stylesheet";
tag.type = "text/css";
tag.href = url;
head.appendChild(tag);
}
}
function tsCheckIfIncluded(file) {
var links = d.getElementsByTagName("link");
for (var i = 0; i < links.length; i++) {
if (links[i].href?.substr(-file.length) === file)
return true;
}
var scripts = d.getElementsByTagName("script");
for (var j = 0; j < scripts.length; j++) {
if (scripts[j].src?.substr(-file.length) === file)
return true;
}
return false;
}
function addClass(element, className) {
if (element.classList) {
element.classList.add(className); // Modern Browsers
} else {
var currentClassName = element.className;
if (currentClassName.indexOf(className) === -1) {
element.className += ' ' + className; // Older Browsers
}
}
}
function removeClass(element, className) {
if (element.classList) {
element.classList.remove(className); // Modern Browsers
} else {
var currentClassName = ' ' + element.className + ' ';
var classToRemove = ' ' + className + ' ';
if (currentClassName.indexOf(classToRemove) !== -1) {
element.className = currentClassName.replace(classToRemove, ' ').trim(); // Older Browsers
}
}
}
function isTouchDevice() {
return 'ontouchstart' in window || navigator.maxTouchPoints;
}
function closeOverlayHover(e) {
if (isTouchDevice()) return; // Skip hover-close on touch devices
var overlay = d.getElementById('ts-sidebar-overlay');
var overlayInner = d.getElementById('ts-sidebar-overlay-inner');
var overlayPopoverLink = d.getElementById('ts-sidebar-read-more-reviews-btn');
removeClass(overlayInner, 'ts-sidebar-overlay-inner-visible');
removeClass(overlayPopoverLink, 'ts-sidebar-read-more-reviews-btn-visible');
overlayInner.addEventListener(
'transitionend',
function () {
removeClass(overlay, 'ts-sidebar-overlay-visible');
},
{ once: true }
);
}
function closeOverlayClick(e) {
var overlay = d.getElementById('ts-sidebar-overlay');
var overlayInner = d.getElementById('ts-sidebar-overlay-inner');
var overlayPopoverLink = d.getElementById('ts-sidebar-read-more-reviews-btn');
if (e.target === overlay || e.target.closest('.ts-sidebar-overlay-close-btn')) {
removeClass(overlayInner, 'ts-sidebar-overlay-inner-visible');
removeClass(overlayPopoverLink, 'ts-sidebar-read-more-reviews-btn-visible');
overlayInner.addEventListener(
'transitionend',
function () {
removeClass(overlay, 'ts-sidebar-overlay-visible');
},
{ once: true }
);
}
}
function openOverlay() {
var overlay = d.getElementById('ts-sidebar-overlay');
var overlayInner = d.getElementById('ts-sidebar-overlay-inner');
addClass(overlay, 'ts-sidebar-overlay-visible');
addClass(overlayInner, 'ts-sidebar-overlay-inner-visible');
}
function handleShowOverlayPopover() {
var overlayPopoverLink = d.getElementById('ts-sidebar-read-more-reviews-btn');
overlayPopoverLink.classList.add('ts-sidebar-read-more-reviews-btn-visible');
}
function tsWireUp(options) {
var button = d.getElementById('ts-sidebar-button');
var overlayInner = d.getElementById('ts-sidebar-overlay-inner');
var overlayCloseBtn = d.getElementById('ts-sidebar-overlay-close-btn');
if (isTouchDevice()) {
button.addEventListener('click', openOverlay);
} else {
button.addEventListener('mouseover', openOverlay);
overlayInner.addEventListener('mouseleave', closeOverlayHover);
}
overlayCloseBtn.addEventListener('click', closeOverlayClick);
overlayInner.addEventListener('scroll', handleShowOverlayPopover);
}
})(window, document);