constructor({
    autoslide = false,
    changeOnClick = false,
    loop = true,
    minWheelDelta = 40,
    navigateOnScroll = true,
    scrollWait = 450,
    slideOffset = 50,
    showIndex = true
  } = {}) {
    /**
     * WebSlide element.
     * @type {Element}
     */
    this.el = document.getElementById('webslides');

    if (!this.el) {
      throw new Error('Couldn\'t find the webslides container!');
    }

    /**
     * Moving flag.
     * @type {boolean}
     */
    this.isMoving = false;
    /**
     * Slide's array.
     * @type {?Array<Slide>}
     */
    this.slides = null;
    /**
     * Current slide's index.
     * @type {number}
     * @private
     */
    this.currentSlideI_ = -1;
    /**
     * Current slide reference.
     * @type {?Slide}
     * @private
     */
    this.currentSlide_ = null;
    /**
     * Max slide index.
     * @type {number}
     * @private
     */
    this.maxSlide_ = 0;
    /**
     * Whether the layout is going to be vertical or horizontal.
     * @type {boolean}
     */
    this.isVertical = this.el.classList.contains(CLASSES.VERTICAL);
    /**
     * Plugin's dictionary.
     * @type {Object}
     */
    this.plugins = {};
    /**
     * Options dictionary.
     * @type {Object}
     */
    this.options = {
      autoslide,
      changeOnClick,
      loop,
      minWheelDelta,
      navigateOnScroll,
      scrollWait,
      slideOffset,
      showIndex
    };
    /**
     * Initialisation flag.
     * @type {boolean}
     */
    this.initialised = false;

    // Bootstrapping
    this.removeChildren_();
    this.grabSlides_();
    this.createPlugins_();
    this.initSlides_();
    // Finished
    this.onInit_();
  }
Options for WebSlides
@param {number|boolean} autoslide If a number is provided, it will allow
autosliding by said amount of milliseconds.
@param {boolean} changeOnClick If true, it will allow
clicking on any place to change the slide.
@param {boolean} loop Whether to go to first slide from last one or not.
@param {number} minWheelDelta Controls the amount of needed scroll to
trigger navigation.
@param {boolean} navigateOnScroll Whether scroll can trigger navigation or
not.
@param {number} scrollWait Controls the amount of time to wait till
navigation can occur again with scroll.
@param {number} slideOffset Controls the amount of needed touch delta to
trigger navigation.
@param {boolean} showIndex Controls if the index can be shown.