Source: onload/site/gf.site.onload.js

'use strict';

import '../../shared/debug-init';

/** Some small polyfills we want always. */
import 'url-search-params-polyfill';

/** Schedule and execute our site modules one at a time.
 *
 * - An exception thrown in the execution of a single module
 *   will not prevent another module from executing.
 *
 * TODO: Lowercase the names of imported functions, for consistency and best practice
 */

import JsCookiesGF from '../../shared/site/config/js-cookies-gf';

import ToggleFaq from './visual/extendable-faq-block';
import CopyLink from './visual/copy-link';
import BlogCatToggle from './visual/blog-cat-toggle';
import MenuToggle from './visual/menu';
import HeaderScrollHandler from './visual/header-scroll';
import AnchorLink from './visual/anchor-link';

import LocaleLinks from './behaviour/locale-links';

import ChatWidget from './support/chat-widget';

import { runModules } from '../../shared/run-modules';

/** The list of modules in order of execution */
const modules = [
  /* Utility */
  JsCookiesGF,

  /* Behavior Modules */
  LocaleLinks,

  /* Visual modifications */
  ToggleFaq,
  CopyLink,
  BlogCatToggle,
  MenuToggle,
  HeaderScrollHandler,
  AnchorLink,

  /* Support modules */
  ChatWidget
];

runModules(modules);