2020-06-06 08:40:33 +00:00
|
|
|
(function (window) {
|
2019-09-13 10:47:07 +00:00
|
|
|
window.ls.container.get("view").add({
|
|
|
|
|
selector: "data-ui-highlight",
|
2020-06-06 08:40:33 +00:00
|
|
|
controller: function (element, expression, document) {
|
|
|
|
|
let check = function () {
|
2019-09-13 10:47:07 +00:00
|
|
|
let links = element.getElementsByTagName("a");
|
|
|
|
|
let selected = null;
|
|
|
|
|
let list = [];
|
2020-06-06 08:40:33 +00:00
|
|
|
|
2019-09-13 10:47:07 +00:00
|
|
|
for (let i = 0; i < links.length; i++) {
|
|
|
|
|
list.push(links[i]);
|
|
|
|
|
}
|
2019-05-09 06:54:39 +00:00
|
|
|
|
2020-06-06 08:40:33 +00:00
|
|
|
list.sort(function (a, b) {
|
2019-09-13 10:47:07 +00:00
|
|
|
return a.pathname.length - b.pathname.length;
|
|
|
|
|
});
|
2019-05-09 06:54:39 +00:00
|
|
|
|
2020-06-06 08:40:33 +00:00
|
|
|
|
|
|
|
|
if(selected && list[selected].dataset["selected"]) {
|
|
|
|
|
let parent = element.querySelector("a[href='"+list[selected].dataset["selected"]+"']");
|
|
|
|
|
|
|
|
|
|
if(parent) {
|
|
|
|
|
parent.classList.remove("selected");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-13 10:47:07 +00:00
|
|
|
for (let i = 0; i < list.length; i++) {
|
2020-06-06 08:40:33 +00:00
|
|
|
let path = list[i].pathname;
|
2020-06-06 06:48:52 +00:00
|
|
|
|
2020-06-06 08:40:33 +00:00
|
|
|
if (path === window.location.pathname.substring(0, path.length)) {
|
2019-09-13 10:47:07 +00:00
|
|
|
list[i].classList.add("selected");
|
2019-05-09 06:54:39 +00:00
|
|
|
|
2019-09-13 10:47:07 +00:00
|
|
|
if (selected !== null) {
|
2020-06-06 08:40:33 +00:00
|
|
|
list[selected].classList.remove("selected");
|
2019-09-13 10:47:07 +00:00
|
|
|
}
|
|
|
|
|
selected = i;
|
|
|
|
|
} else {
|
|
|
|
|
list[i].classList.remove("selected");
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-05-09 06:54:39 +00:00
|
|
|
|
2020-06-06 08:40:33 +00:00
|
|
|
if(selected && list[selected].dataset["selected"]) {
|
|
|
|
|
let parent = element.querySelector("a[href='"+list[selected].dataset["selected"]+"']");
|
2019-05-09 06:54:39 +00:00
|
|
|
|
2020-06-06 08:40:33 +00:00
|
|
|
if(parent) {
|
|
|
|
|
parent.classList.add("selected");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
document.addEventListener("state-changed", check);
|
2019-09-13 10:47:07 +00:00
|
|
|
check();
|
2020-06-06 08:40:33 +00:00
|
|
|
},
|
2019-09-13 10:47:07 +00:00
|
|
|
});
|
2020-06-06 08:40:33 +00:00
|
|
|
})(window);
|