@ithaka/bonsai
Version:
ITHAKA core styling
68 lines (54 loc) • 2.3 kB
JavaScript
/**
* This file is used solely for generation of the style guide
*/
import $ from "jquery";
import Modernizr from "modernizr"; // imported to use modernizr to replace "no-js" class to "js" when javaScript is enabled
import { BonsaiMediaQuery } from "./bonsai.mediaquery";
import { BonsaiDropdownMenu } from "./bonsai.dropdownmenu";
import { BonsaiDropdown } from "./bonsai.dropdown";
import { BonsaiModal } from "./bonsai.modal";
import { BonsaiSticky } from "./bonsai.sticky";
import { BonsaiTabs } from "./bonsai.tabs";
import { BonsaiTooltip } from "./bonsai.tooltip";
import { BonsaiAccordionMenu } from "./bonsai.accordionmenu";
import { BonsaiOffCanvas } from "./bonsai.offcanvas";
// These are imported so that webpack watches the documentation html / md for changes
import Template from "../documentation/template.html";
import Nav from "../documentation/partials/nav.html";
// Iterates through everything in the documentation/pages directory allowing
// webpack to watch the files for changes
function requireAll(routes) {
routes.keys().forEach(routes);
}
requireAll(require.context("../documentation/pages/", true, /\.md$/));
function setActiveRoute() {
// Pull the active component from the URL and select its jquery element
// and its parent jquery element to mark each with an active class
const activeListElement = getActiveListElement();
if (activeListElement) {
const parentListElements = $(activeListElement).parents("ul");
$(activeListElement).addClass("active");
$(parentListElements).addClass("is-active");
}
}
function getActiveListElement() {
try {
const path = window.location.pathname,
pagePath = path.substring(path.lastIndexOf("/") + 1),
pageKey = pagePath.substring(0, pagePath.lastIndexOf("."));
return $(pageKey ? `#${pageKey}` : "#root");
}
catch(error) {
return $("");
}
}
setActiveRoute();
new BonsaiMediaQuery();
new BonsaiDropdownMenu($(".dropdown"), {"closingTime": 100});
new BonsaiDropdown($(".dropdown-pane"));
new BonsaiModal($(".reveal"));
new BonsaiSticky($(".sticky"));
new BonsaiTabs($(".tabs"));
new BonsaiTooltip($(".has-tip"));
new BonsaiAccordionMenu($(".accordion-menu"));
new BonsaiOffCanvas($("div[data-off-canvas]"));