stylescape
Version:
Stylescape is a visual identity framework developed by Scape Agency.
49 lines • 2.3 kB
JavaScript
import { AsideHandler } from "./elements/AsideHandler.js";
import { CollapsibleTableHandler } from "./elements/CollapsibleTableHandler.js";
import { DropdownHandler } from "./elements/DropdownHandler.js";
import { ExclusiveDetails } from "./elements/ExclusiveDetails.js";
import { ImageCompareSlider } from "./media/ImageCompareSlider.js";
import { ActiveLinkHighlighter } from "./content/ActiveLinkHighlighter.js";
import { ClipboardHelper } from "./utilities/ClipboardHelper.js";
import { GridManager } from "./utilities/GridManager.js";
import { ThemeToggler } from "./utilities/ThemeToggler.js";
import { TableOfContentsBuilder } from "./content/TableOfContentsBuilder.js";
import { PasswordToggleManager } from "./elements/PasswordToggleManager.js";
import { ScrollElementManager } from "./scroll/ScrollElementManager.js";
import { ScrollPageManager } from "./scroll/ScrollPageManager.js";
window.ClipboardHelper = ClipboardHelper;
document.addEventListener("DOMContentLoaded", () => {
new ScrollPageManager();
new ScrollElementManager("#main_content", "main_content_scroll", false);
new ScrollElementManager("#sidebar_left_content", "sidebar_left_content_scroll", false);
new ActiveLinkHighlighter();
new PasswordToggleManager();
ThemeToggler.registerOnLoad("themeToggle");
const tocBuilder = new TableOfContentsBuilder("main_content", "toc");
tocBuilder.buildAndAppendTOC();
new ExclusiveDetails(".ribbon_menu_button");
const current = location.pathname.split("/").pop();
const activeLink = document.querySelector(`a[href$="${current}"]`);
if (activeLink) {
activeLink.classList.add("active");
}
const handlers = [];
document.querySelectorAll("[id$='_switch']").forEach((switchEl) => {
const switchId = switchEl.id;
const menuId = switchId.replace("_switch", "_menu");
const menuEl = document.getElementById(menuId);
if (menuEl) {
handlers.push(new AsideHandler(menuId, switchId));
}
});
window.asideHandlers = handlers;
ImageCompareSlider.initAll();
new DropdownHandler();
new CollapsibleTableHandler();
});
window.addEventListener("load", () => {
requestAnimationFrame(() => {
new GridManager();
});
});
//# sourceMappingURL=index.js.map