Files
aifo-portal-web/js/nav-icons.js
T
2026-07-03 20:34:27 +08:00

37 lines
1.1 KiB
JavaScript

/**
* Nav submenu iconfont helpers.
* Registry: data/nav-icon-registry.json
*
* After uploading new glyphs to iconfont.cn and replacing iconfont.css:
* window.aifoApplyNavIconTargets()
* This swaps data-nav-icon-target classes onto each submenu icon.
*/
(function () {
function applyNavIconTargets(root) {
if (!root) return 0;
var nodes = root.querySelectorAll("[data-nav-icon-target]");
var count = 0;
nodes.forEach(function (el) {
var target = el.getAttribute("data-nav-icon-target");
if (!target) return;
el.className = "icon iconfont " + target;
count += 1;
});
return count;
}
window.aifoApplyNavIconTargets = function () {
var nav = document.getElementById("nav");
var container = document.getElementById("nav-container");
var count = applyNavIconTargets(nav) + applyNavIconTargets(container);
console.info("[nav-icons] Applied " + count + " target icon class(es).");
return count;
};
document.addEventListener("aifo:layout-ready", function () {
if (window.AIFO_NAV_USE_TARGET_ICONS === true) {
window.aifoApplyNavIconTargets();
}
});
})();