{"ast":null,"code":"import * as tslib_1 from \"tslib\";\nimport { Options } from './options';\nimport { setStyle, clearEventsOn } from './utils/';\nimport { debounce } from './decorators/';\nimport { TrackController } from './track/';\nimport { getSize, update, isVisible } from './geometry/';\nimport { scrollTo, setPosition, scrollIntoView } from './scrolling/';\nimport { initPlugins } from './plugin';\nimport * as eventHandlers from './events/';\n// DO NOT use WeakMap here\n// .getAll() methods requires `scrollbarMap.values()`\nexport var scrollbarMap = new Map();\nvar Scrollbar = /** @class */function () {\n  function Scrollbar(containerEl, options) {\n    var _this = this;\n    /**\n     * Current scrolling offsets\n     */\n    this.offset = {\n      x: 0,\n      y: 0\n    };\n    /**\n     * Max-allowed scrolling offsets\n     */\n    this.limit = {\n      x: Infinity,\n      y: Infinity\n    };\n    /**\n     * Container bounding rect\n     */\n    this.bounding = {\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    };\n    this._plugins = [];\n    this._momentum = {\n      x: 0,\n      y: 0\n    };\n    this._listeners = new Set();\n    this.containerEl = containerEl;\n    var contentEl = this.contentEl = document.createElement('div');\n    this.options = new Options(options);\n    // mark as a scroll element\n    containerEl.setAttribute('data-scrollbar', 'true');\n    // make container focusable\n    containerEl.setAttribute('tabindex', '1');\n    setStyle(containerEl, {\n      overflow: 'hidden',\n      outline: 'none'\n    });\n    // enable touch event capturing in IE, see:\n    // https://github.com/idiotWu/smooth-scrollbar/issues/39\n    if (window.navigator.msPointerEnabled) {\n      containerEl.style.msTouchAction = 'none';\n    }\n    // mount content\n    contentEl.className = 'scroll-content';\n    Array.from(containerEl.childNodes).forEach(function (node) {\n      contentEl.appendChild(node);\n    });\n    containerEl.appendChild(contentEl);\n    // attach track\n    this.track = new TrackController(this);\n    // initial measuring\n    this.size = this.getSize();\n    // init plugins\n    this._plugins = initPlugins(this, this.options.plugins);\n    // preserve scroll offset\n    var scrollLeft = containerEl.scrollLeft,\n      scrollTop = containerEl.scrollTop;\n    containerEl.scrollLeft = containerEl.scrollTop = 0;\n    this.setPosition(scrollLeft, scrollTop, {\n      withoutCallbacks: true\n    });\n    var global = window;\n    var MutationObserver = global.MutationObserver || global.WebKitMutationObserver || global.MozMutationObserver;\n    // observe\n    if (typeof MutationObserver === 'function') {\n      this._observer = new MutationObserver(function () {\n        _this.update();\n      });\n      this._observer.observe(contentEl, {\n        subtree: true,\n        childList: true\n      });\n    }\n    scrollbarMap.set(containerEl, this);\n    // wait for DOM ready\n    requestAnimationFrame(function () {\n      _this._init();\n    });\n  }\n  Object.defineProperty(Scrollbar.prototype, \"parent\", {\n    /**\n     * Parent scrollbar\n     */\n    get: function () {\n      var elem = this.containerEl.parentElement;\n      while (elem) {\n        var parentScrollbar = scrollbarMap.get(elem);\n        if (parentScrollbar) {\n          return parentScrollbar;\n        }\n        elem = elem.parentElement;\n      }\n      return null;\n    },\n    enumerable: true,\n    configurable: true\n  });\n  Object.defineProperty(Scrollbar.prototype, \"scrollTop\", {\n    /**\n     * Gets or sets `scrollbar.offset.y`\n     */\n    get: function () {\n      return this.offset.y;\n    },\n    set: function (y) {\n      this.setPosition(this.scrollLeft, y);\n    },\n    enumerable: true,\n    configurable: true\n  });\n  Object.defineProperty(Scrollbar.prototype, \"scrollLeft\", {\n    /**\n     * Gets or sets `scrollbar.offset.x`\n     */\n    get: function () {\n      return this.offset.x;\n    },\n    set: function (x) {\n      this.setPosition(x, this.scrollTop);\n    },\n    enumerable: true,\n    configurable: true\n  });\n  /**\n   * Returns the size of the scrollbar container element\n   * and the content wrapper element\n   */\n  Scrollbar.prototype.getSize = function () {\n    return getSize(this);\n  };\n  /**\n   * Forces scrollbar to update geometry infomation.\n   *\n   * By default, scrollbars are automatically updated with `100ms` debounce (or `MutationObserver` fires).\n   * You can call this method to force an update when you modified contents\n   */\n  Scrollbar.prototype.update = function () {\n    update(this);\n    this._plugins.forEach(function (plugin) {\n      plugin.onUpdate();\n    });\n  };\n  /**\n   * Checks if an element is visible in the current view area\n   */\n  Scrollbar.prototype.isVisible = function (elem) {\n    return isVisible(this, elem);\n  };\n  /**\n   * Sets the scrollbar to the given offset without easing\n   */\n  Scrollbar.prototype.setPosition = function (x, y, options) {\n    var _this = this;\n    if (x === void 0) {\n      x = this.offset.x;\n    }\n    if (y === void 0) {\n      y = this.offset.y;\n    }\n    if (options === void 0) {\n      options = {};\n    }\n    var status = setPosition(this, x, y);\n    if (!status || options.withoutCallbacks) {\n      return;\n    }\n    this._listeners.forEach(function (fn) {\n      fn.call(_this, status);\n    });\n  };\n  /**\n   * Scrolls to given position with easing function\n   */\n  Scrollbar.prototype.scrollTo = function (x, y, duration, options) {\n    if (x === void 0) {\n      x = this.offset.x;\n    }\n    if (y === void 0) {\n      y = this.offset.y;\n    }\n    if (duration === void 0) {\n      duration = 0;\n    }\n    if (options === void 0) {\n      options = {};\n    }\n    scrollTo(this, x, y, duration, options);\n  };\n  /**\n   * Scrolls the target element into visible area of scrollbar,\n   * likes the DOM method `element.scrollIntoView().\n   */\n  Scrollbar.prototype.scrollIntoView = function (elem, options) {\n    if (options === void 0) {\n      options = {};\n    }\n    scrollIntoView(this, elem, options);\n  };\n  /**\n   * Adds scrolling listener\n   */\n  Scrollbar.prototype.addListener = function (fn) {\n    if (typeof fn !== 'function') {\n      throw new TypeError('[smooth-scrollbar] scrolling listener should be a function');\n    }\n    this._listeners.add(fn);\n  };\n  /**\n   * Removes listener previously registered with `scrollbar.addListener()`\n   */\n  Scrollbar.prototype.removeListener = function (fn) {\n    this._listeners.delete(fn);\n  };\n  /**\n   * Adds momentum and applys delta transfomers.\n   */\n  Scrollbar.prototype.addTransformableMomentum = function (x, y, fromEvent) {\n    this._updateDebounced();\n    var finalDelta = this._plugins.reduce(function (delta, plugin) {\n      return plugin.transformDelta(delta, fromEvent) || delta;\n    }, {\n      x: x,\n      y: y\n    });\n    this.addMomentum(finalDelta.x, finalDelta.y);\n  };\n  /**\n   * Increases scrollbar's momentum\n   */\n  Scrollbar.prototype.addMomentum = function (x, y) {\n    this.setMomentum(this._momentum.x + x, this._momentum.y + y);\n  };\n  /**\n   * Sets scrollbar's momentum to given value\n   */\n  Scrollbar.prototype.setMomentum = function (x, y) {\n    if (this.limit.x === 0) {\n      x = 0;\n    }\n    if (this.limit.y === 0) {\n      y = 0;\n    }\n    if (this.options.renderByPixels) {\n      x = Math.round(x);\n      y = Math.round(y);\n    }\n    this._momentum.x = x;\n    this._momentum.y = y;\n  };\n  /**\n   * Update options for specific plugin\n   *\n   * @param pluginName Name of the plugin\n   * @param [options] An object includes the properties that you want to update\n   */\n  Scrollbar.prototype.updatePluginOptions = function (pluginName, options) {\n    this._plugins.forEach(function (plugin) {\n      if (plugin.name === pluginName) {\n        Object.assign(plugin.options, options);\n      }\n    });\n  };\n  Scrollbar.prototype.destroy = function () {\n    var _a = this,\n      containerEl = _a.containerEl,\n      contentEl = _a.contentEl;\n    clearEventsOn(this);\n    this._listeners.clear();\n    this.setMomentum(0, 0);\n    cancelAnimationFrame(this._renderID);\n    if (this._observer) {\n      this._observer.disconnect();\n    }\n    scrollbarMap.delete(this.containerEl);\n    // restore contents\n    var childNodes = Array.from(contentEl.childNodes);\n    while (containerEl.firstChild) {\n      containerEl.removeChild(containerEl.firstChild);\n    }\n    childNodes.forEach(function (el) {\n      containerEl.appendChild(el);\n    });\n    // reset scroll position\n    setStyle(containerEl, {\n      overflow: ''\n    });\n    containerEl.scrollTop = this.scrollTop;\n    containerEl.scrollLeft = this.scrollLeft;\n    // invoke plugin.onDestory\n    this._plugins.forEach(function (plugin) {\n      plugin.onDestory();\n    });\n    this._plugins.length = 0;\n  };\n  Scrollbar.prototype._init = function () {\n    var _this = this;\n    this.update();\n    // init evet handlers\n    Object.keys(eventHandlers).forEach(function (prop) {\n      eventHandlers[prop](_this);\n    });\n    // invoke `plugin.onInit`\n    this._plugins.forEach(function (plugin) {\n      plugin.onInit();\n    });\n    this._render();\n  };\n  Scrollbar.prototype._updateDebounced = function () {\n    this.update();\n  };\n  Scrollbar.prototype._render = function () {\n    var _momentum = this._momentum;\n    if (_momentum.x || _momentum.y) {\n      var nextX = this._nextTick('x');\n      var nextY = this._nextTick('y');\n      _momentum.x = nextX.momentum;\n      _momentum.y = nextY.momentum;\n      this.setPosition(nextX.position, nextY.position);\n    }\n    var remain = tslib_1.__assign({}, this._momentum);\n    this._plugins.forEach(function (plugin) {\n      plugin.onRender(remain);\n    });\n    this._renderID = requestAnimationFrame(this._render.bind(this));\n  };\n  Scrollbar.prototype._nextTick = function (direction) {\n    var _a = this,\n      options = _a.options,\n      offset = _a.offset,\n      _momentum = _a._momentum;\n    var current = offset[direction];\n    var remain = _momentum[direction];\n    if (Math.abs(remain) <= 0.1) {\n      return {\n        momentum: 0,\n        position: current + remain\n      };\n    }\n    var nextMomentum = remain * (1 - options.damping);\n    if (options.renderByPixels) {\n      nextMomentum |= 0;\n    }\n    return {\n      momentum: nextMomentum,\n      position: current + remain - nextMomentum\n    };\n  };\n  tslib_1.__decorate([debounce(100, {\n    leading: true\n  })], Scrollbar.prototype, \"_updateDebounced\", null);\n  return Scrollbar;\n}();\nexport { Scrollbar };","map":{"version":3,"names":["Options","setStyle","clearEventsOn","debounce","TrackController","getSize","update","isVisible","scrollTo","setPosition","scrollIntoView","initPlugins","eventHandlers","scrollbarMap","Map","Scrollbar","containerEl","options","_this","offset","x","y","limit","Infinity","bounding","top","right","bottom","left","_plugins","_momentum","_listeners","Set","contentEl","document","createElement","setAttribute","overflow","outline","window","navigator","msPointerEnabled","style","msTouchAction","className","Array","from","childNodes","forEach","node","appendChild","track","size","plugins","scrollLeft","scrollTop","withoutCallbacks","global","MutationObserver","WebKitMutationObserver","MozMutationObserver","_observer","observe","subtree","childList","set","requestAnimationFrame","_init","Object","defineProperty","prototype","get","elem","parentElement","parentScrollbar","plugin","onUpdate","status","fn","call","duration","addListener","TypeError","add","removeListener","delete","addTransformableMomentum","fromEvent","_updateDebounced","finalDelta","reduce","delta","transformDelta","addMomentum","setMomentum","renderByPixels","Math","round","updatePluginOptions","pluginName","name","assign","destroy","_a","clear","cancelAnimationFrame","_renderID","disconnect","firstChild","removeChild","el","onDestory","length","keys","prop","onInit","_render","nextX","_nextTick","nextY","momentum","position","remain","tslib_1","__assign","onRender","bind","direction","current","abs","nextMomentum","damping","__decorate","leading"],"sources":["src/scrollbar.ts"],"sourcesContent":[null],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}