function setDetailsExpanded(level0Expanded, level3Expanded) {
document.querySelectorAll("#api-migration-detail-body details.api-migration-level0-detail").forEach((value) => {
value.open = level0Expanded;
});
document.querySelectorAll("#api-migration-detail-body details.api-migration-level3-detail").forEach((value) => {
value.open = level3Expanded;
});
}
function makeDetails(title, cssClass) {
let details = document.createElement("details");
details.classList.add(cssClass);
details.open = true;
let summary = document.createElement("summary");
summary.innerText = title;
details.appendChild(summary);
return details;
}
function wrapWithDetails(elem) {
let details = makeDetails("show details...", "api-migration-level3-detail")
elem.replaceWith(details);
details.appendChild(elem);
}
function isH3OrAbove(node) {
let nodeName = node.nodeName;
return nodeName == "H1" || nodeName == "H2" || nodeName == "H3";
}
function wrapAfterTldr() {
document.querySelectorAll("#api-migration-detail-body div.admonition").forEach((value, key, parent) => {
if (value.id.startsWith("admonition-tldr")) {
let details = makeDetails("show details...", "api-migration-level0-detail")
value.insertAdjacentElement("afterend", details);
while (details.nextSibling != null && !isH3OrAbove(details.nextSibling)) {
details.appendChild(details.nextSibling);
}
}
});
}
function doApiMigrationGuide() {
document.querySelectorAll("#api-migration-detail-body ul ul ul").forEach((value) => {
wrapWithDetails(value);
});
wrapAfterTldr();
document.querySelectorAll(".api-migration-details-show-tldr").forEach((value) => {
value.addEventListener("click", (e) => setDetailsExpanded(false, false));
});
document.querySelectorAll(".api-migration-details-show-outline").forEach((value) => {
value.addEventListener("click", (e) => setDetailsExpanded(true, false));
});
document.querySelectorAll(".api-migration-details-show-all").forEach((value) => {
value.addEventListener("click", (e) => setDetailsExpanded(true, true));
});
}
if (typeof isApiMigrationGuide !== "undefined" && isApiMigrationGuide) {
doApiMigrationGuide();
}