main.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { formatDocs } from './docs-formatting';
  2. import { initGraphQlPlaygroundWidgets } from './graphql-playground-widget';
  3. import { initNavMenu } from './nav-menu';
  4. import { SearchWidget } from './search-widget';
  5. import { initTabs } from './tabs';
  6. import { TocHighlighter } from './toc-highlighter';
  7. import { initTopMenu } from './top-bar';
  8. // tslint:disable-next-line
  9. require('../styles/main.scss');
  10. document.addEventListener(
  11. 'DOMContentLoaded',
  12. () => {
  13. const topBar = document.querySelector('.top-bar');
  14. if (topBar) {
  15. const setTopBarClass = () => {
  16. if (window.scrollY === 0) {
  17. topBar.classList.remove('floating');
  18. } else {
  19. topBar.classList.add('floating');
  20. }
  21. };
  22. window.addEventListener('scroll', setTopBarClass);
  23. setTopBarClass();
  24. }
  25. const toc = document.querySelector('#TableOfContents') as HTMLDivElement;
  26. const tocHighlighter = new TocHighlighter(toc);
  27. tocHighlighter.highlight();
  28. const searchInput = document.querySelector('#searchInput');
  29. if (searchInput) {
  30. const searchWidget = new SearchWidget(searchInput as HTMLInputElement);
  31. const searchButton = document.querySelector('button.search-icon') as HTMLButtonElement;
  32. searchButton.addEventListener('click', () => searchWidget.toggleActive());
  33. }
  34. initTabs();
  35. initNavMenu();
  36. initGraphQlPlaygroundWidgets();
  37. formatDocs();
  38. initTopMenu();
  39. },
  40. false,
  41. );