UNPKG

@ithaka/bonsai

Version:
68 lines (54 loc) 2.3 kB
/** * 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]"));