main.ts 1.3 KB

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