function LazyLinePainter(el, config) {
    var _this = this;

    _classCallCheck(this, LazyLinePainter);

    _defineProperty(this, "_onVisibilityChange", function () {
      if (document.hidden) {
        _this.pause();
      } else {
        _this.resume();
      }
    });

    this.el = el;
    this.el.classList.add('lazy-line-painter');
    this.config = Object.assign({
      strokeWidth: null,
      strokeDash: null,
      strokeColor: null,
      strokeOverColor: null,
      strokeCap: null,
      strokeJoin: null,
      strokeOpacity: null,
      delay: 0,
      ease: null,
      drawSequential: false,
      speedMultiplier: 1,
      reverse: false,
      paused: false,
      progress: 0,
      repeat: 0,
      longestDuration: 0,
      log: true,
      offset: this.el.getBoundingClientRect()
    }, config, {});
    Object.assign(this, _events.default, {});
    this.__raf = null;
    this.__paths = [];

    this._generatePaths();

    this._parseDataAttrs();

    this._updateDuration();

    this._setupPaths();

    document.addEventListener('visibilitychange', this._onVisibilityChange);
  }
init
Responsible for caching user options,
@public
@param  {object} opts user defined options