code: function Sticky(element, options) {
    var this$1 = this;
  
    this.element = $(element);
  
    if (!this.element) { return false; }
  
    // this.opts = Object.assign({}, defaults, options);
    this.opts = {};
    for (var opt in defaults) { this$1.opts[opt] = defaults[opt]; }
    for (var opt$1 in options) { this$1.opts[opt$1] = options[opt$1]; }
  
    this.stateSwitcher;
    this.currentState = null;
    this.determine = 'normal';
    this.bounded = !!this.opts.boundedBy;
    this.parent = (typeof this.opts.boundedBy === 'boolean') ? this.element.parentNode : $(this.opts.boundedBy);
  
    // determine initial state
    if (this.element.getBoundingClientRect().top < this.opts.offset) {
      this.setState('sticky');
      this.stateSwitcher();
    } else {
      this.setState('normal');
    }
  
    window.addEventListener('scroll', function () { this$1.stateSwitcher(); });
    window.addEventListener('resize', function () { this$1.stateSwitcher(); });
  }
docs: Set up a sticky element that attaches / detaches to top of viewport.
  @param {HTMLElement} element The element to sticky-ify
  @param {Object} options The options object
  @param {boolean|HTMLElement} options.boundedBy Bounding element for the sticky element, or "true" to use the parent node
  @param {number} options.offset An offset from the top at which to toggle "stickiness"
  @return {void}