Conoscere, installare e manutenere una vasca di sedimentazione in un laboratorio odontotecnico: acqua chiarificata, rete protetta, conformità e consigli di...
{# <- widget custom, non bloquant #}
// Ajoute le petit label après le prix si absent
function addInlineLabelAfterPrices() {
var countryNow = "FR";
var label = labelForCountry(countryNow);
var priceNodes = document.querySelectorAll(
".money, [data-product-price], [data-price], [data-cart-total], [class*='price'] .money"
);
priceNodes.forEach(function(el){
if (!el) return;
var txt = (el.textContent || "").trim();
if (!isPriceText(txt)) return;
// si le prix contient déjà TTC/HT dans son propre texte (rare) -> ne rien faire
if (/\b(HT|TTC)\b/i.test(txt)) return;
// si juste après on a déjà notre label -> stop
if (el.nextElementSibling && isOurLabelNode(el.nextElementSibling)) return;
// sur collections : on veut FORCER le petit label même si le thème affiche ailleurs
// sur produits/panier : idem, on ajoute si absent
var s = document.createElement("span");
s.className = "md-tax-label";
s.textContent = " " + label;
try { el.insertAdjacentElement("afterend", s); } catch(e) {}
});
}
// Corrige les doublons texte "TTC TTC" / "HT HT" (au cas où)
function normalizeTextDuplicates() {
// léger, sans casser le DOM : uniquement sur éléments texte simples
document.querySelectorAll("span, small").forEach(function(el){
if (!el || !el.textContent) return;
if (isOurLabelNode(el)) return;
if (el.children && el.children.length) return;
var t = el.textContent.replace(/\s+/g," ").trim();
if (!t) return;
var fixed = t
.replace(/\b(TTC)\s+\1\b/gi, "TTC")
.replace(/\b(HT)\s+\1\b/gi, "HT");
if (fixed !== t) el.textContent = fixed;
});
}
function runAll() {
// 1) pays
forceCountryIfNeeded();
// 2) collections : on supprime le "grand" du thème, puis on met le petit inline
removeThemeTaxOnlyInCards();
// 3) on met le petit label partout (collections + produits + panier)
addInlineLabelAfterPrices();
// 4) mini normalisation
normalizeTextDuplicates();
}
document.addEventListener("DOMContentLoaded", runAll);
window.addEventListener("pageshow", function(){ setTimeout(runAll, 120); });
document.addEventListener("shopify:section:load", function(){ setTimeout(runAll, 120); });
setTimeout(runAll, 900);
var mo = new MutationObserver(function(){ runAll(); });
mo.observe(document.documentElement, { childList: true, subtree: true });
})();