main.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // import '@webcomponents/custom-elements';
  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. // tslint:disable-next-line
  8. require('../styles/main.scss');
  9. document.addEventListener('DOMContentLoaded', () => {
  10. const topBar = document.querySelector('.top-bar');
  11. if (topBar) {
  12. const setTopBarClass = () => {
  13. if (window.scrollY === 0) {
  14. topBar.classList.remove('floating');
  15. } else {
  16. topBar.classList.add('floating');
  17. }
  18. };
  19. window.addEventListener('scroll', setTopBarClass);
  20. setTopBarClass();
  21. }
  22. const toc = document.querySelector('#TableOfContents') as HTMLDivElement;
  23. const tocHighlighter = new TocHighlighter(toc);
  24. tocHighlighter.highlight();
  25. const searchInput = document.querySelector('#searchInput');
  26. if (searchInput) {
  27. const searchWidget = new SearchWidget(searchInput as HTMLInputElement);
  28. const searchButton = document.querySelector('button.search-icon') as HTMLButtonElement;
  29. searchButton.addEventListener('click', () => searchWidget.toggleActive());
  30. }
  31. initTabs();
  32. initNavMenu();
  33. initGraphQlPlaygroundWidgets();
  34. }, false);