@rr0/cms
Version:
RR0 Content Management System (CMS)
22 lines (21 loc) • 993 B
JavaScript
/**
* Replaces an existing <span class="place"> tag with clickable map trigger element.
*/
export class PlaceReplacer {
async replacement(context, original) {
let replacement;
const classes = Array.from(original.classList).filter(clazz => clazz !== "place");
const mode = classes[0] || "place";
const address = original.textContent ? original.textContent.replace(/\n/g, " ") : "";
const outputDoc = context.file.document;
replacement = outputDoc.createElement("span");
const params = original.dataset["params"];
const mapAddress = params !== null && params !== void 0 ? params : address;
replacement.setAttribute("onclick", `showMap(event,"${mapAddress}",true,"${mode}")`);
replacement.innerHTML = address;
replacement.className = "plac";
replacement.translate = false;
context.debug("\tReplacing place", original.innerHTML, "with", replacement);
return replacement;
}
}